@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600;700&display=swap');

:root{
  --kz-green:#007749; --kz-orange:#F2673B; --kz-navy:#1F2C3A;
  --kz-offwhite:#FAFAFA; --kz-hairline:#CCCCCC;
}
*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
.kz{
  background:var(--kz-offwhite);
  font-family:'Poppins','Montserrat',Arial,Helvetica,sans-serif;
  color:var(--kz-navy);
  min-height:100vh;
  display:flex; align-items:flex-start; justify-content:center;
  padding:48px 20px;
  -webkit-font-smoothing:antialiased;
}
.kz .card{width:100%; max-width:600px; text-align:center; margin:0 auto;}
.kz .card.wide{max-width:720px;}
.kz .logo{width:96px; height:96px; margin:0 auto 28px; display:block;}
.kz h1{color:var(--kz-green); font-size:40px; line-height:1.1; font-weight:700; margin:0 0 18px; letter-spacing:-0.01em;}
.kz .rule{width:64px; height:4px; background:var(--kz-orange); border:0; margin:0 auto 24px; border-radius:2px;}
.kz .kicker{font-size:19px; font-weight:600; color:var(--kz-navy); margin:0 0 18px;}
.kz p{font-size:16px; line-height:1.6; margin:0 auto 16px; max-width:56ch;}
.kz .hint{font-size:13px; color:#6b7682; line-height:1.5; margin:2px 0 14px;}
.kz .hint.inline{display:block; margin-top:4px;}

.kz form{margin:28px auto 8px; max-width:640px; text-align:left;}
.kz .sec{border:1px solid var(--kz-hairline); border-radius:14px; padding:22px 22px 8px; margin:0 0 22px; background:#fff;}
.kz legend{font-size:13px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--kz-orange); padding:0 8px;}
.kz label{display:block; font-size:14px; font-weight:600; margin:0 0 6px; color:var(--kz-navy);}
.kz input, .kz textarea{width:100%; font:inherit; font-size:16px; padding:12px 14px; margin:0 0 16px;
  border:1px solid var(--kz-hairline); border-radius:10px; background:#fff; color:var(--kz-navy);
  transition:border-color .15s ease, box-shadow .15s ease;}
.kz textarea{resize:vertical;}
.kz input:focus, .kz textarea:focus{outline:0; border-color:var(--kz-green); box-shadow:0 0 0 3px rgba(0,119,73,.15);}
.kz input.age{background:#f3f5f4; color:#5b6470;}

.kz .grid2{display:grid; grid-template-columns:1fr 1fr; gap:0 16px;}
@media (max-width:520px){ .kz .grid2{grid-template-columns:1fr;} }

.kz .check{display:flex; gap:10px; align-items:flex-start; font-weight:500; font-size:14px; margin:2px 0 16px;}
.kz .check input{width:auto; margin:3px 0 0;}

.kz .radios{display:flex; flex-wrap:wrap; gap:8px 18px; margin:0 0 16px;}
.kz .radios.yn{gap:8px 28px;}
.kz .radio{display:flex; align-items:center; gap:7px; font-weight:500; font-size:15px; margin:0;}
.kz .radio input{width:auto; margin:0;}

.kz .block{border:1px dashed var(--kz-hairline); border-radius:12px; padding:16px 16px 4px; margin:0 0 16px; background:#fcfcfc;}
.kz .block-head{display:flex; justify-content:space-between; align-items:center; margin:0 0 12px;}
.kz .block-title{font-size:15px; font-weight:700; color:var(--kz-green);}
.kz .remove{font:inherit; font-size:13px; font-weight:600; color:var(--kz-orange); background:none; border:0; cursor:pointer; padding:2px 4px; width:auto;}
.kz .remove:hover{text-decoration:underline;}

.kz .add{font:inherit; font-size:15px; font-weight:600; cursor:pointer; padding:11px 18px; width:auto;
  border:1px solid var(--kz-green); border-radius:10px; background:#fff; color:var(--kz-green); margin:4px 0 6px;}
.kz .add:hover{background:rgba(0,119,73,.06);}

.kz button.submit{width:100%; font:inherit; font-size:17px; font-weight:600; cursor:pointer;
  padding:15px 20px; border:0; border-radius:10px; background:var(--kz-green); color:#fff; margin-top:6px;
  transition:background .15s ease, transform .05s ease;}
.kz button.submit:hover{background:#00603a;}
.kz button.submit:active{transform:translateY(1px);}
.kz button.submit:disabled{opacity:.6; cursor:default;}

.kz .msg{min-height:22px; font-size:14px; font-weight:600; margin:12px auto 0; text-align:center;}
.kz .msg.err{color:var(--kz-orange);}

.kz .signoff{margin-top:28px; font-weight:500; text-align:center;}
.kz .team{font-weight:600;}
.kz .tagline{margin-top:40px; color:var(--kz-orange); font-size:12px; font-weight:600; letter-spacing:0.12em; text-transform:uppercase; text-align:center;}
.kz .foot-rule{width:100%; max-width:600px; height:1px; background:var(--kz-hairline); border:0; margin:24px auto 16px;}
.kz .disclaimer{color:#6b7682; font-size:12px; font-style:italic; max-width:52ch; margin:0 auto; text-align:center;}

@media (max-width:480px){
  .kz h1{font-size:32px;}
  .kz .kicker{font-size:17px;}
}
