:root{
  --slate:#769184;
  --slate-dark:#617d70;
  --aqua:#769184;
  --aqua-dark:#617d70;
  --sage:#91a99d;
  --sage-soft:#c4d0c8;
  --beige:#ece8df;
  --beige-soft:#f7f4ed;
  --paper:rgba(255,252,246,.94);
  --paper-strong:#fffdf8;
  --teal:#0f4b39;
  --olive:#58612f;
  --charcoal:#353a38;
  --muted:#69726e;
  --line:rgba(76,105,113,.18);
  --danger:#9d4039;
  --danger-bg:#faece9;
  --warning:#7d5b1a;
  --warning-bg:#fff6dc;
  --shadow:0 20px 56px rgba(16,61,46,.10);
}

*{box-sizing:border-box}
html{min-height:100%;background:var(--beige)}
body{
  position:relative;
  margin:0;
  min-height:100vh;
  color:var(--charcoal);
  background:
    linear-gradient(180deg, rgba(245,242,234,.96) 0%, rgba(236,232,223,.98) 100%);
  font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
body::before{
  content:"";
  position:fixed;
  inset:0;
  z-index:0;
  background-image:
    linear-gradient(rgba(236,232,223,.83), rgba(236,232,223,.83)),
    url('pattern-bg.png');
  background-repeat:no-repeat, repeat;
  background-position:center, center;
  background-size:auto, 720px auto;
  opacity:.52;
  pointer-events:none;
}
a{color:inherit}

.site-header,
.page,
.site-footer{position:relative;z-index:1}

.site-header{
  background:rgba(118,145,132,.985);
  color:var(--beige-soft);
  border-top:5px solid var(--teal);
  box-shadow:0 8px 22px rgba(16,61,46,.08);
}
.header-inner,.footer-inner{
  width:min(1180px,calc(100% - 40px));
  margin:0 auto;
}
.header-inner{
  min-height:74px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
}
.mini-brand{
  display:inline-flex;
  align-items:center;
  gap:11px;
  color:#fffdf8;
  text-decoration:none;
  font-weight:850;
  letter-spacing:.015em;
  font-size:13px;
}
.mini-brand img{
  width:38px;
  height:38px;
  object-fit:cover;
  border:1px solid rgba(255,255,255,.55);
  background:var(--beige-soft);
}
.header-link{
  color:#fffdf8;
  text-decoration:none;
  font-size:12px;
  font-weight:800;
  padding:8px 0 5px;
  border-bottom:1px solid rgba(255,253,248,.58);
  opacity:.96;
}

.page{
  width:min(1180px,calc(100% - 40px));
  margin:0 auto;
}
.home-page{
  display:grid;
  grid-template-columns:minmax(0,1.1fr) minmax(370px,.9fr);
  gap:26px;
  align-items:start;
  padding:28px 0 48px;
}

.brand-hero{
  position:relative;
  overflow:hidden;
  padding:36px 38px 34px;
  background:rgba(118,145,132,.94);
  color:var(--beige-soft);
  box-shadow:var(--shadow);
  border:1px solid rgba(76,105,113,.20);
  backdrop-filter:blur(2px);
}
.brand-hero::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    linear-gradient(135deg,rgba(255,255,255,.13),transparent 38%),
    linear-gradient(180deg,transparent 0 58%,rgba(15,75,57,.12) 58% 100%);
  pointer-events:none;
}
.hero-copy{position:relative;z-index:2;max-width:780px}
.hero-kicker{
  margin:0 0 12px;
  color:#edf2ed;
  font-size:12px;
  font-weight:850;
  letter-spacing:.16em;
  text-transform:uppercase;
}
.brand-hero h1{
  margin:0;
  max-width:760px;
  font-size:clamp(34px,4.6vw,60px);
  line-height:1.02;
  letter-spacing:-.035em;
  font-weight:520;
  color:var(--beige-soft);
}
.brand-hero h1 strong{font-weight:920;color:#ffffff}
.area-title{
  display:inline-block;
  margin-top:20px;
  padding:9px 16px 10px;
  background:var(--beige-soft);
  color:var(--teal);
  font-size:clamp(28px,3.6vw,46px);
  line-height:1;
  font-weight:950;
  letter-spacing:.055em;
  box-shadow:8px 8px 0 rgba(97,125,112,.92);
}
.hero-theme{
  max-width:680px;
  margin:20px 0 0;
  color:#f1f4f1;
  font-size:15px;
  line-height:1.55;
  font-weight:550;
}
.hero-pattern{position:absolute;pointer-events:none;z-index:1}
.hero-pattern-dots{
  right:20px;
  bottom:18px;
  width:128px;
  height:128px;
  opacity:.18;
  background-image:radial-gradient(circle,var(--olive) 0 6px,transparent 7px);
  background-size:28px 28px;
}
.hero-pattern-circle{
  right:-28px;
  top:-24px;
  width:126px;
  height:126px;
  border:18px solid rgba(243,243,238,.18);
  border-radius:50%;
  opacity:.72;
}

.access-panel{
  position:relative;
  z-index:1;
  width:100%;
  margin:0;
}
.card{
  background:var(--paper);
  border:1px solid var(--line);
  border-top:8px solid var(--teal);
  box-shadow:var(--shadow);
  padding:30px 32px 28px;
  backdrop-filter:blur(3px);
}
.card-heading{text-align:left;max-width:100%;margin:0 0 22px}
.card-kicker{
  margin:0 0 8px;
  color:var(--olive);
  font-size:11px;
  font-weight:900;
  letter-spacing:.17em;
  text-transform:uppercase;
}
.card h2,.success-card h1{
  margin:0 0 10px;
  color:var(--teal);
  font-size:34px;
  line-height:1.08;
  font-weight:850;
  letter-spacing:-.025em;
}
.intro{
  margin:0;
  color:var(--muted);
  line-height:1.6;
  font-size:15px;
}
label{
  display:block;
  margin:0 0 8px;
  font-size:12px;
  font-weight:850;
  letter-spacing:.035em;
  color:var(--charcoal);
}
input[type="text"]{
  width:100%;
  height:50px;
  padding:0 15px;
  border:1px solid rgba(76,105,113,.26);
  border-radius:0;
  background:rgba(255,255,255,.95);
  color:var(--charcoal);
  font:inherit;
  outline:none;
  transition:border-color .15s,box-shadow .15s,background .15s;
}
input[type="text"]:focus{
  border-color:var(--slate);
  background:#fffefc;
  box-shadow:0 0 0 3px rgba(76,105,113,.12);
}
input::placeholder{color:#9ea5a1}
.form-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:15px;
  margin-top:16px;
}
button{
  border:0;
  width:100%;
  min-height:54px;
  margin-top:22px;
  padding:0 20px;
  background:var(--teal);
  color:var(--beige-soft);
  font:inherit;
  font-size:14px;
  font-weight:900;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:12px;
  transition:background .15s,transform .15s,box-shadow .15s;
}
button:hover{
  background:var(--aqua-dark);
  transform:translateY(-1px);
  box-shadow:0 8px 20px rgba(16,61,46,.16);
}
button:focus-visible{outline:3px solid rgba(88,101,40,.28);outline-offset:3px}
.alert{
  margin:0 0 20px;
  padding:13px 15px;
  border-left:4px solid var(--danger);
  background:var(--danger-bg);
  color:#6f2a25;
  font-size:13px;
  line-height:1.5;
}
.alert.warning{border-left-color:var(--warning);background:var(--warning-bg);color:#674813}
.alert.success{border-left-color:var(--teal);background:#edf4f0;color:var(--teal)}
.privacy-box{
  display:flex;
  gap:10px;
  align-items:flex-start;
  margin-top:22px;
  padding-top:18px;
  border-top:1px solid var(--line);
  color:var(--muted);
  font-size:12px;
  line-height:1.55;
}
.privacy-box svg{
  flex:0 0 20px;
  width:20px;
  height:20px;
  fill:none;
  stroke:var(--teal);
  stroke-width:1.6;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.privacy-box p{margin:0}
.privacy-box a,.support a{color:var(--teal);font-weight:800}
.support{margin:14px 0 0;font-size:12px;color:var(--muted)}

.site-footer{
  border-top:4px solid rgba(15,75,57,.24);
  background:rgba(118,145,132,.985);
  color:rgba(243,243,238,.84);
  font-size:12px;
}
.footer-inner{
  min-height:72px;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);
  align-items:center;
  gap:22px;
}
.footer-left{justify-self:start}
.footer-powered{justify-self:center;white-space:nowrap;color:#fff;font-size:13px;font-weight:800;letter-spacing:.02em}
.footer-powered a{font-weight:950;text-decoration:underline;text-underline-offset:3px}
.footer-inner nav{display:flex;flex-wrap:wrap;gap:18px;justify-self:end}
.footer-inner a{text-decoration:none;color:var(--beige-soft);font-weight:800}
.site-footer.compact .footer-inner{min-height:68px}

/* Pagina attestato disponibile */
.success-page{
  width:min(860px,calc(100% - 40px));
  margin:0 auto;
  min-height:calc(100vh - 146px);
  padding:32px 0 42px;
  display:flex;
  align-items:center;
  justify-content:center;
}
.success-card{
  position:relative;
  width:100%;
  overflow:hidden;
  background:var(--paper);
  border:1px solid var(--line);
  border-top:9px solid var(--teal);
  box-shadow:var(--shadow);
  padding:38px 42px 36px;
  text-align:center;
  backdrop-filter:blur(3px);
}
.success-card::after{
  content:"";
  position:absolute;
  width:180px;height:180px;
  right:-96px;bottom:-98px;
  border:30px solid rgba(138,161,147,.34);
  border-radius:50%;
  opacity:.65;
}
.success-logo{
  width:42px;
  height:42px;
  object-fit:cover;
  display:block;
  margin:0 auto 14px;
  border:4px solid var(--beige-soft);
  outline:1px solid rgba(76,105,113,.18);
}
.success-area{
  margin:0 auto 18px;
  color:var(--teal);
  font-size:14px;
  font-weight:950;
  letter-spacing:.15em;
}
.checkmark{
  margin:0 auto 18px;
  width:62px;
  height:62px;
  border-radius:50%;
  display:grid;
  place-items:center;
  background:rgba(138,161,147,.18);
  border:1px solid rgba(16,61,46,.20);
}
.checkmark svg{width:34px;height:34px;fill:none;stroke:var(--teal);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.success-card .eyebrow{
  margin:0 0 9px;
  color:var(--olive);
  font-size:11px;
  font-weight:900;
  letter-spacing:.17em;
}
.success-copy{margin:0;color:var(--muted);line-height:1.6}
.document-row{
  position:relative;
  z-index:2;
  margin:28px 0 4px;
  padding:16px;
  display:flex;
  align-items:center;
  text-align:left;
  gap:14px;
  border:1px solid var(--line);
  background:rgba(247,247,242,.86);
}
.pdf-icon{
  flex:0 0 46px;
  height:46px;
  display:grid;
  place-items:center;
  background:var(--slate);
  color:var(--beige-soft);
  font-size:10px;
  font-weight:950;
  letter-spacing:.08em;
}
.document-row span{display:block;color:var(--muted);font-size:11px;margin-bottom:4px}
.document-row strong{font-size:14px;overflow-wrap:anywhere;color:var(--charcoal)}
.download-button{position:relative;z-index:2;max-width:380px;margin:24px auto 0}
.small-note{position:relative;z-index:2;margin:14px auto 0;max-width:540px;font-size:11px;line-height:1.55;color:#7b817f}
.text-link{position:relative;z-index:2;display:inline-block;margin-top:22px;color:var(--teal);font-size:12px;font-weight:900}

@media (max-width:980px){
  body::before{background-size:auto, 620px auto;opacity:.50}
  .home-page{grid-template-columns:1fr;gap:18px;padding-top:22px}
  .brand-hero{padding:34px 34px 32px}
  .card-heading{text-align:left}
}

@media (max-width:760px){
  .header-inner{min-height:70px}
  .mini-brand img{width:34px;height:34px}
  .mini-brand span{font-size:12px}
  .brand-hero{padding:30px 24px 30px}
  .brand-hero h1{font-size:clamp(30px,8vw,46px)}
  .area-title{font-size:clamp(26px,7vw,38px);box-shadow:6px 6px 0 rgba(97,125,112,.92)}
  .hero-theme{font-size:14px;margin-top:18px}
  .card{padding:28px 24px 26px}
}

@media (max-width:600px){
  body::before{background-size:auto, 480px auto;opacity:.46}
  .header-inner,.footer-inner,.page,.success-page{width:min(100% - 28px,1180px)}
  .header-link{
    display:inline-flex;
    align-items:center;
    gap:5px;
    font-size:11px;
    white-space:nowrap;
  }
  .mini-brand span{max-width:190px}
  .home-page{padding:18px 0 36px}
  .brand-hero{padding:24px 18px 24px}
  .hero-kicker{font-size:10px}
  .brand-hero h1{font-size:31px;line-height:1.05}
  .area-title{margin-top:18px;font-size:28px;padding:8px 12px 9px}
  .hero-theme{font-size:13px}
  .card{padding:26px 18px 24px}
  .card h2,.success-card h1{font-size:29px}
  .form-grid{grid-template-columns:1fr}
  .privacy-box{font-size:11px}
  .footer-inner{padding:18px 0;display:flex;align-items:center;flex-direction:column;text-align:center}
  .footer-left,.footer-powered,.footer-inner nav{justify-self:auto}
  .footer-inner nav{gap:14px;justify-content:center}
  .success-page{padding:24px 0 32px;min-height:calc(100vh - 126px)}
  .success-card{padding:30px 18px 30px}
  .success-logo{width:38px;height:38px}
}

/* il logo non viene mai usato come sfondo o elemento hero */
img[src*="logo-convegno"]{max-width:100%;background:none!important;background-image:none!important}
.brand-hero{background-image:none!important}
.footer-inner .footer-powered a{color:#fff;font-weight:950;text-decoration:underline;text-underline-offset:3px}
