/* ==========================================================================
   UCBM Spin-Off — main.css v1.0.0
   §1 Tokens  §2 Reset  §3 Typography  §4 Layout  §5 Header  §6 Footer
   §7 Hero  §8 Buttons  §9 Tags  §10 Stats-bar  §11 Spinoff cards
   §12 Brevetti  §13 News  §14 Intro section  §15 CTA strip
   §16 Language switcher  §17 Editor placeholder  §18 Responsive
   ========================================================================== */

/* §1 Design tokens
   ========================================================================== */
:root {
  --color-primary:     #003087;
  --color-accent:      #0066CC;
  --color-white:       #ffffff;
  --color-light-gray:  #F4F6F9;
  --color-dark-gray:   #333333;
  --color-medium-gray: #6B7280;
  --color-border-gray: #E5E7EB;

  --font-heading: 'Inter', sans-serif;
  --font-body:    'Public Sans', sans-serif;

  --radius-card:     8px;
  --shadow-card:     0 2px 8px rgba(0,0,0,0.08);
  --shadow-card-hover: 0 6px 20px rgba(0,0,0,0.12);
  --transition:      0.2s ease;

  --container-max: 1200px;
  --container-pad: 1.5rem;
}

/* §2 Reset
   ========================================================================== */
*, *::before, *::after { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
  font-family: var(--font-body);
  font-size: 1rem;
  color: var(--color-dark-gray);
  background: var(--color-white);
  margin: 0;
  -webkit-font-smoothing: antialiased;
}

img, video { max-width: 100%; height: auto; display: block; }
a { color: var(--color-accent); text-decoration: none; }
a:hover { text-decoration: underline; }
p { line-height: 1.6; margin: 0 0 1rem; }
p:last-child { margin-bottom: 0; }

/* §3 Typography
   ========================================================================== */
h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-heading);
  color: var(--color-primary);
  line-height: 1.2;
  margin: 0 0 1rem;
}

h1 { font-size: clamp(2rem, 5vw, 3.25rem); font-weight: 700; line-height: 1.1; }
h2 { font-size: clamp(1.75rem, 3.5vw, 2.25rem); font-weight: 600; }
h3 { font-size: clamp(1.125rem, 2vw, 1.375rem); font-weight: 600; }

.eyebrow {
  display: block;
  font-size: 0.8125rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--color-medium-gray);
  margin-bottom: 0.75rem;
}

/* §4 Layout utilities
   ========================================================================== */
.container {
  max-width: var(--container-max);
  margin-inline: auto;
  padding-inline: var(--container-pad);
}

.site-main { margin: 0; padding: 0; }

/* Rimuove il gap di 24px che WP core (:where .is-layout-constrained > *)
   aggiunge tra ogni blocco diretto del post-content — su homepage tutti i
   blocchi sono full-width e gestiscono da soli il proprio padding interno. */
.entry-content.wp-block-post-content > * { margin-block-start: 0 !important; }

/* Stessa cosa per il template-part footer nel wp-site-blocks */
footer.wp-block-template-part,
.wp-site-blocks > footer { margin-block-start: 0 !important; }

/* Evita gap tra sezioni full-width adiacenti */
.wp-block-group.alignfull + .wp-block-group.alignfull { margin-top: 0; }

.section-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 2rem;
  gap: 1rem;
}
.section-header h2 { margin: 0; }

/* §5 Header
   ========================================================================== */
.site-header {
  background: var(--color-white);
  border-bottom: 1px solid var(--color-border-gray);
  position: relative;
  z-index: 100;
  transition: box-shadow var(--transition);
}

.site-header.is-sticky {
  position: fixed;
  top: 0; left: 0; right: 0;
  background: rgba(255,255,255,0.97);
  box-shadow: 0 2px 8px rgba(0,0,0,0.10);
}

/* Spacer per compensare l'altezza dell'header sticky */
.site-header.is-sticky ~ .site-main { padding-top: 72px; }

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

/* Logo */
.site-logo {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  text-decoration: none;
  flex-shrink: 0;
}
.site-logo img { height: 44px; width: auto; }
.site-logo__text {
  display: flex;
  flex-direction: column;
  line-height: 1.2;
}
.site-logo__text strong {
  font-family: var(--font-heading);
  font-size: 1rem;
  font-weight: 700;
  color: var(--color-primary);
}
.site-logo__text small {
  font-size: 0.6875rem;
  color: var(--color-medium-gray);
}

/* Primary nav */
.primary-nav ul { list-style: none; margin: 0; padding: 0; display: flex; gap: 0.125rem; }
.primary-nav ul li { position: relative; }
.primary-nav ul li a {
  display: block;
  padding: 0.5rem 0.75rem;
  font-size: 0.9375rem;
  font-weight: 500;
  color: var(--color-dark-gray);
  border-radius: 4px;
  transition: color var(--transition), background var(--transition);
  white-space: nowrap;
}
.primary-nav ul li a:hover,
.primary-nav ul li.current-menu-item > a {
  color: var(--color-primary);
  background: var(--color-light-gray);
  text-decoration: none;
}

/* Dropdown */
.primary-nav .sub-menu {
  display: none;
  position: absolute;
  top: calc(100% + 4px);
  left: 0;
  background: var(--color-white);
  box-shadow: 0 4px 16px rgba(0,0,0,0.12);
  border-radius: 0 0 var(--radius-card) var(--radius-card);
  min-width: 220px;
  padding: 0.5rem 0;
  flex-direction: column;
  border-top: 2px solid var(--color-primary);
}
.primary-nav li:hover > .sub-menu,
.primary-nav li:focus-within > .sub-menu { display: flex; }
.primary-nav .sub-menu li a { padding: 0.5rem 1.25rem; font-size: 0.875rem; border-radius: 0; }

/* Header utils */
.header-utils { display: flex; align-items: center; gap: 0.75rem; flex-shrink: 0; }
.header-utils__ext {
  font-size: 0.8125rem;
  color: var(--color-medium-gray);
  white-space: nowrap;
  padding: 0.25rem 0.5rem;
  border: 1px solid var(--color-border-gray);
  border-radius: 4px;
  transition: border-color var(--transition), color var(--transition);
}
.header-utils__ext:hover { border-color: var(--color-primary); color: var(--color-primary); text-decoration: none; }

/* core/navigation block — override stili WP per matchare il design
   ========================================================================== */
.primary-nav.wp-block-navigation {
  display: flex;
  align-items: center;
}
.primary-nav .wp-block-navigation__container {
  display: flex;
  list-style: none;
  margin: 0;
  padding: 0;
  gap: 0.125rem;
  flex-wrap: nowrap;
}
.primary-nav .wp-block-navigation-item__content {
  display: block;
  padding: 0.5rem 0.75rem;
  font-size: 0.9375rem;
  font-weight: 500;
  color: var(--color-dark-gray);
  border-radius: 4px;
  transition: color var(--transition), background var(--transition);
  white-space: nowrap;
  text-decoration: none;
}
.primary-nav .wp-block-navigation-item__content:hover,
.primary-nav .current-menu-item > .wp-block-navigation-item__content {
  color: var(--color-primary);
  background: var(--color-light-gray);
}
/* Dropdown */
.primary-nav .wp-block-navigation__submenu-container {
  background: var(--color-white);
  box-shadow: 0 4px 16px rgba(0,0,0,0.12);
  border-radius: 0 0 var(--radius-card) var(--radius-card);
  border-top: 2px solid var(--color-primary);
  min-width: 220px;
  padding: 0.5rem 0;
}
.primary-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
  padding: 0.5rem 1.25rem;
  font-size: 0.875rem;
  border-radius: 0;
}
/* Submit icon (chevron) */
.primary-nav .wp-block-navigation__submenu-icon { opacity: 0.5; }

/* Hide WP nav overlay su desktop */
.primary-nav .wp-block-navigation__responsive-container:not(.is-menu-open) {
  display: flex !important;
  position: static !important;
  background: transparent !important;
}
.primary-nav .wp-block-navigation__responsive-container-close { display: none !important; }

/* Hamburger */
.hamburger {
  display: none;
  flex-direction: column;
  gap: 5px;
  background: none;
  border: none;
  cursor: pointer;
  padding: 6px;
}
.hamburger span {
  display: block;
  width: 24px;
  height: 2px;
  background: var(--color-primary);
  transition: transform var(--transition), opacity var(--transition);
}
.hamburger[aria-expanded="true"] span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.hamburger[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.hamburger[aria-expanded="true"] span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* Mobile drawer */
.mobile-drawer {
  position: fixed;
  inset: 0;
  background: var(--color-white);
  z-index: 200;
  padding: 1.5rem;
  overflow-y: auto;
  transform: translateX(100%);
  transition: transform 0.3s ease;
  display: flex;
  flex-direction: column;
}
.mobile-drawer.is-open { transform: translateX(0); }

.mobile-drawer__close {
  align-self: flex-end;
  background: none;
  border: none;
  font-size: 1.75rem;
  cursor: pointer;
  color: var(--color-dark-gray);
  line-height: 1;
  padding: 0.25rem;
}
.mobile-drawer ul { list-style: none; margin: 1.5rem 0 0; padding: 0; }
.mobile-drawer ul li a {
  display: block;
  padding: 1rem 0;
  font-size: 1.125rem;
  font-weight: 500;
  color: var(--color-primary);
  border-bottom: 1px solid var(--color-border-gray);
}
.mobile-drawer ul .sub-menu {
  list-style: none;
  padding: 0.25rem 0 0.25rem 1rem;
  margin: 0;
}
.mobile-drawer ul .sub-menu li a {
  font-size: 0.9375rem;
  padding: 0.5rem 0;
  color: var(--color-dark-gray);
}
.mobile-drawer__lang {
  display: flex;
  gap: 0.75rem;
  margin-top: 2rem;
}
.mobile-drawer__lang button {
  padding: 0.5rem 1.25rem;
  border: 1px solid var(--color-border-gray);
  border-radius: 4px;
  background: none;
  cursor: pointer;
  font-size: 0.875rem;
  font-family: var(--font-heading);
  font-weight: 500;
  color: var(--color-dark-gray);
}
.mobile-drawer__lang button:hover,
.mobile-drawer__lang button.is-active {
  background: var(--color-primary);
  color: white;
  border-color: var(--color-primary);
}

/* §6 Footer
   ========================================================================== */
.site-footer {
  background: #0D1B4B;
  color: rgba(255,255,255,0.75);
  padding: 4rem 0 0;
}
.footer-inner {
  display: grid;
  grid-template-columns: 2.2fr 1fr 1.4fr;
  gap: 3.5rem;
  padding-bottom: 3.5rem;
}

/* Brand column: logo stacked */
.footer-brand { display: flex; flex-direction: column; gap: 0.75rem; }
.footer-logo-link {
  display: inline-block;
  text-decoration: none;
  line-height: 0;
}
.footer-logo-link:hover { opacity: 0.85; }
.footer-logo {
  height: 60px;
  width: auto;
  display: block;
  /* Mix-blend-mode screen: dark bg → logo diventa bianco con dettagli visibili */
  mix-blend-mode: screen;
  opacity: 0.9;
}
.footer-brand__name {
  display: block;
  font-family: var(--font-heading);
  font-size: 1.0625rem;
  font-weight: 700;
  color: var(--color-white);
  line-height: 1.3;
}
.footer-brand p {
  font-size: 0.9375rem;
  color: rgba(255,255,255,0.6);
  line-height: 1.65;
  margin: 0;
}

/* Nav + Contacts column headings */
.footer-nav h3, .footer-contacts h3 {
  font-size: 0.6875rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: rgba(255,255,255,0.4);
  margin: 0 0 1.375rem;
}
.footer-nav ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.875rem;
}
.footer-nav ul a {
  color: rgba(255,255,255,0.8);
  font-size: 0.9375rem;
  text-decoration: none;
  transition: color var(--transition);
}
.footer-nav ul a:hover { color: var(--color-white); }

.footer-contacts address {
  font-style: normal;
  font-size: 0.9375rem;
  line-height: 1;
  display: flex;
  flex-direction: column;
  gap: 0.875rem;
}
.footer-contacts address a {
  color: rgba(255,255,255,0.8);
  text-decoration: none;
  transition: color var(--transition);
}
.footer-contacts address a:hover { color: var(--color-white); }

/* Bottom bar */
.footer-bottom {
  border-top: 1px solid rgba(255,255,255,0.10);
  padding: 1.375rem 0;
}
.footer-bottom__inner {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.5rem;
  font-size: 0.8125rem;
  color: rgba(255,255,255,0.35);
}
.footer-bottom__inner p { margin: 0; }
.footer-bottom__inner a { color: rgba(255,255,255,0.35); text-decoration: none; }
.footer-bottom__inner a:hover { color: rgba(255,255,255,0.65); }

/* §7 Hero
   ========================================================================== */
.ucbm-hero-block {
  position: relative;
  min-height: 85vh;
  display: flex;
  align-items: center;
  background-color: var(--color-primary);
  background-size: cover;
  background-position: center;
  overflow: hidden;
}
.ucbm-hero-block__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    135deg,
    rgba(0, 18, 51, 0.78) 0%,
    rgba(0, 48, 135, 0.65) 100%
  );
}
.ucbm-hero-block__inner {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: var(--container-max);
  margin-inline: auto;
  padding: var(--container-pad);
  padding-block: 6rem;
}
.ucbm-hero-block .eyebrow { color: rgba(255,255,255,0.65); }
.ucbm-hero-block h1 { color: var(--color-white); max-width: 700px; margin-bottom: 1.25rem; }
.ucbm-hero-block__subtitle {
  font-size: 1.125rem;
  color: rgba(255,255,255,0.85);
  max-width: 560px;
  margin-bottom: 2.5rem;
  line-height: 1.6;
}
.ucbm-hero-block__cta { display: flex; gap: 1rem; flex-wrap: wrap; }

/* §8 Buttons
   ========================================================================== */
.btn {
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
  padding: 0.875rem 1.75rem;
  border-radius: 6px;
  font-family: var(--font-heading);
  font-size: 0.9375rem;
  font-weight: 600;
  text-decoration: none;
  cursor: pointer;
  transition: background var(--transition), border-color var(--transition), transform 0.1s;
  border: 2px solid transparent;
  line-height: 1;
}
.btn:hover { transform: translateY(-1px); text-decoration: none; }
.btn:active { transform: translateY(0); }

.btn-primary { background: var(--color-primary); color: white; border-color: var(--color-primary); }
.btn-primary:hover { background: #002070; border-color: #002070; color: white; }

.btn-outline-white { background: transparent; color: white; border-color: white; }
.btn-outline-white:hover { background: rgba(255,255,255,0.12); color: white; }

.btn-outline { background: transparent; color: var(--color-primary); border-color: var(--color-primary); }
.btn-outline:hover { background: var(--color-primary); color: white; }

.btn-sm { padding: 0.5rem 1rem; font-size: 0.8125rem; }

.link-arrow {
  font-size: 0.9375rem;
  font-weight: 600;
  color: var(--color-accent);
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
}
.link-arrow:hover { color: var(--color-primary); text-decoration: none; }

/* §9 Tags
   ========================================================================== */
.tag {
  display: inline-block;
  padding: 0.25rem 0.75rem;
  border-radius: 100px;
  font-size: 0.75rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  background: var(--color-light-gray);
  color: var(--color-medium-gray);
  white-space: nowrap;
}
.tag--biotech        { background: #E8F5E9; color: #2E7D32; }
.tag--medtech        { background: #E3F2FD; color: #1565C0; }
.tag--digital-health { background: #F3E5F5; color: #6A1B9A; }
.tag--farmaceutica   { background: #FFF3E0; color: #E65100; }
.tag--evento         { background: #E3F2FD; color: #1565C0; }
.tag--notizia        { background: #E8F5E9; color: #2E7D32; }
.tag--pubblicazione  { background: #F3E5F5; color: #6A1B9A; }
.tag--comunicato     { background: #FFF3E0; color: #E65100; }

/* §10 Stats bar
   ========================================================================== */
.ucbm-stats-counter {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  background: var(--color-white);
  border-top: 1px solid var(--color-border-gray);
  border-bottom: 1px solid var(--color-border-gray);
}
.stats-bar__item {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.625rem;
  padding: 3rem 2rem;
  text-align: center;
  border-right: 1px solid var(--color-border-gray);
}
.stats-bar__item:last-child { border-right: none; }

.stats-bar__number {
  font-family: var(--font-heading);
  font-size: 3.25rem;
  font-weight: 700;
  color: var(--color-primary);
  line-height: 1;
  display: block;
  letter-spacing: -0.02em;
}
.stats-bar__label {
  font-size: 0.6875rem;
  font-weight: 700;
  color: var(--color-primary);
  text-transform: uppercase;
  letter-spacing: 0.1em;
}

/* §11 Spinoff cards
   ========================================================================== */
.spinoff-grid-block { width: 100%; }

.spinoff-filter {
  display: flex;
  gap: 0.5rem;
  margin-bottom: 1.5rem;
  flex-wrap: wrap;
}
.spinoff-filter__btn {
  padding: 0.375rem 1rem;
  border: 1px solid var(--color-border-gray);
  border-radius: 100px;
  background: none;
  font-size: 0.8125rem;
  font-family: var(--font-body);
  cursor: pointer;
  transition: background var(--transition), color var(--transition), border-color var(--transition);
}
.spinoff-filter__btn:hover,
.spinoff-filter__btn.is-active {
  background: var(--color-primary);
  color: white;
  border-color: var(--color-primary);
}

.spinoff-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.5rem;
}

.spinoff-card {
  background: var(--color-white);
  border: 1px solid var(--color-border-gray);
  border-radius: var(--radius-card);
  overflow: hidden;
  box-shadow: var(--shadow-card);
  transition: transform var(--transition), box-shadow var(--transition);
  display: flex;
  flex-direction: column;
}
.spinoff-card:hover { transform: translateY(-3px); box-shadow: var(--shadow-card-hover); }

.spinoff-card__logo {
  height: 100px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1.25rem;
  background: var(--color-light-gray);
}
.spinoff-card__logo img { max-height: 56px; width: auto; object-fit: contain; }
.spinoff-card__initial {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: var(--color-primary);
  color: white;
  font-size: 1.5rem;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-heading);
}

.spinoff-card__content { padding: 1.25rem; display: flex; flex-direction: column; flex: 1; }
.spinoff-card__header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.5rem;
  margin-bottom: 0.5rem;
}
.spinoff-card__title {
  font-size: 0.9375rem;
  font-weight: 700;
  color: var(--color-primary);
  margin: 0;
  line-height: 1.3;
}
.spinoff-card__desc {
  font-size: 0.875rem;
  color: var(--color-medium-gray);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  margin: 0.375rem 0 auto;
  line-height: 1.5;
}
.spinoff-card__footer {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: 1rem;
  padding-top: 0.75rem;
  border-top: 1px solid var(--color-border-gray);
}
.spinoff-card__year { font-size: 0.8125rem; color: var(--color-medium-gray); }

/* Pagination spinoff */
.spinoff-pagination {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 1rem;
  margin-top: 2.5rem;
}
.spinoff-pagination__btn {
  background: none;
  border: 1px solid var(--color-border-gray);
  padding: 0.5rem 1rem;
  border-radius: var(--radius-card);
  cursor: pointer;
  font-size: 1rem;
  transition: background var(--transition), color var(--transition);
}
.spinoff-pagination__btn:hover:not(:disabled) {
  background: var(--color-primary);
  color: white;
  border-color: var(--color-primary);
}
.spinoff-pagination__btn:disabled { opacity: 0.35; cursor: not-allowed; }
.spinoff-pagination__info { font-size: 0.875rem; color: var(--color-medium-gray); min-width: 60px; text-align: center; }

/* §12 Brevetti section + stats
   ========================================================================== */

/* Section wrapper (dark navy) */
.brevetti-section {
  background: #0D1B4B !important;
  color: white;
}
.brevetti-section .wp-block-group { color: inherit; }

/* Eyebrow — "——— TRASFERIMENTO TECNOLOGICO ———" */
.brevetti-eyebrow {
  display: flex !important;
  align-items: center;
  justify-content: center;
  gap: 1rem;
  font-size: 0.75rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase;
  color: rgba(255,255,255,0.45) !important;
  margin: 0 0 1.25rem !important;
}
.brevetti-eyebrow::before,
.brevetti-eyebrow::after {
  content: '';
  display: inline-block;
  height: 1px;
  width: 40px;
  background: rgba(255,255,255,0.25);
  flex-shrink: 0;
}

/* Title + desc in header */
.brevetti-section__title {
  font-size: clamp(2rem, 4vw, 2.875rem) !important;
  font-weight: 800 !important;
  color: #fff !important;
  margin: 0 0 1rem !important;
  line-height: 1.15 !important;
}
.brevetti-section__desc {
  font-size: 1.0625rem !important;
  color: rgba(255,255,255,0.7) !important;
  line-height: 1.7 !important;
  margin: 0 !important;
}

/* Block wrapper */
.brevetti-stats-block { width: 100%; }

/* 3 Counter cards */
.brevetti-counters-row {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.25rem;
  margin-bottom: 1.25rem;
}
.brevetti-counter-card {
  background: rgba(255,255,255,0.07);
  border: 1px solid rgba(255,255,255,0.10);
  border-radius: 12px;
  padding: 2.25rem 1.5rem;
  text-align: center;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.brevetti-counter-card__value {
  font-family: var(--font-heading);
  font-size: clamp(2.5rem, 5vw, 3.75rem);
  font-weight: 800;
  color: #fff;
  line-height: 1;
  letter-spacing: -0.02em;
}
.brevetti-counter-card__label {
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  color: rgba(255,255,255,0.5);
  text-transform: uppercase;
}

/* 4 Category cards */
.brevetti-cats-row {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.25rem;
}
.brevetti-cat-card {
  background: rgba(255,255,255,0.07);
  border: 1px solid rgba(255,255,255,0.10);
  border-radius: 12px;
  padding: 1.5rem;
  display: flex;
  flex-direction: column;
  gap: 0.375rem;
}
.brevetti-cat-card__dot {
  display: block;
  width: 14px;
  height: 14px;
  border-radius: 50%;
  box-shadow: 0 0 0 4px rgba(255,255,255,0.08);
  margin-bottom: 0.75rem;
}
.brevetti-cat-card__count {
  font-size: 2.25rem;
  font-weight: 800;
  color: #fff;
  line-height: 1;
  letter-spacing: -0.02em;
}
.brevetti-cat-card__name {
  font-size: 0.9375rem;
  font-weight: 600;
  color: rgba(255,255,255,0.85);
  margin-bottom: 0.75rem;
}
.brevetti-cat-card__bar-wrap {
  height: 4px;
  background: rgba(255,255,255,0.12);
  border-radius: 2px;
  overflow: hidden;
  margin-bottom: 0.375rem;
}
.brevetti-cat-card__bar {
  height: 100%;
  border-radius: 2px;
  transition: width 0.6s ease;
}
.brevetti-cat-card__pct {
  font-size: 0.8125rem;
  color: rgba(255,255,255,0.45);
}

/* Responsive */
@media (max-width: 1023px) {
  .brevetti-cats-row { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 767px) {
  .brevetti-counters-row { grid-template-columns: 1fr; }
  .brevetti-cats-row { grid-template-columns: repeat(2, 1fr); }
  .brevetti-counter-card { padding: 1.5rem; }
  .brevetti-counter-card__value { font-size: 2.5rem; }
}

/* §13 News cards v2
   ========================================================================== */
.news-grid-block { width: 100%; }

/* Griglia 3 colonne */
.news-grid-v2 {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
}

/* Card */
.news-card-v2 {
  background: var(--color-white);
  border-radius: 12px;
  overflow: hidden;
  border: 1px solid var(--color-border-gray);
  box-shadow: 0 1px 4px rgba(0,0,0,0.06);
  display: flex;
  flex-direction: column;
  transition: box-shadow var(--transition), transform var(--transition);
}
.news-card-v2:hover {
  box-shadow: 0 8px 24px rgba(0,0,0,0.10);
  transform: translateY(-3px);
}

/* Image area */
.news-card-v2__img-wrap {
  display: block;
  overflow: hidden;
  flex-shrink: 0;
  height: 220px;
}
.news-card-v2__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.4s ease;
}
.news-card-v2:hover .news-card-v2__img { transform: scale(1.04); }

/* Colored placeholder when no featured image */
.news-card-v2__placeholder {
  width: 100%;
  height: 100%;
  background-size: 28px 28px;
}
.news-card-v2__placeholder--evento {
  background-color: #DBEAFE;
  background-image: repeating-linear-gradient(
    -45deg,
    transparent, transparent 8px,
    rgba(147,197,253,0.5) 8px, rgba(147,197,253,0.5) 14px
  );
}
.news-card-v2__placeholder--notizia {
  background-color: #DCFCE7;
  background-image: repeating-linear-gradient(
    -45deg,
    transparent, transparent 8px,
    rgba(134,239,172,0.5) 8px, rgba(134,239,172,0.5) 14px
  );
}
.news-card-v2__placeholder--pubblicazione {
  background-color: #FEF9C3;
  background-image: repeating-linear-gradient(
    -45deg,
    transparent, transparent 8px,
    rgba(253,224,71,0.5) 8px, rgba(253,224,71,0.5) 14px
  );
}
.news-card-v2__placeholder--comunicato {
  background-color: #F3E8FF;
  background-image: repeating-linear-gradient(
    -45deg,
    transparent, transparent 8px,
    rgba(216,180,254,0.5) 8px, rgba(216,180,254,0.5) 14px
  );
}

/* Content area */
.news-card-v2__content {
  padding: 1.375rem 1.5rem 1.5rem;
  display: flex;
  flex-direction: column;
  flex: 1;
}

/* Meta row: badge + date */
.news-card-v2__meta {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin-bottom: 0.875rem;
}
.news-card-v2__date {
  font-size: 0.8125rem;
  color: var(--color-medium-gray);
}

/* Badges */
.news-badge {
  display: inline-block;
  font-size: 0.6875rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  padding: 0.2em 0.7em;
  border-radius: 4px;
  text-transform: uppercase;
  white-space: nowrap;
}
.news-badge--evento       { background: #EFF6FF; color: #1D4ED8; }
.news-badge--notizia      { background: #F0FDF4; color: #15803D; }
.news-badge--pubblicazione{ background: #FEFCE8; color: #A16207; }
.news-badge--comunicato   { background: #FAF5FF; color: #7E22CE; }

/* Title */
.news-card-v2__title {
  font-size: 1.0625rem;
  font-weight: 700;
  line-height: 1.4;
  margin: 0 0 0.625rem;
}
.news-card-v2__title a { color: var(--color-primary); text-decoration: none; }
.news-card-v2__title a:hover { color: var(--color-accent); }

/* Description */
.news-card-v2__desc {
  font-size: 0.875rem;
  color: var(--color-dark-gray);
  line-height: 1.65;
  margin: 0 0 auto;
  padding-bottom: 1.125rem;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* Link */
.news-card-v2__link {
  font-size: 0.9375rem;
  font-weight: 700;
  color: var(--color-accent);
  text-decoration: none;
  margin-top: 1rem;
  align-self: flex-start;
}
.news-card-v2__link:hover { text-decoration: underline; }

@media (max-width: 1023px) {
  .news-grid-v2 { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 767px) {
  .news-grid-v2 { grid-template-columns: 1fr; }
  .news-card-v2__img-wrap { height: 180px; }
}

/* §14 Intro section
   ========================================================================== */
.intro-section-inner {
  display: grid;
  grid-template-columns: 3fr 2fr;
  gap: 4rem;
  align-items: center;
}
.intro-section-inner img {
  border-radius: var(--radius-card);
  box-shadow: var(--shadow-card-hover);
}
/* §14b Intro section block (ucbm/intro-section)
   ========================================================================== */
.intro-section { background: var(--color-white); }
.intro-section__inner {
  display: grid;
  grid-template-columns: 55% 1fr;
  gap: 4rem;
  align-items: center;
  padding-block: 4.5rem;
}
.intro-section__text h2 { margin-bottom: 1.25rem; }
.intro-section__text p { color: var(--color-dark-gray); margin-bottom: 1rem; line-height: 1.7; }

.intro-section__divider {
  border: none;
  border-top: 1px solid var(--color-border-gray);
  margin: 1.5rem 0;
}

.intro-mini-stats {
  display: flex;
  gap: 2.5rem;
  flex-wrap: wrap;
  align-items: flex-start;
  margin: 0;
}
.intro-mini-stat { display: flex; flex-direction: column; gap: 0.3rem; }
.intro-mini-stat__num {
  font-family: var(--font-heading);
  font-size: 1.75rem;
  font-weight: 700;
  color: var(--color-primary);
  line-height: 1;
}
.intro-mini-stat__label {
  font-size: 0.6875rem;
  font-weight: 700;
  color: var(--color-medium-gray);
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.intro-section__cta { margin-top: 0.25rem; }

.intro-section__image { display: flex; align-items: center; }
.intro-campus-img {
  width: 100%;
  height: auto;
  display: block;
  object-fit: cover;
  border-radius: 12px;
  box-shadow: 0 8px 32px rgba(0,0,0,0.12);
}

@media (max-width: 1023px) {
  .intro-section__inner { grid-template-columns: 1fr; gap: 2rem; }
  .intro-section__image { display: none; }
}
@media (max-width: 767px) {
  .intro-mini-stats { gap: 1.75rem; }
  .intro-mini-stat__num { font-size: 1.5rem; }
}

/* §15 CTA strip
   ========================================================================== */
.cta-strip {
  background: #3567D6;
  color: white;
}
.cta-strip__inner {
  text-align: center;
  padding: 5rem 1.5rem;
  max-width: 720px;
  margin: 0 auto;
}
.cta-strip__title {
  font-size: clamp(1.875rem, 3.5vw, 2.625rem);
  font-weight: 800;
  color: white;
  margin: 0 0 1rem;
  line-height: 1.2;
}
.cta-strip__desc {
  font-size: 1.0625rem;
  color: rgba(255,255,255,0.85);
  max-width: 560px;
  margin: 0 auto 2.25rem;
  line-height: 1.65;
}
.cta-strip__btn {
  display: inline-block;
  background: white;
  color: #2B5FC0;
  font-weight: 700;
  font-size: 1rem;
  padding: 0.875rem 2.5rem;
  border-radius: 8px;
  text-decoration: none;
  transition: box-shadow var(--transition), transform var(--transition);
}
.cta-strip__btn:hover {
  box-shadow: 0 6px 20px rgba(0,0,0,0.18);
  transform: translateY(-2px);
  text-decoration: none;
  color: #2B5FC0;
}

/* §16 Language switcher
   ========================================================================== */
.ucbm-language-switcher { display: inline-flex; }
.ucbm-language-switcher__list { list-style: none; margin: 0; padding: 0; display: flex; gap: 0.125rem; }
.ucbm-language-switcher__link {
  display: block;
  padding: 0.25rem 0.5rem;
  font-size: 0.8125rem;
  font-weight: 700;
  color: var(--color-medium-gray);
  border-radius: 3px;
  letter-spacing: 0.03em;
}
.ucbm-language-switcher__link:hover { color: var(--color-primary); background: var(--color-light-gray); text-decoration: none; }
.ucbm-language-switcher__link.is-current { color: var(--color-primary); pointer-events: none; }

/* §17 Editor placeholder
   ========================================================================== */
.ucbm-block-placeholder {
  background: #eef3ff;
  border: 2px dashed #8faee0;
  border-radius: var(--radius-card);
  padding: 2rem;
  text-align: center;
  color: var(--color-primary);
  font-weight: 500;
  font-family: var(--font-heading);
}
.ucbm-block-placeholder p { margin: 0.25rem 0 0; font-size: 0.875rem; color: var(--color-medium-gray); }

/* §18 Responsive
   ========================================================================== */
@media (max-width: 1023px) {
  .spinoff-grid { grid-template-columns: repeat(2, 1fr); }
  .footer-inner { grid-template-columns: 1fr 1fr; }
  .footer-brand { grid-column: 1 / -1; }
  .intro-section-inner { grid-template-columns: 1fr; gap: 2rem; }
  .intro-section-inner > img { display: none; }
}

@media (max-width: 767px) {
  h1 { font-size: 2rem; }
  h2 { font-size: 1.625rem; }

  .header-inner { height: 60px; }
  .primary-nav, .header-utils__ext { display: none; }
  .hamburger { display: flex; }

  .ucbm-hero-block { min-height: 560px; }
  .ucbm-hero-block__inner { padding-block: 4rem; }

  .ucbm-stats-counter { grid-template-columns: repeat(2, 1fr); gap: 1rem; padding: 2rem 0; }
  .stats-bar__number { font-size: 2.25rem; }

  .spinoff-grid { grid-template-columns: 1fr; }

  .footer-inner { grid-template-columns: 1fr; gap: 2.5rem; padding-bottom: 2.5rem; }
  .footer-bottom__inner { flex-direction: column; text-align: center; gap: 0.5rem; }

  .cta-strip__inner { padding: 3.5rem 1.5rem; }
  .cta-strip__title { font-size: 1.875rem; }

  .ucbm-hero-block__cta { flex-direction: column; }
  .section-header { flex-direction: column; align-items: flex-start; gap: 0.5rem; }
}

/* ==========================================================================
   §19 Page hero (inner pages)
   ========================================================================== */
.page-hero--navy {
  background: var(--color-primary);
  color: white;
  padding: 3.5rem 0 3rem;
}
.page-hero__inner { position: relative; z-index: 1; }
.page-hero--navy h1 { color: white; margin-bottom: 0.75rem; font-size: clamp(1.75rem, 4vw, 2.5rem); }
.page-hero__subtitle { color: rgba(255,255,255,0.8); font-size: 1.0625rem; margin: 0; }

/* Breadcrumb */
.breadcrumb {
  list-style: none;
  margin: 0 0 1.25rem;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem;
  font-size: 0.8125rem;
}
.breadcrumb__item { display: flex; align-items: center; }
.breadcrumb__item + .breadcrumb__item::before {
  content: '/';
  margin-right: 0.25rem;
  color: rgba(255,255,255,0.4);
}
.breadcrumb__item a { color: rgba(255,255,255,0.7); }
.breadcrumb__item a:hover { color: white; text-decoration: none; }
.breadcrumb__item.is-current { color: rgba(255,255,255,0.9); }

/* ==========================================================================
   §20 Spinoff detail — single page completa
   ========================================================================== */

/* ① Hero header navy */
.spinoff-hero {
  background: #0D1B4B;
  color: white;
  padding: 0 0 3.5rem;
}
.spinoff-hero__inner { padding-top: 1.5rem; }

.spinoff-hero__breadcrumb .breadcrumb { display: flex; gap: 0.5rem; list-style: none; padding: 0; margin: 0 0 2rem; flex-wrap: wrap; }
.spinoff-hero__breadcrumb .breadcrumb__item { font-size: 0.8125rem; color: rgba(255,255,255,0.5); }
.spinoff-hero__breadcrumb .breadcrumb__item + .breadcrumb__item::before { content: '/'; margin-right: 0.5rem; }
.spinoff-hero__breadcrumb .breadcrumb__item a { color: rgba(255,255,255,0.7); text-decoration: none; }
.spinoff-hero__breadcrumb .breadcrumb__item a:hover { color: white; }
.spinoff-hero__breadcrumb .breadcrumb__item.is-current { color: rgba(255,255,255,0.5); }

.spinoff-hero__content {
  display: flex;
  gap: 2.5rem;
  align-items: flex-start;
}
.spinoff-hero__logo {
  flex-shrink: 0;
  width: 88px;
  height: 88px;
  border-radius: 16px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 2rem;
  font-weight: 800;
  color: white;
  letter-spacing: -0.03em;
}
.spinoff-hero__logo img { width: 100%; height: 100%; object-fit: contain; border-radius: 12px; }

.spinoff-hero__info { flex: 1; min-width: 0; }
.spinoff-hero__badge {
  display: inline-block;
  font-size: 0.625rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 0.25em 0.8em;
  border-radius: 4px;
  margin-bottom: 0.875rem;
}
.spinoff-hero__title {
  font-size: clamp(2rem, 4vw, 3rem);
  font-weight: 800;
  color: white;
  margin: 0 0 0.75rem;
  line-height: 1.1;
}
.spinoff-hero__tagline {
  font-size: 1.125rem;
  color: rgba(255,255,255,0.75);
  margin: 0 0 1.5rem;
  line-height: 1.5;
}
.spinoff-hero__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 1.25rem;
  margin-bottom: 1.75rem;
}
.spinoff-hero__meta-item {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.9rem;
  color: rgba(255,255,255,0.65);
}
.spinoff-hero__meta-link { text-decoration: none; transition: color 0.2s; }
.spinoff-hero__meta-link:hover { color: white; }
.spinoff-hero__cta {
  border-color: rgba(255,255,255,0.5);
  color: white;
}
.spinoff-hero__cta:hover { border-color: white; color: white; background: rgba(255,255,255,0.1); }

/* ② Sezioni corpo */
.so-section { padding: 4rem 0; }
.so-section--white { background: var(--color-white); }
.so-section--light { background: var(--color-light-gray); }

.so-section__inner {
  display: grid;
  grid-template-columns: 200px 1fr;
  gap: 3.5rem;
  align-items: start;
}
.so-section__label {
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--color-medium-gray);
  padding-top: 0.4rem;
  position: sticky;
  top: 88px;
}
.so-prose p { color: var(--color-dark-gray); line-height: 1.75; margin-bottom: 1rem; }
.so-prose p:last-child { margin-bottom: 0; }
.so-prose strong { color: var(--color-primary); }

/* Punti chiave grid */
.so-punti-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1rem;
  margin-top: 2rem;
}
.so-punto {
  background: var(--color-white);
  border: 1px solid var(--color-border-gray);
  border-radius: 10px;
  padding: 1.25rem;
  display: flex;
  gap: 1rem;
  align-items: flex-start;
  border-top: 3px solid var(--accent, #0066CC);
}
.so-punto__icon { font-size: 1.5rem; flex-shrink: 0; line-height: 1; }
.so-punto p { margin: 0; font-size: 0.9375rem; color: var(--color-dark-gray); line-height: 1.5; }

/* Brevetti */
.so-brevetti-list { display: flex; flex-direction: column; gap: 1rem; }
.so-brevetto-card {
  display: flex;
  gap: 1.25rem;
  align-items: flex-start;
  padding: 1.25rem;
  background: var(--color-light-gray);
  border-radius: 10px;
}
.so-brevetto-card__icon { font-size: 1.5rem; flex-shrink: 0; width: 44px; height: 44px; border-radius: 8px; display: flex; align-items: center; justify-content: center; }
.so-brevetto-card__title { display: block; font-weight: 700; color: var(--color-primary); margin-bottom: 0.25rem; }
.so-brevetto-card__meta { font-size: 0.8125rem; color: var(--color-medium-gray); display: block; margin-bottom: 0.375rem; }
.so-brevetto-card__desc { font-size: 0.875rem; color: var(--color-dark-gray); margin: 0; }

/* ⑤ CTA band */
.so-cta-band {
  background: var(--color-light-gray);
  padding: 4rem 0;
  border-top: 1px solid var(--color-border-gray);
}
.so-cta-band__inner {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 2rem;
  flex-wrap: wrap;
}
.so-cta-band h2 { font-size: 1.375rem; margin: 0 0 0.5rem; }
.so-cta-band p { margin: 0; color: var(--color-medium-gray); font-size: 0.9375rem; }

/* ⑥ Prev/Next */
.so-prevnext {
  display: flex;
  justify-content: space-between;
  align-items: stretch;
  padding: 2.5rem 0;
  border-top: 1px solid var(--color-border-gray);
  gap: 1rem;
}
.so-prevnext__link {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  text-decoration: none;
  padding: 1rem 1.25rem;
  border-radius: var(--radius-card);
  border: 1px solid var(--color-border-gray);
  transition: border-color var(--transition), box-shadow var(--transition);
  max-width: 280px;
}
.so-prevnext__link:hover { border-color: var(--color-accent); box-shadow: var(--shadow-card); text-decoration: none; }
.so-prevnext__link--next { margin-left: auto; text-align: right; }
.so-prevnext__dir { font-size: 0.8125rem; color: var(--color-medium-gray); }
.so-prevnext__name { font-weight: 700; color: var(--color-primary); font-size: 0.9375rem; }

@media (max-width: 1023px) {
  .so-section__inner { grid-template-columns: 1fr; gap: 1.5rem; }
  .so-section__label { position: static; }
  .so-punti-grid { grid-template-columns: 1fr; }
}
@media (max-width: 767px) {
  .spinoff-hero__content { flex-direction: column; gap: 1.5rem; }
  .spinoff-hero__logo { width: 64px; height: 64px; font-size: 1.5rem; }
  .so-cta-band__inner { flex-direction: column; }
  .so-prevnext { flex-direction: column; }
  .so-prevnext__link { max-width: 100%; }
  .so-prevnext__link--next { margin-left: 0; text-align: left; }
}

/* ==========================================================================
   §21 Brevetti accordion (design nuovo)
   ========================================================================== */

/* Blocco wrapper */
.brevetti-accordion-block { display: flex; flex-direction: column; gap: 0.75rem; width: 100%; }

/* Item container */
.brev-accordion__item {
  border: 1px solid var(--color-border-gray);
  border-radius: 12px;
  overflow: hidden;
  background: var(--color-white);
  transition: box-shadow var(--transition);
}
.brev-accordion__item:hover { box-shadow: 0 2px 12px rgba(0,0,0,0.07); }
.brev-accordion__item.is-open { border-color: var(--color-accent); box-shadow: 0 2px 12px rgba(0,102,204,0.1); }

/* Trigger / header */
.brev-accordion__trigger {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 1.25rem 1.5rem;
  background: none;
  border: none;
  cursor: pointer;
  text-align: left;
  font-family: var(--font-heading);
  color: var(--color-primary);
  transition: background var(--transition);
}
.brev-accordion__trigger:hover { background: var(--color-light-gray); }
.brev-accordion__trigger[aria-expanded="true"] { background: var(--color-light-gray); }

.brev-accordion__trigger-left {
  display: flex;
  align-items: center;
  gap: 0.875rem;
  flex: 1;
  min-width: 0;
}
.brev-accordion__dot {
  width: 12px;
  height: 12px;
  border-radius: 50%;
  flex-shrink: 0;
}
.brev-accordion__cat-name {
  font-size: 1.0625rem;
  font-weight: 700;
  color: var(--color-primary);
}
.brev-accordion__badge {
  font-size: 0.6875rem;
  font-weight: 700;
  padding: 0.2em 0.65em;
  border-radius: 4px;
  white-space: nowrap;
}
.brev-accordion__chevron {
  color: var(--color-medium-gray);
  transition: transform 0.25s ease;
  flex-shrink: 0;
}
.brev-accordion__trigger[aria-expanded="true"] .brev-accordion__chevron {
  transform: rotate(180deg);
}

/* Panel content */
.brev-accordion__panel { background: var(--color-white); }
.brev-accordion__panel[hidden] { display: none; }
.brev-list {
  padding: 0 1.5rem;
  display: flex;
  flex-direction: column;
}

/* Singolo brevetto */
.brev-item {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 1.5rem;
  padding: 1.25rem 0;
  border-bottom: 1px solid var(--color-border-gray);
}
.brev-item:last-child { border-bottom: 0; padding-bottom: 1.5rem; }
.brev-item__body { flex: 1; min-width: 0; }

.brev-item__header {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  flex-wrap: wrap;
  margin-bottom: 0.5rem;
}
.brev-item__title {
  font-size: 0.9375rem;
  font-weight: 700;
  color: var(--color-primary);
  margin: 0;
  line-height: 1.4;
  flex: 1;
}
.brev-item__tags { display: flex; gap: 0.375rem; flex-shrink: 0; flex-wrap: wrap; }

.brev-tag {
  display: inline-block;
  font-size: 0.625rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  padding: 0.2em 0.6em;
  border-radius: 4px;
}
.brev-tag--licenza { background: #ECFDF5; color: #065F46; }
.brev-tag--anno    { background: var(--color-light-gray); color: var(--color-medium-gray); }

.brev-item__desc {
  font-size: 0.875rem;
  color: var(--color-dark-gray);
  line-height: 1.65;
  margin: 0 0 0.625rem;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.brev-item__meta {
  display: flex;
  align-items: center;
  gap: 1.25rem;
  flex-wrap: wrap;
}
.brev-item__numero {
  font-size: 0.8125rem;
  color: var(--color-medium-gray);
  font-family: monospace;
  display: flex;
  align-items: center;
  gap: 0.3rem;
}
.brev-item__spinoff-link {
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--color-accent);
  text-decoration: none;
}
.brev-item__spinoff-link:hover { text-decoration: underline; }
.brev-item__pdf { flex-shrink: 0; align-self: center; }

/* Legacy accordion (altre pagine) */
.accordion { width: 100%; }
.accordion__item { border: 1px solid var(--color-border-gray); border-radius: var(--radius-card); margin-bottom: 0.75rem; overflow: hidden; }
.accordion__trigger { width: 100%; display: flex; align-items: center; gap: 1rem; padding: 1.25rem 1.5rem; background: var(--color-white); border: none; cursor: pointer; text-align: left; font-family: var(--font-heading); transition: background var(--transition); }
.accordion__trigger:hover { background: var(--color-light-gray); }
.accordion__trigger[aria-expanded="true"] { background: var(--color-primary); color: white; }
.accordion__title { font-size: 1rem; font-weight: 600; color: var(--color-primary); flex: 1; }
.accordion__count { font-size: 0.8125rem; color: var(--color-medium-gray); }
.accordion__icon { font-size: 1.25rem; font-weight: 300; color: var(--color-medium-gray); margin-left: auto; line-height: 1; transition: transform var(--transition); min-width: 20px; text-align: center; }
.accordion__content { padding: 1.5rem; background: var(--color-white); }
.accordion__content[hidden] { display: none; }

/* ==========================================================================
   §22 Archive news page
   ========================================================================== */
.news-archive-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
  padding: 3rem 0 4rem;
}
.news-archive-pagination { display: flex; justify-content: center; gap: 0.5rem; padding-bottom: 3rem; }
.news-archive-pagination a,
.news-archive-pagination span {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: var(--radius-card);
  border: 1px solid var(--color-border-gray);
  font-size: 0.9375rem;
  color: var(--color-dark-gray);
}
.news-archive-pagination a:hover { background: var(--color-primary); color: white; border-color: var(--color-primary); text-decoration: none; }
.news-archive-pagination .current { background: var(--color-primary); color: white; border-color: var(--color-primary); }

/* ==========================================================================
   §23 Single news
   ========================================================================== */
.single-news-header { padding: 3rem 0 2rem; }
.single-news-header time { font-size: 0.8125rem; color: var(--color-medium-gray); display: block; margin-bottom: 0.5rem; }
.single-news-header h1 { font-size: clamp(1.75rem, 4vw, 2.75rem); }
.single-news-featured-img { margin-bottom: 2.5rem; border-radius: var(--radius-card); overflow: hidden; }
.single-news-featured-img img { width: 100%; height: auto; max-height: 480px; object-fit: cover; }
.single-news-content { max-width: 720px; }
.single-news-content p { font-size: 1.0625rem; line-height: 1.75; color: var(--color-dark-gray); }

@media (max-width: 767px) {
  .spinoff-header__inner { grid-template-columns: 1fr; gap: 1.5rem; }
  .spinoff-header__logo { max-width: 160px; }
  .spinoff-punti-chiave { grid-template-columns: 1fr; }
  .news-archive-grid { grid-template-columns: 1fr; }
  .spinoff-prevnext { flex-direction: column; gap: 1rem; }
  .spinoff-prevnext__link--next { margin-left: 0; }
}

/* §24 Spinoff Showcase (Carousel/Slider)
   ========================================================================== */
.spinoff-showcase {
  background: var(--color-light-gray);
  padding: 4.5rem 0 5rem;
}

/* Header row */
.spinoff-showcase__header {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  margin-bottom: 2.5rem;
  gap: 1.5rem;
}
.spinoff-showcase__header-text { flex: 1; }
.spinoff-showcase__title {
  font-size: 2rem;
  font-weight: 800;
  color: var(--color-primary);
  margin: 0 0 0.375rem;
  line-height: 1.2;
}
.spinoff-showcase__subtitle {
  font-size: 0.9375rem;
  color: var(--color-medium-gray);
  margin: 0;
}

/* Carousel */
.spinoff-carousel { position: relative; }
.spinoff-carousel__wrapper { overflow: hidden; }
.spinoff-carousel__track {
  display: flex;
  gap: 1.5rem;
  transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

/* Card */
.spinoff-card-showcase {
  background: var(--color-white);
  border: 1px solid var(--color-border-gray);
  border-radius: var(--radius-card);
  padding: 1.5rem;
  box-shadow: 0 1px 4px rgba(0,0,0,0.06);
  display: flex;
  flex-direction: column;
  flex: 0 0 calc(25% - 1.125rem);
  min-width: calc(25% - 1.125rem);
  transition: box-shadow var(--transition), transform var(--transition);
}
.spinoff-card-showcase:hover {
  box-shadow: 0 8px 24px rgba(0,0,0,0.12);
  transform: translateY(-3px);
}

/* Card header: logo LEFT + nome/settore RIGHT */
.spinoff-card-showcase__header {
  display: flex;
  align-items: flex-start;
  gap: 0.875rem;
  margin-bottom: 1rem;
}
.spinoff-card-showcase__logo {
  width: 44px;
  height: 44px;
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  font-size: 1rem;
  letter-spacing: -0.02em;
  color: #fff;
  flex-shrink: 0;
}
.spinoff-card-showcase__logo.logo-digital { background: #0EA5C2; }
.spinoff-card-showcase__logo.logo-biotech  { background: #2E7D32; }
.spinoff-card-showcase__logo.logo-medtech  { background: #C0392B; }
.spinoff-card-showcase__logo.logo-pharma   { background: #7B2CBF; }

.spinoff-card-showcase__meta {
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
  min-width: 0;
}
.spinoff-card-showcase__name {
  font-size: 1.0625rem;
  font-weight: 700;
  color: var(--color-primary);
  margin: 0;
  line-height: 1.25;
}
/* Sector badge pill */
.spinoff-card-showcase__badge {
  display: inline-block;
  font-size: 0.625rem;
  font-weight: 700;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  padding: 0.2em 0.65em;
  border-radius: 4px;
  line-height: 1.6;
}
.spinoff-card-showcase__badge.badge-digital { background: #E0F4F8; color: #0E7A95; }
.spinoff-card-showcase__badge.badge-biotech  { background: #E8F5E9; color: #2E7D32; }
.spinoff-card-showcase__badge.badge-medtech  { background: #FDECEA; color: #B71C1C; }
.spinoff-card-showcase__badge.badge-pharma   { background: #F3E5F5; color: #6A1B9A; }

/* Description */
.spinoff-card-showcase__desc {
  font-size: 0.875rem;
  color: var(--color-dark-gray);
  line-height: 1.6;
  margin: 0 0 auto;
  padding-bottom: 1rem;
  display: -webkit-box;
  -webkit-line-clamp: 4;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* Footer: year left, link right */
.spinoff-card-showcase__footer {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: 1rem;
  padding-top: 0.875rem;
  border-top: 1px solid var(--color-border-gray);
}
.spinoff-card-showcase__year {
  font-size: 0.8125rem;
  color: var(--color-medium-gray);
}
.spinoff-card-showcase__link {
  font-size: 0.875rem;
  font-weight: 700;
  color: var(--color-accent);
  text-decoration: none;
  white-space: nowrap;
}
.spinoff-card-showcase__link:hover { text-decoration: underline; }

/* Controls row */
.spinoff-carousel__controls {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 1.5rem;
  margin-top: 2.5rem;
}
.spinoff-carousel__btn {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: var(--color-white);
  border: 1.5px solid var(--color-border-gray);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--color-primary);
  transition: border-color var(--transition), color var(--transition);
  padding: 0;
}
.spinoff-carousel__btn:hover {
  border-color: var(--color-accent);
  color: var(--color-accent);
}
.spinoff-carousel__btn:disabled {
  opacity: 0.35;
  cursor: not-allowed;
}
.spinoff-carousel__dots {
  display: flex;
  gap: 0.5rem;
  align-items: center;
}
.spinoff-carousel__dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: var(--color-border-gray);
  border: none;
  cursor: pointer;
  padding: 0;
  transition: background var(--transition), transform var(--transition);
}
.spinoff-carousel__dot.is-active {
  background: var(--color-primary);
  transform: scale(1.3);
}

@media (max-width: 1023px) {
  .spinoff-card-showcase {
    flex: 0 0 calc(50% - 0.75rem);
    min-width: calc(50% - 0.75rem);
  }
}
@media (max-width: 767px) {
  .spinoff-showcase { padding: 2.5rem 0; }
  .spinoff-showcase__header { flex-direction: column; align-items: flex-start; gap: 1rem; }
  .spinoff-card-showcase {
    flex: 0 0 calc(100% - 0px);
    min-width: 100%;
  }
}

/* ==========================================================================
   §25 Single Brevetto (brevetto-detail block)
   ========================================================================== */

/* ① Hero navy */
.brev-hero {
  background: #0D1B4B;
  color: white;
  padding-bottom: 3.5rem;
}
.brev-hero__inner { padding-top: 1.5rem; }

.brev-hero__breadcrumb .breadcrumb { display:flex; gap:0.5rem; list-style:none; padding:0; margin:0 0 2rem; flex-wrap:wrap; }
.brev-hero__breadcrumb .breadcrumb__item { font-size:0.8125rem; color:rgba(255,255,255,0.5); }
.brev-hero__breadcrumb .breadcrumb__item + .breadcrumb__item::before { content:'/'; margin-right:0.5rem; }
.brev-hero__breadcrumb .breadcrumb__item a { color:rgba(255,255,255,0.7); text-decoration:none; }
.brev-hero__breadcrumb .breadcrumb__item a:hover { color:white; }

.brev-hero__content { display:flex; gap:2rem; align-items:flex-start; }

.brev-hero__icon {
  flex-shrink: 0;
  width: 72px;
  height: 72px;
  border-radius: 14px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.brev-hero__icon-dot {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  display: block;
}

.brev-hero__info { flex: 1; min-width: 0; }
.brev-hero__badges { display:flex; flex-wrap:wrap; gap:0.5rem; margin-bottom:1rem; }
.brev-hero__badge {
  display: inline-block;
  font-size: 0.625rem;
  font-weight: 700;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  padding: 0.25em 0.75em;
  border-radius: 4px;
}
.brev-hero__badge--licenza { background: #ECFDF5; color: #065F46; }

.brev-hero__title {
  font-size: clamp(1.5rem, 3.5vw, 2.5rem);
  font-weight: 800;
  color: white;
  margin: 0 0 0.875rem;
  line-height: 1.2;
}
.brev-hero__desc {
  font-size: 1rem;
  color: rgba(255,255,255,0.7);
  margin: 0 0 1.5rem;
  line-height: 1.6;
  max-width: 680px;
}
.brev-hero__meta { display:flex; flex-wrap:wrap; gap:0.875rem; }
.brev-hero__meta-pill {
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
  background: rgba(255,255,255,0.1);
  border: 1px solid rgba(255,255,255,0.15);
  border-radius: 6px;
  padding: 0.3em 0.75em;
  font-size: 0.8125rem;
  color: rgba(255,255,255,0.85);
  font-family: var(--font-heading);
}

/* ② Sezioni corpo */
.brev-section { padding: 3.5rem 0; }
.brev-section--white { background: var(--color-white); border-bottom: 1px solid var(--color-border-gray); }
.brev-section--light { background: var(--color-light-gray); border-bottom: 1px solid var(--color-border-gray); }

.brev-section__inner {
  display: grid;
  grid-template-columns: 180px 1fr;
  gap: 3rem;
  align-items: start;
}
.brev-section__label {
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--color-medium-gray);
  padding-top: 0.3rem;
  position: sticky;
  top: 88px;
}

.brev-prose p { color:var(--color-dark-gray); line-height:1.75; margin-bottom:1rem; }
.brev-prose p:last-child { margin-bottom:0; }
.brev-prose strong { color:var(--color-primary); }

/* Paesi */
.brev-countries {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
  gap: 0.75rem;
}
.brev-country {
  background: var(--color-white);
  border: 1px solid var(--color-border-gray);
  border-radius: 10px;
  padding: 0.875rem 1rem;
  display: flex;
  align-items: center;
  gap: 0.625rem;
}
.brev-country__flag { font-size: 1.375rem; flex-shrink: 0; }
.brev-country__name { font-size: 0.8125rem; font-weight: 600; color: var(--color-primary); }
.brev-country__code { font-size: 0.6875rem; color: var(--color-medium-gray); margin-left: auto; font-weight: 700; }

/* Inventori */
.brev-inventori { display:flex; flex-wrap:wrap; gap:0.75rem; }
.brev-inventore {
  display: flex;
  align-items: center;
  gap: 0.625rem;
  background: var(--color-light-gray);
  border-radius: 100px;
  padding: 0.375rem 1rem 0.375rem 0.375rem;
}
.brev-inventore__avatar {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: var(--color-primary);
  color: white;
  font-size: 0.75rem;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.brev-inventore__name { font-size: 0.875rem; font-weight: 600; color: var(--color-primary); }

/* Spin-off correlata card */
.brev-spinoff-card {
  display: flex;
  justify-content: space-between;
  align-items: center;
  background: var(--color-white);
  border: 1px solid var(--color-border-gray);
  border-radius: 12px;
  padding: 1.25rem 1.5rem;
  text-decoration: none;
  transition: box-shadow var(--transition), border-color var(--transition);
  max-width: 520px;
}
.brev-spinoff-card:hover { box-shadow: var(--shadow-card-hover); border-color: var(--color-accent); }
.brev-spinoff-card__name { display:block; font-size:1.0625rem; font-weight:700; color:var(--color-primary); margin-bottom:0.25rem; }
.brev-spinoff-card__settore { font-size:0.6875rem; font-weight:700; text-transform:uppercase; letter-spacing:0.07em; color:var(--color-medium-gray); display:block; margin-bottom:0.375rem; }
.brev-spinoff-card__tagline { font-size:0.875rem; color:var(--color-dark-gray); margin:0; }
.brev-spinoff-card__arrow { font-size:1.25rem; color:var(--color-accent); flex-shrink:0; margin-left:1rem; }

/* ⑥ CTA band */
.brev-cta-band {
  background: var(--color-primary);
  color: white;
  padding: 3.5rem 0;
}
.brev-cta-band__inner {
  display: flex;
  gap: 3rem;
  align-items: center;
  flex-wrap: wrap;
}
.brev-download-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.625rem;
  background: rgba(255,255,255,0.12);
  border: 1.5px solid rgba(255,255,255,0.3);
  border-radius: 8px;
  padding: 0.875rem 1.5rem;
  color: white;
  font-weight: 600;
  text-decoration: none;
  font-size: 0.9375rem;
  white-space: nowrap;
  transition: background var(--transition), border-color var(--transition);
  flex-shrink: 0;
}
.brev-download-btn:hover { background:rgba(255,255,255,0.2); border-color:rgba(255,255,255,0.5); color:white; }
.brev-cta-band__text { flex: 1; min-width: 0; }
.brev-cta-band__text h3 { font-size:1.25rem; font-weight:700; color:white; margin:0 0 0.375rem; }
.brev-cta-band__text p { color:rgba(255,255,255,0.75); margin:0 0 1.25rem; font-size:0.9375rem; }

/* ⑦ Brevetti correlati */
.brev-related__title { font-size:1.25rem; margin-bottom:1.25rem; }
.brev-related__title em { font-style:normal; color:var(--color-accent); }
.brev-related-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1rem;
}
.brev-related-card {
  background: var(--color-light-gray);
  border: 1px solid var(--color-border-gray);
  border-radius: 10px;
  padding: 1.25rem;
  text-decoration: none;
  transition: box-shadow var(--transition), border-color var(--transition);
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.brev-related-card:hover { box-shadow:var(--shadow-card); border-color:var(--color-accent); }
.brev-related-card__header { display:flex; gap:0.375rem; flex-wrap:wrap; }
.brev-related-card h3 { font-size:0.875rem; font-weight:600; color:var(--color-primary); margin:0; line-height:1.4; }
.brev-related-card__numero { font-size:0.75rem; color:var(--color-medium-gray); font-family:monospace; }

/* ⑧ Prev/Next */
.brev-prevnext {
  display: flex;
  justify-content: space-between;
  padding: 2.5rem 0;
  gap: 1rem;
  border-top: 1px solid var(--color-border-gray);
}
.brev-prevnext__link {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  text-decoration: none;
  padding: 1rem 1.25rem;
  border: 1px solid var(--color-border-gray);
  border-radius: var(--radius-card);
  max-width: 320px;
  transition: border-color var(--transition), box-shadow var(--transition);
}
.brev-prevnext__link:hover { border-color:var(--color-accent); box-shadow:var(--shadow-card); text-decoration:none; }
.brev-prevnext__link--next { margin-left:auto; text-align:right; }
.brev-prevnext__dir { font-size:0.8125rem; color:var(--color-medium-gray); }
.brev-prevnext__name { font-size:0.875rem; font-weight:700; color:var(--color-primary); }

/* Responsive */
@media (max-width: 1023px) {
  .brev-section__inner { grid-template-columns: 1fr; gap: 1.25rem; }
  .brev-section__label { position:static; }
  .brev-related-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 767px) {
  .brev-hero__content { flex-direction: column; gap: 1.25rem; }
  .brev-cta-band__inner { flex-direction: column; gap: 1.5rem; }
  .brev-related-grid { grid-template-columns: 1fr; }
  .brev-prevnext { flex-direction: column; }
  .brev-prevnext__link { max-width: 100%; }
  .brev-prevnext__link--next { margin-left: 0; text-align: left; }
}

/* ==========================================================================
   §26 Single News (news-detail block)
   ========================================================================== */

/* ① Hero navy */
.news-hero {
  background: var(--color-primary);
  color: white;
  padding: 2rem 0 3rem;
}
.news-hero__breadcrumb .breadcrumb { display:flex; gap:0.5rem; list-style:none; padding:0; margin:0 0 1.5rem; flex-wrap:wrap; }
.news-hero__breadcrumb .breadcrumb__item { font-size:0.8125rem; color:rgba(255,255,255,0.5); }
.news-hero__breadcrumb .breadcrumb__item + .breadcrumb__item::before { content:'/'; margin-right:0.5rem; }
.news-hero__breadcrumb .breadcrumb__item a { color:rgba(255,255,255,0.7); text-decoration:none; }
.news-hero__breadcrumb .breadcrumb__item a:hover { color:white; }

.news-hero__meta {
  display: flex;
  align-items: center;
  gap: 0.875rem;
  margin-bottom: 1rem;
}
.news-hero__date {
  font-size: 0.9rem;
  color: rgba(255,255,255,0.65);
}
.news-hero__title {
  font-size: clamp(1.5rem, 4vw, 2.5rem);
  font-weight: 800;
  color: white;
  margin: 0 0 1rem;
  line-height: 1.2;
  max-width: 820px;
}
.news-hero__spinoff {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  font-size: 0.875rem;
  color: rgba(255,255,255,0.7);
  margin-top: 0.5rem;
}
.news-hero__spinoff a { color: rgba(255,255,255,0.9); font-weight:600; text-decoration:none; }
.news-hero__spinoff a:hover { color: white; text-decoration: underline; }

/* ② Immagine */
.news-featured-img { margin: 2rem auto; }
.news-featured-img__img {
  width: 100%;
  max-height: 480px;
  object-fit: cover;
  border-radius: 12px;
  display: block;
}

/* ③ Layout articolo: corpo + sidebar */
.news-article-layout {
  display: grid;
  grid-template-columns: 1fr 300px;
  gap: 3rem;
  align-items: start;
  padding-top: 2.5rem;
  padding-bottom: 4rem;
}
.news-article-body {
  min-width: 0;
  font-size: 1.0625rem;
  line-height: 1.8;
  color: var(--color-dark-gray);
}
.news-article-body p { margin-bottom: 1.25rem; }
.news-article-body h2 { font-size: 1.375rem; margin: 2rem 0 0.875rem; color: var(--color-primary); }
.news-article-body h3 { font-size: 1.125rem; margin: 1.75rem 0 0.625rem; color: var(--color-primary); }
.news-article-body blockquote {
  border-left: 4px solid var(--color-accent);
  margin: 1.75rem 0;
  padding: 0.75rem 1.25rem;
  background: var(--color-light-gray);
  border-radius: 0 8px 8px 0;
}
.news-article-body blockquote p { margin: 0; font-style: italic; color: var(--color-medium-gray); }
.news-article-body strong { color: var(--color-primary); }

/* Sidebar */
.news-article-sidebar {
  position: sticky;
  top: 88px;
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
}
.news-sidebar-box {
  background: var(--color-light-gray);
  border: 1px solid var(--color-border-gray);
  border-radius: 12px;
  padding: 1.25rem;
}
.news-sidebar-box h3 {
  font-size: 0.6875rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--color-medium-gray);
  margin: 0 0 0.875rem;
}
.news-sidebar-dl { display:grid; grid-template-columns:auto 1fr; gap:0.5rem 1rem; font-size:0.875rem; margin:0; }
.news-sidebar-dl dt { color:var(--color-medium-gray); font-weight:600; }
.news-sidebar-dl dd { margin:0; color:var(--color-dark-gray); }

.news-sidebar-box--spinoff { background:white; }
.news-sidebar-spinoff { display:flex; flex-direction:column; gap:0.25rem; text-decoration:none; }
.news-sidebar-spinoff strong { font-size:1rem; font-weight:700; color:var(--color-primary); }
.news-sidebar-spinoff__settore { font-size:0.6875rem; font-weight:700; text-transform:uppercase; letter-spacing:0.07em; color:var(--color-medium-gray); }
.news-sidebar-spinoff p { font-size:0.875rem; color:var(--color-dark-gray); margin:0.25rem 0; }
.news-sidebar-spinoff__link { font-size:0.875rem; font-weight:700; color:var(--color-accent); margin-top:0.25rem; }

/* Share buttons */
.news-share-btns { display:flex; gap:0.5rem; }
.news-share-btn {
  flex: 1;
  text-align: center;
  padding: 0.5rem;
  border-radius: 6px;
  font-size: 0.8125rem;
  font-weight: 600;
  text-decoration: none;
  transition: opacity var(--transition);
}
.news-share-btn:hover { opacity: 0.85; text-decoration:none; }
.news-share-btn--linkedin { background: #0077B5; color: white; }
.news-share-btn--twitter  { background: #000; color: white; }

/* ④ Prev/Next */
.news-prevnext {
  display: flex;
  justify-content: space-between;
  padding: 2rem 0 3rem;
  border-top: 1px solid var(--color-border-gray);
  gap: 1rem;
}
.news-prevnext__link {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  text-decoration: none;
  padding: 1rem 1.25rem;
  border: 1px solid var(--color-border-gray);
  border-radius: var(--radius-card);
  max-width: 320px;
  transition: border-color var(--transition), box-shadow var(--transition);
}
.news-prevnext__link:hover { border-color:var(--color-accent); box-shadow:var(--shadow-card); text-decoration:none; }
.news-prevnext__link--next { margin-left:auto; text-align:right; }
.news-prevnext__dir { font-size:0.8125rem; color:var(--color-medium-gray); }
.news-prevnext__name { font-size:0.875rem; font-weight:700; color:var(--color-primary); }

@media (max-width: 1023px) {
  .news-article-layout { grid-template-columns: 1fr; }
  .news-article-sidebar { position: static; }
}
@media (max-width: 767px) {
  .news-prevnext { flex-direction: column; }
  .news-prevnext__link { max-width:100%; }
  .news-prevnext__link--next { margin-left:0; text-align:left; }
}

/* ==========================================================================
   §27 Pagina Contatti
   ========================================================================== */
.kto-contact-page { background: var(--color-light-gray); padding: 0 0 5rem; }

/* ── 3 card contatto ── */
.kto-cards {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
  padding: 3.5rem 0 0;
  margin-bottom: 3.5rem;
}
.kto-card {
  background: var(--color-white);
  border: 1px solid var(--color-border-gray);
  border-radius: 16px;
  padding: 2rem;
  display: flex;
  flex-direction: column;
  gap: 0.375rem;
  transition: box-shadow var(--transition), transform var(--transition);
}
.kto-card:hover { box-shadow: 0 8px 28px rgba(0,0,0,0.09); transform: translateY(-3px); }

.kto-card__icon {
  width: 52px;
  height: 52px;
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 0.75rem;
  flex-shrink: 0;
}
.kto-card__title {
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--color-medium-gray);
  margin: 0;
}
.kto-card__main {
  font-size: 1.0625rem;
  font-weight: 700;
  color: var(--color-primary);
  margin: 0.25rem 0 0;
}
.kto-card__sub {
  font-size: 0.875rem;
  color: var(--color-medium-gray);
  margin: 0 0 0.5rem;
}
.kto-card__link {
  font-size: 0.875rem;
  font-weight: 700;
  color: var(--color-accent);
  text-decoration: none;
  margin-top: auto;
}
.kto-card__link:hover { text-decoration: underline; }

/* ── Mappa + Info ── */
.kto-map-row {
  display: grid;
  grid-template-columns: 1fr 480px;
  gap: 3rem;
  align-items: stretch;
  margin-bottom: 4rem;
}
.kto-map-wrap {
  border-radius: 16px;
  overflow: hidden;
  border: 1px solid var(--color-border-gray);
  box-shadow: 0 4px 16px rgba(0,0,0,0.08);
  display: flex;
  flex-direction: column;
  min-height: 460px;
  background: #e8edf2;
}
.kto-map {
  width: 100%;
  flex: 1;
  border: none;
  display: block;
}
.kto-map__osm-link {
  display: block;
  text-align: center;
  padding: 0.5rem;
  font-size: 0.75rem;
  color: var(--color-medium-gray);
  background: var(--color-light-gray);
  text-decoration: none;
  border-top: 1px solid var(--color-border-gray);
}
.kto-map__osm-link:hover { color: var(--color-accent); }

.kto-info {
  background: var(--color-white);
  border: 1px solid var(--color-border-gray);
  border-radius: 16px;
  padding: 2.5rem;
  display: flex;
  flex-direction: column;
}
.kto-info__title {
  font-size: 1.5rem;
  font-weight: 800;
  color: var(--color-primary);
  margin: 0 0 0.875rem;
}
.kto-info__lead {
  font-size: 0.9375rem;
  color: var(--color-dark-gray);
  line-height: 1.65;
  margin: 0 0 1.75rem;
}
.kto-services {
  list-style: none;
  padding: 0;
  margin: 0 0 1.75rem;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
.kto-service {
  display: flex;
  gap: 0.875rem;
  align-items: flex-start;
}
.kto-service__dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  flex-shrink: 0;
  margin-top: 6px;
}
.kto-service strong {
  display: block;
  font-size: 0.9375rem;
  color: var(--color-primary);
  margin-bottom: 0.125rem;
}
.kto-service p {
  font-size: 0.8125rem;
  color: var(--color-medium-gray);
  margin: 0;
  line-height: 1.5;
}
.kto-hours-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  background: var(--color-light-gray);
  border-radius: 8px;
  padding: 0.625rem 0.875rem;
  font-size: 0.875rem;
  color: var(--color-dark-gray);
  margin-top: auto;
}
.kto-hours-badge strong { color: var(--color-primary); }

/* ── Come raggiungerci ── */
.kto-directions {
  border-top: 1px solid var(--color-border-gray);
  padding-top: 3.5rem;
}
.kto-directions__title {
  font-size: 1.5rem;
  font-weight: 800;
  color: var(--color-primary);
  margin: 0 0 1.75rem;
}
.kto-directions-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.25rem;
}
.kto-dir-card {
  background: var(--color-white);
  border: 1px solid var(--color-border-gray);
  border-radius: 12px;
  padding: 1.5rem;
  transition: box-shadow var(--transition);
}
.kto-dir-card:hover { box-shadow: 0 4px 16px rgba(0,0,0,0.08); }
.kto-dir-card__icon { font-size: 1.75rem; margin-bottom: 0.75rem; display: block; }
.kto-dir-card h4 { font-size: 0.9375rem; font-weight: 700; color: var(--color-primary); margin: 0 0 0.5rem; }
.kto-dir-card p { font-size: 0.8125rem; color: var(--color-medium-gray); margin: 0; line-height: 1.55; }
.kto-dir-card strong { color: var(--color-dark-gray); }

/* Responsive */
@media (max-width: 1023px) {
  .kto-map-row { grid-template-columns: 1fr; }
  .kto-map-wrap { min-height: 320px; }
  .kto-directions-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 767px) {
  .kto-cards { grid-template-columns: 1fr; }
  .kto-directions-grid { grid-template-columns: 1fr; }
  .kto-info { padding: 1.5rem; }
}
