@charset "UTF-8";
:root{--navy:#08284a;--navy2:#061b34;--cyan:#19b8c4;--bg:#f3f6f9;--ink:#14273b;--muted:#68798a;--line:#dce4eb}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:Manrope,Arial,sans-serif;color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased}
a{color:inherit}
.wrap{width:min(1120px,calc(100% - 40px));margin:auto}
.topbar{height:72px;background:var(--navy2);color:#fff}
.topbar .wrap{height:100%;display:flex;align-items:center;justify-content:space-between}
.brand{display:flex;gap:10px;align-items:center;color:#fff;text-decoration:none}
.brand-mark{width:38px;height:38px;border-radius:10px;display:grid;place-items:center;background:linear-gradient(135deg,#19c5d0,#2784e0);font-size:21px;font-weight:800}
.brand b,.brand small{display:block}
.brand b{font-size:15px;letter-spacing:.08em}
.brand small{font-size:9px;color:#9eb2c6;text-transform:uppercase;letter-spacing:.14em}
.actions{display:flex;gap:10px}
.actions a{height:40px;padding:0 14px;display:flex;align-items:center;gap:8px;color:#c8d4df;text-decoration:none;font-size:12px;border-radius:9px}
.actions a:hover{background:#ffffff14;color:#fff}
.actions .home{border:1px solid #ffffff2e;color:#fff}
.hero{height:300px;display:flex;align-items:center;color:#fff;background-image:linear-gradient(90deg,#051931f7,#051931db 56%,#05193157),url('../images/hero-lungarni-2026-v2.png');background-size:cover;background-position:center}
.kicker{margin:0 0 13px;color:#7de0e1;font-size:10px;font-weight:800;letter-spacing:.22em;text-transform:uppercase}
.hero h1{margin:0 0 18px;font-size:clamp(32px,5vw,48px);line-height:1.08;letter-spacing:-.035em}
.hero p:last-child{margin:0;color:#d4e0ea;font-size:14px}
.main{padding:36px 0 72px}
.courses{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:0 0 32px;position:relative;z-index:2}
.course{min-height:108px;padding:18px;display:grid;grid-template-columns:44px 1fr 14px;align-items:center;gap:13px;background:#fffffff7;border:1px solid #dce4ebe6;border-radius:14px;box-shadow:0 14px 34px #08284a1f;text-decoration:none;transition:.2s}
.course:hover{transform:translateY(-3px);border-color:#a9d9de}
.course>i:first-child{width:44px;height:44px;display:grid;place-items:center;border-radius:12px;background:#e8f6f7;color:#0b8e98;font-size:18px}
.course b,.course small{display:block}
.course b{font-size:14px;line-height:1.35}
.course small{margin-top:4px;color:var(--muted);font-size:10px}
.course>i:last-child{color:#91a4b5;font-size:11px}
body.ecm-a .course[href="ecm_a.aspx"],body.ecm-b .course[href="ecm_b.aspx"],body.ecm-c .course[href="ecm_c.aspx"]{color:#fff;background:linear-gradient(135deg,#075c86,#078fa0);border-color:transparent}
body.ecm-a .course[href="ecm_a.aspx"] small,body.ecm-b .course[href="ecm_b.aspx"] small,body.ecm-c .course[href="ecm_c.aspx"] small{color:#d9f5f6}
.layout{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(270px,.75fr);gap:22px;align-items:start}
.card{overflow:hidden;background:#fff;border-radius:16px;box-shadow:0 10px 30px #0c274314}
.card-head{padding:26px 28px 23px;border-top:5px solid var(--cyan);border-bottom:1px solid var(--line)}
.code{margin:0 0 7px;color:#078c96;font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.card-head h2{margin:0;font-size:clamp(22px,3vw,30px);line-height:1.22}
.card-body{padding:28px}
.card-body>p:first-child{margin-top:0}
.alert{padding:22px;background:#fff8df;border:1px solid #f4d98c;border-left:5px solid #efc35c;border-radius:12px}
.alert h3{margin:0 0 10px;font-size:17px}
.alert p{margin:0 0 10px;color:#5e512d;font-size:13px;line-height:1.65}
.support a{color:#075f87;font-weight:700}
.cta{width:fit-content;min-height:48px;margin-top:12px;padding:0 20px;display:inline-flex;align-items:center;gap:10px;color:#fff;background:linear-gradient(135deg,#075c86,#078fa0);border-radius:10px;font-size:13px;font-weight:800;text-decoration:none}
.side{padding:24px;border-top:5px solid #7b5bd6}
.side h2{margin:0 0 9px;font-size:18px}
.side>p{margin:0 0 20px;color:var(--muted);font-size:12px}
.steps{margin:0;padding:0;list-style:none;counter-reset:s}
.steps li{padding:0 0 18px 43px;position:relative;font-size:12px;line-height:1.55}
.steps li:before{content:counter(s);counter-increment:s;width:29px;height:29px;position:absolute;left:0;display:grid;place-items:center;color:#6745c4;background:#eee8ff;border-radius:9px;font-weight:800}
.rules{padding:0;margin:0;list-style:none}
.rules li{padding:18px 0;border-bottom:1px solid #edf1f4}
.rules li:first-child{padding-top:0}
.rules li:last-child{border:0;padding-bottom:0}
.rules h3{margin:0 0 7px;display:flex;gap:9px;font-size:13px}
.rules h3 i{color:#078c96}
.rules p{margin:0;color:var(--muted);font-size:12px;line-height:1.65}
.footer{padding:24px 0;color:#8298ac;background:var(--navy2);font-size:10px}
.footer .wrap{display:flex;justify-content:space-between}
.footer a{color:#b6c6d4;text-decoration:none}
:focus-visible{outline:3px solid #67d9de;outline-offset:3px}
@media(max-width:860px){.courses{grid-template-columns:1fr;margin-top:0}
.course{min-height:82px}
.layout{grid-template-columns:1fr}
}
@media(max-width:560px){.wrap{width:calc(100% - 28px)}
.actions a:first-child{display:none}
.hero{height:310px;align-items:flex-start;padding-top:58px;background-image:linear-gradient(180deg,#05193180,#051931f7 68%),url('../images/hero-lungarni-2026-v2.png');background-position:66% center}
.courses{margin-top:0}
.card-head,.card-body,.side{padding-left:20px;padding-right:20px}
.cta{width:100%;justify-content:center}
.footer .wrap{display:grid;gap:7px}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}
*{transition:none!important}
}

/* Accesso ECM */
.ecm-login-page{min-height:100vh;display:flex;flex-direction:column;background:linear-gradient(180deg,#eef4f7 0,#f7f9fb 100%)}
.ecm-login-main{flex:1;padding:48px 0 64px}
.ecm-login-card{width:min(620px,100%);margin:0 auto;overflow:hidden;background:#fff;border:1px solid #dce6ec;border-radius:20px;box-shadow:0 22px 55px #08284a1a}
.ecm-login-accent{height:6px;background:linear-gradient(90deg,#19b8c4,#087f9a 58%,#7656d8)}
.ecm-login-content{padding:42px 48px;text-align:center}
.ecm-login-icon{width:68px;height:68px;margin:0 auto 22px;display:grid;place-items:center;color:#087f92;background:#e4f6f7;border-radius:19px;font-size:28px;box-shadow:inset 0 0 0 1px #ccebed}
.ecm-login-kicker{margin:0 0 10px;color:#078b96;font-size:11px;font-weight:800;letter-spacing:.14em;text-transform:uppercase}
.ecm-login-content h1{margin:0;color:#102b44;font-size:clamp(26px,5vw,36px);line-height:1.16;letter-spacing:-.035em}
.ecm-login-event{margin:12px 0 0;color:#334c63;font-size:15px;font-weight:700}
.ecm-login-intro{max-width:470px;margin:20px auto 30px;color:#68798a;font-size:13px;line-height:1.65}
.ecm-login-profile:empty{display:none}
.ecm-login-profile{margin:0 0 22px;color:#c3392d;font-size:13px;font-weight:700}
.ecm-login-profile img:not([src]){display:none}
.ecm-login-profile>span{display:block}
.ecm-login-field{text-align:left}
.ecm-login-field label{display:block;margin:0 0 9px;color:#1d354b;font-size:13px;font-weight:800}
.ecm-login-input-wrap{height:58px;display:flex;align-items:center;gap:12px;padding:0 17px;background:#f8fafb;border:1px solid #b9cad5;border-radius:11px;transition:.2s}
.ecm-login-input-wrap:focus-within{background:#fff;border-color:#0797a4;box-shadow:0 0 0 4px #19b8c41f}
.ecm-login-input-wrap i{color:#168e9a;font-size:17px}
.ecm-login-input-wrap input{width:100%;height:100%;padding:0;color:#172b3e;background:transparent;border:0;outline:0;font:600 17px/1 Manrope,Arial,sans-serif;letter-spacing:.02em}
.ecm-login-field small{display:block;margin-top:8px;color:#7a8996;font-size:10px;line-height:1.45}
.ecm-login-message{min-height:23px;margin:9px 0 4px;color:#bd3127;font-size:12px;font-weight:700}
.ecm-login-submit{width:100%;min-height:54px;padding:0 22px;color:#fff;background:linear-gradient(135deg,#075c86,#078fa0);border:0;border-radius:11px;box-shadow:0 10px 22px #087e9329;cursor:pointer;font:800 13px/1 Manrope,Arial,sans-serif;letter-spacing:.08em;transition:.2s}
.ecm-login-submit:hover{transform:translateY(-2px);box-shadow:0 14px 27px #087e9338}
.ecm-login-support{margin:22px 0 0;color:#738391;font-size:11px}
.ecm-login-support a{color:#076f8e;font-weight:800;text-decoration:none}
.ecm-login-support a:hover{text-decoration:underline}
@media(max-width:560px){.ecm-login-main{padding:28px 0 44px}.ecm-login-content{padding:32px 22px}.ecm-login-card{border-radius:16px}.ecm-login-icon{width:58px;height:58px;margin-bottom:18px;font-size:24px}.ecm-login-intro{margin-bottom:24px}}
