/* Contact + assessment forms. Uses the site's existing palette/typography. */
#contact-form { scroll-margin-top: 90px; margin-top: clamp(40px, 6vw, 72px); }
#contact-form.kp-panel { margin-top: clamp(40px, 6vw, 72px); }
.kp-panel { text-align: left; margin: 0; max-width: 760px; box-sizing: border-box; border: 1px solid #2A2D2C; background: #101111; border-radius: 12px; padding: clamp(20px, 4vw, 36px); }
.kp-panel h3, .kp-modal h3 { margin: 0; font-family: 'Instrument Serif', Georgia, serif; font-size: clamp(30px, 3.6vw, 44px); line-height: 1.08; letter-spacing: -0.015em; font-weight: 400; color: #ECE9E3; }
.kp-lead { margin: 12px 0 0; font-size: 15.5px; line-height: 1.6; color: #A6A29B; }
.kp-form { margin-top: 26px; display: grid; gap: 18px; }
.kp-row { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.kp-field { display: grid; gap: 7px; min-width: 0; border: 0; padding: 0; margin: 0; }
.kp-field > label, .kp-field > legend { font-size: 13.5px; font-weight: 500; color: #ECE9E3; padding: 0; }
.kp-req { color: #6FB7DA; margin-left: 3px; }
.kp-opt { color: #7E7C76; font-weight: 400; margin-left: 6px; font-size: 12.5px; }
.kp-form input[type=text], .kp-form input[type=email], .kp-form select, .kp-form textarea {
  width: 100%; box-sizing: border-box; font: inherit; font-size: 16px; color: #ECE9E3; background: #0D0E0F;
  border: 1px solid #2A2D2C; border-radius: 8px; padding: 12px 14px; min-height: 46px; transition: border-color .15s, box-shadow .15s; }
.kp-form textarea { resize: vertical; min-height: 120px; line-height: 1.5; }
.kp-form select { appearance: none; -webkit-appearance: none; padding-right: 40px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' fill='none' stroke='%239BA8B5' stroke-width='1.6'%3E%3Cpath d='M1 1.5l5 5 5-5'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 14px center; }
.kp-form select option { background: #101111; color: #ECE9E3; }
.kp-form ::placeholder { color: #7E7C76; }
.kp-form input:hover, .kp-form select:hover, .kp-form textarea:hover { border-color: #454947; }
.kp-form input:focus-visible, .kp-form select:focus-visible, .kp-form textarea:focus-visible { outline: 2px solid #6FB7DA; outline-offset: 1px; border-color: #6FB7DA; }
.kp-form [aria-invalid=true] { border-color: #FF7A7A; }
.kp-err { font-size: 13px; color: #FF9C9C; min-height: 0; }
.kp-err:empty { display: none; }
.kp-checks { display: flex; flex-wrap: wrap; gap: 8px; }
.kp-check { display: inline-flex; align-items: center; gap: 8px; padding: 9px 13px; min-height: 40px; box-sizing: border-box; border: 1px solid #2A2D2C; border-radius: 8px; font-size: 14px; color: #ECE9E3; cursor: pointer; background: #0D0E0F; }
.kp-check:hover { border-color: #454947; }
.kp-check input { accent-color: #6FB7DA; width: 16px; height: 16px; margin: 0; }
.kp-check:has(input:checked) { border-color: rgba(111,183,218,0.45); background: rgba(111,183,218,0.1); }
.kp-check:has(input:focus-visible) { outline: 2px solid #6FB7DA; outline-offset: 2px; }
.kp-hp { position: absolute !important; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.kp-note { margin: 0; font-size: 13.5px; line-height: 1.55; color: #A6A29B; }
.kp-actions { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; }
.kp-btn { font: inherit; cursor: pointer; padding: 15px 26px; min-height: 48px; background: rgba(111,183,218,0.1); border: 1px solid rgba(111,183,218,0.45); color: #CFEAF7; font-weight: 600; font-size: 15.5px; border-radius: 999px; transition: background .15s, border-color .15s, box-shadow .15s; }
.kp-btn:hover:not(:disabled) { background: rgba(111,183,218,0.18); border-color: #6FB7DA; box-shadow: 0 0 0 4px rgba(111,183,218,0.08); }
.kp-btn:focus-visible { outline: 2px solid #6FB7DA; outline-offset: 3px; }
.kp-btn:disabled { opacity: .6; cursor: progress; }
.kp-alert { border: 1px solid rgba(255,122,122,0.5); background: rgba(255,122,122,0.08); color: #FFC9C9; border-radius: 8px; padding: 12px 14px; font-size: 14px; line-height: 1.55; }
.kp-alert a { color: #FFC9C9; text-decoration: underline; }
.kp-email { margin: 20px 0 0; font-size: 14px; color: #A6A29B; }
.kp-email a { font-family: 'JetBrains Mono', monospace; font-size: 13.5px; }
.kp-success { margin-top: 0; }
.kp-success h3:focus { outline: none; }
.kp-modal { border: 1px solid #2A2D2C; background: #101111; color: #ECE9E3; border-radius: 12px; padding: 0; width: min(680px, calc(100vw - 24px)); max-height: calc(100dvh - 24px); overflow: auto; box-sizing: border-box; font-family: Inter, system-ui, sans-serif; text-align: left; }
.kp-modal::backdrop { background: rgba(4,7,10,0.72); backdrop-filter: blur(3px); }
.kp-modal-in { padding: clamp(20px, 4vw, 34px); position: relative; }
.kp-close { position: absolute; top: 12px; right: 12px; width: 40px; height: 40px; border-radius: 8px; border: 1px solid transparent; background: transparent; color: #A6A29B; font-size: 22px; line-height: 1; cursor: pointer; }
.kp-close:hover { color: #ECE9E3; border-color: #2A2D2C; }
.kp-close:focus-visible { outline: 2px solid #6FB7DA; }
.kp-modal h3 { padding-right: 36px; }
@media (max-width: 600px) {
  .kp-row { grid-template-columns: 1fr; }
  .kp-btn { width: 100%; }
  
  .kp-modal { width: calc(100vw - 16px); max-height: calc(100dvh - 16px); }
}
