.em-tool {
  margin-block: 34px 48px;
  overflow: hidden;
  border: 1px solid #cfd8d0;
  border-radius: 24px;
  background: #fffefb;
  box-shadow: 0 20px 50px rgba(23,49,43,.08);
}

.em-tool__intro { padding: clamp(24px, 5vw, 44px) clamp(22px, 5vw, 48px) 20px; }
.em-tool__intro h2 { margin: 0 0 12px !important; font-size: clamp(1.8rem, 4vw, 2.7rem) !important; }
.em-tool__intro p:last-child { max-width: 680px; color: #66736e; }
.em-tool__eyebrow { margin: 0 0 8px !important; color: #bd6747; font-size: .76rem; font-weight: 850; letter-spacing: .12em; text-transform: uppercase; }

.em-tool__form { padding: 18px clamp(22px, 5vw, 48px) 34px; }
.em-tool__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.em-tool label { display: grid; gap: 8px; color: #17312b; font-size: .9rem; font-weight: 760; }
.em-tool input,
.em-tool select {
  width: 100%;
  min-height: 50px;
  box-sizing: border-box;
  padding: 10px 12px;
  border: 1px solid #b9c7bb;
  border-radius: 12px;
  color: #17312b;
  background: #fffefb;
  font: inherit;
  font-weight: 550;
}

.em-tool__button {
  margin-top: 22px;
  padding: 13px 20px;
  border: 0;
  border-radius: 999px;
  color: #fff;
  background: #33503c;
  font: inherit;
  font-weight: 800;
  cursor: pointer;
}
.em-tool__button:hover { background: #bd6747; }

.em-tool__result { padding: 30px clamp(22px, 5vw, 48px) 36px; border-top: 1px solid #cfd8d0; background: #edf1e9; }
.em-tool__result-label { margin: 0 0 4px !important; color: #496a52; font-size: .78rem; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.em-tool__result-total { margin: 0 0 20px !important; color: #17312b; font-size: clamp(2rem, 6vw, 3.5rem); font-weight: 820; line-height: 1.05 !important; letter-spacing: -.045em; }
.em-tool__breakdown { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.em-tool__breakdown div { display: flex; justify-content: space-between; gap: 15px; padding: 11px 13px; border-radius: 10px; background: rgba(255,255,255,.68); }
.em-tool__breakdown strong { color: #17312b; }
.em-tool__caveat { margin: 18px 0 0 !important; color: #66736e; font-size: .87rem; line-height: 1.55 !important; }
.em-tool__check-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.em-tool__check-grid label,
.em-tool__checklist label { display: flex; align-items: flex-start; gap: 10px; padding: 14px; border: 1px solid #d6dfd5; border-radius: 12px; background: #fffefb; color: #17312b; font-weight: 650; }
.em-tool__check-grid input,
.em-tool__checklist input { width: 18px; min-height: 18px; margin: 2px 0 0; accent-color: #33503c; }
.em-tool__checklist { display: grid; gap: 10px; }
.em-tool__checklist label span { display: grid; gap: 3px; color: #66736e; font-size: .92rem; font-weight: 500; line-height: 1.5; }
.em-tool__checklist strong { color: #17312b; }
.em-tool__print { margin-top: 18px; padding: 10px 15px; border: 1px solid #33503c; border-radius: 999px; color: #33503c; background: #fffefb; font: inherit; font-weight: 800; cursor: pointer; }
.em-tool__recommendation { max-width: 680px; color: #4a5e57; line-height: 1.65; }
.em-tool__recommendation ul { padding-left: 1.2rem; }

.em-newsletter {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(320px, .9fr);
  gap: clamp(28px, 5vw, 64px);
  align-items: center;
  margin: 42px auto;
  padding: clamp(30px, 6vw, 64px);
  border-radius: 28px;
  color: #fffefb;
  background: radial-gradient(circle at 90% 12%, rgba(189,103,71,.45), transparent 32%), #17312b;
  box-shadow: 0 24px 70px rgba(23,49,43,.18);
}
.em-newsletter .em-eyebrow { color: #e9b39d; }
.em-newsletter h2 { max-width: 650px; margin: 0 0 13px !important; color: #fffefb; font-size: clamp(2rem, 4vw, 3.45rem) !important; line-height: 1.03 !important; letter-spacing: -.045em; }
.em-newsletter__copy > p:last-child { max-width: 620px; margin-bottom: 0; color: rgba(255,254,251,.76); font-size: 1.04rem; line-height: 1.6; }
.em-newsletter__form-wrap { padding: clamp(20px, 4vw, 32px); border: 1px solid rgba(255,255,255,.22); border-radius: 20px; background: rgba(255,254,251,.1); backdrop-filter: blur(10px); }
.em-newsletter__fields { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px; }
.em-newsletter__fields label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; }
.em-newsletter__fields input { min-width: 0; min-height: 52px; padding: 0 15px; border: 1px solid rgba(255,255,255,.34); border-radius: 12px; color: #17312b; background: #fffefb; font: inherit; }
.em-newsletter__fields button { min-height: 52px; padding: 0 18px; border: 0; border-radius: 12px; color: #fffefb; background: #bd6747; font: inherit; font-weight: 850; cursor: pointer; transition: transform .18s ease, background .18s ease; }
.em-newsletter__fields button:hover { background: #d27855; transform: translateY(-1px); }
.em-newsletter__consent { display: flex; gap: 9px; align-items: flex-start; margin-top: 15px; color: rgba(255,254,251,.82); font-size: .83rem; line-height: 1.45; }
.em-newsletter__consent input { width: 16px; height: 16px; margin: 2px 0 0; accent-color: #bd6747; }
.em-newsletter__privacy { margin: 12px 0 0; color: rgba(255,254,251,.65); font-size: .78rem; line-height: 1.45; }
.em-newsletter__privacy a { color: #fffefb; text-underline-offset: 3px; }
.em-newsletter__notice { margin: 0 0 14px; padding: 11px 13px; border: 1px solid rgba(255,255,255,.28); border-radius: 10px; color: #fffefb; background: rgba(255,255,255,.12); font-size: .9rem; line-height: 1.45; }
.em-newsletter__honeypot { position: absolute !important; left: -10000px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }
.em-newsletter--compact { margin-block: 0; }

@media (max-width: 640px) {
  .em-tool__grid,
  .em-tool__breakdown,
  .em-tool__check-grid,
  .em-newsletter { grid-template-columns: 1fr; }
  .em-newsletter__fields { grid-template-columns: 1fr; }
}

@media print {
  body * { visibility: hidden; }
  .em-tool--planner, .em-tool--planner * { visibility: visible; }
  .em-tool--planner { position: absolute; inset: 0; width: 100%; border: 0; box-shadow: none; }
  .em-tool--planner .em-tool__form, .em-tool--planner .em-tool__print { display: none; }
}
