/* ------------------------------------------------------------------ *
 * BLOCCO A — Hero + ricerca professione
 * ------------------------------------------------------------------ */
.em-eco-hero{position:relative;z-index:2;padding:calc(96px + var(--space-8)) var(--gutter-page) var(--space-9);text-align:center;background:var(--surface-page)}
.em-eco-hero__inner{max-width:820px;margin:0 auto}
.em-eco-hero__title{font:var(--text-display-1);color:var(--ink-900);margin:0 0 var(--space-4);text-wrap:pretty}
.em-eco-hero__sub{font:var(--text-body-lg);color:var(--text-secondary);margin:0 0 var(--space-7);max-width:640px;margin-left:auto;margin-right:auto}

.em-eco-search{max-width:640px;margin:0 auto;position:relative;text-align:left}
.em-eco-search__input-wrap{display:flex;align-items:center;gap:var(--space-3);background:var(--surface-card);border:2px solid var(--border-default);border-radius:var(--radius-lg);padding:var(--space-4) var(--space-5);transition:border-color 160ms var(--ease-standard),box-shadow 160ms var(--ease-standard)}
.em-eco-search__input-wrap:focus-within{border-color:var(--accent-primary);box-shadow:0 0 0 4px var(--accent-primary-soft)}
.em-eco-search__input-wrap img{flex:none;opacity:0.55}
.em-eco-search__input{flex:1;border:none;background:none;outline:none;font:var(--text-body-lg);color:var(--ink-900)}
.em-eco-search__input::placeholder{color:var(--text-muted)}

.em-eco-search__chips-label{font:var(--text-caption);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--text-muted);margin-top:var(--space-5);margin-bottom:var(--space-2)}
.em-eco-search__chips{display:flex;flex-wrap:nowrap;overflow-x:auto;gap:var(--space-2);padding-bottom:6px;scrollbar-width:thin;-webkit-overflow-scrolling:touch}
.em-eco-search__chip{flex:none;font:var(--text-label);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--text-secondary);background:var(--surface-card);border:1px solid var(--border-default);border-radius:var(--radius-full);padding:7px 14px;cursor:pointer;transition:all 160ms var(--ease-standard)}
.em-eco-search__chip:hover{border-color:var(--accent-primary);color:var(--accent-primary)}
.em-eco-search__chip.is-active{background:var(--accent-primary);border-color:var(--accent-primary);color:var(--text-on-accent)}

.em-eco-search__suggestions{position:absolute;top:calc(100% + 10px);left:0;right:0;background:var(--surface-card);border:1px solid var(--border-default);border-radius:var(--radius-md);box-shadow:var(--shadow-md);max-height:420px;overflow-y:auto;z-index:30;padding:var(--space-3)}
.em-eco-search__count{font:var(--text-caption);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--text-muted);padding:2px 8px var(--space-2)}
.em-eco-search__grid{display:grid;grid-template-columns:repeat(2,1fr);gap:2px}
@media (max-width:640px){ .em-eco-search__grid{grid-template-columns:1fr} }
.em-eco-search__item{width:100%;display:flex;align-items:center;gap:var(--space-2);padding:10px 10px;border-radius:var(--radius-sm);background:none;border:none;text-align:left;cursor:pointer;font:var(--text-body-sm);color:var(--text-primary);min-width:0}
.em-eco-search__item:hover{background:var(--concrete-050)}
.em-eco-search__item img{flex:none;opacity:0.7}
.em-eco-search__item span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.em-eco-search__item small{margin-left:auto;flex:none;color:var(--text-muted);font:var(--text-caption)}
.em-eco-search__empty{padding:var(--space-4);color:var(--text-muted);font:var(--text-body-sm);text-align:center}

.em-eco-search__message{margin-top:var(--space-6);background:var(--surface-card);border:1px solid var(--border-accent);border-radius:var(--radius-lg);padding:var(--space-6);text-align:left;opacity:0;transform:translateY(10px);transition:opacity 320ms var(--ease-standard),transform 320ms var(--ease-standard);box-shadow:var(--shadow-md)}
.em-eco-search__message.is-visible{opacity:1;transform:translateY(0)}

.em-eco-result__header{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-5)}
.em-eco-result__icon{flex:none;width:48px;height:48px;border-radius:var(--radius-full);background:var(--accent-primary-soft);display:flex;align-items:center;justify-content:center}
.em-eco-result__eyebrow{font:var(--text-label);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--brand-blue-600)}
.em-eco-result__title{font:var(--text-h2);color:var(--ink-900);margin:2px 0 0}
.em-eco-result__grid{display:grid;grid-template-columns:220px 1fr;gap:var(--space-6)}
@media (max-width:720px){ .em-eco-result__grid{grid-template-columns:1fr} }
.em-eco-result__stat{background:var(--accent-primary-soft);border:1px solid var(--border-accent);border-radius:var(--radius-lg);padding:var(--space-5);text-align:center;align-self:start}
.em-eco-result__stat-value{font:800 2.25rem/1 var(--font-display);color:var(--accent-primary)}
.em-eco-result__stat-label{font:var(--text-body-sm);color:var(--text-secondary);margin:8px 0 4px}
.em-eco-result__stat-source{font:var(--text-caption);color:var(--text-muted);margin:0}
.em-eco-result__text{font:var(--text-body);color:var(--ink-900);margin:0 0 var(--space-4)}
.em-eco-result__allies{font:var(--text-body-sm);color:var(--ink-900);background:var(--accent-secondary-soft);border-left:3px solid var(--accent-secondary);padding:var(--space-3) var(--space-4);border-radius:0 var(--radius-sm) var(--radius-sm) 0;margin:0 0 var(--space-5)}
.em-eco-result__allies strong{color:var(--accent-secondary-hover)}
.em-eco-result__ctas{display:flex;gap:var(--space-3);flex-wrap:wrap}

.em-eco-zone{margin-top:var(--space-6);padding-top:var(--space-5);border-top:1px solid var(--border-default)}
.em-eco-zone__prompt{font:var(--text-body-sm);color:var(--text-secondary);margin:0 0 var(--space-3)}
.em-eco-zone__row{display:flex;gap:var(--space-3);max-width:360px}
.em-eco-zone__input{flex:1;border:1px solid var(--border-default);border-radius:var(--radius-md);padding:10px var(--space-4);font:var(--text-body-sm);color:var(--ink-900);background:var(--surface-page);outline:none;transition:border-color 160ms var(--ease-standard)}
.em-eco-zone__input:focus{border-color:var(--accent-primary)}
.em-eco-zone__result{margin-top:var(--space-4);background:var(--accent-secondary-soft);border-left:3px solid var(--accent-secondary);border-radius:0 var(--radius-sm) var(--radius-sm) 0;padding:var(--space-4);display:flex;align-items:center;gap:var(--space-4);flex-wrap:wrap}
.em-eco-zone__result p{margin:0;font:var(--text-body-sm);color:var(--ink-900);flex:1;min-width:200px}

/* ------------------------------------------------------------------ *
 * BLOCCO B — Statistiche di mercato
 * ------------------------------------------------------------------ */
.em-eco-stats{padding:var(--space-9) var(--gutter-page);background:var(--ink-900);text-align:center}
.em-eco-stats__inner{max-width:880px;margin:0 auto}
.em-eco-stats__title{font:var(--text-display-2);color:var(--paper-000);margin:0 0 var(--space-4);text-wrap:pretty}
.em-eco-stats__sub{font:var(--text-body-lg);color:var(--concrete-200);margin:0 0 var(--space-8);max-width:640px;margin-left:auto;margin-right:auto}
.em-eco-stats__grid{display:grid;grid-template-columns:repeat(3, 1fr);gap:var(--space-5)}
.em-eco-stat{background:#182029;border:1px solid var(--ink-700);border-radius:var(--radius-lg);padding:var(--space-6) var(--space-4);transition:transform 200ms var(--ease-standard),border-color 200ms var(--ease-standard)}
.em-eco-stat:hover{transform:translateY(-4px);border-color:var(--accent-primary)}
.em-eco-stat__value{font:var(--text-display-2);color:var(--paper-000);margin:0 0 var(--space-2);font-family:var(--font-mono, var(--font-display))}
.em-eco-stat__label{font:var(--text-body-sm);color:var(--concrete-400);margin:0}
.em-eco-stats__note{margin-top:var(--space-6);font:var(--text-caption);color:var(--concrete-600)}

/* ------------------------------------------------------------------ *
 * BLOCCO C — Quiz "Powered by OSM Edilizia"
 * ------------------------------------------------------------------ */
.em-eco-quiz{padding:var(--space-9) var(--gutter-page);background:var(--surface-canvas)}
.em-eco-quiz__inner{max-width:760px;margin:0 auto}
.em-eco-quiz__badge{display:inline-flex;align-items:center;gap:8px;font:var(--text-label);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--text-muted);background:var(--surface-card);border:1px solid var(--border-default);border-radius:var(--radius-full);padding:6px 14px 6px 8px;margin:0 auto var(--space-6);width:fit-content}
.em-eco-quiz__badge img{height:20px;width:auto;display:block}

.em-eco-quiz__phase{width:100%}
.em-eco-quiz__intro{text-align:center;padding:var(--space-6) 0}
.em-eco-quiz__intro-title{font:var(--text-display-2);color:var(--ink-900);margin:0 0 var(--space-4);text-wrap:pretty}
.em-eco-quiz__intro-sub{font:var(--text-body-lg);color:var(--text-secondary);margin:0 0 var(--space-6);max-width:560px;margin-left:auto;margin-right:auto}

.em-eco-quiz__progress-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-3)}
.em-eco-quiz__progress-track{height:4px;background:var(--border-default);border-radius:2px;overflow:hidden;margin-bottom:var(--space-6)}
.em-eco-quiz__progress-bar{height:100%;width:0;background:var(--accent-primary);transition:width 300ms var(--ease-standard)}
.em-eco-quiz__text{font:var(--text-h1);color:var(--ink-900);margin:0 0 var(--space-5);text-wrap:pretty}
.em-eco-quiz__answers{display:flex;flex-direction:column;gap:var(--space-3)}
.em-eco-quiz__answer{text-align:left;padding:var(--space-4) var(--space-5);border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--surface-card);color:var(--ink-900);font:var(--text-body);cursor:pointer;transition:all 160ms var(--ease-standard)}
.em-eco-quiz__answer:hover{border-color:var(--accent-primary);box-shadow:var(--shadow-sm);transform:translateX(4px)}

.em-eco-quiz__result{text-align:center;padding:var(--space-6) 0}
.em-eco-quiz__avatar-mascot{display:flex;justify-content:center;margin-bottom:var(--space-2)}
.em-eco-quiz__avatar-name{font:var(--text-h4);color:var(--ink-900);margin-bottom:var(--space-2)}
.em-eco-quiz__score-wrap{position:relative;width:140px;height:140px;margin:0 auto var(--space-6)}
.em-eco-quiz__score-svg{width:140px;height:140px;transform:rotate(-90deg)}
.em-eco-quiz__score-track{fill:none;stroke:var(--border-default);stroke-width:10}
.em-eco-quiz__score-ring{fill:none;stroke:var(--accent-primary);stroke-width:10;stroke-linecap:round}
.em-eco-quiz__score-value{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font:var(--text-display-2);color:var(--ink-900)}
.em-eco-quiz__score-value::after{content:'/100';font:var(--text-body-sm);color:var(--text-muted);margin-left:2px;align-self:flex-end;margin-bottom:14px}
.em-eco-quiz__result-eyebrow{font:var(--text-label);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--accent-primary);margin-bottom:var(--space-3)}
.em-eco-quiz__result-title{font:var(--text-h1);color:var(--ink-900);margin:0 0 var(--space-4);text-wrap:pretty}
.em-eco-quiz__result-desc{font:var(--text-body-lg);color:var(--text-secondary);margin:0 0 var(--space-6);max-width:560px;margin-left:auto;margin-right:auto}
.em-eco-quiz__result-ctas{display:flex;gap:var(--space-4);justify-content:center;flex-wrap:wrap;margin-bottom:var(--space-5)}
.em-eco-quiz__restart{background:none;border:none;font:var(--text-label);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--text-muted);cursor:pointer}

@media (max-width: 899px){
  .em-eco-stats__grid{grid-template-columns:1fr}
}

/* ------------------------------------------------------------------ *
 * BLOCCO D — "Unisci i puntini" (connect-the-dots puzzle)
 * ------------------------------------------------------------------ */
.em-dots{margin:var(--space-8) auto 0;max-width:460px}
.em-dots__hint{font:var(--text-body-sm);color:var(--text-muted);margin:0 0 var(--space-4)}
.em-dots__svg{width:100%;height:auto;touch-action:manipulation}
.em-dots__fill{fill:var(--accent-primary-soft);stroke:none;opacity:0;transition:opacity 400ms var(--ease-standard)}
.em-dots__fill.is-visible{opacity:1}
.em-dots__lines line{stroke:var(--accent-secondary);stroke-width:3;stroke-linecap:round}
.em-dots__dot{cursor:pointer}
.em-dots__circle{fill:var(--surface-card);stroke:var(--border-default);stroke-width:2;transition:fill 160ms var(--ease-standard),stroke 160ms var(--ease-standard)}
.em-dots__dot:hover .em-dots__circle{stroke:var(--accent-primary)}
.em-dots__dot.is-done .em-dots__circle{fill:var(--accent-primary);stroke:var(--accent-primary)}
.em-dots__dot.is-next .em-dots__circle{stroke:var(--accent-secondary);stroke-width:3}
.em-dots__num{font:700 12px/1 var(--font-display);fill:var(--text-secondary);text-anchor:middle;pointer-events:none}
.em-dots__dot.is-done .em-dots__num{fill:var(--text-on-accent)}
.em-dots__msg{font:var(--text-body);color:var(--ink-900);margin:var(--space-5) 0 var(--space-4);min-height:1.4em}
.em-dots__msg--done{color:var(--success-500);font-weight:600}
