:root{--dsni-accent:var(--the7-accent-color,#1769aa);--dsni-text:var(--the7-title-color,#1f2328);--dsni-muted:#6b7078;--dsni-bg:#f5f7f8;--dsni-border:rgba(0,0,0,.08);--dsni-shadow:0 10px 34px rgba(18,28,45,.07)}
.dsni-wrap{width:min(1180px,calc(100% - 40px));margin:0 auto}.dsni-page{overflow:hidden}.dsni-hero{padding:58px 0 28px;text-align:center}.dsni-hero h1{margin:0 0 12px;font-size:clamp(36px,4.6vw,56px);line-height:1.06;letter-spacing:-.025em;color:var(--dsni-text)}.dsni-hero p{max-width:720px;margin:0 auto;color:var(--dsni-muted);font-size:18px;line-height:1.6}.dsni-embed{width:100%}.dsni-filters{display:flex;flex-wrap:wrap;gap:9px;justify-content:center;margin:4px 0 30px}.dsni-filter{appearance:none;border:1px solid var(--dsni-border);background:#fff;color:var(--dsni-text);border-radius:999px;padding:9px 17px;font:inherit;font-weight:650;cursor:pointer;transition:.2s ease}.dsni-filter:hover,.dsni-filter.is-active{border-color:var(--dsni-accent);background:var(--dsni-accent);color:#fff}.dsni-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,360px));justify-content:center;gap:28px;padding:12px 0 72px}.dsni-card{background:#fff;border:1px solid var(--dsni-border);border-radius:16px;overflow:hidden;box-shadow:var(--dsni-shadow);transition:transform .22s ease,box-shadow .22s ease}.dsni-card:hover{transform:translateY(-5px);box-shadow:0 18px 42px rgba(18,28,45,.12)}.dsni-card.is-hidden{display:none}.dsni-card-link{display:block;height:100%;color:inherit!important;text-decoration:none!important}.dsni-card-media{aspect-ratio:16/10;background:var(--dsni-bg);overflow:hidden}.dsni-card-media img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .4s ease}.dsni-card:hover .dsni-card-media img{transform:scale(1.035)}.dsni-placeholder{width:100%;height:100%;background:linear-gradient(135deg,#eceff1,#f8f9fa)}.dsni-card-body{padding:22px 22px 23px}.dsni-kicker{font-size:12px;line-height:1.3;text-transform:uppercase;letter-spacing:.09em;font-weight:750;color:var(--dsni-accent);margin-bottom:9px}.dsni-card h3{margin:0 0 6px;font-size:23px;line-height:1.2;letter-spacing:-.015em;color:var(--dsni-text)}.dsni-card-project-title{margin:0 0 12px;font-size:16px;line-height:1.4;font-weight:650;color:var(--dsni-muted)}.dsni-card-meta{display:flex;flex-wrap:wrap;gap:5px 14px;font-size:13px;font-weight:650;color:var(--dsni-muted);margin-bottom:14px}.dsni-card-meta span+span:before{content:'•';margin-right:14px;opacity:.55}.dsni-card p{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden;min-height:4.65em;margin:0 0 17px;color:var(--dsni-muted);line-height:1.55}.dsni-more{display:inline-flex;align-items:center;font-weight:750;color:var(--dsni-accent)}.dsni-empty{text-align:center;padding:40px 0 70px;color:var(--dsni-muted)}
.dsni-single{padding:54px 0 82px}.dsni-back{display:inline-flex;margin-bottom:28px;text-decoration:none!important;font-weight:700;color:var(--dsni-accent)!important}.dsni-single-head{max-width:1020px;margin-bottom:32px}.dsni-single-head .dsni-kicker{font-size:13px}.dsni-single h1{max-width:980px;margin:0 0 8px;font-size:clamp(36px,4.7vw,56px);line-height:1.07;letter-spacing:-.026em;color:var(--dsni-text)}.dsni-single-project-title{max-width:920px;margin:0 0 24px;font-size:clamp(22px,2.5vw,32px);line-height:1.25;font-weight:650;letter-spacing:-.015em;color:var(--dsni-muted)}.dsni-single-meta{display:grid;grid-template-columns:minmax(160px,.8fr) minmax(300px,2.2fr) minmax(150px,.8fr);gap:10px;margin:0 0 20px}.dsni-meta-item{display:flex;flex-direction:column;gap:4px;padding:14px 16px;border:1px solid var(--dsni-border);border-radius:12px;background:#fff}.dsni-meta-label{font-size:11px;text-transform:uppercase;letter-spacing:.085em;font-weight:750;color:var(--dsni-muted)}.dsni-meta-item strong{font-size:15px;line-height:1.35;color:var(--dsni-text)}.dsni-single-desc{font-size:18px;line-height:1.72;color:var(--dsni-muted);max-width:900px}.dsni-featured{position:relative;margin:34px 0 22px;border-radius:18px;overflow:hidden;background:var(--dsni-bg);aspect-ratio:16/10;box-shadow:var(--dsni-shadow)}.dsni-featured a{display:flex;width:100%;height:100%;align-items:center;justify-content:center}.dsni-featured img{width:100%;height:100%;object-fit:contain;object-position:center;display:block}.dsni-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:18px}.dsni-gallery a{display:flex;align-items:center;justify-content:center;border-radius:14px;overflow:hidden;background:var(--dsni-bg);aspect-ratio:3/4;box-shadow:0 7px 24px rgba(18,28,45,.06)}.dsni-gallery img{width:100%;height:100%;object-fit:contain;object-position:center;display:block;transition:transform .3s ease}.dsni-gallery a:hover img{transform:scale(1.025)}
.dsni-lightbox{position:fixed;inset:0;z-index:999999;background:rgba(0,0,0,.93);display:none;align-items:center;justify-content:center;padding:34px}.dsni-lightbox.is-open{display:flex}.dsni-lightbox img{max-width:min(1200px,90vw);max-height:88vh;object-fit:contain}.dsni-lightbox-close,.dsni-lightbox-prev,.dsni-lightbox-next{position:absolute;color:#fff;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.16);cursor:pointer;backdrop-filter:blur(7px)}.dsni-lightbox-close{top:18px;right:20px;width:48px;height:48px;border-radius:50%;font-size:34px;line-height:1}.dsni-lightbox-prev,.dsni-lightbox-next{top:50%;transform:translateY(-50%);width:48px;height:64px;border-radius:12px;font-size:30px}.dsni-lightbox-prev{left:20px}.dsni-lightbox-next{right:20px}.dsni-lightbox-counter{position:absolute;left:50%;bottom:18px;transform:translateX(-50%);color:#fff;font-size:13px;font-weight:700;background:rgba(0,0,0,.34);padding:6px 10px;border-radius:999px}.dsni-lightbox-open{overflow:hidden}
@media(max-width:900px){.dsni-grid{grid-template-columns:repeat(auto-fit,minmax(270px,340px))}.dsni-hero{padding-top:46px}.dsni-single-meta{grid-template-columns:1fr 1fr}.dsni-meta-solution{grid-column:1/-1;grid-row:2}.dsni-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.dsni-wrap{width:min(100% - 26px,1180px)}.dsni-grid{grid-template-columns:1fr;gap:20px;padding-top:4px}.dsni-gallery{grid-template-columns:1fr}.dsni-hero{padding:36px 0 22px}.dsni-hero p{font-size:16px}.dsni-single{padding:36px 0 58px}.dsni-single h1{margin-bottom:18px}.dsni-single-meta{grid-template-columns:1fr}.dsni-meta-solution{grid-column:auto;grid-row:auto}.dsni-single-desc{font-size:17px}.dsni-featured{margin-top:26px;aspect-ratio:4/3}.dsni-lightbox{padding:18px}.dsni-lightbox-prev,.dsni-lightbox-next{width:42px;height:56px}.dsni-lightbox-prev{left:8px}.dsni-lightbox-next{right:8px}.dsni-lightbox-close{top:10px;right:10px}}
@media print{.dsni-card,.dsni-meta-item,.dsni-gallery a{break-inside:avoid}.dsni-lightbox{display:none!important}.dsni-card{box-shadow:none}.dsni-featured{break-inside:avoid}}

/* v1.3: preserva sempre le proporzioni delle foto nelle schede della singola installazione */
.dsni-featured img,.dsni-gallery img{max-width:100%!important;width:100%!important;height:100%!important;object-fit:contain!important;object-position:center!important}

/* v1.4: foto principale più compatta e caricamento rapido */
.dsni-featured{max-width:620px;margin:30px auto 20px;aspect-ratio:auto;background:transparent;box-shadow:none;border-radius:0;overflow:visible}
.dsni-featured a{display:block;width:100%;height:auto;text-align:center}
.dsni-featured img{width:auto!important;height:auto!important;max-width:100%!important;max-height:540px!important;margin:0 auto;border-radius:14px;box-shadow:0 8px 26px rgba(18,28,45,.08);object-fit:contain!important}

.dsni-upload-shell{width:min(860px,calc(100% - 32px));margin:48px auto 80px;background:#fff;border:1px solid var(--dsni-border);border-radius:20px;box-shadow:var(--dsni-shadow);padding:28px}
.dsni-upload-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding-bottom:22px;border-bottom:1px solid var(--dsni-border);margin-bottom:24px}.dsni-upload-head h2{margin:0 0 8px;font-size:32px;line-height:1.15;color:var(--dsni-text)}.dsni-upload-head p{margin:0;color:var(--dsni-muted)}.dsni-upload-user{flex:0 0 auto;border:1px solid var(--dsni-border);border-radius:999px;padding:8px 12px;font-size:13px;font-weight:700;color:var(--dsni-muted)}
.dsni-upload-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.dsni-upload-field.full{grid-column:1/-1}.dsni-upload-field label{display:block;margin:0 0 7px;font-weight:750;color:var(--dsni-text)}.dsni-upload-field label span{color:#c62828}.dsni-upload-field input[type=text],.dsni-upload-field input[type=month],.dsni-upload-field select,.dsni-upload-field textarea{box-sizing:border-box;width:100%;min-height:46px;border:1px solid #d7dce1;border-radius:10px;background:#fff;padding:10px 12px;font:inherit;color:var(--dsni-text);outline:none}.dsni-upload-field textarea{min-height:110px;resize:vertical}.dsni-upload-field input:focus,.dsni-upload-field select:focus,.dsni-upload-field textarea:focus{border-color:var(--dsni-accent);box-shadow:0 0 0 3px rgba(23,105,170,.10)}
.dsni-file-card{border:1px dashed #cfd6dc;border-radius:14px;background:#fafbfc;padding:16px}.dsni-file-card p{margin:0 0 12px;color:var(--dsni-muted);font-size:14px}.dsni-file-card input[type=file]{width:100%;font:inherit}.dsni-upload-preview{display:flex;flex-wrap:wrap;gap:10px;margin-top:12px}.dsni-upload-preview img{width:120px;height:100px;object-fit:cover;border-radius:10px;border:1px solid var(--dsni-border);background:#fff}.dsni-upload-preview-many img{width:92px;height:92px}
.dsni-upload-actions{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:24px;padding-top:22px;border-top:1px solid var(--dsni-border)}.dsni-upload-note{font-size:13px;color:var(--dsni-muted)}.dsni-upload-submit{appearance:none;border:0;border-radius:11px;background:var(--dsni-accent);color:#fff;padding:13px 20px;font:inherit;font-weight:800;cursor:pointer;min-width:210px}.dsni-upload-submit:disabled{opacity:.6;cursor:wait}.dsni-upload-message{margin-bottom:20px;border-radius:12px;padding:13px 15px;font-weight:650}.dsni-upload-message.is-success{background:#edf8ef;color:#1b5e20;border:1px solid #c8e6c9}.dsni-upload-message.is-error{background:#fff1f1;color:#9b1c1c;border:1px solid #f2c7c7}.dsni-upload-login{max-width:520px;margin:0 auto}.dsni-upload-login h2{margin-top:0}.dsni-upload-login label{display:block;font-weight:700;margin-bottom:6px}.dsni-upload-login input[type=text],.dsni-upload-login input[type=password]{box-sizing:border-box;width:100%;min-height:44px;border:1px solid #d7dce1;border-radius:10px;padding:9px 11px}.dsni-upload-login .button-primary{border:0;border-radius:10px;padding:10px 18px;background:var(--dsni-accent);color:#fff;font-weight:800}
@media(max-width:700px){.dsni-featured{max-width:480px;margin-top:24px}.dsni-featured img{max-height:460px!important}.dsni-upload-shell{width:min(100% - 20px,860px);margin:24px auto 46px;padding:18px;border-radius:16px}.dsni-upload-head{display:block}.dsni-upload-user{display:inline-block;margin-top:14px}.dsni-upload-head h2{font-size:26px}.dsni-upload-grid{grid-template-columns:1fr}.dsni-upload-field.full{grid-column:auto}.dsni-upload-actions{align-items:stretch;flex-direction:column}.dsni-upload-submit{width:100%}}

/* v1.5: layout editoriale ispirato alla struttura di una sezione news/case story */
.dsni-page--editorial{background:#fff}
.dsni-hero--editorial{padding:76px 0 34px;text-align:left}
.dsni-hero--editorial .dsni-wrap{max-width:1120px}
.dsni-hero-kicker{margin-bottom:12px;font-size:12px;line-height:1.2;text-transform:uppercase;letter-spacing:.15em;font-weight:800;color:var(--dsni-accent)}
.dsni-hero--editorial h1{max-width:900px;margin:0 0 18px;font-size:clamp(44px,6.3vw,82px);line-height:.98;letter-spacing:-.045em}
.dsni-hero--editorial p{max-width:760px;margin:0;color:var(--dsni-muted);font-size:19px;line-height:1.65}
.dsni-archive-content{max-width:1120px;padding-bottom:90px}
.dsni-archive-content .dsni-filters{justify-content:flex-start;margin:10px 0 42px;gap:6px;border-top:1px solid var(--dsni-border);padding-top:22px}
.dsni-archive-content .dsni-filter{border:0;background:transparent;border-radius:0;padding:7px 12px 8px;font-size:14px;font-weight:750;color:var(--dsni-muted);border-bottom:2px solid transparent}
.dsni-archive-content .dsni-filter:hover,.dsni-archive-content .dsni-filter.is-active{background:transparent;color:var(--dsni-text);border-bottom-color:var(--dsni-accent)}

.dsni-editorial-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:54px 32px;padding:0}
.dsni-editorial-grid .dsni-card{border:0;border-radius:0;box-shadow:none;background:transparent;overflow:visible;transition:none}
.dsni-editorial-grid .dsni-card:hover{transform:none;box-shadow:none}
.dsni-editorial-grid .dsni-card-link{display:block;height:auto}
.dsni-editorial-grid .dsni-card-media{aspect-ratio:16/10;border-radius:18px;background:#f1f3f5;overflow:hidden}
.dsni-editorial-grid .dsni-card-media img{object-fit:cover}
.dsni-editorial-grid .dsni-card-body{padding:20px 2px 0}
.dsni-card-topline{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:9px}
.dsni-card-topline .dsni-kicker{margin:0}
.dsni-card-date{font-size:12px;font-weight:700;color:var(--dsni-muted);white-space:nowrap}
.dsni-editorial-grid .dsni-card h3{font-size:clamp(27px,3vw,38px);line-height:1.05;letter-spacing:-.035em;margin:0 0 8px}
.dsni-editorial-grid .dsni-card-project-title{font-size:18px;line-height:1.4;font-weight:650;margin-bottom:9px}
.dsni-card-location{font-size:14px;font-weight:700;color:var(--dsni-muted);margin-bottom:14px}
.dsni-editorial-grid .dsni-card p{min-height:0;-webkit-line-clamp:2;margin:0 0 18px;font-size:15px;line-height:1.6}
.dsni-editorial-grid .dsni-more{font-size:14px;gap:8px}
.dsni-editorial-grid .dsni-card--lead{grid-column:1/-1;padding-bottom:12px;border-bottom:1px solid var(--dsni-border)}
.dsni-editorial-grid .dsni-card--lead .dsni-card-link{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(320px,.8fr);gap:40px;align-items:center}
.dsni-editorial-grid .dsni-card--lead .dsni-card-media{aspect-ratio:16/9}
.dsni-editorial-grid .dsni-card--lead .dsni-card-body{padding:10px 0}
.dsni-editorial-grid .dsni-card--lead h3{font-size:clamp(38px,4.6vw,60px)}
.dsni-editorial-grid .dsni-card--lead .dsni-card-project-title{font-size:21px}
.dsni-editorial-grid .dsni-card--lead p{font-size:16px;-webkit-line-clamp:3}
.dsni-card--load-hidden{display:none!important}
.dsni-load-wrap{text-align:center;padding:54px 0 0}
.dsni-load-more{appearance:none;border:1px solid var(--dsni-border);background:#fff;color:var(--dsni-text);border-radius:999px;padding:13px 20px;font:inherit;font-size:14px;font-weight:800;cursor:pointer;transition:.2s ease}
.dsni-load-more:hover{border-color:var(--dsni-text);transform:translateY(-1px)}

.dsni-single--story{padding:58px 0 92px;background:#fff}
.dsni-single--story .dsni-wrap{max-width:1080px}
.dsni-single--story .dsni-back{margin-bottom:48px;font-size:14px}
.dsni-story-head{max-width:930px;margin:0 0 42px}
.dsni-story-eyebrow{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:16px;font-size:12px;line-height:1;text-transform:uppercase;letter-spacing:.12em;font-weight:800;color:var(--dsni-accent)}
.dsni-story-eyebrow span+span:before{content:'•';margin-right:10px;color:#a9afb5}
.dsni-single--story h1{max-width:900px;margin:0 0 8px;font-size:clamp(46px,6.4vw,78px);line-height:.99;letter-spacing:-.048em;color:var(--dsni-text)}
.dsni-story-title{max-width:820px;margin:0 0 24px;font-size:clamp(24px,3vw,36px);line-height:1.16;font-weight:650;letter-spacing:-.025em;color:var(--dsni-muted)}
.dsni-story-intro{max-width:840px;margin:0 0 28px;font-size:18px;line-height:1.7;color:var(--dsni-muted)}
.dsni-story-facts{display:grid;grid-template-columns:minmax(170px,.65fr) minmax(0,1.8fr);gap:0;border-top:1px solid var(--dsni-border);border-bottom:1px solid var(--dsni-border)}
.dsni-story-fact{padding:18px 22px 18px 0}
.dsni-story-fact+.dsni-story-fact{padding-left:22px;border-left:1px solid var(--dsni-border)}
.dsni-story-fact span{display:block;margin-bottom:5px;font-size:10px;line-height:1;text-transform:uppercase;letter-spacing:.11em;font-weight:800;color:var(--dsni-muted)}
.dsni-story-fact strong{display:block;font-size:15px;line-height:1.45;color:var(--dsni-text)}
.dsni-story-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:26px}
.dsni-story-photo{display:block;aspect-ratio:4/3;border-radius:16px;overflow:hidden;background:#eef1f3;box-shadow:0 7px 24px rgba(18,28,45,.05)}
.dsni-story-photo img{display:block!important;width:100%!important;height:100%!important;max-width:none!important;max-height:none!important;object-fit:cover!important;object-position:center!important;transition:transform .3s ease}
.dsni-story-photo:hover img{transform:scale(1.018)}

@media(max-width:900px){
  .dsni-hero--editorial{padding-top:54px}
  .dsni-editorial-grid .dsni-card--lead .dsni-card-link{grid-template-columns:1fr;gap:18px}
  .dsni-editorial-grid .dsni-card--lead .dsni-card-body{padding-top:0}
  .dsni-story-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:680px){
  .dsni-hero--editorial{padding:38px 0 24px}
  .dsni-hero--editorial h1{font-size:clamp(40px,13vw,58px)}
  .dsni-hero--editorial p{font-size:16px}
  .dsni-archive-content .dsni-filters{overflow-x:auto;flex-wrap:nowrap;padding-bottom:2px;margin-bottom:28px;-webkit-overflow-scrolling:touch}
  .dsni-archive-content .dsni-filter{white-space:nowrap}
  .dsni-editorial-grid{grid-template-columns:1fr;gap:38px}
  .dsni-editorial-grid .dsni-card--lead{grid-column:auto}
  .dsni-editorial-grid .dsni-card--lead h3,.dsni-editorial-grid .dsni-card h3{font-size:32px}
  .dsni-editorial-grid .dsni-card-media,.dsni-editorial-grid .dsni-card--lead .dsni-card-media{aspect-ratio:4/3;border-radius:14px}
  .dsni-single--story{padding:34px 0 62px}
  .dsni-single--story .dsni-back{margin-bottom:30px}
  .dsni-story-head{margin-bottom:28px}
  .dsni-single--story h1{font-size:clamp(40px,13vw,56px)}
  .dsni-story-title{font-size:24px}
  .dsni-story-intro{font-size:16px}
  .dsni-story-facts{grid-template-columns:1fr}
  .dsni-story-fact{padding:14px 0}
  .dsni-story-fact+.dsni-story-fact{padding-left:0;border-left:0;border-top:1px solid var(--dsni-border)}
  .dsni-story-gallery{grid-template-columns:1fr 1fr;gap:8px}
  .dsni-story-photo{border-radius:10px;aspect-ratio:1/1}
}

/* v1.6 - archivio: card più compatte e tutte della stessa dimensione */
.dsni-page--editorial .dsni-wrap{max-width:1060px}
.dsni-editorial-grid{
  display:grid;
  grid-template-columns:repeat(3,260px);
  justify-content:center;
  align-items:stretch;
  gap:42px 30px;
  padding:0;
}
.dsni-editorial-grid .dsni-card{
  width:260px;
  height:100%;
  border:0;
  border-radius:0;
  box-shadow:none;
  background:transparent;
  overflow:visible;
}
.dsni-editorial-grid .dsni-card-link{
  display:flex;
  flex-direction:column;
  height:100%;
}
.dsni-editorial-grid .dsni-card-media{
  width:260px;
  aspect-ratio:16/10;
  border-radius:13px;
}
.dsni-editorial-grid .dsni-card-body{
  display:flex;
  flex:1;
  flex-direction:column;
  padding:15px 1px 0;
}
.dsni-editorial-grid .dsni-card h3{
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
  overflow:hidden;
  min-height:2.25em;
  margin:0 0 7px;
  font-size:23px;
  line-height:1.12;
  letter-spacing:-.025em;
}
.dsni-editorial-grid .dsni-card-project-title{
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
  overflow:hidden;
  min-height:2.7em;
  margin-bottom:8px;
  font-size:15px;
  line-height:1.35;
}
.dsni-editorial-grid .dsni-card-location{margin-bottom:10px;font-size:13px}
.dsni-editorial-grid .dsni-card p{
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
  overflow:hidden;
  min-height:3.05em;
  margin:0 0 15px;
  font-size:14px;
  line-height:1.52;
}
.dsni-editorial-grid .dsni-more{margin-top:auto;font-size:13px}

/* v1.6 - portale caricamento isolato */
body.dsni-uploader-portal{margin:0;background:#f3f5f7;color:var(--dsni-text);font-family:var(--the7-base-font-family,"Montserrat",Arial,sans-serif)}
.dsni-uploader-page{min-height:100vh;padding:28px 0 48px;box-sizing:border-box}
.dsni-uploader-brand{width:min(860px,calc(100% - 32px));margin:0 auto -26px;font-size:14px;font-weight:800;letter-spacing:.04em;color:#4b5560}
.dsni-uploader-portal .dsni-upload-shell{margin-top:48px}
.dsni-upload-user{display:flex;align-items:center;gap:10px}
.dsni-upload-user a{color:var(--dsni-accent);text-decoration:none;font-weight:800}
.dsni-upload-user a:hover{text-decoration:underline}

@media(max-width:900px){
  .dsni-editorial-grid{grid-template-columns:repeat(2,260px);gap:38px 26px}
}
@media(max-width:620px){
  .dsni-editorial-grid{grid-template-columns:minmax(0,320px);gap:34px}
  .dsni-editorial-grid .dsni-card{width:100%}
  .dsni-editorial-grid .dsni-card-media{width:100%;aspect-ratio:16/10}
  .dsni-editorial-grid .dsni-card h3{font-size:24px}
  .dsni-uploader-page{padding-top:18px}
  .dsni-uploader-brand{width:min(100% - 20px,860px);margin-bottom:-12px}
}

/* v1.7 - archivio: hero più vicino al menu, card più compatte e immagini leggermente più grandi */
.dsni-page--editorial .dsni-hero--editorial{
  padding-top:30px;
  padding-bottom:22px;
}
.dsni-page--editorial .dsni-hero--editorial h1{
  margin-bottom:12px;
}
.dsni-page--editorial .dsni-hero--editorial p{
  line-height:1.5;
}
.dsni-page--editorial .dsni-archive-content .dsni-filters{
  margin-top:0;
  margin-bottom:30px;
  padding-top:18px;
}
.dsni-page--editorial .dsni-editorial-grid{
  grid-template-columns:repeat(3,300px);
  gap:34px 28px;
}
.dsni-page--editorial .dsni-editorial-grid .dsni-card{
  width:300px;
}
.dsni-page--editorial .dsni-editorial-grid .dsni-card-media{
  width:300px;
  aspect-ratio:16/10;
  border-radius:13px;
}
.dsni-page--editorial .dsni-editorial-grid .dsni-card-body{
  padding:11px 1px 0;
}
.dsni-page--editorial .dsni-card-topline{
  margin-bottom:5px;
}
.dsni-page--editorial .dsni-editorial-grid .dsni-card h3{
  min-height:0;
  margin:0 0 4px;
  font-size:22px;
  line-height:1.12;
}
.dsni-page--editorial .dsni-editorial-grid .dsni-card-project-title{
  min-height:0;
  margin:0 0 5px;
  font-size:15px;
  line-height:1.28;
}
.dsni-page--editorial .dsni-editorial-grid .dsni-card-location{
  margin-bottom:7px;
  font-size:13px;
  line-height:1.3;
}
.dsni-page--editorial .dsni-editorial-grid .dsni-card p{
  min-height:0;
  margin:0 0 10px;
  font-size:13.5px;
  line-height:1.42;
}
.dsni-page--editorial .dsni-editorial-grid .dsni-more{
  font-size:13px;
  line-height:1.3;
}

@media(max-width:1020px){
  .dsni-page--editorial .dsni-editorial-grid{
    grid-template-columns:repeat(2,300px);
    gap:32px 26px;
  }
}
@media(max-width:680px){
  .dsni-page--editorial .dsni-hero--editorial{
    padding-top:20px;
    padding-bottom:18px;
  }
  .dsni-page--editorial .dsni-archive-content .dsni-filters{
    margin-bottom:22px;
    padding-top:14px;
  }
  .dsni-page--editorial .dsni-editorial-grid{
    grid-template-columns:minmax(0,1fr);
    gap:28px;
  }
  .dsni-page--editorial .dsni-editorial-grid .dsni-card,
  .dsni-page--editorial .dsni-editorial-grid .dsni-card-media{
    width:100%;
  }
  .dsni-page--editorial .dsni-editorial-grid .dsni-card-media{
    aspect-ratio:16/10;
  }
}


/* v1.8 - pagina singola: intestazione più vicina al menu e galleria più compatta */
.dsni-single--story{
  padding-top:24px;
}
.dsni-single--story .dsni-back{
  margin-bottom:24px;
}
.dsni-story-head{
  margin-bottom:28px;
}
.dsni-story-eyebrow{
  margin-bottom:12px;
}
.dsni-story-title{
  margin-bottom:18px;
}
.dsni-story-intro{
  margin-bottom:22px;
}
.dsni-story-gallery{
  width:100%;
  max-width:840px;
  gap:14px;
  margin-top:22px;
}
.dsni-story-photo{
  border-radius:14px;
}

@media(max-width:900px){
  .dsni-single--story{padding-top:26px}
  .dsni-story-gallery{max-width:760px}
}
@media(max-width:680px){
  .dsni-single--story{padding-top:20px}
  .dsni-single--story .dsni-back{margin-bottom:20px}
  .dsni-story-head{margin-bottom:22px}
  .dsni-story-gallery{max-width:none;margin-top:18px;gap:8px}
}


/* v1.9 - portale caricamento: tipografia e interfaccia più pulite */
body.dsni-uploader-portal{
  font-family:var(--the7-base-font-family,"Montserrat",Arial,sans-serif);
  font-size:15px;
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  background:#f4f6f8;
}
.dsni-uploader-portal .dsni-uploader-brand{
  font-family:inherit;
  font-size:13px;
  font-weight:750;
  letter-spacing:.075em;
  text-transform:uppercase;
  color:#59616b;
}
.dsni-uploader-portal .dsni-upload-shell{
  width:min(900px,calc(100% - 32px));
  padding:32px;
  border-radius:18px;
  border-color:rgba(20,30,45,.09);
  box-shadow:0 16px 42px rgba(18,28,45,.07);
}
.dsni-uploader-portal .dsni-upload-head h2,
.dsni-uploader-portal .dsni-upload-login h2{
  font-family:inherit;
  font-size:32px;
  line-height:1.08;
  font-weight:760;
  letter-spacing:-.035em;
  color:#24282d;
}
.dsni-uploader-portal .dsni-upload-head p,
.dsni-uploader-portal .dsni-upload-login p{
  font-family:inherit;
  font-size:15px;
  line-height:1.55;
  color:#66707a;
}
.dsni-uploader-portal .dsni-kicker{
  font-family:inherit;
  font-size:11px;
  font-weight:780;
  letter-spacing:.13em;
}
.dsni-uploader-portal .dsni-upload-field label,
.dsni-uploader-portal .dsni-upload-login label{
  font-family:inherit;
  margin-bottom:6px;
  font-size:13px;
  line-height:1.35;
  font-weight:720;
  letter-spacing:.005em;
  color:#30363c;
}
.dsni-uploader-portal .dsni-upload-field input[type=text],
.dsni-uploader-portal .dsni-upload-field input[type=month],
.dsni-uploader-portal .dsni-upload-field select,
.dsni-uploader-portal .dsni-upload-field textarea,
.dsni-uploader-portal .dsni-upload-login input[type=text],
.dsni-uploader-portal .dsni-upload-login input[type=password]{
  font-family:inherit;
  font-size:15px;
  font-weight:450;
  line-height:1.4;
  min-height:48px;
  border-radius:9px;
  border-color:#d6dce2;
  padding:11px 13px;
  box-shadow:0 1px 1px rgba(18,28,45,.02);
}
.dsni-uploader-portal .dsni-upload-field textarea{min-height:108px}
.dsni-uploader-portal .dsni-file-card{
  border-radius:12px;
  background:#f8fafb;
  border-color:#cdd5dd;
}
.dsni-uploader-portal .dsni-file-card p,
.dsni-uploader-portal .dsni-upload-note{
  font-family:inherit;
  color:#6a737d;
}
.dsni-uploader-portal .dsni-upload-user{
  font-family:inherit;
  font-size:12.5px;
  font-weight:700;
  background:#fafbfc;
}
.dsni-uploader-portal .dsni-upload-submit,
.dsni-uploader-portal .dsni-upload-login .button-primary{
  font-family:inherit;
  font-size:14px;
  font-weight:750;
  letter-spacing:.005em;
  border-radius:9px;
  box-shadow:none;
}
@media(max-width:700px){
  .dsni-uploader-portal .dsni-upload-shell{width:min(100% - 20px,900px);padding:20px}
  .dsni-uploader-portal .dsni-upload-head h2,.dsni-uploader-portal .dsni-upload-login h2{font-size:27px}
}


/* v1.10 - portale caricamento: usa il font principale del tema The7, con Montserrat come fallback */
.dsni-uploader-portal,
.dsni-uploader-portal input,
.dsni-uploader-portal select,
.dsni-uploader-portal textarea,
.dsni-uploader-portal button{
  font-family:var(--the7-base-font-family,"Montserrat",Arial,sans-serif);
}

/* v1.11 - smartphone: testi più compatti e galleria uniforme */
@media(max-width:680px){
  .dsni-single--story{
    padding-top:14px;
    padding-bottom:46px;
  }
  .dsni-single--story .dsni-back{
    margin-bottom:14px;
    font-size:13px;
    line-height:1.25;
  }
  .dsni-story-head{
    margin-bottom:18px;
  }
  .dsni-story-eyebrow{
    margin-bottom:8px;
    gap:7px;
    font-size:10px;
    letter-spacing:.10em;
  }
  .dsni-story-eyebrow span+span:before{
    margin-right:7px;
  }
  .dsni-single--story h1{
    margin-bottom:5px;
    font-size:clamp(32px,9.5vw,40px);
    line-height:1.02;
    letter-spacing:-.038em;
  }
  .dsni-story-title{
    margin-bottom:12px;
    font-size:19px;
    line-height:1.18;
    letter-spacing:-.018em;
  }
  .dsni-story-intro{
    margin-bottom:15px;
    font-size:14px;
    line-height:1.5;
  }
  .dsni-story-fact{
    padding:11px 0;
  }
  .dsni-story-fact span{
    margin-bottom:4px;
    font-size:9px;
  }
  .dsni-story-fact strong{
    font-size:13px;
    line-height:1.35;
  }
  .dsni-story-gallery{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    width:100%!important;
    max-width:none!important;
    gap:9px!important;
    margin-top:16px!important;
  }
  .dsni-story-photo{
    width:100%!important;
    min-width:0!important;
    aspect-ratio:4/3!important;
    border-radius:10px!important;
    overflow:hidden!important;
  }
  .dsni-story-photo img{
    display:block!important;
    width:100%!important;
    height:100%!important;
    max-width:none!important;
    max-height:none!important;
    object-fit:cover!important;
    object-position:center!important;
  }
}

@media(max-width:390px){
  .dsni-wrap{width:min(100% - 20px,1180px)}
  .dsni-single--story h1{font-size:31px}
  .dsni-story-title{font-size:18px}
  .dsni-story-gallery{gap:7px!important}
}

/* v1.12 - galleria fotografica uniforme: 3 colonne desktop, 2 colonne smartphone */
.dsni-gallery-section{
  width:100%;
  max-width:920px;
  margin-top:24px;
}
.dsni-gallery-heading{
  margin:0 0 15px;
  font-size:12px;
  line-height:1;
  text-transform:uppercase;
  letter-spacing:.14em;
  font-weight:800;
  color:var(--dsni-accent);
}
.dsni-gallery-section .dsni-story-gallery{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  width:100%!important;
  max-width:none!important;
  gap:14px!important;
  margin:0!important;
}
.dsni-gallery-section .dsni-story-photo{
  display:block!important;
  width:100%!important;
  min-width:0!important;
  aspect-ratio:1/1!important;
  border-radius:12px!important;
  overflow:hidden!important;
  background:#eef1f3;
  box-shadow:none!important;
}
.dsni-gallery-section .dsni-story-photo img{
  display:block!important;
  width:100%!important;
  height:100%!important;
  max-width:none!important;
  max-height:none!important;
  object-fit:cover!important;
  object-position:center!important;
}

@media(max-width:900px){
  .dsni-gallery-section{max-width:760px}
  .dsni-gallery-section .dsni-story-gallery{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:12px!important;
  }
}

@media(max-width:680px){
  .dsni-gallery-section{
    max-width:none;
    margin-top:18px;
  }
  .dsni-gallery-heading{
    margin-bottom:12px;
    font-size:11px;
    letter-spacing:.13em;
  }
  .dsni-gallery-section .dsni-story-gallery{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:9px!important;
  }
  .dsni-gallery-section .dsni-story-photo{
    aspect-ratio:1/1!important;
    border-radius:9px!important;
  }
}

@media(max-width:390px){
  .dsni-gallery-section .dsni-story-gallery{gap:7px!important}
}

/* v1.13 - galleria forzata 2xN su tutti i dispositivi.
   Le regole sono volutamente ad alta specificità per evitare override del tema The7. */
.dsni-single--story .dsni-gallery-section--forced{
  width:100%!important;
  max-width:760px!important;
  margin-top:22px!important;
}
.dsni-single--story .dsni-gallery-section--forced .dsni-gallery-heading{
  display:block!important;
}
.dsni-single--story .dsni-story-gallery--forced{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:10px!important;
  width:100%!important;
  max-width:none!important;
  margin:0!important;
}
.dsni-single--story .dsni-story-gallery--forced > .dsni-story-photo--forced{
  display:block!important;
  width:100%!important;
  min-width:0!important;
  height:auto!important;
  aspect-ratio:1/1!important;
  overflow:hidden!important;
  border-radius:10px!important;
}
.dsni-single--story .dsni-story-gallery--forced > .dsni-story-photo--forced > img{
  display:block!important;
  width:100%!important;
  height:100%!important;
  max-width:none!important;
  max-height:none!important;
  object-fit:cover!important;
  object-position:center!important;
}
@media(max-width:680px){
  .dsni-single--story .dsni-gallery-section--forced{
    max-width:none!important;
    margin-top:16px!important;
  }
  .dsni-single--story .dsni-story-gallery--forced{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:8px!important;
  }
}

/* v1.14 - galleria robusta: fallback FLEX 2 colonne su mobile, 3 su desktop.
   Uso di flex al posto del solo CSS Grid per evitare override responsive del tema. */
.dsni-single--story .dsni-gallery-section--hard .dsni-story-gallery--hard{
  display:flex!important;
  flex-wrap:wrap!important;
  align-items:stretch!important;
  gap:10px!important;
  width:100%!important;
  max-width:none!important;
  margin:0!important;
  padding:0!important;
  box-sizing:border-box!important;
}
.dsni-single--story .dsni-gallery-section--hard .dsni-story-gallery--hard>.dsni-story-photo--hard{
  display:block!important;
  box-sizing:border-box!important;
  flex:0 0 calc(33.333% - 7px)!important;
  width:calc(33.333% - 7px)!important;
  max-width:calc(33.333% - 7px)!important;
  min-width:0!important;
  aspect-ratio:1/1!important;
  margin:0!important;
  padding:0!important;
}
.dsni-single--story .dsni-gallery-section--hard .dsni-story-gallery--hard>.dsni-story-photo--hard>img{
  display:block!important;
  width:100%!important;
  height:100%!important;
  max-width:none!important;
  max-height:none!important;
  object-fit:cover!important;
  object-position:center!important;
  margin:0!important;
  padding:0!important;
}
@media(max-width:900px){
  .dsni-single--story .dsni-gallery-section--hard .dsni-story-gallery--hard{
    gap:8px!important;
  }
  .dsni-single--story .dsni-gallery-section--hard .dsni-story-gallery--hard>.dsni-story-photo--hard{
    flex-basis:calc(50% - 4px)!important;
    width:calc(50% - 4px)!important;
    max-width:calc(50% - 4px)!important;
  }
}

/* v1.15 - pagina singola: riduce in modo deciso lo spazio tra header The7 e contenuto.
   Il tema riserva spazio verticale sopra al contenuto soprattutto su viewport stretti;
   compensiamo solo sulle pagine delle installazioni, senza modificare il resto del sito. */
@media (max-width:900px){
  body.single-dsn_installazione main.dsni-single--story{
    margin-top:-40px!important;
    padding-top:10px!important;
  }
}
@media (max-width:680px){
  body.single-dsn_installazione main.dsni-single--story{
    margin-top:-62px!important;
    padding-top:8px!important;
  }
  body.single-dsn_installazione .dsni-single--story .dsni-back{
    margin-bottom:12px!important;
  }
}
@media (max-width:390px){
  body.single-dsn_installazione main.dsni-single--story{
    margin-top:-56px!important;
  }
}

/* v1.16 - archivio installazioni: riduce lo spazio verticale riservato da The7
   tra header/logo e hero, come già fatto sulla pagina singola. */
@media (max-width:900px){
  body.post-type-archive-dsn_installazione main.dsni-page--editorial,
  body.tax-dsn_categoria_installazione main.dsni-page--editorial{
    margin-top:-40px!important;
  }
  body.post-type-archive-dsn_installazione .dsni-page--editorial .dsni-hero--editorial,
  body.tax-dsn_categoria_installazione .dsni-page--editorial .dsni-hero--editorial{
    padding-top:12px!important;
  }
}
@media (max-width:680px){
  body.post-type-archive-dsn_installazione main.dsni-page--editorial,
  body.tax-dsn_categoria_installazione main.dsni-page--editorial{
    margin-top:-62px!important;
  }
  body.post-type-archive-dsn_installazione .dsni-page--editorial .dsni-hero--editorial,
  body.tax-dsn_categoria_installazione .dsni-page--editorial .dsni-hero--editorial{
    padding-top:8px!important;
    padding-bottom:16px!important;
  }
}
@media (max-width:390px){
  body.post-type-archive-dsn_installazione main.dsni-page--editorial,
  body.tax-dsn_categoria_installazione main.dsni-page--editorial{
    margin-top:-56px!important;
  }
}

/* v1.17 - revisione editoriale archivio */
.dsni-page--editorial .dsni-hero-kicker{
  letter-spacing:.14em;
}
.dsni-page--editorial .dsni-hero--editorial p{
  max-width:690px;
}
.dsni-page--editorial .dsni-editorial-grid .dsni-card-location{
  margin-bottom:8px;
}
.dsni-page--editorial .dsni-editorial-grid .dsni-more{
  margin-top:4px;
}


/* v1.18 - pagina singola: revisione editoriale del racconto progetto */
.dsni-single--story .dsni-story-head{
  max-width:960px;
}
.dsni-single--story .dsni-story-title{
  max-width:860px;
  color:#5f646b;
  font-weight:650;
}
.dsni-single--story .dsni-story-copy{
  max-width:900px;
  margin:28px 0 30px;
}
.dsni-single--story .dsni-story-copy-label{
  margin:0 0 10px;
  font-size:11px;
  line-height:1;
  text-transform:uppercase;
  letter-spacing:.14em;
  font-weight:800;
  color:var(--dsni-accent);
}
.dsni-single--story .dsni-story-intro{
  max-width:900px;
  margin:0;
  font-size:18px;
  line-height:1.65;
  color:#626a73;
}
.dsni-single--story .dsni-story-facts{
  max-width:930px;
  margin-top:0;
}
.dsni-single--story .dsni-story-fact span{
  color:#707780;
}
.dsni-single--story .dsni-story-fact strong{
  font-weight:700;
}

@media(max-width:680px){
  .dsni-single--story .dsni-story-copy{
    margin:18px 0 20px;
  }
  .dsni-single--story .dsni-story-copy-label{
    margin-bottom:7px;
    font-size:9px;
    letter-spacing:.13em;
  }
  .dsni-single--story .dsni-story-intro{
    font-size:14px;
    line-height:1.52;
  }
}


/* v1.20 - portale caricamento: tipografia sans-serif forzata, indipendente dal tema */
body.dsni-uploader-portal,
body.dsni-uploader-portal *,
body.dsni-uploader-portal input,
body.dsni-uploader-portal select,
body.dsni-uploader-portal textarea,
body.dsni-uploader-portal button,
body.dsni-uploader-portal label,
body.dsni-uploader-portal h1,
body.dsni-uploader-portal h2,
body.dsni-uploader-portal h3,
body.dsni-uploader-portal p,
body.dsni-uploader-portal a,
body.dsni-uploader-portal span {
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif !important;
}
body.dsni-uploader-portal {
  font-size:15px;
  font-weight:400;
  line-height:1.5;
  letter-spacing:0;
}
body.dsni-uploader-portal .dsni-uploader-brand {
  font-size:13px;
  font-weight:700;
  letter-spacing:.11em;
}
body.dsni-uploader-portal .dsni-upload-head h2,
body.dsni-uploader-portal .dsni-upload-login h2 {
  font-size:31px;
  font-weight:700;
  line-height:1.12;
  letter-spacing:-.025em;
}
body.dsni-uploader-portal .dsni-upload-head p,
body.dsni-uploader-portal .dsni-upload-login p {
  font-size:15px;
  font-weight:400;
  line-height:1.5;
}
body.dsni-uploader-portal .dsni-kicker {
  font-size:11px;
  font-weight:700;
  letter-spacing:.12em;
}
body.dsni-uploader-portal .dsni-upload-field label,
body.dsni-uploader-portal .dsni-upload-login label {
  font-size:13px;
  font-weight:650;
  letter-spacing:0;
}
body.dsni-uploader-portal .dsni-upload-field input[type=text],
body.dsni-uploader-portal .dsni-upload-field input[type=month],
body.dsni-uploader-portal .dsni-upload-field select,
body.dsni-uploader-portal .dsni-upload-field textarea,
body.dsni-uploader-portal .dsni-upload-login input[type=text],
body.dsni-uploader-portal .dsni-upload-login input[type=password] {
  font-size:15px;
  font-weight:400;
  letter-spacing:0;
}
body.dsni-uploader-portal .dsni-upload-submit,
body.dsni-uploader-portal .dsni-upload-login .button-primary,
body.dsni-uploader-portal .dsni-upload-user {
  font-weight:650;
}
@media(max-width:700px){
  body.dsni-uploader-portal .dsni-upload-head h2,
  body.dsni-uploader-portal .dsni-upload-login h2{font-size:26px}
}

/* v1.24 - portale: login diretto, responsive mobile e popup di conferma */
body.dsni-uploader-portal{
  width:100%;
  min-width:0;
  overflow-x:hidden;
}
body.dsni-uploader-portal .dsni-uploader-page{
  width:100%;
  max-width:100%;
  min-width:0;
  box-sizing:border-box;
}
body.dsni-uploader-portal .dsni-upload-shell,
body.dsni-uploader-portal .dsni-uploader-brand{
  box-sizing:border-box;
  max-width:calc(100% - 24px);
}
body.dsni-uploader-portal .dsni-upload-grid,
body.dsni-uploader-portal .dsni-upload-field,
body.dsni-uploader-portal .dsni-file-card{
  min-width:0;
}
body.dsni-uploader-portal input,
body.dsni-uploader-portal select,
body.dsni-uploader-portal textarea,
body.dsni-uploader-portal button{
  max-width:100%;
  box-sizing:border-box;
}
body.dsni-uploader-portal .dsni-login-form{margin-top:24px}
body.dsni-uploader-portal .dsni-login-field{margin-bottom:16px}
body.dsni-uploader-portal .dsni-login-field label{display:block;margin:0 0 7px;font-size:13px;font-weight:650;color:#30363c}
body.dsni-uploader-portal .dsni-login-field input{
  width:100%;min-height:50px;border:1px solid #d6dce2;border-radius:10px;background:#fff;padding:11px 13px;font-size:16px!important;line-height:1.35;outline:none;
}
body.dsni-uploader-portal .dsni-login-field input:focus{border-color:var(--dsni-accent);box-shadow:0 0 0 3px rgba(23,105,170,.10)}
body.dsni-uploader-portal .dsni-login-row{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:4px}
body.dsni-uploader-portal .dsni-login-remember{display:flex!important;align-items:center;gap:8px;margin:0!important;font-size:14px!important;font-weight:500!important;cursor:pointer}
body.dsni-uploader-portal .dsni-login-remember input{width:18px;height:18px;margin:0;flex:0 0 auto}
body.dsni-uploader-portal .dsni-login-submit{min-width:130px;min-height:46px;border:0!important;border-radius:10px!important;padding:11px 20px!important;background:var(--dsni-accent)!important;color:#fff!important;font-size:15px!important;font-weight:700!important;cursor:pointer}
body.dsni-uploader-portal .dsni-login-error{margin:18px 0 0;padding:12px 14px;border:1px solid #f2c7c7;border-radius:10px;background:#fff1f1;color:#8f1d1d;font-size:14px;line-height:1.45}

html.dsni-modal-open,html.dsni-modal-open body{overflow:hidden!important}
.dsni-upload-modal{position:fixed;inset:0;z-index:999999;display:none;align-items:center;justify-content:center;padding:20px;background:rgba(16,24,32,.55);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px)}
.dsni-upload-modal.is-open{display:flex}
.dsni-upload-modal-card{width:min(430px,100%);box-sizing:border-box;border-radius:18px;background:#fff;padding:28px;text-align:center;box-shadow:0 24px 70px rgba(0,0,0,.22)}
.dsni-upload-modal-icon{display:grid;place-items:center;width:54px;height:54px;margin:0 auto 16px;border-radius:50%;background:#e9f7ee;color:#1b7b42;font-size:28px;font-weight:800;line-height:1}
.dsni-upload-modal-card h3{margin:0 0 9px!important;font-size:24px!important;line-height:1.15!important;font-weight:750!important;color:#222a31!important}
.dsni-upload-modal-card p{margin:0 0 22px!important;font-size:15px!important;line-height:1.5!important;color:#5e6872!important}
.dsni-upload-modal-ok{appearance:none;border:0!important;border-radius:10px!important;background:var(--dsni-accent)!important;color:#fff!important;min-width:120px;padding:12px 22px!important;font-size:15px!important;font-weight:750!important;cursor:pointer}

@media(max-width:700px){
  body.dsni-uploader-portal .dsni-uploader-page{padding:14px 0 28px!important}
  body.dsni-uploader-portal .dsni-uploader-brand{width:calc(100% - 24px)!important;max-width:none!important;margin:0 auto -8px!important;font-size:11px!important}
  body.dsni-uploader-portal .dsni-upload-shell{width:calc(100% - 24px)!important;max-width:none!important;margin:22px auto 32px!important;padding:18px!important;border-radius:15px!important}
  body.dsni-uploader-portal .dsni-upload-head{display:block!important;padding-bottom:16px!important;margin-bottom:18px!important;gap:0!important}
  body.dsni-uploader-portal .dsni-upload-head h2,body.dsni-uploader-portal .dsni-upload-login h2{font-size:25px!important;line-height:1.12!important;margin-bottom:7px!important}
  body.dsni-uploader-portal .dsni-upload-head p,body.dsni-uploader-portal .dsni-upload-login p{font-size:14px!important;line-height:1.45!important}
  body.dsni-uploader-portal .dsni-upload-user{display:inline-flex!important;margin-top:12px!important;padding:7px 10px!important}
  body.dsni-uploader-portal .dsni-upload-grid{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:14px!important}
  body.dsni-uploader-portal .dsni-upload-field,body.dsni-uploader-portal .dsni-upload-field.full{grid-column:auto!important;width:100%!important;min-width:0!important}
  body.dsni-uploader-portal .dsni-upload-field label{font-size:13px!important;margin-bottom:6px!important}
  body.dsni-uploader-portal .dsni-upload-field input[type=text],
  body.dsni-uploader-portal .dsni-upload-field input[type=month],
  body.dsni-uploader-portal .dsni-upload-field select,
  body.dsni-uploader-portal .dsni-upload-field textarea{font-size:16px!important;min-height:49px!important;padding:11px 12px!important;border-radius:9px!important}
  body.dsni-uploader-portal .dsni-upload-field textarea{min-height:106px!important}
  body.dsni-uploader-portal .dsni-file-card{padding:14px!important;border-radius:12px!important}
  body.dsni-uploader-portal .dsni-file-card p{font-size:13px!important;line-height:1.45!important}
  body.dsni-uploader-portal .dsni-file-card input[type=file]{font-size:14px!important;width:100%!important;overflow:hidden}
  body.dsni-uploader-portal .dsni-upload-preview{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:7px!important;width:100%!important}
  body.dsni-uploader-portal .dsni-upload-preview img,body.dsni-uploader-portal .dsni-upload-preview-many img{width:100%!important;height:auto!important;aspect-ratio:1/1!important;object-fit:cover!important;border-radius:8px!important}
  body.dsni-uploader-portal #dsni_featured_preview{grid-template-columns:minmax(0,170px)!important}
  body.dsni-uploader-portal .dsni-upload-actions{display:flex!important;flex-direction:column!important;align-items:stretch!important;gap:12px!important;margin-top:18px!important;padding-top:18px!important}
  body.dsni-uploader-portal .dsni-upload-note{font-size:12px!important;line-height:1.4!important}
  body.dsni-uploader-portal .dsni-upload-submit{width:100%!important;min-width:0!important;min-height:48px!important;font-size:15px!important}
  body.dsni-uploader-portal .dsni-login-form{margin-top:20px!important}
  body.dsni-uploader-portal .dsni-login-row{flex-direction:column!important;align-items:stretch!important;gap:14px!important}
  body.dsni-uploader-portal .dsni-login-remember{align-self:flex-start!important}
  body.dsni-uploader-portal .dsni-login-submit{width:100%!important;min-height:48px!important}
  .dsni-upload-modal{padding:14px!important}
  .dsni-upload-modal-card{padding:24px 20px!important;border-radius:16px!important}
  .dsni-upload-modal-card h3{font-size:22px!important}
  .dsni-upload-modal-card p{font-size:14px!important}
  .dsni-upload-modal-ok{width:100%!important;min-height:48px!important}
}

@media(max-width:380px){
  body.dsni-uploader-portal .dsni-upload-shell{width:calc(100% - 16px)!important;padding:15px!important}
  body.dsni-uploader-portal .dsni-uploader-brand{width:calc(100% - 16px)!important}
  body.dsni-uploader-portal .dsni-upload-preview{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}

/* v1.35 - stato di caricamento con spinner e avanzamento reale upload */
.dsni-upload-progress-modal .dsni-upload-progress-card{
  width:min(430px,calc(100vw - 32px));
  text-align:center;
  padding:30px 28px 26px!important;
}
.dsni-upload-spinner{
  width:42px;
  height:42px;
  margin:0 auto 18px;
  border:4px solid rgba(23,105,170,.14);
  border-top-color:var(--dsni-accent);
  border-radius:50%;
  animation:dsni-upload-spin .8s linear infinite;
}
@keyframes dsni-upload-spin{to{transform:rotate(360deg)}}
.dsni-upload-progress-card h3{
  margin:0 0 8px!important;
}
.dsni-upload-progress-card p{
  margin:0 auto 20px!important;
  max-width:340px;
  color:var(--dsni-muted);
  line-height:1.5;
}
.dsni-upload-progress-track{
  position:relative;
  width:100%;
  height:9px;
  overflow:hidden;
  border-radius:999px;
  background:#e8edf1;
}
.dsni-upload-progress-bar{
  display:block;
  width:0;
  height:100%;
  border-radius:inherit;
  background:var(--dsni-accent);
  transition:width .18s ease;
}
.dsni-upload-progress-meta{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  margin-top:10px;
  font-size:12px;
  line-height:1.3;
  color:var(--dsni-muted);
  text-align:left;
}
.dsni-upload-progress-meta strong{
  flex:0 0 auto;
  color:var(--dsni-text);
  font-size:13px;
}
body.dsni-upload-is-busy{cursor:progress}
@media(max-width:680px){
  .dsni-upload-progress-modal .dsni-upload-progress-card{
    width:min(92vw,390px);
    padding:26px 20px 22px!important;
    border-radius:16px!important;
  }
  .dsni-upload-spinner{width:38px;height:38px;margin-bottom:15px}
  .dsni-upload-progress-card h3{font-size:21px!important}
  .dsni-upload-progress-card p{font-size:14px!important;margin-bottom:17px!important}
}
@media (prefers-reduced-motion:reduce){
  .dsni-upload-spinner{animation-duration:1.6s}
  .dsni-upload-progress-bar{transition:none}
}


/* v1.36 - anteprime foto con eliminazione singola, desktop e smartphone */
.dsni-upload-preview .dsni-upload-preview-item{
  position:relative;display:block;flex:0 0 auto;width:120px;aspect-ratio:6/5;
  min-width:0;max-width:100%;border-radius:10px;overflow:hidden;
}
.dsni-upload-preview-many .dsni-upload-preview-item{width:92px;aspect-ratio:1/1}
.dsni-upload-preview .dsni-upload-preview-item img,
body.dsni-uploader-portal .dsni-upload-preview .dsni-upload-preview-item img{
  display:block;width:100%!important;height:100%!important;aspect-ratio:auto!important;
  object-fit:cover!important;border-radius:10px!important;
}
.dsni-upload-preview .dsni-upload-remove-photo,
body.dsni-uploader-portal .dsni-upload-remove-photo{
  position:absolute;right:5px;top:5px;z-index:2;display:flex!important;
  align-items:center!important;justify-content:center!important;
  width:30px!important;height:30px!important;min-width:30px!important;min-height:30px!important;
  margin:0!important;padding:0!important;border:1px solid rgba(255,255,255,.9)!important;
  border-radius:50%!important;background:rgba(15,27,39,.88)!important;color:#fff!important;
  font:700 22px/1 Arial,sans-serif!important;box-shadow:0 2px 8px rgba(0,0,0,.2)!important;
  cursor:pointer!important;appearance:none!important;
}
.dsni-upload-preview .dsni-upload-remove-photo:focus-visible{
  outline:3px solid #0671bc!important;outline-offset:2px!important;
}
.dsni-upload-preview .dsni-upload-remove-photo:hover{background:#b42318!important}
.dsni-upload-selection-count{margin:8px 0 0!important;color:#506071!important;font-size:13px!important}
@media(max-width:700px){
 body.dsni-uploader-portal .dsni-upload-preview .dsni-upload-preview-item{
   width:100%!important;max-width:100%!important;aspect-ratio:1/1!important;
 }
 body.dsni-uploader-portal #dsni_featured_preview .dsni-upload-preview-item{
   width:100%!important;max-width:170px!important;aspect-ratio:1/1!important;
 }
 body.dsni-uploader-portal .dsni-upload-remove-photo{
   width:34px!important;height:34px!important;min-width:34px!important;min-height:34px!important;
 }
}


/* v1.38 — archivio: layout mobile leggibile a colpo d'occhio.
   Solo l'archivio e lo shortcode: la pagina singola e il desktop restano invariati. */
@media (max-width: 680px) {
  .dsni-page--editorial .dsni-wrap,
  .dsni-embed .dsni-wrap {
    width: calc(100% - 28px) !important;
    max-width: none !important;
  }
  .dsni-page--editorial .dsni-hero--editorial {
    padding-top: 8px !important;
    padding-bottom: 12px !important;
  }
  .dsni-page--editorial .dsni-hero-kicker {
    font-size: 10px !important;
    margin: 0 0 7px !important;
    letter-spacing: .12em !important;
  }
  .dsni-page--editorial .dsni-hero--editorial h1 {
    font-size: clamp(29px, 8.1vw, 36px) !important;
    line-height: 1.07 !important;
    letter-spacing: -.034em !important;
    margin: 0 0 8px !important;
    max-width: 100% !important;
  }
  .dsni-page--editorial .dsni-hero--editorial p {
    font-size: 13px !important;
    line-height: 1.42 !important;
    margin: 0 !important;
  }
  /* Mostra tutte le categorie: niente carosello nascosto e niente scroll laterale. */
  .dsni-page--editorial .dsni-archive-content .dsni-filters,
  .dsni-embed .dsni-filters {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: wrap !important;
    align-items: center !important;
    justify-content: flex-start !important;
    overflow: visible !important;
    overflow-x: visible !important;
    white-space: normal !important;
    width: 100% !important;
    max-width: 100% !important;
    gap: 6px !important;
    padding: 10px 0 0 !important;
    margin: 4px 0 14px !important;
  }
  .dsni-page--editorial .dsni-archive-content .dsni-filter,
  .dsni-embed .dsni-filter {
    display: inline-flex !important;
    align-items: center !important;
    min-height: 30px !important;
    width: auto !important;
    max-width: 100% !important;
    flex: 0 1 auto !important;
    margin: 0 !important;
    padding: 5px 9px !important;
    border: 1px solid #e1e7ec !important;
    border-radius: 6px !important;
    background: #f6f8fa !important;
    color: #46515c !important;
    font-size: 11.5px !important;
    line-height: 1.25 !important;
    font-weight: 700 !important;
    white-space: normal !important;
    text-align: center !important;
    overflow-wrap: break-word !important;
    box-shadow: none !important;
  }
  .dsni-page--editorial .dsni-archive-content .dsni-filter.is-active,
  .dsni-embed .dsni-filter.is-active {
    color: #0864a6 !important;
    background: #edf6fc !important;
    border-color: #1883c7 !important;
  }
  /* Due schede affiancate: il visitatore vede più progetti nello stesso schermo. */
  .dsni-page--editorial .dsni-editorial-grid,
  .dsni-embed .dsni-editorial-grid {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    justify-content: stretch !important;
    align-items: start !important;
    width: 100% !important;
    max-width: none !important;
    gap: 19px 11px !important;
    padding: 0 0 38px !important;
    margin: 0 !important;
  }
  .dsni-page--editorial .dsni-editorial-grid > .dsni-card,
  .dsni-embed .dsni-editorial-grid > .dsni-card {
    display: block;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    height: auto !important;
    margin: 0 !important;
  }
  .dsni-page--editorial .dsni-editorial-grid > .dsni-card.is-hidden,
  .dsni-embed .dsni-editorial-grid > .dsni-card.is-hidden {display:none!important}
  .dsni-page--editorial .dsni-editorial-grid .dsni-card-link,
  .dsni-embed .dsni-editorial-grid .dsni-card-link {
    display: flex !important;
    flex-direction: column !important;
    height: auto !important;
    min-width: 0 !important;
  }
  .dsni-page--editorial .dsni-editorial-grid .dsni-card-media,
  .dsni-embed .dsni-editorial-grid .dsni-card-media {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    aspect-ratio: 4/3 !important;
    border-radius: 9px !important;
    margin: 0 !important;
  }
  .dsni-page--editorial .dsni-editorial-grid .dsni-card-media img,
  .dsni-embed .dsni-editorial-grid .dsni-card-media img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
  }
  .dsni-page--editorial .dsni-editorial-grid .dsni-card-body,
  .dsni-embed .dsni-editorial-grid .dsni-card-body {
    display: block !important;
    min-width: 0 !important;
    padding: 7px 1px 0 !important;
  }
  .dsni-page--editorial .dsni-editorial-grid .dsni-card-topline,
  .dsni-embed .dsni-editorial-grid .dsni-card-topline {
    display: block !important;
    margin: 0 0 4px !important;
  }
  .dsni-page--editorial .dsni-editorial-grid .dsni-card-topline .dsni-kicker,
  .dsni-embed .dsni-editorial-grid .dsni-card-topline .dsni-kicker {
    margin: 0 !important;
    font-size: 9.5px !important;
    line-height: 1.28 !important;
    letter-spacing: .055em !important;
    overflow-wrap: anywhere !important;
  }
  /* Data e località restano leggibili nella pagina del singolo progetto. */
  .dsni-page--editorial .dsni-editorial-grid .dsni-card-date,
  .dsni-embed .dsni-editorial-grid .dsni-card-date {display:none!important}
  .dsni-page--editorial .dsni-editorial-grid .dsni-card h3,
  .dsni-embed .dsni-editorial-grid .dsni-card h3 {
    display: -webkit-box !important;
    -webkit-box-orient: vertical !important;
    -webkit-line-clamp: 2 !important;
    overflow: hidden !important;
    min-height: 0 !important;
    font-size: 16px !important;
    line-height: 1.15 !important;
    letter-spacing: -.018em !important;
    margin: 0 0 4px !important;
    overflow-wrap: anywhere !important;
  }
  .dsni-page--editorial .dsni-editorial-grid .dsni-card-project-title,
  .dsni-embed .dsni-editorial-grid .dsni-card-project-title {
    display: -webkit-box !important;
    -webkit-box-orient: vertical !important;
    -webkit-line-clamp: 2 !important;
    overflow: hidden !important;
    min-height: 0 !important;
    margin: 0 0 2px !important;
    font-size: 12px !important;
    line-height: 1.33 !important;
    font-weight: 600 !important;
  }
  .dsni-page--editorial .dsni-editorial-grid .dsni-card-location,
  .dsni-embed .dsni-editorial-grid .dsni-card-location {
    font-size: 10.5px !important;
    line-height: 1.3 !important;
    margin: 0 !important;
    font-weight: 500 !important;
  }
  .dsni-page--editorial .dsni-editorial-grid .dsni-more,
  .dsni-embed .dsni-editorial-grid .dsni-more {display: none !important}
}
