
.training-proof {
  --navy: #102b42;
  --teal: #087f98;
  --mint: #61edcc;
  --ink: #122e42;
  --muted: #486072;
  --line: #d7e4e8;
  --display: 'Bricolage Grotesque',system-ui,sans-serif;
  color-scheme: light
}
.training-proof * {
  box-sizing: border-box
}
.training-proof {
  scroll-behavior: smooth;
  scrollbar-color: #a7c4cd #eef5f6;
  scroll-padding-top: 30px
}
.training-proof {
  margin: 0;
  background: #fff;
  color: var(--ink);
  font: 16px/1.65 Inter,system-ui,sans-serif
}
.training-proof ::selection {
  background: var(--mint);
  color: var(--navy)
}
.training-proof .training-intro-title,.training-proof h2,.training-proof h3,.training-proof p,.training-proof figure {
  margin: 0
}
.training-proof a {
  color: inherit;
  text-underline-offset: 5px
}
.training-proof button {
  font: inherit;
  cursor: pointer
}
.training-proof button:focus-visible,.training-proof a:focus-visible,.training-proof summary:focus-visible {
  outline: 3px solid var(--teal);
  outline-offset: 5px
}
.training-proof .visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap
}
.training-proof .wrap {
  max-width: min(1200px, 100% - 88px);
  margin: auto
}
.training-proof .intro {
  display: flex;
  justify-content: space-between;
  align-items: end;
  gap: 36px;
  padding: 65px 0 24px
}
.training-proof .training-intro-title {
  font: 720 clamp(42px,4.8vw,68px)/1.06 var(--display);
  letter-spacing: -.04em
}
.training-proof .training-intro-title em {
  font-style: normal;
  color: var(--teal)
}
.training-proof .intro>p {
  font-size: 16px;
  line-height: 1.7;
  max-width: 330px;
  margin-bottom: 5px;
  color: var(--muted)
}
.training-proof .intro strong {
  color: var(--ink);
  font-weight: 550
}
.training-proof .loop {
  position: relative;
  margin-top: 30px;
  padding: 18px 0 0
}
.training-proof .map {
  --choice-y: 103px;
  position: relative;
  padding: 0 24px 96px
}
.training-proof .process {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: minmax(0,1fr) 440px minmax(0,1fr);
  grid-template-rows: 90px 150px auto;
  column-gap: 48px;
  align-items: start
}
.training-proof .node {
  min-width: 0;
  position: relative
}
.training-proof .node a {
  text-decoration: none;
  display: flex;
  align-items: start;
  gap: 12px
}
.training-proof .node a:hover strong {
  text-decoration: underline;
  text-underline-offset: 5px
}
.training-proof .node strong {
  font: 650 24px/1.15 var(--display);
  letter-spacing: -.02em
}
.training-proof .step {
  display: grid;
  place-items: center;
  flex: 0 0 25px;
  height: 25px;
  border: 1px solid #aac2cd;
  border-radius: 50%;
  font-size: 12px;
  color: var(--muted);
  margin-top: 1px
}
.training-proof .node p {
  font-size: 14px;
  line-height: 1.6;
  color: var(--muted);
  margin-left: 37px;
  margin-top: 10px;
  max-width: 26ch
}
.training-proof .person {
  grid-column: 1;
  grid-row: 1
}
.training-proof .choose {
  grid-column: 1;
  grid-row: 2
}
.training-proof .training {
  grid-column: 2;
  grid-row: 2 / 4
}
.training-proof .record {
  grid-column: 3;
  grid-row: 2
}
.training-proof .decide {
  grid-column: 3;
  grid-row: 3
}
.training-proof .choose .step,.training-proof .decide .step {
  background: var(--navy);
  color: #fff;
  border-color: var(--navy)
}
.training-proof .scene-caution {
  margin: 28px 0 0 37px;
  padding-top: 18px;
  border-top: 1px solid #c5dbea
}
.training-proof .scene-caution .scene-case {
  font-size: 12px;
  margin: 0 0 9px;
  color: #285776
}
.training-proof .scene-caution>strong {
  font-size: 25px;
  color: #175985
}
.training-proof .scene-caution>p:last-child {
  font-size: 13px;
  line-height: 1.65;
  margin: 10px 0 0;
  max-width: 27ch;
  color: #285776
}
.training-proof .movement {
  width: 100%;
  background: white
}
.training-proof .movement video {
  display: block;
  width: 420px;
  height: 420px;
  object-fit: contain;
  background: #fff;
  margin: 0 auto
}
.training-proof .movement figcaption {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 14px;
  padding-top: 12px
}
.training-proof .movement figcaption strong {
  font: 650 25px/1.2 var(--display)
}
.training-proof .movement figcaption span {
  display: block;
  font-size: 14px;
  line-height: 1.5;
  color: var(--teal);
  margin-top: 7px
}
.training-proof .movement>p {
  color: var(--muted);
  font-size: 13px;
  margin: 14px 0 0;
  line-height: 1.5
}
.training-proof .training-label {
  margin-bottom: 24px
}
.training-proof .person:after,.training-proof .record:after,.training-proof .choose:after,.training-proof .training-label:after {
  content: "";
  position: absolute;
  width: 9px;
  height: 9px;
  border-right: 1px solid var(--teal);
  border-bottom: 1px solid var(--teal)
}
.training-proof .person:after {
  left: 11px;
  top: 66px;
  transform: rotate(45deg)
}
.training-proof .record:after {
  left: 11px;
  top: 120px;
  transform: rotate(45deg)
}
.training-proof .choose:after,.training-proof .training-label:after {
  right: -28px;
  top: 10px;
  transform: rotate(-45deg)
}
.training-proof .training-label strong {
  font-size: 20px
}
.training-proof .training-label p {
  font-size: 13px;
  margin-top: 6px
}
.training-proof #training-video-toggle {
  background: var(--navy);
  color: white;
  border: 0;
  border-radius: 5px;
  padding: 10px 12px;
  min-height: 44px;
  font-size: 12px;
  white-space: nowrap
}
.training-proof #training-video-toggle:hover {
  background: #24516b
}
.training-proof .route {
  position: absolute;
  top: var(--choice-y);
  bottom: 0;
  left: 0;
  width: 100%;
  height: calc(100% - var(--choice-y));
  overflow: visible;
  pointer-events: none
}
.training-proof .route path {
  fill: none;
  stroke-width: 1.5;
  stroke-linecap: round;
  stroke-linejoin: round
}
.training-proof .route-mobile {
  display: none
}
.training-proof .return-line {
  stroke: var(--teal)
}
.training-proof marker path {
  stroke: var(--teal);
  fill: none
}
.training-proof .return-label {
  position: absolute;
  bottom: 35px;
  left: 50%;
  transform: translateX(-50%);
  padding: 0 18px;
  background: #fff;
  color: var(--teal);
  font-size: 13px;
  white-space: nowrap
}
.training-proof .return-label a {
  display: flex;
  align-items: center;
  gap: 5px;
  text-decoration: none;
  min-height: 44px
}
.training-proof .return-label a:hover {
  text-decoration: underline
}
.training-proof .return-label svg {
  display: none;
  width: 24px;
  height: 24px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.5
}
.training-proof .return-label strong {
  font-weight: 650
}
.training-proof .overview {
  padding-bottom: 65px;
  border-bottom: 1px solid var(--line)
}
.training-proof .moment {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 120px;
  padding: 64px 0;
  align-items: start;
  border-bottom: 1px solid var(--line)
}
.training-proof .moment h2 {
  font: 650 clamp(32px,3vw,44px)/1.13 var(--display);
  letter-spacing: -.03em
}
.training-proof .moment-heading>p {
  margin-top: 18px;
  color: var(--muted);
  font-size: 17px;
  line-height: 1.7;
  max-width: 35ch
}
.training-proof .sample {
  font-size: 12px;
  color: var(--muted);
  margin-bottom: 20px
}
.training-proof .context-input {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 0 0 16px;
  border-bottom: 1px solid var(--line)
}
.training-proof .context-input span {
  font-size: 12px;
  color: var(--muted)
}
.training-proof .context-input p {
  font-weight: 600
}
.training-proof .guidance {
  padding: 22px 0 0
}
.training-proof .guidance>span {
  font-size: 12px;
  color: #795522
}
.training-proof .guidance h3 {
  font: 650 28px/1.2 var(--display);
  color: #77501a;
  margin: 7px 0 12px
}
.training-proof .guidance p {
  font-size: 17px;
  line-height: 1.65;
  max-width: 37ch
}
.training-proof .note {
  font-size: 12px;
  color: var(--muted);
  max-width: 58ch;
  margin-top: 18px
}
.training-proof .moment-heading>.human {
  color: var(--teal);
  font-size: 14px;
  font-weight: 600
}
.training-proof .return-story {
  background: var(--navy);
  color: #fff;
  margin-top: 0
}
.training-proof .return-inner {
  padding: 64px 0 52px
}
.training-proof .return-heading {
  display: grid;
  grid-template-columns: 1.3fr 1fr;
  gap: 100px;
  align-items: end
}
.training-proof .return-heading h2 {
  font: 650 clamp(34px,3.4vw,48px)/1.12 var(--display);
  letter-spacing: -.03em
}
.training-proof .return-heading em {
  font-style: normal;
  color: var(--mint)
}
.training-proof .return-heading>p {
  font-size: 16px;
  color: #c2d6e2;
  max-width: 39ch
}
.training-proof .decision-flow {
  display: grid;
  grid-template-columns: 1fr 1fr 1.3fr;
  margin-top: 54px
}
.training-proof .decision-flow>div {
  padding: 22px 32px 10px 0;
  position: relative;
  border-top: 1px solid #668293
}
.training-proof .decision-flow>div+div {
  padding-left: 30px
}
.training-proof .decision-flow>div+div:before {
  content: '';
  position: absolute;
  left: -4px;
  top: -5px;
  width: 8px;
  height: 8px;
  border-top: 1px solid #b8d0dc;
  border-right: 1px solid #b8d0dc;
  transform: rotate(45deg)
}
.training-proof .decision-flow span {
  font-size: 12px;
  color: #c2d6e2
}
.training-proof .decision-flow p {
  font: 550 22px/1.35 var(--display);
  margin-top: 13px;
  max-width: 21ch
}
.training-proof .new-decision {
  border-top-color: var(--mint)!important
}
.training-proof .new-decision>span {
  color: var(--mint)
}
.training-proof .new-decision a {
  display: inline-flex;
  gap: 12px;
  align-items: center;
  font-size: 13px;
  color: var(--mint);
  margin-top: 22px;
  text-decoration: none
}
.training-proof .new-decision a:hover {
  text-decoration: underline
}
.training-proof .new-decision svg {
  width: 24px;
  height: 24px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.4
}
.training-proof .return-note {
  margin-top: 38px;
  color: #c2d6e2;
  font-size: 12px;
  max-width: 83ch
}
.training-proof .closing {
  padding: 58px 0;
  display: flex;
  justify-content: space-between;
  align-items: end;
  gap: 30px
}
.training-proof .closing>p {
  font: 550 30px/1.2 var(--display);
  letter-spacing: -.02em
}
.training-proof .closing>span {
  font-size: 14px;
  font-weight: 550;
  color: var(--teal)
}
.training-proof .training-sources {
  border-top: 1px solid var(--line);
  padding: 24px 0 48px;
  color: var(--muted);
  font-size: 12px
}
.training-proof .training-sources details {
  margin-top: 15px;
  max-width: 95ch
}
.training-proof .training-sources>p:last-child {
  margin-top: 26px
}
.training-proof .training-sources a[href="#gestione-economica"] {
  display: inline-block;
  font-size: 15px;
  font-weight: 600;
  color: var(--teal-deep, #06667c);
  text-decoration: underline;
  text-underline-offset: 5px;
  transition: color .2s
}
.training-proof .training-sources a[href="#gestione-economica"]:hover {
  color: var(--navy)
}
.training-proof .training-sources summary {
  cursor: pointer;
  width: fit-content
}
.training-proof .training-sources details[open] summary {
  margin-bottom: 15px
}
.training-proof .training-sources details p+p {
  margin-top: 12px
}
.training-proof [hidden] {
  display: none!important
}
.training-proof.enhanced:not(.loop-seen) .return-line {
  stroke-dasharray: var(--route-length);
  stroke-dashoffset: var(--route-length)
}
.training-proof.enhanced.loop-seen .return-line {
  animation: training-complete-loop .8s cubic-bezier(.16,1,.3,1)
}
@keyframes training-complete-loop {
from {
  stroke-dasharray: var(--route-length);
  stroke-dashoffset: var(--route-length)
}
to {
  stroke-dasharray: var(--route-length);
  stroke-dashoffset: 0
}
}
.training-proof .node {
  transition: color .2s
}
.training-proof .node.is-relevant a strong {
  color: var(--teal)
}
@media(max-width:1100px) {
.training-proof .wrap {
  max-width: min(1200px, 100% - 64px)
}
}
@media(max-width:1380px) {
.training-proof .moment {
  gap: 80px
}
.training-proof .return-heading {
  gap: 70px
}
}
@media(max-width:1080px) {
.training-proof .intro {
  display: block
}
.training-proof .intro>p {
  max-width: none;
  margin-top: 25px
}
.training-proof .map {
  --choice-y: 103px
}
.training-proof .process {
  grid-template-columns: minmax(0,1fr) 400px minmax(0,1fr);
  column-gap: 24px;
  grid-template-rows: 90px 150px auto
}
.training-proof .movement video {
  width: 400px;
  height: 400px
}
.training-proof .node strong {
  font-size: 21px
}
.training-proof .node p {
  font-size: 12px;
  margin-left: 0
}
.training-proof .node a {
  gap: 8px
}
.training-proof .scene-caution {
  margin-left: 0;
  margin-top: 22px
}
.training-proof .scene-caution>strong {
  font-size: 24px
}
.training-proof .scene-caution>p:last-child {
  font-size: 12px
}
.training-proof .training-label strong {
  font-size: 19px
}
.training-proof .movement figcaption {
  align-items: start
}
.training-proof .movement figcaption strong {
  font-size: 23px
}
.training-proof .movement figcaption span {
  font-size: 12px
}
.training-proof .movement figcaption {
  flex-wrap: wrap
}
.training-proof .movement>p {
  font-size: 13px
}
.training-proof .choose:after,.training-proof .training-label:after {
  right: -17px
}
.training-proof .moment {
  gap: 45px
}
.training-proof .return-heading {
  gap: 40px
}
.training-proof .decision-flow>div {
  padding-right: 15px
}
.training-proof .decision-flow>div+div {
  padding-left: 20px
}
.training-proof .decision-flow p {
  font-size: 20px
}
}
@media(max-width:760px) {
.training-proof .wrap {
  max-width: min(1200px, 100% - 44px)
}
.training-proof .intro {
  padding: 36px 0 18px
}
.training-proof .intro .training-intro-title {
  font-size: clamp(37px,9.8vw,58px)
}
.training-proof .intro .training-intro-title br {
  display: none
}
.training-proof .intro>p {
  font-size: 14px;
  margin-top: 22px
}
.training-proof .loop {
  margin-top: 10px;
  padding-top: 14px
}
.training-proof .map {
  --choice-y: 104px;
  padding: 0 20px 45px 24px
}
.training-proof .process {
  display: flex;
  flex-direction: column;
  gap: 30px
}
.training-proof .node {
  width: 100%;
  margin: 0
}
.training-proof .node a {
  gap: 11px
}
.training-proof .step {
  flex-basis: 24px;
  height: 24px;
  font-size: 12px
}
.training-proof .node strong {
  font-size: 24px
}
.training-proof .node p {
  font-size: 13px;
  margin: 8px 0 0 35px;
  max-width: 29ch
}
.training-proof .scene-caution {
  margin: 20px 0 0 35px;
  padding-top: 16px
}
.training-proof .scene-caution .scene-case {
  font-size: 12px;
  margin: 0 0 7px
}
.training-proof .scene-caution>strong {
  font-size: 25px
}
.training-proof .scene-caution>p:last-child {
  font-size: 13px;
  margin: 10px 0 0;
  max-width: 28ch
}
.training-proof .movement {
  margin-top: 2px
}
.training-proof .movement video {
  width: 100%;
  height: auto;
  aspect-ratio: 1
}
.training-proof .movement figcaption {
  padding-top: 10px;
  gap: 14px;
  flex-wrap: wrap
}
.training-proof .movement figcaption strong {
  font-size: 25px
}
.training-proof .movement figcaption span {
  font-size: 14px;
  max-width: 23ch
}
.training-proof .movement>p {
  font-size: 13px;
  margin: 12px 0 0;
  max-width: 34ch
}
.training-proof .training-label {
  margin-bottom: 18px
}
.training-proof .person:after,.training-proof .record:after,.training-proof .choose:after,.training-proof .training-label:after {
  display: none
}
.training-proof .training-label strong {
  font-size: 22px
}
.training-proof .training-label p {
  margin: 8px 0 0 35px
}
.training-proof .route-desktop {
  display: none
}
.training-proof .route-mobile {
  display: block
}
.training-proof .return-label {
  position: relative;
  left: auto;
  bottom: auto;
  transform: none;
  white-space: normal;
  padding: 0;
  margin: 28px 0 0 0;
  font-size: 13px
}
.training-proof .return-label a {
  display: block;
  background: white;
  padding: 10px 0
}
.training-proof .return-label svg {
  display: none
}
.training-proof .return-label strong {
  display: block;
  margin: 3px 0 0 35px
}
.training-proof .overview {
  padding-bottom: 35px
}
.training-proof .moment {
  display: block;
  padding: 40px 0
}
.training-proof .moment h2 {
  font-size: 34px
}
.training-proof .moment-heading>p {
  font-size: 16px;
  line-height: 1.65;
  margin-top: 18px;
  max-width: 40ch
}
.training-proof .context {
  margin-top: 28px
}
.training-proof .context-input {
  display: block
}
.training-proof .context-input p {
  margin-top: 4px
}
.training-proof .guidance p {
  font-size: 16px
}
.training-proof .note {
  font-size: 12px
}
.training-proof .moment-heading>.human {
  font-size: 14px
}
.training-proof .return-story {
  margin-top: 0
}
.training-proof .return-inner {
  padding-top: 40px;
  padding-bottom: 35px
}
.training-proof .return-heading {
  display: block
}
.training-proof .return-heading h2 {
  font-size: 35px
}
.training-proof .return-heading>p {
  font-size: 16px;
  margin-top: 18px
}
.training-proof .decision-flow {
  display: block;
  margin-top: 30px
}
.training-proof .decision-flow>div,.training-proof .decision-flow>div+div {
  padding: 20px 0 24px 28px;
  border-top: 0;
  border-left: 1px solid #668293;
  margin-left: 5px
}
.training-proof .decision-flow>div+div:before {
  left: -5px;
  top: 0;
  transform: rotate(135deg)
}
.training-proof .decision-flow p {
  font-size: 22px;
  max-width: 25ch;
  margin-top: 8px
}
.training-proof .decision-flow>.new-decision {
  border-top: 0!important;
  border-left-color: var(--mint)
}
.training-proof .return-note {
  font-size: 12px;
  line-height: 1.7;
  margin-top: 12px
}
.training-proof .closing {
  display: block;
  padding: 38px 0
}
.training-proof .closing>p {
  font-size: 27px
}
.training-proof .closing>span {
  display: block;
  margin-top: 24px
}
.training-proof .training-sources {
  padding-top: 22px
}
.training-proof #training-video-toggle {
  font-size: 12px;
  padding: 10px 12px
}
}
@media(prefers-reduced-motion:reduce) {
.training-proof {
  scroll-behavior: auto
}
.training-proof *,.training-proof *:before,.training-proof *:after {
  animation: none!important;
  transition: none!important
}
.training-proof.enhanced:not(.loop-seen) .return-line {
  stroke-dasharray: none;
  stroke-dashoffset: 0
}
}
.training-proof #training-persona {
  display: block
}
.training-proof #training-persona .moment-heading {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: end
}
.training-proof #training-persona .moment-heading>p {
  margin-top: 0;
  max-width: 38ch
}
.training-proof #training-persona .context {
  display: grid;
  grid-template-columns: minmax(0,1.35fr) minmax(327px,1fr);
  gap: 64px;
  margin-top: 36px
}
.training-proof #training-persona figure {
  min-width: 0
}
.training-proof #training-persona figcaption {
  margin-bottom: 18px
}
.training-proof #training-persona h3 {
  font: 650 24px/1.2 var(--display);
  letter-spacing: -.02em
}
.training-proof #training-persona .person-question {
  font-size: 16px;
  margin-bottom: 12px
}
.training-proof #training-persona .person-zones {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px
}
.training-proof #training-persona .person-injuries {
  display: grid;
  grid-template-columns: minmax(0,408px) 66px;
  gap: 8px;
  margin-top: 20px;
  max-width: 482px
}
.training-proof #training-persona .person-equivalent,.training-proof #training-indicazioni .exercise-equivalent {
  font-size: 15px;
  line-height: 1.7;
  color: var(--muted);
  margin-top: 16px;
  max-width: 48ch
}
.training-proof #training-persona summary,.training-proof #training-indicazioni summary {
  font-size: 14px;
  line-height: 1.6;
  min-height: 44px;
  padding: 10px 0;
  color: var(--teal);
  cursor: pointer;
  width: fit-content;
  text-decoration: underline;
  text-underline-offset: 5px
}
.training-proof #training-persona details p {
  padding: 6px 0 12px
}
.training-proof #training-indicazioni {
  padding: 64px 0;
  border-bottom: 1px solid var(--line)
}
.training-proof #training-indicazioni .exercise-intro {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: start
}
.training-proof #training-indicazioni h2 {
  font: 650 clamp(32px,3vw,44px)/1.15 var(--display);
  letter-spacing: -.03em;
  max-width: 20ch
}
.training-proof #training-indicazioni .exercise-intro p {
  font-size: 16px;
  line-height: 1.7;
  color: var(--muted);
  max-width: 48ch
}
.training-proof #training-indicazioni .exercise-intro p+p {
  margin-top: 16px
}
.training-proof #training-indicazioni .exercise-cases {
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  gap: 28px;
  margin-top: 32px;
  align-items: start
}
.training-proof #training-indicazioni .exercise-case {
  min-width: 0
}
.training-proof #training-indicazioni .exercise-proof {
  min-width: 0;
  max-width: 431px
}
.training-proof #training-indicazioni .exercise-source {
  font-size: 13px;
  line-height: 1.7;
  color: var(--muted);
  margin-top: 24px;
  max-width: 85ch
}
.training-proof #training-indicazioni .exercise-equivalent-content {
  padding: 6px 0 12px
}
.training-proof #training-indicazioni .exercise-equivalent-content p+p {
  margin-top: 16px
}
.training-proof #training-indicazioni .exercise-equivalent-content strong {
  color: var(--ink)
}
@media(max-width:1199px) {
.training-proof #training-persona .context {
  gap: 40px
}
.training-proof #training-indicazioni .exercise-cases {
  display: block
}
.training-proof #training-indicazioni .exercise-case {
  padding: 28px 0;
  border-bottom: 1px solid var(--line)
}
.training-proof #training-indicazioni .exercise-proof {
  max-width: 480px
}
}
@media(max-width:900px) {
.training-proof #training-persona .moment-heading {
  display: block
}
.training-proof #training-persona .moment-heading>p {
  margin-top: 18px
}
.training-proof #training-persona .context {
  grid-template-columns: 1fr;
  margin-top: 32px;
  gap: 28px
}
.training-proof #training-persona .person-question {
  font-size: 15px;
  max-width: 28ch
}
.training-proof #training-indicazioni {
  padding: 40px 0
}
.training-proof #training-indicazioni .exercise-intro {
  display: block
}
.training-proof #training-indicazioni h2 {
  font-size: 34px
}
.training-proof #training-indicazioni .exercise-intro>div {
  margin-top: 18px
}
.training-proof #training-indicazioni .exercise-cases {
  margin-top: 8px
}
.training-proof #training-indicazioni .exercise-case {
  padding: 28px 0
}
}
@media(min-width:901px) {
.training-proof #training-persona .moment-heading,.training-proof #training-persona .context,.training-proof #training-indicazioni .exercise-intro,.training-proof .return-heading {
  grid-template-columns: minmax(0,1.35fr) minmax(327px,1fr);
  gap: clamp(40px,5vw,64px)
}
}
@media(max-width:1199px) {
.training-proof #training-indicazioni {
  padding-bottom: 48px
}
.training-proof #training-indicazioni .exercise-case:last-child {
  border-bottom: 0;
  padding-bottom: 0
}
}
@media(min-width:761px) and (max-width:1080px) {
.training-proof .map {
  --choice-y: 123px
}
.training-proof .process {
  grid-template-rows: 110px 150px auto
}
.training-proof .person:after {
  top: 86px
}
}
@media(min-width:761px) and (max-width:850px) {
.training-proof .map {
  --choice-y: 163px
}
.training-proof .process {
  grid-template-rows: 150px 150px auto
}
.training-proof .person:after {
  top: 126px
}
}
.training-proof {
  padding: 0;
  font-family: Inter,system-ui,sans-serif;
  font-weight: 400;
  letter-spacing: normal;
  text-align: left;
}
.training-proof h2,.training-proof h3 {
  color: inherit;
  text-transform: none;
}
.training-proof [id] {
  scroll-margin-top: 100px;
}
/* Asse testuale a 1200 (griglia landing); i soli blocchi con ritagli
   sfondano simmetricamente fino a 1280 per non ridurre i ritagli
   sotto le dimensioni del campione approvato. */
@media(min-width:1289px) {
.training-proof #training-persona .context,
.training-proof #training-indicazioni .exercise-cases {
  margin-inline: max(-40px, calc((1288px - 100vw) / 2));
}
}
/* Evidenze ricostruite: pannelli tenui + componenti HTML nativi che
   riproducono fedelmente le catture reali (collegate dalle note
   «Cattura originale»). Nessun raster: tipografia della landing. */
.training-proof #training-persona .person-collection,
.training-proof #training-persona .person-summary,
.training-proof #training-indicazioni .exercise-proof {
  background: #f5f9fa;
  border: 1px solid var(--line);
  border-radius: 16px;
  padding: 22px 24px;
}
.training-proof #training-persona .context {
  align-items: start;
}
.training-proof #training-persona .person-zones {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  max-width: none;
}
.training-proof #training-persona .person-injuries {
  display: flex;
  align-items: center;
  gap: 12px;
  max-width: none;
}
.training-proof .ui-card {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 12px;
}
.training-proof .ui-check,
.training-proof .ui-field {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  min-height: 44px;
  padding: 10px 16px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 11px;
  font-size: 16px;
  color: var(--ink);
}
.training-proof .ui-check svg {
  width: 17px;
  height: 17px;
  flex: none;
  background: var(--teal);
  border-radius: 5px;
  fill: none;
  stroke: #fff;
  stroke-width: 2.2;
  stroke-linecap: round;
  stroke-linejoin: round;
  padding: 2px;
}
.training-proof .ui-toggle {
  flex: none;
  width: 42px;
  height: 24px;
  border-radius: 12px;
  background: var(--teal);
  position: relative;
}
.training-proof .ui-toggle i {
  position: absolute;
  top: 3px;
  right: 3px;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: #fff;
}
.training-proof .rebuild-note {
  margin-top: 18px;
  font-size: 12px;
  color: var(--muted);
}
.training-proof .rebuild-note a {
  text-decoration: underline;
  text-underline-offset: 4px;
}
.training-proof .summary-card {
  padding: 16px 18px;
  max-width: 300px;
}
.training-proof .summary-label {
  font-weight: 600;
  font-size: 15px;
}
.training-proof .summary-chips {
  display: flex;
  gap: 8px;
  margin-top: 10px;
  flex-wrap: wrap;
}
.training-proof .summary-chips span {
  background: #eef2f4;
  border-radius: 15px;
  padding: 4px 12px;
  font-size: 13.5px;
}
.training-proof .summary-warning {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 12px;
  color: #c02626;
  font-weight: 600;
  font-size: 15px;
}
.training-proof .summary-warning svg {
  width: 16px;
  height: 16px;
  flex: none;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.6;
  stroke-linecap: round;
}
.training-proof .summary-warning svg .dot {
  fill: currentColor;
  stroke: none;
}
.training-proof .ex-head {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 12px 16px;
}
.training-proof .ex-dot {
  flex: none;
  width: 9px;
  height: 9px;
  border-radius: 50%;
  margin-top: 6px;
}
.training-proof .ex-dot.adapt { background: #2563eb; }
.training-proof .ex-dot.caution { background: var(--orange); }
.training-proof .ex-dot.avoid { background: #dc2626; }
.training-proof .ex-head-text strong {
  display: block;
  font-size: 17px;
  letter-spacing: -.01em;
}
.training-proof .ex-head-text span {
  font-size: 12.5px;
  color: var(--muted);
}
.training-proof .ex-level {
  margin-top: 14px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.training-proof .ex-level.adapt { color: #2563eb; }
.training-proof .ex-level.caution { color: #c2660a; }
.training-proof .ex-level.avoid { color: #c02626; }
.training-proof .ex-cond {
  margin-top: 4px;
  font-weight: 600;
  font-size: 15.5px;
}
.training-proof .ex-why {
  margin-top: 2px;
  font-size: 14px;
  line-height: 1.6;
  color: var(--muted);
}
.training-proof .ex-why+.ex-cond {
  margin-top: 12px;
}
.training-proof .ex-alt-label {
  display: flex;
  align-items: center;
  gap: 7px;
  margin-top: 16px;
  color: var(--teal);
  font-size: 12.5px;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.training-proof .ex-alt-label svg,
.training-proof .ex-swap svg {
  width: 15px;
  height: 15px;
  flex: none;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.5;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.training-proof .ex-alt {
  display: flex;
  align-items: center;
  gap: 9px;
  padding: 10px 12px;
  margin-top: 9px;
  width: fit-content;
  max-width: 100%;
}
.training-proof .ex-alt svg.ok {
  width: 16px;
  height: 16px;
  flex: none;
  fill: none;
  stroke: #16a34a;
  stroke-width: 1.5;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.training-proof .ex-alt-text {
  min-width: 0;
}
.training-proof .ex-alt-text strong {
  font-size: 15px;
}
.training-proof .ex-alt-text em {
  font-style: normal;
  font-size: 12px;
  color: var(--muted);
  margin-left: 6px;
}
.training-proof .ex-alt-text span {
  display: block;
  font-size: 13px;
  color: var(--muted);
}
.training-proof .ex-alt-flag {
  flex: none;
  font-size: 12.5px;
  font-weight: 600;
  color: #c2660a;
}
.training-proof .ex-swap {
  display: flex;
  align-items: center;
  gap: 7px;
  margin-top: 10px;
  color: var(--teal);
  font-weight: 600;
  font-size: 14px;
}
.training-proof .ui-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  margin-top: 12px;
  min-height: 42px;
  padding: 9px 16px;
  background: #f3f5f6;
  border: 1px solid var(--line);
  border-radius: 10px;
  font-size: 14.5px;
  font-weight: 500;
  color: var(--ink);
}
.training-proof .ui-btn svg {
  width: 15px;
  height: 15px;
  flex: none;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.5;
  stroke-linecap: round;
}
@media(max-width:760px) {
.training-proof #training-persona .person-collection,
.training-proof #training-persona .person-summary {
  padding: 18px 16px;
}
.training-proof #training-indicazioni .exercise-proof {
  padding: 18px 16px;
}
}
