
  :root {
    --red: #c8102e; --red-dark: #a30d24; --red-darker: #4a0612;
    --green: #2ecc71; --green-dark: #27ae60;
    --black: #1a1a1a; --gray-900: #2a2a2a; --gray-700: #555; --gray-500: #888;
    --gray-200: #e8e8e8; --gray-100: #f5f5f5; --white: #ffffff;
    --font-display: 'Impact', 'Oswald', 'Arial Narrow', sans-serif;
    --font-body: -apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif;
    --container: 1200px;
  }
  .tfr-page, .tfr-page * { box-sizing: border-box; margin: 0; padding: 0; }
  .tfr-page { font-family: var(--font-body); color: var(--black); background: var(--white);
    line-height: 1.6; font-size: 16px; -webkit-font-smoothing: antialiased; }
  .tfr-page img { max-width: 100%; height: auto; display: block; }
  .tfr-page a { color: var(--red); text-decoration: none; }
  .mzt-container { max-width: var(--container); margin: 0 auto; padding: 0 24px; }

  /* topbar */
  .mzt-topbar { padding: 18px 0; border-bottom: 1px solid var(--gray-200); }
  .mzt-topbar img { height: 54px; width: auto; margin: 0 auto; }

  /* hero */
  .mzt-hero { padding: 64px 0 72px; }
  .mzt-hero-grid { display: grid; grid-template-columns: minmax(0,7fr) minmax(0,4fr);
    gap: 56px; align-items: center; }
  .mzt-eyebrow { display: inline-block; color: var(--red); font-weight: 700;
    text-transform: uppercase; letter-spacing: 0.15em; font-size: 0.85rem; margin-bottom: 14px; }
  .mzt-hero h1 { font-family: var(--font-display); font-weight: 900;
    font-size: clamp(2.4rem, 5vw, 4.2rem); line-height: 0.98; color: var(--red);
    text-transform: uppercase; letter-spacing: -0.01em; margin: 0 0 22px; }
  .mzt-hero-sub { font-size: 1.2rem; color: var(--gray-700); line-height: 1.55; margin: 0 0 30px; max-width: 62ch; }
  .mzt-btn { display: inline-flex; align-items: center; gap: 12px; padding: 18px 36px;
    background: linear-gradient(180deg, #34d674 0%, #28b85e 100%); color: var(--white) !important;
    font-weight: 700; font-size: 1.12rem; border-radius: 8px;
    box-shadow: 0 6px 18px rgba(46,204,113,0.35); transition: transform .15s ease, box-shadow .15s ease;
    border: none; cursor: pointer; text-decoration: none; text-transform: uppercase; letter-spacing: .02em; }
  .mzt-btn:hover { transform: translateY(-2px); box-shadow: 0 10px 24px rgba(46,204,113,0.45); }
  .mzt-btn-arrow { width: 24px; height: 24px; border-radius: 50%; border: 2px solid var(--white);
    display: inline-flex; align-items: center; justify-content: center; font-size: 0.9rem; flex-shrink: 0; }
  .mzt-hero-note { margin-top: 14px; font-size: 0.92rem; color: var(--gray-500); }

  /* book mockup */
  .mzt-book { position: relative; width: min(300px, 78%); margin: 0 auto;
    transform: rotate(3deg); }
  .mzt-book img { border-radius: 4px 10px 10px 4px;
    box-shadow: -24px 28px 48px rgba(26,26,26,0.28), 0 4px 12px rgba(26,26,26,0.18);
    border-left: 6px solid rgba(0,0,0,0.18); }
  .mzt-book::after { content: ""; position: absolute; inset: 0; border-radius: 4px 10px 10px 4px;
    background: linear-gradient(105deg, rgba(255,255,255,0.28) 0%, rgba(255,255,255,0) 28%); pointer-events: none; }

  /* generic sections */
  .mzt-band { padding: 72px 0; }
  .mzt-band-gray { background: var(--gray-100); }
  .mzt-band-dark { background: var(--red-darker); color: var(--white); }
  .mzt-split { display: grid; grid-template-columns: minmax(0,4fr) minmax(0,7fr); gap: 56px; align-items: start; }
  .mzt-split h2, .mzt-h2 { font-family: var(--font-display); font-weight: 900; text-transform: uppercase;
    color: var(--red); font-size: clamp(1.9rem, 3.6vw, 2.9rem); line-height: 1.02; margin: 0 0 18px; }
  .mzt-kicker { color: var(--gray-500); font-weight: 700; text-transform: uppercase;
    letter-spacing: 0.14em; font-size: 0.8rem; display: block; margin-bottom: 12px; }
  .mzt-copy p { margin: 0 0 18px; color: var(--gray-900); font-size: 1.06rem; line-height: 1.7; }
  .mzt-copy p:last-child { margin-bottom: 0; }
  .mzt-copy strong { color: var(--black); }

  .mzt-stat { background: var(--red-darker); color: var(--white); border-radius: 8px;
    padding: 26px 30px; margin-top: 28px; }
  .mzt-stat strong { font-family: var(--font-display); font-size: 1.9rem; letter-spacing: .01em;
    display: block; margin-bottom: 6px; text-transform: uppercase; color: var(--white) !important; }
  .mzt-stat span { color: rgba(255,255,255,0.85); font-size: 1rem; line-height: 1.55; display: block; }

  .mzt-checklist { list-style: none; margin: 0 0 24px; padding: 0; }
  .mzt-checklist li { display: flex; align-items: flex-start; gap: 12px; margin-bottom: 14px;
    color: var(--gray-900); font-size: 1.06rem; line-height: 1.55; }
  .mzt-checklist li::before { content: "✓"; flex-shrink: 0; width: 22px; height: 22px; margin-top: 3px;
    background: var(--red); color: var(--white); border-radius: 50%; display: flex;
    align-items: center; justify-content: center; font-weight: 700; font-size: 0.85rem; }

  .mzt-highlight { border-left: 4px solid var(--red); background: var(--white);
    padding: 20px 24px; border-radius: 0 8px 8px 0; box-shadow: 0 4px 14px rgba(0,0,0,0.06);
    color: var(--gray-900); font-size: 1.05rem; line-height: 1.65; }
  .mzt-band-gray .mzt-highlight { background: var(--white); }
  .mzt-band:not(.mzt-band-gray) .mzt-highlight { background: var(--gray-100); box-shadow: none; }

  /* chapters */
  .mzt-center-head { text-align: center; max-width: none; margin-bottom: 46px; }
  .mzt-center-head .mzt-h2 { text-align: center; }
  .mzt-center-head p { color: var(--gray-700); font-size: 1.15rem; margin: 0 auto; max-width: 70ch; }
  .mzt-chapters { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 20px; margin-bottom: 44px; }
  .mzt-chapter { border: 2px solid var(--gray-200); border-radius: 10px; background: var(--white);
    padding: 26px 26px 24px; display: flex; gap: 18px; align-items: flex-start;
    transition: border-color .2s ease, transform .2s ease; }
  .mzt-chapter:hover { border-color: var(--red); transform: translateY(-2px); }
  .mzt-chapter-num { font-family: var(--font-display); font-weight: 900; font-size: 2rem;
    color: var(--red); line-height: 1; min-width: 40px; }
  .mzt-chapter h3 { font-size: 1.08rem; font-weight: 700; color: var(--black); margin: 0 0 6px; line-height: 1.35; }
  .mzt-chapter p { color: var(--gray-700); font-size: 0.97rem; line-height: 1.55; margin: 0; }
  .mzt-center-cta { text-align: center; }

  /* cross-link callout */
  .mzt-crosslink { margin-top: 34px; border: 2px dashed var(--gray-200); border-radius: 10px;
    padding: 22px 26px; color: var(--gray-700); font-size: 1rem; }
  .mzt-crosslink a { font-weight: 700; white-space: nowrap; }

  /* author */
  .mzt-author h3 { font-family: var(--font-display); text-transform: uppercase; color: var(--red);
    font-size: clamp(1.5rem, 2.6vw, 2.1rem); line-height: 1.05; margin: 0 0 16px; }

  /* chiusura + form */
  .mzt-close { padding: 76px 0 30px; }
  .mzt-close-head { text-align: center; margin-bottom: 12px; }
  .mzt-close-head .mzt-h2 { text-align: center; }
  .mzt-close-head p { color: var(--gray-700); font-size: 1.12rem; max-width: 66ch; margin: 0 auto 6px; }

  /* ─── Elementor Form theming (targets Elementor-generated classes) ─── */
  .elementor-widget-form .elementor-form { max-width: 560px; margin: 26px auto 0 !important;
    background: var(--white) !important; border: 1px solid var(--gray-200) !important;
    border-top: 4px solid var(--red) !important; border-radius: 10px !important;
    padding: 36px 34px 30px !important; box-shadow: 0 18px 48px rgba(26,26,26,0.12) !important; }
  .elementor-widget-form .elementor-field-group { margin-bottom: 16px !important; }
  .elementor-widget-form .elementor-field-label { font-family: var(--font-body) !important;
    font-size: 0.78rem !important; font-weight: 700 !important; text-transform: uppercase !important;
    letter-spacing: 0.08em !important; color: var(--gray-700) !important; margin-bottom: 6px !important; }
  .elementor-widget-form .elementor-field-required .elementor-field-label::after {
    content: ' *' !important; color: var(--red) !important; }
  .elementor-widget-form .elementor-field,
  .elementor-widget-form .elementor-field-textual {
    -webkit-appearance: none !important; appearance: none !important;
    background: var(--white) !important; border: 1px solid #cfcfcf !important;
    border-radius: 6px !important; color: var(--black) !important;
    font-family: var(--font-body) !important; font-size: 1rem !important;
    padding: 13px 14px !important; min-height: 0 !important; height: auto !important;
    box-shadow: none !important; transition: border-color .15s ease; }
  .elementor-widget-form .elementor-field-textual::placeholder { color: #a5a5a5 !important; }
  .elementor-widget-form .elementor-field-textual:focus { border-color: var(--red) !important;
    outline: none !important; box-shadow: 0 0 0 3px rgba(200,16,46,0.12) !important; }
  .elementor-widget-form .elementor-field-type-acceptance .elementor-field-option { display: flex; gap: 10px;
    align-items: flex-start; color: var(--gray-700); font-size: 0.85rem !important; line-height: 1.5; }
  .elementor-widget-form .elementor-field-type-acceptance input[type="checkbox"] {
    -webkit-appearance: checkbox !important; appearance: auto !important;
    width: 18px !important; height: 18px !important; min-height: 0 !important;
    padding: 0 !important; margin-top: 2px; accent-color: var(--red); flex-shrink: 0; }
  .elementor-widget-form .elementor-field-type-acceptance label { font-size: 0.85rem !important;
    color: var(--gray-700) !important; text-transform: none !important; letter-spacing: 0 !important;
    font-weight: 400 !important; }
  .elementor-widget-form .e-form__buttons { margin-top: 8px !important; }
  .elementor-widget-form .elementor-button {
    width: 100% !important; background: linear-gradient(180deg, #34d674 0%, #28b85e 100%) !important;
    border: none !important; border-radius: 8px !important; padding: 17px 20px !important;
    box-shadow: 0 6px 18px rgba(46,204,113,0.35) !important;
    transition: transform .15s ease, box-shadow .15s ease !important; }
  .elementor-widget-form .elementor-button .elementor-button-text {
    font-family: var(--font-body) !important; font-weight: 700 !important; font-size: 1.1rem !important;
    text-transform: uppercase !important; letter-spacing: .03em !important; color: var(--white) !important; }
  .elementor-widget-form .elementor-button:hover { transform: translateY(-2px);
    box-shadow: 0 10px 24px rgba(46,204,113,0.45) !important; }
  .elementor-widget-form .elementor-message { font-family: var(--font-body) !important;
    font-size: 0.95rem !important; max-width: 560px; margin: 14px auto 0 !important; }
  .elementor-widget-form .elementor-message-success { color: var(--green-dark) !important; }
  .elementor-widget-form .elementor-message-danger { color: var(--red) !important; }

  /* footer (part 2) */
  .mzt-footer { border-top: 1px solid var(--gray-200); padding: 44px 0 54px; margin-top: 40px; }
  .mzt-footer p { font-size: 0.8rem; line-height: 1.6; color: var(--gray-500); font-style: italic; margin: 0 0 14px; }
  .mzt-footer .mzt-footer-entity { font-style: normal; font-weight: 600; color: var(--gray-700); }
  .mzt-footer a { color: var(--gray-700); text-decoration: underline; }

  /* thank-you */
  .mzt-ty-hero { padding: 70px 0 56px; text-align: center; }
  .mzt-ty-hero .mzt-eyebrow { margin-bottom: 10px; }
  .mzt-ty-hero h1 { font-family: var(--font-display); font-weight: 900; text-transform: uppercase;
    color: var(--red); font-size: clamp(2.2rem, 4.6vw, 3.6rem); line-height: 1; margin: 0 0 18px; }
  .mzt-ty-hero p { color: var(--gray-700); font-size: 1.15rem; max-width: 62ch; margin: 0 auto 28px; }
  .mzt-ty-note { font-size: 0.92rem; color: var(--gray-500); margin-top: 14px; }
  .mzt-prenota { scroll-margin-top: 40px; }
  .mzt-deliverables { list-style: none; margin: 0 0 22px; padding: 0; }
  .mzt-deliverables li { display: flex; gap: 12px; align-items: flex-start; margin-bottom: 12px;
    color: var(--gray-900); font-size: 1.03rem; line-height: 1.55; }
  .mzt-deliverables li::before { content: "→"; color: var(--red); font-weight: 700; flex-shrink: 0; }

  @media (max-width: 900px) {
    .mzt-hero-grid, .mzt-split { grid-template-columns: 1fr; gap: 36px; }
    .mzt-chapters { grid-template-columns: 1fr; }
    .mzt-book { margin: 8px auto 0; }
  }
  .elementor-widget-form { padding: 0 20px 70px; }

  @media (max-width: 600px) {
    .mzt-band, .mzt-close { padding: 52px 0; }
    .mzt-hero { padding: 40px 0 52px; }
    .elementor-widget-form .elementor-form { padding: 26px 20px 22px !important; }
  }
