/* Formazione: palette arancione, pagina catalogo e due livelli di modal. */
:root { --training-orange:#ff5a1f; --training-orange-rgb:255,90,31; --training-ink:#171717; --training-muted:#696969; --training-line:rgba(255,90,31,.16); }
.training-body { color:var(--training-ink); background:#fffaf7; }
.training-body .container { width:min(1420px,calc(100% - 48px)); }
.training-body .site-header { border-bottom-color:rgba(255,255,255,.18); background:rgba(255,90,31,.88); box-shadow:none; backdrop-filter:blur(18px) saturate(160%); -webkit-backdrop-filter:blur(18px) saturate(160%); }
.training-body .site-header .brand-logo img { filter:brightness(0) invert(1); }
.training-body .site-header .main-nav a { color:rgba(255,255,255,.9); }
.training-body .site-header .main-nav a:hover,.training-body .site-header .main-nav a.is-current { color:#fff; }
.training-body .site-header .main-nav a.is-current { color:#fff!important; font-weight:800; }
.training-body .site-header .main-nav a.is-current::after { background:#fff; }
.training-body .site-header .submenu-toggle { color:#fff; }
.training-body .site-header .submenu-toggle::before { background:rgba(255,255,255,.58); }
.training-body .site-header .nav-submenu { border-color:rgba(255,255,255,.18); background:rgba(224,70,18,.97); }
.training-body .site-header .nav-submenu a,.training-body .site-header .nav-submenu a small { color:rgba(255,255,255,.88); }
.training-body .site-header .nav-submenu a:hover,.training-body .site-header .nav-submenu a:focus-visible { color:#fff; background:rgba(255,255,255,.13); }
.training-body .site-header .header-cta { border:1px solid rgba(255,255,255,.78); color:#fff; background:transparent; box-shadow:none; }
.training-body .site-header .header-cta:hover { color:var(--training-orange); background:#fff; }

.training-page { overflow:hidden; background:radial-gradient(circle at 76% 8%,rgba(255,143,77,.15),transparent 28%),#fffdfb; }
.training-hero { position:relative; min-height:100svh; padding:150px 0 88px; }
.training-hero::after { display:none; }
.training-technical-pattern { display:none; }
.training-hero-grid { position:relative; z-index:1; display:grid; grid-template-columns:44% 56%; align-items:center; min-height:515px; }
.training-hero-copy { position:relative; z-index:2; align-self:center; padding-left:15px; }
.training-eyebrow { display:inline-flex; align-items:center; gap:12px; min-height:24px; margin:0 0 24px; padding:0; border:0; border-radius:0; color:var(--training-orange); font-size:13px; font-weight:750; letter-spacing:.08em; text-transform:uppercase; }
.training-eyebrow::before { width:30px; height:1px; background:currentColor; content:""; }
.training-hero h1 { max-width:650px; margin:0; color:#171717; font-size:clamp(62px,5.2vw,82px); font-weight:700; line-height:1.02; letter-spacing:-.052em; }
.training-hero h1 span { color:var(--training-orange); }
.training-hero h1 span { white-space:nowrap; }
.training-lead { max-width:610px; margin:30px 0 0; color:#686868; font-size:17px; line-height:1.65; }
.training-facts { display:grid; grid-template-columns:repeat(2,1fr); max-width:440px; margin-top:27px; overflow:hidden; border:1px solid rgba(17,17,17,.06); border-radius:24px; background:rgba(255,255,255,.7); box-shadow:0 18px 55px rgba(64,37,24,.045); backdrop-filter:blur(18px); }
.training-facts article { min-height:168px; padding:28px 28px 24px; }
.training-facts article+article { border-left:1px solid rgba(17,17,17,.07); }
.training-facts svg { width:32px; height:32px; margin-bottom:16px; stroke:var(--training-orange); stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.training-facts strong,.training-facts span { display:block; }
.training-facts strong { min-height:48px; color:#1f1f1f; font-size:17px; line-height:1.42; }
.training-facts span { margin-top:7px; color:#686868; font-size:17px; line-height:1.42; }

.training-hero-visual { position:absolute; z-index:0; inset:0; min-height:0; pointer-events:none; }
.training-hero-visual img { width:100%; height:100%; object-fit:cover; object-position:center; }
.training-wave-lines { position:absolute; z-index:0; top:42%; right:-5%; left:-10%; height:210px; opacity:.48; background:repeating-radial-gradient(ellipse at center,transparent 0 14px,rgba(255,90,31,.24) 15px,transparent 16px 25px); transform:rotate(-5deg) scaleY(.48); }
.training-glass-stack { position:relative; z-index:1; width:min(580px,82%); aspect-ratio:1.18; transform:translate(5%,2%); filter:drop-shadow(0 35px 45px rgba(255,92,31,.14)); }
.training-layer { position:absolute; left:50%; width:68%; height:48%; border:3px solid rgba(255,255,255,.88); border-radius:30px; background:linear-gradient(145deg,rgba(255,255,255,.82),rgba(255,111,43,.76)); box-shadow:0 22px 42px rgba(236,83,20,.19),inset 0 1px 8px rgba(255,255,255,.92); transform:translateX(-50%) rotate(30deg) skewX(-2deg); }
.training-layer-4 { top:43%; background:linear-gradient(145deg,rgba(255,185,145,.74),rgba(255,82,14,.93)); }
.training-layer-3 { top:31%; background:linear-gradient(145deg,rgba(255,214,190,.78),rgba(255,90,20,.88)); }
.training-layer-2 { top:19%; background:linear-gradient(145deg,rgba(255,233,219,.86),rgba(255,105,40,.84)); }
.training-layer-1 { top:7%; background:linear-gradient(145deg,rgba(255,255,255,.92),rgba(255,140,83,.78)); }
.training-cap-symbol { position:absolute; z-index:5; top:18%; left:50%; display:grid; place-items:center; width:132px; height:110px; color:#fff; filter:drop-shadow(0 10px 9px rgba(255,70,10,.4)); transform:translateX(-50%); }
.training-cap-symbol svg { width:100%; height:100%; fill:rgba(255,255,255,.1); stroke:currentColor; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; }

.training-categories { position:relative; padding:20px 0 70px; }
.training-categories h2,.training-catalogue-head h2 { margin:0; color:#1b1b1b; font-size:34px; line-height:1.15; letter-spacing:-.035em; text-align:center; }
.training-categories h2 span,.training-catalogue-head h2 span { color:var(--training-orange); }
.training-category-shell { position:relative; margin-top:32px; padding:0; }
.training-category-grid { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:16px; }
.training-category-card { position:relative; display:flex; flex-direction:column; align-items:flex-start; min-height:270px; overflow:hidden; padding:30px 26px 24px; border:1px solid rgba(255,90,31,.14); border-radius:24px; color:#111; text-align:left; background:linear-gradient(180deg,rgba(255,255,255,.82),rgba(255,255,255,.62)); box-shadow:0 20px 70px rgba(17,17,17,.06),inset 0 1px 0 rgba(255,255,255,.9); cursor:pointer; backdrop-filter:blur(22px) saturate(145%); -webkit-backdrop-filter:blur(22px) saturate(145%); transition:border-color .4s cubic-bezier(.22,.61,.36,1),box-shadow .4s cubic-bezier(.22,.61,.36,1),transform .4s cubic-bezier(.22,.61,.36,1); }
.training-category-card::after { position:absolute; right:12%; bottom:0; left:12%; height:3px; background:linear-gradient(90deg,transparent,#ff5a1f,transparent); content:""; opacity:.35; transition:right .4s cubic-bezier(.22,.61,.36,1),left .4s cubic-bezier(.22,.61,.36,1),opacity .4s cubic-bezier(.22,.61,.36,1),box-shadow .4s cubic-bezier(.22,.61,.36,1); }
.training-category-card svg { width:42px; height:42px; margin-bottom:28px; stroke:var(--training-orange); stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; }
.training-category-card strong { max-width:190px; font-size:17px; line-height:1.45; text-transform:uppercase; }
.training-category-card span { margin-top:auto; color:#686868; font-size:12px; text-transform:uppercase; }
.training-category-card:hover { border-color:rgba(255,90,31,.28); box-shadow:0 28px 76px rgba(17,17,17,.07),0 16px 42px rgba(255,90,31,.10),inset 0 1px 0 rgba(255,255,255,.95); transform:translateY(-6px); }
.training-category-card:hover::after { right:0; left:0; opacity:1; box-shadow:0 -5px 20px rgba(255,90,31,.22); }
.training-category-card:hover svg { filter:drop-shadow(0 5px 12px rgba(255,90,31,.22)); }
.training-category-card:focus-visible { outline:3px solid rgba(255,90,31,.28); outline-offset:4px; }
.training-carousel-arrow { position:absolute; z-index:2; top:50%; display:grid; place-items:center; width:50px; height:50px; border:1px solid rgba(17,17,17,.06); border-radius:50%; color:var(--training-orange); background:#fff; box-shadow:0 10px 25px rgba(0,0,0,.04); transform:translateY(-50%); }
.training-carousel-arrow.is-prev { left:-8px; }.training-carousel-arrow.is-next { right:-8px; }
.training-all-courses,.training-view-all { display:flex; align-items:center; justify-content:center; gap:28px; min-height:48px; margin:18px auto 0; padding:0 22px; border:1px solid rgba(var(--training-orange-rgb),.18); border-radius:14px; color:var(--training-orange); background:rgba(255,255,255,.78); font-weight:600; }
.training-download-brochure { display:flex; align-items:center; justify-content:center; gap:18px; width:max-content; min-height:52px; margin:22px auto 0; padding:0 24px; border:1px solid rgba(255,90,31,.32); border-radius:16px; color:#fff; background:#ff5a1f; box-shadow:0 14px 32px rgba(255,90,31,.14); font-size:14px; font-weight:700; transition:background .28s ease-out,box-shadow .28s ease-out,transform .28s ease-out; }
.training-download-brochure span { font-size:19px; transition:transform .28s ease-out; }.training-download-brochure:hover { color:#fff; background:#e94b14; box-shadow:0 18px 38px rgba(255,90,31,.2); transform:translateY(-2px); }.training-download-brochure:hover span { transform:translateY(3px); }

.training-catalogue { padding:0 0 34px; }
.training-catalogue-panel { padding:35px 42px 20px; border:1px solid rgba(17,17,17,.07); border-radius:26px; background:rgba(255,255,255,.72); box-shadow:0 20px 58px rgba(56,35,24,.035); }
.training-catalogue-head { display:flex; align-items:center; justify-content:space-between; gap:25px; margin-bottom:20px; }
.training-catalogue-head h2 { text-align:left; }
.training-catalogue-controls { display:flex; align-items:center; gap:7px; }
.training-catalogue-controls button { min-width:47px; min-height:47px; padding:0 16px; border:1px solid rgba(17,17,17,.06); border-radius:12px; color:#676767; background:#fff; }
.training-catalogue-controls button:first-child { min-width:180px; display:flex; align-items:center; justify-content:space-between; }
.training-catalogue-controls button.is-active { color:var(--training-orange); }
.training-course-list { display:grid; gap:5px; }
.training-course-row { display:grid; grid-template-columns:68px minmax(300px,1fr) 55px 140px 250px 50px; align-items:center; min-height:45px; overflow:hidden; border:1px solid rgba(var(--training-orange-rgb),.12); border-radius:23px; color:#595959; background:rgba(255,255,255,.68); font-size:12px; }
.training-course-code { justify-self:center; min-width:49px; padding:6px 8px; border:1px solid rgba(var(--training-orange-rgb),.2); border-radius:12px; color:var(--training-orange); text-align:center; font-weight:700; }
.training-course-row h3 { margin:0; color:#3e3e3e; font-size:12px; font-weight:500; line-height:1.35; }
.training-course-icon { display:grid; place-items:center; align-self:stretch; border-left:1px solid rgba(17,17,17,.055); }
.training-course-icon svg { width:19px; height:19px; stroke:var(--training-orange); stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.training-course-meta { display:flex; align-items:center; gap:9px; align-self:stretch; padding:0 15px; border-left:1px solid rgba(17,17,17,.055); }
.training-course-meta svg { width:18px; height:18px; stroke:#777; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; }
.training-course-row>button { display:grid; place-items:center; width:40px; height:40px; border:0; border-left:1px solid rgba(var(--training-orange-rgb),.1); border-radius:50%; color:var(--training-orange); background:#fff; }
.training-view-all { margin-top:17px; min-width:230px; }

.training-extras { padding:0 0 36px; }
.training-extras-grid { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.training-extras article { position:relative; display:grid; grid-template-columns:150px 1fr; align-items:center; min-height:170px; overflow:hidden; padding:20px 34px 20px 30px; border:1px solid rgba(var(--training-orange-rgb),.2); border-radius:25px; background:linear-gradient(120deg,rgba(255,255,255,.82),rgba(255,248,243,.78)); }
.training-extras article::after { position:absolute; right:-20px; bottom:-80px; width:240px; height:180px; border-radius:50%; background:repeating-radial-gradient(ellipse,transparent 0 10px,rgba(255,90,31,.1) 11px,transparent 12px 19px); content:""; opacity:.6; }
.training-extra-icon { display:grid; place-items:center; width:112px; height:112px; border-radius:23px; background:rgba(255,255,255,.72); box-shadow:0 16px 40px rgba(75,42,25,.035); }
.training-extra-icon svg { width:58px; height:58px; stroke:var(--training-orange); stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; }
.training-extras article>div:last-child { position:relative; z-index:1; }
.training-extras h2 { margin:0; font-size:19px; }.training-extras p { max-width:420px; margin:10px 0 14px; color:#777; font-size:13px; line-height:1.5; }.training-extras a { color:var(--training-orange); font-size:12px; font-weight:600; }
.training-extras-grid.is-single { grid-template-columns:1fr; }.training-extras-grid.is-single article { grid-template-columns:120px minmax(0,1fr); }

.training-custom-course { padding:0 0 22px; }
.training-custom-course-panel { position:relative; display:grid; grid-template-columns:110px minmax(0,1fr) auto; align-items:center; gap:30px; min-height:230px; overflow:hidden; padding:38px 46px; border:1px solid rgba(255,90,31,.16); border-radius:28px; background:linear-gradient(120deg,rgba(255,255,255,.84),rgba(255,245,239,.76)); box-shadow:0 22px 64px rgba(82,42,20,.05),inset 0 1px 0 rgba(255,255,255,.95); }
.training-custom-course-panel::after { position:absolute; right:-70px; bottom:-140px; width:430px; height:300px; border-radius:50%; background:repeating-radial-gradient(ellipse,transparent 0 11px,rgba(255,90,31,.08) 12px,transparent 13px 22px); content:""; opacity:.7; pointer-events:none; }
.training-custom-course-icon { position:relative; z-index:1; display:grid; place-items:center; width:96px; height:96px; border:1px solid rgba(255,90,31,.13); border-radius:25px; color:#ff5a1f; background:rgba(255,255,255,.7); box-shadow:0 16px 38px rgba(255,90,31,.08); }.training-custom-course-icon svg { width:54px; height:54px; stroke:currentColor; stroke-width:1.55; stroke-linecap:round; stroke-linejoin:round; }
.training-custom-course-copy { position:relative; z-index:1; }.training-custom-course-copy>p:first-child { margin:0 0 9px; color:#ff5a1f; font-size:11px; font-weight:750; letter-spacing:.08em; text-transform:uppercase; }.training-custom-course-copy h2 { max-width:720px; margin:0; color:#161616; font-size:clamp(30px,3vw,44px); line-height:1.02; letter-spacing:-.04em; }.training-custom-course-copy h2 span { color:#ff5a1f; }.training-custom-course-copy>p:last-child { max-width:760px; margin:17px 0 0; color:#666; font-size:15px; line-height:1.6; }
.training-custom-course-cta { position:relative; z-index:1; display:inline-flex; align-items:center; justify-content:center; gap:18px; min-height:56px; padding:0 24px; border:1px solid rgba(255,90,31,.32); border-radius:17px; color:#ff5a1f; background:rgba(255,255,255,.72); font-size:13px; font-weight:700; white-space:nowrap; transition:color .28s ease-out,background .28s ease-out,box-shadow .28s ease-out,transform .28s ease-out; }.training-custom-course-cta:hover { color:#fff; background:#ff5a1f; box-shadow:0 14px 32px rgba(255,90,31,.15); transform:translateY(-2px); }.training-custom-course-cta span { transition:transform .28s ease-out; }.training-custom-course-cta:hover span { transform:translateX(4px); }

body.training-topic-open { overflow:hidden; }
.training-topic-layer { position:fixed; z-index:180; inset:0; display:grid; place-items:center; padding:32px; opacity:0; visibility:hidden; pointer-events:none; transition:opacity .4s cubic-bezier(.22,.61,.36,1),visibility .4s cubic-bezier(.22,.61,.36,1); }
.training-topic-layer.is-open { opacity:1!important; visibility:visible!important; pointer-events:auto!important; }
.training-topic-backdrop { position:absolute; inset:0; width:100%; height:100%; border:0; background:rgba(27,15,9,.24); cursor:default; backdrop-filter:blur(11px); -webkit-backdrop-filter:blur(11px); }
.training-topic-modal { position:relative; display:flex; flex-direction:column; width:min(1180px,calc(100vw - 64px)); max-height:min(880px,calc(100svh - 64px)); overflow:hidden; border:1px solid rgba(255,255,255,.72); border-radius:30px; background:rgba(255,255,255,.84); box-shadow:0 28px 90px rgba(45,22,11,.14),inset 0 1px 0 rgba(255,255,255,.95); opacity:0; transform:translateY(18px) scale(.985); backdrop-filter:blur(28px) saturate(145%); -webkit-backdrop-filter:blur(28px) saturate(145%); transition:opacity .4s cubic-bezier(.22,.61,.36,1),transform .4s cubic-bezier(.22,.61,.36,1); }
.training-topic-layer.is-open .training-topic-modal { opacity:1; transform:none; }
.training-topic-modal:focus { outline:none; }
.training-topic-header { flex:0 0 78px; display:grid; grid-template-columns:46px 1fr; align-items:center; gap:16px; padding:0 30px; border-bottom:1px solid rgba(17,17,17,.06); background:rgba(255,255,255,.68); }
.training-topic-close { width:16px; height:16px; padding:0; border:1px solid rgba(134,30,18,.22); border-radius:50%; background:#ff5f57; box-shadow:inset 0 -1px 1px rgba(0,0,0,.12); cursor:pointer; }
.training-topic-close:focus-visible { outline:3px solid rgba(255,90,31,.26); outline-offset:5px; }
.training-topic-heading { min-width:0; }
.training-topic-breadcrumb { display:flex; align-items:center; gap:10px; min-width:0; font-size:15px; white-space:nowrap; }
.training-topic-breadcrumb span { color:#7a7a7a; font-weight:500; }.training-topic-breadcrumb i { color:#bbb; font-style:normal; }.training-topic-breadcrumb strong { overflow:hidden; color:#171717; font-weight:650; text-overflow:ellipsis; }
.training-topic-count { display:block; margin-top:5px; color:#8a8a8a; font-size:13px; font-weight:500; }
.training-topic-content { min-height:0; overflow:auto; padding:28px 34px 30px; transition:opacity .18s cubic-bezier(.22,.61,.36,1),transform .18s cubic-bezier(.22,.61,.36,1); }
.training-topic-content.is-leaving-next { opacity:0; transform:translateX(-20px); }.training-topic-content.is-leaving-prev { opacity:0; transform:translateX(20px); }.training-topic-content.is-entering-next { opacity:0; transform:translateX(20px); }.training-topic-content.is-entering-prev { opacity:0; transform:translateX(-20px); }
.training-topic-hero { display:grid; grid-template-columns:1.15fr .85fr; min-height:285px; overflow:hidden; border:1px solid rgba(255,90,31,.12); border-radius:26px; background:linear-gradient(130deg,rgba(255,255,255,.82),rgba(255,246,240,.7)); box-shadow:0 18px 55px rgba(17,17,17,.04),inset 0 1px 0 rgba(255,255,255,.95); }
.training-topic-intro { display:flex; flex-direction:column; align-items:flex-start; justify-content:center; padding:38px 44px; }
.training-topic-icon { display:grid; place-items:center; width:56px; height:56px; margin-bottom:20px; border:1px solid rgba(255,90,31,.18); border-radius:17px; color:#ff5a1f; background:rgba(255,255,255,.7); box-shadow:0 14px 35px rgba(255,90,31,.08); }
.training-topic-icon svg { width:31px; height:31px; fill:none; stroke:currentColor; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; }
.training-topic-intro h2 { max-width:680px; margin:0; color:#121212; font-size:clamp(36px,3.4vw,54px); font-weight:720; line-height:1.02; letter-spacing:-.048em; }
.training-topic-intro p { max-width:650px; margin:18px 0 0; color:#555; font-size:16px; line-height:1.65; }
.training-topic-badge { display:inline-flex; align-items:center; min-height:32px; margin-top:20px; padding:0 13px; border:1px solid rgba(255,90,31,.18); border-radius:999px; color:#e94910; background:rgba(255,255,255,.66); font-size:12px; font-weight:700; }
.training-topic-visual { position:relative; display:grid; place-items:center; overflow:hidden; background:radial-gradient(circle at center,rgba(255,90,31,.2),rgba(255,122,50,.06) 38%,transparent 68%); }
.training-topic-visual::before { position:absolute; inset:0; background-image:radial-gradient(circle,rgba(255,90,31,.18) 1px,transparent 1px); background-size:18px 18px; content:""; opacity:.35; mask-image:radial-gradient(circle,#000,transparent 72%); }
.training-topic-orbit { position:relative; display:grid; place-items:center; width:210px; height:210px; border:1px solid rgba(255,90,31,.14); border-radius:50%; background:rgba(255,255,255,.32); box-shadow:0 22px 60px rgba(255,90,31,.12),inset 0 1px 0 rgba(255,255,255,.8); }
.training-topic-orbit>i { position:absolute; inset:17px; border:1px solid rgba(255,90,31,.13); border-radius:50%; }.training-topic-orbit>i:nth-child(2) { inset:38px; }.training-topic-orbit>i:nth-child(3) { inset:61px; background:rgba(255,90,31,.07); }
.training-topic-orbit>span { position:relative; z-index:2; color:#ff5a1f; }.training-topic-orbit svg { width:68px; height:68px; fill:none; stroke:currentColor; stroke-width:1.35; stroke-linecap:round; stroke-linejoin:round; }
.training-topic-courses { margin-top:22px; padding:24px; border:1px solid rgba(255,90,31,.1); border-radius:24px; background:rgba(255,255,255,.7); box-shadow:0 16px 50px rgba(17,17,17,.035); }
.training-topic-section-head { display:flex; align-items:flex-end; justify-content:space-between; gap:24px; margin-bottom:16px; }.training-topic-section-head p { margin:0 0 4px; color:#ff5a1f; font-size:11px; font-weight:750; letter-spacing:.08em; text-transform:uppercase; }.training-topic-section-head h3 { margin:0; font-size:24px; letter-spacing:-.025em; }.training-topic-section-head>span { color:#777; font-size:12px; }
.training-topic-course-list { display:grid; gap:9px; }
.training-topic-course-card { display:grid; grid-template-columns:58px minmax(0,1fr) 44px; align-items:center; min-height:72px; overflow:hidden; border:1px solid rgba(255,90,31,.11); border-radius:18px; background:rgba(255,255,255,.7); }
.training-topic-course-card.is-placeholder { opacity:.64; }
.training-topic-course-code { justify-self:center; min-width:38px; padding:6px; border:1px solid rgba(255,90,31,.18); border-radius:10px; color:#ff5a1f; text-align:center; font-size:12px; font-weight:700; }
.training-topic-course-copy { min-width:0; padding:12px 18px; border-left:1px solid rgba(17,17,17,.05); }.training-topic-course-copy h4 { margin:0; color:#252525; font-size:14px; font-weight:650; }.training-topic-course-meta { display:flex; flex-wrap:wrap; gap:7px 16px; margin-top:8px; color:#858585; font-size:10px; }.training-topic-course-meta span::before { margin-right:5px; color:#ff5a1f; content:"•"; }
.training-topic-course-card>button { align-self:stretch; width:44px; border:0; border-left:1px solid rgba(17,17,17,.05); color:#ff5a1f; background:transparent; }
.training-topic-footer { flex:0 0 76px; display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:18px; padding:0 32px; border-top:1px solid rgba(0,0,0,.06); background:#fff; }
.training-topic-nav { display:inline-flex; align-items:center; gap:10px; min-height:44px; padding:0; border:0; color:#333; background:transparent; font:inherit; font-size:15px; font-weight:650; cursor:pointer; transition:color .3s cubic-bezier(.22,.61,.36,1); }.training-topic-next { justify-self:end; text-align:right; }.training-topic-nav:disabled { opacity:.26; cursor:default; }.training-topic-nav:not(:disabled):hover { color:#ff5a1f; }.training-topic-nav:focus-visible { border-radius:8px; outline:3px solid rgba(255,90,31,.25); outline-offset:4px; }
.training-topic-position { display:grid; justify-items:center; gap:8px; color:#777; font-size:13px; line-height:1; }.training-topic-position>div { display:flex; gap:8px; }.training-topic-position i { width:7px; height:7px; border-radius:50%; background:#eadfd9; }.training-topic-position i.is-active { background:#ff5a1f; transform:scale(1.18); }

/* Modal tematica: proporzioni derivate dal mockup ufficiale. */
.training-topic-layer { padding:30px; }
.training-topic-modal { width:min(1480px,calc(100vw - 60px)); height:calc(100svh - 60px); max-height:none; }
.training-topic-header { flex-basis:48px; grid-template-columns:22px 1fr; padding:0 22px; }
.training-topic-heading { display:none; }
.training-topic-content { display:grid; grid-template-rows:minmax(190px,32%) minmax(250px,1fr) 92px; gap:10px; overflow:hidden; padding:0 22px 14px; }
.training-topic-hero { grid-template-columns:48% 52%; min-height:0; }
.training-topic-intro { display:grid; grid-template-columns:92px minmax(0,1fr); grid-template-rows:auto auto 1fr auto; align-content:center; column-gap:28px; padding:28px 34px; }
.training-topic-icon { grid-row:1/5; align-self:start; width:84px; height:84px; margin:0; border-radius:20px; }
.training-topic-icon svg { width:48px; height:48px; }
.training-topic-area-badge { grid-column:2; justify-self:start; display:inline-flex; align-items:center; min-height:30px; margin-bottom:12px; padding:0 15px; border:1px solid rgba(255,90,31,.25); border-radius:999px; color:#f04b11; background:rgba(255,255,255,.68); font-size:11px; font-weight:700; letter-spacing:.035em; text-transform:uppercase; }
.training-topic-intro h2 { grid-column:2; max-width:720px; font-size:clamp(34px,3vw,52px); }
.training-topic-intro h2::after { display:block; width:34px; height:2px; margin-top:14px; background:#ff5a1f; content:""; }
.training-topic-intro p { grid-column:2; align-self:center; max-width:650px; margin:12px 0; font-size:14px; line-height:1.58; }
.training-topic-badge { grid-column:2; min-height:34px; margin:0; padding:0 14px; }
.training-topic-visual { min-height:0; }
.training-topic-visual img { position:relative; z-index:2; display:block; width:min(76%,430px); height:min(86%,300px); object-fit:contain; object-position:center; filter:drop-shadow(0 18px 28px rgba(255,90,31,.10)); }
.training-topic-scene { position:relative; display:grid; place-items:center; width:100%; height:100%; min-height:190px; perspective:900px; }
.training-topic-scene-grid { position:absolute; inset:0; opacity:.42; background-image:radial-gradient(circle,rgba(255,90,31,.28) 0 1px,transparent 1.3px); background-size:16px 16px; mask-image:radial-gradient(ellipse at center,#000 22%,transparent 75%); }
.training-topic-scene-lines { position:absolute; right:-8%; bottom:-35%; left:-12%; height:64%; opacity:.42; background:repeating-radial-gradient(ellipse at center,transparent 0 9px,rgba(255,90,31,.25) 10px,transparent 11px 18px); transform:rotate(-4deg) scaleY(.45); }
.training-topic-scene-stack { position:relative; width:250px; height:166px; transform:rotateX(58deg) rotateZ(45deg); transform-style:preserve-3d; }
.training-topic-scene-stack>i { position:absolute; inset:0; border:2px solid rgba(255,255,255,.92); border-radius:28px; background:linear-gradient(145deg,rgba(255,255,255,.86),rgba(255,98,22,.64)); box-shadow:0 24px 42px rgba(255,90,31,.2),inset 0 1px 5px rgba(255,255,255,.95); }
.training-topic-scene-stack>i:nth-child(1) { transform:translateZ(-58px); opacity:.72; }.training-topic-scene-stack>i:nth-child(2) { transform:translateZ(-29px); opacity:.84; }.training-topic-scene-stack>i:nth-child(3) { transform:translateZ(0); }
.training-topic-scene-stack>span { position:absolute; z-index:4; top:50%; left:50%; display:grid; place-items:center; width:88px; height:88px; border:2px solid rgba(255,255,255,.92); border-radius:25px; color:#ff5a1f; background:rgba(255,255,255,.76); box-shadow:0 16px 36px rgba(255,90,31,.24); transform:translate(-50%,-50%) translateZ(28px) rotateZ(-45deg); }
.training-topic-scene-stack svg { width:54px; height:54px; fill:none; stroke:currentColor; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; }
.training-topic-scene-nodes { position:absolute; inset:0; pointer-events:none; }.training-topic-scene-nodes i { position:absolute; width:8px; height:8px; border:1px solid rgba(255,90,31,.35); border-radius:50%; background:#fff; box-shadow:0 0 18px rgba(255,90,31,.35); }.training-topic-scene-nodes i:nth-child(1){top:22%;left:20%}.training-topic-scene-nodes i:nth-child(2){top:16%;right:18%}.training-topic-scene-nodes i:nth-child(3){right:12%;bottom:20%}.training-topic-scene-nodes i:nth-child(4){bottom:15%;left:24%}
.training-topic-modal[data-topic="sicurezza-funzionale"] .training-topic-scene-stack { width:220px; height:220px; transform:rotateX(58deg) rotateZ(45deg); }.training-topic-modal[data-topic="sicurezza-funzionale"] .training-topic-scene-stack>i { border-radius:34px; background:linear-gradient(145deg,rgba(255,255,255,.9),rgba(255,120,45,.52)); }.training-topic-modal[data-topic="sicurezza-funzionale"] .training-topic-scene-lines { background:repeating-linear-gradient(90deg,transparent 0 24px,rgba(255,90,31,.2) 25px 26px,transparent 27px 48px); transform:rotate(-8deg); }
.training-topic-modal[data-topic="normativa-america-e-canada"] .training-topic-scene-stack { width:210px; height:210px; border-radius:50%; transform:none; }.training-topic-modal[data-topic="normativa-america-e-canada"] .training-topic-scene-stack>i { border-radius:50%; background:radial-gradient(circle at 35% 28%,rgba(255,255,255,.96),rgba(255,103,28,.48)); }.training-topic-modal[data-topic="normativa-america-e-canada"] .training-topic-scene-stack>i:nth-child(1){transform:scale(1.24)}.training-topic-modal[data-topic="normativa-america-e-canada"] .training-topic-scene-stack>i:nth-child(2){transform:scale(1.12)}.training-topic-modal[data-topic="normativa-america-e-canada"] .training-topic-scene-stack>span { border-radius:50%; transform:translate(-50%,-50%); }
.training-topic-modal[data-topic="robot-e-cobot"] .training-topic-scene-stack { width:190px; height:230px; transform:rotateX(12deg) rotateY(-18deg); }.training-topic-modal[data-topic="robot-e-cobot"] .training-topic-scene-stack>i { border-radius:80px 80px 30px 30px; }.training-topic-modal[data-topic="robot-e-cobot"] .training-topic-scene-stack>span { top:38%; transform:translate(-50%,-50%); }
.training-topic-modal[data-topic="atmosfere-potenzialmente-esplosive"] .training-topic-scene-stack { width:230px; height:205px; transform:rotateX(48deg) rotateZ(30deg); }.training-topic-modal[data-topic="atmosfere-potenzialmente-esplosive"] .training-topic-scene-stack>i { border-radius:0; clip-path:polygon(25% 6%,75% 6%,100% 50%,75% 94%,25% 94%,0 50%); background:linear-gradient(145deg,rgba(255,255,255,.88),rgba(255,75,10,.62)); }.training-topic-modal[data-topic="atmosfere-potenzialmente-esplosive"] .training-topic-scene-nodes i { width:13px; height:13px; border-radius:3px; transform:rotate(45deg); }
.training-topic-modal[data-topic="altre-proposte"] .training-topic-scene-stack { width:230px; height:200px; transform:rotateX(52deg) rotateZ(18deg); }.training-topic-modal[data-topic="altre-proposte"] .training-topic-scene-stack>i { border-radius:42px 18px 42px 18px; }.training-topic-modal[data-topic="altre-proposte"] .training-topic-scene-stack>span { border-radius:50%; transform:translate(-50%,-50%) translateZ(28px) rotateZ(-18deg); }
.training-topic-courses { display:flex; flex-direction:column; min-height:0; margin:0; padding:12px 18px 14px; border-radius:20px; }
.training-topic-section-head { flex:0 0 38px; align-items:center; margin:0 4px 6px; }.training-topic-section-head p { display:none; }.training-topic-section-head h3 { font-size:18px; }.training-topic-section-head>span { font-size:11px; }
.training-topic-course-list { flex:1; display:grid; grid-template-rows:repeat(var(--course-count,5),minmax(0,1fr)); gap:5px; min-height:0; }
.training-topic-course-card { grid-template-columns:78px minmax(0,1fr) 112px 145px 48px; min-height:0; border-radius:15px; }
.training-topic-course-code { min-width:48px; padding:5px; }
.training-topic-course-copy { padding:5px 14px; }.training-topic-course-copy h4 { font-size:12px; line-height:1.25; }.training-topic-course-copy p { overflow:hidden; margin:3px 0 0; color:#777; font-size:9px; line-height:1.25; text-overflow:ellipsis; white-space:nowrap; }
.training-topic-course-meta { display:flex; align-items:center; align-self:stretch; margin:0; padding:0 12px; border-left:1px solid rgba(17,17,17,.055); color:#555; font-size:10px; }.training-topic-course-meta::before { margin-right:7px; color:#ff5a1f; content:"◷"; }.training-topic-course-mode::before { content:"◎"; }
.training-topic-course-card>button { align-self:center; justify-self:center; display:grid; place-items:center; width:34px; height:34px; border:1px solid rgba(255,90,31,.14); border-radius:50%; color:#ff5a1f; background:rgba(255,255,255,.78); box-shadow:0 8px 20px rgba(17,17,17,.05); cursor:pointer; font-size:20px; transition:box-shadow .3s cubic-bezier(.22,.61,.36,1),transform .3s cubic-bezier(.22,.61,.36,1); }.training-topic-course-card>button:hover { box-shadow:0 10px 24px rgba(255,90,31,.18); transform:translateY(-2px); }
.training-topic-standards { display:grid; grid-template-columns:1.1fr 2.2fr; align-items:center; gap:18px; min-height:0; padding:10px 18px; border:1px solid rgba(255,90,31,.13); border-radius:18px; background:linear-gradient(110deg,rgba(255,247,242,.82),rgba(255,255,255,.72)); }
.training-topic-standards-intro { display:grid; grid-template-columns:50px 1fr; align-items:center; gap:13px; }.training-topic-standards-intro>span { display:grid; place-items:center; width:50px; height:50px; border-radius:14px; color:#ff5a1f; background:rgba(255,255,255,.7); box-shadow:0 10px 26px rgba(255,90,31,.08); font-size:26px; }.training-topic-standards h3 { margin:0; font-size:13px; }.training-topic-standards p { margin:5px 0 0; color:#666; font-size:9px; line-height:1.35; }
.training-topic-standard-list { display:grid; grid-template-columns:repeat(4,1fr); gap:10px; }.training-topic-standard-list>span { position:relative; display:grid; min-height:54px; padding:9px 10px 8px 20px; border:1px solid rgba(17,17,17,.06); border-radius:12px; background:rgba(255,255,255,.75); }.training-topic-standard-list i { position:absolute; top:13px; left:9px; width:5px; height:5px; border-radius:50%; background:#ff5a1f; }.training-topic-standard-list strong { font-size:9px; }.training-topic-standard-list small { margin-top:3px; color:#777; font-size:8px; }
.training-topic-footer { flex-basis:60px; }
.training-topic-modal.is-dense-topic .training-topic-content { grid-template-rows:minmax(160px,26%) minmax(285px,1fr) 72px; }
.training-topic-modal.is-dense-topic .training-topic-intro { padding-block:14px; }.training-topic-modal.is-dense-topic .training-topic-icon { width:68px; height:68px; }.training-topic-modal.is-dense-topic .training-topic-icon svg { width:39px; height:39px; }.training-topic-modal.is-dense-topic .training-topic-area-badge { min-height:24px; margin-bottom:5px; font-size:9px; }.training-topic-modal.is-dense-topic .training-topic-intro h2 { font-size:30px; }.training-topic-modal.is-dense-topic .training-topic-intro h2::after { margin-top:6px; }.training-topic-modal.is-dense-topic .training-topic-intro p { margin:5px 0; font-size:10px; }.training-topic-modal.is-dense-topic .training-topic-badge { min-height:25px; font-size:9px; }.training-topic-modal.is-dense-topic .training-topic-visual img { max-height:190px; }
.training-topic-modal.is-dense-topic .training-topic-section-head { flex-basis:30px; }.training-topic-modal.is-dense-topic .training-topic-course-list { gap:3px; }.training-topic-modal.is-dense-topic .training-topic-course-copy p { display:none; }.training-topic-modal.is-dense-topic .training-topic-course-copy h4 { overflow:hidden; font-size:10px; text-overflow:ellipsis; white-space:nowrap; }.training-topic-modal.is-dense-topic .training-topic-course-card>button { width:28px; height:28px; font-size:16px; }.training-topic-modal.is-dense-topic .training-topic-course-code { min-width:42px; padding:3px; font-size:10px; }
.training-topic-standard-list.has-few-items { grid-template-columns:repeat(auto-fit,minmax(145px,1fr)); }

/* Rifinitura: hero compatta, righe stile Apple e scroll limitato all'elenco corsi. */
.training-topic-modal { display:grid; grid-template-rows:48px minmax(0,1fr) 58px; }
.training-topic-header { width:100%; height:48px; min-height:48px; }
.training-topic-content,.training-topic-modal.is-dense-topic .training-topic-content { grid-template-rows:205px minmax(0,1fr) 82px; gap:10px; min-height:0; padding-inline:22px; }
.training-topic-hero { height:205px; min-height:205px; max-height:205px; }
.training-topic-intro,.training-topic-modal.is-dense-topic .training-topic-intro { grid-template-rows:auto auto 1fr; padding:20px 28px; }
.training-topic-icon,.training-topic-modal.is-dense-topic .training-topic-icon { grid-row:1/4; width:68px; height:68px; }
.training-topic-icon svg,.training-topic-modal.is-dense-topic .training-topic-icon svg { width:39px; height:39px; }
.training-topic-area-badge,.training-topic-modal.is-dense-topic .training-topic-area-badge { min-height:25px; margin-bottom:6px; font-size:9px; }
.training-topic-intro h2,.training-topic-modal.is-dense-topic .training-topic-intro h2 { font-size:clamp(28px,2.5vw,42px); }
.training-topic-intro h2::after,.training-topic-modal.is-dense-topic .training-topic-intro h2::after { margin-top:7px; }
.training-topic-intro p,.training-topic-modal.is-dense-topic .training-topic-intro p { align-self:start; margin:7px 0 0; font-size:11px; line-height:1.5; }
.training-topic-visual img,.training-topic-modal.is-dense-topic .training-topic-visual img { width:min(66%,330px); height:min(82%,215px); max-height:215px; filter:drop-shadow(0 14px 24px rgba(255,90,31,.08)); }
.training-topic-courses { height:100%; min-height:0; padding:12px 16px 14px; }
.training-topic-section-head,.training-topic-modal.is-dense-topic .training-topic-section-head { flex:0 0 40px; margin:0 4px 5px; }
.training-topic-course-list,.training-topic-modal.is-dense-topic .training-topic-course-list { display:grid; grid-template-rows:unset; grid-auto-rows:60px; gap:0; min-height:0; overflow-y:auto; padding-right:4px; scrollbar-color:rgba(255,90,31,.22) transparent; scrollbar-width:thin; overscroll-behavior:contain; }
.training-topic-course-list::-webkit-scrollbar { width:5px; }.training-topic-course-list::-webkit-scrollbar-track { background:transparent; }.training-topic-course-list::-webkit-scrollbar-thumb { border-radius:999px; background:rgba(255,90,31,.18); }.training-topic-course-list:hover::-webkit-scrollbar-thumb { background:rgba(255,90,31,.3); }
.training-topic-course-card,.training-topic-modal.is-dense-topic .training-topic-course-card { grid-template-columns:76px minmax(0,1fr) 138px 192px 52px; min-height:60px; border:0; border-bottom:1px solid rgba(17,17,17,.055); border-radius:0; background:rgba(255,255,255,.58); opacity:0; transform:translateY(6px); animation:training-row-enter .3s cubic-bezier(.22,.61,.36,1) var(--row-delay,0ms) forwards; transition:background .25s ease-out; }
.training-topic-course-card:first-child { border-radius:14px 14px 0 0; }.training-topic-course-card:last-child { border-bottom:0; border-radius:0 0 14px 14px; }.training-topic-course-card:only-child { border-radius:14px; }
.training-topic-course-card:hover { background:rgba(255,244,238,.78); }
.training-topic-course-code,.training-topic-modal.is-dense-topic .training-topic-course-code { min-width:48px; padding:5px; font-size:11px; }
.training-topic-course-copy { padding:7px 14px; }.training-topic-course-copy h4,.training-topic-modal.is-dense-topic .training-topic-course-copy h4 { overflow:hidden; font-size:12px; line-height:1.25; text-overflow:ellipsis; white-space:nowrap; }.training-topic-course-copy p,.training-topic-modal.is-dense-topic .training-topic-course-copy p { display:block; overflow:hidden; margin-top:3px; font-size:9px; text-overflow:ellipsis; white-space:nowrap; }
.training-topic-course-card>button,.training-topic-modal.is-dense-topic .training-topic-course-card>button { width:44px; height:44px; font-size:20px; box-shadow:0 6px 16px rgba(17,17,17,.04); transition:border-color .3s cubic-bezier(.22,.61,.36,1),box-shadow .3s cubic-bezier(.22,.61,.36,1),transform .3s cubic-bezier(.22,.61,.36,1); }
.training-topic-course-card>button:hover,.training-topic-modal.is-dense-topic .training-topic-course-card>button:hover { border-color:rgba(255,90,31,.28); box-shadow:0 9px 22px rgba(255,90,31,.13); transform:rotate(45deg); }
.training-topic-course-meta { gap:9px; white-space:nowrap; }
.training-topic-course-meta::before { flex:0 0 auto; display:inline-block; margin:0; }
.training-topic-course-duration::before { width:19px; height:19px; border:1.6px solid #ff5a1f; border-radius:50%; background:linear-gradient(#ff5a1f,#ff5a1f) 50% 29%/1.5px 6px no-repeat,linear-gradient(42deg,transparent 45%,#ff5a1f 47% 57%,transparent 59%) 62% 62%/8px 8px no-repeat; content:""; box-shadow:inset 0 0 0 2px rgba(255,255,255,.72),0 4px 10px rgba(255,90,31,.08); }
.training-topic-course-mode::before { display:grid; place-items:center; width:19px; height:19px; margin:0; border:1.4px solid rgba(255,90,31,.72); border-radius:50%; color:#ff5a1f; background:rgba(255,255,255,.62); content:"·"; font-size:18px; line-height:1; }
.training-topic-visual { align-items:center; justify-items:center; }
.training-topic-visual img,.training-topic-modal.is-dense-topic .training-topic-visual img { align-self:center; justify-self:center; margin:auto; }
.training-topic-standards { padding:9px 16px; border-color:rgba(255,90,31,.1); background:linear-gradient(110deg,rgba(255,249,246,.8),rgba(255,255,255,.72)); }
.training-topic-standard-list,.training-topic-standard-list.has-few-items { grid-template-columns:repeat(4,minmax(104px,142px)); justify-content:center; gap:8px; }
.training-topic-standard-list>span { place-content:center; min-height:44px; padding:7px 10px; border-color:rgba(255,90,31,.12); text-align:center; background:rgba(255,255,255,.67); box-shadow:0 8px 22px rgba(255,90,31,.025),inset 0 1px 0 rgba(255,255,255,.9); }
.training-topic-standard-list i { display:none; }.training-topic-standard-list strong,.training-topic-standard-list small { text-align:center; }
.training-topic-footer { width:100%; height:58px; min-height:58px; padding-inline:22px; border-top-color:rgba(0,0,0,.05); background:rgba(255,255,255,.92); }
.training-topic-position { gap:0; }.training-topic-position>div { gap:9px; }.training-topic-position i { width:7px; height:7px; background:#e5e1df; }
@keyframes training-row-enter { to { opacity:1; transform:translateY(0); } }

body.training-course-detail-open { overflow:hidden; }
.training-course-detail-layer { position:fixed; z-index:300; inset:0; display:grid; place-items:center; padding:5vh 4vw; opacity:0; visibility:hidden; pointer-events:none; transition:opacity .34s cubic-bezier(.22,.61,.36,1),visibility .34s cubic-bezier(.22,.61,.36,1); }
.training-course-detail-layer.is-open { opacity:1!important; visibility:visible!important; pointer-events:auto!important; }
.training-course-detail-backdrop { position:absolute; inset:0; width:100%; height:100%; border:0; background:rgba(35,21,14,.16); backdrop-filter:blur(13px); -webkit-backdrop-filter:blur(13px); }
.training-course-detail-modal { position:relative; display:grid; grid-template-rows:48px minmax(0,1fr); width:min(92vw,1700px); height:90svh; max-height:940px; overflow:visible; border:1px solid rgba(255,255,255,.78); border-radius:30px; background:rgba(255,253,251,.9); box-shadow:0 34px 100px rgba(44,24,14,.16),inset 0 1px 0 rgba(255,255,255,.96); opacity:0; transform:translateY(16px) scale(.96); backdrop-filter:blur(28px) saturate(145%); -webkit-backdrop-filter:blur(28px) saturate(145%); transition:opacity .34s cubic-bezier(.22,.61,.36,1),transform .34s cubic-bezier(.22,.61,.36,1); }
.training-course-detail-layer.is-open .training-course-detail-modal { opacity:1; transform:none; }
.training-course-detail-modal:focus { outline:none; }
.training-course-detail-header { display:flex; align-items:center; height:48px; padding:0 24px; border-bottom:1px solid rgba(17,17,17,.055); }
.training-course-detail-close { width:17px; height:17px; padding:0; border:1px solid rgba(130,20,14,.18); border-radius:50%; background:#ff5f57; box-shadow:inset 0 -1px 1px rgba(0,0,0,.13); cursor:pointer; }
.training-course-detail-close:focus-visible { outline:3px solid rgba(255,90,31,.24); outline-offset:5px; }
.training-course-detail-content { display:grid; grid-template-rows:minmax(220px,35%) minmax(190px,1fr) 104px; gap:18px; min-height:0; overflow:hidden; padding:0 28px 24px; transition:opacity .18s cubic-bezier(.22,.61,.36,1),transform .18s cubic-bezier(.22,.61,.36,1); }
.training-course-detail-content.is-leaving-next { opacity:0; transform:translateX(-18px); }.training-course-detail-content.is-leaving-prev { opacity:0; transform:translateX(18px); }.training-course-detail-content.is-entering-next { opacity:0; transform:translateX(18px); }.training-course-detail-content.is-entering-prev { opacity:0; transform:translateX(-18px); }
.training-course-detail-hero { display:grid; grid-template-columns:55% 45%; min-height:0; overflow:hidden; border:1px solid rgba(255,90,31,.13); border-radius:25px; background:linear-gradient(125deg,rgba(255,255,255,.87),rgba(255,245,239,.72)); }
.training-course-detail-copy { display:grid; grid-template-columns:auto 1fr; grid-template-rows:auto auto auto 1fr auto; align-content:center; column-gap:22px; padding:26px 38px; }
.training-course-detail-label { grid-column:1; grid-row:1; align-self:center; display:inline-flex; align-items:center; min-height:30px; padding:0 14px; border:1px solid rgba(255,90,31,.22); border-radius:999px; color:#ff5a1f; background:rgba(255,255,255,.65); font-size:10px; font-weight:750; letter-spacing:.04em; text-transform:uppercase; }
.training-course-detail-code { grid-column:1; grid-row:2/5; align-self:start; margin-top:12px; color:#ff5a1f; font-size:clamp(66px,7vw,112px); font-weight:780; line-height:.85; letter-spacing:-.07em; }
.training-course-detail-copy h2 { grid-column:2; grid-row:2; align-self:end; max-width:760px; margin:7px 0 0; color:#151515; font-size:clamp(29px,3vw,48px); font-weight:740; line-height:1.02; letter-spacing:-.05em; }
.training-course-detail-copy>p { grid-column:2; grid-row:3; max-width:730px; margin:12px 0 0; overflow:hidden; color:#555; font-size:13px; line-height:1.55; display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:3; }
.training-course-detail-chips { grid-column:1/-1; grid-row:5; display:flex; align-items:stretch; gap:10px; margin-top:18px; }
.training-course-detail-chips>span { display:grid; grid-template-columns:35px auto; grid-template-rows:auto auto; min-width:120px; min-height:58px; padding:10px 14px; border:1px solid rgba(255,90,31,.11); border-radius:15px; background:rgba(255,255,255,.7); box-shadow:0 9px 24px rgba(17,17,17,.035); }
.training-course-detail-chips i { grid-row:1/3; align-self:center; color:#ff5a1f; font-style:normal; font-size:22px; }.training-course-detail-chips small { color:#777; font-size:9px; }.training-course-detail-chips strong { max-width:190px; overflow:hidden; color:#242424; font-size:10px; text-overflow:ellipsis; white-space:nowrap; }
.training-course-detail-visual { position:relative; display:grid; place-items:center; overflow:hidden; background:radial-gradient(circle,rgba(255,90,31,.12),transparent 62%); }.training-course-detail-visual::after { position:absolute; inset:0; background-image:radial-gradient(circle,rgba(255,90,31,.17) 1px,transparent 1px); background-size:16px 16px; content:""; opacity:.27; mask-image:radial-gradient(circle,#000,transparent 73%); }.training-course-detail-visual img { position:relative; z-index:1; width:min(74%,430px); height:80%; object-fit:contain; filter:drop-shadow(0 18px 30px rgba(255,90,31,.14)); }
.training-course-detail-cards { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; min-height:0; }
.training-course-detail-cards article { min-height:0; overflow:hidden; padding:22px 24px; border:1px solid rgba(255,90,31,.1); border-radius:22px; background:rgba(255,255,255,.7); box-shadow:0 14px 40px rgba(17,17,17,.03),inset 0 1px 0 rgba(255,255,255,.9); transition:border-color .28s ease-out,box-shadow .28s ease-out,transform .28s ease-out; }.training-course-detail-cards article:hover { border-color:rgba(255,90,31,.18); box-shadow:0 18px 45px rgba(255,90,31,.055); transform:translateY(-2px); }
.training-course-detail-card-heading { display:flex; align-items:center; gap:12px; }.training-course-detail-card-heading>span { display:grid; place-items:center; width:38px; height:38px; border:1px solid rgba(255,90,31,.13); border-radius:11px; color:#ff5a1f; background:rgba(255,255,255,.7); }.training-course-detail-card-heading h3 { margin:0; font-size:15px; }
.training-course-detail-cards ul { display:grid; gap:10px; margin:15px 0 0; padding:0; list-style:none; }.training-course-detail-cards li { position:relative; padding-left:17px; color:#555; font-size:11px; line-height:1.5; }.training-course-detail-cards li::before { position:absolute; top:.58em; left:2px; width:6px; height:6px; border:1.5px solid #ff5a1f; border-radius:50%; content:""; }
.training-course-detail-cta { display:grid; grid-template-columns:62px minmax(0,1fr) auto; align-items:center; gap:20px; padding:16px 28px; border:1px solid rgba(255,90,31,.11); border-radius:20px; background:linear-gradient(105deg,rgba(255,247,242,.86),rgba(255,255,255,.72)); }
.training-course-detail-cta-icon { display:grid; place-items:center; width:52px; height:52px; border:1px solid rgba(255,90,31,.14); border-radius:15px; color:#ff5a1f; background:#fff; font-size:25px; }.training-course-detail-cta h3 { margin:0; font-size:14px; }.training-course-detail-cta p { max-width:650px; margin:5px 0 0; color:#666; font-size:11px; line-height:1.45; }.training-course-detail-cta a { display:inline-flex; align-items:center; justify-content:center; gap:28px; min-width:235px; min-height:52px; padding:0 22px; border-radius:14px; color:#fff; background:#ff5a1f; box-shadow:0 13px 30px rgba(255,90,31,.15); font-size:13px; font-weight:700; transition:background .28s ease-out,box-shadow .28s ease-out,transform .28s ease-out; }.training-course-detail-cta a:hover { color:#fff; background:#e94b14; box-shadow:0 17px 35px rgba(255,90,31,.21); transform:translateY(-2px); }
.training-course-detail-nav { position:absolute; z-index:4; top:50%; display:flex; align-items:center; gap:9px; min-height:46px; padding:0 14px; border:1px solid rgba(255,90,31,.13); border-radius:999px; color:#ff5a1f; background:rgba(255,255,255,.9); box-shadow:0 12px 30px rgba(17,17,17,.08); cursor:pointer; transform:translateY(-50%); }.training-course-detail-nav.is-prev { right:calc(100% + 12px); }.training-course-detail-nav.is-next { left:calc(100% + 12px); }.training-course-detail-nav i { display:none; max-width:180px; overflow:hidden; color:#333; font-style:normal; font-size:11px; text-overflow:ellipsis; white-space:nowrap; }.training-course-detail-nav:hover i { display:block; }.training-course-detail-nav:disabled { opacity:.25; cursor:default; }.training-course-detail-nav:focus-visible { outline:3px solid rgba(255,90,31,.24); outline-offset:4px; }

.training-body .site-footer { border-top-color:rgba(255,255,255,.18); color:rgba(255,255,255,.7); background:var(--training-orange); }
.training-body .site-footer .footer-logo img { filter:brightness(0) invert(1); }
.training-body .site-footer .footer-column h2,.training-body .site-footer .footer-contact strong { color:#fff; }
.training-body .site-footer .footer-column a,.training-body .site-footer .footer-column p,.training-body .site-footer .footer-brand>p,.training-body .site-footer .footer-bottom { color:rgba(255,255,255,.72); }
.training-body .site-footer .footer-column a:hover { color:#fff; }
.training-body .site-footer .footer-social a { border-color:rgba(255,255,255,.5); color:#fff; }
.training-body .site-footer .footer-social a:hover { color:var(--training-orange); background:#fff; }
.training-body .site-footer .footer-bottom { border-top-color:rgba(255,255,255,.18); }
body.motion-ready .training-page .reveal-section,body.motion-ready .training-page .reveal-card { opacity:1; transform:none; }

@media (max-width:1100px) {
  .training-hero-grid { grid-template-columns:48% 52%; }.training-hero h1 { font-size:58px; }.training-facts article { padding-inline:18px; }
  .training-category-grid { grid-template-columns:repeat(3,1fr); }.training-category-card { min-height:220px; }
  .training-course-row { grid-template-columns:62px minmax(250px,1fr) 45px 115px 190px 46px; }
  .training-topic-layer { padding:20px; }.training-topic-modal { width:calc(100vw - 40px); max-height:calc(100svh - 40px); }.training-topic-intro { padding:24px; }.training-topic-intro h2 { font-size:38px; }.training-topic-visual img { width:min(72%,300px); max-height:240px; }
  .training-course-detail-layer { padding:20px; }.training-course-detail-modal { width:calc(100vw - 40px); height:calc(100svh - 40px); }.training-course-detail-content { grid-template-rows:minmax(210px,36%) minmax(190px,1fr) 96px; gap:13px; padding:0 20px 18px; }.training-course-detail-copy { padding:22px; }.training-course-detail-code { font-size:72px; }.training-course-detail-copy h2 { font-size:34px; }.training-course-detail-chips { gap:7px; }.training-course-detail-chips>span { min-width:105px; padding:8px 10px; }.training-course-detail-cards { gap:10px; }.training-course-detail-cards article { padding:18px; }.training-course-detail-nav.is-prev { right:auto; left:12px; }.training-course-detail-nav.is-next { right:12px; left:auto; }.training-course-detail-nav i { display:none!important; }
}

@media (min-width:768px) and (max-height:760px) {
  .training-topic-content,.training-topic-modal.is-dense-topic .training-topic-content { grid-template-rows:205px minmax(0,1fr) 64px; gap:7px; padding-bottom:9px; }
  .training-topic-hero { height:205px; min-height:205px; max-height:205px; }
  .training-topic-intro { grid-template-columns:70px minmax(0,1fr); column-gap:20px; padding:10px 26px; }
  .training-topic-icon { width:64px; height:64px; }.training-topic-icon svg { width:38px; height:38px; }
  .training-topic-area-badge { min-height:23px; margin-bottom:5px; font-size:9px; }.training-topic-intro h2 { font-size:30px; }.training-topic-intro h2::after { margin-top:6px; }.training-topic-intro p { margin:4px 0; font-size:10px; }.training-topic-badge { min-height:25px; font-size:9px; }
  .training-topic-visual img { width:min(68%,260px); max-height:150px; }
  .training-topic-course-copy p { display:none; }.training-topic-course-card,.training-topic-modal.is-dense-topic .training-topic-course-card { grid-template-columns:68px minmax(0,1fr) 125px 170px 48px; }.training-topic-course-card>button,.training-topic-modal.is-dense-topic .training-topic-course-card>button { width:44px; height:44px; }
  .training-topic-standards { padding-block:4px; }.training-topic-standards-intro>span { width:40px; height:40px; }.training-topic-standards p { display:none; }.training-topic-standard-list>span { min-height:42px; padding-block:5px; }
}

@media (max-width:767px) {
  .training-body .container { width:min(100% - 40px,680px); }
  .training-body .main-nav { border-color:rgba(255,255,255,.18); background:rgba(224,70,18,.98); }
  .training-body .main-nav a,.training-body .site-header .nav-submenu a,.training-body .site-header .nav-submenu a small { border-bottom-color:rgba(255,255,255,.12); color:#fff; }
  .training-body .site-header .nav-dropdown-trigger,.training-body .site-header .nav-submenu { border-color:rgba(255,255,255,.14); background:transparent; }
  .training-body .menu-toggle span { background:#fff; }
  .training-hero { min-height:0; padding:122px 0 40px; }
  .training-hero-grid { display:flex; flex-direction:column; min-height:0; }
  .training-hero-copy { width:100%; padding:0; }.training-hero h1 { font-size:47px; }.training-hero h1 span { white-space:normal; }.training-lead { font-size:16px; }
  .training-facts { grid-template-columns:1fr; width:100%; }.training-facts article { min-height:0; padding:22px; }.training-facts article+article { border-top:1px solid rgba(17,17,17,.07); border-left:0; }
  .training-hero-visual { position:relative; inset:auto; order:initial; width:100%; min-height:0; margin-top:30px; pointer-events:none; }.training-hero-visual img { height:auto; border-radius:20px; object-fit:contain; }
  .training-categories { padding-top:38px; }.training-categories h2,.training-catalogue-head h2 { font-size:30px; }
  .training-category-shell { margin-inline:-20px; padding:0 20px; }.training-category-grid { display:flex; gap:12px; overflow-x:auto; scroll-snap-type:x mandatory; }.training-category-card { flex:0 0 245px; min-height:230px; scroll-snap-align:start; }.training-carousel-arrow { display:none; }
  .training-download-brochure { width:100%; min-height:56px; }
  .training-custom-course { padding-bottom:18px; }.training-custom-course-panel { grid-template-columns:1fr; gap:22px; min-height:0; padding:30px 24px; border-radius:23px; }.training-custom-course-icon { width:72px; height:72px; border-radius:20px; }.training-custom-course-icon svg { width:42px; height:42px; }.training-custom-course-copy h2 { font-size:36px; }.training-custom-course-copy>p:last-child { font-size:16px; }.training-custom-course-cta { width:100%; min-height:56px; }.training-extras-grid.is-single article { grid-template-columns:82px minmax(0,1fr); }
  .training-catalogue-panel { padding:26px 16px 18px; border-radius:22px; }.training-catalogue-head { display:block; }.training-catalogue-controls { margin-top:18px; }.training-catalogue-controls button:first-child { flex:1; min-width:0; }
  .training-course-row { grid-template-columns:55px 1fr 42px; gap:0; min-height:76px; padding:8px 0; }.training-course-row h3 { padding-right:10px; }.training-course-icon,.training-course-meta { display:none; }.training-course-row>button { grid-column:3; grid-row:1; align-self:center; }
  .training-extras-grid { grid-template-columns:1fr; }.training-extras article { grid-template-columns:82px 1fr; padding:20px; }.training-extra-icon { width:66px; height:66px; border-radius:18px; }.training-extra-icon svg { width:38px; height:38px; }
  .training-category-card:hover { border-color:rgba(255,90,31,.14); box-shadow:0 20px 70px rgba(17,17,17,.06),inset 0 1px 0 rgba(255,255,255,.9); transform:none; }.training-category-card:hover::after { right:12%; left:12%; opacity:.35; box-shadow:none; }
  .training-topic-layer { display:block; padding:0; }.training-topic-modal,.training-topic-modal.is-dense-topic { width:100%; height:100%; max-height:none; border:0; border-radius:0; background:#fffaf7; transform:translateY(24px); }.training-topic-header { min-height:62px; padding:10px 20px; }.training-topic-content,.training-topic-modal.is-dense-topic .training-topic-content { display:block; overflow:auto; padding:18px 20px 28px; }.training-topic-hero { display:flex; flex-direction:column; }.training-topic-intro,.training-topic-modal.is-dense-topic .training-topic-intro { display:contents; }.training-topic-icon,.training-topic-modal.is-dense-topic .training-topic-icon { order:0; width:62px; height:62px; margin:24px 24px 12px; }.training-topic-area-badge,.training-topic-modal.is-dense-topic .training-topic-area-badge { order:1; align-self:flex-start; min-height:30px; margin:0 24px 14px; font-size:11px; }.training-topic-intro h2,.training-topic-modal.is-dense-topic .training-topic-intro h2 { order:2; padding:0 24px; font-size:39px; white-space:normal; }.training-topic-intro h2::after { margin-top:12px; }.training-topic-visual { order:3; min-height:190px; margin-top:16px; }.training-topic-visual img,.training-topic-modal.is-dense-topic .training-topic-visual img { width:min(76%,280px); height:180px; max-height:none; }.training-topic-intro p,.training-topic-modal.is-dense-topic .training-topic-intro p { order:4; margin:0; padding:18px 24px 0; font-size:16px; }.training-topic-badge,.training-topic-modal.is-dense-topic .training-topic-badge { order:5; align-self:flex-start; min-height:34px; margin:18px 24px 26px; font-size:11px; }.training-topic-courses { margin-top:18px; padding:20px 16px; }.training-topic-section-head,.training-topic-modal.is-dense-topic .training-topic-section-head { flex-basis:38px; align-items:flex-start; }.training-topic-section-head>span { text-align:right; }.training-topic-course-list,.training-topic-modal.is-dense-topic .training-topic-course-list { display:grid; grid-template-rows:unset; grid-auto-rows:auto; gap:8px; }.training-topic-course-card { grid-template-columns:48px minmax(0,1fr) 48px; min-height:86px; }.training-topic-course-copy { padding:12px; }.training-topic-course-copy h4,.training-topic-modal.is-dense-topic .training-topic-course-copy h4 { overflow:visible; font-size:14px; white-space:normal; }.training-topic-course-copy p { display:none; }.training-topic-course-meta { display:none; }.training-topic-course-card>button,.training-topic-modal.is-dense-topic .training-topic-course-card>button { display:grid; width:44px; height:44px; font-size:20px; }.training-topic-standards { grid-template-columns:1fr; margin-top:14px; padding:18px; }.training-topic-standard-list,.training-topic-standard-list.has-few-items { grid-template-columns:1fr 1fr; }.training-topic-footer { position:sticky; bottom:0; z-index:5; grid-template-columns:1fr 1fr; min-height:84px; padding:10px 20px; }.training-topic-position { display:none; }.training-topic-nav { font-size:12px; }.training-topic-nav span:not([aria-hidden]) { max-width:120px; }
  .training-topic-course-list,.training-topic-modal.is-dense-topic .training-topic-course-list { overflow:visible; padding-right:0; }
  .training-topic-course-card,.training-topic-modal.is-dense-topic .training-topic-course-card { grid-template-columns:48px minmax(0,1fr) 48px; grid-template-rows:auto auto; min-height:104px; border:1px solid rgba(255,90,31,.1); border-radius:16px; }
  .training-topic-course-code { grid-column:1; grid-row:1/3; }.training-topic-course-copy { grid-column:2; grid-row:1; padding:14px 12px 5px; }
  .training-topic-course-meta { display:flex; grid-row:2; align-self:start; min-height:28px; padding:2px 0 10px 12px; border:0; font-size:10px; }.training-topic-course-duration { grid-column:2; }.training-topic-course-mode { grid-column:2; margin-left:90px; }
  .training-topic-course-card>button,.training-topic-modal.is-dense-topic .training-topic-course-card>button { grid-column:3; grid-row:1/3; }
  .training-topic-hero { height:auto; min-height:0; max-height:none; }
  .training-topic-modal,.training-topic-modal.is-dense-topic { display:grid; grid-template-rows:62px minmax(0,1fr) 84px; }
  .training-topic-header { height:62px; min-height:62px; }
  .training-topic-footer { height:84px; min-height:84px; }
  .training-course-detail-layer { display:block; padding:0; }.training-course-detail-modal { display:grid; grid-template-rows:62px minmax(0,1fr); width:100%; height:100%; max-height:none; border:0; border-radius:0; overflow:hidden; transform:translateY(22px); }.training-course-detail-header { height:62px; padding:0 20px; }.training-course-detail-content { display:block; overflow-y:auto; padding:18px 20px 140px; }.training-course-detail-hero { display:flex; flex-direction:column; }.training-course-detail-copy { display:flex; flex-direction:column; padding:28px 24px 20px; }.training-course-detail-label { align-self:flex-start; order:0; }.training-course-detail-code { order:1; margin:18px 0 0; font-size:76px; }.training-course-detail-copy h2 { order:2; margin:13px 0 0; font-size:40px; }.training-course-detail-copy>p { order:3; margin-top:16px; font-size:16px; -webkit-line-clamp:4; }.training-course-detail-chips { order:4; flex-wrap:wrap; margin-top:22px; }.training-course-detail-chips>span { flex:1 1 calc(50% - 8px); min-width:0; min-height:64px; }.training-course-detail-visual { min-height:220px; }.training-course-detail-visual img { width:min(76%,300px); height:190px; }.training-course-detail-cards { grid-template-columns:1fr; margin-top:16px; }.training-course-detail-cards article { min-height:180px; }.training-course-detail-cta { grid-template-columns:58px 1fr; margin-top:16px; padding:22px; }.training-course-detail-cta a { grid-column:1/-1; width:100%; min-width:0; min-height:56px; }.training-course-detail-nav { top:auto; bottom:18px; min-width:46px; padding:0 14px; transform:none; }.training-course-detail-nav.is-prev { right:auto; left:20px; }.training-course-detail-nav.is-next { right:20px; left:auto; }
}

/* Readability pass: course rows and every supporting text use the available space. */
@media (min-width:768px) {
  .training-topic-course-list,
  .training-topic-modal.is-dense-topic .training-topic-course-list {
    grid-auto-rows:132px;
  }
  .training-topic-course-card,
  .training-topic-modal.is-dense-topic .training-topic-course-card {
    min-height:132px;
    align-items:center;
  }
  .training-topic-course-copy {
    align-self:stretch;
    display:flex;
    flex-direction:column;
    justify-content:center;
    min-width:0;
    padding:14px 20px;
  }
  .training-topic-course-copy h4,
  .training-topic-modal.is-dense-topic .training-topic-course-copy h4 {
    overflow:visible;
    margin:0;
    font-size:clamp(16px,.94vw,19px);
    line-height:1.28;
    text-overflow:clip;
    white-space:normal;
  }
  .training-topic-course-copy p,
  .training-topic-modal.is-dense-topic .training-topic-course-copy p {
    display:block;
    overflow:visible;
    margin:8px 0 0;
    color:#5b5b5b;
    font-size:clamp(15px,.88vw,18px);
    line-height:1.42;
    text-align:justify;
    text-overflow:clip;
    white-space:normal;
  }
  .training-topic-course-code {
    align-self:center;
    justify-self:center;
  }
  .training-topic-course-meta {
    align-self:stretch;
    justify-content:center;
    padding-inline:16px;
    font-size:clamp(14px,.82vw,17px);
    text-align:center;
  }
  .training-topic-course-card>button,
  .training-topic-modal.is-dense-topic .training-topic-course-card>button {
    align-self:center;
    justify-self:center;
  }

  .training-topic-standards-intro h3 { font-size:clamp(15px,.9vw,18px); }
  .training-topic-standards-intro p {
    font-size:clamp(13px,.76vw,16px);
    line-height:1.42;
  }
  .training-topic-standard-list strong { font-size:clamp(12px,.72vw,15px); }
  .training-topic-standard-list small { font-size:clamp(11px,.66vw,14px); }

  .training-course-detail-chips small {
    align-self:end;
    font-size:clamp(12px,.72vw,15px);
    line-height:1.2;
  }
  .training-course-detail-chips strong {
    align-self:start;
    max-width:none;
    font-size:clamp(14px,.9vw,18px);
    line-height:1.25;
  }
  .training-course-detail-cards article {
    display:flex;
    flex-direction:column;
    justify-content:center;
  }
  .training-course-detail-card-heading h3 {
    font-size:clamp(17px,1vw,21px);
  }
  .training-course-detail-cards ul {
    gap:10px;
    margin-top:16px;
  }
  .training-course-detail-cards li {
    font-size:clamp(15px,.9vw,18px);
    line-height:1.48;
  }
  .training-course-detail-cta h3 { font-size:clamp(17px,1vw,21px); }
  .training-course-detail-cta p {
    margin-top:7px;
    font-size:clamp(14px,.82vw,17px);
    line-height:1.45;
  }
}

/* ========================================================================== 
   Formazione premium 2026 — revisione approvata
   Mantiene la palette originale della pagina: #ff5a1f, #fffaf7, #171717.
   Tutte le sezioni restano nel flusso naturale per evitare sovrapposizioni.
   ========================================================================== */
.training-page {
  --training-orange:#ff5a1f;
  --training-orange-dark:#e94b14;
  --training-cream:#fffaf7;
  --training-ink:#171717;
  --training-muted:#696969;
  overflow-x:clip;
  overflow-y:visible;
  color:var(--training-ink);
  background:#fff;
}
.training-page .container { width:min(1380px,calc(100% - 48px)); }
.training-hero {
  position:relative;
  height:auto!important;
  min-height:auto!important;
  padding:clamp(108px,11vh,150px) 0 clamp(70px,8vh,105px)!important;
  overflow:hidden;
  background:radial-gradient(circle at 78% 15%,rgba(255,90,31,.10),transparent 31%),var(--training-cream);
}
.training-hero-grid {
  display:grid;
  grid-template-columns:minmax(0,1.02fr) minmax(480px,.98fr);
  align-items:stretch;
  min-height:570px!important;
  gap:0;
}
.training-hero-copy { align-self:center; padding:34px clamp(34px,4.4vw,74px) 34px 0; }
.training-eyebrow { margin:0 0 17px; color:var(--training-orange); font-size:11px; font-weight:800; letter-spacing:.18em; text-transform:uppercase; }
.training-hero h1 { max-width:800px; margin:0; color:var(--training-ink); font-size:clamp(52px,5.2vw,80px); line-height:.98; letter-spacing:-.052em; }
.training-hero h1 span { color:var(--training-orange); }
.training-lead { max-width:750px; margin:26px 0 0; color:#4f4f4f; font-size:clamp(16px,1.25vw,20px); line-height:1.58; }
.training-hero-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:30px; }
.training-hero-button { display:inline-flex; align-items:center; justify-content:center; min-height:54px; padding:0 23px; border:1px solid rgba(23,23,23,.18); border-radius:999px; font-size:13px; font-weight:750; text-decoration:none; transition:color .25s ease,background .25s ease,border-color .25s ease,transform .25s ease; }
.training-hero-button-primary { border-color:var(--training-orange); color:#fff; background:var(--training-orange); box-shadow:0 14px 30px rgba(255,90,31,.16); }
.training-hero-button-primary:hover { color:#fff; background:var(--training-orange-dark); transform:translateY(-2px); }
.training-hero-button-secondary { color:var(--training-ink); background:rgba(255,255,255,.76); }
.training-hero-button-secondary:hover { border-color:var(--training-orange); color:var(--training-orange); background:#fff; transform:translateY(-2px); }
.training-facts { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:0; margin-top:42px; border-top:1px solid rgba(23,23,23,.11); border-radius:0; background:transparent; box-shadow:none; }
.training-facts article { display:grid; grid-template-columns:28px 1fr; align-content:center; min-height:90px; padding:18px 13px; border:0; border-right:1px solid rgba(23,23,23,.08); background:transparent; }
.training-facts article:last-child { border-right:0; }
.training-facts svg { grid-row:1/3; align-self:start; width:20px; height:20px; margin-top:2px; color:var(--training-orange); stroke:currentColor; }
.training-facts strong { font-size:14px; line-height:1.25; }
.training-facts span { margin-top:4px; color:var(--training-muted); font-size:10px; line-height:1.3; }
.training-hero-visual { position:relative; min-height:570px; border-radius:28px; overflow:hidden; background:#eee; box-shadow:0 30px 80px rgba(45,30,20,.12); }
.training-hero-visual::after { position:absolute; inset:0; background:linear-gradient(90deg,rgba(255,250,247,.20),transparent 35%); content:""; pointer-events:none; }
.training-hero-visual picture,.training-hero-visual img { display:block; width:100%; height:100%; }
.training-hero-visual img { object-fit:cover; }

.training-section-heading { max-width:850px; margin:0 auto 50px; text-align:center; }
.training-section-heading h2 { margin:0; color:var(--training-ink); font-size:clamp(38px,4.2vw,62px); line-height:1; letter-spacing:-.048em; }
.training-section-heading h2 span { color:var(--training-orange); }
.training-section-heading>p:last-child { max-width:740px; margin:21px auto 0; color:var(--training-muted); font-size:17px; line-height:1.6; }

.training-value { padding:clamp(80px,8vw,125px) 0; background:#fff; }
.training-value-grid { display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid rgba(255,90,31,.18); border-bottom:1px solid rgba(255,90,31,.18); }
.training-value-grid article { min-height:235px; padding:40px clamp(24px,3vw,46px); border-right:1px solid rgba(255,90,31,.14); background:linear-gradient(180deg,#fff,rgba(255,250,247,.7)); }
.training-value-grid article:last-child { border-right:0; }
.training-value-grid article>span { color:var(--training-orange); font-size:10px; font-weight:800; letter-spacing:.16em; }
.training-value-grid h3 { margin:30px 0 11px; font-size:22px; letter-spacing:-.02em; }
.training-value-grid p { margin:0; color:var(--training-muted); font-size:15px; line-height:1.55; }

.training-categories { margin:0!important; padding:clamp(82px,8vw,130px) 0!important; background:var(--training-cream); }
.training-categories .training-section-heading { margin-bottom:34px; }
.training-search { display:flex; justify-content:center; gap:10px; max-width:820px; margin:0 auto 42px; }
.training-search label { display:flex; align-items:center; flex:1; min-height:58px; padding:0 20px; border:1px solid rgba(255,90,31,.16); border-radius:999px; background:#fff; box-shadow:0 12px 34px rgba(40,25,15,.06); }
.training-search label:focus-within { border-color:var(--training-orange); outline:3px solid rgba(255,90,31,.16); }
.training-search label>span[aria-hidden] { margin-right:10px; color:var(--training-orange); }
.training-search input { width:100%; border:0; outline:0; color:var(--training-ink); background:transparent; }
.training-search button { padding:0 20px; border:0; border-radius:999px; color:#fff; background:var(--training-ink); cursor:pointer; }
.training-search button[hidden] { display:none; }
.training-category-shell { margin:0; overflow:visible; }
.training-category-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.training-category-card { position:relative; display:flex; flex-direction:column; align-items:flex-start; min-height:270px!important; padding:30px!important; overflow:hidden; border:1px solid rgba(255,90,31,.14); border-radius:22px; text-align:left; background:#fff; box-shadow:0 12px 34px rgba(40,25,15,.045); transform:none; }
.training-category-card:hover { border-color:rgba(255,90,31,.38); box-shadow:0 24px 65px rgba(40,25,15,.10); transform:translateY(-5px); }
.training-category-card svg { flex:0 0 auto; width:48px; height:48px; padding:12px; border-radius:14px; color:var(--training-orange); background:rgba(255,90,31,.07); stroke:currentColor; }
.training-category-card strong { max-width:390px; margin:22px 0 10px; font-size:22px; line-height:1.15; letter-spacing:-.025em; }
.training-category-card small { display:block; max-width:390px; margin:0 0 34px; color:var(--training-muted); font-size:14px; line-height:1.5; }
.training-category-card>span { position:absolute; bottom:25px; left:30px; color:var(--training-orange); font-size:10px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.training-search-results { max-width:1120px; margin:48px auto 0; }
.training-search-results[hidden] { display:none; }
.training-search-results>div:first-child { display:flex; align-items:end; justify-content:space-between; gap:20px; margin-bottom:16px; }
.training-search-results h3 { margin:0; font-size:26px; }
.training-search-results>div:first-child span { color:var(--training-muted); font-size:12px; }
.training-search-empty { padding:28px; border:1px solid rgba(255,90,31,.14); border-radius:16px; color:var(--training-muted); background:#fff; }

.training-custom-course { padding:0 0 clamp(80px,8vw,120px); background:#fff; }
.training-custom-course-panel { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:42px; min-height:300px; padding:clamp(44px,5vw,72px); border:1px solid rgba(255,90,31,.17); border-radius:28px; background:radial-gradient(circle at 92% 5%,rgba(255,90,31,.09),transparent 34%),var(--training-cream); box-shadow:0 22px 70px rgba(40,25,15,.06); }
.training-custom-course-copy h2 { max-width:920px; font-size:clamp(38px,4.2vw,62px); }
.training-custom-course-copy>p:last-child { max-width:850px; font-size:16px; }
.training-custom-course-cta { min-height:56px; border-radius:999px; color:#fff; background:var(--training-orange); white-space:nowrap; }
.training-custom-course-cta:hover { color:#fff; background:var(--training-orange-dark); }

.training-course-detail-cards { grid-template-columns:repeat(4,minmax(0,1fr)); height:auto; min-height:0; }
.training-course-detail-cards article { min-height:190px; }

@media (max-width:1100px) {
  .training-page .container { width:min(100% - 36px,900px); }
  .training-hero { padding-top:112px!important; }
  .training-hero-grid { grid-template-columns:1fr; min-height:auto!important; }
  .training-hero-copy { padding:20px 0 46px; }
  .training-hero-visual { min-height:430px; }
  .training-category-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .training-custom-course-panel { grid-template-columns:1fr; }
  .training-custom-course-cta { justify-self:start; }
  .training-course-detail-cards { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

@media (max-width:767px) {
  .training-page .container { width:calc(100% - 32px); }
  .training-hero { padding:94px 0 58px!important; }
  .training-hero-copy { padding:0 0 34px; }
  .training-hero h1 { font-size:clamp(42px,12vw,56px); }
  .training-lead { font-size:16px; }
  .training-hero-actions { display:grid; }
  .training-hero-button { width:100%; }
  .training-facts { grid-template-columns:1fr 1fr; }
  .training-facts article { min-height:82px; border-bottom:1px solid rgba(23,23,23,.07); }
  .training-facts article:nth-child(2) { border-right:0; }
  .training-hero-visual { min-height:270px; border-radius:20px; }
  .training-section-heading { margin-bottom:34px; text-align:left; }
  .training-section-heading h2 { font-size:38px; }
  .training-section-heading>p:last-child { margin-left:0; font-size:16px; }
  .training-value { padding:70px 0; }
  .training-value-grid { grid-template-columns:1fr; }
  .training-value-grid article { min-height:auto; padding:30px 4px; border-right:0; border-bottom:1px solid rgba(255,90,31,.14); }
  .training-value-grid article:last-child { border-bottom:0; }
  .training-value-grid h3 { margin-top:19px; }
  .training-categories { padding:70px 0!important; }
  .training-search { display:block; margin-bottom:30px; }
  .training-search label { min-height:56px; }
  .training-search button { min-height:44px; margin-top:10px; }
  .training-category-grid { grid-template-columns:1fr; gap:12px; }
  .training-category-card { min-height:225px!important; padding:25px!important; }
  .training-category-card>span { left:25px; }
  .training-category-card strong { font-size:20px; }
  .training-custom-course { padding-bottom:70px; }
  .training-custom-course-panel { min-height:0; padding:34px 24px; border-radius:22px; }
  .training-custom-course-copy h2 { font-size:38px; }
  .training-custom-course-cta { width:100%; white-space:normal; text-align:center; }
  .training-course-detail-cards { grid-template-columns:1fr; }
}

/* Pagine SEO individuali dei corsi. */
.training-course-page { overflow-x:clip; color:#171717; background:#fff; }
.training-course-page .container { width:min(1380px,calc(100% - 48px)); }
.training-course-breadcrumb { display:flex; align-items:center; gap:10px; padding-top:132px; color:#777; font-size:12px; }
.training-course-breadcrumb a { color:#555; text-decoration:none; }
.training-course-breadcrumb a:hover { color:#ff5a1f; }
.training-course-breadcrumb span[aria-current] { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.training-course-page-hero { padding:34px 0 80px; background:radial-gradient(circle at 83% 12%,rgba(255,90,31,.12),transparent 28%),#fffaf7; }
.training-course-page-hero-grid { display:grid; grid-template-columns:minmax(0,1.15fr) minmax(360px,.85fr); align-items:center; min-height:560px; gap:clamp(45px,7vw,110px); }
.training-course-page-copy { max-width:860px; }
.training-course-page-code { display:block; margin-bottom:16px; color:#ff5a1f; font-size:clamp(62px,7vw,104px); font-weight:800; line-height:.82; letter-spacing:-.065em; }
.training-course-page-copy h1 { margin:0; font-size:clamp(46px,5.2vw,76px); line-height:.98; letter-spacing:-.052em; }
.training-course-page-copy>p:last-of-type { max-width:780px; margin:25px 0 0; color:#555; font-size:clamp(17px,1.35vw,21px); line-height:1.58; }
.training-course-page-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:30px; }
.training-course-page-visual { display:grid; place-items:center; min-height:410px; border:1px solid rgba(255,90,31,.15); border-radius:28px; background:rgba(255,255,255,.76); box-shadow:0 28px 75px rgba(50,30,20,.08); }
.training-course-page-visual img { width:min(82%,440px); height:360px; object-fit:contain; }
.training-course-page-facts { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); border:1px solid rgba(255,90,31,.15); border-radius:20px; overflow:hidden; background:#fff; box-shadow:0 18px 50px rgba(40,25,15,.05); }
.training-course-page-facts article { display:flex; flex-direction:column; justify-content:center; min-height:105px; padding:22px 26px; border-right:1px solid rgba(255,90,31,.12); }
.training-course-page-facts article:last-child { border-right:0; }
.training-course-page-facts span { color:#777; font-size:10px; letter-spacing:.1em; text-transform:uppercase; }
.training-course-page-facts strong { margin-top:7px; font-size:16px; line-height:1.35; }
.training-course-page-intro { padding:clamp(80px,8vw,125px) 0; }
.training-course-page-intro-grid { display:grid; grid-template-columns:.78fr 1.22fr; align-items:start; gap:clamp(48px,7vw,110px); }
.training-course-page-intro h2 { margin:0; font-size:clamp(38px,4vw,60px); line-height:1; letter-spacing:-.045em; }
.training-course-page-intro h2 span { color:#ff5a1f; }
.training-course-page-intro-grid>p { margin:0; color:#555; font-size:18px; line-height:1.75; }
.training-course-page-content { padding:0 0 clamp(80px,8vw,125px); }
.training-course-page-content-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.training-course-page-content article { min-height:270px; padding:35px; border:1px solid rgba(255,90,31,.15); border-radius:22px; background:linear-gradient(180deg,#fff,#fffaf7); }
.training-course-page-content article>span { color:#ff5a1f; font-size:10px; font-weight:800; letter-spacing:.16em; }
.training-course-page-content h2 { margin:22px 0 17px; font-size:25px; letter-spacing:-.025em; }
.training-course-page-content ul { display:grid; gap:11px; margin:0; padding:0; list-style:none; }
.training-course-page-content li { position:relative; padding-left:20px; color:#555; font-size:16px; line-height:1.5; }
.training-course-page-content li::before { position:absolute; top:.58em; left:1px; width:7px; height:7px; border:1.5px solid #ff5a1f; border-radius:50%; content:""; }
.training-course-related { display:flex; align-items:center; flex-wrap:wrap; gap:10px; margin-top:28px; }
.training-course-related>span { margin-right:4px; color:#777; font-size:10px; font-weight:800; letter-spacing:.13em; text-transform:uppercase; }
.training-course-related a { display:inline-flex; align-items:center; gap:8px; min-height:42px; padding:9px 15px; border:1px solid rgba(255,90,31,.16); border-radius:999px; color:#404040; background:#fffaf7; font-size:12px; font-weight:650; line-height:1.25; text-decoration:none; transition:border-color .2s ease,color .2s ease,transform .2s ease; }
.training-course-related a strong { color:#ff5a1f; }
.training-course-related a:hover { border-color:#ff5a1f; color:#171717; transform:translateY(-1px); }
.training-course-page-cta { padding:0 0 48px; }
.training-course-page-cta-panel { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:40px; padding:clamp(42px,5vw,70px); border-radius:28px; color:#171717; background:radial-gradient(circle at 92% 8%,rgba(255,90,31,.10),transparent 32%),#fffaf7; border:1px solid rgba(255,90,31,.17); }
.training-course-page-cta h2 { margin:0; font-size:clamp(34px,3.5vw,52px); line-height:1; letter-spacing:-.04em; }
.training-course-page-cta p:last-child { margin:14px 0 0; color:#696969; }
.training-course-page-back { padding-bottom:90px; }
.training-course-page-back a { color:#ff5a1f; font-size:14px; font-weight:700; text-decoration:none; }
.training-course-detail-actions { display:flex; align-items:center; gap:10px; }
.training-course-detail-actions>a { min-width:0; white-space:nowrap; }
.training-course-detail-actions .training-course-detail-page-link { border:1px solid rgba(255,90,31,.28); color:#ff5a1f; background:#fff; box-shadow:none; }
.training-course-detail-actions .training-course-detail-page-link:hover { color:#fff; background:#ff5a1f; }

@media (max-width:1100px) {
  .training-course-page .container { width:min(100% - 36px,900px); }
  .training-course-page-hero-grid { grid-template-columns:1fr; min-height:0; padding-top:35px; }
  .training-course-page-visual { min-height:350px; }
  .training-course-page-intro-grid { grid-template-columns:1fr; }
  .training-course-page-cta-panel { grid-template-columns:1fr; }
  .training-course-page-cta-panel .training-custom-course-cta { justify-self:start; }
  .training-course-detail-actions { flex-direction:column; align-items:stretch; }
  .training-course-detail-actions>a { width:100%; }
}

@media (max-width:767px) {
  .training-course-page .container { width:calc(100% - 32px); }
  .training-course-breadcrumb { padding-top:96px; }
  .training-course-page-hero { padding:20px 0 60px; }
  .training-course-page-hero-grid { gap:36px; }
  .training-course-page-code { font-size:70px; }
  .training-course-page-copy h1 { font-size:42px; }
  .training-course-page-actions { display:grid; }
  .training-course-page-visual { min-height:260px; border-radius:20px; }
  .training-course-page-visual img { height:230px; }
  body.training-course-body .training-course-page-facts { grid-template-columns:repeat(2,minmax(0,1fr))!important; }
  .training-course-page-facts article { min-height:90px; padding:18px; border-bottom:1px solid rgba(255,90,31,.12); }
  .training-course-page-facts article:nth-child(2) { border-right:0; }
  .training-course-page-intro { padding:70px 0; }
  .training-course-page-intro-grid { gap:28px; }
  .training-course-page-intro h2 { font-size:38px; }
  .training-course-page-intro-grid>p { font-size:16px; }
  .training-course-page-content-grid { grid-template-columns:1fr; }
  .training-course-page-content article { min-height:0; padding:28px 24px; }
  .training-course-related { align-items:stretch; }
  .training-course-related>span { width:100%; margin-bottom:3px; }
  .training-course-related a { width:100%; border-radius:16px; }
  .training-course-page-cta-panel { padding:34px 24px; border-radius:22px; }
  .training-course-page-cta-panel .training-custom-course-cta { width:100%; text-align:center; white-space:normal; }
  .training-course-page-back { padding-bottom:70px; }
}

@media (max-width:767px) {
  body.training-body .training-facts { grid-template-columns:repeat(2,minmax(0,1fr))!important; }
}

@media (max-width:767px) {
  .training-topic-course-copy p {
    display:block;
    overflow:visible;
    margin:7px 0 0;
    color:#5b5b5b;
    font-size:15px;
    line-height:1.45;
    text-align:left;
    white-space:normal;
  }
  .training-topic-course-card,
  .training-topic-modal.is-dense-topic .training-topic-course-card {
    min-height:148px;
  }
  .training-course-detail-card-heading h3 { font-size:18px; }
  .training-course-detail-cards li { font-size:16px; line-height:1.5; }
  .training-course-detail-cta h3 { font-size:18px; }
  .training-course-detail-cta p { font-size:16px; line-height:1.5; }
}

@media (prefers-reduced-motion:reduce) { .training-page *,.training-topic-layer,.training-topic-modal,.training-topic-content,.training-topic-course-card,.training-course-detail-layer,.training-course-detail-modal,.training-course-detail-content { animation:none!important; transition:none!important; }.training-topic-course-card { opacity:1!important; transform:none!important; } }

/* Revision 04 */
.training-hero { display:flex; flex-direction:column; min-height:100svh; padding-bottom:24px; }
.training-hero-grid { flex:0 0 auto; min-height:420px; }
.training-hero .training-categories { position:relative; z-index:2; width:100%; padding:0; }
.training-hero .training-category-shell { margin-top:20px; }
.training-hero .training-category-card { min-height:190px; padding:20px; }
.training-hero .training-category-card svg { width:34px; height:34px; margin-bottom:16px; }
.training-hero .training-category-card strong { font-size:13px; line-height:1.32; }
.training-hero .training-download-brochure { min-height:46px; margin-top:16px; }
.training-hero h1 { font-size:clamp(68px,6vw,88px); line-height:.93; }
.training-category-card { min-width:0; min-height:250px; padding:26px 22px; }
.training-topic-intro h2,.training-course-detail-copy h2 { font-size:clamp(34px,3.4vw,52px); }
.training-topic-intro p,.training-topic-course-copy h4,.training-topic-course-meta,.training-course-detail-copy>p,.training-course-detail-cards li { font-size:clamp(14px,1vw,17px); }
.training-topic-visual,.training-course-detail-visual { display:grid; place-items:center; }
.training-topic-visual img,.training-course-detail-visual img { object-position:center; }
.training-course-detail-cta a { border:1px solid #ff5a1f; color:#ff5a1f; background:transparent; }
.training-course-detail-cta a:hover { color:#fff; background:#ff5a1f; }
.training-course-detail-modal { grid-template-rows:48px minmax(0,1fr) 68px; overflow:hidden; }
.training-course-detail-navigation { display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:18px; padding:0 28px; border-top:1px solid rgba(0,0,0,.06); background:rgba(255,255,255,.94); }
.training-course-detail-navigation .training-course-detail-nav { position:static; min-height:44px; padding:0; border:0; border-radius:0; background:transparent; box-shadow:none; transform:none; }
.training-course-detail-navigation .training-course-detail-nav.is-prev { justify-self:start; }.training-course-detail-navigation .training-course-detail-nav.is-next { justify-self:end; }
.training-course-detail-navigation .training-course-detail-nav i { display:block; max-width:260px; color:#333; font-size:13px; font-weight:650; }
.training-course-detail-nav-dots { display:flex; gap:7px; }.training-course-detail-nav-dots i { width:7px; height:7px; border-radius:50%; background:#eadfd9; }.training-course-detail-nav-dots i.is-active { background:#ff5a1f; }
@media(max-width:767px) { .training-course-detail-modal { grid-template-rows:62px minmax(0,1fr) 84px; }.training-course-detail-navigation { padding:10px 20px; }.training-course-detail-navigation .training-course-detail-nav i { max-width:120px; font-size:11px; }.training-course-detail-nav-dots { display:none; } }

/* New training hero — Mockup HERO */
.training-hero { display:flex; flex-direction:column; min-height:100svh; padding:110px 0 34px; background:#fff; }
.training-hero-grid { flex:0 0 auto; grid-template-columns:minmax(0,52fr) minmax(0,48fr); min-height:460px; }
.training-hero-copy { max-width:760px; padding-left:0; }
.training-hero h1 { max-width:760px; font-size:clamp(66px,5.7vw,86px); line-height:.94; }
.training-lead { max-width:650px; margin-top:22px; color:#555d58; font-size:17px; line-height:1.58; }
.training-actions { display:flex; flex-wrap:wrap; gap:14px; margin-top:24px; }
.training-hero-button { display:inline-flex; align-items:center; justify-content:space-between; gap:30px; min-width:212px; min-height:54px; padding:0 22px; border:1px solid rgba(255,90,31,.32); border-radius:14px; font-size:14px; font-weight:750; transition:color .28s ease-out,background .28s ease-out,box-shadow .28s ease-out,transform .28s ease-out; }
.training-hero-button span { font-size:19px; transition:transform .28s ease-out; }
.training-hero-button-primary { color:#fff; background:#ff5a1f; box-shadow:0 14px 30px rgba(255,90,31,.16); }.training-hero-button-primary:hover { color:#fff; background:#e94b14; transform:translateY(-2px); }.training-hero-button-primary:hover span { transform:translateX(4px); }
.training-hero-button-secondary { color:#222; background:rgba(255,255,255,.72); }.training-hero-button-secondary:hover { color:#ff5a1f; border-color:#ff5a1f; background:#fff; transform:translateY(-2px); }.training-hero-button-secondary:hover span { transform:translateY(3px); }
.training-facts { grid-template-columns:repeat(4,minmax(0,1fr)); width:min(100%,820px); max-width:none; margin-top:26px; border-radius:22px; }
.training-facts article { display:grid; grid-template-columns:40px minmax(0,1fr); grid-template-rows:auto auto; column-gap:12px; align-content:center; min-height:108px; padding:18px 20px; }
.training-facts svg { grid-row:1/3; align-self:start; width:30px; height:30px; margin:2px 0 0; }
.training-facts strong { min-height:0; font-size:14px; line-height:1.3; }.training-facts span { margin-top:4px; font-size:10px; }
.training-hero-visual { position:absolute; z-index:0; inset:0; margin:0; }
.training-hero-visual::after { position:absolute; inset:0; background:linear-gradient(90deg,rgba(255,255,255,.98) 0%,rgba(255,255,255,.94) 34%,rgba(255,255,255,.3) 60%,rgba(255,255,255,.04) 100%); content:""; }
.training-hero-visual img { width:100%; height:100%; border-radius:0; object-fit:cover; object-position:center center; }
.training-hero .training-categories { position:relative; z-index:3; margin-top:4px; padding:0; }
.training-hero .training-categories h2 { font-size:30px; }
.training-hero .training-category-shell { margin-top:18px; }
.training-hero .training-category-grid { grid-template-columns:repeat(6,minmax(0,1fr)); gap:14px; }
.training-hero .training-category-card { min-height:202px; padding:24px 22px 20px; border-radius:18px; background:rgba(255,255,255,.78); box-shadow:0 18px 56px rgba(49,33,24,.055),inset 0 1px 0 rgba(255,255,255,.94); }
.training-hero .training-category-card svg { width:38px; height:38px; margin-bottom:18px; }
.training-hero .training-category-card strong { max-width:none; font-size:13px; line-height:1.33; }
.training-hero .training-category-card span { font-size:11px; }
@media(max-width:1100px) { .training-hero { min-height:auto; }.training-hero-grid { grid-template-columns:1fr; min-height:650px; align-items:start; padding-top:45px; }.training-hero-copy { max-width:680px; }.training-hero .training-category-grid { grid-template-columns:repeat(3,1fr); }.training-hero .training-category-card { min-height:190px; } }
@media(max-width:767px) { .training-hero { min-height:auto; padding:118px 0 58px; }.training-hero-grid { display:block; min-height:0; padding-top:0; }.training-hero h1 { font-size:47px; }.training-hero-visual { position:absolute; inset:0; }.training-hero-visual::after { background:linear-gradient(180deg,rgba(255,255,255,.96) 0%,rgba(255,255,255,.9) 48%,rgba(255,255,255,.72) 100%); }.training-actions { display:grid; }.training-hero-button { width:100%; min-height:56px; }.training-facts { grid-template-columns:1fr 1fr; }.training-facts article { min-height:112px; border-top:1px solid rgba(17,17,17,.07); border-left:0; }.training-facts article:nth-child(even) { border-left:1px solid rgba(17,17,17,.07); }.training-hero .training-categories { margin-top:58px; }.training-hero .training-category-shell { margin-inline:-20px; padding-inline:20px; }.training-hero .training-category-grid { display:flex; gap:12px; overflow-x:auto; scroll-snap-type:x mandatory; }.training-hero .training-category-card { flex:0 0 245px; min-height:220px; scroll-snap-align:start; } }
@media(min-width:1101px) and (max-height:820px) { .training-hero { height:100svh; min-height:680px; padding:86px 0 14px; }.training-hero-grid { min-height:380px; }.training-eyebrow { min-height:28px; margin-bottom:14px; font-size:11px; }.training-hero h1 { font-size:60px; }.training-lead { margin-top:14px; font-size:14px; line-height:1.45; }.training-actions { margin-top:14px; }.training-hero-button { min-height:46px; }.training-facts { margin-top:14px; }.training-facts article { min-height:78px; padding:11px 15px; }.training-facts svg { width:26px; height:26px; }.training-facts strong { font-size:12px; }.training-hero .training-categories h2 { font-size:25px; }.training-hero .training-category-shell { margin-top:10px; }.training-hero .training-category-card { min-height:150px; padding:16px 18px 14px; }.training-hero .training-category-card svg { width:30px; height:30px; margin-bottom:10px; }.training-hero .training-category-card strong { font-size:11px; }.training-hero .training-category-card span { font-size:9px; } }
@media (min-width:1100px) and (min-height:900px) { .training-hero { min-height:560px; padding-bottom:20px; }.training-categories { margin-top:-12px; padding-top:0; } }

/* Correzioni editoriali 05: gerarchia coerente e leggibilità delle box hero. */
@media (min-width:768px) {
  .training-hero { min-height:100svh; }
  .training-hero-grid { align-items:center; }
  .training-facts strong,.training-facts span { min-height:0; font-size:17px; line-height:1.42; }
}
@media (min-width:1101px) and (max-height:820px) {
  .training-lead { font-size:17px; line-height:1.58; }
  .training-facts strong,.training-facts span { font-size:17px; }
}

/* Fixed modal geometry and readable course metadata. */
.training-hero .training-categories { margin-top:32px; }
@media (min-width:768px) {
  .training-topic-modal,.training-topic-modal.is-dense-topic { grid-template-rows:56px minmax(0,1fr) 64px; }
  .training-topic-header { height:56px; min-height:56px; }
  .training-topic-content,.training-topic-modal.is-dense-topic .training-topic-content { grid-template-rows:240px minmax(0,1fr) 88px; gap:12px; padding:0 24px 14px; }
  .training-topic-hero,.training-topic-modal.is-dense-topic .training-topic-hero { height:240px; min-height:240px; max-height:240px; }
  .training-topic-intro,.training-topic-modal.is-dense-topic .training-topic-intro { grid-template-columns:82px minmax(0,1fr); grid-template-rows:30px auto minmax(0,1fr); align-content:center; column-gap:24px; padding:24px 32px; }
  .training-topic-icon,.training-topic-modal.is-dense-topic .training-topic-icon { grid-row:1/4; align-self:center; width:74px; height:74px; margin:0; }
  .training-topic-area-badge,.training-topic-modal.is-dense-topic .training-topic-area-badge { grid-column:2; min-height:26px; margin:0 0 7px; font-size:10px; }
  .training-topic-intro h2,.training-topic-modal.is-dense-topic .training-topic-intro h2 { grid-column:2; align-self:end; max-width:720px; margin:0; font-size:clamp(30px,2.55vw,42px); line-height:1.02; }
  .training-topic-intro p,.training-topic-modal.is-dense-topic .training-topic-intro p { grid-column:2; align-self:start; max-width:720px; margin:10px 0 0; overflow:hidden; color:#4f4f4f; font-size:19px; line-height:1.5; display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:3; }
  .training-topic-visual,.training-topic-modal.is-dense-topic .training-topic-visual { align-items:center; justify-items:center; }
  .training-topic-visual img,.training-topic-modal.is-dense-topic .training-topic-visual img { align-self:center; justify-self:center; width:min(68%,360px); height:210px; max-height:210px; margin:auto; object-position:center; }
  .training-topic-course-list,.training-topic-modal.is-dense-topic .training-topic-course-list { grid-auto-rows:86px; }
  .training-topic-course-card,.training-topic-modal.is-dense-topic .training-topic-course-card { grid-template-columns:76px minmax(0,1fr) 150px 238px 54px; min-height:86px; }
  .training-topic-course-copy h4,.training-topic-modal.is-dense-topic .training-topic-course-copy h4 { font-size:15px; line-height:1.25; }
  .training-topic-course-copy p,.training-topic-modal.is-dense-topic .training-topic-course-copy p { margin-top:6px; font-size:15px; line-height:1.35; }
  .training-topic-course-meta { gap:10px; padding-inline:14px; font-size:13px; white-space:nowrap; }
  .training-topic-course-duration::before { width:22px; height:22px; }
  .training-topic-course-mode::before { width:23px; height:23px; border:0; border-radius:0; background:transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ff5a1f' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 10c0 5-8 11-8 11S4 15 4 10a8 8 0 1 1 16 0Z'/%3E%3Ccircle cx='12' cy='10' r='2.6'/%3E%3C/svg%3E") center/contain no-repeat; box-shadow:none; content:""; }
  .training-course-detail-modal { grid-template-rows:52px minmax(0,1fr) 68px; }
  .training-course-detail-header { height:52px; }
  .training-course-detail-content { grid-template-rows:240px minmax(145px,1fr) 88px; gap:10px; padding-bottom:8px; }
  .training-course-detail-hero { height:240px; min-height:240px; max-height:240px; }
  .training-course-detail-copy { padding:20px 28px; }
  .training-course-detail-code { font-size:clamp(62px,5.7vw,88px); }
  .training-course-detail-copy h2 { font-size:clamp(25px,2.05vw,30px); line-height:1.02; }
  .training-course-detail-copy>p { margin-top:8px; color:#4f4f4f; font-size:19px; line-height:1.48; -webkit-line-clamp:3; }
  .training-course-detail-chips { gap:7px; margin-top:10px; }
  .training-course-detail-chips>span { min-width:100px; min-height:50px; padding:7px 10px; }
  .training-course-detail-chips small { font-size:10px; }
  .training-course-detail-chips strong { font-size:12px; }
  .training-course-detail-chips>span.is-location { min-width:180px; }
  .training-course-detail-chips>span.is-location i { width:24px; height:24px; background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ff5a1f' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 10c0 5-8 11-8 11S4 15 4 10a8 8 0 1 1 16 0Z'/%3E%3Ccircle cx='12' cy='10' r='2.6'/%3E%3C/svg%3E") center/contain no-repeat; }
  .training-course-detail-cards article { padding:16px 20px; }
  .training-course-detail-cards ul { gap:7px; margin-top:11px; }
  .training-course-detail-cards li { font-size:13px; line-height:1.4; }
  .training-course-detail-cta { padding:12px 22px; }
}
@media (max-width:767px) {
  .training-hero .training-categories { margin-top:72px; }
  .training-topic-intro p,.training-topic-modal.is-dense-topic .training-topic-intro p,.training-course-detail-copy>p { font-size:18px; line-height:1.55; }
  .training-topic-course-mode { white-space:nowrap; }
  .training-topic-course-mode::before,.training-course-detail-chips>span.is-location i { width:21px; height:21px; border:0; background:transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ff5a1f' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 10c0 5-8 11-8 11S4 15 4 10a8 8 0 1 1 16 0Z'/%3E%3Ccircle cx='12' cy='10' r='2.6'/%3E%3C/svg%3E") center/contain no-repeat; box-shadow:none; content:""; }
}

/* Definitive typography overrides — intentionally last in the cascade. */
@media (min-width:768px) {
  .training-topic-course-list,.training-topic-modal.is-dense-topic .training-topic-course-list { grid-auto-rows:132px; }
  .training-topic-course-card,.training-topic-modal.is-dense-topic .training-topic-course-card { min-height:132px; align-items:center; }
  .training-topic-course-copy { align-self:stretch; display:flex; flex-direction:column; justify-content:center; min-width:0; padding:14px 20px; }
  .training-topic-course-copy h4,.training-topic-modal.is-dense-topic .training-topic-course-copy h4 { overflow:visible; margin:0; font-size:clamp(16px,.94vw,19px); line-height:1.28; text-overflow:clip; white-space:normal; }
  .training-topic-course-copy p,.training-topic-modal.is-dense-topic .training-topic-course-copy p { display:block; overflow:visible; margin:8px 0 0; color:#555; font-size:clamp(15px,.88vw,18px); line-height:1.42; text-align:justify; text-overflow:clip; white-space:normal; }
  .training-topic-course-code,.training-topic-course-card>button { align-self:center; justify-self:center; }
  .training-topic-course-meta { align-self:stretch; justify-content:center; padding-inline:16px; font-size:clamp(14px,.82vw,17px); text-align:center; }
  .training-topic-standards-intro h3 { font-size:clamp(15px,.9vw,18px); }
  .training-topic-standards-intro p { font-size:clamp(13px,.76vw,16px); line-height:1.42; }
  .training-topic-standard-list strong { font-size:clamp(12px,.72vw,15px); }
  .training-topic-standard-list small { font-size:clamp(11px,.66vw,14px); }
  .training-course-detail-chips small { font-size:clamp(12px,.72vw,15px); }
  .training-course-detail-chips strong { max-width:none; font-size:clamp(14px,.9vw,18px); }
  .training-course-detail-cards article { display:flex; flex-direction:column; justify-content:center; }
  .training-course-detail-card-heading h3 { font-size:clamp(17px,1vw,21px); }
  .training-course-detail-cards ul { gap:10px; margin-top:16px; }
  .training-course-detail-cards li { font-size:clamp(15px,.9vw,18px); line-height:1.48; }
  .training-course-detail-cta h3 { font-size:clamp(17px,1vw,21px); }
  .training-course-detail-cta p { margin-top:7px; font-size:clamp(14px,.82vw,17px); line-height:1.45; }
}

/* Fix responsive verticale pagina corsi.
   La hero contiene anche il ribbon delle aree formative: su desktop larghi ma
   bassi non deve essere forzata dentro 100svh, altrimenti card e titoli si
   sovrappongono. Queste regole mantengono il flusso naturale della pagina:
   quando manca altezza, il contenuto scorre verso il basso. */
.training-page {
  overflow-x:hidden;
  overflow-y:visible;
}
.training-hero {
  height:auto!important;
  min-height:auto!important;
  padding:clamp(104px,12vh,150px) 0 clamp(58px,8vh,96px);
}
.training-hero-grid {
  min-height:clamp(360px,52vh,515px);
}
.training-hero .training-categories {
  margin-top:clamp(56px,8vh,96px);
  padding-top:0;
}
.training-hero .training-category-shell {
  margin-top:clamp(20px,3.2vh,34px);
}
.training-facts {
  margin-bottom:0;
}

@media (min-width:1101px) and (max-height:800px) {
  .training-hero {
    padding-top:86px;
    padding-bottom:54px;
  }
  .training-hero-grid {
    min-height:340px;
  }
  .training-eyebrow {
    margin-bottom:14px;
  }
  .training-hero h1 {
    font-size:clamp(54px,4.6vw,68px);
  }
  .training-lead {
    margin-top:14px;
    line-height:1.5;
  }
  .training-facts {
    margin-top:16px;
  }
  .training-facts article {
    min-height:92px;
    padding:14px 16px;
  }
  .training-hero .training-categories {
    margin-top:48px;
  }
  .training-hero .training-category-card {
    min-height:170px;
    padding:18px 18px 16px;
  }
}

@media (min-width:1101px) and (max-height:700px) {
  .training-hero {
    padding-top:78px;
    padding-bottom:46px;
  }
  .training-hero-grid {
    min-height:310px;
  }
  .training-hero h1 {
    font-size:clamp(48px,4.1vw,60px);
  }
  .training-lead {
    max-width:590px;
  }
  .training-facts article {
    min-height:84px;
  }
  .training-hero .training-categories {
    margin-top:40px;
  }
  .training-hero .training-categories h2 {
    font-size:26px;
  }
  .training-hero .training-category-grid {
    gap:12px;
  }
  .training-hero .training-category-card {
    min-height:156px;
  }
}

@media (min-width:1101px) and (max-height:620px) {
  .training-hero-grid {
    min-height:290px;
  }
  .training-hero .training-categories {
    margin-top:36px;
  }
  .training-hero .training-category-card {
    min-height:148px;
  }
}

/* Course detail: let the hero grow with its content instead of clipping the metadata row. */
@media (min-width:768px) {
  .training-course-detail-content {
    grid-template-rows:auto auto auto;
    overflow-y:auto;
    overflow-x:hidden;
    padding-bottom:24px;
  }
  .training-course-detail-hero {
    height:auto;
    min-height:300px;
    max-height:none;
    overflow:visible;
  }
  .training-course-detail-copy {
    min-height:300px;
    align-content:start;
    padding:26px 38px 24px;
  }
}

/* Final premium modal system: one predictable geometry for every topic and course. */
.training-topic-layer,
.training-course-detail-layer {
  padding:24px;
}

.training-topic-modal,
.training-course-detail-modal {
  width:min(1240px, calc(100vw - 48px));
  max-width:1240px;
  height:min(860px, calc(100svh - 48px));
  max-height:calc(100svh - 48px);
  border-radius:24px;
}

.training-topic-modal {
  display:grid;
  grid-template-rows:52px minmax(0, 1fr) 64px;
}

.training-topic-header,
.training-course-detail-header {
  height:52px;
  min-height:52px;
  padding:0 20px;
  grid-template-columns:20px 1fr;
}

.training-topic-close,
.training-course-detail-close {
  width:14px;
  height:14px;
  min-width:14px;
  border:1px solid rgba(134,30,18,.2);
  border-radius:50%;
  background:#ff5f57;
  box-shadow:inset 0 -1px 1px rgba(0,0,0,.14), 0 1px 2px rgba(0,0,0,.08);
}

.training-topic-content,
.training-course-detail-content {
  display:grid;
  grid-template-rows:auto minmax(0, 1fr) auto;
  gap:14px;
  min-height:0;
  overflow-x:hidden;
  overflow-y:auto;
  padding:18px 22px 20px;
}

.training-topic-hero,
.training-course-detail-hero {
  position:relative;
  display:grid;
  grid-template-columns:minmax(0, 1fr) 170px;
  min-height:190px;
  height:auto;
  max-height:none;
  overflow:hidden;
  border-radius:20px;
}

.training-topic-intro {
  display:block;
  min-width:0;
  padding:24px 28px 22px;
}

.training-topic-icon {
  display:none;
}

.training-topic-area-badge,
.training-course-detail-label {
  min-height:26px;
  margin:0 0 10px;
  padding:0 12px;
  font-size:10px;
}

.training-topic-intro h2,
.training-course-detail-copy h2 {
  max-width:760px;
  margin:0;
  font-size:clamp(28px, 2.5vw, 42px);
  line-height:1.05;
  letter-spacing:0;
}

.training-topic-intro h2::after {
  width:28px;
  height:2px;
  margin-top:10px;
}

.training-topic-intro p,
.training-course-detail-copy>p {
  max-width:720px;
  margin:10px 0 0;
  font-size:16px;
  line-height:1.5;
}

.training-topic-badge {
  min-height:28px;
  margin-top:14px;
  font-size:11px;
}

.training-topic-visual,
.training-course-detail-visual {
  display:grid;
  place-items:start center;
  min-height:0;
  padding:20px 18px 0 0;
  background:transparent;
}

.training-topic-visual::before,
.training-topic-visual::after,
.training-course-detail-visual::after {
  display:none;
}

.training-topic-visual img,
.training-course-detail-visual img {
  width:120px;
  height:106px;
  max-width:100%;
  max-height:106px;
  object-fit:contain;
  filter:none;
  opacity:.82;
}

.training-topic-courses {
  display:flex;
  flex-direction:column;
  min-height:0;
  height:auto;
  margin:0;
  padding:16px;
  border-radius:18px;
}

.training-topic-section-head {
  flex:0 0 auto;
  margin:0 2px 10px;
}

.training-topic-section-head h3 {
  font-size:20px;
  letter-spacing:0;
}

.training-topic-course-list {
  display:grid;
  grid-auto-rows:minmax(68px, auto);
  gap:6px;
  min-height:0;
  overflow:visible;
  padding:0;
}

.training-topic-course-card,
.training-topic-modal.is-dense-topic .training-topic-course-card {
  grid-template-columns:68px minmax(0, 1fr) 130px 150px 48px;
  min-height:68px;
  height:auto;
  overflow:visible;
  border:1px solid rgba(255,90,31,.1);
  border-radius:14px;
  opacity:1;
  transform:none;
  animation:none;
}

.training-topic-course-code,
.training-topic-modal.is-dense-topic .training-topic-course-code {
  min-width:44px;
  font-size:11px;
}

.training-topic-course-copy,
.training-topic-modal.is-dense-topic .training-topic-course-copy {
  min-width:0;
  padding:10px 14px;
}

.training-topic-course-copy h4,
.training-topic-modal.is-dense-topic .training-topic-course-copy h4 {
  overflow:visible;
  font-size:13px;
  line-height:1.3;
  text-overflow:clip;
  white-space:normal;
}

.training-topic-course-copy p,
.training-topic-modal.is-dense-topic .training-topic-course-copy p {
  display:block;
  overflow:visible;
  margin-top:4px;
  font-size:11px;
  line-height:1.4;
  text-overflow:clip;
  white-space:normal;
}

.training-topic-course-meta {
  min-width:0;
  overflow:visible;
  font-size:11px;
  white-space:normal;
}

.training-topic-course-card>button,
.training-topic-modal.is-dense-topic .training-topic-course-card>button {
  width:38px;
  height:38px;
  border:1px solid rgba(255,90,31,.14);
  border-radius:50%;
  font-size:18px;
}

.training-topic-footer,
.training-course-detail-navigation {
  min-height:64px;
  height:64px;
  padding:0 22px;
}

.training-topic-nav,
.training-course-detail-navigation .training-course-detail-nav {
  min-height:40px;
  font-size:13px;
}

.training-course-detail-modal {
  display:grid;
  grid-template-rows:52px minmax(0, 1fr) 64px;
}

.training-course-detail-content {
  grid-template-rows:auto auto auto;
  padding:18px 22px 20px;
}

.training-course-detail-copy {
  min-width:0;
  min-height:240px;
  align-content:start;
  padding:24px 28px 20px;
}

.training-course-detail-code {
  align-self:start;
  margin-top:8px;
  font-size:clamp(62px, 5.2vw, 88px);
  line-height:.84;
  letter-spacing:0;
}

.training-course-detail-copy h2 {
  font-size:clamp(28px, 2.5vw, 42px);
}

.training-course-detail-copy>p {
  font-size:16px;
}

.training-course-detail-chips {
  gap:8px;
  margin-top:16px;
}

.training-course-detail-chips>span {
  min-width:0;
  min-height:52px;
  padding:8px 10px;
}

.training-course-detail-chips small,
.training-course-detail-chips strong {
  font-size:11px;
}

.training-course-detail-cards {
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:12px;
  min-height:0;
}

.training-course-detail-cards article {
  min-height:150px;
  padding:18px 20px;
  overflow:visible;
}

.training-course-detail-card-heading h3,
.training-course-detail-cta h3 {
  font-size:18px;
  letter-spacing:0;
}

.training-course-detail-cards ul {
  gap:8px;
  margin-top:12px;
}

.training-course-detail-cards li {
  overflow:visible;
  font-size:14px;
  line-height:1.45;
}

.training-course-detail-cta {
  min-height:82px;
  padding:14px 22px;
}

.training-course-detail-cta p {
  font-size:14px;
  line-height:1.45;
}

.training-course-detail-cta a {
  min-height:48px;
  font-size:13px;
}

@media (max-width:767px) {
  .training-topic-layer,
  .training-course-detail-layer {
    padding:0;
  }

  .training-topic-modal,
  .training-course-detail-modal {
    width:100%;
    height:100%;
    max-height:none;
    border:0;
    border-radius:0;
  }

  .training-topic-modal,
  .training-course-detail-modal {
    grid-template-rows:62px minmax(0, 1fr) 84px;
  }

  .training-topic-header,
  .training-course-detail-header {
    height:62px;
    min-height:62px;
    padding:0 20px;
  }

  .training-topic-content,
  .training-course-detail-content {
    display:block;
    overflow-y:auto;
    padding:18px 20px 110px;
  }

  .training-topic-hero,
  .training-course-detail-hero {
    display:block;
    min-height:0;
    overflow:visible;
  }

  .training-topic-intro,
  .training-course-detail-copy {
    display:block;
    min-height:0;
    padding:24px 20px 20px;
  }

  .training-topic-intro h2,
  .training-course-detail-copy h2 {
    max-width:100%;
    margin:0;
    font-size:26px;
    line-height:1.08;
  }

  .training-topic-intro p,
  .training-course-detail-copy>p {
    max-width:100%;
    font-size:16px;
  }

  .training-course-detail-code {
    display:block;
    margin:10px 0 8px;
    font-size:64px;
    line-height:.82;
  }

  .training-topic-visual,
  .training-course-detail-visual {
    position:absolute;
    top:18px;
    right:18px;
    width:70px;
    height:70px;
    padding:0;
  }

  .training-topic-visual img,
  .training-course-detail-visual img {
    width:64px;
    height:60px;
    max-height:60px;
  }

  .training-topic-courses {
    margin-top:14px;
    padding:14px 12px;
  }

  .training-topic-course-list {
    overflow:visible;
  }

  .training-topic-course-card,
  .training-topic-modal.is-dense-topic .training-topic-course-card {
    grid-template-columns:50px minmax(0, 1fr) 44px;
    min-height:96px;
  }

  .training-topic-course-copy,
  .training-topic-modal.is-dense-topic .training-topic-course-copy {
    padding:12px 10px;
  }

  .training-topic-course-copy h4,
  .training-topic-modal.is-dense-topic .training-topic-course-copy h4 {
    font-size:14px;
  }

  .training-topic-course-copy p,
  .training-topic-modal.is-dense-topic .training-topic-course-copy p {
    font-size:12px;
  }

  .training-topic-course-meta {
    display:none;
  }

  .training-topic-footer,
  .training-course-detail-navigation {
    height:84px;
    min-height:84px;
    padding:10px 20px;
  }

  .training-course-detail-cards {
    grid-template-columns:1fr;
    gap:10px;
    margin-top:14px;
  }

  .training-course-detail-chips {
    display:grid;
    grid-template-columns:repeat(2, minmax(0, 1fr));
    gap:8px;
    margin-top:16px;
  }

  .training-course-detail-chips>span,
  .training-course-detail-chips>span.is-location {
    width:auto;
    min-width:0;
    min-height:58px;
  }

  .training-course-detail-chips strong {
    overflow:visible;
    font-size:11px;
    line-height:1.25;
    text-overflow:clip;
    white-space:normal;
  }

  .training-course-detail-cards article {
    min-height:0;
    padding:18px;
  }

  .training-course-detail-cta {
    grid-template-columns:52px 1fr;
    margin-top:14px;
    padding:18px;
  }

  .training-course-detail-cta a {
    grid-column:1/-1;
    width:100%;
  }
}

@media (min-width:768px) {
  .training-topic-courses {
    min-height:0;
    overflow:hidden;
  }

  .training-topic-course-list {
    min-height:0;
    overflow-y:auto;
    overflow-x:hidden;
    padding-right:4px;
    scrollbar-color:rgba(255,90,31,.22) transparent;
    scrollbar-width:thin;
  }
}

@media (min-width:768px) {
  /* Keep the CTA after the real card height, even for long prerequisite lists. */
  .training-course-detail-content {
    grid-template-rows:max-content max-content max-content;
  }

  .training-course-detail-cards {
    min-height:max-content;
  }

  .training-course-detail-cards article {
    min-height:150px;
    overflow:visible;
  }
}

/* Final cascade lock: the premium layout must win over historical revisions. */
.training-hero {
  display:block;
  height:auto!important;
  min-height:auto!important;
  padding:clamp(108px,11vh,150px) 0 clamp(70px,8vh,105px)!important;
  background:radial-gradient(circle at 78% 15%,rgba(255,90,31,.10),transparent 31%),#fffaf7;
}
.training-hero-grid {
  display:grid;
  grid-template-columns:minmax(0,1.02fr) minmax(480px,.98fr);
  align-items:stretch;
  min-height:570px!important;
  padding-top:0;
}
.training-hero-copy { max-width:none; padding:34px clamp(34px,4.4vw,74px) 34px 0; }
.training-hero h1 { max-width:800px; font-size:clamp(52px,5.2vw,80px); line-height:.98; }
.training-hero h1 span { display:inline; white-space:normal; overflow-wrap:normal; }
.training-lead { max-width:750px; margin-top:26px; color:#4f4f4f; font-size:clamp(16px,1.25vw,20px); line-height:1.58; }
.training-hero-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:30px; }
.training-hero-button { min-width:0; border-radius:999px; }
.training-facts { grid-template-columns:repeat(4,minmax(0,1fr)); width:100%; margin-top:42px; border-top:1px solid rgba(23,23,23,.11); border-radius:0; background:transparent; box-shadow:none; }
.training-facts article { grid-template-columns:28px 1fr; min-height:90px; padding:18px 13px; border-top:0; background:transparent; }
.training-facts svg { width:20px; height:20px; }
.training-facts strong { font-size:14px; line-height:1.25; }
.training-facts span { font-size:10px; line-height:1.3; }
.training-hero-visual { position:relative; inset:auto; z-index:auto; min-height:570px; margin:0; border-radius:28px; overflow:hidden; box-shadow:0 30px 80px rgba(45,30,20,.12); }
.training-hero-visual::after { background:linear-gradient(90deg,rgba(255,250,247,.20),transparent 35%); }
.training-hero-visual img { border-radius:0; }
.training-category-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; overflow:visible; }
.training-category-card { min-height:270px!important; padding:30px!important; }
.training-course-detail-cards { grid-template-columns:repeat(4,minmax(0,1fr)); height:auto; min-height:max-content; }

@media (max-width:1100px) {
  .training-hero { padding-top:112px!important; }
  .training-hero-grid { grid-template-columns:1fr; min-height:auto!important; padding-top:0; }
  .training-hero-copy { padding:20px 0 46px; }
  .training-hero-visual { position:relative; inset:auto; min-height:430px; }
  .training-category-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .training-course-detail-cards { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

@media (max-width:767px) {
  .training-hero { padding:94px 0 58px!important; }
  .training-hero-grid { display:grid; min-height:0!important; }
  .training-hero-copy { padding:0 0 34px; }
  .training-hero h1 { font-size:clamp(42px,12vw,56px); }
  .training-hero-actions { display:grid; }
  .training-hero-button { width:100%; }
  .training-facts { grid-template-columns:1fr 1fr; }
  .training-facts article { min-height:82px; }
  .training-hero-visual { position:relative; inset:auto; min-height:270px; border-radius:20px; }
  .training-hero-visual::after { background:linear-gradient(90deg,rgba(255,250,247,.15),transparent 45%); }
  .training-category-grid { display:grid; grid-template-columns:1fr; gap:12px; overflow:visible; }
  .training-category-card { width:100%; min-height:225px!important; padding:25px!important; }
  .training-course-detail-cards { grid-template-columns:1fr; }
}

/* Training rhythm normalization 2026.
 * A compact, predictable spacing and type scale for the hub and SEO course pages.
 * The higher specificity intentionally protects these components from global theme headings. */
body.training-body .training-hero {
  height:auto!important;
  min-height:0!important;
  padding:96px 0 40px!important;
}
body.training-body .training-hero-grid {
  min-height:0!important;
}
body.training-body .training-hero-copy {
  padding:24px clamp(28px,3.8vw,60px) 24px 0;
}
body.training-body .training-hero h1 {
  font-size:clamp(48px,4.4vw,62px)!important;
  line-height:1!important;
}
body.training-body .training-lead {
  margin-top:20px;
  font-size:17px!important;
  line-height:1.55;
}
body.training-body .training-hero-actions {
  margin-top:24px;
}
body.training-body .training-facts {
  margin-top:30px;
}
body.training-body .training-facts article {
  min-height:78px;
  padding:14px 12px;
}
body.training-body .training-hero-visual {
  min-height:510px;
}
body.training-body .training-section-heading {
  margin-bottom:34px;
}
body.training-body .training-section-heading h2 {
  font-size:clamp(34px,3.3vw,46px)!important;
  line-height:1.05!important;
}
body.training-body .training-section-heading>p:last-child {
  margin-top:16px;
  font-size:16px;
  line-height:1.55;
}
body.training-body .training-value {
  padding:72px 0;
}
body.training-body .training-value-grid article {
  min-height:210px;
  padding:32px clamp(22px,2.6vw,38px);
}
body.training-body .training-value-grid h3 {
  margin-top:24px;
  font-size:20px!important;
}
body.training-body .training-categories {
  padding:72px 0!important;
}
body.training-body .training-search {
  margin-bottom:32px;
}
body.training-body .training-category-card {
  min-height:238px!important;
  padding:26px!important;
}
body.training-body .training-category-card strong {
  margin-top:18px;
  font-size:19px!important;
  line-height:1.2;
}
body.training-body .training-category-card small {
  margin-bottom:28px;
  font-size:14px;
}
body.training-body .training-category-card>span {
  bottom:21px;
  left:26px;
}
body.training-body .training-custom-course {
  padding-bottom:72px;
}
body.training-body .training-custom-course-panel {
  min-height:245px;
  padding:42px;
}
body.training-body .training-custom-course-copy h2 {
  font-size:clamp(34px,3.3vw,46px)!important;
  line-height:1.05!important;
}

body.training-course-body .training-course-breadcrumb {
  padding-top:112px;
}
body.training-course-body .training-course-page-hero {
  padding:22px 0 56px;
}
body.training-course-body .training-course-page-hero-grid {
  min-height:460px;
  gap:clamp(40px,5vw,72px);
}
body.training-course-body .training-course-page-code {
  margin-bottom:13px;
  font-size:clamp(52px,5.5vw,74px)!important;
}
body.training-course-body .training-course-page-copy h1 {
  font-size:clamp(42px,4.2vw,58px)!important;
  line-height:1.02!important;
}
body.training-course-body .training-course-page-copy>p:last-of-type {
  margin-top:20px;
  font-size:17px!important;
  line-height:1.55;
}
body.training-course-body .training-course-page-actions {
  margin-top:24px;
}
body.training-course-body .training-course-page-visual {
  min-height:330px;
}
body.training-course-body .training-course-page-visual img {
  height:280px;
}
body.training-course-body .training-course-page-facts article {
  min-height:84px;
  padding:18px 20px;
}
body.training-course-body .training-course-page-facts strong {
  font-size:15px;
}
body.training-course-body .training-course-page-intro {
  padding:68px 0;
}
body.training-course-body .training-course-page-intro-grid {
  gap:clamp(40px,5vw,72px);
}
body.training-course-body .training-course-page-intro h2 {
  font-size:clamp(34px,3.2vw,44px)!important;
  line-height:1.05!important;
}
body.training-course-body .training-course-page-intro-grid>p {
  font-size:17px;
  line-height:1.65;
}
body.training-course-body .training-course-page-content {
  padding-bottom:68px;
}
body.training-course-body .training-course-page-content-grid {
  align-items:stretch;
  gap:14px;
}
body.training-course-body .training-course-page-content article {
  min-height:0;
  padding:28px;
}
body.training-course-body .training-course-page-content h2 {
  margin:15px 0 13px;
  font-size:22px!important;
  line-height:1.2!important;
  letter-spacing:-.02em;
}
body.training-course-body .training-course-page-content ul {
  gap:8px;
}
body.training-course-body .training-course-page-content li {
  font-size:15px;
  line-height:1.45;
}
body.training-course-body .training-course-related {
  margin-top:22px;
}
body.training-course-body .training-course-page-cta-panel {
  padding:42px;
}
body.training-course-body .training-course-page-cta h2 {
  font-size:clamp(32px,3vw,40px)!important;
  line-height:1.05!important;
}
body.training-course-body .training-course-page-back {
  padding-bottom:60px;
}

@media (max-width:1100px) {
  body.training-body .training-hero {
    min-height:0!important;
    padding:96px 0 46px!important;
  }
  body.training-body .training-hero-grid {
    min-height:0!important;
  }
  body.training-body .training-hero-copy {
    padding:16px 0 38px;
  }
  body.training-body .training-hero h1 {
    font-size:48px!important;
  }
  body.training-body .training-hero-visual {
    min-height:380px;
  }
  body.training-body .training-value {
    padding:64px 0;
  }
  body.training-body .training-categories {
    padding:64px 0!important;
  }
  body.training-body .training-custom-course {
    padding-bottom:64px;
  }
  body.training-body .training-custom-course-panel {
    min-height:0;
    padding:38px;
  }
  body.training-course-body .training-course-page-hero-grid {
    min-height:0;
    padding-top:24px;
  }
  body.training-course-body .training-course-page-visual {
    min-height:300px;
  }
}

@media (max-width:767px) {
  body.training-body .training-hero {
    min-height:0!important;
    padding:88px 0 38px!important;
  }
  body.training-body .training-hero-copy {
    padding:0 0 30px;
  }
  body.training-body .training-hero h1 {
    font-size:40px!important;
    line-height:1.02!important;
  }
  body.training-body .training-lead {
    font-size:16px!important;
  }
  body.training-body .training-facts {
    margin-top:24px;
  }
  body.training-body .training-hero-visual {
    min-height:240px;
  }
  body.training-body .training-section-heading {
    margin-bottom:28px;
  }
  body.training-body .training-section-heading h2 {
    font-size:32px!important;
  }
  body.training-body .training-value {
    padding:52px 0;
  }
  body.training-body .training-categories {
    padding:54px 0!important;
  }
  body.training-body .training-value-grid article {
    padding:26px 4px;
  }
  body.training-body .training-category-card {
    min-height:205px!important;
    padding:22px!important;
  }
  body.training-body .training-category-card strong {
    font-size:18px!important;
  }
  body.training-body .training-category-card>span {
    bottom:18px;
    left:22px;
  }
  body.training-body .training-custom-course {
    padding-bottom:52px;
  }
  body.training-body .training-custom-course-panel {
    padding:28px 22px;
  }
  body.training-body .training-custom-course-copy h2 {
    font-size:32px!important;
  }
  body.training-course-body .training-course-breadcrumb {
    padding-top:88px;
  }
  body.training-course-body .training-course-page-hero {
    padding:14px 0 42px;
  }
  body.training-course-body .training-course-page-hero-grid {
    gap:28px;
    padding-top:18px;
  }
  body.training-course-body .training-course-page-code {
    font-size:48px!important;
  }
  body.training-course-body .training-course-page-copy h1 {
    font-size:36px!important;
  }
  body.training-course-body .training-course-page-visual {
    min-height:220px;
  }
  body.training-course-body .training-course-page-visual img {
    height:195px;
  }
  body.training-course-body .training-course-page-intro {
    padding:50px 0;
  }
  body.training-course-body .training-course-page-intro h2 {
    font-size:32px!important;
  }
  body.training-course-body .training-course-page-intro-grid>p {
    font-size:16px;
  }
  body.training-course-body .training-course-page-content {
    padding-bottom:50px;
  }
  body.training-course-body .training-course-page-content article {
    padding:22px;
  }
  body.training-course-body .training-course-page-content h2 {
    font-size:21px!important;
  }
  body.training-course-body .training-course-page-cta-panel {
    padding:28px 22px;
  }
  body.training-course-body .training-course-page-cta h2 {
    font-size:30px!important;
  }
  body.training-course-body .training-course-page-back {
    padding-bottom:48px;
  }
}

/* Hero formazione full bleed, coerente con le immagini estese del sito. */
@media (min-width:1101px) {
  body.training-body .training-hero {
    position:relative;
    isolation:isolate;
    overflow:hidden;
  }
  body.training-body .training-hero-grid {
    position:relative;
    z-index:2;
    display:block;
  }
  body.training-body .training-hero-copy {
    width:min(54%,740px);
    padding-right:0;
  }
  body.training-body .training-hero-visual {
    position:absolute!important;
    z-index:0;
    inset:0!important;
    width:100%;
    min-height:0;
    margin:0;
    border-radius:0;
    box-shadow:none;
  }
  body.training-body .training-hero-visual::after {
    background:linear-gradient(90deg,#fffaf7 0%,rgba(255,250,247,.98) 31%,rgba(255,250,247,.82) 46%,rgba(255,250,247,.18) 66%,transparent 78%);
  }
  body.training-body .training-hero-visual img {
    border-radius:0;
    object-fit:cover;
    object-position:center center;
  }
}

@media (max-width:1100px) {
  body.training-body .training-hero {
    padding-bottom:0!important;
    overflow:hidden;
  }
  body.training-body .training-hero-grid {
    position:relative;
    z-index:2;
  }
  body.training-body .training-hero-visual {
    position:relative!important;
    inset:auto!important;
    width:100vw;
    min-height:0;
    height:380px;
    margin:0 calc(50% - 50vw);
    border-radius:0;
    box-shadow:none;
  }
  body.training-body .training-hero-visual::after {
    background:linear-gradient(180deg,#fffaf7 0%,rgba(255,250,247,.12) 20%,transparent 42%);
  }
  body.training-body .training-hero-visual img {
    border-radius:0;
    object-fit:cover;
    object-position:center center;
  }
}

@media (max-width:767px) {
  body.training-body .training-hero-visual {
    height:270px;
  }
}

/* CTA formazione aziendale: composizione centrata e più equilibrata. */
body.training-body .training-custom-course-panel {
  grid-template-columns:1fr;
  justify-items:center;
  gap:28px;
  min-height:0;
  padding:52px clamp(34px,5vw,76px);
  text-align:center;
}
body.training-body .training-custom-course-copy {
  width:100%;
}
body.training-body .training-custom-course-copy>p:first-child {
  margin-bottom:12px;
  text-align:center;
}
body.training-body .training-custom-course-copy h2 {
  max-width:1040px;
  margin-inline:auto;
  text-wrap:balance;
}
body.training-body .training-custom-course-copy>p:last-child {
  max-width:900px;
  margin:18px auto 0;
  text-wrap:pretty;
}
body.training-body .training-custom-course-cta {
  justify-self:center;
  min-width:300px;
}
body.training-body .training-custom-course-panel::after {
  right:50%;
  bottom:-190px;
  transform:translateX(50%);
  opacity:.48;
}

@media (max-width:767px) {
  body.training-body .training-custom-course-panel {
    gap:24px;
    padding:36px 22px;
  }
  body.training-body .training-custom-course-cta {
    width:100%;
    min-width:0;
  }
}
