.stack-form {
  display: grid;
  gap: 12px;
  padding: 24px;
  border: 1px solid #dce4d8;
  border-radius: 8px;
  background: #ffffff;
  box-shadow: 0 12px 32px #00000008;
}

.stack-form [hidden] { display: none !important; }
.stack-form { min-width: 0; min-height: 360px; align-content: start; }
.stack-form form { display: grid; gap: 14px; min-width: 0; }
.stack-step { margin: 0 0 16px; color: var(--green-dark, #4c8051); font-size: 14px; font-weight: 800; }
.lead-magnet .stack-step { font-size: 14px; line-height: 1.4; margin: 0 0 16px; }
.lead-magnet .stack-small { font-size: 13px; line-height: 1.5; margin: 8px 0 0; }
.lead-magnet .stack-preview-teaser { font-size: 13px; line-height: 1.5; margin: 14px 0 0; }
#stackPreparing .stack-step::before { content: ""; display: inline-block; width: 16px; height: 16px; border: 2px solid #dce4d8; border-top-color: #4c8051; border-radius: 50%; vertical-align: middle; margin-right: 8px; animation: stack-spin .8s linear infinite; }
@keyframes stack-spin { to { transform: rotate(360deg); } }
.stack-small { font-size: 13px; line-height: 1.5; color: #5f666e; }
.stack-form select { text-transform: none; font-size: 15px; }
.stack-progress { height: 8px; background: #e5ebdf; overflow: hidden; margin: 24px 0; }
.stack-progress > span { display: block; width: 0; height: 100%; background: #9cc043; transition: width .35s ease; }
.stack-checks { list-style: none; padding: 0; display: grid; gap: 18px; font-size: 15px; }
.stack-checks li::before { content: ""; display: inline-block; width: 18px; height: 18px; margin-right: 10px; border: 2px solid #aeb7ab; border-radius: 50%; vertical-align: middle; }
.stack-checks li.is-done::before { content: "✓"; color: #4c8051; border-color: #4c8051; font-weight: 800; line-height: 14px; text-align: center; }
.stack-mail-preview { border-top: 2px solid #f26522; border-bottom: 1px solid #dce4d8; padding: 14px 0; }
.stack-mail-preview h3 { font-size: 18px; line-height: 1.35; margin: 8px 0 14px; overflow-wrap: anywhere; }
.stack-mail-preview ul { list-style: none; padding: 0; margin: 0; display: grid; gap: 10px; }
.stack-mail-preview li { display: grid; gap: 2px; font-size: 14px; }
.stack-mail-preview li span { color: #5f666e; }
.stack-preview-teaser { font-size: 13px; margin: 14px 0 0; }
.stack-mail-heading { display: grid; grid-template-columns: 38px minmax(0, 1fr); gap: 12px; align-items: center; }
#stackTopicIcon { display: grid; place-items: center; width: 38px; height: 38px; color: #4c8051; }
#stackTopicIcon svg { width: 32px; height: 32px; }
.stack-mail-heading h3 { margin: 0; }
.lead-magnet #stackTeaser { font-size: 15px; line-height: 1.5; margin: 14px 0 0; }
.stack-form label.stack-consent { display: grid; grid-template-columns: 20px minmax(0, 1fr); gap: 10px; align-items: start; text-transform: none; font-size: 13px; line-height: 1.55; font-weight: 500; }
.stack-consent input { width: 18px; height: 18px; min-height: 0; margin: 2px 0 0; accent-color: #4c8051; }
.stack-form button.stack-back { width: auto; background: none; color: #4c8051; padding: 5px 0; border: 0; border-radius: 0; text-align: left; font-size: 13px; justify-self: start; box-shadow: none; }
.stack-form button:disabled { opacity: .55; cursor: not-allowed; }
.stack-honeypot { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
#stackSuccess h3 { font-size: 22px; line-height: 1.3; }
#stackMessage { font-size: 14px; line-height: 1.5; overflow-wrap: anywhere; }
.stack-choice-title { margin: 0 0 16px; font-size: 18px; line-height: 1.3; }
.stack-topics { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 8px; margin-bottom: 16px; }
.stack-form button.stack-topic { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 9px; width: 100%; min-width: 0; min-height: 94px; padding: 9px 4px; border: 1px solid #dce4d8; border-radius: 6px; background: #fafcf8; color: #353c35; box-shadow: none; font-size: 12px; line-height: 1.25; font-weight: 700; transition: border-color .15s, background .15s, transform .15s; }
.stack-topic svg { width: 27px; height: 27px; color: #4c8051; flex: 0 0 auto; }
.stack-topic span { display: flex; align-items: center; justify-content: center; min-height: 30px; overflow-wrap: anywhere; }
.stack-form button.stack-topic:hover { background: #eef5e6; border-color: #9cc043; transform: translateY(-2px); }
.stack-form button.stack-topic:focus-visible { outline: 3px solid #f26522; outline-offset: 2px; }
.stack-form button.stack-topic[aria-pressed="true"] { background: #e8f2da; border-color: #4c8051; }
.stack-scan-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 16px; }
#stackPreparing .stack-step::before { display: none; }
.stack-scan-heading h3 { margin: 0; font-size: 17px; line-height: 1.35; }
.stack-scan-heading .stack-step { margin: 0 0 5px; }
.lead-magnet .stack-counter { display: grid; flex: 0 0 auto; margin: 0; text-align: right; color: #4c8051; }
.stack-counter strong { min-width: 3ch; font-size: 40px; line-height: 1; font-variant-numeric: tabular-nums; }
.stack-counter span { color: #5f666e; font-size: 12px; }
.stack-scan-wall { position: relative; max-width: 340px; margin: 0 auto; overflow: hidden; }
.stack-scan-grid { display: grid; grid-template-columns: repeat(10, minmax(0, 1fr)); gap: 4px; aspect-ratio: 1; }
.stack-scan-cell { display: grid; place-items: center; min-width: 0; aspect-ratio: 1; border-radius: 3px; background: #f3f5f0; opacity: .3; border: 1px solid transparent; transition: opacity .15s, background .15s, border-color .15s; }
.stack-scan-cell img { width: 75%; height: 75%; object-fit: contain; filter: grayscale(1); }
.stack-scan-cell.is-scanned { opacity: .7; }
.stack-scan-cell.is-current { opacity: 1; background: #fff1e8; border-color: #f26522; }
.stack-scan-cell.is-match { opacity: 1; border-color: #4c8051; background: #e4f1d2; }
.stack-scan-cell.is-match img { filter: none; }
.stack-scan-line { position: absolute; left: 0; right: 0; height: 2px; background: #f26522; top: var(--scan-position, 0%); transition: top 80ms linear; pointer-events: none; }
.lead-magnet .stack-scan-name { margin: 12px 0 0; font-size: 12px; line-height: 1.4; min-height: 18px; text-align: center; color: #5f666e; }
#stackPreparing .stack-progress { margin: 10px 0 16px; height: 5px; }
.stack-checks { gap: 10px; font-size: 13px; }
.stack-checks li { display: flex; align-items: center; gap: 8px; color: #5f666e; }
.stack-checks li::before { display: none; }
.stack-checks svg { width: 18px; height: 18px; opacity: .2; color: #4c8051; flex: 0 0 auto; }
.stack-checks .is-done { color: #353c35; }
.stack-checks .is-done svg { opacity: 1; }
.stack-mail-preview li { grid-template-columns: 28px minmax(0, 1fr); column-gap: 10px; }
.stack-mail-preview li img { grid-row: 1 / 3; width: 28px; height: 28px; object-fit: contain; align-self: center; }
.stack-mail-preview li strong, .stack-mail-preview li span { grid-column: 2; }
.stack-form button.stack-back { display: inline-flex; align-items: center; gap: 6px; }
.stack-back svg { width: 16px; height: 16px; }
@media (max-width: 600px) { .stack-topics { grid-template-columns: repeat(2, minmax(0, 1fr)); } .stack-form button.stack-topic { min-height: 82px; flex-direction: column; gap: 7px; padding: 10px 5px; font-size: 13px; } .stack-topic svg { width: 24px; height: 24px; } .stack-topic span { min-height: 20px; text-align: center; overflow-wrap: normal; } .stack-counter strong { font-size: 34px; } }
@media (prefers-reduced-motion: reduce) { .stack-scan-line, .stack-scan-cell, .stack-form button.stack-topic { transition: none; } .stack-form button.stack-topic:hover { transform: none; } }
@media (prefers-reduced-motion: reduce) { .stack-progress > span { transition: none; } #stackPreparing .stack-step::before { animation: none; } }

.stack-form button {
  width: 100%;
  background: #f26522;
}

.form-message {
  min-height: 22px;
  margin: 0;
  color: #4c8051;
  font-size: 0.9rem;
  font-weight: 850;
}


.tool-stack-embedded { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.2fr); gap:36px; padding:36px 0; margin-top:32px; border-top:1px solid #dce4d8; scroll-margin-top:100px; }
.tool-stack-embedded h2 { font-size:30px; line-height:1.2; margin:12px 0 16px; }
.tool-stack-embedded p { color:#5f666e; line-height:1.55; }
.tool-stack-embedded .stack-note { color:#4c8051; font-size:14px; font-weight:800; }
.tool-stack-embedded .stack-form label { display:grid; gap:7px; font-size:12px; font-weight:800; color:#5f666e; text-transform:uppercase; }
.tool-stack-embedded .stack-form input[type=email] { width:100%; min-width:0; padding:12px; border:1px solid #d5d9df; border-radius:6px; font:inherit; font-size:15px; background:#fff; color:#000; }
.tool-stack-embedded .stack-form button { border:0; border-radius:6px; padding:12px 16px; font:inherit; font-size:15px; font-weight:800; color:#fff; cursor:pointer; }
.tool-stack-embedded .stack-form button.stack-topic { border:1px solid #dce4d8; color:#353c35; padding:9px 4px; font-size:12px; }
.tool-stack-embedded .stack-form button.stack-back { color:#4c8051; padding:5px 0; }
.tool-stack-embedded :is(button,input):focus-visible { outline:3px solid #f26522; outline-offset:3px; }
.tool-stack-embedded .stack-form .stack-consent { text-transform:none; font-weight:500; font-size:13px; }
.tool-stack-embedded .stack-counter { margin:0; }
.tool-stack-embedded .stack-form .form-message { color:#4c8051; margin:0; }
@media(max-width:900px) { .tool-stack-embedded { grid-template-columns:minmax(0,1fr); gap:24px; } }
@media(max-width:600px) { .tool-stack-embedded { scroll-margin-top:180px; } .tool-stack-embedded h2 { font-size:26px; } .tool-stack-embedded .stack-form { padding:18px; } .tool-stack-embedded .stack-form button.stack-topic { font-size:13px; padding:10px 5px; } }
