:root{
  --verde: #0C3F36;
  --verde-2: #134F44;
  --verde-3: #1d6255;
  --testo: #2B2B2B;
  --testo-2: #5a5a55;
  --oro: #D4A437;
  --oro-chiaro: #e7c877;
  --crema: #F3EFE7;
  --crema-2: #EAE4D8;
  --bianco: #FFFFFF;
  --linea: rgba(12, 63, 54, .14);
  --serif: "Playfair Display", Georgia, serif;
  --sans: "Montserrat", system-ui, sans-serif;
  --raggio: 18px;
  --ombra: 0 18px 50px -24px rgba(12, 63, 54, .35);
  --larghezza: 1240px;
  --gutter: clamp(16px, 4vw, 48px);
  --ease: cubic-bezier(.22, .8, .24, 1);
}
*,*::before,*::after{ box-sizing: border-box; }
html{ scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body.lm{
  margin: 0; background: var(--bianco); color: var(--testo);
  font: 400 17px/1.7 var(--sans); overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
}
body.lm img{ max-width: 100%; height: auto; display: block; }
body.lm a{ color: inherit; }
body.lm h1,body.lm h2,body.lm h3{ margin: 0 0 .5em; color: var(--verde-2); line-height: 1.15; font-weight: 500; }
body.lm h1,body.lm h2{ font-family: var(--serif); }
body.lm h1{ font-size: clamp(2.3rem, 5.4vw, 4.4rem); letter-spacing: -.01em; }
body.lm h2{ font-size: clamp(1.7rem, 3.2vw, 2.6rem); }
body.lm h3{ font-family: var(--sans); font-size: 1.08rem; font-weight: 600; line-height: 1.35; }
body.lm p{ margin: 0 0 1em; }
body.lm em{ font-style: italic; color: var(--oro); }
body.lm strong{ font-weight: 600; }
body.lm :focus-visible{ outline: 2px solid var(--oro); outline-offset: 3px; border-radius: 4px; }
body.lm .skip{ position: absolute; left: -999px; top: 8px; z-index: 100; background: var(--oro); color: var(--verde); padding: 8px 14px; border-radius: 8px; }
body.lm .skip:focus{ left: 8px; }
body.lm .contenitore{ width: min(var(--larghezza), 100% - 2 * var(--gutter)); margin-inline: auto; }
body.lm .stretto{ max-width: 820px; }
body.lm .centro{ text-align: center; margin-top: 2.5rem; }
body.lm .piccolo{ font-size: .85rem; color: var(--testo-2); }
body.lm .ico{ width: 1.15em; height: 1.15em; flex: none; }
body.lm .stella{ width: 44px; height: 44px; margin-bottom: 1rem; }
body.lm .occhiello{
  font: 600 .74rem/1.3 var(--sans); letter-spacing: .22em; text-transform: uppercase;
  color: var(--verde-3); margin-bottom: 1rem; display: flex; align-items: center; gap: .8em;
}
body.lm .occhiello::before{ content: ""; width: 28px; height: 1px; background: currentColor; }
body.lm .occhiello--oro{ color: var(--oro); }
body.lm .lead{ font-size: 1.15rem; color: var(--testo); }
body.lm .titolo-grande{ font-size: clamp(2rem, 4vw, 3.2rem); }
body.lm .btn{
  display: inline-flex; align-items: center; justify-content: center; gap: .6em;
  font: 600 .8rem/1 var(--sans); letter-spacing: .12em; text-transform: uppercase; text-decoration: none;
  padding: 1.1em 1.7em; border-radius: 999px; border: 1px solid transparent; cursor: pointer;
  transition: background .3s, color .3s, border-color .3s, transform .3s var(--ease);
}
body.lm .btn:hover{ transform: translateY(-2px); }
body.lm .btn .ico{ transition: transform .3s var(--ease); }
body.lm .btn:hover .ico{ transform: translateX(3px); }
body.lm .btn--oro{ background: var(--oro); color: var(--verde); }
body.lm .btn--oro:hover{ background: var(--oro-chiaro); }
body.lm .btn--verde{ background: var(--verde-2); color: var(--bianco); }
body.lm .btn--verde:hover{ background: var(--oro); color: var(--verde); }
body.lm .btn--linea{ border-color: var(--verde-2); color: var(--verde-2); background: transparent; }
body.lm .btn--linea:hover{ background: var(--verde-2); color: var(--bianco); }
body.lm .btn--linea-chiara{ border-color: rgba(255,255,255,.45); color: var(--bianco); background: transparent; }
body.lm .btn--linea-chiara:hover{ border-color: var(--oro); color: var(--oro); }
body.lm .btn--sm{ padding: .85em 1.3em; font-size: .72rem; }
body.lm .azioni{ display: flex; flex-wrap: wrap; gap: .8rem; margin-top: 1.6rem; }
body.lm .link-freccia{
  display: inline-flex; align-items: center; gap: .5em; margin-top: .6rem;
  font: 600 .78rem/1 var(--sans); letter-spacing: .12em; text-transform: uppercase; text-decoration: none; color: var(--verde-2);
}
body.lm .link-freccia .ico{ transition: transform .3s var(--ease); }
body.lm a:hover .link-freccia .ico,body.lm .link-freccia:hover .ico{ transform: translateX(5px); }
body.lm .testata{
  position: sticky; top: 0; z-index: 50; display: flex; align-items: center; justify-content: space-between;
  gap: 1rem; padding: 14px var(--gutter); background: var(--verde); color: var(--bianco);
  transition: background .4s, box-shadow .4s, padding .4s;
}
body.lm .testata--home{ position: fixed; inset: 0 0 auto; background: transparent; }
body.lm .testata.scorsa{ background: rgba(12, 63, 54, .92); backdrop-filter: blur(12px); box-shadow: 0 8px 30px -18px rgba(0,0,0,.5); padding-block: 10px; }
body.lm .marchio{ text-decoration: none; display: grid; line-height: 1.1; }
body.lm .marchio__nome{ font: 500 1.35rem var(--serif); color: var(--bianco); }
body.lm .marchio__ruolo{ font: 500 .62rem var(--sans); letter-spacing: .26em; text-transform: uppercase; color: var(--oro); margin-top: 4px; }
body.lm .nav{ display: flex; align-items: center; gap: 2rem; }
body.lm .nav > ul{ display: flex; gap: 1.8rem; list-style: none; margin: 0; padding: 0; }
body.lm .nav a{ text-decoration: none; font: 500 .82rem var(--sans); letter-spacing: .06em; }
body.lm .nav > ul > li > a{ position: relative; padding: .4em 0; }
body.lm .nav > ul > li > a::after{ content: ""; position: absolute; left: 0; right: 100%; bottom: 0; height: 1px; background: var(--oro); transition: right .35s var(--ease); }
body.lm .nav > ul > li > a:hover::after,body.lm .nav > ul > li > a[aria-current]::after{ right: 0; }
body.lm .nav__sub{ position: relative; }
body.lm .nav__sub ul{
  position: absolute; top: calc(100% + 14px); left: -20px; min-width: 300px; list-style: none; margin: 0; padding: 10px;
  background: var(--bianco); border-radius: 14px; box-shadow: var(--ombra);
  opacity: 0; visibility: hidden; transform: translateY(6px); transition: .25s var(--ease);
}
body.lm .nav__sub ul::before{ content: ""; position: absolute; inset: -16px 0 auto; height: 16px; }
body.lm .nav__sub:hover ul,body.lm .nav__sub:focus-within ul{ opacity: 1; visibility: visible; transform: none; }
body.lm .nav__sub ul a{ display: block; padding: .7em .9em; color: var(--verde-2); border-radius: 8px; font-size: .84rem; letter-spacing: 0; }
body.lm .nav__sub ul a:hover{ background: var(--crema); }
body.lm .menu-btn{ display: none; background: none; border: 0; color: var(--bianco); padding: 6px; cursor: pointer; }
body.lm .menu-btn .ico{ width: 28px; height: 28px; }
body.lm .menu-btn .ico:last-child{ display: none; }
@media (max-width: 960px){body.lm .menu-btn{ display: block; position: relative; z-index: 2; }
body.lm .menu-btn[aria-expanded="true"] .ico:first-child{ display: none; }
body.lm .menu-btn[aria-expanded="true"] .ico:last-child{ display: block; }
body.lm .nav{
    position: fixed; inset: 0; flex-direction: column; justify-content: center; gap: 2rem;
    background: var(--verde); padding: 90px var(--gutter) 40px; overflow-y: auto;
    opacity: 0; visibility: hidden; transition: .35s var(--ease);
  }
body.lm .nav.aperto{ opacity: 1; visibility: visible; }
body.lm .nav > ul{ flex-direction: column; align-items: center; gap: 1.2rem; text-align: center; }
body.lm .nav > ul > li > a{ font: 500 1.8rem var(--serif); letter-spacing: 0; }
body.lm .nav__sub ul{ position: static; opacity: 1; visibility: visible; transform: none; background: none; box-shadow: none; min-width: 0; padding: .4rem 0 0; }
body.lm .nav__sub ul a{ color: rgba(255,255,255,.75); font-size: .9rem; padding: .35em; }
body.lm .nav__sub ul a:hover{ background: none; color: var(--oro); }

}
body.lm .hero{
  position: relative; min-height: 100svh; display: flex; align-items: center; overflow: hidden;
  background: radial-gradient(120% 90% at 75% 40%, var(--verde-2) 0%, var(--verde) 60%, #082c26 100%);
  color: var(--bianco); padding: 120px 0 90px;
}
body.lm .hero__trama,body.lm .pagehead__trama,body.lm .cta__trama,body.lm .processo__trama,body.lm .piede__trama{
  position: absolute; inset: 0 0 auto; height: 70%; pointer-events: none;
  background: url(../img/trama-oro.webp) top center / 100% auto no-repeat; opacity: .22;
}
body.lm .hero__trama{ opacity: .28; }
body.lm .hero__3d{ position: absolute; top: 0; right: 0; width: 62%; height: 100%; }
body.lm .hero__inner{ position: relative; z-index: 1; }
body.lm .hero__titolo{ color: var(--bianco); font-weight: 400; font-size: clamp(2.8rem, 7vw, 6rem); line-height: 1.02; max-width: 11ch; margin-bottom: .4em; }
body.lm .hero__titolo .riga{ display: inline-block; overflow: hidden; vertical-align: top; padding-bottom: .08em; }
body.lm .hero__titolo .riga > span{ display: inline-block; transform: translateY(105%); animation: sale 1.1s var(--ease) forwards; }
body.lm .hero__titolo .riga:nth-child(2) > span{ animation-delay: .12s; }
body.lm .hero__titolo .riga:nth-child(3) > span{ animation-delay: .24s; }
@keyframes sale{ to { transform: none; } }
body.lm .hero__sub{ max-width: 46ch; font-size: 1.08rem; color: rgba(255,255,255,.82); opacity: 0; animation: appare .9s .5s forwards; }
body.lm .hero .azioni{ opacity: 0; animation: appare .9s .65s forwards; }
@keyframes appare{ from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
body.lm .hero__badge{ display: flex; flex-wrap: wrap; gap: 1.6rem 2.4rem; list-style: none; padding: 1.6rem 0 0; margin: 2.6rem 0 0; border-top: 1px solid rgba(212,164,55,.3); max-width: 600px; font-size: .78rem; color: rgba(255,255,255,.7); opacity: 0; animation: appare .9s .8s forwards; }
body.lm .hero__badge strong{ display: block; font: 500 1.5rem var(--serif); color: var(--oro); }
body.lm .hero__scroll{
  position: absolute; left: 50%; bottom: 22px; transform: translateX(-50%); color: rgba(255,255,255,.6);
  font: 500 .66rem var(--sans); letter-spacing: .3em; text-transform: uppercase; text-decoration: none; padding-bottom: 46px;
}
body.lm .hero__scroll::after{ content: ""; position: absolute; left: 50%; bottom: 0; width: 1px; height: 38px; background: linear-gradient(var(--oro), transparent); animation: goccia 2s infinite; }
@keyframes goccia{ 0% { transform: scaleY(0); transform-origin: top; } 50% { transform: scaleY(1); transform-origin: top; } 51% { transform-origin: bottom; } 100% { transform: scaleY(0); transform-origin: bottom; } }
html.no-webgl body.lm .hero__3d{ background: url(../img/scala.webp) center / contain no-repeat; opacity: .5; }
@media (max-width: 860px){body.lm .hero{ align-items: flex-end; }
body.lm .hero__3d{ width: 100%; height: 62%; opacity: .55; }

}
body.lm .sez{ padding: clamp(70px, 10vw, 130px) 0; position: relative; }
body.lm .sez--stretta{ padding: 40px 0; }
body.lm .sez--crema{ background: var(--crema); }
body.lm .sez--verde{ background: var(--verde); color: rgba(255,255,255,.85); }
body.lm .sez--verde h2,body.lm .sez--verde h3{ color: var(--bianco); }
body.lm .intest{ max-width: 760px; margin-bottom: clamp(40px, 6vw, 70px); }
body.lm .intest--split{ max-width: none; display: grid; grid-template-columns: 1.1fr 1fr; gap: 2rem 4rem; align-items: end; }
body.lm .intest--split h2{ margin: 0; }
@media (max-width: 800px){body.lm .intest--split{ grid-template-columns: 1fr; }
 }
body.lm .due-col{ display: grid; grid-template-columns: 1.05fr .95fr; gap: clamp(40px, 7vw, 100px); align-items: center; }
body.lm .due-col--img-sx{ grid-template-columns: .9fr 1.1fr; }
body.lm .due-col--contatti{ align-items: start; }
@media (max-width: 900px){body.lm .due-col,body.lm .due-col--img-sx{ grid-template-columns: 1fr; }
 }
body.lm .spunte{ list-style: none; padding: 0; margin: 1.4rem 0; display: grid; gap: .7rem; }
body.lm .spunte li{ position: relative; padding-left: 2rem; }
body.lm .spunte li::before{ content: ""; position: absolute; left: 0; top: .45em; width: 14px; height: 14px; background: var(--oro); clip-path: polygon(50% 0, 61% 39%, 100% 50%, 61% 61%, 50% 100%, 39% 61%, 0 50%, 39% 39%); }
body.lm .esperienza{ position: relative; margin: 0; max-width: 440px; justify-self: end; }
body.lm .esperienza img{ border-radius: 220px 220px var(--raggio) var(--raggio); box-shadow: var(--ombra); }
body.lm .esperienza__num{ position: absolute; left: -40px; top: 18%; background: var(--verde); color: var(--bianco); padding: 1.4rem 1.6rem; border-radius: var(--raggio); box-shadow: var(--ombra); max-width: 210px; z-index: 1; }
body.lm .esperienza__num span{ font: 400 4rem/1 var(--serif); color: var(--oro); display: block; }
body.lm .esperienza__num small{ font-size: .74rem; line-height: 1.4; display: block; margin-top: .4rem; }
@media (max-width: 900px){body.lm .esperienza{ justify-self: center; }
body.lm .esperienza__num{ left: -10px; }
 }
body.lm .ambiti{ overflow: hidden; margin: 0 0 clamp(40px, 6vw, 70px); mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); }
body.lm .ambiti__binario{ display: flex; gap: 18px; width: max-content; animation: nastro 60s linear infinite; }
body.lm .ambiti:hover .ambiti__binario{ animation-play-state: paused; }
body.lm .ambito{ margin: 0; width: clamp(300px, 42vw, 560px); border-radius: var(--raggio); overflow: hidden; }
body.lm .ambito img{ transition: transform .8s var(--ease); }
body.lm .ambito:hover img{ transform: scale(1.04); }
@keyframes nastro{ to { transform: translateX(calc(-50% - 9px)); } }
body.lm .griglia-serv{ display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
body.lm .griglia-serv--3{ grid-template-columns: repeat(3, 1fr); }
@media (max-width: 1100px){body.lm .griglia-serv{ grid-template-columns: repeat(2, 1fr); }
 }
@media (max-width: 640px){body.lm .griglia-serv,body.lm .griglia-serv--3{ grid-template-columns: 1fr; }
 }
body.lm .carta-serv{
  position: relative; display: flex; flex-direction: column; text-decoration: none; background: var(--bianco);
  border-radius: var(--raggio); padding: 0 0 1.6rem; overflow: hidden; border: 1px solid var(--linea);
  transition: transform .45s var(--ease), box-shadow .45s var(--ease);
}
body.lm .carta-serv:hover{ transform: translateY(-6px); box-shadow: var(--ombra); }
body.lm .carta-serv__img{ aspect-ratio: 16/10; overflow: hidden; display: block; }
body.lm .carta-serv__img img{ width: 100%; height: 100%; object-fit: cover; transition: transform .8s var(--ease); }
body.lm .carta-serv:hover .carta-serv__img img{ transform: scale(1.06); }
body.lm .carta-serv__n{ font: 400 .9rem var(--serif); color: var(--oro); margin: 1.3rem 1.5rem .3rem; }
body.lm .carta-serv h3{ margin: 0 1.5rem .6rem; font-size: 1.02rem; }
body.lm .carta-serv p{ margin: 0 1.5rem 1rem; font-size: .9rem; color: var(--testo-2); flex: 1; }
body.lm .carta-serv .link-freccia{ margin: 0 1.5rem; }
body.lm .ritratto{ position: relative; margin: 0; max-width: 460px; }
body.lm .ritratto__venature{ position: absolute; inset: 6% -8% 0 8%; width: 100%; height: 94%; object-fit: cover; background: var(--verde); border-radius: 240px 240px var(--raggio) var(--raggio); }
body.lm .ritratto__foto{ position: relative; width: 88%; margin-left: 4%; }
body.lm .qualifiche{ display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin: 1.8rem 0 1rem; }
@media (max-width: 520px){body.lm .qualifiche{ grid-template-columns: 1fr; }
 }
body.lm .qualifica{ display: grid; gap: .2rem; padding: 1.1rem 1.2rem; border-radius: 14px; background: var(--crema); border-left: 3px solid var(--oro); font-size: .84rem; }
body.lm .qualifica strong{ color: var(--verde-2); font-size: .92rem; }
body.lm .qualifica__eti{ font-size: .64rem; letter-spacing: .18em; text-transform: uppercase; color: var(--oro); font-weight: 600; }
body.lm .processo{ position: relative; height: 420vh; background: var(--verde); color: rgba(255,255,255,.85); }
body.lm .processo__sticky{ position: sticky; top: 0; height: 100svh; overflow: hidden; display: flex; align-items: center; }
body.lm .processo__3d{ position: absolute; top: 0; right: 0; width: 60%; height: 100%; }
body.lm .processo__inner{ position: relative; z-index: 1; }
body.lm .processo__testo{ max-width: 470px; }
body.lm .processo h2{ color: var(--bianco); font-size: clamp(1.6rem, 2.8vw, 2.4rem); }
body.lm .processo__intro{ font-size: .92rem; color: rgba(255,255,255,.7); }
body.lm .fasi{ list-style: none; margin: 1.8rem 0 0; padding: 0; display: grid; gap: .4rem; }
body.lm .fase{ display: grid; grid-template-columns: 44px 1fr; gap: .2rem 1rem; padding: .9rem 0; border-top: 1px solid rgba(212,164,55,.2); opacity: .38; transition: opacity .5s; }
body.lm .fase__n{ font: 400 1.1rem var(--serif); color: var(--oro); padding-top: 2px; }
body.lm .fase h3{ color: var(--bianco); margin: 0; font-size: 1rem; }
body.lm .fase p,body.lm .fase__eti{ display: grid; grid-template-rows: 0fr; overflow: hidden; margin: 0; font-size: .88rem; max-height: 0; transition: max-height .6s var(--ease), margin .6s; }
body.lm .fase__eti{ font-size: .66rem; letter-spacing: .2em; text-transform: uppercase; color: var(--oro); }
body.lm .fase.attiva{ opacity: 1; }
body.lm .fase.attiva p{ max-height: 8em; margin-top: .4rem; }
body.lm .fase.attiva .fase__eti{ max-height: 2em; margin-top: .5rem; }
body.lm .processo__barra{ position: absolute; left: var(--gutter); right: var(--gutter); bottom: 26px; height: 1px; background: rgba(255,255,255,.12); }
body.lm .processo__barra span{ display: block; height: 100%; width: calc(var(--p, 0) * 100%); background: var(--oro); }
@media (max-width: 860px){body.lm .processo{ height: 380vh; }
body.lm .processo__sticky{ align-items: flex-end; padding-bottom: 60px; }
body.lm .processo__3d{ width: 100%; height: 52%; }
body.lm .processo__intro{ display: none; }
body.lm .fase{ padding: .55rem 0; }

}
html.no-webgl body.lm .processo,html.riduci body.lm .processo{ height: auto; }
html.no-webgl body.lm .processo__sticky,html.riduci body.lm .processo__sticky{ position: relative; height: auto; padding: 100px 0; }
html.no-webgl body.lm .fase,html.riduci body.lm .fase{ opacity: 1; }
html.no-webgl body.lm .fase p,html.riduci body.lm .fase p{ max-height: none; margin-top: .4rem; }
html.no-webgl body.lm .processo__3d{ display: none; }
body.lm .griglia-punti,body.lm .griglia-voci{ display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
body.lm .griglia-voci{ grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); }
@media (max-width: 1000px){body.lm .griglia-punti{ grid-template-columns: repeat(2, 1fr); }
 }
@media (max-width: 560px){body.lm .griglia-punti{ grid-template-columns: 1fr; }
 }
body.lm .punto,body.lm .voce{ padding: 1.8rem 1.6rem; border-radius: var(--raggio); background: var(--crema); transition: transform .45s var(--ease), background .45s; }
body.lm .voce{ background: var(--bianco); border: 1px solid var(--linea); }
body.lm .punto:hover,body.lm .voce:hover{ transform: translateY(-4px); }
body.lm .punto p,body.lm .voce p{ font-size: .92rem; color: var(--testo-2); margin: 0; }
body.lm .punto .stella,body.lm .voce .stella{ width: 38px; height: 38px; }
body.lm .cta{ position: relative; overflow: hidden; background: var(--verde); color: rgba(255,255,255,.82); padding: clamp(80px, 11vw, 140px) 0; text-align: center; }
body.lm .cta__inner{ position: relative; max-width: 760px; }
body.lm .cta .stella{ margin-inline: auto; }
body.lm .cta h2{ color: var(--bianco); }
body.lm .cta .azioni{ justify-content: center; }
body.lm .pagehead{ position: relative; overflow: hidden; background: var(--verde); color: var(--bianco); padding: clamp(80px, 12vw, 150px) 0 clamp(60px, 8vw, 100px); }
body.lm .pagehead .contenitore{ position: relative; }
body.lm .pagehead h1{ color: var(--bianco); max-width: 18ch; }
body.lm .pagehead__lead{ font-size: clamp(1.02rem, 1.6vw, 1.22rem); color: rgba(255,255,255,.8); max-width: 60ch; }
body.lm .pagehead--img .pagehead__img{ position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: .18; }
body.lm .briciole{ font-size: .78rem; color: rgba(255,255,255,.6); margin-bottom: 1.6rem; }
body.lm .briciole a{ text-decoration: none; color: rgba(255,255,255,.8); }
body.lm .briciole a:hover{ color: var(--oro); }
body.lm .prosa{ columns: 2 320px; column-gap: 3rem; margin-top: 1.6rem; color: var(--testo-2); }
body.lm .prosa p{ break-inside: avoid; }
body.lm .prosa strong{ color: var(--verde-2); }
body.lm .perte{ list-style: none; padding: 0; margin: 0; display: grid; gap: .2rem; }
body.lm .perte li{ padding: 1rem 0 1rem 2.2rem; border-bottom: 1px solid var(--linea); position: relative; }
body.lm .perte li::before{ content: "✦"; position: absolute; left: 0; color: var(--oro); }
body.lm .nota{ background: var(--verde); color: rgba(255,255,255,.85); padding: 2.4rem; border-radius: var(--raggio); position: relative; overflow: hidden; }
body.lm .nota p{ font: 400 1.15rem/1.55 var(--serif); }
body.lm .nota .btn--verde{ background: var(--oro); color: var(--verde); }
body.lm .nota .btn--verde:hover{ background: var(--oro-chiaro); }
body.lm .tappe{ list-style: none; padding: 0; margin: 2rem 0 0; display: grid; gap: 1.2rem; }
body.lm .tappe li{ padding-left: 1.2rem; border-left: 2px solid var(--oro); color: var(--testo-2); font-size: .95rem; }
body.lm .tappe span{ display: block; font: 500 1.1rem var(--serif); color: var(--verde-2); margin-bottom: .2rem; }
body.lm .doppia-img{ position: relative; margin: 0; }
body.lm .doppia-img img:first-child{ border-radius: var(--raggio); width: 88%; box-shadow: var(--ombra); }
body.lm .doppia-img img:last-child{ position: absolute; right: 0; bottom: -18%; width: 34%; border-radius: 120px 120px 14px 14px; border: 6px solid var(--bianco); box-shadow: var(--ombra); }
@media (max-width: 900px){body.lm .doppia-img{ margin-bottom: 18%; }
 }
body.lm .citazione{ text-align: center; overflow: hidden; }
body.lm .citazione__testo{ font: 400 clamp(1.3rem, 2.4vw, 1.8rem)/1.5 var(--serif); color: var(--bianco); }
body.lm .citazione__forte{ font: 400 clamp(1.5rem, 3vw, 2.2rem) var(--serif); margin: 1.6rem 0; }
body.lm .griglia-prog{ display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
@media (max-width: 960px){body.lm .griglia-prog{ grid-template-columns: repeat(2, 1fr); }
 }
@media (max-width: 600px){body.lm .griglia-prog{ grid-template-columns: 1fr; }
 }
body.lm .carta-prog{ text-decoration: none; display: flex; flex-direction: column; color: inherit; }
body.lm .carta-prog.nascosta{ display: none; }
body.lm .carta-prog__img{ position: relative; display: block; aspect-ratio: 4/3; border-radius: var(--raggio); overflow: hidden; margin-bottom: 1.1rem; background: var(--verde-2); }
body.lm .carta-prog__img > img{ width: 100%; height: 100%; object-fit: cover; transition: transform .9s var(--ease); }
body.lm .carta-prog:hover .carta-prog__img > img{ transform: scale(1.05); }
body.lm .carta-prog__meta{ font-size: .68rem; letter-spacing: .18em; text-transform: uppercase; color: var(--oro); font-weight: 600; margin-bottom: .4rem; }
body.lm .carta-prog h3{ font: 400 1.35rem/1.3 var(--serif); color: inherit; }
body.lm .sez--verde .carta-prog h3{ color: var(--bianco); }
body.lm .griglia-prog--chiara .carta-prog h3{ color: var(--verde-2); }
body.lm .sez--verde .link-freccia{ color: var(--oro); }
body.lm .badge-esempio{ position: absolute; top: 12px; left: 12px; background: rgba(255,255,255,.92); color: var(--verde); font-size: .62rem; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; padding: .4em .8em; border-radius: 999px; }
body.lm .cop-gen{ position: relative; display: grid; place-content: center; justify-items: center; gap: .6rem; width: 100%; height: 100%; background: radial-gradient(circle at 70% 30%, var(--verde-3), var(--verde)); color: var(--bianco); text-align: center; padding: 1rem; }
body.lm .cop-gen__trama{ position: absolute; inset: 0; background: url(../img/trama-oro.webp) top / cover; opacity: .6; transition: transform 1.2s var(--ease); }
body.lm .carta-prog:hover .cop-gen__trama{ transform: scale(1.08); }
body.lm .cop-gen__ico{ width: 46px; height: 46px; color: var(--oro); position: relative; }
body.lm .cop-gen .stella{ position: relative; margin: 0; }
body.lm .cop-gen__eti{ position: relative; font: 400 1.4rem var(--serif); }
body.lm .cop-gen__luogo{ position: relative; font-size: .7rem; letter-spacing: .2em; text-transform: uppercase; color: var(--oro); }
body.lm .carta-prog--vuota .carta-prog__img{ border: 1px dashed rgba(212,164,55,.6); }
body.lm .filtri{ display: flex; flex-wrap: wrap; gap: .6rem; margin-bottom: 2.4rem; }
body.lm .filtro{ font: 500 .8rem var(--sans); padding: .7em 1.3em; border-radius: 999px; border: 1px solid var(--linea); background: var(--bianco); color: var(--verde-2); cursor: pointer; transition: .25s; }
body.lm .filtro:hover{ border-color: var(--oro); }
body.lm .filtro[aria-pressed="true"]{ background: var(--verde-2); color: var(--bianco); border-color: var(--verde-2); }
body.lm .prog-hero{ position: relative; background: var(--verde); color: var(--bianco); overflow: hidden; }
body.lm .prog-hero__media{ position: absolute; inset: 0; }
body.lm .prog-hero__media img,body.lm .prog-hero__media .cop-gen{ width: 100%; height: 100%; object-fit: cover; }
body.lm .prog-hero__media::after{ content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(12,63,54,.95) 0%, rgba(12,63,54,.75) 45%, rgba(12,63,54,.2) 100%); }
body.lm .prog-hero__testo{ position: relative; padding: clamp(90px, 13vw, 170px) 0 clamp(50px, 7vw, 90px); }
body.lm .prog-hero h1{ color: var(--bianco); max-width: 16ch; }
body.lm .scheda{ display: flex; flex-wrap: wrap; gap: 1.2rem 2.6rem; margin: 2rem 0 0; padding-top: 1.4rem; border-top: 1px solid rgba(212,164,55,.35); max-width: 760px; }
body.lm .scheda dt{ font-size: .64rem; letter-spacing: .2em; text-transform: uppercase; color: var(--oro); font-weight: 600; }
body.lm .scheda dd{ margin: .2rem 0 0; font-size: .95rem; }
body.lm .scheda a{ text-decoration-color: var(--oro); }
body.lm .avviso-esempio{ background: var(--crema); border-left: 3px solid var(--oro); padding: .9rem 1.2rem; border-radius: 10px; font-size: .88rem; margin-bottom: 2.4rem; }
body.lm .racconto{ display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(20px, 4vw, 50px); }
@media (max-width: 860px){body.lm .racconto{ grid-template-columns: 1fr; }
 }
body.lm .racconto__fase span{ font: 400 2.6rem var(--serif); color: var(--oro); display: block; line-height: 1; margin-bottom: .6rem; }
body.lm .racconto__fase h2{ font-size: 1.5rem; }
body.lm .racconto__fase p{ color: var(--testo-2); }
body.lm .prima-dopo{ position: relative; margin: 0; border-radius: var(--raggio); overflow: hidden; aspect-ratio: var(--ar, 16/9); user-select: none; box-shadow: var(--ombra); background: var(--verde); }
body.lm .prima-dopo img{ position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
body.lm .prima-dopo__prima{ position: absolute; inset: 0; clip-path: inset(0 calc(100% - var(--pos)) 0 0); }
body.lm .prima-dopo__prima::after{ content: ""; position: absolute; top: 0; bottom: 0; left: var(--pos); width: 2px; margin-left: -1px; background: var(--oro); }
body.lm .prima-dopo__img--schizzo{ filter: grayscale(1) contrast(1.6) brightness(1.15) sepia(.25); }
body.lm .prima-dopo input{ position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; cursor: ew-resize; margin: 0; }
body.lm .prima-dopo::after{ content: "⟷"; position: absolute; top: 50%; left: var(--pos); transform: translate(-50%, -50%); width: 48px; height: 48px; display: grid; place-items: center; background: var(--oro); color: var(--verde); border-radius: 50%; font-size: 1.2rem; pointer-events: none; }
body.lm .prima-dopo__eti{ position: absolute; top: 14px; padding: .4em .9em; border-radius: 999px; background: rgba(12,63,54,.8); color: var(--bianco); font-size: .68rem; letter-spacing: .16em; text-transform: uppercase; pointer-events: none; }
body.lm .prima-dopo__eti--sx{ left: 14px; }
body.lm .prima-dopo__eti--dx{ right: 14px; }
body.lm .gal{ display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 18px; margin-top: 40px; }
body.lm .gal__item{ border: 0; padding: 0; background: none; cursor: zoom-in; text-align: left; font: inherit; }
body.lm .gal__item img{ border-radius: 14px; aspect-ratio: 16/10; object-fit: cover; width: 100%; transition: transform .6s var(--ease); }
body.lm .gal__item:hover img{ transform: scale(1.02); }
body.lm .gal__item span{ display: block; font-size: .82rem; color: var(--testo-2); margin-top: .5rem; }
body.lm .prog-nav{ display: flex; justify-content: space-between; flex-wrap: wrap; gap: 1rem; margin-top: 60px; padding-top: 24px; border-top: 1px solid var(--linea); }
body.lm .lightbox{ border: 0; padding: 0; background: transparent; max-width: min(1200px, 94vw); }
body.lm .lightbox::backdrop{ background: rgba(8, 30, 26, .92); }
body.lm .lightbox img{ max-height: 82vh; width: auto; margin: auto; border-radius: 12px; }
body.lm .lightbox p{ color: var(--bianco); text-align: center; margin-top: .8rem; }
body.lm .lightbox__chiudi{ position: fixed; top: 16px; right: 16px; background: var(--oro); color: var(--verde); border: 0; border-radius: 50%; width: 44px; height: 44px; display: grid; place-items: center; cursor: pointer; }
body.lm .recapiti{ list-style: none; padding: 0; margin: 2rem 0; display: grid; gap: .8rem; }
body.lm .recapiti a{ display: flex; align-items: center; gap: 1rem; text-decoration: none; padding: 1rem 1.2rem; border-radius: 14px; background: var(--crema); transition: background .3s, transform .3s var(--ease); }
body.lm .recapiti a:hover{ background: var(--crema-2); transform: translateX(4px); }
body.lm .recapiti .ico{ width: 26px; height: 26px; color: var(--verde-2); }
body.lm .recapiti span{ display: grid; font-weight: 500; color: var(--verde-2); word-break: break-word; }
body.lm .recapiti small{ font-size: .64rem; letter-spacing: .18em; text-transform: uppercase; color: var(--oro); font-weight: 600; }
body.lm .modulo{ background: var(--bianco); border: 1px solid var(--linea); border-radius: var(--raggio); padding: clamp(22px, 4vw, 40px); box-shadow: var(--ombra); display: grid; gap: 1.1rem; }
body.lm .modulo__riga{ display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
@media (max-width: 560px){body.lm .modulo__riga{ grid-template-columns: 1fr; }
 }
body.lm .modulo label{ display: grid; gap: .35rem; font-size: .78rem; font-weight: 600; color: var(--verde-2); }
body.lm .modulo input:not([type=radio]):not([type=checkbox]),body.lm .modulo textarea{
  font: 400 1rem var(--sans); padding: .85em 1em; border: 1px solid var(--linea); border-radius: 10px; background: var(--crema); color: var(--testo); width: 100%;
}
body.lm .modulo input:focus,body.lm .modulo textarea:focus{ outline: 2px solid var(--oro); outline-offset: 0; background: var(--bianco); }
body.lm .modulo fieldset{ border: 0; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: .5rem; }
body.lm .modulo legend{ font-size: .78rem; font-weight: 600; color: var(--verde-2); margin-bottom: .5rem; }
body.lm .scelta{ display: inline-flex !important; cursor: pointer; }
body.lm .scelta input{ position: absolute; opacity: 0; }
body.lm .scelta span{ padding: .6em 1em; border-radius: 999px; border: 1px solid var(--linea); font-weight: 500; font-size: .82rem; transition: .2s; }
body.lm .scelta input:checked + span{ background: var(--verde-2); color: var(--bianco); border-color: var(--verde-2); }
body.lm .scelta input:focus-visible + span{ outline: 2px solid var(--oro); }
body.lm .consenso{ display: flex !important; gap: .6rem; align-items: flex-start; font-weight: 400 !important; color: var(--testo-2) !important; }
body.lm .consenso input{ margin-top: .3em; accent-color: var(--verde-2); }
body.lm .modulo__errore{ color: #a33; font-size: .86rem; margin: 0; }
body.lm .modulo .azioni{ margin-top: .4rem; }
body.lm .piede{ position: relative; overflow: hidden; background: #082c26; color: rgba(255,255,255,.7); font-size: .88rem; padding: 80px 0 28px; }
body.lm .piede__trama{ opacity: .25; }
body.lm .piede a{ color: rgba(255,255,255,.85); text-decoration: none; }
body.lm .piede a:hover{ color: var(--oro); }
body.lm .piede__griglia{ position: relative; display: grid; grid-template-columns: 1.3fr 1fr 1fr; gap: 2.4rem; }
@media (max-width: 800px){body.lm .piede__griglia{ grid-template-columns: 1fr; }
 }
body.lm .piede__nome{ font: 400 1.7rem var(--serif); color: var(--bianco); margin: 0; }
body.lm .piede__claim{ color: var(--oro); font-family: var(--serif); font-style: italic; }
body.lm .piede__tit{ font-size: .66rem; letter-spacing: .22em; text-transform: uppercase; color: var(--oro); font-weight: 600; }
body.lm .piede__social a{ display: inline-flex; gap: .5rem; align-items: center; }
body.lm .piede__fondo{ position: relative; display: flex; justify-content: space-between; flex-wrap: wrap; gap: .6rem 2rem; margin-top: 50px; padding-top: 22px; border-top: 1px solid rgba(255,255,255,.1); font-size: .76rem; }
body.lm .piede__fondo p{ margin: 0; }
body.lm .wa-float{ position: fixed; right: 18px; bottom: 18px; z-index: 40; width: 56px; height: 56px; border-radius: 50%; display: grid; place-items: center; background: #25D366; color: #fff; box-shadow: 0 10px 30px -10px rgba(0,0,0,.5); transition: transform .3s var(--ease); }
body.lm .wa-float:hover{ transform: scale(1.08); }
body.lm .wa-float .ico{ width: 30px; height: 30px; }
html.js body.lm .rivela{ opacity: 0; transform: translateY(28px); transition: opacity .9s var(--ease), transform .9s var(--ease); }
html.js body.lm .rivela.visto{ opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce){*,*::before,*::after{ animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
html.js body.lm .rivela{ opacity: 1; transform: none; }
body.lm .ambiti__binario{ animation: none; }

}
body.lm .carta-prog__desc{ font-size: .92rem; color: var(--testo-2); margin: 0 0 .4rem; }
body.lm .sez--verde .carta-prog__desc{ color: rgba(255,255,255,.72); }
body.lm .carta-prog .link-freccia{ margin-top: auto; padding-top: .4rem; }
body.lm .pd-griglia{ display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px 22px; }
@media (max-width: 960px){body.lm .pd-griglia{ grid-template-columns: repeat(2, 1fr); }
 }
@media (max-width: 600px){body.lm .pd-griglia{ grid-template-columns: 1fr; }
 }
body.lm .pd-cella.nascosta{ display: none; }
body.lm .pd-cella .prima-dopo{ aspect-ratio: 4/3; }
body.lm .pd-cella__cat{ font-size: .66rem; letter-spacing: .18em; text-transform: uppercase; color: var(--oro); font-weight: 600; margin: 1rem 0 .2rem; }
body.lm .pd-cella h3{ font: 400 1.2rem/1.3 var(--serif); margin: 0; }
body.lm .sez--verde .pd-cella h3{ color: var(--bianco); }
body.lm .pd-home{ margin-top: clamp(50px, 7vw, 80px); padding-top: clamp(40px, 5vw, 60px); border-top: 1px solid rgba(212,164,55,.25); }
body.lm .prima-dopo__eti{ font-size: .62rem; }
body.lm .prima-dopo::after{ width: 40px; height: 40px; }
body.lm .sez--confronti{ padding-block: clamp(40px, 6vw, 80px); }
body.lm .sez--confronti .contenitore{ display: grid; gap: clamp(40px, 6vw, 70px); }
body.lm .prog-confronto .prima-dopo{ max-height: 80vh; width: min(100%, calc(80vh * var(--ar))); margin-inline: auto; }
body.lm .prog-confronto__did{ text-align: center; font-size: .88rem; color: var(--testo-2); margin: 1rem auto 0; max-width: 60ch; }
body.lm .capitoli{ display: grid; gap: clamp(36px, 5vw, 64px); }
body.lm .capitolo{ display: grid; grid-template-columns: minmax(200px, .8fr) 2fr; gap: 1.2rem clamp(30px, 5vw, 80px); padding-top: clamp(28px, 4vw, 44px); border-top: 1px solid var(--linea); }
body.lm .capitolo:first-child{ border-top: 0; padding-top: 0; }
@media (max-width: 760px){body.lm .capitolo{ grid-template-columns: 1fr; }
 }
body.lm .capitolo__tit span{ font: 400 2.2rem/1 var(--serif); color: var(--oro); display: block; margin-bottom: .5rem; }
body.lm .capitolo__tit h2{ font-size: clamp(1.4rem, 2.2vw, 1.8rem); }
body.lm .capitolo__testo p{ color: var(--testo-2); }
body.lm .capitolo__testo p:first-child{ font-size: 1.08rem; color: var(--testo); }
body.lm .gal{ margin-top: clamp(50px, 7vw, 80px); }
body.lm .gal__item img{ aspect-ratio: 4/3; }
body.lm .chiusura{ text-align: center; }
body.lm .chiusura .stella{ margin-inline: auto; }
body.lm .chiusura__testo{ font: 400 clamp(1.3rem, 2.4vw, 1.85rem)/1.5 var(--serif); color: var(--bianco); margin: 0; }
body.lm .prog-nav{ margin-top: 0; padding-top: 0; border-top: 0; }
body.lm .nota-ai{ display: flex; gap: .7rem; align-items: flex-start; max-width: 860px; margin: 0 0 1.8rem; padding: .9rem 1.1rem; border-left: 3px solid var(--oro); background: rgba(212,164,55,.08); border-radius: 0 10px 10px 0; font-size: .82rem; line-height: 1.55; color: var(--testo); }
body.lm .nota-ai .ico{ flex: none; width: 16px; height: 16px; margin-top: .15rem; color: var(--oro); }
body.lm .nota-ai--scura{ color: rgba(255,255,255,.82); background: rgba(212,164,55,.1); }
body.lm .nota-ai--prog{ margin: 2rem auto 0; }
body.lm .avviso-incarico{ max-width: 760px; margin: 1.4rem 0 0; padding: .9rem 1.1rem; border: 1px solid rgba(212,164,55,.55); border-radius: 10px; font-size: .9rem; line-height: 1.55; }
body.lm .avviso-incarico strong{ color: var(--oro); }
body.lm .piede__ai{ position: relative; margin-top: 40px; }
body.lm .piede__ai p{ display: flex; gap: .6rem; align-items: flex-start; margin: 0; max-width: 900px; font-size: .74rem; line-height: 1.55; opacity: .8; }
body.lm .piede__ai .ico{ flex: none; width: 14px; height: 14px; margin-top: .1rem; color: var(--oro); }
body.lm .legale{ display: grid; grid-template-columns: minmax(0, 240px) minmax(0, 1fr); gap: 3rem; align-items: start; }
body.lm .legale__indice{ position: sticky; top: 110px; font-size: .85rem; }
body.lm .legale__indice ol{ margin: .6rem 0 0; padding-left: 1.2rem; display: grid; gap: .45rem; }
body.lm .legale__indice a{ color: var(--testo); text-decoration: none; }
body.lm .legale__indice a:hover{ color: var(--verde); text-decoration: underline; }
body.lm .legale__testo{ max-width: 760px; }
body.lm .legale__testo section{ scroll-margin-top: 100px; padding-bottom: 1.4rem; margin-bottom: 1.4rem; border-bottom: 1px solid var(--linea); }
body.lm .legale__testo h2{ font-size: clamp(1.25rem, 2.2vw, 1.6rem); margin: 0 0 .8rem; }
body.lm .legale__testo p,body.lm .legale__testo li{ line-height: 1.7; }
body.lm .legale__testo ul{ padding-left: 1.2rem; display: grid; gap: .5rem; }
body.lm .legale__testo a{ color: var(--verde); text-decoration-color: var(--oro); overflow-wrap: anywhere; }
body.lm .legale__data{ font-size: .8rem; opacity: .7; }
@media (max-width: 820px){body.lm .legale{ grid-template-columns: 1fr; gap: 1.5rem; }
body.lm .legale__indice{ position: static; }
 }

