/* ============================================================================
   Comparatore MyEnergy — Design System v2
   Mobile-first. Namespace: #myenergy-comparatore-root
   Brand: verde #1bb532 · verde foresta #0b1a0f · Epilogue 500/700/800
   ============================================================================ */

#myenergy-comparatore-root {
  /* --- Tokens --- */
  --me-green: #1bb532;
  --me-green-soft: #7be58c;
  --me-blue: #122c19;
  --me-azure: #1bb532;
  --me-night: #0b1a0f;          /* superficie scura derivata dal verde brand */
  --me-night-2: #122c19;
  --me-bg: #f3f5f8;
  --me-surface: #ffffff;
  --me-ink: #212121;
  --me-muted: #69727d;
  --me-line: #e2e6ec;
  --me-danger: #c43d3d;

  --me-grad: linear-gradient(135deg, #1bb532 0%, #12541c 100%);
  --me-grad-hover: linear-gradient(135deg, #12541c 0%, #1bb532 100%);
  --me-grad-text: linear-gradient(98deg, #1bb532 10%, #4fd866 50%, #7be58c 95%);

  --me-sh-1: 0 1px 2px rgba(15, 21, 48, 0.06), 0 2px 8px rgba(15, 21, 48, 0.05);
  --me-sh-2: 0 4px 14px rgba(11, 26, 15, 0.08), 0 12px 32px rgba(18, 44, 25, 0.10);
  --me-sh-3: 0 12px 28px rgba(18, 44, 25, 0.16), 0 30px 70px rgba(11, 26, 15, 0.20);

  --me-ease: cubic-bezier(0.16, 1, 0.3, 1);
  --me-t-micro: 150ms;
  --me-t-move: 250ms;
  --me-t-show: 400ms;

  --me-r-card: 24px;
  --me-r-input: 14px;
  --me-r-pill: 28px;

  font-family: 'Epilogue', 'Poppins', system-ui, -apple-system, sans-serif;
  color: var(--me-ink);
  background: var(--me-bg);
  display: block;
  font-size: 16px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  overflow-x: clip;
}
#myenergy-comparatore-root *,
#myenergy-comparatore-root *::before,
#myenergy-comparatore-root *::after { box-sizing: border-box; }
#myenergy-comparatore-root h1,
#myenergy-comparatore-root h2,
#myenergy-comparatore-root h3 { margin: 0; font-weight: 800; letter-spacing: -0.02em; line-height: 1.08; }
#myenergy-comparatore-root p { margin: 0.35em 0 0.85em; }
#myenergy-comparatore-root img { max-width: 100%; }
#myenergy-comparatore-root button { font-family: inherit; }
#myenergy-comparatore-root :focus { outline: none; }
#myenergy-comparatore-root :focus-visible {
  outline: none;
  box-shadow: 0 0 0 3px rgba(27, 181, 50, 0.35);
  border-radius: 8px;
}
.me-hidden { display: none !important; }
.me-num { font-variant-numeric: tabular-nums; }

/* ============================================================================
   BOTTONI
   ============================================================================ */
.me-btn {
  appearance: none;
  border: 0;
  cursor: pointer;
  font: inherit;
  font-weight: 700;
  font-size: 16px;
  line-height: 1.2;
  border-radius: var(--me-r-pill);
  padding: 16px 30px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  text-decoration: none !important;
  min-height: 52px;
  transition: transform var(--me-t-micro) var(--me-ease), box-shadow var(--me-t-move) var(--me-ease), opacity var(--me-t-micro);
  -webkit-tap-highlight-color: transparent;
}
.me-btn:active { transform: scale(0.985); }
.me-btn[disabled] { opacity: 0.5; cursor: not-allowed; }

.me-btn-primary {
  position: relative;
  color: #fff;
  background: var(--me-grad);
  box-shadow: 0 6px 18px rgba(27, 181, 50, 0.32), 0 2px 6px rgba(18, 44, 25, 0.25);
  overflow: hidden;
  isolation: isolate;
}
.me-btn-primary::before {
  content: '';
  position: absolute;
  inset: 0;
  background: var(--me-grad-hover);
  opacity: 0;
  transition: opacity var(--me-t-move) var(--me-ease);
  z-index: -1;
}
.me-btn-primary:hover::before { opacity: 1; }
.me-btn-primary:hover { box-shadow: 0 10px 26px rgba(27, 181, 50, 0.4), 0 3px 8px rgba(18, 44, 25, 0.3); }
.me-btn-arrow { display: inline-block; transition: transform var(--me-t-micro) var(--me-ease); }
.me-btn-primary:hover .me-btn-arrow { transform: translateX(4px); }
.me-btn-icon {
  width: 34px;
  height: 34px;
  border-radius: 999px;
  display: inline-grid;
  place-items: center;
  flex: 0 0 auto;
  background: rgba(255, 255, 255, 0.18);
  color: currentColor;
  font-size: 18px;
  line-height: 1;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.26);
  transition: transform var(--me-t-micro) var(--me-ease), background var(--me-t-micro) var(--me-ease);
}
.me-btn:hover .me-btn-icon {
  transform: translateY(-1px);
  background: rgba(255, 255, 255, 0.26);
}
.me-hero .me-btn-icon { display: none; }

.me-btn-secondary {
  background: transparent;
  color: var(--me-blue);
  border: 1.5px solid rgba(18, 44, 25, 0.35);
}
.me-btn-secondary:hover { border-color: var(--me-blue); background: rgba(27, 181, 50, 0.06); }

.me-btn-ghost {
  background: none;
  border: 0;
  color: var(--me-azure);
  font-weight: 700;
  padding: 10px 14px;
  min-height: 44px;
  cursor: pointer;
  text-decoration: none;
}
.me-btn-ghost:hover { text-decoration: underline; text-underline-offset: 3px; }

/* shake per invio incompleto */
@keyframes me-shake {
  0%, 100% { transform: translateX(0); }
  20% { transform: translateX(-7px); }
  40% { transform: translateX(6px); }
  60% { transform: translateX(-4px); }
  80% { transform: translateX(3px); }
}
.me-shake { animation: me-shake 320ms var(--me-ease); }
@keyframes me-pulse {
  0%, 100% { opacity: 0.72; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.06); }
}

/* ============================================================================
   LANDING — HERO scuro
   ============================================================================ */
.me-hero {
  position: relative;
  min-height: 800px;
  background:
    radial-gradient(circle at 76% 28%, rgba(123, 229, 140, 0.30) 0%, transparent 30%),
    radial-gradient(circle at 8% 72%, rgba(27, 181, 50, 0.18) 0%, transparent 26%),
    linear-gradient(120deg, #1bb532 0%, #159743 36%, #245a7a 70%, #102058 100%);
  color: #fff;
  padding: 26px 22px 72px;
  overflow: hidden;
  isolation: isolate;
}
.me-hero::before {
  content: '';
  position: absolute;
  right: -12%;
  bottom: -36%;
  width: 68%;
  height: 72%;
  background: rgba(27, 181, 50, 0.58);
  border-radius: 52% 0 0 0;
  z-index: -1;
}
.me-hero::after {
  content: '';
  position: absolute;
  inset: 0;
  background:
    linear-gradient(95deg, rgba(27, 181, 50, 0.2) 0%, transparent 34%),
    radial-gradient(circle at 52% 84%, rgba(5, 11, 46, 0.42) 0%, transparent 34%);
  z-index: -1;
}
@keyframes me-breathe {
  0%, 100% { opacity: 0.85; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.06); }
}

.me-hero-inner {
  max-width: 1160px;
  margin: 0 auto;
  display: grid;
  gap: 34px;
  align-items: center;
}
.me-hero-nav {
  max-width: 1160px;
  margin: 0 auto 80px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
}
.me-hero-logo { height: 64px; width: auto; display: block; filter: drop-shadow(0 10px 22px rgba(0,0,0,0.12)); }
.me-hero-menu,
.me-hero-nav-actions {
  display: none;
  align-items: center;
  gap: 28px;
  margin-top: 6px;
}
.me-hero-menu a,
.me-nav-login {
  color: #fff;
  font-size: 18px;
  font-weight: 700;
  text-decoration: none;
}
.me-nav-login {
  border: 1px solid rgba(255, 255, 255, 0.65);
  border-radius: 999px;
  padding: 12px 20px;
}
.me-nav-cta {
  appearance: none;
  border: 1px solid rgba(255, 255, 255, 0.72);
  border-radius: 999px;
  background: #fff;
  color: #1bb532;
  cursor: pointer;
  font: inherit;
  font-size: 18px;
  font-weight: 800;
  padding: 14px 24px;
  box-shadow: 0 12px 26px rgba(5, 17, 35, 0.16);
  transition: transform var(--me-t-micro), box-shadow var(--me-t-micro), background var(--me-t-micro), color var(--me-t-micro);
}
.me-nav-cta:hover {
  transform: translateY(-1px);
  background: #f5fff7;
  color: #129829;
  box-shadow: 0 16px 34px rgba(5, 17, 35, 0.2);
}

.me-eyebrow {
  font-size: 12.5px;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: rgba(221, 255, 226, 0.9);
  margin-bottom: 22px;
}
.me-hero h1 {
  font-size: clamp(40px, 7.2vw, 72px);
  line-height: 1;
  letter-spacing: -0.03em;
  margin-bottom: 48px;
  max-width: 16.5ch;
}
.me-grad-word {
  background: linear-gradient(92deg, #ffffff 0%, #c9ffd1 38%, #7be58c 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.me-hero-sub {
  font-size: clamp(17px, 1.75vw, 22px);
  font-weight: 500;
  color: rgba(255, 255, 255, 0.9);
  max-width: 50ch;
  margin-bottom: 68px;
  line-height: 1.65;
}
.me-hero .me-btn-primary {
  width: 100%;
  font-size: 18px;
  min-height: 62px;
  padding: 18px 36px;
  background: linear-gradient(135deg, #20d44a 0%, #7be58c 100%);
  color: #08240f;
  box-shadow: 0 8px 28px rgba(32, 212, 74, 0.38), 0 2px 8px rgba(8, 36, 15, 0.28);
}
.me-hero .me-btn-primary::before { background: linear-gradient(135deg, #7be58c 0%, #ffffff 100%); }
.me-hero-actions {
  display: flex;
  flex-direction: column;
  gap: 14px;
  max-width: 390px;
}
.me-hero-metrics {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
  max-width: 520px;
  margin-top: 48px;
}
.me-metric {
  border-left: 1px solid rgba(255, 255, 255, 0.28);
  padding-left: 16px;
}
.me-metric:first-child { border-left: 0; padding-left: 0; }
.me-metric strong,
.me-metric span {
  display: block;
  color: #fff;
}
.me-metric strong { font-size: 14px; font-weight: 800; }
.me-metric span { font-size: 12px; color: rgba(255, 255, 255, 0.74); }
/* --- Contenitore visuale app/mockup --- */
.me-hero-visual {
  position: relative;
  width: 100%;
  max-width: 560px;
  min-height: 430px;
  margin: 0 auto;
}
.me-phone {
  position: relative;
  background: #fbfcff;
  color: #071343;
  border: 12px solid #08124c;
  border-radius: 34px;
  box-shadow: 0 28px 70px rgba(3, 12, 38, 0.35);
  overflow: hidden;
}
.me-phone::after {
  content: '';
  position: absolute;
  inset: auto -24% -22% auto;
  width: 86%;
  height: 46%;
  background: linear-gradient(135deg, rgba(123, 229, 140, 0.12), rgba(27, 181, 50, 0.04));
  transform: rotate(-18deg);
  pointer-events: none;
}
.me-phone-front {
  width: min(330px, 64vw);
  min-height: 430px;
  margin-left: auto;
  transform: rotate(3deg);
  padding: 52px 22px 26px;
}
.me-phone-back {
  position: absolute;
  left: 2%;
  top: 86px;
  width: min(270px, 50vw);
  min-height: 368px;
  opacity: 0.96;
  transform: rotate(-7deg);
  padding: 66px 20px 24px;
}
.me-phone-notch {
  position: absolute;
  top: 0;
  left: 50%;
  width: 116px;
  height: 34px;
  transform: translateX(-50%);
  background: #08124c;
  border-radius: 0 0 18px 18px;
}
.me-phone-title {
  position: relative;
  z-index: 1;
  font-size: 16px;
  font-weight: 800;
  letter-spacing: -0.02em;
  margin-bottom: 18px;
}
.me-phone-saving {
  position: relative;
  z-index: 1;
  border: 1px solid rgba(27, 181, 50, 0.22);
  border-radius: 22px;
  padding: 20px 66px 20px 20px;
  margin-bottom: 18px;
  background: linear-gradient(180deg, #fafffb 0%, #f0fff2 100%);
}
.me-hero-card-label {
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: #6f7da2;
}
.me-hero-card-figure {
  font-size: 52px;
  font-weight: 800;
  letter-spacing: -0.03em;
  line-height: 1;
  color: var(--me-green);
  margin: 8px 0 2px;
  font-variant-numeric: tabular-nums;
}
.me-hero-card-figure small { font-size: 22px; font-weight: 700; color: var(--me-muted); letter-spacing: -0.01em; margin-left: 4px; }
.me-hero-card-month { font-size: 14.5px; font-weight: 500; color: #6f7da2; }
.me-phone-check {
  position: absolute;
  right: 17px;
  top: 18px;
  width: 52px;
  height: 52px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: #1bb532;
  color: #fff;
  font-size: 28px;
  font-weight: 800;
  box-shadow: 0 0 0 16px rgba(27, 181, 50, 0.12);
}
.me-phone-list {
  position: relative;
  z-index: 1;
  display: grid;
  gap: 12px;
}
.me-phone-list div {
  display: flex;
  justify-content: space-between;
  align-items: center;
  min-height: 44px;
  padding: 12px 14px;
  border-radius: 16px;
  background: #f1f5f9;
  font-size: 13.5px;
  font-weight: 800;
}
.me-phone-list b { font-weight: 800; font-variant-numeric: tabular-nums; }

/* ============================================================================
   LANDING — sezioni chiare
   ============================================================================ */
.me-section { padding: 96px 22px; max-width: 1160px; margin: 0 auto; }
.me-section .me-eyebrow { color: var(--me-green); margin-bottom: 12px; }
.me-section-title {
  font-size: clamp(28px, 4.6vw, 44px);
  letter-spacing: -0.025em;
  max-width: 26ch;
  margin-bottom: 30px;
  color: var(--me-ink);
}
.me-section-sub {
  color: var(--me-muted);
  max-width: 58ch;
  font-size: 16px;
  line-height: 1.65;
  margin: 0 0 46px;
}
.me-section-sub-center {
  margin-left: auto;
  margin-right: auto;
  text-align: center;
}
.me-section-cta {
  margin-top: 30px;
  display: flex;
  justify-content: flex-start;
  width: 100%;
}
.me-section-cta .me-btn-primary {
  width: 100%;
  min-height: 58px;
  padding: 17px 24px;
  border-radius: 999px;
  justify-content: space-between;
  font-size: 17px;
  box-shadow: 0 18px 42px rgba(27, 181, 50, 0.24), 0 4px 14px rgba(18, 44, 25, 0.18);
}
.me-section-cta .me-btn-primary:hover,
.me-how-cta:hover,
.me-cta-final .me-btn-primary:hover {
  transform: translateY(-2px);
  box-shadow: 0 22px 52px rgba(27, 181, 50, 0.32), 0 8px 18px rgba(18, 44, 25, 0.22);
}
.me-section-cta.is-center {
  justify-content: center;
}
.me-section-how .me-section-sub-center {
  display: block;
  width: 100%;
  text-align: center;
}

.me-report-benefits,
.me-section-how {
  max-width: none;
  padding-left: 22px;
  padding-right: 22px;
}
.me-report-benefits {
  background:
    radial-gradient(circle at -8% 12%, rgba(93, 194, 203, 0.13) 0%, transparent 22%),
    radial-gradient(circle at 52% 100%, rgba(27, 181, 50, 0.08) 0%, transparent 24%),
    #fff;
}
.me-section-how {
  background:
    radial-gradient(circle at 50% 8%, rgba(27, 181, 50, 0.10) 0%, transparent 24%),
    linear-gradient(180deg, #f4fbf6 0%, #f8fbf8 100%);
  text-align: center;
}
.me-report-benefits > *,
.me-section-how > * {
  max-width: 1160px;
  margin-left: auto;
  margin-right: auto;
}
.me-report-benefits-inner {
  display: grid;
  grid-template-columns: 1fr;
  gap: 34px;
  align-items: start;
}
.me-report-left {
  max-width: 540px;
}
.me-report-left .me-section-title {
  margin-bottom: 28px;
}
.me-report-left .me-section-sub {
  margin-bottom: 38px;
  max-width: 50ch;
}
.me-report-side {
  width: 100%;
}
.me-report-preview {
  position: relative;
  background: #fff;
  border: 1px solid var(--me-line);
  border-radius: 22px;
  padding: 20px;
  box-shadow: 0 18px 54px rgba(11, 26, 15, 0.08);
}
.me-report-preview::before {
  content: '';
  position: absolute;
  inset: 10px;
  border-radius: 18px;
  border: 1px solid rgba(27, 181, 50, 0.12);
  pointer-events: none;
}
.me-preview-title {
  color: #071343;
  font-size: 15px;
  font-weight: 800;
  margin-bottom: 16px;
}
.me-preview-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 14px;
}
.me-preview-saving,
.me-preview-donut {
  border: 1px solid var(--me-line);
  border-radius: 16px;
  padding: 18px;
  min-height: 178px;
}
.me-preview-saving span,
.me-preview-donut span {
  display: block;
  color: #6f7da2;
  font-size: 12px;
  font-weight: 800;
  margin-bottom: 8px;
}
.me-preview-saving strong {
  display: block;
  color: var(--me-green);
  font-size: 52px;
  line-height: 1;
}
.me-preview-saving small { font-size: 18px; }
.me-preview-saving em {
  display: block;
  margin-top: 8px;
  color: #6f7da2;
  font-style: normal;
  font-size: 13px;
}
.me-preview-saving i {
  display: block;
  height: 48px;
  margin-top: 22px;
  border-radius: 12px;
  background: linear-gradient(160deg, transparent 0 42%, rgba(27,181,50,.2) 43% 55%, transparent 56%), linear-gradient(90deg, rgba(27,181,50,.2), rgba(27,181,50,.75));
  clip-path: polygon(0 75%, 18% 70%, 35% 74%, 54% 52%, 72% 58%, 100% 30%, 100% 100%, 0 100%);
}
.me-donut {
  width: 108px;
  height: 108px;
  margin: 8px auto 12px;
  border-radius: 50%;
  background: conic-gradient(#071343 0 56%, #6ed3c8 56% 74%, #1bb532 74% 90%, #dce7f1 90% 100%);
  -webkit-mask: radial-gradient(circle, transparent 0 43%, #000 44%);
          mask: radial-gradient(circle, transparent 0 43%, #000 44%);
}
.me-preview-donut p {
  color: #445168;
  font-size: 12.5px;
  line-height: 1.7;
  margin: 0;
}
.me-benefit-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 22px;
}
.me-benefit-card {
  display: flex;
  flex-direction: column;
  background: #fff;
  border: 1px solid var(--me-line);
  border-radius: 22px;
  padding: 32px 34px;
  box-shadow: 0 18px 52px rgba(11, 26, 15, 0.09);
  min-height: 220px;
  transition: transform var(--me-t-move) var(--me-ease), box-shadow var(--me-t-move) var(--me-ease);
}
.me-benefit-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 20px 58px rgba(11, 26, 15, 0.11);
}
.me-benefit-top {
  display: grid;
  grid-template-columns: 64px minmax(0, 1fr);
  gap: 20px;
  align-items: center;
  margin-bottom: 20px;
}
.me-benefit-icon {
  width: 54px;
  height: 54px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: rgba(27, 181, 50, 0.12);
  color: var(--me-green);
  font-size: 22px;
  font-weight: 800;
}
.me-benefit-card:nth-child(2) .me-benefit-icon { background: rgba(52, 152, 219, 0.12); color: #2178d4; }
.me-benefit-card:nth-child(3) .me-benefit-icon { background: rgba(135, 78, 214, 0.12); color: #874ed6; }
.me-benefit-card:nth-child(4) .me-benefit-icon { background: rgba(27, 181, 50, 0.10); color: var(--me-green); }
.me-benefit-card h3 {
  font-size: 18px;
  line-height: 1.2;
  margin: 0;
  color: #071343;
  min-height: 44px;
  display: flex;
  align-items: center;
}
.me-benefit-card p {
  color: #415066;
  font-size: 15.5px;
  line-height: 1.65;
  margin-top: auto;
  margin-bottom: 0;
}
.me-how-cards {
  position: relative;
  display: grid;
  grid-template-columns: 1fr;
  gap: 36px;
  max-width: 1160px;
  margin-top: 52px;
}
.me-how-card {
  position: relative;
  background: #fff;
  border: 1px solid var(--me-line);
  border-radius: 20px;
  padding: 62px 32px 34px 126px;
  text-align: left;
  box-shadow: 0 14px 40px rgba(11, 26, 15, 0.08);
  min-height: 226px;
  z-index: 1;
  transition: transform var(--me-t-move) var(--me-ease), box-shadow var(--me-t-move) var(--me-ease);
}
.me-how-card:hover { transform: translateY(-3px); box-shadow: 0 22px 56px rgba(11, 26, 15, 0.12); }
.me-how-num {
  position: absolute;
  top: -24px;
  left: 50%;
  transform: translateX(-50%);
  width: 62px;
  height: 62px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: linear-gradient(135deg, #1bb532, #7be58c);
  box-shadow: 0 14px 32px rgba(27, 181, 50, 0.28);
  font-size: 18px;
  font-weight: 800;
  color: #fff;
}
.me-how-icon {
  position: absolute;
  left: 28px;
  top: 50%;
  transform: translateY(-50%);
  width: 72px;
  height: 72px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: rgba(27, 181, 50, 0.12);
  color: var(--me-green);
  font-size: 26px;
  font-weight: 800;
}
.me-how-card:nth-child(2) .me-how-icon { background: rgba(52, 152, 219, 0.12); color: #2178d4; }
.me-how-card h3 {
  font-size: 21px;
  margin-bottom: 4px;
  color: #071343;
}
.me-how-card strong {
  display: block;
  color: var(--me-green);
  font-size: 12px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-weight: 700;
  line-height: 1.4;
  margin-bottom: 14px;
}
.me-how-card p {
  color: #415066;
  font-size: 15px;
  max-width: 58ch;
  line-height: 1.65;
  margin-bottom: 0;
}
.me-how-cta {
  width: min(100%, 760px);
  margin: 52px auto 0;
  min-width: 0;
  min-height: 62px;
  padding-left: 24px;
  padding-right: 24px;
  justify-content: space-between;
  font-size: 17px;
  box-shadow: 0 18px 42px rgba(27, 181, 50, 0.24), 0 4px 14px rgba(18, 44, 25, 0.18);
}
.me-operator-section {
  max-width: none;
  padding-left: 22px;
  padding-right: 22px;
  background: #fff;
}
.me-operator-card {
  max-width: 1160px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr;
  gap: 40px;
  align-items: center;
  border-radius: 32px;
  padding: 52px 48px;
  background:
    radial-gradient(circle at 95% 50%, rgba(255,255,255,.16) 0%, transparent 28%),
    radial-gradient(circle at 10% 80%, rgba(123, 229, 140, 0.14) 0%, transparent 30%),
    linear-gradient(135deg, #1bb532 0%, #148d2c 100%);
  color: #fff;
  box-shadow: 0 24px 70px rgba(11, 26, 15, 0.18), 0 4px 14px rgba(27, 181, 50, 0.22);
  overflow: hidden;
}
.me-operator-card-inline {
  margin-top: 72px;
  text-align: left;
}
.me-operator-image {
  width: min(260px, 72vw);
  aspect-ratio: 1;
  margin: 0 auto;
  border-radius: 50%;
  border: 8px solid rgba(255, 255, 255, 0.86);
  overflow: hidden;
  background: #fff;
}
.me-operator-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.me-operator-copy h2 {
  font-size: clamp(28px, 4.6vw, 44px);
  line-height: 1.08;
  margin-bottom: 20px;
}
.me-operator-copy p {
  max-width: 52ch;
  color: rgba(255, 255, 255, 0.88);
  margin-bottom: 32px;
  font-size: 16px;
  line-height: 1.65;
}
.me-btn-operator {
  background: #102058;
  color: #fff;
  font-size: 16px;
  padding: 16px 32px;
  width: min(100%, 520px);
  min-height: 60px;
  justify-content: space-between;
  box-shadow: 0 14px 34px rgba(3, 12, 38, 0.32);
}
.me-btn-operator:hover {
  transform: translateY(-2px);
  box-shadow: 0 18px 44px rgba(3, 12, 38, 0.38);
}
.me-operator-points {
  display: flex;
  flex-wrap: wrap;
  gap: 12px 28px;
  margin-top: 24px;
  font-size: 14px;
  font-weight: 800;
  color: rgba(255, 255, 255, 0.92);
}
.me-operator-points span::before {
  content: '✓';
  margin-right: 8px;
  color: #7be58c;
}

/* ── Operator banner (unused — kept for reference) ── */
.me-operator-banner-UNUSED {
  padding: 48px 22px 72px;
  background: #f0f4f8;
}
.me-operator-banner-inner {
  max-width: 960px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 0 40px;
  border-radius: 32px;
  padding: 0 52px 0 0;
  background:
    radial-gradient(ellipse at 110% 50%, rgba(32,212,74,0.18) 0%, transparent 50%),
    radial-gradient(ellipse at -10% 80%, rgba(16,32,88,0.35) 0%, transparent 45%),
    linear-gradient(125deg, #1bb532 0%, #13813f 45%, #102058 100%);
  color: #fff;
  box-shadow:
    0 28px 70px rgba(11,26,15,0.20),
    0 4px 16px rgba(27,181,50,0.14),
    inset 0 1px 0 rgba(255,255,255,0.10);
  overflow: hidden;
  position: relative;
}
.me-operator-banner-avatar {
  width: 160px;
  height: 160px;
  flex-shrink: 0;
  border-radius: 50%;
  border: 5px solid rgba(255,255,255,0.90);
  overflow: hidden;
  background: rgba(255,255,255,0.12);
  box-shadow: 0 8px 32px rgba(0,0,0,0.18);
  margin: -8px 0 -8px 52px;
  position: relative;
  z-index: 1;
}
.me-operator-banner-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: top center;
}
.me-operator-banner-copy {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 40px 0;
}
.me-operator-banner-copy strong {
  display: block;
  font-size: clamp(22px, 2.8vw, 30px);
  font-weight: 800;
  line-height: 1.1;
  letter-spacing: -0.03em;
}
.me-operator-banner-copy span {
  font-size: 15px;
  color: rgba(255,255,255,0.78);
  line-height: 1.5;
}
.me-operator-banner-points {
  display: flex;
  gap: 6px 0;
  flex-direction: column;
  margin-top: 14px;
  font-size: 13px;
  font-weight: 700;
  color: rgba(255,255,255,0.92);
}
.me-operator-banner-points span {
  display: flex;
  align-items: center;
  gap: 8px;
}
.me-operator-banner-points span::before {
  content: '';
  display: inline-block;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: rgba(123,229,140,0.25);
  border: 1.5px solid rgba(123,229,140,0.7);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M2 6l3 3 5-5' stroke='%237be58c' stroke-width='1.8' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-size: 10px;
  background-repeat: no-repeat;
  background-position: center;
  flex-shrink: 0;
}
.me-operator-banner-cta {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  flex-shrink: 0;
}
.me-operator-banner-btn {
  display: flex !important;
  align-items: center;
  justify-content: center;
  gap: 10px;
  background: #0e1c4e !important;
  color: #fff !important;
  border: none !important;
  border-radius: 16px !important;
  min-height: 58px;
  padding: 16px 28px !important;
  font-size: 18px !important;
  font-weight: 800 !important;
  letter-spacing: -0.01em;
  width: auto !important;
  white-space: nowrap;
  box-shadow: 0 12px 32px rgba(3,12,38,0.30);
  transition: transform 0.18s ease, box-shadow 0.18s ease;
}
.me-operator-banner-btn:hover {
  transform: translateY(-3px);
  box-shadow: 0 20px 48px rgba(3,12,38,0.38);
}
.me-operator-banner-note {
  font-size: 11px;
  color: rgba(255,255,255,0.55);
  text-align: center;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
@media (max-width: 860px) {
  .me-operator-banner-inner {
    grid-template-columns: auto 1fr;
    grid-template-rows: auto auto;
    padding: 0 32px 32px;
    gap: 0 28px;
  }
  .me-operator-banner-avatar { margin: -6px 0 0 32px; width: 120px; height: 120px; }
  .me-operator-banner-copy { padding: 32px 0 24px; }
  .me-operator-banner-cta { grid-column: 1 / -1; align-items: stretch; padding: 0 0 0 0; }
  .me-operator-banner-btn { width: 100% !important; }
}
@media (max-width: 520px) {
  .me-operator-banner { padding: 32px 16px 56px; }
  .me-operator-banner-inner { padding: 0 22px 28px; }
  .me-operator-banner-avatar { margin-left: 22px; width: 90px; height: 90px; }
  .me-operator-banner-copy strong { font-size: 20px; }
}

.me-section-faq {
  padding-top: 80px;
}
.me-faq-list {
  max-width: 100%;
  display: grid;
  gap: 12px;
}
.me-faq-item {
  background: var(--me-surface);
  border: 1px solid var(--me-line);
  border-radius: 18px;
  box-shadow: var(--me-sh-1);
  overflow: hidden;
  transition: box-shadow var(--me-t-move) var(--me-ease), border-color var(--me-t-move);
}
.me-faq-item:hover { border-color: rgba(27, 181, 50, 0.3); box-shadow: var(--me-sh-2); }
.me-faq-item summary {
  cursor: pointer;
  list-style: none;
  padding: 24px 28px;
  font-weight: 800;
  font-size: 16px;
  line-height: 1.4;
  color: var(--me-ink);
}
.me-faq-item summary::-webkit-details-marker { display: none; }
.me-faq-item summary::after {
  content: '+';
  float: right;
  color: var(--me-green);
  font-size: 24px;
  line-height: 1;
  margin-left: 16px;
}
.me-faq-item[open] summary::after { content: '−'; }
.me-faq-item p {
  padding: 4px 28px 26px;
  color: var(--me-muted);
  font-size: 15.5px;
  line-height: 1.72;
}

/* lista editoriale numerata */
.me-edit-list { display: grid; gap: 10px; }
.me-edit-item {
  position: relative;
  padding: 26px 24px 26px 24px;
  background: var(--me-surface);
  border: 1px solid var(--me-line);
  border-radius: 20px;
  overflow: hidden;
  transition: transform var(--me-t-move) var(--me-ease), box-shadow var(--me-t-move) var(--me-ease), border-color var(--me-t-move);
}
.me-edit-item:hover { transform: translateY(-3px); box-shadow: var(--me-sh-2); border-color: rgba(27, 181, 50, 0.35); }
.me-edit-num {
  position: absolute;
  top: -14px;
  right: 6px;
  font-size: 96px;
  font-weight: 800;
  letter-spacing: -0.05em;
  line-height: 1;
  color: var(--me-blue);
  opacity: 0.07;
  user-select: none;
  pointer-events: none;
}
.me-edit-item h3 { font-size: 19px; letter-spacing: -0.015em; margin-bottom: 6px; position: relative; }
.me-edit-item p { font-size: 15px; color: var(--me-muted); max-width: 52ch; position: relative; }

/* griglia funzionalità (compatta, senza icone) */
.me-grid { display: grid; gap: 12px; grid-template-columns: 1fr; }
.me-card {
  background: var(--me-surface);
  border: 1px solid var(--me-line);
  border-radius: 20px;
  padding: 22px;
  transition: transform var(--me-t-move) var(--me-ease), box-shadow var(--me-t-move) var(--me-ease);
}
.me-card:hover { transform: translateY(-3px); box-shadow: var(--me-sh-2); }
.me-card-mark { width: 26px; height: 3px; border-radius: 2px; background: var(--me-grad-text); margin-bottom: 14px; }
.me-card h3 { font-size: 17px; margin-bottom: 6px; }
.me-card p { font-size: 14.5px; color: var(--me-muted); }

/* CTA finale landing */
.me-cta-final {
  background:
    radial-gradient(circle at 72% 20%, rgba(123, 229, 140, 0.22) 0%, transparent 32%),
    radial-gradient(circle at 18% 80%, rgba(27, 181, 50, 0.16) 0%, transparent 28%),
    linear-gradient(120deg, #1bb532 0%, #159743 30%, #245a7a 65%, #102058 100%);
  color: #fff;
  text-align: center;
  padding: 100px 22px 108px;
  position: relative;
  overflow: hidden;
  isolation: isolate;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.me-cta-final::before {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 760px;
  height: 480px;
  background: radial-gradient(ellipse, rgba(27, 181, 50, 0.22) 0%, transparent 62%);
  z-index: 0;
  pointer-events: none;
  animation: me-breathe 6s ease-in-out infinite;
}
.me-cta-final > * { position: relative; z-index: 1; }
.me-cta-final h2 {
  font-size: clamp(30px, 5.5vw, 52px);
  letter-spacing: -0.03em;
  margin-bottom: 16px;
}
.me-cta-final p {
  color: rgba(255, 255, 255, 0.84);
  font-weight: 500;
  width: min(100%, 600px);
  margin: 0 auto 36px;
  font-size: clamp(16px, 1.8vw, 19px);
  line-height: 1.6;
  text-align: center;
}
.me-cta-final .me-btn-primary {
  width: min(100%, 760px);
  font-size: 18px;
  min-height: 62px;
  padding: 18px 26px;
  justify-content: space-between;
  background: linear-gradient(135deg, #20d44a 0%, #7be58c 100%);
  color: #08240f;
  box-shadow: 0 10px 32px rgba(32, 212, 74, 0.42), 0 2px 8px rgba(8, 36, 15, 0.3);
}
.me-cta-final .me-btn-icon,
.me-hero .me-btn-primary .me-btn-icon {
  background: rgba(8, 36, 15, 0.12);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.36);
}
.me-cta-operator-strip {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  margin-top: 36px;
  flex-wrap: wrap;
}
.me-cta-operator-avatar {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  overflow: hidden;
  border: 2px solid rgba(255,255,255,0.55);
  flex-shrink: 0;
}
.me-cta-operator-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: top center;
}
.me-cta-operator-text {
  font-size: 14px;
  color: rgba(255,255,255,0.65);
}
.me-cta-operator-link {
  font-size: 14px;
  font-weight: 700;
  color: #fff;
  text-decoration: none;
  border-bottom: 1px solid rgba(255,255,255,0.35);
  padding-bottom: 1px;
  transition: border-color 0.18s;
}
.me-cta-operator-link:hover { border-color: rgba(255,255,255,0.9); }

/* scroll reveal */
.me-reveal { opacity: 0; transform: translateY(14px); transition: opacity 600ms var(--me-ease), transform 600ms var(--me-ease); }
.me-reveal.is-in { opacity: 1; transform: none; }

/* ============================================================================
   FUNNEL — contenitore step
   ============================================================================ */
.me-funnel {
  max-width: none;
  min-height: 100dvh;
  margin: 0;
  padding: 16px 14px 48px;
  background:
    radial-gradient(circle at 78% 12%, rgba(123, 229, 140, 0.28) 0%, transparent 28%),
    radial-gradient(circle at 18% 78%, rgba(27, 181, 50, 0.22) 0%, transparent 30%),
    linear-gradient(135deg, #0b1a0f 0%, #122c19 42%, #102058 100%);
  position: relative;
  overflow: hidden;
}
.me-progress {
  height: 7px;
  max-width: 860px;
  background: rgba(255, 255, 255, 0.14);
  border-radius: 999px;
  overflow: hidden;
  margin: 0 auto 22px;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1);
}
.me-progress-bar {
  height: 100%;
  width: 0;
  background: var(--me-grad-text);
  border-radius: 999px;
  box-shadow: 0 0 22px rgba(123, 229, 140, 0.45);
  transition: width 600ms var(--me-ease);
}

.me-step {
  max-width: 860px;
  margin: 0 auto;
  background: rgba(255, 255, 255, 0.96);
  border: 1px solid rgba(255, 255, 255, 0.62);
  border-radius: 24px;
  padding: 22px 18px 24px;
  box-shadow: 0 26px 80px rgba(3, 12, 38, 0.24), 0 1px 0 rgba(255, 255, 255, 0.85) inset;
  backdrop-filter: blur(18px);
  animation: me-step-in 320ms var(--me-ease);
}
@keyframes me-step-in {
  from { opacity: 0; transform: translateY(10px); }
}
.me-step h2 {
  font-size: clamp(20px, 4.8vw, 30px);
  letter-spacing: -0.02em;
  color: var(--me-ink);
  margin-bottom: 8px;
  max-width: none;
}
.me-step-sub {
  color: var(--me-muted);
  font-size: 14px;
  font-weight: 500;
  line-height: 1.55;
  margin-bottom: 18px;
  max-width: none;
}
.me-step .me-eyebrow { color: var(--me-green); margin-bottom: 6px; }
.me-quiz-logo { display: none !important; }
.me-upload-step .me-drop { margin-top: 4px; }
.me-manual-link-wrap {
  text-align: center;
  margin-top: 14px;
}
.me-manual-link {
  min-height: 0;
  padding: 4px 8px;
  font-size: 13px;
}

.me-step-nav {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-top: 20px;
}
/* Bottone primario sempre full-width nel nav */
.me-step-nav .me-btn-primary { flex: 1; }

/* CTA sticky su mobile */
@media (max-width: 719px) {
  .me-step-nav {
    position: sticky;
    bottom: 0;
    margin: 18px -18px -24px;
    padding: 12px 16px calc(12px + env(safe-area-inset-bottom, 0px));
    background: linear-gradient(180deg, rgba(255, 255, 255, 0) 0%, rgba(255,255,255,.98) 26%);
    z-index: 5;
  }
}

/* ============================================================================
   STEP — scelta modalità
   ============================================================================ */
.me-choice { display: grid; gap: 14px; margin-top: 4px; }
.me-choice-card {
  position: relative;
  text-align: left;
  background: var(--me-surface);
  border: 1.5px solid var(--me-line);
  border-radius: 20px;
  padding: 24px 22px;
  cursor: pointer;
  font: inherit;
  color: var(--me-ink);
  transition: transform var(--me-t-move) var(--me-ease), box-shadow var(--me-t-move) var(--me-ease), border-color var(--me-t-move);
  -webkit-tap-highlight-color: transparent;
}
.me-choice-card:hover { transform: translateY(-4px); box-shadow: var(--me-sh-2); }
.me-choice-card.is-primary {
  border: 1.5px solid transparent;
  background:
    linear-gradient(#fff, #fff) padding-box,
    linear-gradient(120deg, #1bb532, #7be58c 70%) border-box;
}
.me-choice-tag {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--me-green);
  margin-bottom: 8px;
}
.me-choice-card h3 { font-size: 19px; margin-bottom: 5px; }
.me-choice-card p { font-size: 14.5px; color: var(--me-muted); }
.me-choice-card.is-upload { padding: 28px 24px; }
.me-choice-action {
  margin-top: 16px;
  color: var(--me-green);
  font-size: 14px;
  font-weight: 800;
}
.me-choice-small {
  display: inline-flex;
  width: auto;
  min-height: 40px;
  padding: 9px 12px;
  margin-top: 12px;
  font-size: 13px;
  justify-self: start;
  align-self: center;
}

.me-secure-box {
  margin-top: 14px;
  background: linear-gradient(135deg, rgba(27, 181, 50, 0.08), rgba(123, 229, 140, 0.08));
  border-radius: 18px;
  border: 1px solid rgba(27, 181, 50, 0.18);
  padding: 18px 20px;
  font-size: 14px;
  color: var(--me-muted);
  line-height: 1.6;
}
.me-secure-box strong { display: block; color: var(--me-ink); font-size: 15px; margin-bottom: 6px; }

/* ============================================================================
   STEP — upload
   ============================================================================ */
.me-drop {
  border: 1.5px dashed rgba(27, 181, 50, 0.35);
  border-radius: 20px;
  background:
    radial-gradient(circle at 50% 0%, rgba(123, 229, 140, 0.18), transparent 52%),
    linear-gradient(180deg, #fbfffc 0%, #f7faf8 100%);
  padding: 16px 14px;
  text-align: center;
  cursor: pointer;
  transition: border-color var(--me-t-move), background var(--me-t-move), transform var(--me-t-move) var(--me-ease), box-shadow var(--me-t-move);
}
.me-drop:hover {
  border-color: var(--me-green);
  box-shadow: 0 18px 48px rgba(27, 181, 50, 0.12);
}
.me-drop.is-over {
  border: 1.5px solid transparent;
  background:
    linear-gradient(rgba(27, 181, 50, 0.05), rgba(27, 181, 50, 0.05)) padding-box,
    linear-gradient(120deg, #1bb532, #7be58c) border-box;
  transform: scale(1.01);
}
.me-drop-icon {
  width: 40px;
  height: 40px;
  display: grid;
  place-items: center;
  margin: 0 auto 8px;
  border-radius: 12px;
  background: rgba(27, 181, 50, 0.12);
  color: var(--me-green);
  font-size: 22px;
  font-weight: 800;
}
.me-drop-title { font-weight: 800; font-size: 16px; letter-spacing: -0.01em; margin-bottom: 4px; }
.me-drop-sub { font-size: 13px; color: var(--me-muted); font-weight: 500; }
.me-upload-actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  margin-top: 12px;
}
.me-upload-action {
  appearance: none;
  border: 1px solid var(--me-line);
  border-radius: 14px;
  background: #fff;
  color: var(--me-ink);
  cursor: pointer;
  min-height: 70px;
  padding: 12px;
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr);
  grid-template-rows: auto auto;
  gap: 2px 10px;
  align-items: center;
  text-align: left;
  transition: transform var(--me-t-micro) var(--me-ease), border-color var(--me-t-micro), box-shadow var(--me-t-move);
}
.me-upload-action:hover {
  transform: translateY(-2px);
  border-color: rgba(27, 181, 50, 0.45);
  box-shadow: var(--me-sh-1);
}
.me-upload-action-primary {
  border-color: rgba(27, 181, 50, 0.42);
  background: linear-gradient(180deg, #ffffff 0%, #f2fff4 100%);
}
.me-upload-action-icon {
  grid-row: 1 / 3;
  width: 38px;
  height: 38px;
  border-radius: 12px;
  display: grid;
  place-items: center;
  background: var(--me-grad);
  color: #fff;
  font-size: 18px;
  font-weight: 800;
}
.me-upload-action strong { font-size: 14px; line-height: 1.2; }
.me-upload-action small { color: var(--me-muted); font-size: 11.5px; }

.me-file-list { display: grid; gap: 12px; margin-top: 18px; }
.me-file-chip {
  display: grid;
  grid-template-columns: 54px minmax(0, 1fr) auto;
  align-items: center;
  gap: 14px;
  background: linear-gradient(180deg, #ffffff 0%, #f7fff8 100%);
  border: 1.5px solid rgba(27, 181, 50, 0.22);
  border-radius: 22px;
  padding: 18px;
  font-size: 13.5px;
  position: relative;
  overflow: hidden;
  box-shadow: 0 16px 44px rgba(11, 26, 15, 0.09);
}
.me-file-chip img,
.me-file-thumb-fallback {
  width: 54px;
  height: 54px;
  object-fit: cover;
  border-radius: 16px;
  background: #eef5ef;
  flex: 0 0 54px;
  display: grid;
  place-items: center;
  color: var(--me-green);
  font-weight: 800;
}
.me-file-info { min-width: 0; display: grid; gap: 2px; }
.me-file-info strong { color: var(--me-ink); font-size: 15.5px; line-height: 1.25; }
.me-file-chip .me-file-name { font-weight: 700; color: #445168; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0; }
.me-file-chip .me-file-meta { color: var(--me-green); font-size: 12.5px; font-weight: 800; }
.me-file-ready {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: var(--me-green);
  color: #fff;
  font-weight: 800;
}
.me-file-ready.is-loading {
  background: #dfe8e2;
  color: var(--me-green);
  animation: me-pulse 900ms var(--me-ease) infinite;
}
.me-file-replace {
  grid-column: 1 / -1;
  appearance: none;
  border: 0;
  background: transparent;
  cursor: pointer;
  color: var(--me-green);
  font: inherit;
  font-size: 13px;
  font-weight: 800;
  justify-self: start;
  padding: 4px 0;
}
.me-file-replace:hover { text-decoration: underline; text-underline-offset: 3px; }
.me-file-progress {
  position: absolute; left: 0; bottom: 0; height: 2px; width: 0;
  background: var(--me-grad-text);
  transition: width 300ms var(--me-ease);
}

/* Pulsante "Scatta un'altra foto" nella lista file */
.me-add-photo-btn {
  appearance: none;
  border: 1.5px dashed rgba(27, 181, 50, 0.45);
  border-radius: 14px;
  background: rgba(27, 181, 50, 0.05);
  color: var(--me-green);
  cursor: pointer;
  font: inherit;
  font-size: 14px;
  font-weight: 700;
  padding: 12px 18px;
  width: 100%;
  text-align: left;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  transition: background var(--me-t-micro), border-color var(--me-t-micro);
}
.me-add-photo-btn:hover { background: rgba(27, 181, 50, 0.10); border-color: var(--me-green); }
.me-add-photo-btn small { color: var(--me-muted); font-size: 12px; font-weight: 500; }
.me-photos-summary { border-style: solid; background: rgba(27,181,50,0.07); }

/* Modal foto caricate */
.me-modal-overlay {
  position: fixed; inset: 0; z-index: 9999;
  background: rgba(0,0,0,0.55);
  display: flex; align-items: flex-end; justify-content: center;
  padding: 16px;
}
.me-modal {
  background: #fff;
  border-radius: 24px 24px 20px 20px;
  width: 100%; max-width: 520px;
  max-height: 80vh;
  display: flex; flex-direction: column;
  overflow: hidden;
  box-shadow: 0 24px 64px rgba(0,0,0,0.22);
}
.me-modal-header {
  display: flex; align-items: center; justify-content: space-between;
  padding: 18px 20px 14px;
  border-bottom: 1px solid rgba(0,0,0,0.07);
  flex-shrink: 0;
}
.me-modal-header strong { font-size: 16px; color: var(--me-ink); }
.me-modal-close {
  appearance: none; border: 0; background: transparent;
  cursor: pointer; font-size: 18px; color: var(--me-muted);
  padding: 4px 8px; border-radius: 8px;
}
.me-modal-close:hover { background: #f0f0f0; }
.me-modal-file-list {
  overflow-y: auto; padding: 16px 20px 20px;
  display: grid; gap: 12px;
}

/* ============================================================================
   FORM — input
   ============================================================================ */
.me-form-grid { display: grid; gap: 18px; grid-template-columns: 1fr; }
.me-field label {
  display: block;
  font-size: 13px;
  font-weight: 700;
  color: var(--me-ink);
  margin-bottom: 7px;
}
.me-field { position: relative; }
.me-field input,
.me-field select,
.me-field textarea {
  width: 100%;
  font: inherit;
  font-size: 16px;
  min-height: 56px;
  padding: 14px 16px;
  border-radius: var(--me-r-input);
  border: 1.5px solid var(--me-line);
  background: #fbfcfe;
  color: var(--me-ink);
  transition: border-color var(--me-t-micro), box-shadow var(--me-t-micro), background var(--me-t-micro);
  appearance: none;
}
.me-field textarea { min-height: 96px; resize: vertical; }
.me-field input:focus,
.me-field select:focus,
.me-field textarea:focus {
  border-color: var(--me-green);
  box-shadow: 0 0 0 3px rgba(27, 181, 50, 0.15);
  background: #fff;
}
.me-field.is-valid input { border-color: rgba(27, 181, 50, 0.55); }
.me-field .me-valid-check {
  position: absolute;
  right: 14px;
  top: 41px;
  width: 22px;
  height: 22px;
  pointer-events: none;
  color: var(--me-green);
  opacity: 0;
  transform: scale(0.6);
  transition: opacity var(--me-t-micro), transform var(--me-t-move) var(--me-ease);
}
.me-field.is-valid .me-valid-check { opacity: 1; transform: scale(1); }
.me-field.is-error input { border-color: var(--me-danger); }
.me-field-hint { font-size: 13px; color: var(--me-muted); margin-top: 6px; line-height: 1.5; }
.me-field-error { font-size: 13px; color: var(--me-danger); font-weight: 500; margin-top: 6px; }

.me-contact-step {
  overflow: hidden;
}
.me-contact-head {
  margin: -22px -18px 28px;
  padding: 34px 28px 30px;
  background:
    radial-gradient(circle at 92% 12%, rgba(123, 229, 140, 0.28), transparent 30%),
    linear-gradient(135deg, #f7fff8 0%, #ffffff 70%);
  border-bottom: 1px solid rgba(27, 181, 50, 0.14);
}
.me-contact-mark {
  display: inline-flex;
  align-items: center;
  min-height: 30px;
  padding: 7px 12px;
  border-radius: 999px;
  margin-bottom: 18px;
  background: rgba(27, 181, 50, 0.12);
  color: var(--me-green);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
.me-contact-head h2 {
  margin-bottom: 14px;
  font-size: clamp(28px, 4.8vw, 40px);
}
.me-contact-head p {
  max-width: 62ch;
  color: #5d6878;
  font-size: 15px;
  line-height: 1.65;
  margin: 0;
}
.me-contact-step .me-form-grid {
  gap: 20px;
}
.me-contact-step .me-field input {
  background: #fff;
  box-shadow: 0 8px 26px rgba(11, 26, 15, 0.04);
}
.me-contact-step .me-checkbox {
  padding: 18px 20px;
  border: 1px solid rgba(27, 181, 50, 0.14);
  border-radius: 18px;
  background: #f8fff9;
  box-shadow: 0 0 0 0 rgba(27, 181, 50, 0.16);
  animation: meConsentSoftPulse 4.8s ease-in-out infinite;
  transition: border-color var(--me-t-micro), box-shadow var(--me-t-micro), background var(--me-t-micro), transform var(--me-t-micro);
}
.me-contact-step .me-checkbox:hover {
  border-color: rgba(27, 181, 50, 0.34);
  box-shadow: 0 12px 30px rgba(27, 181, 50, 0.1);
}
.me-contact-step .me-checkbox.me-consent-attention {
  border-color: rgba(27, 181, 50, 0.72);
  background: #effff2;
  animation: meConsentAttention 0.78s ease-in-out 2;
}
.me-contact-step .me-checkbox:has(input:checked) {
  animation: none;
  border-color: rgba(27, 181, 50, 0.38);
  background: #f8fff9;
}
@keyframes meConsentSoftPulse {
  0%, 72%, 100% { box-shadow: 0 0 0 0 rgba(27, 181, 50, 0); }
  84% { box-shadow: 0 0 0 7px rgba(27, 181, 50, 0.08); }
}
@keyframes meConsentAttention {
  0%, 100% {
    transform: translateY(0);
    box-shadow: 0 0 0 0 rgba(27, 181, 50, 0.18), 0 12px 30px rgba(27, 181, 50, 0.1);
  }
  50% {
    transform: translateY(-2px);
    box-shadow: 0 0 0 10px rgba(27, 181, 50, 0.16), 0 18px 38px rgba(27, 181, 50, 0.18);
  }
}
.me-contact-assurance {
  display: grid;
  gap: 4px;
  margin-top: 18px;
  padding: 18px 20px;
  border-left: 4px solid var(--me-green);
  border-radius: 0 16px 16px 0;
  background: #f4f7fb;
  color: var(--me-muted);
}
.me-contact-assurance strong {
  color: var(--me-ink);
  font-size: 14px;
}
.me-contact-assurance span {
  font-size: 13.5px;
  line-height: 1.55;
}

.me-alert {
  border-radius: 12px;
  padding: 12px 16px;
  font-size: 14px;
  font-weight: 500;
  margin-bottom: 18px;
}
.me-alert-error { background: rgba(196, 61, 61, 0.08); color: var(--me-danger); border: 1px solid rgba(196, 61, 61, 0.25); }

/* --- checkbox custom --- */
.me-checkbox {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  margin-top: 16px;
  font-size: 14px;
  line-height: 1.55;
  color: var(--me-ink);
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}
.me-checkbox input {
  position: absolute;
  opacity: 0;
  width: 1px;
  height: 1px;
}
.me-checkbox .me-cb-box {
  flex: 0 0 22px;
  width: 22px;
  height: 22px;
  margin-top: 2px;
  border-radius: 6px;
  border: 1.5px solid #c6cdd8;
  background: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: background var(--me-t-micro), border-color var(--me-t-micro), transform var(--me-t-micro) var(--me-ease);
}
.me-checkbox .me-cb-box svg { width: 13px; height: 13px; }
.me-checkbox .me-cb-box svg path {
  stroke: #fff;
  stroke-width: 2.6;
  fill: none;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-dasharray: 20;
  stroke-dashoffset: 20;
  transition: stroke-dashoffset 220ms var(--me-ease) 40ms;
}
.me-checkbox input:checked + .me-cb-box {
  border-color: transparent;
  background: var(--me-grad-hover);
}
.me-checkbox input:checked + .me-cb-box svg path { stroke-dashoffset: 0; }
.me-checkbox input:focus-visible + .me-cb-box { box-shadow: 0 0 0 3px rgba(27, 181, 50, 0.3); }
.me-checkbox a { color: var(--me-azure); }

/* --- disclosure AI --- */
.me-ai-note {
  margin-top: 22px;
  background: var(--me-bg);
  border-radius: 12px;
  border-left: 3px solid;
  border-image: linear-gradient(180deg, #1bb532, #7be58c) 1;
  padding: 14px 16px;
  font-size: 13.5px;
  color: var(--me-muted);
  line-height: 1.6;
}

/* ============================================================================
   QUIZ
   ============================================================================ */
.me-quiz-single-hint {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: rgba(15,26,16,0.38);
  margin: 6px 0 0;
}
.me-quiz-options { display: grid; gap: 8px; margin-top: 14px; }
.me-quiz-logo {
  height: 32px;
  width: auto;
  display: block;
  margin-bottom: 42px;
  filter: drop-shadow(0 4px 10px rgba(11, 26, 15, 0.08));
}
.me-quiz-option {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  width: 100%;
  text-align: left;
  font: inherit;
  color: var(--me-ink);
  background: linear-gradient(180deg, #ffffff 0%, #fbfcfe 100%);
  border: 1.5px solid var(--me-line);
  border-radius: 14px;
  padding: 12px 16px;
  min-height: 54px;
  cursor: pointer;
  box-shadow: 0 8px 26px rgba(11, 26, 15, 0.04);
  transition: border-color var(--me-t-micro), transform var(--me-t-micro) var(--me-ease), box-shadow var(--me-t-move) var(--me-ease), background var(--me-t-move);
  -webkit-tap-highlight-color: transparent;
}
.me-quiz-option:hover { border-color: rgba(27, 181, 50, 0.5); transform: translateY(-2px); box-shadow: 0 14px 34px rgba(11, 26, 15, 0.08); }
.me-quiz-option-copy { display: grid; gap: 3px; min-width: 0; }
.me-quiz-option-copy strong {
  font-size: 14px;
  line-height: 1.2;
  letter-spacing: -0.01em;
}
.me-quiz-option-copy small {
  color: var(--me-muted);
  font-size: 12px;
  line-height: 1.4;
}
.me-quiz-option .me-quiz-check {
  width: 24px;
  height: 24px;
  flex: 0 0 24px;
  color: var(--me-green);
  border: 1.5px solid #d5dde8;
  border-radius: 50%;
  padding: 5px;
  background: #fff;
  transition: border-color var(--me-t-micro), background var(--me-t-micro), transform var(--me-t-micro);
}
.me-quiz-option .me-quiz-check path {
  stroke: currentColor;
  stroke-width: 2.4;
  fill: none;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-dasharray: 24;
  stroke-dashoffset: 24;
}
.me-quiz-option.is-selected {
  border-color: rgba(27, 181, 50, 0.72);
  background:
    linear-gradient(180deg, rgba(27, 181, 50, 0.08) 0%, rgba(123, 229, 140, 0.10) 100%);
  font-weight: 700;
  box-shadow: 0 16px 38px rgba(27, 181, 50, 0.13);
}
.me-quiz-option.is-selected .me-quiz-check {
  border-color: var(--me-green);
  background: #eaffed;
  transform: scale(1.04);
}
.me-quiz-option.is-selected .me-quiz-check path { animation: me-check-draw 220ms var(--me-ease) forwards; }
@keyframes me-check-draw { to { stroke-dashoffset: 0; } }

/* ============================================================================
   LOADER — schermata full-screen
   ============================================================================ */
.me-loader-screen {
  min-height: 100dvh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0;
  background: linear-gradient(160deg, #0b1a0f 0%, #0e2215 40%, #102058 100%);
  color: #fff;
  text-align: center;
  padding: 40px 22px;
  position: relative;
  overflow: hidden;
  isolation: isolate;
}
.me-loader-screen::before {
  content: '';
  position: absolute;
  top: 38%;
  left: 50%;
  width: 700px;
  height: 700px;
  transform: translate(-50%, -50%);
  background: radial-gradient(circle, rgba(27,181,50,0.13) 0%, transparent 65%);
  z-index: 0;
  pointer-events: none;
  animation: me-breathe 5s ease-in-out infinite;
}
.me-loader-screen > * { position: relative; z-index: 1; }
.me-loader-logo {
  margin-bottom: 0;
}
.me-loader-logo img {
  height: 42px;
  width: auto;
  display: block;
  filter: drop-shadow(0 0 24px rgba(27,181,50,0.30));
}
.me-loader-body {
  margin-top: 72px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 24px;
  width: min(420px, 86vw);
}
.me-loader-track-wrap {
  width: 100%;
  position: relative;
}
.me-loader-track {
  width: 100%;
  height: 2px;
  border-radius: 2px;
  background: rgba(255,255,255,0.10);
  overflow: visible;
  position: relative;
}
.me-loader-fill {
  height: 100%;
  width: 0;
  border-radius: 2px;
  background: linear-gradient(90deg, #1bb532, #7be58c);
  transition: width 1200ms cubic-bezier(0.2, 0.6, 0.3, 1);
  position: relative;
  box-shadow: 0 0 12px rgba(27,181,50,0.60), 0 0 32px rgba(27,181,50,0.25);
}
.me-loader-fill::after {
  content: '';
  position: absolute;
  right: 0;
  top: 50%;
  transform: translate(50%, -50%);
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #7be58c;
  box-shadow: 0 0 10px rgba(123,229,140,0.90), 0 0 24px rgba(27,181,50,0.60);
}
.me-loader-msg {
  font-size: 14px;
  font-weight: 500;
  color: rgba(255,255,255,0.50);
  letter-spacing: 0.02em;
  min-height: 22px;
  transition: opacity 380ms var(--me-ease), transform 380ms var(--me-ease);
}
.me-loader-msg.is-out { opacity: 0; transform: translateY(-6px); }
.me-loader-msg.is-in  { opacity: 1; transform: translateY(0); }
.me-loader-percent {
  font-size: clamp(42px, 9vw, 70px);
  line-height: 0.95;
  font-weight: 900;
  letter-spacing: -0.045em;
  color: #fff;
  text-shadow: 0 18px 60px rgba(27, 181, 50, 0.34);
  min-height: 72px;
}
.me-loader-time {
  margin-top: -6px;
  font-size: 12px;
  font-weight: 600;
  color: rgba(255,255,255,0.36);
  letter-spacing: 0.01em;
  text-align: center;
}
/* legacy compat */
.me-loader { display: none; }
.me-loader-ring { display: none; }
.me-loader-fact { display: none; }


/* ============================================================================
   FOOTER LANDING
   ============================================================================ */
.me-footer {
  background: #060e08;
  color: rgba(255, 255, 255, 0.78);
  padding: 56px 22px 36px;
  margin-top: 0;
  border-top: 1px solid rgba(123, 229, 140, 0.10);
}
.me-footer-inner {
  max-width: 1160px;
  margin: 0 auto;
  display: grid;
  gap: 32px;
}
.me-footer h3 {
  color: #fff;
  font-size: 15.5px;
  margin-bottom: 16px;
  letter-spacing: -0.01em;
}
.me-footer p,
.me-footer a {
  display: block;
  color: rgba(255, 255, 255, 0.64);
  font-size: 14px;
  line-height: 1.8;
  text-decoration: none;
}
.me-footer a:hover {
  color: #7be58c;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.me-official-footer {
  background: #2b3787;
  color: rgba(255,255,255,0.86);
  padding: 34px 22px 0;
  border-top: 0;
  text-align: center;
}
.me-official-footer-top {
  max-width: 1180px;
  margin: 0 auto;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 36px;
  flex-wrap: wrap;
  font-size: 14px;
  font-weight: 700;
}
.me-official-footer-top span,
.me-official-footer-top a {
  color: rgba(255,255,255,0.88);
  text-decoration: none;
  display: inline-flex;
  align-items: center;
}
.me-official-footer-line {
  max-width: 1180px;
  height: 1px;
  margin: 28px auto 28px;
  background: #1bb532;
  opacity: .82;
}
.me-official-footer-main {
  max-width: 1180px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1.25fr .7fr .95fr;
  gap: 54px;
  align-items: start;
  padding-bottom: 46px;
}
.me-official-footer-brand img {
  width: min(260px, 80vw);
  height: auto;
  margin: 0 auto 18px;
  display: block;
}
.me-official-footer-brand p,
.me-official-footer-brand small {
  display: block;
  margin: 4px 0;
  color: rgba(255,255,255,0.84);
  font-size: 12px;
  line-height: 1.45;
}
.me-official-footer-brand small {
  margin-top: 10px;
  color: rgba(255,255,255,0.68);
  font-size: 10px;
}
.me-footer-transparency {
  display: inline-flex !important;
  justify-content: center;
  align-items: center;
  margin-top: 18px;
  padding: 12px 22px;
  border-radius: 2px;
  background: #1bb532;
  color: #fff !important;
  font-size: 11px !important;
  font-weight: 900;
  text-transform: uppercase;
  text-decoration: none !important;
}
.me-official-footer-menu {
  display: grid;
  gap: 16px;
  justify-items: center;
  padding-top: 12px;
}
.me-official-footer-menu a,
.me-footer-privacy {
  color: rgba(255,255,255,0.92) !important;
  font-size: 15px !important;
  font-weight: 800;
  text-decoration: none !important;
}
.me-official-footer-menu a:hover,
.me-footer-privacy:hover { color: #7be58c !important; }
.me-official-footer-action {
  display: grid;
  gap: 22px;
  justify-items: center;
  padding-top: 18px;
}
.me-footer-app-btn {
  display: inline-flex !important;
  justify-content: center;
  align-items: center;
  min-width: 260px;
  padding: 15px 26px;
  border: 2px solid #7be58c;
  border-radius: 999px;
  background: linear-gradient(135deg, #1bb532, #2edc55);
  color: #fff !important;
  font-size: 15px !important;
  font-weight: 900;
  text-decoration: none !important;
  box-shadow: 0 18px 34px rgba(0,0,0,.13);
}
.me-footer-socials {
  display: flex;
  gap: 14px;
  justify-content: center;
}
.me-footer-socials a {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  border-radius: 50%;
  background: #1bb532;
  color: #fff !important;
  font-size: 22px !important;
  font-weight: 900;
  line-height: 1;
  text-decoration: none !important;
}
.me-official-footer-bottom {
  margin: 0 -22px;
  padding: 16px 22px;
  background: #1bb532;
  color: #fff;
  font-size: 15px;
  font-weight: 800;
}

.me-report-footer.me-official-footer {
  background: #2b3787;
  padding-top: 34px;
}

/* ============================================================================
   REPORT
   ============================================================================ */
/* ============================================================================
   REPORT FINALE — Premium WOW Design
   ============================================================================ */

/* ---- Contenitore generale ---- */
.me-report {
  background: #edf2f8;
  overflow: hidden;
}

/* ---- HERO del report ---- */
.me-report-hero {
  position: relative;
  min-height: 720px;
  color: #fff;
  padding: 38px 24px 90px;
  background:
    radial-gradient(circle at 76% 18%, rgba(27, 181, 50, 0.55) 0%, transparent 28%),
    radial-gradient(circle at 98% 80%, rgba(18, 84, 28, 0.65) 0%, transparent 38%),
    linear-gradient(135deg, #1bb532 0%, #0e8024 28%, #122c19 66%, #0b1a0f 100%);
  overflow: hidden;
  isolation: isolate;
}
.me-report-hero::before {
  content: '';
  position: absolute;
  right: -180px;
  bottom: -180px;
  width: 760px;
  height: 520px;
  background: rgba(27, 181, 50, 0.35);
  border-radius: 60% 0 0 0;
  transform: rotate(-8deg);
  z-index: -1;
}
.me-report-hero::after {
  content: '';
  position: absolute;
  left: -120px;
  top: 260px;
  width: 360px;
  height: 360px;
  background: rgba(255, 255, 255, 0.05);
  border-radius: 50%;
  z-index: -1;
}

/* Nav top del hero */
.me-report-nav {
  position: relative;
  z-index: 3;
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 56px;
}
.me-report-nav-tag {
  border: 1px solid rgba(255,255,255,0.35);
  border-radius: 999px;
  padding: 10px 16px;
  background: rgba(255,255,255,0.1);
  font-weight: 900;
  font-size: 13px;
  backdrop-filter: blur(12px);
  color: #fff;
  white-space: nowrap;
}

/* Grid interno hero */
.me-report-hero-inner {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: 1fr;
  gap: 44px;
  align-items: center;
  max-width: 1160px;
  margin: 0 auto;
}
.me-report-hero-text .me-report-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  background: rgba(255,255,255,0.16);
  border: 1px solid rgba(255,255,255,0.26);
  border-radius: 999px;
  padding: 10px 14px;
  font-size: 13px;
  font-weight: 900;
  color: #fff;
  margin-bottom: 24px;
}
.me-report-hero-text h1 {
  font-size: clamp(38px, 8vw, 74px);
  line-height: 0.92;
  letter-spacing: -0.055em;
  font-weight: 800;
  margin: 0 0 22px;
  color: #fff;
}
.me-report-hero-text h1 .me-highlight {
  color: #baffc9;
}
.me-report-hero-text p {
  font-size: 18px;
  line-height: 1.55;
  color: rgba(255,255,255,0.88);
  margin: 0 0 32px;
  max-width: 560px;
}
.me-report-hero-cta {
  display: flex;
  gap: 14px;
  flex-wrap: wrap;
  margin-bottom: 28px;
}
.me-report-trust {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}
.me-report-trust span {
  background: rgba(255,255,255,0.12);
  border: 1px solid rgba(255,255,255,0.22);
  padding: 9px 13px;
  border-radius: 999px;
  font-size: 12.5px;
  font-weight: 800;
  color: #fff;
}

/* Mock phone nel hero */
.me-report-hero-mock {
  position: relative;
  height: 520px;
  display: none;
}
.me-rphone {
  position: absolute;
  background: #fff;
  border: 11px solid #0b1a0f;
  border-radius: 42px;
  box-shadow: 0 44px 100px rgba(0,0,0,0.38);
  padding: 22px 18px 18px;
  color: var(--me-ink);
}
.me-rphone::before {
  content: '';
  position: absolute;
  top: -1px;
  left: 50%;
  transform: translateX(-50%);
  width: 100px;
  height: 26px;
  background: #0b1a0f;
  border-radius: 0 0 18px 18px;
}
.me-rphone-front {
  right: 30px;
  top: 0;
  width: 280px;
  height: 510px;
}
.me-rphone-back {
  right: 270px;
  top: 80px;
  width: 220px;
  height: 430px;
  opacity: 0.95;
  z-index: -1;
  border-color: #122c19;
}
.me-rphone-screen-title {
  margin-top: 24px;
  font-weight: 900;
  font-size: 15px;
  color: var(--me-ink);
}
.me-rphone-saving-card {
  margin-top: 14px;
  background: linear-gradient(135deg, #ecfff1, #fff);
  border: 1px solid #c8f7d2;
  border-radius: 20px;
  padding: 16px;
}
.me-rphone-saving-label { font-size: 11px; font-weight: 900; text-transform: uppercase; letter-spacing: 0.7px; color: var(--me-muted); }
.me-rphone-saving-big { font-size: 40px; font-weight: 900; letter-spacing: -0.04em; color: var(--me-green); line-height: 1; margin: 4px 0 2px; font-variant-numeric: tabular-nums; }
.me-rphone-saving-note { font-size: 13px; color: var(--me-muted); }
.me-rphone-chips { display: grid; gap: 8px; margin-top: 12px; }
.me-rphone-chip {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 11px 12px;
  background: #f5f8fc;
  border-radius: 14px;
  font-size: 12.5px;
  font-weight: 800;
  color: var(--me-ink);
}
.me-rphone-nav {
  position: absolute;
  left: 18px;
  right: 18px;
  bottom: 16px;
  height: 44px;
  border-radius: 14px;
  background: #f5f8fc;
  display: flex;
  align-items: center;
  justify-content: space-around;
  color: #98a3bc;
  font-size: 18px;
}
.me-rphone-pulse {
  position: absolute;
  right: 16px;
  top: 80px;
  width: 58px;
  height: 58px;
  border-radius: 50%;
  background: rgba(27, 181, 50, 0.2);
  display: grid;
  place-items: center;
  animation: me-rpulse 1.8s ease-in-out infinite;
}
.me-rphone-pulse::after {
  content: '✓';
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: var(--me-green);
  display: grid;
  place-items: center;
  color: #fff;
  font-weight: 900;
  font-size: 18px;
}
@keyframes me-rpulse { 50% { transform: scale(1.1); } }

/* ---- KPI GRID ---- */
.me-report-kpi-section {
  background: #fff;
  padding: 60px 24px;
}
.me-report-kpi-inner {
  max-width: 1160px;
  margin: 0 auto;
  text-align: center;
}
.me-report-kpi-kicker {
  display: inline-flex;
  border-radius: 999px;
  background: #eaffef;
  color: #087f2f;
  padding: 9px 14px;
  font-weight: 900;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  margin-bottom: 18px;
}
.me-report-kpi-title {
  font-size: clamp(28px, 5vw, 44px);
  line-height: 0.98;
  letter-spacing: -0.035em;
  font-weight: 800;
  margin: 0 0 14px;
  color: var(--me-ink);
}
.me-report-kpi-sub {
  font-size: 17px;
  line-height: 1.55;
  color: var(--me-muted);
  max-width: 680px;
  margin: 0 auto 44px;
}
.me-rpt-kpi-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 20px;
}
.me-rpt-kpi-card {
  background: #fff;
  border: 1px solid var(--me-line);
  border-radius: 28px;
  padding: 26px 24px;
  box-shadow: 0 16px 48px rgba(11, 26, 15, 0.07);
  text-align: left;
  transition: transform 240ms var(--me-ease), box-shadow 240ms var(--me-ease);
  animation: me-step-in 480ms var(--me-ease) backwards;
}
.me-rpt-kpi-card:hover { transform: translateY(-3px); box-shadow: 0 24px 64px rgba(11, 26, 15, 0.12); }
.me-rpt-kpi-card:nth-child(2) { animation-delay: 70ms; }
.me-rpt-kpi-card:nth-child(3) { animation-delay: 140ms; }
.me-rpt-kpi-card:nth-child(4) { animation-delay: 210ms; }
.me-rpt-kpi-card.is-win {
  background: linear-gradient(135deg, #1bb532, #39ee75);
  color: #fff;
  border-color: transparent;
  box-shadow: 0 16px 48px rgba(27, 181, 50, 0.32);
  position: relative;
  overflow: hidden;
}
.me-rpt-kpi-card.is-win::after {
  content: '';
  position: absolute;
  right: -60px;
  top: -70px;
  width: 200px;
  height: 200px;
  border-radius: 50%;
  background: rgba(255,255,255,0.14);
}
.me-rpt-kpi-label { font-size: 11.5px; font-weight: 900; text-transform: uppercase; letter-spacing: 0.08em; color: var(--me-muted); margin-bottom: 10px; }
.me-rpt-kpi-card.is-win .me-rpt-kpi-label { color: rgba(255,255,255,0.78); }
.me-rpt-kpi-value { font-size: clamp(34px, 7vw, 50px); font-weight: 900; letter-spacing: -0.04em; line-height: 1; color: var(--me-green); font-variant-numeric: tabular-nums; }
.me-rpt-kpi-card.is-win .me-rpt-kpi-value { color: #fff; font-size: clamp(42px, 9vw, 66px); }
.me-rpt-kpi-note { font-size: 13.5px; color: var(--me-muted); line-height: 1.5; margin-top: 8px; }
.me-rpt-kpi-card.is-win .me-rpt-kpi-note { color: rgba(255,255,255,0.78); }

/* ---- COMPARAZIONE (prima e dopo) ---- */
.me-report-compare-section {
  background: #ffffff;
  padding: 72px 24px;
}
.me-report-compare-inner {
  max-width: 1160px;
  margin: 0 auto;
}
.me-report-compare-inner .me-report-kpi-kicker { display: inline-flex; }
.me-rpt-price-row {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  gap: 20px;
  align-items: center;
  margin-top: 36px;
}
.me-rpt-compact-compare-row {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px;
  align-items: stretch;
}
.me-rpt-compact-compare-row.is-three {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.me-rpt-compact-compare-row .me-rpt-price-card {
  min-height: 0;
  padding: 26px 28px;
}
.me-rpt-compact-compare-row .me-rpt-price-amount {
  font-size: clamp(34px, 5vw, 54px);
  line-height: 0.98;
}
.me-rpt-price-card {
  background: #fff;
  border: 1px solid var(--me-line);
  border-radius: 28px;
  padding: 32px 28px;
  box-shadow: 0 16px 48px rgba(11,26,15,0.07);
  min-height: 240px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.me-rpt-price-card.is-old { opacity: 0.7; }
.me-rpt-price-card.is-myenergy {
  background: linear-gradient(135deg, #edfff2, #fff);
  border: 2px solid rgba(27, 181, 50, 0.3);
}
.me-rpt-price-amount { font-size: clamp(46px, 9vw, 68px); font-weight: 900; letter-spacing: -0.045em; line-height: 1; font-variant-numeric: tabular-nums; }
.me-rpt-price-card.is-old .me-rpt-price-amount { color: var(--me-ink); }
.me-rpt-price-card.is-myenergy .me-rpt-price-amount { color: var(--me-green); }
.me-rpt-price-text { font-size: 17px; color: var(--me-muted); line-height: 1.45; margin-top: 12px; }
.me-rpt-compare-arrow {
  font-size: 38px;
  font-weight: 900;
  text-align: center;
  color: var(--me-green);
}
.me-rpt-onlywin {
  margin-top: 22px;
  padding: 18px 22px;
  border-radius: 20px;
  background: #fff7d6;
  border: 1px solid #f7df78;
  color: #6b5200;
  font-weight: 800;
  font-size: 14.5px;
  line-height: 1.5;
}

/* ---- APP SECTION ---- */
.me-report-app-section {
  background: #fff;
  padding: 72px 24px;
}
.me-report-app-inner {
  max-width: 1160px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr;
  gap: 44px;
  align-items: center;
}
.me-rpt-app-list {
  display: grid;
  gap: 14px;
  margin-top: 28px;
}
.me-rpt-app-item {
  display: flex;
  gap: 14px;
  align-items: flex-start;
  background: #f7f9fd;
  border-radius: 18px;
  padding: 16px;
}
.me-rpt-app-item-icon { font-size: 26px; line-height: 1; flex-shrink: 0; }
.me-rpt-app-item b { display: block; font-size: 15px; font-weight: 900; margin-bottom: 3px; color: var(--me-ink); }
.me-rpt-app-item span { font-size: 13.5px; color: var(--me-muted); line-height: 1.45; }

/* Phone mockup nella sezione app */
.me-rpt-fake-phone {
  margin: 0 auto;
  width: 280px;
  height: 520px;
  border: 11px solid #0b1a0f;
  border-radius: 44px;
  background: #fff;
  box-shadow: 0 30px 80px rgba(11,26,15,0.2);
  padding: 28px 18px 18px;
  position: relative;
  display: none;
}
.me-rpt-fake-phone::before {
  content: '';
  position: absolute;
  top: -1px;
  left: 50%;
  transform: translateX(-50%);
  width: 90px;
  height: 24px;
  background: #0b1a0f;
  border-radius: 0 0 16px 16px;
}
.me-rpt-fake-phone-balance {
  margin-top: 36px;
  background: linear-gradient(135deg, #eefef3, #fff);
  border: 1px solid #c8f7d2;
  border-radius: 20px;
  padding: 18px;
}
.me-rpt-fake-phone-balance b { font-size: 34px; font-weight: 900; color: var(--me-green); letter-spacing: -0.04em; display: block; }
.me-rpt-fake-phone-balance .me-rpt-kpi-label { margin-bottom: 4px; }
.me-rpt-fake-phone-balance .me-rpt-kpi-note { margin-top: 4px; }
.me-rpt-bars {
  display: flex;
  align-items: flex-end;
  gap: 8px;
  height: 140px;
  margin-top: 20px;
}
.me-rpt-bar {
  flex: 1;
  border-radius: 8px 8px 0 0;
  background: linear-gradient(180deg, #7be58c, #1bb532);
  min-height: 26px;
}

/* ---- COME FUNZIONA (steps) ---- */
.me-report-how-section {
  background: linear-gradient(135deg, #0b1a0f, #122c19 55%, #0e3020);
  color: #fff;
  padding: 72px 24px;
  text-align: center;
}
.me-report-how-inner { max-width: 1160px; margin: 0 auto; }
.me-rpt-how-kicker {
  display: inline-flex;
  border-radius: 999px;
  background: rgba(255,255,255,0.15);
  color: #fff;
  padding: 9px 14px;
  font-weight: 900;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  margin-bottom: 18px;
}
.me-report-how-section .me-report-kpi-title { color: #fff; }
.me-report-how-section .me-report-kpi-sub { color: rgba(255,255,255,0.75); }
.me-rpt-steps-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 16px;
  margin-top: 36px;
}
.me-rpt-step {
  background: rgba(255,255,255,0.09);
  border: 1px solid rgba(255,255,255,0.16);
  border-radius: 24px;
  padding: 24px;
  text-align: left;
}
.me-rpt-step-num {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: var(--me-green);
  display: grid;
  place-items: center;
  font-weight: 900;
  font-size: 18px;
  color: #fff;
  margin-bottom: 18px;
}
.me-rpt-step h3 { font-size: 20px; margin: 0 0 9px; font-weight: 900; letter-spacing: -0.02em; }
.me-rpt-step p { margin: 0; color: rgba(255,255,255,0.74); line-height: 1.48; font-size: 14.5px; }
.me-rpt-timeline {
  margin-top: 32px;
  background: rgba(255,255,255,0.1);
  border-radius: 24px;
  padding: 24px;
  display: flex;
  justify-content: space-around;
  gap: 10px;
  flex-wrap: wrap;
}
.me-rpt-timebox { text-align: center; flex: 1; min-width: 100px; }
.me-rpt-timebox b { font-size: 30px; font-weight: 900; letter-spacing: -0.04em; display: block; }
.me-rpt-timebox span { color: rgba(255,255,255,0.72); font-size: 13px; display: block; margin-top: 4px; }

/* ---- INSIGHT CARDS ---- */
.me-report-insight-section {
  background: #f7f9fd;
  padding: 72px 24px;
}
.me-report-insight-inner { max-width: 1160px; margin: 0 auto; }
.me-rpt-insight-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 20px;
  margin-top: 44px;
}
.me-rpt-insight-card {
  background: #fff;
  border: 1px solid var(--me-line);
  border-radius: 26px;
  padding: 26px 24px;
  box-shadow: 0 12px 40px rgba(11,26,15,0.06);
  display: flex;
  gap: 16px;
  align-items: flex-start;
  transition: transform 240ms var(--me-ease), box-shadow 240ms var(--me-ease);
}
.me-rpt-insight-card:hover { transform: translateY(-3px); box-shadow: 0 20px 56px rgba(11,26,15,0.10); }
.me-rpt-insight-emoji { font-size: 32px; line-height: 1; flex-shrink: 0; }
.me-rpt-insight-card h3 { font-size: 18px; font-weight: 900; letter-spacing: -0.02em; margin: 0 0 8px; }
.me-rpt-insight-card p { font-size: 14px; color: var(--me-muted); line-height: 1.55; margin: 0; }

/* ---- PROIEZIONI ---- */
.me-report-proj-section {
  background: #fff;
  padding: 72px 24px;
}
.me-report-proj-inner { max-width: 1160px; margin: 0 auto; }
.me-rpt-proj-grid {
  display: grid;
  gap: 16px;
  margin-top: 44px;
}
.me-rpt-proj-card {
  border-bottom: 1px solid var(--me-line);
  padding: 20px 0;
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 16px;
}
.me-rpt-proj-card:last-child { border-bottom: 0; }
.me-rpt-proj-value {
  font-size: clamp(38px, 8vw, 58px);
  font-weight: 900;
  letter-spacing: -0.04em;
  line-height: 1;
  background: var(--me-grad-text);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  font-variant-numeric: tabular-nums;
  flex-shrink: 0;
}
.me-rpt-proj-label { font-size: 14px; font-weight: 700; color: var(--me-muted); }

/* ---- VIDEO ---- */
.me-report-video-section { padding: 0 24px 72px; max-width: 800px; margin: 0 auto; }
.me-report-video-wrap { margin-top: 24px; border-radius: 20px; overflow: hidden; background: #07130a; box-shadow: var(--me-sh-2); }
.me-report-video-wrap video { display: block; width: 100%; aspect-ratio: 16/9; }

/* ---- FINAL CTA ---- */
.me-report-final-cta {
  position: relative;
  color: #fff;
  background:
    radial-gradient(circle at 80% 30%, rgba(27, 181, 50, 0.3) 0%, transparent 28%),
    linear-gradient(135deg, #1bb532 0%, #122c19 55%, #0b1a0f 100%);
  padding: 72px 24px 80px;
  text-align: center;
  overflow: hidden;
  isolation: isolate;
}
.me-report-final-inner {
  max-width: 900px;
  margin: 0 auto;
}
.me-report-final-card {
  background: rgba(255,255,255,0.1);
  border: 1px solid rgba(255,255,255,0.18);
  border-radius: 32px;
  padding: 44px 32px;
  backdrop-filter: blur(10px);
}
.me-report-final-cta .me-report-kpi-kicker {
  background: rgba(255,255,255,0.16);
  color: #fff;
  border: 1px solid rgba(255,255,255,0.25);
}
.me-report-final-cta .me-report-kpi-title { color: #fff; font-size: clamp(30px, 6vw, 56px); }
.me-report-final-cta .me-report-kpi-sub { color: rgba(255,255,255,0.78); margin-bottom: 34px; }
.me-report-final-cta-btns { display: flex; gap: 14px; justify-content: center; flex-wrap: wrap; margin-top: 36px !important; margin-bottom: 28px; }
.me-report-final-cta-btns .me-btn-another {
  flex-basis: 100%;
  max-width: 420px;
  margin-left: auto;
  margin-right: auto;
  justify-content: center;
  border-color: rgba(123,229,140,.78);
  background: rgba(255,255,255,.08);
}
.me-btn-white {
  appearance: none;
  border: 0;
  cursor: pointer;
  font: inherit;
  font-weight: 700;
  font-size: 16px;
  line-height: 1.2;
  border-radius: var(--me-r-pill);
  padding: 16px 30px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  text-decoration: none !important;
  min-height: 52px;
  background: #fff;
  color: #122c19;
  box-shadow: 0 8px 24px rgba(0,0,0,0.22);
  transition: transform 250ms var(--me-ease), box-shadow 250ms var(--me-ease);
}
.me-btn-white:hover {
  transform: translateY(-3px) scale(1.02);
  box-shadow: 0 12px 32px rgba(27, 181, 50, 0.35);
}
.me-btn-white:hover .me-cta-icon {
  transform: scale(1.2) rotate(15deg);
}
.me-btn-outline-white {
  appearance: none;
  border: 2px solid rgba(255,255,255,0.6);
  background: transparent;
  cursor: pointer;
  font: inherit;
  font-weight: 700;
  font-size: 16px;
  line-height: 1.2;
  border-radius: var(--me-r-pill);
  padding: 14px 28px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  text-decoration: none !important;
  min-height: 52px;
  color: #fff;
  backdrop-filter: blur(6px);
  transition: background 150ms var(--me-ease), border-color 150ms var(--me-ease);
}
.me-btn-outline-white:hover { background: rgba(255,255,255,0.12); border-color: rgba(255,255,255,0.9); }
.me-btn-pdf { font-size: 14px; min-height: 46px; padding: 12px 24px; border-color: rgba(255,255,255,0.45); }
.me-btn-pdf:hover { border-color: rgba(255,255,255,0.85); }
  .me-report-final-cta-btns { flex-direction: column; align-items: center; }
@media (min-width: 480px) { .me-report-final-cta-btns { flex-direction: row; flex-wrap: wrap; } }
.me-rpt-guarantee {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
  margin-top: 24px;
}
.me-rpt-guarantee-item {
  padding: 16px;
  border-radius: 18px;
  background: rgba(255,255,255,0.1);
  font-weight: 900;
  font-size: 13.5px;
  color: #fff;
}

/* ---- DISCLAIMER ---- */
.me-report-disclaimer { display: none; }

/* ---- FOOTER REPORT ---- */
.me-report-footer {
  background: #060e08;
  color: rgba(255,255,255,0.78);
  padding: 48px 22px 32px;
  border-top: 1px solid rgba(123,229,140,0.1);
}
.me-report-footer-inner {
  max-width: 1160px;
  margin: 0 auto;
  display: grid;
  gap: 28px;
}
.me-report-footer h3 { color: #fff; font-size: 15px; margin-bottom: 12px; letter-spacing: -0.01em; }
.me-report-footer p, .me-report-footer a {
  display: block;
  color: rgba(255,255,255,0.58);
  font-size: 13.5px;
  line-height: 1.8;
  text-decoration: none;
}
.me-report-footer a:hover { color: #7be58c; text-decoration: underline; text-underline-offset: 3px; }

/* ---- TOOLBAR PDF ---- */
.me-report-toolbar { text-align: center; padding: 40px 22px 0; background: #f7f9fd; }

/* ---- RATING ---- */
.me-rating {
  background:
    radial-gradient(circle at 50% 0%, rgba(27, 181, 50, 0.10) 0%, transparent 60%),
    #f4f8f5;
  padding: 0 22px 0;
  text-align: center;
}
.me-rating-inner {
  max-width: 640px;
  margin: 0 auto;
  padding: 52px 32px 48px;
  background: #fff;
  border: 1px solid rgba(27, 181, 50, 0.16);
  border-top: 3px solid var(--me-green);
  border-radius: 0 0 24px 24px;
  box-shadow: 0 8px 32px rgba(11, 26, 15, 0.07);
  position: relative;
}
.me-rating-eyebrow {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--me-green);
  margin-bottom: 10px;
  opacity: 0.85;
}
.me-rating h3 {
  font-size: clamp(18px, 3.2vw, 22px);
  font-weight: 800;
  letter-spacing: -0.02em;
  color: #181e1a;
  margin-bottom: 6px;
}
.me-rating-sub {
  font-size: 13px;
  color: #5a7062;
  margin-bottom: 24px;
  line-height: 1.5;
}
.me-stars { display: inline-flex; gap: 8px; margin-bottom: 6px; }
.me-rating-thanks {
  color: var(--me-green);
  font-weight: 700;
  font-size: 14px;
  margin-top: 14px;
}
.me-rating-disclaimer {
  display: block;
  width: 100%;
  max-width: 640px;
  margin: 0 auto;
  padding: 18px 22px 52px;
  font-size: 11px;
  color: #8fa898;
  line-height: 1.65;
  text-align: center;
  box-sizing: border-box;
}
.me-star {
  appearance: none;
  background: none;
  border: 0;
  cursor: pointer;
  padding: 6px;
  width: 52px;
  height: 52px;
  color: #c6cdd8;
  transition: transform var(--me-t-micro) var(--me-ease);
  -webkit-tap-highlight-color: transparent;
}
.me-star svg { width: 100%; height: 100%; display: block; }
.me-star svg path { fill: currentColor; transition: fill var(--me-t-micro); }
.me-star.is-on { color: var(--me-green); }
.me-star.is-on svg path { fill: url(#me-star-grad); }
.me-star:hover { transform: scale(1.12); }
.me-star.is-pop { animation: me-pop 280ms var(--me-ease); }
@keyframes me-pop { 50% { transform: scale(1.25); } }
.me-rating .me-field { max-width: 460px; margin: 18px auto 0; text-align: left; }
.me-rating-thanks { color: var(--me-green); font-weight: 700; margin-top: 18px; }

/* ---- FALLBACK ---- */
.me-fallback-mark {
  width: 54px;
  height: 4px;
  border-radius: 2px;
  background: var(--me-grad-text);
  margin: 0 auto 24px;
}

/* ============================================================================
   RESPONSIVE ≥ 720px
   ============================================================================ */
@media (min-width: 720px) {
  .me-funnel { padding: 38px 22px 96px; }
  .me-step { padding: 54px 58px 58px; }
  .me-contact-head {
    margin: -54px -58px 36px;
    padding: 46px 58px 36px;
  }
  .me-step h2 { max-width: none; }
  .me-upload-actions { grid-template-columns: repeat(2, 1fr); }
  .me-file-chip {
    grid-template-columns: 64px minmax(0, 1fr) auto auto;
    padding: 20px 22px;
  }
  .me-file-chip img,
  .me-file-thumb-fallback {
    width: 64px;
    height: 64px;
  }
  .me-file-replace {
    grid-column: auto;
    justify-self: end;
    align-self: center;
    padding: 10px 12px;
  }
  .me-form-grid { grid-template-columns: 1fr 1fr; }
  .me-step-grid-0 { grid-template-columns: 1fr 1fr; }
  .me-step-grid-1, .me-step-grid-2 { grid-template-columns: repeat(3, 1fr); }
  .me-step-grid-3 { grid-template-columns: repeat(6, 1fr); }
  .me-step-grid-3 [data-key="current_pcv_taxable"] { grid-column: span 3; }
  .me-step-grid-3 [data-key="current_energy_taxable"] { grid-column: span 3; }
  .me-step-grid-3 [data-key="losses_f1"] { grid-column: span 2; }
  .me-step-grid-3 [data-key="losses_f2"] { grid-column: span 2; }
  .me-step-grid-3 [data-key="losses_f3"] { grid-column: span 2; }
  .me-grid { grid-template-columns: repeat(2, 1fr); }
  .me-report-benefits-inner {
    grid-template-columns: minmax(340px, 0.9fr) minmax(0, 1.1fr);
    gap: 42px;
  }
  .me-preview-grid { grid-template-columns: 1fr 1fr; }
  .me-benefit-grid { grid-template-columns: repeat(2, 1fr); }
  .me-how-cards { grid-template-columns: repeat(3, 1fr); }
  .me-operator-card { grid-template-columns: 0.75fr 1.25fr; padding: 44px 52px; gap: 40px; }
  .me-footer-inner { grid-template-columns: 1.4fr 0.6fr; align-items: start; gap: 48px; }
  .me-choice { grid-template-columns: 1.25fr 1fr; }
  .me-edit-list { gap: 12px; }
  .me-edit-item { padding: 30px 34px; }
  .me-hero .me-btn-primary { width: auto; min-width: 300px; }
  .me-hero-actions { flex-direction: row; max-width: none; }
  .me-hero-menu,
  .me-hero-nav-actions { display: flex; }
  .me-hero { padding: 44px 34px 76px; }
  .me-phone-front { width: 330px; }
  .me-phone-back { width: 270px; }
  /* Report */
  .me-rpt-kpi-grid { grid-template-columns: repeat(4, 1fr); }
  .me-rpt-insight-grid { grid-template-columns: repeat(3, 1fr); }
  .me-rpt-steps-grid { grid-template-columns: repeat(4, 1fr); }
  .me-rpt-proj-grid { grid-template-columns: 1fr; }
  .me-report-app-inner { grid-template-columns: 1fr 1fr; }
  .me-rpt-fake-phone { display: block; }
  .me-report-footer-inner { grid-template-columns: 1.4fr 0.6fr; align-items: start; }
}

@media (min-width: 980px) {
  .me-hero { min-height: 860px; padding: 52px 40px 90px; }
  .me-hero-nav { margin-bottom: 96px; }
  .me-hero-inner { grid-template-columns: 1.04fr 0.96fr; gap: 60px; }
  .me-hero-visual {
    max-width: 620px;
    min-height: 560px;
    margin: 50px 0 0 auto;
  }
  .me-phone-front {
    width: 352px;
    min-height: 500px;
    margin-right: 14px;
    padding: 64px 24px 28px;
    border-width: 13px;
    border-radius: 38px;
  }
  .me-phone-back {
    left: 0;
    top: 116px;
    width: 296px;
    min-height: 430px;
    padding: 82px 22px 26px;
    border-width: 13px;
    border-radius: 38px;
  }
  .me-phone-saving { padding: 22px 76px 22px 22px; }
  .me-hero-card-figure { font-size: 60px; }
  .me-phone-list div { min-height: 48px; font-size: 14px; }
  .me-phone-title { font-size: 18px; }
  .me-phone-check {
    width: 58px;
    height: 58px;
    font-size: 30px;
  }
  .me-section { padding: 116px 40px; }
  .me-report-benefits { padding-top: 110px; padding-bottom: 100px; }
  .me-section-how { padding-top: 64px; padding-bottom: 100px; }
  .me-report-benefits-inner { grid-template-columns: 520px 1fr; gap: 60px; }
  .me-report-left .me-section-title {
    white-space: nowrap;
    max-width: none;
    font-size: clamp(36px, 3.4vw, 44px);
  }
  .me-section-how .me-section-title {
    max-width: none;
    margin-left: auto;
    margin-right: auto;
    text-align: center;
  }
  .me-section-how .me-section-sub {
    display: block;
    max-width: none;
    width: 100%;
    text-align: center;
    margin-bottom: 48px;
  }
  .me-benefit-grid { gap: 26px; }
  .me-benefit-card { min-height: 236px; padding: 36px 38px; }
  .me-how-card { padding: 70px 36px 38px 138px; min-height: 250px; }
  .me-how-icon { left: 32px; width: 76px; height: 76px; font-size: 28px; }
  .me-how-num { width: 66px; height: 66px; font-size: 20px; top: -26px; }
  .me-grid { grid-template-columns: repeat(3, 1fr); }
  .me-operator-image { width: 220px; }
  .me-how-cta { margin-top: 60px; }
  .me-footer { padding: 72px 40px 48px; }
  /* Report hero grid */
  .me-report-hero { min-height: 820px; padding: 40px 60px 90px; }
  .me-report-nav { margin-bottom: 90px; }
  .me-report-hero-inner { grid-template-columns: 1.05fr 0.95fr; gap: 44px; }
  .me-report-hero-mock { display: block; }
  .me-rpt-price-row { grid-template-columns: 1fr 90px 1fr; }
}

@media (max-width: 520px) {
  .me-hero { min-height: auto; padding: 28px 18px 56px; }
  .me-hero-nav { margin-bottom: 42px; }
  .me-hero-logo { height: 52px; }
  .me-eyebrow { font-size: 11px; margin-bottom: 18px; }
  .me-hero h1 { font-size: clamp(32px, 10vw, 44px); max-width: 13.5ch; margin-bottom: 38px; }
  .me-hero-sub { font-size: 16px; margin-bottom: 54px; line-height: 1.58; }
  .me-hero-metrics {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
    margin-top: 28px;
    width: 100%;
    max-width: 390px;
  }
  .me-metric {
    border-left: 0;
    padding: 10px 8px;
    min-width: 0;
    text-align: center;
    border-radius: 14px;
    background: rgba(255, 255, 255, 0.08);
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.10);
  }
  .me-metric strong {
    display: block;
    font-size: 12.5px;
    line-height: 1.15;
    white-space: nowrap;
  }
  .me-metric span {
    display: block;
    margin-top: 4px;
    font-size: 10.5px;
    line-height: 1.2;
  }
  .me-hero-visual {
    min-height: 390px;
    max-width: 360px;
    margin-top: 22px;
  }
  .me-phone-front {
    width: min(292px, 82vw);
    min-height: 392px;
    padding: 50px 18px 22px;
    border-width: 10px;
    border-radius: 32px;
  }
  .me-phone-back {
    left: -10px;
    top: 78px;
    width: min(224px, 62vw);
    min-height: 322px;
    padding: 58px 16px 20px;
    border-width: 10px;
    border-radius: 30px;
  }
  .me-phone-title { font-size: 14px; margin-bottom: 14px; }
  .me-phone-saving { padding: 16px 56px 16px 16px; border-radius: 18px; }
  .me-hero-card-label { font-size: 10px; }
  .me-hero-card-figure { font-size: 42px; }
  .me-phone-check {
    right: 13px;
    top: 15px;
    width: 42px;
    height: 42px;
    font-size: 22px;
    box-shadow: 0 0 0 11px rgba(27, 181, 50, 0.12);
  }
  .me-phone-list { gap: 8px; }
  .me-phone-list div { min-height: 38px; padding: 9px 10px; font-size: 11.5px; border-radius: 13px; }
  .me-section { padding: 76px 18px; }
  .me-section-title { margin-bottom: 24px; }
  .me-section-sub { margin-bottom: 38px; }
  .me-section-cta {
    margin-top: 26px;
  }
  .me-section-cta,
  .me-section-cta.is-center {
    justify-content: stretch;
  }
  .me-section-cta .me-btn-primary {
    width: 100%;
    justify-content: center;
  }
  .me-report-preview { padding: 20px; border-radius: 22px; }
  .me-report-left { max-width: none; }
  .me-report-left .me-section-sub { margin-bottom: 30px; }
  .me-benefit-top {
    grid-template-columns: 54px minmax(0, 1fr);
    gap: 16px;
    margin-bottom: 14px;
  }
  .me-benefit-icon { width: 50px; height: 50px; font-size: 20px; }
  .me-benefit-card { padding: 24px; min-height: 0; }
  .me-benefit-card h3 { min-height: 0; }
  .me-how-cards { gap: 18px; margin-top: 38px; }
  .me-how-card {
    min-height: 0;
    padding: 62px 22px 26px;
    text-align: left;
    border-radius: 18px;
  }
  .me-how-icon {
    display: none;
  }
  .me-how-num {
    left: 22px;
    top: 20px;
    transform: none;
    width: 34px;
    height: 34px;
    font-size: 14px;
    box-shadow: 0 10px 22px rgba(27, 181, 50, 0.22);
  }
  .me-how-card h3 {
    font-size: 19px;
    line-height: 1.18;
    margin-bottom: 12px;
  }
  .me-how-card strong {
    font-size: 11px;
    margin-bottom: 12px;
    line-height: 1.35;
  }
  .me-how-card p {
    font-size: 14px;
    line-height: 1.55;
  }
  .me-how-cta { width: 100%; min-width: 0; font-size: 16px; }
  .me-operator-card { padding: 28px 22px; border-radius: 24px; }
  .me-operator-card-inline { margin-top: 44px; }
  .me-btn-operator { width: 100%; }
  /* Report mobile */
  .me-rpt-kpi-grid { grid-template-columns: 1fr 1fr; gap: 12px; }
  .me-rpt-price-row { grid-template-columns: 1fr; gap: 16px; }
  .me-rpt-compact-compare-row,
  .me-rpt-compact-compare-row.is-three { grid-template-columns: 1fr; gap: 16px; }
  .me-rpt-compare-arrow { transform: rotate(90deg); }
  .me-rpt-steps-grid { grid-template-columns: 1fr 1fr; }
  .me-rpt-guarantee { grid-template-columns: 1fr; }
  .me-report-final-cta .me-report-kpi-title { font-size: 32px; }
  .me-report-hero-text h1 { font-size: clamp(36px, 11vw, 56px); }
  .me-rpt-insight-grid { grid-template-columns: 1fr; }
}

@media (max-width: 719px) {
  .me-funnel {
    padding: 28px 14px 70px;
  }

  .me-step {
    padding: 28px 20px 26px;
    border-radius: 22px;
  }

  .me-step h2 {
    margin-bottom: 12px;
    line-height: 1.12;
  }

  .me-step-sub {
    margin-bottom: 24px;
    font-size: 14.5px;
  }

  .me-upload-step .me-drop {
    margin-top: 6px;
  }

  .me-drop {
    padding: 18px 14px 16px;
    border-radius: 18px;
  }

  .me-drop-icon {
    width: 36px;
    height: 36px;
    margin-bottom: 8px;
    font-size: 19px;
  }

  .me-drop-title {
    font-size: 15.5px;
  }

  .me-drop-sub {
    font-size: 12.5px;
  }

  .me-upload-actions {
    gap: 10px;
    margin-top: 14px;
  }

  .me-upload-action {
    min-height: 76px;
    padding: 12px 10px;
    grid-template-columns: 1fr;
    grid-template-rows: auto auto auto;
    justify-items: center;
    text-align: center;
    gap: 5px;
    border-radius: 16px;
  }

  .me-upload-action-icon {
    grid-row: auto;
    width: 38px;
    height: 38px;
    border-radius: 13px;
    font-size: 10px;
    letter-spacing: 0.02em;
  }

  .me-upload-action strong {
    font-size: 13.5px;
  }

  .me-upload-action small {
    font-size: 10.5px;
    line-height: 1.25;
  }

  .me-file-list {
    gap: 14px;
    margin-top: 20px;
  }

  .me-file-chip {
    grid-template-columns: 50px minmax(0, 1fr) 32px;
    gap: 12px;
    padding: 16px;
    border-radius: 20px;
  }

  .me-file-chip img,
  .me-file-thumb-fallback {
    width: 50px;
    height: 50px;
    border-radius: 14px;
  }

  .me-file-info strong {
    font-size: 14.5px;
  }

  .me-file-chip .me-file-name {
    font-size: 12.5px;
  }

  .me-file-ready {
    width: 32px;
    height: 32px;
  }

  .me-file-replace {
    justify-self: center;
    margin-top: 4px;
    padding: 8px 14px;
    border-radius: 999px;
    border: 1px solid rgba(196, 61, 61, 0.24);
    background: rgba(196, 61, 61, 0.08);
    color: #b72f2f;
    font-size: 12.5px;
    line-height: 1;
  }

  .me-file-replace:hover {
    text-decoration: none;
    background: rgba(196, 61, 61, 0.12);
  }

  .me-secure-box {
    margin-top: 18px;
    padding: 15px 16px;
    border-radius: 16px;
    font-size: 13px;
    line-height: 1.5;
  }

  .me-secure-box strong {
    font-size: 14px;
    margin-bottom: 4px;
  }

  .me-manual-link-wrap {
    margin-top: 16px;
  }

  .me-step-nav {
    margin-top: 22px;
  }
}

/* ============================================================================
   SEZIONE ANALISI DEI CONSUMI (Dettaglio e Grafici)
   ============================================================================ */
.me-report-consumption-section {
  background: #f7f9fd;
  border-top: 1px solid var(--me-line);
  border-bottom: 1px solid var(--me-line);
  padding: 92px 24px !important;
}
.me-report-consumption-inner {
  max-width: 1120px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}
.me-cons-layout {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 48px;
  margin-top: 48px;
  text-align: left;
}
.me-cons-col-left, .me-cons-col-right {
  display: flex;
  flex-direction: column;
}
.me-cons-col-left h3, .me-cons-col-right h3, .me-comparison-subchart-wrap h3 {
  font-size: 20px;
  font-weight: 800;
  color: var(--me-ink);
  margin-top: 0;
  margin-bottom: 24px;
}
.me-fascia-bars-list {
  display: flex;
  flex-direction: column;
  gap: 20px;
}
.me-fascia-bar-item {
  display: flex;
  flex-direction: column;
}
.me-fascia-bar-meta {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 8px;
}
.me-fascia-title {
  font-size: 14px;
  font-weight: 700;
  color: var(--me-ink);
  display: flex;
  align-items: center;
}
.me-fascia-pct {
  font-size: 16px;
  font-weight: 800;
  color: var(--me-green);
}
.me-fascia-progress-track {
  height: 12px;
  background: #eef1f5;
  border-radius: 999px;
  overflow: hidden;
  position: relative;
}
.me-fascia-progress-fill {
  height: 100%;
  border-radius: 999px;
  transition: width 0.6s ease;
}
.me-fascia-progress-fill.is-f1 {
  background: linear-gradient(90deg, #f59e0b, #eab308);
}
.me-fascia-progress-fill.is-f2 {
  background: linear-gradient(90deg, #3b82f6, #6366f1);
}
.me-fascia-progress-fill.is-f3 {
  background: linear-gradient(90deg, #1d4ed8, #1e1b4b);
}
.me-fascia-kwh {
  font-size: 12.5px;
  color: var(--me-muted);
  margin-top: 6px;
  font-weight: 500;
}
.me-mono-consumption-card {
  width: min(720px, 100%);
  margin: 0 auto;
  padding: 28px;
  border: 1px solid rgba(27, 181, 50, 0.22);
  border-radius: 24px;
  background: linear-gradient(180deg, #ffffff 0%, #f7fff9 100%);
  box-shadow: 0 20px 46px rgba(8, 28, 14, 0.08);
  text-align: left;
}
.me-mono-consumption-head {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
  margin-bottom: 12px;
  color: var(--me-ink);
}
.me-mono-consumption-head strong {
  font-size: clamp(18px, 2.5vw, 24px);
  line-height: 1.15;
}
.me-mono-consumption-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 28px;
  padding: 6px 12px;
  border-radius: 999px;
  background: rgba(27, 181, 50, 0.12);
  color: var(--me-green);
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}
.me-mono-consumption-card p {
  max-width: 620px;
  color: var(--me-muted);
  line-height: 1.6;
  margin: 0 0 22px;
}
.me-mono-consumption-meter {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 18px;
  margin-bottom: 10px;
  color: var(--me-ink);
}
.me-mono-consumption-meter span {
  color: var(--me-muted);
  font-weight: 700;
}
.me-mono-consumption-meter b {
  font-size: clamp(24px, 4vw, 36px);
  color: var(--me-green);
}
.me-mono-track {
  height: 14px;
}
.me-mono-consumption-foot {
  margin-top: 12px;
  color: var(--me-muted);
  font-size: 13px;
  font-weight: 700;
}
.me-cons-card {
  background: #f7f9fd;
  border: 1px solid var(--me-line);
  border-radius: 20px;
  padding: 22px;
  margin-bottom: 18px;
}
.me-cons-card h3 {
  font-size: 16px;
  margin: 0 0 10px;
  color: #0c1a40;
}
.me-cons-card p {
  margin: 0;
  font-size: 14px;
  color: var(--me-muted);
  line-height: 1.6;
}
.me-cost-scomp-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.me-cost-scomp-item {
  display: flex;
  justify-content: space-between;
  font-size: 14px;
  padding-bottom: 8px;
  border-bottom: 1px solid rgba(0,0,0,0.04);
}
.me-cost-scomp-item b {
  color: var(--me-green);
  font-weight: 800;
}

/* Grafico di confronto costi */
.me-comparison-subchart-wrap {
  margin-top: 64px;
  border-top: 2px dashed var(--me-line);
  padding-top: 48px;
  text-align: center;
}
.me-comparison-subchart-wrap h3 {
  margin-bottom: 32px;
}
.me-chart-bars-container {
  display: flex;
  gap: 60px;
  justify-content: center;
  height: 180px;
  align-items: flex-end;
  margin-bottom: 18px;
  padding-bottom: 12px;
  position: relative;
  border-bottom: 2px solid var(--me-line);
  max-width: 460px;
  margin-left: auto;
  margin-right: auto;
}
.me-chart-bar-col {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 140px;
  height: 100%;
  justify-content: flex-end;
}
.me-chart-bar-visual {
  width: 54px;
  border-radius: 8px 8px 0 0;
  transition: height 0.8s cubic-bezier(0.16, 1, 0.3, 1);
}
.me-chart-bar-visual.is-current {
  background: #cfd7e3;
}
.me-chart-bar-visual.is-myenergy {
  background: linear-gradient(180deg, var(--me-green) 0%, #159743 100%);
}
.me-chart-bar-value {
  font-size: 15px;
  font-weight: 800;
  margin-bottom: 8px;
  color: var(--me-ink);
}
.me-chart-bar-label {
  font-size: 12.5px;
  font-weight: 700;
  color: var(--me-muted);
  margin-top: 8px;
  text-align: center;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  max-width: 100%;
}
.me-chart-comparison-save-badge {
  display: inline-flex;
  background: #ecfff0;
  border: 1px solid rgba(27, 181, 50, 0.2);
  padding: 8px 18px;
  border-radius: 999px;
  font-size: 13.5px;
  font-weight: 700;
  color: #087f2f;
  margin-top: 18px;
}

@media (max-width: 768px) {
  .me-cons-layout {
    grid-template-columns: 1fr;
    gap: 28px;
  }
  .me-chart-bars-container {
    gap: 32px;
  }
}

/* Centratura delle card quando ce ne sono 3 */
.me-rpt-kpi-grid.has-3-cards {
  display: flex !important;
  justify-content: center !important;
  flex-wrap: wrap !important;
  gap: 20px !important;
  margin-top: 48px !important;
}
.me-rpt-kpi-grid.has-3-cards .me-rpt-kpi-card {
  flex: 0 1 290px !important;
  min-width: 250px !important;
}

/* ============================================================================
   MOTION / PRINT
   ============================================================================ */
@media (prefers-reduced-motion: reduce) {
  #myenergy-comparatore-root *,
  #myenergy-comparatore-root *::before,
  #myenergy-comparatore-root *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
  .me-reveal { opacity: 1; transform: none; }
  .me-pun-bar { transform: scaleY(1) !important; }
}

@media print {
  #myenergy-comparatore-root { background: #fff; }
  .me-rating, .me-report-toolbar, .me-step-nav, .me-progress { display: none !important; }
  .me-report-hero, .me-report-final-cta, .me-report-how-section { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  .me-rpt-kpi-card, .me-rpt-insight-card, .me-rpt-step { box-shadow: none !important; border: 1px solid var(--me-line); }
}

/* Stili per le sezioni alternate del report */
.me-report-fasce-wrap {
  max-width: 600px;
  margin: 36px auto 0;
  text-align: left;
}
.me-report-fasce-wrap h3 {
  margin-bottom: 24px;
  text-align: center;
  font-size: 20px;
  font-weight: 800;
  color: var(--me-ink);
}
.me-cost-scomp-wrap {
  max-width: 480px;
  margin: 36px auto 0;
  text-align: left;
}
.me-cost-scomp-wrap h3 {
  margin-bottom: 24px;
  text-align: center;
  font-size: 20px;
  font-weight: 800;
  color: var(--me-ink);
}
.me-cost-scomp-wrap p {
  font-size: 13.5px;
  color: var(--me-muted);
  margin-top: 14px;
  text-align: center;
  line-height: 1.6;
}
.me-power-opt-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 24px;
  margin-top: 36px;
  text-align: left;
}
@media (min-width: 768px) {
  .me-power-opt-grid {
    grid-template-columns: 1fr 1fr;
  }
}
.me-chart-comparison-save-badge.is-win-power {
  margin-top: 24px;
  background: rgba(27, 181, 50, 0.08) !important;
  border-color: rgba(27, 181, 50, 0.2) !important;
  color: #14802a !important;
  display: inline-block;
  padding: 10px 18px;
  border-radius: 12px;
  font-size: 14px;
  font-weight: 700;
  text-align: center;
}

/* ============================================================================
   SEZIONE ANALISI DEI COSTI (Cost Analysis Section)
   ============================================================================ */
.me-report-cost-analysis-section {
  background: #f7f9fd;
  border-top: 1px solid var(--me-line);
  border-bottom: 1px solid var(--me-line);
  padding: 92px 24px;
}
.me-report-cost-analysis-inner {
  max-width: 1120px;
  margin: 0 auto;
  text-align: center;
}

/* Stacked progress bar per scomposizione costi */
.me-cost-stacked-bar {
  display: flex;
  height: 24px;
  border-radius: var(--me-r-pill);
  overflow: hidden;
  margin: 20px 0 24px;
  background: #eef2f6;
  box-shadow: inset 0 2px 4px rgba(0,0,0,0.06);
}
.me-stacked-seg {
  height: 100%;
  transition: transform var(--me-t-micro) var(--me-ease);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-size: 11px;
  font-weight: 800;
  text-shadow: 0 1px 2px rgba(0,0,0,0.15);
}
.me-stacked-seg.is-materia {
  background: linear-gradient(135deg, #10b981, #059669);
}
.me-stacked-seg.is-pcv {
  background: linear-gradient(135deg, #3b82f6, #2563eb);
}
.me-stacked-seg.is-oneri {
  background: linear-gradient(135deg, #9ca3af, #4b5563);
}
.me-cost-legend {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding-top: 12px;
  border-top: 1px solid rgba(0,0,0,0.05);
}
@media (min-width: 560px) {
  .me-cost-legend {
    flex-direction: row;
    justify-content: space-around;
  }
}
.me-legend-item {
  display: flex;
  align-items: center;
  gap: 8px;
}
.me-legend-dot {
  width: 12px;
  height: 12px;
  border-radius: 50%;
  display: inline-block;
}
.me-legend-dot.is-materia { background: linear-gradient(135deg, #10b981, #059669); }
.me-legend-dot.is-pcv { background: linear-gradient(135deg, #3b82f6, #2563eb); }
.me-legend-dot.is-oneri { background: linear-gradient(135deg, #9ca3af, #4b5563); }
.me-legend-label {
  font-size: 13.5px;
  font-weight: 700;
  color: var(--me-ink);
}

/* ============================================================================
   SEZIONE VALORE (Commercial Value Section)
   ============================================================================ */
.me-report-value-section {
  background: #f7f9fd;
  border-top: 1px solid var(--me-line);
  border-bottom: 1px solid var(--me-line);
  padding: 92px 24px;
}
.me-report-value-inner {
  max-width: 1120px;
  margin: 0 auto;
  text-align: center;
}
.me-rpt-value-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 24px;
  margin-top: 48px;
  text-align: left;
}
@media (min-width: 768px) {
  .me-rpt-value-grid {
    grid-template-columns: repeat(3, 1fr);
  }
  .me-rpt-win-grid.is-one {
    grid-template-columns: minmax(260px, 360px);
    justify-content: center;
  }
  .me-rpt-win-grid.is-two {
    grid-template-columns: repeat(2, minmax(260px, 360px));
    justify-content: center;
  }
}
.me-rpt-value-card {
  background: #ffffff;
  border: 1px solid var(--me-line);
  border-radius: 24px;
  padding: 32px 28px;
  box-shadow: 0 10px 30px rgba(11, 26, 15, 0.04);
  display: flex;
  flex-direction: column;
  transition: transform 250ms var(--me-ease), box-shadow 250ms var(--me-ease);
}
.me-rpt-value-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 16px 40px rgba(11, 26, 15, 0.08);
}
.me-rpt-value-card strong {
  display: inline-flex;
  align-self: flex-start;
  background: #ecfff0;
  border: 1px solid rgba(27, 181, 50, 0.22);
  border-radius: 999px;
  padding: 6px 14px;
  font-size: 13.5px;
  font-weight: 800;
  color: #087f2f;
  letter-spacing: 0.01em;
  margin-bottom: 14px;
  line-height: 1.3;
}
.me-rpt-value-card h3 {
  font-size: 18px;
  font-weight: 800;
  color: var(--me-ink);
  margin: 0 0 10px;
}
.me-rpt-value-card p {
  font-size: 14px;
  color: var(--me-muted);
  line-height: 1.55;
  margin: 0;
}
.me-rpt-value-card.is-win-metric {
  border-color: rgba(27, 181, 50, 0.18);
  background: linear-gradient(180deg, #ffffff 0%, #f4fff6 100%);
}
.me-rpt-value-card.is-win-metric p + p {
  margin-top: 6px;
  color: var(--me-ink);
  font-weight: 700;
}
.me-rpt-value-card.is-win-metric small {
  display: block;
  margin-top: 14px;
  color: var(--me-muted);
  font-size: 12px;
  line-height: 1.45;
}
.me-rpt-value-card.is-price-metric {
  gap: 12px;
}
.me-rpt-value-card.is-price-metric h3 {
  margin-bottom: 8px;
}
.me-price-metric-row {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 18px;
  padding: 14px 16px;
  border-radius: 16px;
  background: #fff;
  border: 1px solid rgba(11, 26, 15, 0.08);
}
.me-price-metric-row span {
  font-size: 13px;
  font-weight: 800;
  color: var(--me-muted);
  text-transform: uppercase;
  letter-spacing: 0.06em;
}
.me-price-metric-row b {
  font-size: clamp(18px, 2.5vw, 23px);
  line-height: 1;
  white-space: nowrap;
}
.me-price-metric-row.is-bill b {
  color: #d93636;
}
.me-price-metric-row.is-myenergy {
  border-color: rgba(27, 181, 50, 0.22);
  background: #f3fff5;
}
.me-price-metric-row.is-myenergy b {
  color: #1bb532;
}

/* ============================================================================
   SEZIONE POTENZA E TECNOLOGIA (Power & Meter Section)
   ============================================================================ */
.me-report-power-analysis-section {
  background: #ffffff;
  border-top: 1px solid var(--me-line);
  border-bottom: 1px solid var(--me-line);
  padding: 92px 24px;
}
.me-report-power-analysis-inner {
  max-width: 1120px;
  margin: 0 auto;
  text-align: center;
}

/* Slider potenza */
.me-power-scale {
  position: relative;
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin: 24px 0 12px;
  padding: 0 10px;
}
.me-power-scale::before {
  content: '';
  position: absolute;
  top: 6px;
  left: 10px;
  right: 10px;
  height: 4px;
  background: #eef1f5;
  z-index: 1;
  border-radius: 2px;
}
.me-power-scale-item {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.me-power-scale-dot {
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: #cfd7e3;
  border: 3px solid #ffffff;
  box-shadow: 0 2px 6px rgba(0,0,0,0.1);
  transition: background 0.3s, transform 0.3s;
}
.me-power-scale-item.is-active .me-power-scale-dot {
  background: var(--me-green);
  transform: scale(1.3);
  box-shadow: 0 0 0 6px rgba(27, 181, 50, 0.2);
}
.me-power-scale-label {
  font-size: 12px;
  font-weight: 700;
  color: var(--me-muted);
  margin-top: 8px;
}
.me-power-scale-item.is-active .me-power-scale-label {
  color: var(--me-green);
  font-weight: 800;
}

/* Tabella comparazione contatori */
.me-meter-compare-table {
  width: 100%;
  margin-top: 20px;
  border-collapse: collapse;
  font-size: 13.5px;
}
.me-meter-row {
  display: grid;
  grid-template-columns: 1.2fr 0.9fr 0.9fr;
  padding: 10px 0;
  border-bottom: 1px solid rgba(0,0,0,0.05);
  align-items: center;
}
.me-meter-row:last-child {
  border-bottom: 0;
}
.me-meter-row.is-header {
  font-weight: 800;
  color: var(--me-ink);
  border-bottom: 2px solid var(--me-line);
  padding-bottom: 8px;
}
.me-meter-row div {
  padding: 2px 4px;
}
.me-meter-row div.is-bad {
  color: #c2410c;
  font-weight: 600;
}
.me-meter-row div.is-good {
  color: #15803d;
  font-weight: 700;
}

/* ============================================================================
   SEZIONE FIDUCIA (Trust Section)
   ============================================================================ */
.me-report-trust-section {
  background: #f7f9fd;
  border-top: 1px solid var(--me-line);
  border-bottom: 1px solid var(--me-line);
  padding: 92px 24px;
}
.me-report-trust-inner {
  max-width: 1120px;
  margin: 0 auto;
  text-align: center;
}
.me-rpt-trust-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 20px;
  margin-top: 48px;
  text-align: left;
}
@media (min-width: 560px) {
  .me-rpt-trust-grid {
    grid-template-columns: 1fr 1fr;
  }
}
@media (min-width: 992px) {
  .me-rpt-trust-grid {
    grid-template-columns: repeat(4, 1fr);
  }
}
.me-rpt-trust-card {
  background: #ffffff;
  border: 1px solid var(--me-line);
  border-radius: 24px;
  padding: 28px 24px;
  box-shadow: 0 10px 30px rgba(11, 26, 15, 0.04);
  display: flex;
  flex-direction: column;
  transition: transform 250ms var(--me-ease), box-shadow 250ms var(--me-ease);
}
.me-rpt-trust-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 16px 40px rgba(11, 26, 15, 0.08);
}
.me-rpt-trust-card h3 {
  font-size: 17px;
  font-weight: 800;
  color: var(--me-ink);
  margin: 0 0 10px;
}
.me-rpt-trust-card p {
  font-size: 13.5px;
  color: var(--me-muted);
  line-height: 1.5;
  margin: 0;
}

/* ============================================================================
   RESPONSIVE OVERRIDES PER SEZIONI
   ============================================================================ */
@media (max-width: 768px) {
  .me-report-consumption-section,
  .me-report-app-section,
  .me-report-cost-analysis-section,
  .me-report-compare-section,
  .me-report-value-section,
  .me-report-power-analysis-section,
  .me-report-trust-section {
    padding: 64px 20px !important;
  }
}

/* ============================================================================
   GRAFICO DI PROIEZIONE DEL RISPARMIO (Savings Projection Chart)
   ============================================================================ */
.me-proj-chart-wrap {
  margin-top: 48px;
  text-align: center;
}
.me-saving-projection-chart {
  display: flex;
  justify-content: space-around;
  align-items: flex-end;
  height: 240px;
  border-bottom: 2px solid var(--me-line);
  padding-bottom: 16px;
  gap: 16px;
  max-width: 800px;
  margin: 0 auto;
}
.me-proj-chart-col {
  display: flex;
  flex-direction: column;
  align-items: center;
  flex: 1;
  height: 100%;
  justify-content: flex-end;
}
.me-proj-chart-val {
  font-size: 14px;
  font-weight: 800;
  margin-bottom: 8px;
  color: var(--me-green);
}
.me-proj-chart-bar-container {
  width: 40px;
  height: 140px;
  background: #eef1f5;
  border-radius: 8px 8px 0 0;
  overflow: hidden;
  display: flex;
  align-items: flex-end;
  box-shadow: inset 0 2px 4px rgba(0,0,0,0.04);
}
.me-proj-chart-bar-fill {
  width: 100%;
  background: linear-gradient(180deg, var(--me-green) 0%, #159743 100%);
  border-radius: 8px 8px 0 0;
  transition: height 0.8s cubic-bezier(0.16, 1, 0.3, 1);
}
.me-proj-chart-year {
  font-size: 13px;
  font-weight: 700;
  color: var(--me-ink);
  margin-top: 8px;
}
.me-proj-chart-subtext {
  font-size: 10.5px;
  color: var(--me-muted);
  margin-top: 4px;
  white-space: nowrap;
}

/* ============================================================================
   GRAFICO DEI PREZZI PER FASCIA (Price per Fascia Chart)
   ============================================================================ */
.me-price-chart-wrap {
  margin-top: 48px;
  text-align: center;
}
.me-report-pun-badge {
  width: min(720px, 100%);
  margin: 24px auto 0;
  padding: 14px 18px;
  border-radius: 16px;
  display: flex;
  flex-direction: column;
  gap: 4px;
  text-align: center;
  font-size: 13px;
  line-height: 1.45;
}
.me-report-pun-badge strong {
  color: var(--me-ink);
  font-size: 13.5px;
}
.me-report-pun-badge span {
  color: var(--me-muted);
}
.me-report-pun-badge.is-pun {
  background: rgba(27, 181, 50, 0.08);
  border: 1px solid rgba(27, 181, 50, 0.22);
}
.me-report-pun-badge.is-fallback {
  background: #fff7ed;
  border: 1px solid rgba(249, 115, 22, 0.24);
}
.me-price-chart-container {
  display: flex;
  justify-content: space-around;
  gap: 24px;
  max-width: 760px;
  margin: 0 auto;
}
.me-price-chart-container.is-single {
  max-width: 300px;
  justify-content: center;
}
.me-price-chart-container.is-single .me-price-chart-group {
  max-width: 220px;
}
@media (max-width: 560px) {
  .me-price-chart-container {
    flex-direction: column;
    gap: 36px;
    align-items: center;
  }
  .me-mono-consumption-card {
    padding: 22px;
    border-radius: 20px;
  }
  .me-mono-consumption-meter {
    align-items: flex-start;
    flex-direction: column;
    gap: 4px;
  }
}
.me-price-chart-group {
  display: flex;
  flex-direction: column;
  align-items: center;
  flex: 1;
  max-width: 180px;
}
.me-price-chart-bars {
  display: flex;
  gap: 16px;
  height: 160px;
  align-items: flex-end;
  border-bottom: 2px solid var(--me-line);
  padding-bottom: 10px;
  width: 100%;
  justify-content: center;
}
.me-price-chart-col-single {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 44px;
  height: 100%;
  justify-content: flex-end;
}
.me-price-val {
  font-size: 11px;
  font-weight: 700;
  margin-bottom: 6px;
  white-space: nowrap;
}
.me-price-chart-col-single.is-client .me-price-val {
  color: #f97316;
}
.me-price-chart-col-single.is-pun .me-price-val {
  color: var(--me-green);
}
.me-price-bar {
  width: 100%;
  border-radius: 6px 6px 0 0;
  transition: height 0.8s cubic-bezier(0.16, 1, 0.3, 1);
  box-shadow: 0 4px 10px rgba(0,0,0,0.05);
}
.me-price-chart-col-single.is-client .me-price-bar {
  background: linear-gradient(180deg, #fb923c 0%, #f97316 100%);
}
.me-price-chart-col-single.is-pun .me-price-bar {
  background: linear-gradient(180deg, #34d399 0%, #10b981 100%);
}
.me-price-label {
  font-size: 11px;
  font-weight: 700;
  color: var(--me-muted);
  margin-top: 6px;
}
.me-price-chart-group-title {
  font-size: 14px;
  font-weight: 800;
  color: var(--me-ink);
  margin-top: 12px;
}

/* Footer ufficiale: override finale contro regole legacy landing/report */
#myenergy-comparatore-root .me-official-footer {
  background: #2b3787;
  padding: 34px 22px 0;
  margin: 0;
  border: 0;
}
#myenergy-comparatore-root .me-official-footer a { text-decoration: none; }
@media (max-width: 820px) {
  #myenergy-comparatore-root .me-official-footer-main {
    grid-template-columns: 1fr;
    gap: 34px;
  }
  #myenergy-comparatore-root .me-official-footer-top {
    gap: 14px;
    align-items: flex-start;
    text-align: left;
  }
  #myenergy-comparatore-root .me-official-footer-top span,
  #myenergy-comparatore-root .me-official-footer-top a {
    width: 100%;
    justify-content: flex-start;
  }
}
