/* Ecosistema editoriale AI Calabria — classi isolate, mobile first. */
.ecosystem-strip{position:relative;overflow:hidden;margin:clamp(2.5rem,6vw,5.5rem) 0 0;padding:clamp(2.2rem,5vw,4.6rem) 0;border-top:1px solid rgba(20,74,151,.12)}
.ecosystem-strip--light{background:linear-gradient(135deg,#fff 0%,#f1f7ff 52%,#fff9ef 100%);color:#102548}
.ecosystem-strip--space{background:radial-gradient(circle at 14% 20%,rgba(31,173,255,.25),transparent 31%),radial-gradient(circle at 88% 78%,rgba(255,178,67,.20),transparent 30%),linear-gradient(135deg,#071a3d,#0d3972 58%,#123f78);color:#fff}
.ecosystem-strip--signal{background:linear-gradient(120deg,#fff8e9,#fff 44%,#edf8ff);color:#102548}
.ecosystem-strip__stars{position:absolute;inset:0;pointer-events:none;opacity:.55;background-image:radial-gradient(circle,rgba(255,255,255,.85) 1px,transparent 1.5px);background-size:37px 37px;mask-image:linear-gradient(90deg,transparent,#000 20%,#000 80%,transparent)}
.ecosystem-strip--light .ecosystem-strip__stars,.ecosystem-strip--signal .ecosystem-strip__stars{opacity:.18;background-image:radial-gradient(circle,rgba(15,73,145,.45) 1px,transparent 1.5px)}
.ecosystem-strip__inner{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:clamp(1.5rem,4vw,4rem);align-items:center}
.ecosystem-strip__copy{max-width:850px}.ecosystem-strip__eyebrow{display:block;margin-bottom:.8rem;font-size:.74rem;font-weight:900;letter-spacing:.16em;color:#1f78d1}.ecosystem-strip--space .ecosystem-strip__eyebrow{color:#82d6ff}
.ecosystem-strip h2{margin:0 0 .8rem;font-size:clamp(1.8rem,3.7vw,3.4rem);line-height:1.04;letter-spacing:-.035em}.ecosystem-strip p{margin:0;max-width:780px;font-size:clamp(1rem,1.4vw,1.18rem);line-height:1.65;opacity:.88}
.ecosystem-strip__actions{display:flex;flex-direction:column;align-items:stretch;gap:.75rem;min-width:min(100%,260px)}
.ecosystem-btn{display:inline-flex;justify-content:center;align-items:center;gap:.65rem;padding:.92rem 1.2rem;border-radius:999px;font-weight:850;text-align:center;text-decoration:none;transition:transform .2s ease,box-shadow .2s ease,background .2s ease}.ecosystem-btn:hover{transform:translateY(-2px)}
.ecosystem-btn--primary{background:#f4a62a;color:#122548;box-shadow:0 14px 30px rgba(236,153,27,.24)}.ecosystem-btn--primary:hover{color:#122548;box-shadow:0 18px 36px rgba(236,153,27,.34)}
.ecosystem-btn--secondary{border:1px solid currentColor;color:inherit;background:rgba(255,255,255,.08)}
.ecosystem-proof{padding:clamp(3rem,6vw,6rem) 0;background:#fff}.ecosystem-proof__head{max-width:900px;margin-bottom:2rem}.ecosystem-proof__head span{font-size:.76rem;font-weight:900;letter-spacing:.15em;color:#2475c7}.ecosystem-proof__head h2{font-size:clamp(2rem,4vw,3.8rem);line-height:1.04;letter-spacing:-.04em;margin:.7rem 0 1rem;color:#0b2854}.ecosystem-proof__head p{font-size:1.08rem;line-height:1.7;color:#53647a}
.ecosystem-proof__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.ecosystem-proof__card{position:relative;padding:1.45rem;border:1px solid #dbe7f4;border-radius:22px;background:linear-gradient(145deg,#fff,#f6faff);box-shadow:0 18px 45px rgba(10,44,90,.08)}.ecosystem-proof__card b{display:block;margin-bottom:.55rem;color:#0c3e7b;font-size:1.08rem}.ecosystem-proof__card p{margin:0;color:#5c6c80;line-height:1.58}.ecosystem-proof__card i{display:grid;place-items:center;width:42px;height:42px;margin-bottom:1rem;border-radius:14px;background:#e3f2ff;color:#1268bd;font-style:normal;font-weight:900}
.ecosystem-faq{padding:clamp(3rem,6vw,6rem) 0;background:linear-gradient(180deg,#f5f9ff,#fff)}.ecosystem-faq__head{max-width:850px;margin-bottom:2rem}.ecosystem-faq__head h2{font-size:clamp(2rem,4vw,3.5rem);line-height:1.05;color:#0b2854}.ecosystem-faq__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.ecosystem-faq details{border:1px solid #d9e6f4;border-radius:18px;background:#fff;padding:1.1rem 1.2rem;box-shadow:0 12px 32px rgba(14,48,91,.06)}.ecosystem-faq summary{cursor:pointer;font-weight:850;color:#143964}.ecosystem-faq details p{margin:.85rem 0 0;color:#596b80;line-height:1.62}
@media(max-width:900px){.ecosystem-strip__inner{grid-template-columns:1fr}.ecosystem-strip__actions{flex-direction:row;flex-wrap:wrap;min-width:0}.ecosystem-proof__grid{grid-template-columns:1fr 1fr}.ecosystem-faq__grid{grid-template-columns:1fr}}
@media(max-width:620px){.ecosystem-strip{padding:2.4rem 0}.ecosystem-strip__actions{display:grid;grid-template-columns:1fr}.ecosystem-btn{width:100%}.ecosystem-proof__grid{grid-template-columns:1fr}.ecosystem-proof__card{padding:1.2rem}.ecosystem-faq details{padding:1rem}.ecosystem-strip h2,.ecosystem-proof__head h2{hyphens:auto;overflow-wrap:anywhere}}
@media(prefers-reduced-motion:reduce){.ecosystem-btn{transition:none}.ecosystem-btn:hover{transform:none}}

/* Comuni custoditi nella scheda personale delle classifiche. */
.sfida-miei-comuni{display:flex;flex-wrap:wrap;gap:.4rem;margin:.65rem 0 .2rem}
.sfida-miei-comuni button{border:1px solid rgba(255,255,255,.42);background:rgba(255,255,255,.1);color:inherit;border-radius:999px;padding:.32rem .7rem;font:inherit;font-size:.78rem;line-height:1.2;cursor:pointer}
.sfida-miei-comuni button.is-active{background:#fff;color:#173b78;border-color:#fff;font-weight:800}
