.ffi-mod01{max-width:1580px;margin:24px auto;font-family:Arial,Helvetica,sans-serif;color:#152033}.ffi-mod01 *{box-sizing:border-box}.ffi-mod01-head{display:grid;grid-template-columns:auto 1fr auto;gap:28px;align-items:center;background:#fff;border:1px solid #e6edf4;border-radius:24px;padding:16px 22px;box-shadow:0 10px 30px rgba(20,40,70,.06)}.ffi-mod01-brand{display:flex;align-items:center;gap:12px;font-size:28px}.ffi-mod01-brand img{width:52px;height:52px;object-fit:contain;border-radius:14px}.ffi-mod01-head nav{display:flex;justify-content:center;gap:22px;flex-wrap:wrap}.ffi-mod01-head a{text-decoration:none;color:#22324a}.ffi-mod01-auth{display:flex;gap:10px}.ffi-mod01-auth a{padding:11px 18px;border:1px solid #24558d;border-radius:999px}.ffi-mod01-auth .is-primary{background:#24558d;color:#fff}

.ffi-mod01-hero{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(330px,.88fr);gap:16px;align-items:stretch;margin-top:18px;background:#f8fbfe;border-radius:28px;padding:18px}.ffi-mod01-carousel{height:var(--ffi-hero-h);position:relative;overflow:hidden;border-radius:22px;background:#dfe9f3}.ffi-mod01-slide{position:absolute;inset:0;margin:0;opacity:0;transition:opacity .35s ease}.ffi-mod01-slide.is-active{opacity:1;z-index:2}.ffi-mod01-slide>img{width:100%;height:100%;object-fit:cover}.ffi-mod01-slide figcaption{position:absolute;left:0;right:0;bottom:0;display:grid;grid-template-columns:auto auto auto 1fr;gap:14px;align-items:center;padding:16px 20px;color:#fff;background:linear-gradient(transparent,rgba(0,0,0,.78));font-size:15px}.ffi-mod01-empty{display:grid;place-items:center;background:linear-gradient(135deg,#d8eaf7,#eef6fb)}.ffi-mod01-empty>div{text-align:center;display:grid;gap:8px}.ffi-mod01-prev,.ffi-mod01-next{position:absolute;top:50%;transform:translateY(-50%);z-index:4;width:44px;height:44px;border:0;border-radius:50%;background:rgba(255,255,255,.9);font-size:28px}.ffi-mod01-prev{left:14px}.ffi-mod01-next{right:14px}

.ffi-mod01-actions{display:grid;grid-template-rows:auto auto 1fr;gap:12px;min-height:var(--ffi-hero-h);height:var(--ffi-hero-h);overflow:hidden;align-self:stretch}.ffi-mod01-copy{padding:2px 0 0}.ffi-mod01-copy h1{font-family:Georgia,serif;font-size:var(--ffi-title-size);line-height:1.03;margin:0 0 10px}.ffi-mod01-copy p{font-size:var(--ffi-intro-size,18px);line-height:1.32;color:#627087;margin:0}.ffi-mod01-action-list{display:grid;grid-template-rows:repeat(3,1fr);gap:10px;min-height:0}.ffi-mod01-actions button{display:flex;align-items:center;gap:12px;text-align:left;border:1px solid #dce6ef;background:#fff;border-radius:18px;padding:10px 14px;cursor:pointer;min-height:0;overflow:hidden}.ffi-mod01-actions button b{display:grid;place-items:center;flex:0 0 42px;width:42px;height:42px;border-radius:50%;background:#e8f2ff;font-size:21px}.ffi-mod01-actions button span{display:grid;gap:2px;min-width:0}.ffi-mod01-actions button strong{font-size:var(--ffi-action-label-size,18px);line-height:1.05}.ffi-mod01-actions button small{color:#748296;font-size:var(--ffi-action-sub-size,14px);line-height:1.08}.ffi-mod01-side-textonly{align-self:end;padding:0 4px 2px}.ffi-mod01-side-textonly strong{display:block;font-size:var(--ffi-side-title-size,26px);line-height:1.04;color:#173257;margin:0 0 6px}.ffi-mod01-side-textonly p{margin:0;color:#718096;line-height:1.28;font-size:var(--ffi-side-text-size,17px)}
.ffi-mod01-preview{margin-top:10px;padding:10px 12px;border-radius:12px;background:#fff}.ffi-mod01-preview img{max-width:100%;max-height:160px;border-radius:10px}

@media(max-width:1220px){.ffi-mod01-hero{grid-template-columns:minmax(0,1.55fr) minmax(310px,.95fr);gap:14px}.ffi-mod01-copy h1{font-size:min(var(--ffi-title-size),48px)}}
@media(max-width:1100px){.ffi-mod01-head{grid-template-columns:1fr auto}.ffi-mod01-head nav{grid-column:1/-1;order:3}.ffi-mod01-hero{grid-template-columns:1fr}.ffi-mod01-actions{height:auto;min-height:unset;overflow:visible;grid-template-rows:auto auto auto}.ffi-mod01-action-list{grid-template-rows:none}.ffi-mod01-side-textonly{align-self:auto}}
@media(max-width:760px){.ffi-mod01-head{grid-template-columns:1fr}.ffi-mod01-auth{justify-content:flex-start}.ffi-mod01-hero{grid-template-columns:1fr;padding:10px}.ffi-mod01-carousel{height:420px}.ffi-mod01-slide figcaption{grid-template-columns:1fr 1fr;font-size:13px}.ffi-mod01-copy h1{font-size:min(var(--ffi-title-size,38px),38px)}.ffi-mod01-copy p{font-size:min(var(--ffi-intro-size,18px),18px)}.ffi-mod01-actions{height:auto;min-height:unset;overflow:visible;grid-template-rows:auto auto auto}.ffi-mod01-actions button strong{font-size:min(var(--ffi-action-label-size,18px),18px)}.ffi-mod01-actions button small{font-size:min(var(--ffi-action-sub-size,14px),14px)}.ffi-mod01-side-textonly strong{font-size:min(var(--ffi-side-title-size,26px),22px)}.ffi-mod01-side-textonly p{font-size:min(var(--ffi-side-text-size,17px),15px)}}

/* v1.0.33 - colonna laterale eliminata definitivamente */
.ffi-mod01-actions{grid-template-rows:auto 1fr;gap:14px}
.ffi-mod01-action-list{height:100%;grid-template-rows:repeat(3,minmax(0,1fr));align-self:stretch}
.ffi-mod01-actions button{height:100%;min-height:0}
.ffi-mod01-side-textonly{display:none!important}

/* v1.0.34 - registrazione centrale Modulo 01 */
.ffi-mod01-register{display:none;margin-top:18px;padding:24px;background:#fff;border:1px solid #dce6ef;border-radius:24px;box-shadow:0 16px 40px rgba(31,56,86,.08)}
.ffi-mod01-register:target,.ffi-mod01-register.is-open{display:block}
.ffi-mod01-register-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:18px}.ffi-mod01-register-head span{display:block;font-size:12px;font-weight:800;letter-spacing:.08em;color:#315bf4}.ffi-mod01-register-head h2{margin:4px 0 6px;font-size:32px;line-height:1.1}.ffi-mod01-register-head p{margin:0;color:#6a788a}.ffi-register-close{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:#f1f5f9;color:#26374a!important;font-size:26px;line-height:1;text-decoration:none!important}
.ffi-register-message{margin-bottom:16px;padding:12px 14px;border-radius:12px;font-weight:700}.ffi-register-message.is-ok{background:#edf9f1;color:#247044}.ffi-register-message.is-error{background:#fff0f0;color:#9b2f2f}
.ffi-register-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.ffi-register-form label>span{display:block;margin-bottom:6px;font-weight:700;color:#34465a}.ffi-register-form input[type="text"],.ffi-register-form input[type="email"],.ffi-register-form input[type="tel"]{width:100%;min-height:46px;border:1px solid #cfd9e4;border-radius:12px;padding:10px 12px;font-size:16px;background:#fff;color:#18283a}
.ffi-register-services{border:0;margin:20px 0 14px;padding:0}.ffi-register-services legend{font-size:18px;font-weight:800;margin-bottom:10px}.ffi-register-services{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.ffi-register-services legend{grid-column:1/-1}.ffi-register-services label{display:flex;gap:10px;align-items:flex-start;padding:13px;border:1px solid #dce5ee;border-radius:14px;background:#f9fbfd;cursor:pointer}.ffi-register-services input{margin-top:3px}.ffi-register-services b{display:block;color:#24364a}.ffi-register-services small{display:block;margin-top:3px;color:#728094;line-height:1.3}.ffi-register-privacy{display:flex!important;align-items:flex-start;gap:9px;margin:8px 0 16px;font-size:14px}.ffi-register-privacy input{margin-top:3px}.ffi-register-privacy span{font-weight:500!important;color:#637187!important}.ffi-register-submit{border:0;border-radius:999px;background:#24558d;color:#fff;font-weight:800;font-size:16px;padding:13px 22px;cursor:pointer}
@media(max-width:760px){.ffi-register-grid,.ffi-register-services{grid-template-columns:1fr}.ffi-mod01-register{padding:18px}.ffi-mod01-register-head h2{font-size:27px}}

/* v1.0.35 - accesso, prima password e area personale interni al Modulo 01 */
.ffi-register-form input[type="password"]{width:100%;min-height:46px;border:1px solid #cfd9e4;border-radius:12px;padding:10px 12px;font-size:16px;background:#fff;color:#18283a}
.ffi-register-form label small{display:block;margin-top:5px;color:#77869a;line-height:1.3}
.ffi-mod01-login,.ffi-mod01-password,.ffi-mod01-account{scroll-margin-top:20px}
.ffi-mod01-password .ffi-mod01-register-head span{color:#9a5b00}.ffi-mod01-password{border-color:#ead6ad;background:#fffdf8}
.ffi-account-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:16px 0}.ffi-account-grid>div{padding:14px;border:1px solid #dde7f0;border-radius:14px;background:#f9fbfd}.ffi-account-grid b,.ffi-account-grid span{display:block}.ffi-account-grid span{margin-top:4px;color:#66768a}.ffi-account-services h3{margin:0 0 10px}.ffi-account-services span{display:inline-block;margin:0 7px 7px 0;padding:8px 11px;border-radius:999px;background:#eaf3ff;color:#24558d;font-weight:700;font-size:14px}
@media(max-width:760px){.ffi-account-grid{grid-template-columns:1fr}}

/* v1.0.36 - registrazione visuale a step */
.ffi-register-progress{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin:4px 0 22px}.ffi-register-progress button,.ffi-register-progress>span{position:relative;display:flex;align-items:center;gap:8px;border:0;background:#f4f7fa;border-radius:14px;padding:10px 12px;color:#6e7d8e;text-align:left}.ffi-register-progress button{cursor:pointer}.ffi-register-progress button:disabled{cursor:default}.ffi-register-progress b{display:grid;place-items:center;flex:0 0 28px;width:28px;height:28px;border-radius:50%;background:#dfe7ef;color:#44566b;font-size:13px}.ffi-register-progress span,.ffi-register-progress em{font-style:normal;font-size:12px;font-weight:800;line-height:1.1}.ffi-register-progress .is-active{background:#eef5ff;color:#184c83}.ffi-register-progress .is-active b{background:#24558d;color:#fff}.ffi-register-progress .is-done{background:#edf8f1;color:#2a7046}.ffi-register-progress .is-done b{background:#3b8d5a;color:#fff}
.ffi-register-step{display:none}.ffi-register-step.is-active{display:block}.ffi-register-step-title{margin:0 0 18px}.ffi-register-step-title>span{display:block;font-size:11px;font-weight:900;letter-spacing:.08em;color:#24558d}.ffi-register-step-title h3{margin:5px 0 6px;font-size:25px}.ffi-register-step-title p{margin:0;color:#68798d;line-height:1.45}.ffi-register-nav{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:18px}.ffi-register-next,.ffi-register-back{border:0;border-radius:999px;padding:12px 20px;font-size:15px;font-weight:800;cursor:pointer}.ffi-register-next{background:#24558d;color:#fff}.ffi-register-back{background:#eef2f6;color:#35485d}.ffi-first-password-card{display:grid;gap:5px;max-width:420px;margin:4px 0 18px;padding:18px 20px;border:1px solid #cfe0f1;border-radius:18px;background:#f5f9fd}.ffi-first-password-card span{font-size:12px;font-weight:800;color:#5f7184;text-transform:uppercase;letter-spacing:.05em}.ffi-first-password-card strong{font-size:34px;letter-spacing:.08em;color:#153f6b}.ffi-first-password-card small{color:#718096}.ffi-complete-card{display:grid;justify-items:center;text-align:center;gap:8px;padding:28px 18px;border:1px solid #d9e8df;background:#f6fbf8;border-radius:20px}.ffi-complete-card>b{display:grid;place-items:center;width:58px;height:58px;border-radius:50%;background:#3b8d5a;color:#fff;font-size:30px}.ffi-complete-card h3{margin:6px 0 0;font-size:26px}.ffi-complete-card p{max-width:650px;margin:0;color:#68798d}.ffi-register-close-button{display:inline-flex;margin-top:10px;padding:11px 18px;border-radius:999px;background:#24558d;color:#fff!important;text-decoration:none!important;font-weight:800}.ffi-mod01-account{display:none!important}
@media(max-width:900px){.ffi-register-progress{grid-template-columns:1fr 1fr}.ffi-register-progress button,.ffi-register-progress>span{min-height:48px}}
@media(max-width:560px){.ffi-register-progress{grid-template-columns:1fr}.ffi-register-progress button,.ffi-register-progress>span{padding:8px 10px}.ffi-register-nav{align-items:stretch}.ffi-register-next,.ffi-register-back,.ffi-register-submit{width:100%}}


/* v1.0.37 - invio foto separato dalla registrazione */
.ffi-photo-selected{display:flex;align-items:center;gap:14px;padding:14px;margin:0 0 18px;border:1px solid #dce6ef;border-radius:16px;background:#f8fbfe}
.ffi-photo-selected-preview{width:92px;height:72px;border-radius:12px;background:#e9f0f7;overflow:hidden;flex:0 0 auto;display:grid;place-items:center}
.ffi-photo-selected-preview img{width:100%;height:100%;object-fit:cover}
.ffi-photo-selected b{display:block;font-size:16px;color:#23364b}.ffi-photo-selected small{display:block;margin-top:4px;color:#748296}
.ffi-photo-description{display:block;margin:14px 0}.ffi-photo-description input{width:100%;min-height:46px;border:1px solid #cfd9e4;border-radius:12px;padding:10px 12px;font-size:16px}
.ffi-photo-auth-needed{padding:20px;border-radius:18px;background:#f7faff;border:1px solid #dce6ef}.ffi-photo-auth-needed h3{margin:0 0 6px;font-size:22px}.ffi-photo-auth-needed p{margin:0 0 16px;color:#65758a}
.ffi-photo-auth-actions{display:flex;gap:10px;flex-wrap:wrap}.ffi-photo-auth-actions a{display:inline-flex;align-items:center;justify-content:center;padding:11px 20px;border-radius:999px;text-decoration:none;font-weight:800}.ffi-photo-open-login{border:1px solid #24558d;color:#24558d}.ffi-photo-open-register{background:#24558d;color:#fff!important}
.ffi-photo-send-status{min-height:22px;margin:8px 0 12px;font-weight:700}.ffi-photo-send-status.is-working{color:#4d6680}.ffi-photo-send-status.is-ok{color:#247044}.ffi-photo-send-status.is-error{color:#9b2f2f}


/* 1.0.48 - Motore di ricerca generale subito dopo la Testata */
.ffi-portale-search-top:empty{display:none}
.ffi-portale-search-top:not(:empty){margin:18px 0}
.ffi-portale-search-top .ffi-search-moved-top{margin-top:0!important;margin-bottom:0!important}


/* v1.0.66 - testata pulita: solo logo/nome + accesso/registrazione */
.ffi-mod01-head.ffi-mod01-head-clean{grid-template-columns:1fr auto}
.ffi-mod01-head.ffi-mod01-head-clean .ffi-mod01-auth{justify-self:end}
@media(max-width:760px){.ffi-mod01-head.ffi-mod01-head-clean{grid-template-columns:1fr auto}.ffi-mod01-head.ffi-mod01-head-clean .ffi-mod01-auth{justify-self:end}}


/* v1.0.70 - anteprima foto solo nel pannello invio; mai nella colonna azioni */
.ffi-mod01-actions > .ffi-mod01-preview{display:none!important}


/* v1.0.71 - pannello invio foto compatto orizzontale */
.ffi-photo-send-panel:target,
.ffi-photo-send-panel.is-open{
  display:grid;
  grid-template-columns:minmax(280px,.72fr) minmax(0,2fr);
  gap:12px 18px;
  align-items:start;
  padding:18px 20px;
}
.ffi-photo-send-panel .ffi-mod01-register-head{
  grid-column:1/-1;
  margin-bottom:2px;
  align-items:center;
}
.ffi-photo-send-panel .ffi-mod01-register-head h2{
  margin:2px 0 3px;
  font-size:28px;
}
.ffi-photo-send-panel .ffi-mod01-register-head p{
  font-size:14px;
  line-height:1.3;
}
.ffi-photo-send-panel .ffi-photo-selected{
  grid-column:1;
  margin:0;
  min-height:118px;
  padding:12px;
  align-self:stretch;
}
.ffi-photo-send-panel .ffi-photo-selected-preview{
  width:112px;
  height:88px;
}
.ffi-photo-send-panel .ffi-photo-send-form{
  grid-column:2;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:10px 14px;
  align-items:end;
}
.ffi-photo-send-panel .ffi-photo-send-form .ffi-register-grid{
  grid-column:1/-1;
  gap:10px;
}
.ffi-photo-send-panel .ffi-photo-send-form .ffi-register-form label>span,
.ffi-photo-send-panel .ffi-photo-send-form label>span{
  margin-bottom:4px;
}
.ffi-photo-send-panel .ffi-photo-send-form input[type="text"]{
  min-height:40px;
  padding:8px 10px;
  font-size:15px;
}
.ffi-photo-send-panel .ffi-photo-description{
  grid-column:1/-1;
  margin:0;
}
.ffi-photo-send-panel .ffi-photo-description input{
  min-height:40px;
}
.ffi-photo-send-panel .ffi-photo-send-status{
  grid-column:1;
  min-height:0;
  margin:0;
  align-self:center;
  font-size:14px;
}
.ffi-photo-send-panel .ffi-photo-confirm{
  grid-column:2;
  margin:0;
  white-space:nowrap;
  padding:11px 18px;
}

@media(max-width:900px){
  .ffi-photo-send-panel:target,
  .ffi-photo-send-panel.is-open{
    grid-template-columns:1fr;
  }
  .ffi-photo-send-panel .ffi-mod01-register-head,
  .ffi-photo-send-panel .ffi-photo-selected,
  .ffi-photo-send-panel .ffi-photo-send-form{
    grid-column:1;
  }
}
@media(max-width:560px){
  .ffi-photo-send-panel:target,
  .ffi-photo-send-panel.is-open{padding:14px}
  .ffi-photo-send-panel .ffi-photo-selected{min-height:auto}
  .ffi-photo-send-panel .ffi-photo-selected-preview{width:84px;height:66px}
  .ffi-photo-send-panel .ffi-photo-send-form{grid-template-columns:1fr}
  .ffi-photo-send-panel .ffi-photo-send-form .ffi-register-grid,
  .ffi-photo-send-panel .ffi-photo-description,
  .ffi-photo-send-panel .ffi-photo-send-status,
  .ffi-photo-send-panel .ffi-photo-confirm{grid-column:1}
}


/* v1.0.72 - GPS e territorio comunale */
.ffi-photo-gps-row{display:flex;align-items:center;gap:12px;grid-column:1/-1;margin:0 0 2px}
.ffi-photo-gps-button{border:1px solid #24558d;background:#eef5ff;color:#24558d;border-radius:999px;padding:9px 14px;font-weight:800;cursor:pointer;white-space:nowrap}
.ffi-photo-gps-status{font-size:13px;color:#5f7188;line-height:1.3}
@media(max-width:760px){.ffi-photo-gps-row{align-items:flex-start;flex-direction:column;gap:7px}.ffi-photo-gps-button{width:100%}}
