/* Blueware — restyling condiviso. Va caricato DOPO style.css e dopo gli <style> di pagina:
   <link rel="stylesheet" href="assets/site.css?v=1">  (incrementa ?v= se lo modifichi, la cache dei file statici dura un anno).
   Identità: blu notte del design system + sfumature calde (ambra, rosso, pesca). Nessun testo o struttura cambia. */

:root {
  --muted: #8C8CC8;          /* era #6060A0: 3,1:1 → 5,7:1 su sfondo */
  --subtle: #B6B6E6;
  --link: #8F8DFF;           /* 6,3:1 su sfondo (accent-hi #4A48FF: 3,1:1) */
  --warm-amber: #F5841A;
  --warm-red: #E83B5C;
  --warm-peach: #FFD6A5;
  --warm-line: linear-gradient(90deg, #FFD6A5, #F5841A 55%, #E83B5C);
  --panel: linear-gradient(160deg, rgba(21, 21, 72, 0.78), rgba(1, 6, 39, 0.82));
  --panel-border: rgba(110, 108, 255, 0.22);
  --radius-xl: 22px;
}
:root, :root[data-theme="dark"] { --bg: #020a40; }

/* ── Sfondo fisso: due luci puntiformi che si spostano lentamente (solo transform, nessun ridisegno) ── */
body { position: relative; }
body::before, body::after {
  content: '';
  position: fixed;
  z-index: -1;
  pointer-events: none;
  border-radius: 50%;
  will-change: transform;
}
body::before {
  top: -32vmax; right: -26vmax;
  width: 78vmax; height: 78vmax;
  background: radial-gradient(closest-side, rgba(245, 132, 26, 0.17), rgba(232, 59, 92, 0.075) 52%, transparent 100%);
  animation: bw-drift-a 46s ease-in-out infinite alternate;
}
body::after {
  bottom: -38vmax; left: -30vmax;
  width: 84vmax; height: 84vmax;
  background: radial-gradient(closest-side, rgba(88, 86, 255, 0.24), rgba(74, 72, 255, 0.09) 52%, transparent 100%);
  animation: bw-drift-b 62s ease-in-out infinite alternate;
}
@keyframes bw-drift-a {
  0%   { transform: translate3d(0, 0, 0) scale(1); }
  50%  { transform: translate3d(-16vw, 14vh, 0) scale(1.12); }
  100% { transform: translate3d(-5vw, 28vh, 0) scale(0.94); }
}
@keyframes bw-drift-b {
  0%   { transform: translate3d(0, 0, 0) scale(1); }
  50%  { transform: translate3d(18vw, -12vh, 0) scale(1.1); }
  100% { transform: translate3d(7vw, -26vh, 0) scale(0.92); }
}

::selection { background: rgba(245, 132, 26, 0.35); color: #fff; }
:focus-visible { outline: 2px solid var(--warm-peach); outline-offset: 3px; border-radius: 4px; }

/* ── Navigazione ── */
.nav {
  background: color-mix(in srgb, #010319 88%, transparent);
  border-bottom: 1px solid rgba(120, 118, 255, 0.28);
  box-shadow: 0 1px 0 rgba(245, 132, 26, 0.18), 0 16px 36px -18px rgba(0, 0, 0, 0.9);
}
.nav-links a { color: var(--subtle); position: relative; padding: 0.5rem 0; }
.nav-links a:hover { color: var(--heading); }
.nav-links a[aria-current="page"] { color: #fff; }
.nav-links a[aria-current="page"]::after {
  content: '';
  position: absolute;
  left: 0; right: 0; bottom: -2px;
  height: 2px;
  border-radius: 2px;
  background: var(--warm-line);
}

/* ── Footer ── */
.footer {
  background: linear-gradient(180deg, #010421, #010319);
  border-top: 1px solid transparent;
  border-image: linear-gradient(90deg, transparent, rgba(245, 132, 26, 0.55), rgba(232, 59, 92, 0.4), transparent) 1;
}
.footer-copy, .footer-links a { color: var(--muted); }
.footer-links a:hover { color: var(--warm-peach); }

/* ── Titoli e microtitoli: gradiente solo sulle pagine interne ── */
.sv-intro h1, .bp-hero h1 {
  background: linear-gradient(100deg, #ECEEFF 0%, #ECEEFF 82%, #FFD6A5 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: #ECEEFF;
}
.sv-eyebrow, .post-tag { color: var(--warm-peach); }
.sv-eyebrow::before, .post-tag::before { background: var(--warm-line); height: 2px; }

/* ── Servizi ── */
.sv-wrap { max-width: 1000px; }
.sv-intro { border-bottom: none; padding-bottom: 2.5rem; position: relative; }
.sv-section {
  padding: 2.2rem 2.2rem 2.4rem;
  margin: 0 0 1.25rem;
  border: 1px solid var(--panel-border);
  border-radius: var(--radius-xl);
  background: var(--panel);
  transition: border-color var(--t) var(--ease), box-shadow var(--t) var(--ease), transform var(--t) var(--ease);
}
.sv-section:last-of-type { border-bottom: 1px solid var(--panel-border); }
.sv-section:hover {
  border-color: rgba(245, 132, 26, 0.45);
  box-shadow: 0 22px 48px -28px rgba(245, 132, 26, 0.5);
  transform: translateY(-2px);
}
.sv-num {
  font-size: 0.8rem;
  letter-spacing: 0.16em;
  background: var(--warm-line);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: var(--warm-amber);
}
.sv-title { font-size: clamp(1.2rem, 2.2vw, 1.55rem); }
.sv-areas li { color: var(--subtle); border-bottom-color: rgba(110, 108, 255, 0.16); }
.sv-areas li::before { background: var(--warm-amber); box-shadow: 0 0 10px rgba(245, 132, 26, 0.6); }
.sv-note { color: var(--muted); }
.sv-desc a, .sv-note a, .sv-areas a, .sv-right a { color: var(--warm-peach) !important; border-bottom-color: rgba(245, 132, 26, 0.6) !important; }
.sv-footer {
  border: 1px solid rgba(245, 132, 26, 0.35);
  border-radius: var(--radius-xl);
  padding: 2.2rem 2.2rem;
  margin-top: 2.5rem;
  background:
    radial-gradient(30rem 14rem at 100% 0%, rgba(245, 132, 26, 0.18), transparent 70%),
    radial-gradient(26rem 14rem at 0% 100%, rgba(232, 59, 92, 0.14), transparent 70%),
    var(--panel);
}
.sv-footer-text { color: var(--subtle); }
.sv-cta {
  background: linear-gradient(100deg, #FFD6A5, #F5841A);
  color: #2A1200;
  font-weight: 600;
  padding: 0.85rem 1.5rem;
  border-radius: 999px;
  box-shadow: 0 10px 30px -12px rgba(245, 132, 26, 0.75);
  transition: transform var(--t) var(--ease), box-shadow var(--t) var(--ease), gap 0.25s var(--ease);
}
.sv-cta:hover { transform: translateY(-2px); box-shadow: 0 16px 38px -12px rgba(245, 132, 26, 0.9); }

/* ── Elenco BluePrint ── */
.bp-hero { background: radial-gradient(46rem 22rem at 82% 30%, rgba(245, 132, 26, 0.16), transparent 70%), radial-gradient(34rem 20rem at 8% 100%, rgba(232, 59, 92, 0.1), transparent 70%); }
.bp-hero p { color: var(--subtle); }
.bp-filter-btn { color: var(--subtle); border-color: var(--panel-border); }
.bp-filter-btn:hover, .bp-filter-btn.active { border-color: var(--warm-amber); background: rgba(245, 132, 26, 0.12); color: #fff; }

.bp-card, .bp-featured {
  background: var(--panel);
  border: 1px solid var(--panel-border);
  border-radius: 18px;
  box-shadow: none;
  overflow: hidden;
  transition: transform var(--t) var(--ease), box-shadow var(--t) var(--ease), border-color var(--t) var(--ease);
}
.bp-card[data-category="blueai"], .bp-card[data-category="bluesoftware"],
.bp-card[data-category="perizie"], .bp-card[data-category="blueedge"] { box-shadow: none; }
.bp-card:hover, .bp-featured:hover { transform: translateY(-4px); border-color: rgba(245, 132, 26, 0.5); box-shadow: 0 24px 50px -26px rgba(245, 132, 26, 0.55); }
.bp-card[data-category="blueai"]:hover { border-color: rgba(232, 59, 92, 0.6); box-shadow: 0 24px 50px -26px rgba(232, 59, 92, 0.6); }
.bp-card[data-category="perizie"]:hover { border-color: rgba(141, 43, 255, 0.6); box-shadow: 0 24px 50px -26px rgba(141, 43, 255, 0.6); }
.bp-card[data-category="blueedge"]:hover { border-color: rgba(255, 214, 165, 0.6); box-shadow: 0 24px 50px -26px rgba(255, 214, 165, 0.45); }
.bp-card-body p, .bp-card-meta, .bp-meta, .bp-date { color: var(--subtle); }
.bp-orient-tile { background: var(--panel); border-color: var(--panel-border); transition: transform var(--t) var(--ease), border-color var(--t) var(--ease); }
.bp-orient-tile:hover { transform: translateY(-3px); border-color: rgba(245, 132, 26, 0.5); }
.bp-orient-tile-desc, .bp-orient-subtitle { color: var(--subtle); }

/* ── Articoli ── */
.post-meta, .post-breadcrumb, .post-breadcrumb a { color: var(--muted); }
.post-intro { color: var(--subtle); }
.post-body h2 { margin-top: 3.2rem; }
.post-body h2::after { content: ''; display: block; width: 36px; height: 2px; margin-top: 0.6rem; background: var(--warm-line); border-radius: 2px; }
.post-body ul li::marker, .post-body ol li::marker { color: var(--warm-amber); }
.post-body a:not([class]) { color: var(--link); }
.post-pullquote { border-left: 3px solid; border-image: linear-gradient(180deg, #FFD6A5, #F5841A, #E83B5C) 1; }
.post-pullquote p { color: #fff; }
.quick-box, .cliff-box, .post-callout {
  position: relative;
  border: 1px solid var(--panel-border);
  border-radius: var(--radius-xl);
  background:
    radial-gradient(22rem 10rem at 100% 0%, rgba(245, 132, 26, 0.13), transparent 70%),
    var(--panel);
}
.quick-box-label, .cliff-box-label, .post-callout-label { color: var(--warm-peach); }
.contrast-grid, .bp-table-wrap, .lesson-list { border-color: var(--panel-border); border-radius: 16px; background: var(--panel); }
.contrast-col-label.new { color: var(--warm-peach); }
.component-block { border-bottom-color: rgba(110, 108, 255, 0.18); }
.component-icon { border-color: rgba(245, 132, 26, 0.45); color: var(--warm-peach); background: rgba(245, 132, 26, 0.08); }
.implication-block { border-left: 2px solid; border-image: linear-gradient(180deg, #F5841A, rgba(232, 59, 92, 0.3)) 1; }
.implication-block-title { color: var(--warm-peach); }
.bp-table thead th { color: var(--warm-peach); }
.post-cluster { border-top-color: rgba(245, 132, 26, 0.3); }
.post-cluster h2 { color: var(--warm-peach); }
.post-cluster ul { grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 0.9rem; }
.post-cluster li {
  padding: 1rem 1.1rem;
  border: 1px solid var(--panel-border);
  border-radius: 14px;
  background: var(--panel);
  transition: border-color var(--t) var(--ease), transform var(--t) var(--ease);
}
.post-cluster li:hover { border-color: rgba(245, 132, 26, 0.5); transform: translateY(-2px); }
.post-cluster a:hover { color: var(--warm-peach); }
.post-cluster span { color: var(--muted); }
.post-contact-cta, .post-back-link:hover { color: var(--warm-peach); }
.post-back-link { color: var(--subtle); }

@media (max-width: 640px) {
  .sv-section { padding: 1.5rem 1.25rem 1.6rem; }
  .sv-footer { padding: 1.6rem 1.25rem; }
}

@media (prefers-reduced-motion: reduce) {
  body::before, body::after { animation: none; }
  .sv-section:hover, .bp-card:hover, .bp-featured:hover, .bp-orient-tile:hover, .post-cluster li:hover, .sv-cta:hover { transform: none; }
}

/* ── Servizi: sintesi in cima (pensata per il telefono) ── */
html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
.sv-section, #sintesi { scroll-margin-top: 88px; }
.sv-lead { font-size: 1.08rem; color: var(--subtle); line-height: 1.7; margin-top: 1.3rem; max-width: 62ch; }
.sv-sum { margin-top: 1.8rem; }
.sv-sum-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.65rem; grid-template-columns: repeat(auto-fit, minmax(290px, 1fr)); }
.sv-sum-list a {
  display: grid;
  grid-template-columns: auto 1fr auto;
  column-gap: 0.95rem;
  row-gap: 0.15rem;
  align-items: center;
  min-height: 60px;
  padding: 0.9rem 1.1rem;
  border: 1px solid var(--panel-border);
  border-radius: 16px;
  background: var(--panel);
  transition: border-color var(--t) var(--ease), transform var(--t) var(--ease), box-shadow var(--t) var(--ease);
}
.sv-sum-list a:hover { border-color: rgba(245, 132, 26, 0.55); transform: translateY(-2px); box-shadow: 0 16px 36px -22px rgba(245, 132, 26, 0.6); }
.sv-sum-list a::after { content: '→'; grid-column: 3; grid-row: 1 / 3; color: var(--warm-amber); font-size: 1.1rem; transition: transform var(--t) var(--ease); }
.sv-sum-list a:hover::after { transform: translateX(3px); }
.sv-sum-n {
  min-width: 1.7rem;
  grid-row: 1 / 3;
  font-size: 0.8rem;
  letter-spacing: 0.14em;
  background: var(--warm-line);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: var(--warm-amber);
}
.sv-sum-t { grid-column: 2; font-weight: 600; color: var(--heading); font-size: 0.98rem; line-height: 1.25; }
.sv-sum-d { grid-column: 2; font-size: 0.84rem; color: var(--subtle); line-height: 1.45; }
.sv-sum-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  margin-top: 1.2rem;
  padding: 0.8rem 1.6rem;
  border-radius: 999px;
  background: linear-gradient(100deg, #FFD6A5, #F5841A);
  color: #2A1200;
  font-weight: 600;
  font-size: 0.9rem;
  box-shadow: 0 10px 30px -12px rgba(245, 132, 26, 0.75);
  transition: transform var(--t) var(--ease), box-shadow var(--t) var(--ease);
}
.sv-sum-cta:hover { transform: translateY(-2px); box-shadow: 0 16px 38px -12px rgba(245, 132, 26, 0.9); }
.sv-top { display: none; }

@media (max-width: 640px) {
  .sv-wrap { padding: 5.2rem 1.25rem 3rem; }
  .sv-intro { padding-bottom: 1.4rem; }
  .sv-intro h1 { font-size: clamp(1.75rem, 8.4vw, 2.2rem); line-height: 1.12; }
  .sv-lead { font-size: 0.95rem; line-height: 1.6; margin-top: 0.9rem; }
  .sv-sum { margin-top: 1.2rem; }
  .sv-sum-list { gap: 0.5rem; }
  .sv-sum-list a { min-height: 52px; padding: 0.7rem 0.95rem; column-gap: 0.8rem; border-radius: 14px; }
  .sv-sum-t { font-size: 0.92rem; }
  .sv-sum-d { font-size: 0.8rem; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
  .sv-sum-cta { display: flex; width: 100%; }
  .sv-section { margin-bottom: 1rem; }
  .sv-title { margin-bottom: 0.2rem; }
  .sv-desc { font-size: 0.97rem; line-height: 1.7; margin-bottom: 1.2rem; }
  .sv-areas li { font-size: 0.88rem; padding: 0.5rem 0; }
  .sv-top { display: inline-flex; align-items: center; min-height: 44px; margin-top: 1rem; font-size: 0.82rem; color: var(--warm-peach); }
}

/* ── Elenco BluePrint su telefono: il filtro a bordo destro non deve coprire il testo ── */
@media (max-width: 700px) {
  .bp-hero { padding-top: 6.2rem; padding-bottom: 2.4rem; }
  .bp-hero-content { padding-right: 3.4rem; }
  .bp-hero h1 { font-size: clamp(1.9rem, 9vw, 2.4rem); }
}

/* ── Articolo su telefono: diagramma verticale e tabelle impilate ── */
.bpd--m { display: none; }
@media (max-width: 640px) {
  .bpd--d { display: none; }
  .bpd--m { display: block; min-width: 0; }
  .bpd-wrap { overflow-x: visible; }
  .bp-table { min-width: 0; }
  .bp-table thead { display: none; }
  .bp-table tr { display: block; padding: 0.95rem 1.05rem; border-bottom: 1px solid var(--border); }
  .bp-table tr:last-child { border-bottom: none; }
  .bp-table th, .bp-table td { display: block; padding: 0; border: none; width: auto; }
  .bp-table tbody th { white-space: normal; margin-bottom: 0.3rem; font-size: 0.68rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--warm-peach); font-weight: 400; }
  .post-wrap { padding-left: 1.25rem; padding-right: 1.25rem; }
  .quick-box, .cliff-box { padding: 1.1rem 1.15rem; }
}

/* ── Sintesi: schede di uguale altezza, CTA come sesta scheda ── */
.sv-intro { padding-bottom: 1.6rem; }
.sv-sum-list { grid-auto-rows: 1fr; }
.sv-sum-list li { display: flex; }
.sv-sum-list li > a { flex: 1; }
@media (min-width: 900px) { .sv-sum-list { grid-template-columns: repeat(3, 1fr); } }
.sv-sum-list a.sv-sum-cta {
  background: linear-gradient(100deg, #FFD6A5, #F5841A);
  color: #2A1200;
  font-weight: 600;
  font-size: 0.95rem;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0;
  text-align: center;
  border: none;
  border-radius: 16px;
  box-shadow: 0 14px 34px -16px rgba(245, 132, 26, 0.7);
}
.sv-sum-list a.sv-sum-cta::after { content: none; }
.sv-sum-list a.sv-sum-cta:hover { box-shadow: 0 18px 40px -14px rgba(245, 132, 26, 0.9); }
.sv-sum-list .sv-sum-t, .sv-sum-list .sv-sum-d { min-width: 0; }
@media (max-width: 640px) {
  .sv-sum-list { grid-auto-rows: auto; }
  .sv-sum-list a.sv-sum-cta { min-height: 52px; width: 100%; }
}

/* ── Griglia unica: menu, intestazioni, contenuti e footer condividono lo stesso contenitore ── */
:root {
  --container: 1240px;
  --gutter: max(1.25rem, 5vw);
  --pad-x: max(var(--gutter), calc((100% - var(--container)) / 2));
}
.nav, .footer { padding-left: var(--pad-x); padding-right: var(--pad-x); }
.bp-hero, .bp-filters, .bp-orient, .bp-grid { padding-left: var(--pad-x); padding-right: var(--pad-x); }
.sv-wrap { max-width: none; margin: 0; padding-left: var(--pad-x); padding-right: var(--pad-x); }
.sv-right { max-width: 46rem; }
.sv-lead { max-width: 60ch; }

/* ── Pagine hub (explore, explorepath, bluelab, samples, agrivoltaico): stesso contenitore e stessi pannelli ── */
.explore-hero, .lab-hero, .sm-hero, .agri-hero-text, .agri-cta, .ep-bottom { padding-left: var(--pad-x); padding-right: var(--pad-x); }
.sm-hero, .sm-body { max-width: none; padding-left: var(--pad-x); padding-right: var(--pad-x); }
.sm-body > * { max-width: 52rem; }
.agri-body { max-width: calc(var(--container) + 2 * var(--gutter)); padding-left: var(--gutter); padding-right: var(--gutter); }

.blue-sections, .lab-grid, .ep-doors { padding: 2.5rem var(--pad-x) 4rem; gap: 1.25rem; background: transparent; }
.blue-card, .lab-card, .ep-door {
  background: var(--panel);
  border: 1px solid var(--panel-border);
  border-radius: var(--radius-xl);
  overflow: hidden;
  transition: transform var(--t) var(--ease), border-color var(--t) var(--ease), box-shadow var(--t) var(--ease);
}
.blue-card:hover, .lab-card:hover, .ep-door:hover {
  transform: translateY(-3px);
  border-color: rgba(245, 132, 26, 0.5);
  box-shadow: 0 24px 50px -28px rgba(245, 132, 26, 0.55);
}
.ep-bottom { border-top-color: rgba(245, 132, 26, 0.3); }
.agri-cta { background: radial-gradient(34rem 14rem at 50% 0%, rgba(245, 132, 26, 0.16), transparent 70%), var(--surface); }
@media (max-width: 640px) {
  .blue-sections, .lab-grid, .ep-doors { padding-top: 1.5rem; padding-bottom: 2.5rem; gap: 1rem; }
}
@media (prefers-reduced-motion: reduce) {
  .blue-card:hover, .lab-card:hover, .ep-door:hover { transform: none; }
}

/* ── Coerenza: colore di accento leggibile e componenti degli articoli ── */
:root, :root[data-theme="dark"] { --accent-hi: #8F8DFF; }   /* era #4A48FF: 3,1:1 → 6,3:1 su sfondo */
.section-label { color: var(--warm-peach); }
.section-label::before { background: var(--warm-line); }

/* carte */
.works-card, .risk-card, .usecase-item, .level-row, .dg-card, .layer, .conf-block, .use-card, .corpus-card,
.feature-item, .scenario-block, .pipeline-arrow, .compliance-list, .lesson-list {
  border-color: var(--panel-border);
  background: var(--panel);
  border-radius: 14px;
}
.arch-box { border-color: var(--panel-border); background: var(--panel); border-radius: 10px; }
.compliance-list, .lesson-list { overflow: hidden; }

/* riquadri evidenziati (come quick-box) */
.info-box, .reframe-rule, .vc-box {
  position: relative;
  border: 1px solid var(--panel-border);
  border-radius: var(--radius-xl);
  background:
    radial-gradient(22rem 10rem at 100% 0%, rgba(245, 132, 26, 0.13), transparent 70%),
    var(--panel);
}
.risk-box { border-radius: var(--radius-xl); }

/* blocchi con barra laterale calda */
.case-block, .method-block, .failure-pattern, .pattern-block, .implication-block {
  border-left: 2px solid;
  border-image: linear-gradient(180deg, #F5841A, rgba(232, 59, 92, 0.3)) 1;
}
.pattern-block { background: linear-gradient(90deg, rgba(245, 132, 26, 0.07), transparent 70%); }

@media (prefers-reduced-motion: no-preference) {
  .works-card, .risk-card, .use-card, .corpus-card, .feature-item, .dg-card, .usecase-item { transition: border-color var(--t) var(--ease), transform var(--t) var(--ease); }
  .works-card:hover, .risk-card:hover, .use-card:hover, .corpus-card:hover, .feature-item:hover, .dg-card:hover, .usecase-item:hover { border-color: rgba(245, 132, 26, 0.45); transform: translateY(-2px); }
}

/* ── Robustezza su telefoni stretti (360 px): niente scorrimento orizzontale ── */
.footer-links { flex-wrap: wrap; gap: 0.7rem 1.5rem; }
.post-body code, .layer code, .conf-block, .arch-box { overflow-wrap: anywhere; }
pre { max-width: 100%; overflow-x: auto; }
.checklist li { display: block; position: relative; padding-left: 1.1rem; }
.checklist li::before { position: absolute; left: 0; top: -0.12em; line-height: 1.5; }

/* ── Intestazione di pagina: un solo componente per tutte le pagine ──
   banda in contenitore, luci calde/blu, motivo orbitale che ruota lentamente (stesso ritmo dello sfondo) */
.explore-hero, .bp-hero, .lab-hero, .sm-hero, .sv-intro {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  min-height: 15rem;
  margin: 5.4rem var(--pad-x) 2.2rem;
  padding: 3.2rem 3.4rem;
  border: 1px solid var(--panel-border);
  border-radius: 28px;
  background:
    radial-gradient(34rem 18rem at 88% 0%, rgba(245, 132, 26, 0.2), transparent 70%),
    radial-gradient(30rem 18rem at 0% 100%, rgba(88, 86, 255, 0.22), transparent 70%),
    var(--panel);
  box-shadow: 0 30px 60px -40px rgba(0, 0, 0, 0.8);
}
.sv-intro { margin: 0 0 1.6rem; max-width: none; }
.sv-wrap { padding-top: 5.4rem; }
.sv-sum { margin-top: 0; margin-bottom: 2rem; }
.explore-hero::after, .bp-hero::after, .lab-hero::after, .sm-hero::after, .sv-intro::after {
  content: '';
  position: absolute;
  z-index: -1;
  pointer-events: none;
  right: -5rem; top: 50%;
  width: 30rem; height: 30rem; margin-top: -15rem;
  background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 480 480' fill='none' stroke='%238F8DFF' stroke-width='1'><ellipse cx='240' cy='240' rx='220' ry='140' stroke-width='1.3'/><ellipse cx='240' cy='240' rx='175' ry='105'/><ellipse cx='240' cy='240' rx='130' ry='72'/><ellipse cx='240' cy='240' rx='85' ry='42'/><line x1='20' y1='240' x2='460' y2='240' stroke-width='.7'/><line x1='240' y1='20' x2='240' y2='460' stroke-width='.7'/><circle cx='460' cy='240' r='5' fill='%23FFD6A5' stroke='none'/><circle cx='240' cy='100' r='3.5' fill='%23F5841A' stroke='none'/></svg>") center / contain no-repeat;
  opacity: 0.34;
  animation: bw-orbit 150s linear infinite;
}
@keyframes bw-orbit { to { transform: rotate(360deg); } }
.bp-hero-arc { display: none; }
.explore-hero h1, .bp-hero h1, .lab-hero h1, .sm-hero h1, .sv-intro h1 {
  font-size: clamp(2rem, 4.4vw, 3.4rem);
  line-height: 1.08;
  letter-spacing: -0.035em;
  margin: 0.6rem 0 0;
  max-width: 24ch;
  text-wrap: balance;
  background: linear-gradient(100deg, #ECEEFF 0%, #ECEEFF 82%, #FFD6A5 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: #ECEEFF;
}
.explore-hero p, .bp-hero p, .lab-hero p, .sm-hero p, .sv-intro .sv-lead {
  font-size: 1.04rem;
  line-height: 1.7;
  color: var(--subtle);
  margin: 1rem 0 0;
  max-width: 56ch;
}
.sm-eyebrow {
  display: inline-flex; align-items: center; gap: 0.6rem;
  font-size: 0.68rem; letter-spacing: 0.16em; text-transform: uppercase;
  color: var(--warm-peach);
}
.sm-eyebrow::before { content: ''; width: 18px; height: 2px; background: var(--warm-line); border-radius: 2px; }
.explore-hero-content, .bp-hero-content { position: relative; z-index: 1; max-width: none; }

@media (max-width: 640px) {
  .explore-hero, .bp-hero, .lab-hero, .sm-hero, .sv-intro { margin: 4.8rem var(--gutter) 1.4rem; padding: 2rem 1.35rem; border-radius: 22px; min-height: 0; }
  .sv-intro { margin: 0 0 1.2rem; padding: 2rem 1.35rem; }
  .sv-wrap { padding-top: 4.8rem; }
  .explore-hero::after, .bp-hero::after, .lab-hero::after, .sm-hero::after, .sv-intro::after { width: 16rem; height: 16rem; margin-top: -8rem; right: -5rem; opacity: 0.22; }
}
@media (prefers-reduced-motion: reduce) {
  .explore-hero::after, .bp-hero::after, .lab-hero::after, .sm-hero::after, .sv-intro::after { animation: none; }
}

/* etichetta sopra il titolo: stessa dimensione ovunque */
.explore-hero .section-label, .bp-hero .section-label, .lab-hero .section-label,
.sm-hero .sm-eyebrow, .sv-intro .sv-eyebrow {
  font-size: 0.72rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  line-height: 1.2;
  margin: 0;
}

/* ── Bordo caldo che gira: un riflesso ambra/rosso percorre il bordo di intestazioni e schede.
   Ogni elemento ha durata, senso e partenza diversi, così non girano mai insieme. ── */
@property --bw-a { syntax: '<angle>'; inherits: false; initial-value: 0deg; }
@keyframes bw-ring { to { --bw-a: 360deg; } }
.sv-section, .sv-sum-list li:not(.sv-sum-cta-li) > a, .bp-card, .bp-featured, .lab-card, .bp-orient-tile, .post-cluster li, .blue-card { position: relative; }
.explore-hero::before,
.bp-hero::before,
.lab-hero::before,
.sm-hero::before,
.sv-intro::before,
.sv-section::before,
.sv-sum-list li:not(.sv-sum-cta-li) > a::before,
.bp-card::before,
.bp-featured::before,
.lab-card::before,
.bp-orient-tile::before,
.post-cluster li::before,
.blue-card::after {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 1;
  padding: 1.5px;
  border-radius: inherit;
  pointer-events: none;
  background: conic-gradient(from var(--bw-a), transparent 0deg, transparent 215deg, rgba(232, 59, 92, 0) 215deg, rgba(232, 59, 92, 0.5) 282deg, #F5841A 322deg, #FFD6A5 346deg, transparent 360deg);
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  mask-composite: exclude;
  animation: bw-ring var(--bw-d, 10s) linear infinite var(--bw-dir, normal);
  animation-delay: var(--bw-delay, 0s);
}
.explore-hero { --bw-d: 13s; --bw-delay: -2s; }
.bp-hero      { --bw-d: 10s; --bw-delay: -7s; --bw-dir: reverse; }
.lab-hero     { --bw-d: 15s; --bw-delay: -4s; }
.sm-hero      { --bw-d: 11s; --bw-delay: -9s; --bw-dir: reverse; }
.sv-intro     { --bw-d: 14s; --bw-delay: -5s; }
:is(.sv-section, .bp-card, .bp-featured, .lab-card, .bp-orient-tile, .blue-card, .post-cluster li, .sv-sum-list li):nth-child(5n+1) { --bw-d: 9s;  --bw-delay: -1s; }
:is(.sv-section, .bp-card, .bp-featured, .lab-card, .bp-orient-tile, .blue-card, .post-cluster li, .sv-sum-list li):nth-child(5n+2) { --bw-d: 12s; --bw-delay: -6s; --bw-dir: reverse; }
:is(.sv-section, .bp-card, .bp-featured, .lab-card, .bp-orient-tile, .blue-card, .post-cluster li, .sv-sum-list li):nth-child(5n+3) { --bw-d: 10.5s; --bw-delay: -3s; }
:is(.sv-section, .bp-card, .bp-featured, .lab-card, .bp-orient-tile, .blue-card, .post-cluster li, .sv-sum-list li):nth-child(5n+4) { --bw-d: 14s; --bw-delay: -9s; --bw-dir: reverse; }
:is(.sv-section, .bp-card, .bp-featured, .lab-card, .bp-orient-tile, .blue-card, .post-cluster li, .sv-sum-list li):nth-child(5n) { --bw-d: 11.5s; --bw-delay: -4.5s; }
@media (prefers-reduced-motion: reduce) {
.explore-hero::before,
.bp-hero::before,
.lab-hero::before,
.sm-hero::before,
.sv-intro::before,
.sv-section::before,
.sv-sum-list li:not(.sv-sum-cta-li) > a::before,
.bp-card::before,
.bp-featured::before,
.lab-card::before,
.bp-orient-tile::before,
.post-cluster li::before,
.blue-card::after { animation: none; display: none; }
}

