:root {
  --cem-green: #16794f;
  --cem-green-dark: #0f613e;
  --cem-ink: #13231b;
  --cem-muted: #64736c;
  --cem-line: #dfe8e3;
  --cem-soft: #f6faf7;
  --cem-white: #ffffff;
}

.cem-checkout, .cem-checkout * { box-sizing: border-box; }
.cem-checkout { font-family: inherit; color: var(--cem-ink); width: 100%; }
.cem-checkout-card {
  width: min(680px, 100%);
  margin: 0 auto;
  background: var(--cem-white);
  border: 1px solid var(--cem-line);
  border-radius: 28px;
  padding: clamp(34px, 6vw, 64px) clamp(24px, 5vw, 56px);
  text-align: center;
  box-shadow: 0 20px 60px rgba(16, 45, 31, .08);
}
.cem-checkout-icon,
.cem-checkout-success-icon {
  width: 66px; height: 66px; border-radius: 50%;
  display: grid; place-items: center;
  margin: 0 auto 20px;
  background: #eaf6ef;
  color: var(--cem-green);
  font-size: 30px; font-weight: 800;
}
.cem-checkout-kicker { letter-spacing: .14em; font-size: 12px; font-weight: 800; color: var(--cem-green); margin-bottom: 10px; }
.cem-checkout h1 { margin: 0; font-size: clamp(34px, 6vw, 54px); line-height: 1.02; letter-spacing: -.035em; color: var(--cem-ink); }
.cem-checkout h2 { margin: 6px 0 12px; font-size: clamp(28px, 4vw, 40px); line-height: 1.05; letter-spacing: -.025em; }
.cem-checkout-thanks { margin: 18px 0 8px; font-size: 19px; }
.cem-checkout-copy { margin: 0 auto 28px; max-width: 520px; color: var(--cem-muted); font-size: 16px; line-height: 1.6; }
.cem-checkout-brand { margin-top: 18px; color: var(--cem-muted); font-size: 13px; }

.cem-checkout-open,
.cem-checkout-next,
.cem-checkout-submit,
.cem-checkout-done {
  width: 100%; min-height: 62px; border: 0; border-radius: 16px;
  background: var(--cem-green); color: #fff; font: inherit; font-size: 18px; font-weight: 800;
  cursor: pointer; box-shadow: 0 12px 28px rgba(22, 121, 79, .20);
  transition: transform .15s ease, background .15s ease, box-shadow .15s ease;
}
.cem-checkout-open { max-width: 420px; }
.cem-checkout-open:hover, .cem-checkout-next:hover, .cem-checkout-submit:hover, .cem-checkout-done:hover { background: var(--cem-green-dark); transform: translateY(-1px); box-shadow: 0 16px 34px rgba(22, 121, 79, .24); }
.cem-checkout-open:focus-visible, .cem-checkout-next:focus-visible, .cem-checkout-submit:focus-visible, .cem-checkout-done:focus-visible, .cem-checkout-close:focus-visible, .cem-checkout input:focus-visible, .cem-checkout textarea:focus-visible { outline: 3px solid rgba(22, 121, 79, .25); outline-offset: 3px; }

body.cem-checkout-lock { overflow: hidden; }
.cem-checkout-modal { position: fixed; inset: 0; z-index: 999999; }
.cem-checkout-backdrop { position: absolute; inset: 0; background: rgba(5, 24, 15, .58); backdrop-filter: blur(8px); }
.cem-checkout-dialog {
  position: relative; z-index: 2;
  width: min(620px, calc(100% - 28px));
  max-height: calc(100vh - 36px); overflow-y: auto;
  margin: 18px auto; background: #fff;
  border-radius: 28px; padding: clamp(28px, 5vw, 50px);
  box-shadow: 0 32px 100px rgba(0,0,0,.22);
  opacity: 0; transform: translateY(16px) scale(.985);
  transition: opacity .18s ease, transform .18s ease;
}
.cem-checkout-dialog.is-open { opacity: 1; transform: translateY(0) scale(1); }
.cem-checkout-close {
  position: absolute; top: 16px; right: 16px; width: 42px; height: 42px; border: 0; border-radius: 50%;
  background: var(--cem-soft); color: var(--cem-ink); font-size: 28px; line-height: 1; cursor: pointer;
}
.cem-checkout-mini-icon { width: 48px; height: 48px; border-radius: 14px; display:grid; place-items:center; background:#eaf6ef; color:var(--cem-green); font-weight:900; font-size:22px; margin-bottom:18px; }
.cem-checkout-dialog p { color: var(--cem-muted); line-height: 1.65; }
.cem-checkout-list { list-style: none; padding: 0; margin: 24px 0 28px; }
.cem-checkout-list li { position: relative; padding: 13px 12px 13px 42px; border-bottom: 1px solid var(--cem-line); line-height: 1.45; }
.cem-checkout-list li:before { content: '✓'; position: absolute; left: 10px; top: 12px; width: 22px; height: 22px; border-radius: 50%; display:grid; place-items:center; background:#eaf6ef; color:var(--cem-green); font-weight:900; font-size:12px; }
.cem-checkout-form label:not(.cem-checkbox-row) { display: block; font-size: 14px; font-weight: 800; margin: 22px 0 8px; }
.cem-checkout-form input[type="text"], .cem-checkout-form textarea {
  width: 100%; border: 1px solid var(--cem-line); background: #fff; border-radius: 14px; padding: 15px 16px; font: inherit; color: var(--cem-ink);
}
.cem-checkout-form textarea { resize: vertical; margin: 14px 0 18px; }
.cem-checkbox-row { display:flex; gap:12px; align-items:flex-start; margin:16px 0 4px; padding:14px 16px; background:var(--cem-soft); border-radius:14px; font-weight:600; line-height:1.45; }
.cem-checkbox-row input { margin-top: 4px; accent-color: var(--cem-green); }
.cem-checkout-status { min-height: 22px; margin-top: 12px; color: #a23b3b; text-align:center; font-size:14px; }
.cem-checkout-submit[disabled] { opacity: .65; cursor: wait; transform:none; }
.cem-honeypot { position:absolute !important; left:-9999px !important; opacity:0 !important; pointer-events:none !important; }
.cem-step-success { text-align:center; padding-top: 12px; }
.cem-safe-travels { margin-bottom: 26px; }

@media (max-width: 520px) {
  .cem-checkout-card { border-radius: 22px; }
  .cem-checkout-dialog { width: calc(100% - 18px); margin: 9px auto; max-height: calc(100vh - 18px); border-radius: 22px; padding: 30px 22px 24px; }
  .cem-checkout h1 { font-size: 38px; }
  .cem-checkout-list li { padding-left: 38px; }
}
