/* Internal pages — FM editorial system */
.fm-inner-page { background: #fff; }
.fm-header-solid { background: rgba(14,24,22,.22); }

.fm-about-hero { display: grid; min-height: max(760px,100svh); grid-template-columns: minmax(520px,.9fr) minmax(0,1.1fr); background: #17201f; }
.fm-about-hero-copy { position: relative; display: flex; min-height: max(760px,100svh); align-items: center; color: #fff; overflow: hidden; }
.fm-about-hero-copy-inner { position: relative; z-index: 2; width: min(690px,100%); padding: 160px clamp(50px,7vw,120px) 105px max(var(--fm-pad),calc((100vw - var(--fm-shell)) / 2)); }
.fm-site .fm-about-hero h1 { margin: 0; color: #fff !important; font-size: clamp(72px,7.5vw,124px); font-weight: 760; letter-spacing: -.07em; line-height: .83; }
.fm-about-hero h1 em { color: var(--fm-green-bright); }
.fm-about-hero-copy-inner > p:not(.fm-kicker) { max-width: 610px; margin: 38px 0 34px; color: rgba(255,255,255,.76); font-size: clamp(18px,1.45vw,22px); line-height: 1.55; }
.fm-about-year { position: absolute; right: 34px; bottom: 22px; color: rgba(255,255,255,.09); font-size: clamp(60px,7vw,108px); font-weight: 820; letter-spacing: -.08em; line-height: 1; }
.fm-about-hero-image { position: relative; min-height: max(760px,100svh); overflow: hidden; }
.fm-about-hero-image::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(23,32,31,.28),transparent 34%),linear-gradient(0deg,rgba(10,24,20,.48),transparent 36%); }
.fm-about-hero-image img { width: 100%; height: 100%; object-fit: cover; object-position: center; animation: fmHeroDrift 20s ease-in-out infinite alternate; }
.fm-about-image-note { position: absolute; z-index: 2; right: var(--fm-pad); bottom: 42px; display: flex; flex-direction: column; align-items: flex-end; gap: 7px; color: #fff; }
.fm-about-image-note span { font-size: 11px; font-weight: 750; letter-spacing: .12em; text-transform: uppercase; }
.fm-about-image-note b { font-size: 17px; }

.fm-about-intro { background: #fff; }
.fm-about-statement { display: grid; grid-template-columns: minmax(0,1.25fr) minmax(360px,.65fr); gap: clamp(55px,9vw,145px); align-items: start; }
.fm-site .fm-about-statement h2,
.fm-site .fm-about-system h2,
.fm-site .fm-about-focus h2,
.fm-site .fm-about-responsibility h2,
.fm-site .fm-about-place h2 { margin: 0; color: var(--fm-ink) !important; font-size: clamp(50px,6.1vw,90px); font-weight: 740; letter-spacing: -.06em; line-height: .96; }
.fm-about-statement > div { padding-top: 8px; }
.fm-about-statement p { margin: 0 0 25px; color: #414a46; font-size: 19px; line-height: 1.72; }

.fm-about-timeline { padding-block: clamp(100px,11vw,165px); color: #fff; background: #17201f; }
.fm-timeline-grid { display: grid; grid-template-columns: minmax(330px,.65fr) minmax(0,1fr); gap: clamp(65px,10vw,160px); }
.fm-timeline-lead { position: sticky; top: 140px; align-self: start; }
.fm-timeline-lead strong { display: block; color: var(--fm-green-bright); font-size: clamp(86px,10vw,160px); font-weight: 760; letter-spacing: -.09em; line-height: .82; }
.fm-site .fm-timeline-lead h2 { max-width: 540px; margin: 42px 0 0; color: #fff !important; font-size: clamp(37px,4.2vw,62px); font-weight: 700; letter-spacing: -.055em; line-height: 1; }
.fm-timeline-copy { border-top: 1px solid rgba(255,255,255,.2); }
.fm-timeline-copy article { display: grid; min-height: 245px; grid-template-columns: 100px 1fr; align-content: center; padding: 36px 0; border-bottom: 1px solid rgba(255,255,255,.2); }
.fm-timeline-copy article > span { grid-row: 1 / 3; color: var(--fm-green-bright); font-size: 12px; font-weight: 850; letter-spacing: .13em; text-transform: uppercase; }
.fm-timeline-copy h3 { margin: 0 0 15px; color: #fff !important; font-size: clamp(28px,3vw,43px); font-weight: 680; letter-spacing: -.045em; line-height: 1.05; }
.fm-timeline-copy p { max-width: 670px; margin: 0; color: rgba(255,255,255,.67); font-size: 16px; line-height: 1.65; }

.fm-about-system { background: #eef0ec; }
.fm-about-system-head { display: grid; grid-template-columns: minmax(0,1.25fr) minmax(340px,.6fr); gap: clamp(50px,8vw,120px); align-items: end; margin-bottom: 80px; }
.fm-about-system-head > p { margin: 0 0 7px; color: var(--fm-muted); font-size: 18px; line-height: 1.68; }
.fm-system-grid { display: grid; grid-template-columns: repeat(3,1fr); border-top: 1px solid #cbd2cd; border-bottom: 1px solid #cbd2cd; }
.fm-system-grid article { min-height: 390px; padding: 38px 34px; border-right: 1px solid #cbd2cd; transition: color .4s ease, background .4s ease, transform .4s cubic-bezier(.22,1,.36,1); }
.fm-system-grid article:first-child { padding-left: 0; }
.fm-system-grid article:last-child { border-right: 0; }
.fm-system-grid article:hover { color: #fff; background: var(--fm-teal); transform: translateY(-9px); }
.fm-system-grid article > span { color: var(--fm-green); font-size: 13px; font-weight: 850; }
.fm-system-grid article:hover > span { color: #a9f2d4; }
.fm-system-grid h3 { margin: 95px 0 18px; color: var(--fm-ink) !important; font-size: clamp(38px,4vw,56px); font-weight: 710; letter-spacing: -.055em; line-height: 1; }
.fm-system-grid article:hover h3 { color: #fff !important; }
.fm-system-grid p { max-width: 350px; margin: 0; color: var(--fm-muted); font-size: 16px; line-height: 1.6; }
.fm-system-grid article:hover p { color: rgba(255,255,255,.78); }

.fm-about-focus { display: grid; min-height: 720px; grid-template-columns: minmax(360px,.72fr) minmax(600px,1fr); background: #fff; }
.fm-about-focus-image { min-height: 640px; overflow: hidden; }
.fm-about-focus-image img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(.85); transition: filter .8s ease, transform 1s cubic-bezier(.22,1,.36,1); }
.fm-about-focus-image:hover img { filter: grayscale(0); transform: scale(1.025); }
.fm-about-focus-copy { display: flex; flex-direction: column; justify-content: center; padding: clamp(75px,8vw,125px) max(var(--fm-pad),calc((100vw - var(--fm-shell)) / 2)); }
.fm-about-focus-copy > p { max-width: 760px; margin: 34px 0; color: var(--fm-muted); font-size: 19px; line-height: 1.7; }
.fm-about-focus-copy ul { margin: 0; padding: 0; list-style: none; }
.fm-about-focus-copy li { position: relative; max-width: 720px; padding: 17px 0 17px 38px; border-top: 1px solid var(--fm-line); color: #28302d; font-size: 16px; font-weight: 650; }
.fm-about-focus-copy li::before { content:""; position:absolute; top: 24px; left: 2px; width: 12px; height: 12px; background: var(--fm-green); border-radius:50%; }

.fm-about-responsibility { position: relative; padding: clamp(100px,11vw,155px) 0 0; color: #fff; background: #344d5f; overflow: hidden; }
.fm-about-responsibility .fm-shell { display: grid; grid-template-columns: minmax(0,1.05fr) minmax(400px,.75fr); gap: clamp(60px,9vw,145px); padding-bottom: 95px; }
.fm-site .fm-about-responsibility h2 { color: #fff !important; }
.fm-responsibility-copy > p { max-width: 760px; margin: 34px 0 0; color: rgba(255,255,255,.74); font-size: 19px; line-height: 1.7; }
.fm-responsibility-numbers { border-top: 1px solid rgba(255,255,255,.28); }
.fm-responsibility-numbers > div { display: grid; grid-template-columns: minmax(150px,.55fr) 1fr; gap: 28px; align-items: center; min-height: 150px; border-bottom: 1px solid rgba(255,255,255,.28); }
.fm-responsibility-numbers strong { color: #fff; font-size: clamp(40px,4.2vw,64px); font-weight: 730; letter-spacing: -.065em; line-height: 1; }
.fm-responsibility-numbers span { color: rgba(255,255,255,.73); font-size: 14px; line-height: 1.5; }
.fm-responsibility-photo { height: min(48vw,660px); overflow: hidden; }
.fm-responsibility-photo img { width: 100%; height: 120%; object-fit: cover; object-position: center; transform: translateY(-8%); }

.fm-about-place { padding-bottom: 0; background: #fff; }
.fm-about-place-grid { display: grid; grid-template-columns: minmax(0,1.15fr) minmax(360px,.55fr); gap: clamp(60px,9vw,145px); align-items: end; padding-bottom: 80px; }
.fm-about-place-grid > div:last-child p { margin: 0 0 30px; color: var(--fm-muted); font-size: 18px; line-height: 1.7; }
.fm-place-photo { height: min(52vw,720px); overflow: hidden; }
.fm-place-photo img { width: 100%; height: 100%; object-fit: cover; object-position: center; transition: transform 1s cubic-bezier(.22,1,.36,1); }
.fm-place-photo:hover img { transform: scale(1.025); }

@media (max-width: 1100px) {
  .fm-about-hero { grid-template-columns: 1fr 1fr; }
  .fm-about-hero-copy-inner { padding-right: 45px; }
  .fm-about-statement, .fm-about-system-head, .fm-about-place-grid { grid-template-columns: 1fr; }
  .fm-about-system-head > p { max-width: 700px; }
  .fm-about-focus { grid-template-columns: .75fr 1fr; }
  .fm-about-responsibility .fm-shell { grid-template-columns: 1fr; }
  .fm-responsibility-numbers { display: grid; grid-template-columns: repeat(3,1fr); }
  .fm-responsibility-numbers > div { display: flex; min-height: 220px; flex-direction: column; align-items: flex-start; justify-content: center; border-right: 1px solid rgba(255,255,255,.28); }
}

@media (max-width: 900px) {
  .fm-about-hero { grid-template-columns: 1fr; }
  .fm-about-hero-copy, .fm-about-hero-image { min-height: 760px; }
  .fm-about-hero-image { min-height: 70vw; }
  .fm-about-year { display: none; }
  .fm-about-statement { gap: 45px; }
  .fm-timeline-grid { grid-template-columns: 1fr; }
  .fm-timeline-lead { position: static; }
  .fm-system-grid { grid-template-columns: 1fr; }
  .fm-system-grid article, .fm-system-grid article:first-child { min-height: 280px; padding: 35px 0; border-right: 0; border-bottom: 1px solid #cbd2cd; }
  .fm-system-grid h3 { margin-top: 48px; }
  .fm-about-focus { grid-template-columns: 1fr; }
  .fm-about-focus-image { min-height: 68vw; margin: var(--fm-pad) var(--fm-pad) 0; }
  .fm-about-focus-copy { padding-right: var(--fm-pad); padding-left: var(--fm-pad); }
}

@media (max-width: 600px) {
  .fm-about-hero-copy, .fm-about-hero-image { min-height: 690px; }
  .fm-about-hero-image { min-height: 92vw; }
  .fm-about-hero-copy-inner { padding: 145px var(--fm-pad) 80px; }
  .fm-site .fm-about-hero h1 { font-size: clamp(66px,20vw,88px); }
  .fm-about-hero-copy-inner > p:not(.fm-kicker) { font-size: 18px; }
  .fm-about-statement p, .fm-about-focus-copy > p, .fm-responsibility-copy > p { font-size: 17px; }
  .fm-timeline-copy article { grid-template-columns: 1fr; }
  .fm-timeline-copy article > span { grid-row: auto; margin-bottom: 18px; }
  .fm-responsibility-numbers { grid-template-columns: 1fr; }
  .fm-responsibility-numbers > div { min-height: 190px; border-right: 0; }
  .fm-responsibility-photo { height: 95vw; }
  .fm-place-photo { height: 90vw; }
}

/* Lavorazioni */
.fm-work-hero { position: relative; min-height: max(760px,100svh); color: #fff; background: #101a19; overflow: hidden; }
.fm-work-hero-media, .fm-work-hero-shade { position: absolute; inset: 0; }
.fm-work-hero-media img { width: 100%; height: 100%; object-fit: cover; object-position: center; filter: grayscale(1); animation: fmHeroDrift 20s ease-in-out infinite alternate; }
.fm-work-hero-shade { background: linear-gradient(90deg,rgba(9,21,19,.96) 0%,rgba(9,26,22,.86) 48%,rgba(7,21,18,.35) 100%),linear-gradient(0deg,rgba(7,23,20,.72),transparent 48%); }
.fm-work-hero-inner { position: relative; z-index: 2; display: grid; min-height: max(760px,100svh); grid-template-columns: minmax(0,1.15fr) minmax(360px,.55fr); gap: clamp(65px,9vw,145px); align-items: end; padding-top: 160px; padding-bottom: 90px; }
.fm-work-hero-copy { align-self: center; }
.fm-site .fm-work-hero h1 { margin: 0; color: #fff !important; font-size: clamp(70px,8.3vw,132px); font-weight: 760; letter-spacing: -.072em; line-height: .86; }
.fm-work-hero-copy > p:not(.fm-kicker) { max-width: 780px; margin: 36px 0 0; color: rgba(255,255,255,.8); font-size: clamp(18px,1.55vw,23px); line-height: 1.58; }
.fm-work-hero-index { border-top: 1px solid rgba(255,255,255,.3); }
.fm-work-hero-index a { display: grid; grid-template-columns: 42px 1fr 24px; gap: 16px; align-items: center; min-height: 86px; color: #fff !important; border-bottom: 1px solid rgba(255,255,255,.3); text-decoration: none; transition: padding .3s ease, background .3s ease; }
.fm-work-hero-index a:hover { padding-right: 16px; padding-left: 16px; background: rgba(255,255,255,.1); }
.fm-work-hero-index span { color: var(--fm-green-bright); font-size: 12px; font-weight: 850; }
.fm-work-hero-index b { font-size: 16px; }
.fm-work-hero-index i { font-size: 18px; font-style: normal; }

.fm-work-intro { background: #fff; }
.fm-work-intro-grid { display: grid; grid-template-columns: minmax(0,1.2fr) minmax(370px,.65fr); gap: clamp(60px,9vw,145px); align-items: start; }
.fm-site .fm-work-intro h2 { margin: 0; color: var(--fm-ink) !important; font-size: clamp(52px,6.2vw,92px); font-weight: 740; letter-spacing: -.06em; line-height: .96; }
.fm-work-intro-grid > div { padding-top: 7px; }
.fm-work-intro-grid p { margin: 0 0 25px; color: #414a46; font-size: 19px; line-height: 1.72; }

.fm-icon-sprite { position: absolute; width: 0; height: 0; overflow: hidden; }
.fm-process-map-section { background: #f7f8f6; }
.fm-process-map-head { display: grid; grid-template-columns: minmax(0,1.15fr) minmax(340px,.55fr); gap: clamp(55px,8vw,120px); align-items: end; margin-bottom: 85px; }
.fm-site .fm-process-map-head h2 { margin: 0; color: var(--fm-ink) !important; font-size: clamp(50px,6vw,88px); font-weight: 740; letter-spacing: -.06em; line-height: .96; }
.fm-process-map-head > p { max-width: 530px; margin: 0 0 5px; color: var(--fm-muted); font-size: 18px; line-height: 1.68; }
.fm-process-map { display: grid; grid-template-columns: repeat(12,minmax(0,1fr)); gap: 72px 28px; }
.fm-map-group { min-width: 0; }
.fm-map-vibro { grid-column: 1 / 9; }
.fm-map-galvanica { grid-column: 9 / 13; }
.fm-map-sbavatura { grid-column: 1 / 7; }
.fm-map-sabbiatura { grid-column: 7 / 10; }
.fm-map-selection { grid-column: 10 / 13; }
.fm-map-group h3 { margin: 0 0 28px; color: var(--fm-green-dark) !important; font-size: clamp(27px,2.5vw,38px); font-weight: 820; letter-spacing: -.045em; line-height: .95; text-transform: uppercase; }
.fm-map-items { position: relative; display: grid; grid-template-columns: repeat(4,1fr); gap: 16px; padding-top: 32px; }
.fm-map-items::before { content:""; position:absolute; top:0; right:8%; left:8%; height:1.5px; background:var(--fm-green); }
.fm-map-items > a { position: relative; display: flex; min-height: 176px; flex-direction: column; align-items: center; justify-content: center; gap: 18px; padding: 22px 13px; color: var(--fm-green-dark) !important; background: #e9ebe8; text-align: center; text-decoration: none; transition: color .32s ease, background .32s ease, transform .38s cubic-bezier(.22,1,.36,1), box-shadow .32s ease; }
.fm-map-items > a::before { content:""; position:absolute; bottom:100%; left:50%; width:1.5px; height:32px; background:var(--fm-green); }
.fm-map-items > a:hover { z-index:2; color:#fff !important; background:var(--fm-green); transform:translateY(-7px); box-shadow:0 18px 42px rgba(0,83,65,.16); }
.fm-map-items > a.is-accent { color:#fff !important; background:var(--fm-green); }
.fm-map-items svg { width: 62px; height: 62px; flex: 0 0 auto; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.fm-map-items .fm-svg-fill { fill:currentColor; stroke:none; opacity:.28; }
.fm-map-items span { font-size: 14px; font-weight: 820; letter-spacing: -.01em; line-height: 1.05; text-transform: uppercase; }
.fm-map-items small { margin-top: -8px; font-size: 10px; font-weight: 780; letter-spacing: .06em; text-transform: uppercase; }
.fm-map-vibro .fm-map-items > a:nth-child(-n+4) { transform: translateY(-14px); }
.fm-map-vibro .fm-map-items > a:nth-child(-n+4):hover { transform: translateY(-21px); }
.fm-map-galvanica .fm-map-items { grid-template-columns: repeat(2,1fr); }
.fm-map-sbavatura .fm-map-items { grid-template-columns: repeat(3,1fr); }
.fm-map-single { grid-template-columns: 1fr; }
.fm-map-single::before { right:50%; left:0; }
.fm-map-closing { margin: 76px 0 0; color: var(--fm-green-dark); border-top: 1px solid var(--fm-line); padding-top: 26px; font-size: clamp(15px,1.5vw,20px); font-weight: 820; letter-spacing: .02em; text-align: center; text-transform: uppercase; }

.fm-work-nav { position: sticky; z-index: 40; top: 92px; color: #fff; background: #101a19; box-shadow: 0 12px 35px rgba(0,0,0,.12); }
.fm-work-nav .fm-shell { display: grid; grid-template-columns: repeat(3,1fr); }
.fm-work-nav a { display: flex; min-height: 68px; align-items: center; gap: 18px; padding: 0 24px; border-right: 1px solid rgba(255,255,255,.17); font-size: 13px; font-weight: 760; text-decoration: none; }
.fm-work-nav a:first-child { padding-left: 0; }
.fm-work-nav span { color: var(--fm-green-bright); font-size: 11px; }

.fm-work-family { padding-block: clamp(100px,11vw,160px); color: #fff; scroll-margin-top: 150px; }
.fm-work-family-vibro { background: var(--fm-teal); }
.fm-work-family-galvanica { background: var(--fm-bronze); }
.fm-work-family-sbavatura { background: var(--fm-slate); }
.fm-family-head { display: grid; grid-template-columns: minmax(0,1.2fr) minmax(340px,.55fr); gap: clamp(60px,9vw,145px); align-items: end; margin-bottom: 80px; }
.fm-family-head > div > span { display: block; margin-bottom: 30px; color: rgba(255,255,255,.72); font-size: 12px; font-weight: 850; letter-spacing: .13em; text-transform: uppercase; }
.fm-site .fm-family-head h2 { margin: 0; color: #fff !important; font-size: clamp(62px,7.5vw,112px); font-weight: 750; letter-spacing: -.065em; line-height: .87; }
.fm-family-head > p { max-width: 530px; margin: 0 0 4px; color: rgba(255,255,255,.78); font-size: 18px; line-height: 1.68; }
.fm-treatment-grid { display: grid; grid-template-columns: repeat(3,1fr); border-top: 1px solid rgba(255,255,255,.28); border-left: 1px solid rgba(255,255,255,.28); }
.fm-treatment-grid > a { position: relative; display: flex; min-height: 320px; flex-direction: column; align-items: flex-start; padding: 30px; color: #fff !important; border-right: 1px solid rgba(255,255,255,.28); border-bottom: 1px solid rgba(255,255,255,.28); text-decoration: none; overflow: hidden; transition: color .4s ease, background .4s ease, transform .4s cubic-bezier(.22,1,.36,1); }
.fm-treatment-grid > a:hover { z-index: 2; color: #17201f !important; background: #fff; transform: translateY(-8px); box-shadow: 0 25px 60px rgba(0,0,0,.16); }
.fm-treatment-grid span { color: rgba(255,255,255,.65); font-size: 12px; font-weight: 850; }
.fm-treatment-grid > a:hover span { color: var(--fm-green); }
.fm-treatment-grid h3 { margin: 62px 0 15px; color: #fff !important; font-size: clamp(29px,2.6vw,42px); font-weight: 690; letter-spacing: -.045em; line-height: 1.03; }
.fm-treatment-grid > a:hover h3 { color: #17201f !important; }
.fm-treatment-grid p { max-width: 360px; margin: 0; color: rgba(255,255,255,.72); font-size: 15px; line-height: 1.55; }
.fm-treatment-grid > a:hover p { color: var(--fm-muted); }
.fm-treatment-grid b { margin-top: auto; padding-top: 25px; font-size: 11px; letter-spacing: .1em; text-transform: uppercase; opacity: 0; transform: translateY(10px); transition: opacity .3s ease, transform .3s ease; }
.fm-treatment-grid > a:hover b { opacity: 1; transform: translateY(0); }

.fm-work-method { padding-block: clamp(95px,10vw,145px); color: #fff; background: #17201f; }
.fm-work-method .fm-shell { display: grid; grid-template-columns: minmax(0,1fr) 190px; gap: 70px; align-items: end; }
.fm-site .fm-work-method h2 { max-width: 950px; margin: 0; color: #fff !important; font-size: clamp(52px,6.5vw,96px); font-weight: 740; letter-spacing: -.06em; line-height: .96; }
.fm-work-method-copy > p { max-width: 760px; margin: 34px 0 0; color: rgba(255,255,255,.72); font-size: 19px; line-height: 1.7; }

@media (max-width: 1000px) {
  .fm-work-hero-inner, .fm-work-intro-grid, .fm-family-head { grid-template-columns: 1fr; }
  .fm-work-hero-copy { align-self: end; }
  .fm-work-hero-index { max-width: 600px; }
  .fm-work-nav { top: 78px; }
  .fm-treatment-grid { grid-template-columns: repeat(2,1fr); }
  .fm-process-map-head { grid-template-columns: 1fr; }
  .fm-process-map { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .fm-map-vibro { grid-column: 1 / -1; }
  .fm-map-galvanica, .fm-map-sbavatura, .fm-map-sabbiatura, .fm-map-selection { grid-column: auto; }
  .fm-map-sbavatura .fm-map-items { grid-template-columns: repeat(2,1fr); }
}

@media (max-width: 700px) {
  .fm-work-hero-inner { min-height: 920px; gap: 48px; padding-top: 145px; padding-bottom: 60px; }
  .fm-site .fm-work-hero h1 { font-size: clamp(61px,18vw,84px); }
  .fm-work-hero-copy > p:not(.fm-kicker) { font-size: 17px; }
  .fm-work-nav { position: relative; top: auto; overflow-x: auto; }
  .fm-work-nav .fm-shell { width: max-content; grid-template-columns: repeat(3,minmax(220px,1fr)); }
  .fm-work-nav a, .fm-work-nav a:first-child { min-height: 62px; padding: 0 18px; }
  .fm-family-head { gap: 35px; margin-bottom: 55px; }
  .fm-treatment-grid { grid-template-columns: 1fr; }
  .fm-treatment-grid > a { min-height: 285px; }
  .fm-treatment-grid h3 { margin-top: 48px; font-size: 36px; }
  .fm-treatment-grid b { opacity: .8; transform: none; }
  .fm-work-method .fm-shell { grid-template-columns: 1fr; }
  .fm-work-method .fm-round-link { justify-self: end; }
  .fm-process-map { grid-template-columns: 1fr; gap: 60px; }
  .fm-map-vibro, .fm-map-galvanica, .fm-map-sbavatura, .fm-map-sabbiatura, .fm-map-selection { grid-column: 1; }
  .fm-map-items, .fm-map-galvanica .fm-map-items, .fm-map-sbavatura .fm-map-items { grid-template-columns: repeat(2,1fr); gap: 10px; padding-top: 0; }
  .fm-map-items::before, .fm-map-items > a::before { display:none; }
  .fm-map-items > a { min-height: 158px; }
  .fm-map-vibro .fm-map-items > a:nth-child(-n+4), .fm-map-vibro .fm-map-items > a:nth-child(-n+4):hover { transform:none; }
  .fm-map-single { grid-template-columns: 1fr; }
  .fm-map-single > a { max-width: calc(50% - 5px); }
}

/* FM / storia — apertura e sistema editoriale dedicati */
.fm-header-on-light { color: var(--fm-ink); background: rgba(255,255,255,.78); -webkit-backdrop-filter: blur(15px); backdrop-filter: blur(15px); }
.fm-header-on-light::after { background: rgba(18,22,20,.15); }
.fm-header-on-light .fm-brand-logo-dark { opacity: 1; }
.fm-header-on-light .fm-brand-logo-light { opacity: 0; }
.fm-header-on-light .fm-header-cta { color: #fff !important; background: var(--fm-green-dark); }

.fm-history-hero { padding: 128px 0 clamp(85px,9vw,130px); background: #f4f5f2; overflow: hidden; }
.fm-history-meta { display: flex; justify-content: space-between; gap: 25px; padding: 23px 0; color: var(--fm-green-dark); border-bottom: 1px solid var(--fm-line); font-size: 11px; font-weight: 850; letter-spacing: .13em; text-transform: uppercase; }
.fm-history-hero-grid { display: grid; grid-template-columns: repeat(12,minmax(0,1fr)); align-items: start; padding-top: clamp(55px,7vw,95px); }
.fm-history-year { grid-column: 1 / 6; }
.fm-history-year > span { display: block; margin-bottom: 5px; color: var(--fm-green); font-size: 13px; font-weight: 850; letter-spacing: .12em; text-transform: uppercase; }
.fm-history-year strong { display: block; color: var(--fm-green-dark); font-size: clamp(115px,15vw,238px); font-weight: 800; letter-spacing: -.095em; line-height: .82; }
.fm-history-year b { display: block; max-width: 380px; margin-top: 32px; color: var(--fm-muted); font-size: 16px; line-height: 1.55; }
.fm-history-heading { grid-column: 6 / 13; padding-left: clamp(30px,5vw,80px); }
.fm-site .fm-history-heading h1 { max-width: 810px; margin: 0; color: var(--fm-ink) !important; font-size: clamp(62px,7vw,108px); font-weight: 745; letter-spacing: -.068em; line-height: .9; }
.fm-history-heading .fm-text-link { margin-top: 36px; }
.fm-history-photo { position: relative; grid-column: 3 / 12; height: clamp(390px,38vw,610px); margin: clamp(70px,8vw,115px) 0 0; overflow: hidden; }
.fm-history-photo img { width: 100%; height: 100%; object-fit: cover; object-position: center; filter: grayscale(1); transition: filter .8s ease, transform 1.2s cubic-bezier(.22,1,.36,1); }
.fm-history-photo:hover img { filter: grayscale(0); transform: scale(1.025); }
.fm-history-photo figcaption { position: absolute; right: 0; bottom: 0; display: flex; min-width: 260px; flex-direction: column; gap: 5px; padding: 20px 24px; color: #fff; background: var(--fm-green-dark); }
.fm-history-photo figcaption span { font-size: 9px; font-weight: 850; letter-spacing: .12em; text-transform: uppercase; }
.fm-history-photo figcaption b { font-size: 15px; }

.fm-history-story { background: #fff; }
.fm-history-story-grid { display: grid; grid-template-columns: minmax(0,1.18fr) minmax(380px,.62fr); gap: clamp(60px,9vw,145px); align-items: start; }
.fm-site .fm-history-story h2,
.fm-site .fm-purpose h2,
.fm-site .fm-quality-goal h2,
.fm-site .fm-investment-preview h2 { margin: 0; color: var(--fm-ink) !important; font-size: clamp(52px,6.25vw,92px); font-weight: 740; letter-spacing: -.062em; line-height: .96; }
.fm-history-prose p { margin: 0 0 25px; color: #414a46; font-size: 19px; line-height: 1.72; }
.fm-history-prose strong { color: var(--fm-green-dark); }
.fm-history-quote { display: grid; grid-template-columns: minmax(0,1fr) 270px; gap: 55px; align-items: end; margin: clamp(75px,9vw,120px) 0 0; padding: 42px 0; border-top: 1px solid var(--fm-line); border-bottom: 1px solid var(--fm-line); }
.fm-history-quote p { max-width: 980px; margin: 0; color: var(--fm-green-dark); font-size: clamp(32px,4vw,56px); font-weight: 690; letter-spacing: -.05em; line-height: 1.05; }
.fm-history-quote span { color: var(--fm-muted); font-size: 12px; font-weight: 790; letter-spacing: .08em; text-transform: uppercase; }

.fm-history-path { color: #fff; background: #17201f; }
.fm-history-path .fm-shell { display: grid; grid-template-columns: repeat(3,1fr); }
.fm-history-path article { min-height: 390px; padding: 55px 42px; border-right: 1px solid rgba(255,255,255,.17); }
.fm-history-path article:first-child { padding-left: 0; }
.fm-history-path article:last-child { border-right: 0; }
.fm-history-path strong { display: block; color: var(--fm-green-bright); font-size: clamp(62px,6.5vw,96px); font-weight: 760; letter-spacing: -.075em; line-height: 1; }
.fm-history-path span { display: block; margin-top: 62px; color: #fff; font-size: 13px; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.fm-history-path p { max-width: 390px; margin: 15px 0 0; color: rgba(255,255,255,.65); font-size: 15px; line-height: 1.65; }

.fm-purpose { background: #eef0ec; }
.fm-purpose-head { display: grid; grid-template-columns: minmax(0,1.2fr) minmax(360px,.58fr); gap: clamp(60px,9vw,145px); align-items: end; margin-bottom: 82px; }
.fm-purpose-head > p { margin: 0 0 7px; color: var(--fm-muted); font-size: 18px; line-height: 1.7; }
.fm-purpose-cards { display: grid; grid-template-columns: repeat(2,1fr); gap: 20px; }
.fm-purpose-card { min-height: 620px; padding: clamp(38px,5vw,70px); transition: transform .45s cubic-bezier(.22,1,.36,1), box-shadow .4s ease; }
.fm-purpose-card:hover { transform: translateY(-10px); box-shadow: 0 28px 65px rgba(15,35,30,.16); }
.fm-purpose-mission { color: var(--fm-ink); background: #e6dfd4; }
.fm-purpose-vision { color: #fff; background: var(--fm-green-dark); }
.fm-purpose-card > span { font-size: 11px; font-weight: 850; letter-spacing: .13em; text-transform: uppercase; }
.fm-purpose-vision > span { color: #9ee8ca; }
.fm-purpose-card h3 { max-width: 640px; margin: clamp(75px,8vw,115px) 0 25px; color: inherit !important; font-size: clamp(38px,4.5vw,66px); font-weight: 720; letter-spacing: -.058em; line-height: .95; }
.fm-purpose-card p { max-width: 680px; margin: 0; color: inherit; font-size: 17px; line-height: 1.68; opacity: .78; }
.fm-purpose-card ul { display: flex; flex-wrap: wrap; gap: 9px; margin: 40px 0 0; padding: 0; list-style: none; }
.fm-purpose-card li { padding: 8px 12px; border: 1px solid currentColor; border-radius: 999px; font-size: 11px; font-weight: 780; text-transform: uppercase; opacity: .78; }

.fm-quality-goal { padding-block: clamp(105px,11vw,165px); color: #fff; background: var(--fm-slate); }
.fm-quality-goal-head { display: grid; grid-template-columns: minmax(0,1.2fr) minmax(360px,.55fr); gap: 30px clamp(60px,9vw,145px); align-items: end; }
.fm-quality-goal-head .fm-section-label { grid-column: 1 / -1; }
.fm-site .fm-quality-goal h2 { color: #fff !important; }
.fm-quality-goal-head > p { margin: 0 0 6px; color: rgba(255,255,255,.73); font-size: 18px; line-height: 1.7; }
.fm-quality-pillars { display: grid; grid-template-columns: repeat(3,1fr); margin-top: 85px; border-top: 1px solid rgba(255,255,255,.25); border-left: 1px solid rgba(255,255,255,.25); }
.fm-quality-pillars article { min-height: 330px; padding: 34px; border-right: 1px solid rgba(255,255,255,.25); border-bottom: 1px solid rgba(255,255,255,.25); transition: color .35s ease, background .35s ease, transform .4s cubic-bezier(.22,1,.36,1); }
.fm-quality-pillars article:hover { color: var(--fm-slate); background: #fff; transform: translateY(-8px); }
.fm-quality-pillars span { color: #a7efd2; font-size: 12px; font-weight: 850; }
.fm-quality-pillars article:hover span { color: var(--fm-green); }
.fm-quality-pillars h3 { margin: 85px 0 18px; color: #fff !important; font-size: clamp(29px,3vw,43px); font-weight: 690; letter-spacing: -.048em; line-height: 1.02; }
.fm-quality-pillars article:hover h3 { color: var(--fm-slate) !important; }
.fm-quality-pillars p { margin: 0; color: rgba(255,255,255,.7); font-size: 15px; line-height: 1.6; }
.fm-quality-pillars article:hover p { color: #52615c; }
.fm-quality-question { max-width: 1120px; margin: 95px auto 0; text-align: center; }
.fm-quality-question span { color: #a7efd2; font-size: 11px; font-weight: 850; letter-spacing: .13em; text-transform: uppercase; }
.fm-quality-question p { margin: 22px 0 0; color: #fff; font-size: clamp(31px,4vw,58px); font-weight: 650; letter-spacing: -.05em; line-height: 1.08; }
.fm-quality-final { display: grid; grid-template-columns: .75fr 1fr; gap: 55px; margin-top: 88px; padding-top: 38px; border-top: 1px solid rgba(255,255,255,.28); }
.fm-quality-final strong { color: #fff; font-size: 24px; }
.fm-quality-final span { color: rgba(255,255,255,.72); font-size: 16px; line-height: 1.65; }

.fm-investment-preview { background: #fff; }
.fm-investment-head { display: grid; grid-template-columns: minmax(0,1.2fr) minmax(360px,.58fr); gap: clamp(60px,9vw,145px); align-items: end; margin-bottom: 80px; }
.fm-investment-head > p { margin: 0 0 7px; color: var(--fm-muted); font-size: 18px; line-height: 1.7; }
.fm-investment-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 20px; }
.fm-investment-grid > a { display: grid; min-height: 520px; grid-template-rows: 270px 1fr; color: var(--fm-ink) !important; background: #f1f3ef; border: 1px solid var(--fm-line); text-decoration: none; overflow: hidden; transition: transform .4s cubic-bezier(.22,1,.36,1), box-shadow .4s ease; }
.fm-investment-grid > a:hover { transform: translateY(-9px); box-shadow: 0 28px 65px rgba(15,35,30,.14); }
.fm-investment-grid img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s ease; }
.fm-investment-grid > a:hover img { transform: scale(1.035); }
.fm-investment-grid > a > div { display: grid; grid-template-columns: 1fr auto; gap: 12px 30px; padding: 30px; }
.fm-investment-grid span { grid-column: 1 / -1; color: var(--fm-green); font-size: 11px; font-weight: 850; letter-spacing: .11em; text-transform: uppercase; }
.fm-investment-grid h3 { margin: 0; color: var(--fm-ink) !important; font-size: clamp(31px,3vw,44px); font-weight: 700; letter-spacing: -.05em; line-height: 1; }
.fm-investment-grid p { grid-column: 1 / -1; margin: 0; color: var(--fm-muted); font-size: 15px; line-height: 1.55; }
.fm-investment-grid b { grid-column: 2; grid-row: 2; align-self: end; font-size: 11px; letter-spacing: .08em; text-transform: uppercase; }

.fm-identity-links { color: #fff; background: #17201f; }
.fm-identity-links .fm-shell { display: grid; grid-template-columns: repeat(3,1fr); }
.fm-identity-links a { position: relative; min-height: 310px; padding: 38px; color: #fff !important; border-right: 1px solid rgba(255,255,255,.18); text-decoration: none; transition: color .35s ease, background .35s ease; }
.fm-identity-links a:first-child { padding-left: 0; }
.fm-identity-links a:last-child { border-right: 0; }
.fm-identity-links a:hover { color: var(--fm-green-dark) !important; background: #a7efd2; }
.fm-identity-links span { color: #9ee8ca; font-size: 11px; font-weight: 850; }
.fm-identity-links a:hover span { color: var(--fm-green); }
.fm-identity-links h3 { margin: 85px 0 12px; color: inherit !important; font-size: clamp(29px,3.2vw,45px); font-weight: 690; letter-spacing: -.05em; line-height: 1; }
.fm-identity-links p { margin: 0; color: inherit; font-size: 15px; opacity: .7; }
.fm-identity-links b { position: absolute; top: 38px; right: 38px; font-size: 22px; }

@media (max-width: 1000px) {
  .fm-history-hero-grid { grid-template-columns: repeat(2,1fr); gap: 55px; }
  .fm-history-year, .fm-history-heading { grid-column: auto; padding-left: 0; }
  .fm-history-photo { grid-column: 1 / -1; }
  .fm-history-story-grid, .fm-purpose-head, .fm-quality-goal-head, .fm-investment-head { grid-template-columns: 1fr; }
  .fm-history-quote { grid-template-columns: 1fr; }
  .fm-purpose-card { min-height: 580px; }
  .fm-quality-pillars { grid-template-columns: 1fr; }
  .fm-quality-pillars article { min-height: 260px; }
  .fm-quality-pillars h3 { margin-top: 55px; }
}

@media (max-width: 760px) {
  .fm-history-hero { padding-top: 105px; }
  .fm-history-meta { align-items: flex-start; flex-direction: column; }
  .fm-history-hero-grid { grid-template-columns: 1fr; gap: 50px; }
  .fm-history-year, .fm-history-heading, .fm-history-photo { grid-column: 1; }
  .fm-history-year strong { font-size: 37vw; }
  .fm-site .fm-history-heading h1 { font-size: clamp(56px,16vw,78px); }
  .fm-history-photo { height: 75vw; margin-top: 15px; }
  .fm-history-path .fm-shell, .fm-purpose-cards, .fm-investment-grid, .fm-identity-links .fm-shell { grid-template-columns: 1fr; }
  .fm-history-path article, .fm-history-path article:first-child { min-height: 300px; padding: 42px 0; border-right: 0; border-bottom: 1px solid rgba(255,255,255,.17); }
  .fm-history-path span { margin-top: 42px; }
  .fm-purpose-card { min-height: 0; padding: 40px 28px; }
  .fm-purpose-card h3 { margin-top: 70px; }
  .fm-quality-final { grid-template-columns: 1fr; }
  .fm-investment-grid > a { min-height: 0; grid-template-rows: 230px 1fr; }
  .fm-identity-links a, .fm-identity-links a:first-child { min-height: 260px; padding: 34px 0; border-right: 0; border-bottom: 1px solid rgba(255,255,255,.18); }
  .fm-identity-links b { right: 0; }
}

/* FM azienda v3 — racconto corporate, immagini e movimento */
.fm-history-hero-cinematic { position: relative; min-height: max(780px,100svh); padding: 0; color: #fff; background: #101817; overflow: hidden; }
.fm-history-hero-media,
.fm-history-hero-shade { position: absolute; inset: 0; }
.fm-history-hero-media img { width: 100%; height: 100%; object-fit: cover; object-position: center; animation: fmHistoryDrift 22s ease-in-out infinite alternate; }
.fm-history-hero-shade { background: linear-gradient(90deg,rgba(10,20,18,.94) 0%,rgba(10,24,21,.78) 47%,rgba(10,20,18,.2) 82%),linear-gradient(0deg,rgba(8,18,16,.8),transparent 52%); }
.fm-history-hero-inner { position: relative; z-index: 2; display: flex; min-height: max(780px,100svh); align-items: center; padding-top: 172px; padding-bottom: 120px; }
.fm-history-hero-cinematic .fm-history-meta { position: absolute; top: 112px; right: 0; left: 0; padding: 19px 0; color: rgba(255,255,255,.7); border-color: rgba(255,255,255,.24); }
.fm-history-hero-copy { position: relative; z-index: 2; width: min(980px,72%); }
.fm-site .fm-history-hero-cinematic h1 { max-width: 980px; margin: 0; color: #fff !important; font-size: clamp(68px,7.6vw,120px); font-weight: 750; letter-spacing: -.071em; line-height: .87; }
.fm-history-hero-copy > p:not(.fm-kicker) { max-width: 780px; margin: 34px 0 0; color: rgba(255,255,255,.79); font-size: clamp(18px,1.45vw,22px); line-height: 1.62; }
.fm-history-hero-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 30px; margin-top: 38px; }
.fm-history-orbit { position: absolute; z-index: 1; top: 26%; right: 1%; width: clamp(230px,22vw,350px); aspect-ratio: 1; color: #fff; pointer-events: none; }
.fm-history-orbit i { position: absolute; border: 1px solid rgba(255,255,255,.32); border-radius: 50%; animation: fmOrbitPulse 5.8s ease-in-out infinite; }
.fm-history-orbit i:nth-child(1) { inset: 0; }
.fm-history-orbit i:nth-child(2) { inset: 14%; animation-delay: -.9s; }
.fm-history-orbit i:nth-child(3) { inset: 30%; animation-delay: -1.8s; }
.fm-history-orbit b { position: absolute; inset: 0; display: grid; place-items: center; color: #fff; font-size: clamp(28px,3.2vw,52px); letter-spacing: -.06em; }
.fm-history-orbit span { position: absolute; top: 5%; left: 48%; width: 13px; height: 13px; background: var(--fm-green-bright); border-radius: 50%; transform-origin: 4px calc(clamp(230px,22vw,350px) / 2 - 12px); animation: fmOrbitSpin 9s linear infinite; box-shadow: 0 0 0 7px rgba(41,211,145,.14); }
.fm-history-hero-foot { position: absolute; right: 0; bottom: 39px; left: 0; display: grid; grid-template-columns: repeat(3,1fr); padding-top: 22px; border-top: 1px solid rgba(255,255,255,.25); }
.fm-history-hero-foot span { color: rgba(255,255,255,.74); font-size: 10px; font-weight: 820; letter-spacing: .12em; text-transform: uppercase; }

.fm-company-profile { background: #fff; }
.fm-company-profile-head { display: grid; grid-template-columns: minmax(0,1.2fr) minmax(380px,.62fr); gap: clamp(55px,8vw,130px); align-items: start; }
.fm-site .fm-company-profile h2 { max-width: 940px; margin: 0; color: var(--fm-ink) !important; font-size: clamp(54px,6.4vw,96px); font-weight: 740; letter-spacing: -.064em; line-height: .94; }
.fm-company-profile-head > div:last-child { padding-top: 94px; }
.fm-company-profile-head p { margin: 0 0 24px; color: #414a46; font-size: 18px; line-height: 1.72; }
.fm-company-profile-grid { display: grid; grid-template-columns: minmax(0,1.15fr) minmax(380px,.65fr); gap: clamp(38px,6vw,90px); align-items: stretch; margin-top: clamp(70px,8vw,112px); }
.fm-company-profile-grid figure { position: relative; min-height: 620px; margin: 0; overflow: hidden; }
.fm-company-profile-grid figure::after { content:""; position:absolute; inset:0; background:linear-gradient(0deg,rgba(9,27,23,.64),transparent 42%); pointer-events:none; }
.fm-company-profile-grid img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.15s cubic-bezier(.22,1,.36,1); }
.fm-company-profile-grid figure:hover img { transform: scale(1.025); }
.fm-company-profile-grid figcaption { position: absolute; z-index: 2; right: 28px; bottom: 25px; left: 28px; color: rgba(255,255,255,.82); font-size: 10px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.fm-company-profile-copy { display: flex; flex-direction: column; justify-content: center; padding-block: 34px; }
.fm-company-profile-copy p { margin: 0 0 23px; color: var(--fm-muted); font-size: 17px; line-height: 1.72; }
.fm-company-profile-copy .fm-company-lead { color: var(--fm-green-dark); font-size: clamp(27px,2.5vw,39px); font-weight: 700; letter-spacing: -.045em; line-height: 1.08; }
.fm-company-profile-copy .fm-text-link { align-self: flex-start; margin-top: 18px; }
.fm-company-facts { display: grid; grid-template-columns: repeat(4,1fr); margin-top: clamp(75px,8vw,115px); border-top: 1px solid var(--fm-line); border-bottom: 1px solid var(--fm-line); }
.fm-company-facts > div { min-height: 210px; padding: 38px 28px; border-right: 1px solid var(--fm-line); }
.fm-company-facts > div:first-child { padding-left: 0; }
.fm-company-facts > div:last-child { border-right: 0; }
.fm-company-facts strong { display: block; color: var(--fm-green); font-size: clamp(44px,4.7vw,72px); font-weight: 760; letter-spacing: -.065em; line-height: 1; }
.fm-company-facts p { margin: 45px 0 0; color: var(--fm-ink); font-size: 12px; font-weight: 820; letter-spacing: .08em; text-transform: uppercase; }

.fm-company-inside { display: grid; min-height: 760px; grid-template-columns: minmax(0,1fr) minmax(600px,1.05fr); color: #fff; background: #17201f; overflow: hidden; }
.fm-company-inside-media { min-height: 760px; overflow: hidden; }
.fm-company-inside-media img { width: 100%; height: 100%; object-fit: cover; object-position: center; animation: fmInsidePan 18s ease-in-out infinite alternate; }
.fm-company-inside-copy { display: flex; flex-direction: column; justify-content: center; padding: clamp(75px,8vw,125px) max(var(--fm-pad),calc((100vw - var(--fm-shell)) / 2)) clamp(75px,8vw,125px) clamp(55px,7vw,105px); }
.fm-company-inside-copy .fm-section-label { margin-bottom: 43px; }
.fm-site .fm-company-inside h2 { max-width: 780px; margin: 0; color: #fff !important; font-size: clamp(48px,5.5vw,82px); font-weight: 730; letter-spacing: -.06em; line-height: .96; }
.fm-company-inside-copy > p { max-width: 780px; margin: 28px 0 0; color: rgba(255,255,255,.7); font-size: 17px; line-height: 1.7; }
.fm-company-inside-list { margin-top: 48px; border-top: 1px solid rgba(255,255,255,.24); }
.fm-company-inside-list > div { display: grid; min-height: 94px; grid-template-columns: 46px minmax(160px,.48fr) 1fr; gap: 20px; align-items: center; border-bottom: 1px solid rgba(255,255,255,.24); }
.fm-company-inside-list span { color: var(--fm-green-bright); font-size: 11px; font-weight: 850; }
.fm-company-inside-list b { color: #fff; font-size: 15px; }
.fm-company-inside-list p { margin: 0; color: rgba(255,255,255,.62); font-size: 13px; line-height: 1.5; }

.fm-quality-visual { display: grid; min-height: 610px; grid-template-columns: minmax(0,1.05fr) minmax(420px,.72fr); margin-top: 86px; background: #263d4b; }
.fm-quality-visual figure { position: relative; min-height: 610px; margin: 0; overflow: hidden; }
.fm-quality-visual figure::after { content:""; position:absolute; inset:0; background:linear-gradient(0deg,rgba(8,25,34,.62),transparent 45%); }
.fm-quality-visual img { width: 100%; height: 100%; object-fit: cover; transition: transform 1s cubic-bezier(.22,1,.36,1); }
.fm-quality-visual figure:hover img { transform: scale(1.025); }
.fm-quality-visual figcaption { position: absolute; z-index: 2; right: 28px; bottom: 28px; left: 28px; display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; color: #fff; }
.fm-quality-visual figcaption span { color: #a7efd2; font-size: 10px; font-weight: 850; letter-spacing: .11em; text-transform: uppercase; }
.fm-quality-visual figcaption b { font-size: 13px; }
.fm-quality-visual-copy { display: flex; flex-direction: column; justify-content: center; padding: clamp(42px,5vw,72px); }
.fm-quality-visual-copy > span { color: #a7efd2; font-size: 10px; font-weight: 850; letter-spacing: .12em; text-transform: uppercase; }
.fm-quality-visual-copy h3 { margin: 35px 0 26px; color: #fff !important; font-size: clamp(34px,3.6vw,54px); font-weight: 690; letter-spacing: -.052em; line-height: 1.02; }
.fm-quality-visual-copy p { margin: 0 0 20px; color: rgba(255,255,255,.7); font-size: 16px; line-height: 1.68; }
.fm-quality-visual-copy .fm-text-link { align-self: flex-start; margin-top: 15px; }
.fm-quality-visual + .fm-quality-pillars { margin-top: 52px; }

.fm-identity-links a { overflow: hidden; transition: color .35s ease, padding .35s cubic-bezier(.22,1,.36,1); }
.fm-identity-links a::after { content:""; position:absolute; right:38px; bottom:0; left:38px; height:3px; background:var(--fm-green-bright); transform:scaleX(0); transform-origin:left; transition:transform .45s cubic-bezier(.22,1,.36,1); }
.fm-identity-links a:first-child::after { left: 0; }
.fm-identity-links a:hover { color: #fff !important; background: transparent; padding-top: 32px; }
.fm-identity-links a:hover::after { transform: scaleX(1); }
.fm-identity-links a:hover span { color: var(--fm-green-bright); }
.fm-identity-links a:hover h3 { color: var(--fm-green-bright) !important; }
.fm-identity-links a b { transition: color .3s ease, transform .35s cubic-bezier(.22,1,.36,1); }
.fm-identity-links a:hover b { color: var(--fm-green-bright); transform: translate(6px,-6px); }

@keyframes fmHistoryDrift { from { transform: scale(1.02) translate3d(-.5%,0,0); } to { transform: scale(1.075) translate3d(1.4%,-.8%,0); } }
@keyframes fmInsidePan { from { transform: scale(1.025) translate3d(-.7%,0,0); } to { transform: scale(1.07) translate3d(1%,-.6%,0); } }
@keyframes fmOrbitSpin { to { transform: rotate(360deg); } }
@keyframes fmOrbitPulse { 0%,100% { opacity:.34; transform:scale(1); } 50% { opacity:.75; transform:scale(.965); } }

@media (max-width: 1100px) {
  .fm-history-hero-copy { width: min(820px,78%); }
  .fm-history-orbit { right: -6%; opacity: .65; }
  .fm-company-profile-head,
  .fm-company-profile-grid,
  .fm-quality-visual { grid-template-columns: 1fr; }
  .fm-company-profile-head > div:last-child { max-width: 760px; padding-top: 0; }
  .fm-company-profile-grid figure { min-height: 66vw; }
  .fm-company-profile-copy { max-width: 780px; }
  .fm-company-inside { grid-template-columns: .85fr 1fr; }
  .fm-company-inside-copy { padding-right: var(--fm-pad); padding-left: 55px; }
  .fm-quality-visual figure { min-height: 62vw; }
}

@media (max-width: 820px) {
  .fm-history-hero-inner { min-height: 860px; padding-top: 185px; padding-bottom: 145px; }
  .fm-history-hero-copy { width: 100%; }
  .fm-site .fm-history-hero-cinematic h1 { font-size: clamp(58px,14vw,88px); }
  .fm-history-orbit { display: none; }
  .fm-history-hero-foot { grid-template-columns: 1fr; gap: 7px; bottom: 32px; }
  .fm-company-facts { grid-template-columns: repeat(2,1fr); }
  .fm-company-facts > div:nth-child(2) { border-right: 0; }
  .fm-company-facts > div:nth-child(-n+2) { border-bottom: 1px solid var(--fm-line); }
  .fm-company-inside { grid-template-columns: 1fr; }
  .fm-company-inside-media { min-height: 74vw; }
  .fm-company-inside-copy { padding: 80px var(--fm-pad); }
  .fm-quality-visual { min-height: 0; }
  .fm-quality-visual-copy { padding: 55px var(--fm-pad); }
}

@media (max-width: 560px) {
  .fm-history-hero-cinematic .fm-history-meta { top: 90px; gap: 7px; padding: 15px 0; font-size: 9px; }
  .fm-history-hero-inner { min-height: 820px; padding-top: 188px; padding-bottom: 150px; }
  .fm-site .fm-history-hero-cinematic h1 { font-size: clamp(52px,15.5vw,74px); }
  .fm-history-hero-copy > p:not(.fm-kicker) { font-size: 17px; }
  .fm-history-hero-actions { align-items: flex-start; flex-direction: column; gap: 20px; }
  .fm-company-profile-head p { font-size: 17px; }
  .fm-company-profile-grid figure { min-height: 82vw; }
  .fm-company-facts { grid-template-columns: 1fr; }
  .fm-company-facts > div,
  .fm-company-facts > div:first-child { min-height: 170px; padding: 30px 0; border-right: 0; border-bottom: 1px solid var(--fm-line); }
  .fm-company-facts p { margin-top: 30px; }
  .fm-company-inside-media { min-height: 92vw; }
  .fm-company-inside-list > div { grid-template-columns: 38px 1fr; gap: 8px 14px; padding: 20px 0; }
  .fm-company-inside-list p { grid-column: 2; }
  .fm-quality-visual figure { min-height: 88vw; }
  .fm-quality-visual figcaption { align-items: flex-start; flex-direction: column; }
  .fm-identity-links a::after { right:0; left:0; }
}

/* Contatti — pagina essenziale */
.fm-button-dark { color: #fff !important; background: var(--fm-green-dark); }
.fm-button-dark:hover { color: #fff !important; background: var(--fm-green); }
.fm-contact-page-hero { position: relative; min-height: max(760px,100svh); color: #fff; background: #17201f; overflow: hidden; }
.fm-contact-page-inner { position: relative; z-index: 2; display: grid; min-height: max(760px,100svh); grid-template-columns: minmax(0,1.15fr) minmax(400px,.58fr); gap: clamp(60px,8vw,130px); align-items: center; padding-top: 160px; padding-bottom: 95px; }
.fm-contact-page-copy { align-self: center; }
.fm-site .fm-contact-page-hero h1 { max-width: 950px; margin: 0; color: #fff !important; font-size: clamp(68px,7.7vw,122px); font-weight: 750; letter-spacing: -.071em; line-height: .87; }
.fm-contact-page-copy > p:not(.fm-kicker) { max-width: 760px; margin: 35px 0 0; color: rgba(255,255,255,.73); font-size: clamp(18px,1.45vw,22px); line-height: 1.65; }
.fm-contact-page-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 28px; margin-top: 42px; }
.fm-contact-phone { padding: 8px 0; color: #fff !important; border-bottom: 1px solid rgba(255,255,255,.65); font-size: 18px; font-weight: 760; letter-spacing: .02em; text-decoration: none; }
.fm-contact-direct { align-self: end; border-top: 1px solid rgba(255,255,255,.28); }
.fm-contact-direct-head { display: flex; align-items: center; justify-content: space-between; gap: 25px; min-height: 76px; border-bottom: 1px solid rgba(255,255,255,.28); }
.fm-contact-direct-head span,
.fm-contact-direct-head b { color: rgba(255,255,255,.58); font-size: 9px; font-weight: 820; letter-spacing: .12em; text-transform: uppercase; }
.fm-contact-direct a { display: grid; min-height: 112px; grid-template-columns: 1fr auto; align-content: center; gap: 9px 20px; color: #fff !important; border-bottom: 1px solid rgba(255,255,255,.28); text-decoration: none; transition: padding .35s cubic-bezier(.22,1,.36,1), background .3s ease; }
.fm-contact-direct a:hover { padding-inline: 16px; background: rgba(255,255,255,.06); }
.fm-contact-direct a span { color: var(--fm-green-bright); font-size: 9px; font-weight: 820; letter-spacing: .11em; text-transform: uppercase; }
.fm-contact-direct a strong { color: #fff; font-size: clamp(16px,1.4vw,21px); font-weight: 650; word-break: break-word; }
.fm-contact-direct a b { grid-column: 2; grid-row: 1 / 3; align-self: center; font-size: 19px; transition: transform .3s ease; }
.fm-contact-direct a:hover b { transform: translate(5px,-5px); }
.fm-contact-page-orbit { position: absolute; top: -25vw; right: -18vw; width: 55vw; aspect-ratio: 1; border: 1px solid rgba(255,255,255,.07); border-radius: 50%; pointer-events: none; }
.fm-contact-page-orbit i { position: absolute; border: 1px solid rgba(255,255,255,.08); border-radius: 50%; animation: fmOrbitPulse 7s ease-in-out infinite; }
.fm-contact-page-orbit i:first-child { inset: 17%; }
.fm-contact-page-orbit i:nth-child(2) { inset: 36%; animation-delay: -2s; }
.fm-contact-page-orbit span { position:absolute; bottom:18%; left:13%; width:18px; height:18px; background:var(--fm-green-bright); border-radius:50%; box-shadow:0 0 0 10px rgba(41,211,145,.1); }

.fm-contact-essential { background: #fff; }
.fm-contact-essential-head { display: grid; grid-template-columns: minmax(0,1.15fr) minmax(360px,.55fr); gap: clamp(55px,8vw,130px); align-items: end; }
.fm-site .fm-contact-essential h2 { max-width: 900px; margin: 0; color: var(--fm-ink) !important; font-size: clamp(54px,6.4vw,96px); font-weight: 740; letter-spacing: -.064em; line-height: .94; }
.fm-contact-essential-head > p { margin: 0 0 6px; color: var(--fm-muted); font-size: 18px; line-height: 1.72; }
.fm-contact-location { display: grid; grid-template-columns: minmax(340px,.55fr) minmax(0,1.15fr); gap: 20px; margin-top: 82px; }
.fm-contact-addresses { display: flex; flex-direction: column; padding: 38px; background: #eef0ec; }
.fm-contact-addresses > div { padding: 4px 0 30px; border-bottom: 1px solid #c9d0cb; }
.fm-contact-addresses > div + div { padding-top: 30px; }
.fm-contact-addresses span { display: block; margin-bottom: 16px; color: var(--fm-green); font-size: 10px; font-weight: 850; letter-spacing: .12em; text-transform: uppercase; }
.fm-contact-addresses address { color: var(--fm-ink); font-size: clamp(23px,2.3vw,34px); font-style: normal; font-weight: 680; letter-spacing: -.035em; line-height: 1.18; }
.fm-contact-addresses .fm-button { align-self: flex-start; margin-top: auto; }
.fm-contact-route-card { position: relative; display: block; min-height: 560px; padding: 36px; color: #fff !important; background: var(--fm-green-dark); text-decoration: none; overflow: hidden; }
.fm-contact-route-card::after { content:""; position:absolute; inset:0; background:radial-gradient(circle at 72% 25%,rgba(41,211,145,.2),transparent 34%); pointer-events:none; }
.fm-contact-route-top { position: relative; z-index: 2; display: flex; justify-content: space-between; gap: 25px; padding-bottom: 24px; border-bottom: 1px solid rgba(255,255,255,.25); }
.fm-contact-route-top span,
.fm-contact-route-top b { font-size: 10px; font-weight: 820; letter-spacing: .11em; text-transform: uppercase; }
.fm-contact-route-top span { color: var(--fm-green-bright); }
.fm-contact-route-card svg { position: absolute; z-index: 1; inset: 95px 20px 20px; width: calc(100% - 40px); height: calc(100% - 115px); overflow: visible; }
.fm-contact-route-card path { fill: none; stroke-linecap: round; stroke-linejoin: round; }
.fm-route-base { stroke: rgba(255,255,255,.18); stroke-width: 4; }
.fm-route-live { stroke: var(--fm-green-bright); stroke-width: 4; stroke-dasharray: 13 16; animation: fmRouteMove 1.15s linear infinite; }
.fm-contact-route-card circle { fill: #fff; stroke: var(--fm-green-bright); stroke-width: 5; }
.fm-contact-route-card circle:last-child { fill: var(--fm-green-bright); stroke: rgba(255,255,255,.75); }
.fm-contact-pin { position: absolute; z-index: 3; right: 7%; bottom: 8%; display: flex; flex-direction: column; min-width: 240px; padding: 24px; color: var(--fm-ink); background: #fff; box-shadow: 0 22px 55px rgba(0,0,0,.17); transition: transform .35s cubic-bezier(.22,1,.36,1); }
.fm-contact-route-card:hover .fm-contact-pin { transform: translateY(-7px); }
.fm-contact-pin span { color: var(--fm-green); font-size: 27px; font-weight: 830; letter-spacing: -.05em; }
.fm-contact-pin b { margin-top: 17px; font-size: 16px; }
.fm-contact-pin small { margin-top: 5px; color: var(--fm-muted); font-size: 11px; }
.fm-contact-note { display: grid; grid-template-columns: .45fr 1fr auto; gap: 40px; align-items: center; margin-top: 20px; padding: 34px 38px; color: #fff; background: #17201f; }
.fm-contact-note > span { color: var(--fm-green-bright); font-size: 10px; font-weight: 850; letter-spacing: .12em; text-transform: uppercase; }
.fm-contact-note p { margin: 0; color: rgba(255,255,255,.7); font-size: 15px; line-height: 1.6; }
.fm-contact-note a { display: inline-flex; align-items: center; gap: 15px; color: #fff !important; border-bottom: 1px solid rgba(255,255,255,.55); font-size: 10px; font-weight: 850; letter-spacing: .09em; text-decoration: none; text-transform: uppercase; }
.fm-contact-note a:hover { color: var(--fm-green-bright) !important; }

@keyframes fmRouteMove { to { stroke-dashoffset: -29; } }

@media (max-width: 1000px) {
  .fm-contact-page-inner { grid-template-columns: 1fr; align-content: center; }
  .fm-contact-page-copy { padding-top: 80px; }
  .fm-contact-direct { width: min(680px,100%); }
  .fm-contact-essential-head { grid-template-columns: 1fr; }
  .fm-contact-essential-head > p { max-width: 700px; }
  .fm-contact-location { grid-template-columns: 1fr; }
  .fm-contact-addresses { min-height: 480px; }
}

@media (max-width: 680px) {
  .fm-contact-page-inner { min-height: 0; padding-top: 150px; padding-bottom: 80px; }
  .fm-site .fm-contact-page-hero h1 { font-size: clamp(57px,16vw,78px); }
  .fm-contact-page-copy > p:not(.fm-kicker) { font-size: 17px; }
  .fm-contact-page-actions { align-items: flex-start; flex-direction: column; }
  .fm-contact-direct { margin-top: 35px; }
  .fm-contact-direct a { min-height: 100px; }
  .fm-contact-essential-head > p { font-size: 17px; }
  .fm-contact-location { margin-top: 58px; }
  .fm-contact-addresses { min-height: 470px; padding: 28px; }
  .fm-contact-route-card { min-height: 480px; padding: 28px; }
  .fm-contact-route-top { align-items: flex-start; flex-direction: column; }
  .fm-contact-pin { right: 28px; bottom: 28px; left: 28px; min-width: 0; }
  .fm-contact-note { grid-template-columns: 1fr; gap: 20px; padding: 30px 28px; }
  .fm-contact-note a { justify-self: start; }
}

/* Release 3.0 — pagine definitive FM */
.fm-purpose-head-stacked,
.fm-investment-head-stacked { display:block; }
.fm-purpose-head-stacked > div,
.fm-investment-head-stacked > div { max-width:1050px; }
.fm-purpose-head-stacked p,
.fm-investment-head-stacked p { max-width:780px; margin:30px 0 0; color:var(--fm-muted); font-size:18px; line-height:1.7; }
.fm-investment-grid > article { display:grid; min-height:520px; grid-template-rows:270px 1fr; color:var(--fm-ink); background:#f1f3ef; border:1px solid var(--fm-line); overflow:hidden; transition:transform .4s cubic-bezier(.22,1,.36,1),box-shadow .4s ease; }
.fm-investment-grid > article:hover { transform:translateY(-9px); box-shadow:0 28px 65px rgba(15,35,30,.14); }
.fm-investment-grid > article:hover img { transform:scale(1.035); }
.fm-investment-grid > article > div { display:grid; grid-template-columns:1fr auto; gap:12px 30px; padding:30px; }
.fm-investment-grid > article span { grid-column:1/-1; }
.fm-investment-grid > article h3 { margin:0; color:var(--fm-ink)!important; font-size:clamp(31px,3vw,44px); font-weight:700; letter-spacing:-.05em; line-height:1; }
.fm-investment-grid > article p { grid-column:1/-1; margin:0; color:var(--fm-muted); font-size:15px; line-height:1.55; }
.fm-investment-grid > article b { grid-column:2; grid-row:2; align-self:end; font-size:11px; letter-spacing:.08em; text-transform:uppercase; }

.fm-history-orbit-timeline .fm-orbit-word { position:absolute; color:#fff; font-size:10px; font-weight:850; letter-spacing:.14em; text-transform:uppercase; text-shadow:0 2px 10px rgba(0,0,0,.35); animation:fmOrbitLabel 9s ease-in-out infinite; }
.fm-orbit-word-one { top:16%; right:13%; }
.fm-orbit-word-two { right:3%; bottom:29%; animation-delay:-3s!important; }
.fm-orbit-word-three { bottom:8%; left:24%; animation-delay:-6s!important; }
@keyframes fmOrbitLabel { 0%,100%{opacity:.38;transform:translateY(0)} 50%{opacity:1;transform:translateY(-9px)} }
.fm-history-story-editorial { padding-block:clamp(115px,12vw,180px); background:#fff; }
.fm-site .fm-history-story-editorial h2 { max-width:1300px; margin:0; font-size:clamp(58px,7.1vw,112px); line-height:.94; text-align:left; }
.fm-history-editorial-copy { width:min(1240px,100%); margin:95px auto 0; }
.fm-history-editorial-copy h3 { margin:0 0 45px; color:var(--fm-green)!important; font-size:clamp(30px,3.2vw,50px); letter-spacing:-.045em; }
.fm-history-editorial-copy p { margin:0 0 34px; color:#1e2422; font-size:clamp(19px,1.65vw,26px); line-height:1.42; }
.fm-history-editorial-copy em { color:var(--fm-green); font-style:normal; font-weight:750; }
.fm-history-editorial-copy .fm-history-closing { margin-top:60px; font-size:clamp(24px,2.4vw,38px); line-height:1.25; }
.fm-company-inside-copy > p { font-size:18px; }
.fm-company-inside-list b { font-size:18px; }
.fm-company-inside-list p { font-size:15px; }

/* Mappa processi, materiali e settori */
.fm-process-map-head-stacked { display:block; }
.fm-process-map-head-stacked > div { max-width:1100px; }
.fm-process-map-head-stacked p { max-width:820px; margin:30px 0 0; color:var(--fm-muted); font-size:18px; line-height:1.68; }
.fm-process-map-balanced { grid-template-columns:minmax(0,5fr) 150px minmax(0,3fr); gap:70px 28px; align-items:start; }
.fm-process-map-balanced .fm-map-vibro { grid-column:1; grid-row:1; }
.fm-process-map-balanced .fm-map-galvanica { grid-column:3; grid-row:1; }
.fm-process-map-balanced .fm-map-sbavatura { grid-column:1; grid-row:2; }
.fm-process-map-balanced .fm-map-sabbiatura { grid-column:2; grid-row:2; }
.fm-process-map-balanced .fm-map-selection { grid-column:3; grid-row:2; }
.fm-process-map-balanced .fm-map-vibro .fm-map-items > a:nth-child(-n+4),
.fm-process-map-balanced .fm-map-vibro .fm-map-items > a:nth-child(-n+4):hover { transform:none; }
.fm-process-map-balanced .fm-map-group > h3 { display:flex; min-height:42px; align-items:flex-end; margin-bottom:28px; }
.fm-process-map-balanced .fm-map-items { padding-top:32px; }
.fm-map-shared { position:relative; display:flex; grid-column:2; grid-row:1; min-height:190px; flex-direction:column; align-items:center; justify-content:center; gap:12px; margin-top:88px; color:#fff!important; background:var(--fm-green); text-align:center; text-decoration:none; transition:transform .35s ease,box-shadow .35s ease; }
.fm-map-shared::before,.fm-map-shared::after { content:""; position:absolute; top:50%; width:28px; height:1.5px; background:var(--fm-green); }
.fm-map-shared::before { right:100%; }
.fm-map-shared::after { left:100%; }
.fm-map-shared:hover { transform:translateY(-7px); box-shadow:0 18px 42px rgba(0,83,65,.2); }
.fm-map-shared svg { width:60px; height:60px; fill:none; stroke:currentColor; stroke-width:2; }
.fm-map-shared span { font-size:14px; font-weight:850; text-transform:uppercase; }
.fm-map-shared small { color:#baf4d9; font-size:9px; font-weight:850; letter-spacing:.1em; text-transform:uppercase; }
.fm-map-selection .fm-map-items > a { border-radius:47% 53% 44% 56% / 54% 43% 57% 46%; }

.fm-capabilities { background:#fff; }
.fm-capabilities-head { display:grid; grid-template-columns:minmax(0,1.1fr) minmax(350px,.55fr); gap:25px clamp(60px,9vw,145px); align-items:end; }
.fm-capabilities-head .fm-section-label { grid-column:1/-1; }
.fm-site .fm-capabilities h2 { margin:0; color:var(--fm-ink)!important; font-size:clamp(52px,6.2vw,92px); font-weight:740; letter-spacing:-.06em; line-height:.96; }
.fm-capabilities-head > p { margin:0 0 5px; color:var(--fm-muted); font-size:18px; line-height:1.68; }
.fm-material-grid { display:grid; grid-template-columns:repeat(4,1fr); margin-top:78px; border-top:1px solid var(--fm-line); border-left:1px solid var(--fm-line); }
.fm-material-grid article { display:flex; min-height:245px; flex-direction:column; justify-content:space-between; padding:30px; border-right:1px solid var(--fm-line); border-bottom:1px solid var(--fm-line); transition:background .35s ease,transform .35s ease; }
.fm-material-grid article:hover { z-index:2; background:#eef0ec; transform:translateY(-7px); }
.fm-material-grid svg { width:62px; height:62px; fill:none; stroke:var(--fm-green); stroke-width:2; }
.fm-material-grid h3 { margin:45px 0 0; color:var(--fm-ink)!important; font-size:22px; font-weight:720; letter-spacing:-.035em; }
.fm-material-limit { color:#fff; background:var(--fm-green-dark); }
.fm-material-grid .fm-material-limit:hover { background:var(--fm-green); }
.fm-material-limit strong { color:var(--fm-green-bright); font-size:clamp(58px,5vw,82px); letter-spacing:-.07em; }
.fm-material-grid .fm-material-limit h3 { margin:25px 0 0; color:#fff!important; }
.fm-material-limit p { margin:10px 0 0; color:rgba(255,255,255,.68); font-size:13px; }

.fm-sectors { color:#fff; background:#17201f; }
.fm-sectors-head { display:grid; grid-template-columns:minmax(0,1.15fr) minmax(350px,.55fr); gap:60px clamp(60px,9vw,145px); align-items:end; }
.fm-site .fm-sectors h2 { margin:0; color:#fff!important; font-size:clamp(52px,6.2vw,92px); font-weight:740; letter-spacing:-.06em; line-height:.96; }
.fm-sectors-head > p { margin:0 0 5px; color:rgba(255,255,255,.7); font-size:18px; line-height:1.68; }
.fm-sector-grid { display:grid; grid-template-columns:repeat(4,1fr); margin-top:78px; border-top:1px solid rgba(255,255,255,.19); border-left:1px solid rgba(255,255,255,.19); }
.fm-sector-grid article { position:relative; min-height:275px; padding:27px; border-right:1px solid rgba(255,255,255,.19); border-bottom:1px solid rgba(255,255,255,.19); transition:background .35s ease,transform .35s ease; }
.fm-sector-grid article:hover { z-index:2; background:var(--fm-green); transform:translateY(-7px); }
.fm-sector-grid span { color:var(--fm-green-bright); font-size:10px; font-weight:850; }
.fm-sector-grid svg { display:block; width:64px; height:64px; margin:55px 0 35px; fill:none; stroke:#fff; stroke-width:2; }
.fm-sector-grid h3 { margin:0; color:#fff!important; font-size:20px; font-weight:680; line-height:1.15; }
.fm-work-nav .fm-shell { grid-template-columns:repeat(4,1fr); }
.fm-work-family-selection { background:#293934; }
.fm-selection-grid { display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid rgba(255,255,255,.28); border-left:1px solid rgba(255,255,255,.28); }
.fm-selection-grid article { min-height:330px; padding:32px; border-right:1px solid rgba(255,255,255,.28); border-bottom:1px solid rgba(255,255,255,.28); transition:color .35s ease,background .35s ease,transform .35s ease; }
.fm-selection-grid article:hover { color:var(--fm-ink); background:#fff; transform:translateY(-8px); }
.fm-selection-grid span { color:var(--fm-green-bright); font-size:11px; font-weight:850; }
.fm-selection-grid h3 { margin:95px 0 20px; color:#fff!important; font-size:clamp(31px,3vw,44px); letter-spacing:-.05em; }
.fm-selection-grid article:hover h3 { color:var(--fm-ink)!important; }
.fm-selection-grid p { margin:0; color:rgba(255,255,255,.72); font-size:16px; line-height:1.6; }
.fm-selection-grid article:hover p { color:var(--fm-muted); }

/* Qualità, laboratorio e certificazioni */
.fm-quality-hero { position:relative; min-height:max(760px,100svh); color:#fff; background:#263d4b; overflow:hidden; }
.fm-quality-hero-media,.fm-quality-hero-shade { position:absolute; inset:0; }
.fm-quality-hero-media img { width:100%; height:100%; object-fit:cover; object-position:center; animation:fmHistoryDrift 20s ease-in-out infinite alternate; }
.fm-quality-hero-shade { background:linear-gradient(90deg,rgba(18,39,51,.96),rgba(18,43,55,.78) 56%,rgba(18,43,55,.25)),linear-gradient(0deg,rgba(18,39,51,.58),transparent 45%); }
.fm-quality-hero-inner { position:relative; z-index:2; display:flex; min-height:max(760px,100svh); flex-direction:column; align-items:flex-start; justify-content:center; padding-top:150px; padding-bottom:90px; }
.fm-site .fm-quality-hero h1 { max-width:1100px; margin:0; color:#fff!important; font-size:clamp(70px,8vw,126px); font-weight:750; letter-spacing:-.07em; line-height:.88; }
.fm-quality-hero-inner > p:not(.fm-kicker) { max-width:760px; margin:35px 0 38px; color:rgba(255,255,255,.78); font-size:clamp(18px,1.5vw,23px); line-height:1.6; }
.fm-lab-details { background:#fff; }
.fm-lab-details-head { display:grid; grid-template-columns:minmax(0,1.15fr) minmax(380px,.6fr); gap:50px clamp(60px,9vw,145px); align-items:start; }
.fm-site .fm-lab-details h2 { margin:0; color:var(--fm-ink)!important; font-size:clamp(52px,6.2vw,92px); font-weight:740; letter-spacing:-.06em; line-height:.96; }
.fm-lab-details-head p { margin:0 0 25px; color:#414a46; font-size:18px; line-height:1.72; }
.fm-lab-principles { display:grid; grid-template-columns:repeat(3,1fr); margin-top:78px; border-top:1px solid var(--fm-line); border-left:1px solid var(--fm-line); }
.fm-lab-principles article { min-height:340px; padding:34px; border-right:1px solid var(--fm-line); border-bottom:1px solid var(--fm-line); transition:background .35s ease,transform .35s ease; }
.fm-lab-principles article:hover { background:#eef0ec; transform:translateY(-8px); }
.fm-lab-principles span { color:var(--fm-green); font-size:11px; font-weight:850; }
.fm-lab-principles h3 { margin:95px 0 18px; color:var(--fm-ink)!important; font-size:clamp(30px,3vw,43px); letter-spacing:-.05em; line-height:1; }
.fm-lab-principles p { margin:0; color:var(--fm-muted); font-size:16px; line-height:1.6; }
.fm-lab-instruments { display:grid; min-height:760px; grid-template-columns:minmax(0,.9fr) minmax(500px,1fr); color:#fff; background:#17201f; }
.fm-lab-instruments-media { min-height:760px; overflow:hidden; }
.fm-lab-instruments-media img { width:100%; height:100%; object-fit:cover; }
.fm-lab-instruments-copy { display:flex; flex-direction:column; justify-content:center; padding:clamp(70px,8vw,120px) max(var(--fm-pad),calc((100vw - var(--fm-shell))/2)) clamp(70px,8vw,120px) clamp(50px,7vw,100px); }
.fm-site .fm-lab-instruments h2 { margin:0; color:#fff!important; font-size:clamp(52px,6vw,88px); font-weight:740; letter-spacing:-.06em; line-height:.96; }
.fm-instrument-list { margin-top:55px; border-top:1px solid rgba(255,255,255,.22); }
.fm-instrument-list article { display:grid; grid-template-columns:55px 1fr; gap:20px; padding:25px 0; border-bottom:1px solid rgba(255,255,255,.22); }
.fm-instrument-list span { color:var(--fm-green-bright); font-size:11px; font-weight:850; }
.fm-instrument-list h3 { margin:0 0 8px; color:#fff!important; font-size:22px; }
.fm-instrument-list p { margin:0; color:rgba(255,255,255,.68); font-size:15px; line-height:1.55; }
.fm-lab-cta { background:#eef0ec; }
.fm-lab-cta .fm-shell { display:grid; grid-template-columns:minmax(0,1.15fr) minmax(350px,.55fr); gap:60px clamp(60px,9vw,145px); align-items:end; }
.fm-site .fm-lab-cta h2 { margin:0; color:var(--fm-ink)!important; font-size:clamp(52px,6vw,88px); font-weight:740; letter-spacing:-.06em; line-height:.96; }
.fm-lab-cta p { margin:0 0 30px; color:var(--fm-muted); font-size:18px; line-height:1.68; }

.fm-cert-page-hero { min-height:max(650px,82svh); color:#fff; background:#17201f; }
.fm-cert-page-hero-inner { display:grid; min-height:max(650px,82svh); grid-template-columns:minmax(0,1fr) 270px; gap:70px; align-items:center; padding-top:150px; padding-bottom:90px; }
.fm-site .fm-cert-page-hero h1 { max-width:1050px; margin:0; color:#fff!important; font-size:clamp(68px,7.6vw,120px); font-weight:750; letter-spacing:-.07em; line-height:.88; }
.fm-cert-page-hero p:not(.fm-kicker) { max-width:760px; margin:35px 0 0; color:rgba(255,255,255,.72); font-size:20px; line-height:1.65; }
.fm-cert-page-seal { position:relative; display:flex; width:260px; aspect-ratio:1; flex-direction:column; align-items:center; justify-content:center; border:1px solid rgba(255,255,255,.28); border-radius:50%; }
.fm-cert-page-seal::before { content:""; position:absolute; inset:25px; border:1px solid rgba(255,255,255,.15); border-radius:50%; }
.fm-cert-page-seal span { color:var(--fm-green-bright); font-size:96px; font-weight:760; letter-spacing:-.08em; line-height:.8; }
.fm-cert-page-seal b { margin-top:22px; font-size:11px; letter-spacing:.13em; text-transform:uppercase; }
.fm-cert-page-seal i { position:absolute; top:12px; width:13px; height:13px; background:var(--fm-green-bright); border-radius:50%; animation:fmOrbitSpin 8s linear infinite; transform-origin:0 118px; }
.fm-cert-page-intro { background:#fff; }
.fm-cert-page-intro-grid { display:grid; grid-template-columns:minmax(0,1.15fr) minmax(360px,.55fr); gap:60px clamp(60px,9vw,145px); }
.fm-site .fm-cert-page-intro h2 { margin:0; color:var(--fm-ink)!important; font-size:clamp(52px,6.1vw,91px); font-weight:740; letter-spacing:-.06em; line-height:.96; }
.fm-cert-page-intro-grid p { margin:0 0 24px; color:var(--fm-muted); font-size:18px; line-height:1.7; }
.fm-cert-page-list { background:#eef0ec; }
.fm-cert-page-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.fm-cert-page-card { display:flex; min-width:0; flex-direction:column; color:var(--fm-ink)!important; background:#fff; text-decoration:none; transition:transform .4s ease,box-shadow .4s ease; }
.fm-cert-page-card:hover { transform:translateY(-10px); box-shadow:0 25px 65px rgba(15,35,30,.14); }
.fm-cert-page-image { aspect-ratio:210/297; padding:22px; background:#e3e7e3; }
.fm-cert-page-image img { width:100%; height:100%; object-fit:contain; object-position:top center; }
.fm-cert-page-card > div:last-child { min-height:275px; padding:30px; }
.fm-cert-page-card span { color:var(--fm-green); font-size:10px; font-weight:850; letter-spacing:.11em; text-transform:uppercase; }
.fm-cert-page-card h2 { margin:35px 0 18px; color:var(--fm-ink)!important; font-size:clamp(30px,3vw,45px); letter-spacing:-.05em; }
.fm-cert-page-card p { margin:0; color:var(--fm-muted); font-size:15px; line-height:1.55; }
.fm-cert-page-card b { display:block; margin-top:28px; font-size:11px; letter-spacing:.08em; text-transform:uppercase; }

/* Brochure e candidature */
.fm-brochure-download { color:#fff; background:#0c5a49; }
.fm-brochure-card { display:grid; grid-template-columns:minmax(0,1.1fr) minmax(350px,.55fr); gap:70px clamp(60px,9vw,145px); align-items:end; }
.fm-site .fm-brochure-card h2 { max-width:900px; margin:0; color:#fff!important; font-size:clamp(52px,6vw,90px); font-weight:740; letter-spacing:-.06em; line-height:.96; }
.fm-brochure-card > div:first-child > p { max-width:760px; margin:30px 0 0; color:rgba(255,255,255,.74); font-size:18px; line-height:1.68; }
.fm-brochure-action { padding:34px; border:1px solid rgba(255,255,255,.25); background:rgba(255,255,255,.07); }
.fm-brochure-action > span:first-child { color:#b8f4d8; font-size:10px; font-weight:850; letter-spacing:.12em; text-transform:uppercase; }
.fm-brochure-action strong { display:block; margin-top:22px; color:#fff; font-size:30px; }
.fm-brochure-action p { margin:16px 0 28px; color:rgba(255,255,255,.68); font-size:14px; line-height:1.55; }
.fm-button.is-disabled { opacity:.55; pointer-events:none; }
.fm-careers { background:#f1f3ef; }
.fm-careers-layout { display:grid; grid-template-columns:minmax(0,.8fr) minmax(520px,1fr); gap:clamp(60px,9vw,145px); align-items:start; }
.fm-site .fm-careers h2 { margin:0; color:var(--fm-ink)!important; font-size:clamp(54px,6vw,90px); font-weight:740; letter-spacing:-.06em; line-height:.96; }
.fm-careers-copy > p { max-width:680px; margin:35px 0 0; color:var(--fm-muted); font-size:18px; line-height:1.7; }
.fm-careers-points { display:flex; flex-wrap:wrap; gap:9px; margin-top:35px; }
.fm-careers-points span { padding:11px 15px; color:var(--fm-green-dark); border:1px solid #b9c8c1; border-radius:999px; font-size:10px; font-weight:820; letter-spacing:.05em; text-transform:uppercase; }
.fm-careers-form-wrap { padding:clamp(30px,4vw,55px); background:#fff; box-shadow:0 24px 70px rgba(15,35,30,.08); }
.fm-form-status { display:flex; flex-direction:column; gap:7px; margin-bottom:28px; padding:18px 20px; border-left:4px solid; }
.fm-form-status.is-success { color:#073f32; background:#dff4e9; border-color:#12815f; }
.fm-form-status.is-error { color:#68251f; background:#f9e7e4; border-color:#ae4337; }
.fm-form-status strong { font-size:16px; }
.fm-form-status span { font-size:13px; }
.fm-careers-form { display:flex; flex-direction:column; gap:24px; }
.fm-field-row { display:grid; grid-template-columns:repeat(2,1fr); gap:18px; }
.fm-careers-form label { display:flex; flex-direction:column; gap:10px; color:var(--fm-ink); font-size:11px; font-weight:820; letter-spacing:.06em; text-transform:uppercase; }
.fm-careers-form input,.fm-careers-form textarea { width:100%; padding:15px 0; color:var(--fm-ink); background:transparent; border:0; border-bottom:1px solid #aeb9b3; border-radius:0; font:inherit; font-size:16px; font-weight:450; letter-spacing:0; outline:0; text-transform:none; transition:border-color .25s ease; }
.fm-careers-form textarea { min-height:120px; resize:vertical; }
.fm-careers-form input:focus,.fm-careers-form textarea:focus { border-color:var(--fm-green); }
.fm-file-field { padding:18px; background:#eef0ec; }
.fm-file-field span { display:flex; justify-content:space-between; gap:20px; }
.fm-file-field small { color:var(--fm-muted); font-size:9px; font-weight:600; }
.fm-file-field input { padding:10px 0 0; border:0; font-size:13px; }
.fm-checkbox { flex-direction:row!important; align-items:flex-start; gap:12px!important; font-size:11px!important; font-weight:500!important; letter-spacing:0!important; line-height:1.5; text-transform:none!important; }
.fm-checkbox input { width:17px; height:17px; margin:1px 0 0; flex:0 0 auto; accent-color:var(--fm-green); }
.fm-checkbox a { color:var(--fm-green)!important; }
.fm-careers-form .fm-button { align-self:flex-start; border:0; cursor:pointer; }
.fm-honeypot { position:absolute!important; left:-9999px!important; width:1px!important; height:1px!important; overflow:hidden!important; }

@media (max-width:1100px) {
  .fm-process-map-balanced { grid-template-columns:1fr 120px 1fr; }
  .fm-process-map-balanced .fm-map-items { grid-template-columns:repeat(2,1fr); }
  .fm-material-grid,.fm-sector-grid { grid-template-columns:repeat(2,1fr); }
  .fm-capabilities-head,.fm-sectors-head,.fm-lab-details-head,.fm-lab-cta .fm-shell,.fm-brochure-card { grid-template-columns:1fr; }
  .fm-lab-instruments { grid-template-columns:.8fr 1fr; }
  .fm-cert-page-grid { grid-template-columns:repeat(3,1fr); }
  .fm-careers-layout { grid-template-columns:1fr; }
  .fm-careers-copy { max-width:850px; }
}
@media (max-width:820px) {
  .fm-process-map-balanced { grid-template-columns:1fr; gap:55px; }
  .fm-process-map-balanced .fm-map-vibro,.fm-process-map-balanced .fm-map-galvanica,.fm-process-map-balanced .fm-map-sbavatura,.fm-process-map-balanced .fm-map-sabbiatura,.fm-process-map-balanced .fm-map-selection,.fm-map-shared { grid-column:1; grid-row:auto; }
  .fm-map-shared { width:min(300px,100%); min-height:150px; margin:0 auto; }
  .fm-map-shared::before,.fm-map-shared::after { display:none; }
  .fm-work-nav { top:78px; overflow-x:auto; }
  .fm-work-nav .fm-shell { width:max-content; min-width:100%; grid-template-columns:repeat(4,minmax(190px,1fr)); }
  .fm-selection-grid { grid-template-columns:1fr; }
  .fm-lab-instruments { grid-template-columns:1fr; }
  .fm-lab-instruments-media { min-height:70vw; }
  .fm-lab-instruments-copy { padding:75px var(--fm-pad); }
  .fm-cert-page-hero-inner { grid-template-columns:1fr; }
  .fm-cert-page-seal { display:none; }
  .fm-cert-page-intro-grid { grid-template-columns:1fr; }
  .fm-cert-page-grid { grid-template-columns:1fr; }
  .fm-cert-page-card { display:grid; grid-template-columns:minmax(250px,.65fr) 1fr; }
  .fm-cert-page-card > div:last-child { min-height:0; }
}
@media (max-width:600px) {
  .fm-history-editorial-copy { margin-top:60px; }
  .fm-history-editorial-copy p { font-size:18px; }
  .fm-purpose-head-stacked p,.fm-investment-head-stacked p { font-size:17px; }
  .fm-investment-grid > article { min-height:0; grid-template-rows:230px 1fr; }
  .fm-process-map-balanced .fm-map-items { grid-template-columns:repeat(2,1fr); }
  .fm-map-items > a { min-height:155px; }
  .fm-material-grid,.fm-sector-grid { grid-template-columns:1fr 1fr; }
  .fm-material-grid article,.fm-sector-grid article { min-height:215px; padding:22px; }
  .fm-sector-grid svg { margin:38px 0 25px; }
  .fm-work-nav .fm-shell { padding-right:0; padding-left:0; }
  .fm-work-nav a { min-height:60px; padding:0 18px; }
  .fm-quality-hero-inner { min-height:820px; padding-top:145px; }
  .fm-site .fm-quality-hero h1 { font-size:clamp(58px,16vw,80px); }
  .fm-lab-principles { grid-template-columns:1fr; }
  .fm-lab-principles article { min-height:260px; }
  .fm-cert-page-hero-inner { min-height:720px; padding-top:145px; }
  .fm-cert-page-hero p:not(.fm-kicker) { font-size:17px; }
  .fm-cert-page-card { display:flex; }
  .fm-field-row { grid-template-columns:1fr; }
  .fm-careers-form-wrap { padding:28px 22px; }
  .fm-file-field span { flex-direction:column; gap:7px; }
}
