:root{
  --green:#2f7d7a;
  --green-dark:#23615f;
  --mint:#eaf6f5;
  --paper:#f7f1e8;
  --text:#263238;
  --muted:#5d6f73;
  --border:#dce8e6;
  --white:#ffffff;
  --shadow:0 18px 40px rgba(38,50,56,.10);
  --radius:22px;
  --container:1160px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:"Nunito Sans", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color:var(--text);
  background:#fff;
  line-height:1.6;
}
img{max-width:100%; display:block}
a{color:var(--green); text-decoration:none; font-weight:700}
a:hover{text-decoration:underline}
.container{max-width:var(--container); margin:0 auto; padding:0 22px}
.skip-link{position:absolute; left:-999px; top:auto; width:1px; height:1px; overflow:hidden}
.skip-link:focus{left:16px; top:16px; width:auto; height:auto; background:var(--green); color:white; padding:10px 14px; border-radius:10px; z-index:99}
.site-header{position:sticky; top:0; z-index:20; background:rgba(255,255,255,.94); backdrop-filter:blur(12px); border-bottom:1px solid var(--border)}
.header-inner{min-height:74px; display:flex; align-items:center; gap:24px}
.brand{display:flex; align-items:center; gap:10px; color:var(--text); flex:0 0 auto}
.brand img{width:46px; height:46px; object-fit:contain; border-radius:50%}
.brand span{font-size:1.15rem; font-weight:850}
.menu-toggle{display:none}
.menu-button{display:none; margin-left:auto; color:var(--green); border:1px solid var(--border); padding:8px 12px; border-radius:999px; font-weight:800; cursor:pointer}
.main-nav{margin-left:auto; display:flex; align-items:center; gap:14px; font-size:.86rem; flex-wrap:wrap; justify-content:flex-end}
.main-nav a{color:var(--text); font-weight:750}
.main-nav a:hover{color:var(--green); text-decoration:none}
.main-nav .nav-cta{background:var(--green); color:white; padding:9px 14px; border-radius:999px}
.main-nav .nav-cta:hover{background:var(--green-dark); color:white}
.section{padding:78px 0}
.section-soft{background:linear-gradient(135deg, var(--mint), #fff)}
.section-paper{background:var(--paper)}
.hero{padding:82px 0 74px}
.hero-grid{display:grid; grid-template-columns:1.03fr .97fr; gap:54px; align-items:center}
.hero h1{font-size:clamp(2.2rem, 5vw, 4.7rem); line-height:1.05; letter-spacing:-.045em; margin:0 0 20px}
.lead{font-size:1.22rem; color:#33484c}
p{margin:0 0 16px}
.eyebrow{text-transform:uppercase; letter-spacing:.08em; font-size:.78rem; color:var(--green); font-weight:900; margin-bottom:10px}
.actions{display:flex; flex-wrap:wrap; gap:12px; margin-top:30px}
.btn{display:inline-flex; align-items:center; justify-content:center; min-height:46px; padding:12px 20px; border-radius:999px; font-weight:850; border:2px solid transparent; text-decoration:none}
.btn:hover{text-decoration:none}
.btn.primary{background:var(--green); color:white}
.btn.primary:hover{background:var(--green-dark)}
.btn.secondary{background:white; color:var(--green); border-color:var(--green)}
.btn.secondary:hover{background:var(--mint)}
.hero-media{position:relative; min-height:430px}
.hero-media:before{content:""; position:absolute; inset:38px 0 0 86px; background:rgba(47,125,122,.16); border-radius:42px}
.cover-img{position:absolute; width:40%; max-width:230px; left:0; top:10px; z-index:2; border-radius:18px; box-shadow:var(--shadow); transform:rotate(-3deg)}
.open-img{position:absolute; width:76%; right:0; bottom:8px; border-radius:22px; box-shadow:var(--shadow)}
.section-heading{max-width:720px; margin:0 auto 34px}
.centered{text-align:center}
.cards{display:grid; gap:22px}
.four-cards{grid-template-columns:repeat(4,1fr)}
.three-cards{grid-template-columns:repeat(3,1fr)}
.card{background:white; border:1px solid var(--border); border-radius:var(--radius); padding:26px; box-shadow:0 10px 22px rgba(38,50,56,.05); min-height:100%; display:flex; flex-direction:column}
.card h3{font-size:1.22rem; line-height:1.25; margin:0 0 12px}
.card p{color:var(--muted); flex:1}
.card a{margin-top:8px}
.split-grid{display:grid; grid-template-columns:1fr 1fr; gap:54px; align-items:center}
h2{font-size:clamp(1.8rem, 3vw, 2.75rem); line-height:1.13; letter-spacing:-.025em; margin:0 0 18px}
h3{margin:0 0 8px}
.steps{display:grid; gap:18px; margin:28px 0}
.step{display:flex; gap:16px; align-items:flex-start}
.step span{flex:0 0 38px; width:38px; height:38px; border-radius:50%; background:var(--green); color:#fff; display:grid; place-items:center; font-weight:900}
.step h3{font-size:1.05rem}
.step p{color:var(--muted); margin-bottom:0}
.image-card{margin:0; border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow); background:white; border:1px solid var(--border)}
.image-card img{width:100%; height:100%; object-fit:cover}
.important-image{border:8px solid white; background:white}
.narrow{max-width:760px}
.feature-box{background:var(--mint); border:1px solid var(--border); border-radius:28px; padding:34px; display:flex; align-items:center; justify-content:space-between; gap:28px}
.feature-box p:last-child{margin-bottom:0}
.collab-band{background:linear-gradient(135deg,#f9f5ed,#edf8f6); padding:48px 0; border-top:1px solid var(--border); border-bottom:1px solid var(--border)}
.collab-inner{display:grid; grid-template-columns:1.2fr auto auto; gap:28px; align-items:center}
.collab-inner h2{font-size:1.8rem}
.logo-row{display:flex; align-items:center; gap:18px; flex-wrap:wrap}
.logo-row img{width:150px; border-radius:14px; border:1px solid var(--border); background:white}
.site-footer{background:#173d3b; color:#eef8f7; padding:54px 0}
.site-footer a{color:white}
.footer-grid{display:grid; grid-template-columns:1.1fr 1fr 1.2fr; gap:34px}
.site-footer h2{font-size:1.08rem; margin:0 0 12px; letter-spacing:0}
.site-footer p{color:#d8ebe9}
ul{list-style:none; padding:0; margin:0}
li{margin:0 0 8px}
.small-note{font-size:.92rem}
@media (max-width:1080px){
  .four-cards{grid-template-columns:repeat(2,1fr)}
  .main-nav{font-size:.82rem; gap:10px}
}
@media (max-width:860px){
  .header-inner{min-height:68px}
  .menu-button{display:block}
  .main-nav{display:none; position:absolute; left:0; right:0; top:68px; background:white; border-bottom:1px solid var(--border); padding:18px 22px; flex-direction:column; align-items:flex-start; gap:12px}
  .menu-toggle:checked ~ .main-nav{display:flex}
  .main-nav .nav-cta{margin-top:8px}
  .hero-grid,.split-grid{grid-template-columns:1fr; gap:34px}
  .reverse-mobile figure{order:2}
  .hero-media{min-height:330px}
  .cover-img{width:33%}
  .open-img{width:80%}
  .three-cards{grid-template-columns:1fr}
  .collab-inner{grid-template-columns:1fr}
  .feature-box{display:block}
  .feature-box .btn{margin-top:10px}
  .footer-grid{grid-template-columns:1fr}
}
@media (max-width:620px){
  .section{padding:58px 0}
  .hero{padding:58px 0}
  .four-cards{grid-template-columns:1fr}
  .hero h1{font-size:2.35rem}
  .hero-media{min-height:275px}
  .logo-row img{width:136px}
  .card{padding:22px}
}

/* Panoramica sezioni MemoSalus */
.section-intro-grid{margin-bottom:34px}
.overview-grid{
  display:grid;
  grid-template-columns:repeat(5,1fr);
  gap:16px;
  margin-top:18px;
}
.overview-card{
  background:#fff;
  border:1px solid var(--border);
  border-radius:18px;
  padding:18px;
  box-shadow:0 8px 18px rgba(38,50,56,.04);
}
.overview-card span{
  width:34px;
  height:34px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:var(--mint);
  color:var(--green-dark);
  font-weight:900;
  margin-bottom:12px;
}
.overview-card h3{
  font-size:1rem;
  line-height:1.2;
  margin-bottom:8px;
}
.overview-card p{
  color:var(--muted);
  font-size:.94rem;
  margin-bottom:0;
}
.overview-card.emphasis{
  border-color:rgba(47,125,122,.35);
  background:linear-gradient(135deg,#ffffff,var(--mint));
}
.overview-card.emphasis span{background:var(--green); color:#fff}
.overview-card.highlight{background:var(--paper)}
@media (max-width:1080px){
  .overview-grid{grid-template-columns:repeat(3,1fr)}
}
@media (max-width:700px){
  .overview-grid{grid-template-columns:1fr}
}

.overview-note{
  margin-top:22px;
  background:var(--mint);
  border:1px solid var(--border);
  border-radius:18px;
  padding:18px 20px;
  color:var(--text);
}
.overview-note strong{color:var(--green-dark)}

/* Pagine interne */
.page-hero{padding:70px 0; background:linear-gradient(135deg,var(--mint),#fff)}
.page-hero h1{font-size:clamp(2.1rem,4vw,4rem); line-height:1.08; letter-spacing:-.04em; margin:0 0 18px}
.page-hero .lead{font-size:1.16rem}
.page-media{margin:0; border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow); background:white; border:1px solid var(--border)}
.page-media img{width:100%; height:100%; object-fit:cover; min-height:320px}
.text-section{max-width:820px; margin:0 auto}
.text-section h2{margin-top:0}
.content-list{display:grid; gap:12px; margin:24px 0}
.content-list li{background:white; border:1px solid var(--border); border-radius:16px; padding:14px 16px; margin:0}
.check-list{list-style:none; padding:0; margin:22px 0; display:grid; gap:10px}
.check-list li{position:relative; padding-left:28px; margin:0; color:var(--muted)}
.check-list li:before{content:""; position:absolute; left:0; top:.55em; width:10px; height:10px; border-radius:50%; background:var(--green)}
.two-cards{display:grid; grid-template-columns:repeat(2,1fr); gap:22px}
.info-band{background:var(--green); color:white; border-radius:28px; padding:34px; margin-top:32px}
.info-band h2,.info-band h3{color:white}
.info-band p{color:#eef8f7}
.info-band .btn.secondary{background:white; color:var(--green); border-color:white}
.inline-cta{margin-top:28px; display:flex; flex-wrap:wrap; gap:12px}
.detail-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:18px}
.detail-card{background:white; border:1px solid var(--border); border-radius:18px; padding:20px}
.detail-card h3{font-size:1.08rem}
.detail-card p{color:var(--muted); margin-bottom:0}
.section-note{background:var(--paper); border:1px solid var(--border); border-radius:22px; padding:24px; margin:26px 0}
.simple-table{width:100%; border-collapse:collapse; margin:22px 0; background:white; border-radius:18px; overflow:hidden; box-shadow:0 8px 18px rgba(38,50,56,.04)}
.simple-table th,.simple-table td{border-bottom:1px solid var(--border); padding:14px 16px; text-align:left; vertical-align:top}
.simple-table th{background:var(--mint); color:var(--green-dark)}
.simple-table tr:last-child td{border-bottom:0}
.faq-list{display:grid; gap:16px}
.faq-item{background:white; border:1px solid var(--border); border-radius:18px; padding:22px}
.faq-item h2{font-size:1.25rem; margin:0 0 8px; letter-spacing:0}
.faq-item p{margin:0; color:var(--muted)}
.form-box{background:white; border:1px solid var(--border); border-radius:22px; padding:26px; box-shadow:0 8px 18px rgba(38,50,56,.05)}
.form-grid{display:grid; grid-template-columns:1fr 1fr; gap:14px}
.fake-field{border:1px solid var(--border); border-radius:12px; padding:12px 14px; color:var(--muted); background:#fff}
.fake-message{grid-column:1/-1; min-height:110px}
.partner-card{display:grid; grid-template-columns:180px 1fr; gap:24px; align-items:center; background:white; border:1px solid var(--border); border-radius:22px; padding:24px; margin-bottom:20px}
.partner-card img{max-width:170px; max-height:130px; object-fit:contain; margin:auto}
.partner-card p:last-child{margin-bottom:0}
@media (max-width:860px){
  .two-cards,.detail-grid,.form-grid{grid-template-columns:1fr}
  .partner-card{grid-template-columns:1fr; text-align:left}
  .page-media img{min-height:240px}
}


/* Rev02 - loghi, social, QR, copyright e sezioni dettagliate */
.logo-button{
  gap:10px;
  background:white;
  color:var(--green-dark);
  border-color:var(--border);
  padding:10px 16px;
  min-width:170px;
}
.logo-button img{
  max-width:92px;
  max-height:34px;
  object-fit:contain;
}
.card .logo-button{margin-top:12px; align-self:flex-start}
.card .btn.primary{margin-top:12px; align-self:flex-start}
.social-buttons{display:flex; flex-direction:column; gap:10px; margin:8px 0 12px}
.social-button{
  display:inline-flex;
  align-items:center;
  gap:10px;
  background:rgba(255,255,255,.10);
  border:1px solid rgba(255,255,255,.22);
  border-radius:14px;
  padding:9px 10px;
  color:white;
  text-decoration:none;
  max-width:210px;
}
.social-button:hover{background:rgba(255,255,255,.16); text-decoration:none}
.social-button img{width:72px; height:32px; object-fit:contain; background:white; border-radius:8px; padding:3px}
.copyright-note{font-size:.84rem; opacity:.92}
.qr-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:22px}
.qr-card{
  background:white;
  border:1px solid var(--border);
  border-radius:var(--radius);
  padding:24px;
  text-align:center;
  box-shadow:0 8px 18px rgba(38,50,56,.05);
}
.qr-card h3{margin:14px 0 12px}
.qr-image{width:210px; max-width:100%; margin:0 auto; border-radius:16px; border:1px solid var(--border); background:white}
.qr-card .logo-button{margin:0 auto}
.section-detail-grid{display:grid; gap:28px}
.section-detail-card{
  display:grid;
  grid-template-columns:minmax(260px, .9fr) 1.35fr;
  gap:28px;
  align-items:stretch;
  background:white;
  border:1px solid var(--border);
  border-radius:26px;
  overflow:hidden;
  box-shadow:0 10px 22px rgba(38,50,56,.05);
}
.section-detail-card figure{margin:0; background:#fff; display:flex; align-items:center; justify-content:center; border-right:1px solid var(--border)}
.section-detail-card figure img{width:100%; height:100%; min-height:330px; object-fit:contain; padding:8px}
.section-detail-content{padding:28px}
.section-detail-label{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:42px;
  height:42px;
  padding:0 12px;
  border-radius:999px;
  background:var(--mint);
  color:var(--green-dark);
  font-weight:900;
  margin:0 0 12px;
}
.section-detail-card.emphasis{border-color:rgba(47,125,122,.42); background:linear-gradient(135deg,#ffffff,var(--mint))}
.section-detail-card.emphasis .section-detail-label{background:var(--green); color:white}
.mini-info-grid{display:grid; grid-template-columns:1fr; gap:14px; margin-top:18px}
.mini-info-grid div{border-top:1px solid var(--border); padding-top:12px}
.mini-info-grid h3{font-size:1rem; color:var(--green-dark)}
.mini-info-grid p{color:var(--muted); margin-bottom:0}
@media (max-width:960px){
  .qr-grid{grid-template-columns:1fr}
  .section-detail-card{grid-template-columns:1fr}
  .section-detail-card figure{border-right:0; border-bottom:1px solid var(--border)}
  .section-detail-card figure img{min-height:240px; max-height:440px}
}
@media (max-width:860px){
  .footer-grid{grid-template-columns:1fr}
  .logo-button{width:100%; justify-content:center}
}


/* Rev03 - commenti 2 */
.hero-media .open-img{object-fit:cover}
.footer-main-grid{grid-template-columns:1fr 1.1fr 1.4fr}
.social-buttons-horizontal{flex-direction:row; flex-wrap:wrap; gap:12px}
.footer-qr-area{margin-top:34px; padding-top:26px; border-top:1px solid rgba(255,255,255,.22)}
.footer-qr-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:18px; align-items:stretch}
.footer-qr-card{display:flex; align-items:center; gap:14px; background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.20); border-radius:18px; padding:14px; color:white; text-decoration:none; min-height:120px}
.footer-qr-card:hover{background:rgba(255,255,255,.14); text-decoration:none}
.footer-qr{width:86px; height:86px; object-fit:contain; border-radius:12px; background:white; padding:4px; flex:0 0 auto}
.footer-qr-card span{font-weight:900; color:white}
.legal-line{margin-top:18px; color:#e9f6f5 !important; max-width:1000px}
.section-detail-label{min-width:42px}
.section-detail-card figure img{object-fit:contain; background:white}
.overview-card span{font-size:.95rem}
@media (max-width:860px){
  .footer-main-grid,.footer-qr-grid{grid-template-columns:1fr}
  .footer-qr-card{min-height:0}
}


/* Rev05 - commenti 3: pagine benefici e tono umano */
.quote-panel{
  background:var(--paper);
  border:1px solid var(--border);
  border-left:6px solid var(--green);
  border-radius:20px;
  padding:20px 22px;
  margin:24px 0;
  color:var(--text);
  box-shadow:0 8px 18px rgba(38,50,56,.04);
}
.values-grid .detail-card{
  min-height:170px;
}
.scenario-grid .scenario-card{
  min-height:260px;
}
.centered-actions{
  justify-content:center;
  text-align:center;
}
.page-hero .page-media img{
  object-position:center;
}
.hero-media .open-img{
  object-position:center;
}
@media (max-width:860px){
  .scenario-grid .scenario-card{min-height:0}
}


/* Rev06 - commenti 4 */
.brand sup{font-size:.55em; vertical-align:super; line-height:0}
.coming-soon-logo{
  min-width:150px;
  min-height:86px;
  border-radius:14px;
  border:1px dashed var(--border);
  background:white;
  color:var(--green-dark);
  display:flex;
  align-items:center;
  justify-content:center;
  text-transform:uppercase;
  letter-spacing:.08em;
  font-size:.8rem;
  font-weight:900;
  text-decoration:none;
}
.coming-soon-logo:hover{text-decoration:none; background:var(--mint)}
.footer-main-grid-rev06{grid-template-columns:1fr 1.2fr 1.3fr}
.footer-follow{align-self:start}
.footer-qr-stack{display:grid; grid-template-columns:1fr; gap:10px; margin-top:16px; max-width:290px}
.footer-qr-mini{display:flex; align-items:center; gap:12px; color:white; text-decoration:none; background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.20); border-radius:16px; padding:10px 12px}
.footer-qr-mini:hover{background:rgba(255,255,255,.14); text-decoration:none}
.footer-qr-mini img{width:70px; height:70px; object-fit:contain; background:white; border-radius:12px; padding:4px; flex:0 0 auto}
.footer-qr-mini span{font-weight:900;color:white}
.partner-card-wide{grid-template-columns:240px 1fr}
.partner-media-stack{display:grid; gap:14px; align-items:center; justify-items:center}
.partner-media-stack img{max-width:220px; border-radius:16px; border:1px solid var(--border); background:white; padding:6px}
.partner-media-stack img:first-child{max-width:150px; border:0; padding:0}
.coming-soon-card{border-style:dashed; background:linear-gradient(135deg,#fff,var(--mint))}
.coming-soon-mark{min-height:110px; border-radius:18px; border:1px dashed var(--green); background:white; color:var(--green-dark); display:flex; align-items:center; justify-content:center; text-transform:uppercase; letter-spacing:.08em; font-weight:900; text-align:center; padding:18px}
.collaborative-band{background:var(--green-dark)}
.collaborative-band h2{font-size:2rem}
@media (max-width:860px){
  .footer-main-grid-rev06{grid-template-columns:1fr}
  .footer-qr-stack{max-width:none}
  .partner-card-wide{grid-template-columns:1fr}
}


/* Rev07 - commenti 5: immagini interne più leggibili */
.section-detail-card figure img{
  max-height:560px;
  object-fit:contain;
}
.image-card.important-image img{
  object-fit:contain;
  background:white;
}
.page-media img[src*="indice"]{
  object-fit:contain;
  background:white;
  padding:16px;
}
@media (max-width:960px){
  .section-detail-card figure img{max-height:520px}
}


/* Rev08 - commenti 6: pulizia footer e immagini hero */
.page-media img[src*="copertina-commenti6"]{
  object-fit:contain;
  background:white;
  padding:16px;
}
