/* KTP Leads — gate modal + inline enquiry forms. Mobile-first; uses ktp-core tokens with fallbacks. */
.ktp-gate-open{overflow:hidden}
.ktp-gate{position:fixed;inset:0;z-index:2147483000;display:flex;align-items:flex-end;justify-content:center;background:rgba(20,20,20,.55);font-family:var(--ktp-font-body,Inter,system-ui,sans-serif);color:var(--ktp-ink,#1F1E1D)}
.ktp-gate__card{width:100%;max-width:480px;max-height:92vh;max-height:92dvh;overflow:auto;box-sizing:border-box;background:#fff;border-radius:20px 20px 0 0;padding:20px 20px calc(20px + env(safe-area-inset-bottom,0px));box-shadow:0 -12px 40px rgba(31,30,29,.2);overscroll-behavior:contain}
@media (min-width:600px){.ktp-gate{align-items:center;padding:16px}.ktp-gate__card{border-radius:20px;padding:24px;box-shadow:0 24px 60px rgba(31,30,29,.24)}}
.ktp-gate__body,.ktp-gate form,.ktp-gate__done{display:flex;flex-direction:column;gap:14px}
.ktp-gate__done{align-items:flex-start}
.ktp-gate__head{display:flex;justify-content:space-between;align-items:center;gap:12px}
.ktp-gate__kicker{font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:#8A5A12}
.ktp-gate__x{width:44px;height:44px;margin:-6px -6px 0 0;border:0;border-radius:10px;background:var(--ktp-sand,#F3EBE0);color:var(--ktp-ink,#1F1E1D);font-size:22px;line-height:1;cursor:pointer}
.ktp-gate__title{margin:0;font-family:var(--ktp-font-display,Fraunces,Georgia,serif);font-size:26px;line-height:32px;font-weight:600;color:var(--ktp-ink,#1F1E1D)}
.ktp-gate__title:focus{outline:none}
.ktp-gate__lead{margin:0;font-size:15px;line-height:23px;color:var(--ktp-muted,#4A4744)}
.ktp-gate__item,.ktp-lf__item{align-self:flex-start;padding:4px 11px;border-radius:999px;background:var(--ktp-sand,#F3EBE0);font-size:13px;font-weight:600}
.ktp-gate__small{margin:0;font-size:12px;color:var(--ktp-muted,#4A4744);text-align:center}
.ktp-gate__link{display:flex;align-items:center;justify-content:center;min-height:44px;border:0;background:transparent;color:var(--ktp-red,#7A2E1E);font:600 14px var(--ktp-font-body,Inter,system-ui,sans-serif);text-decoration:underline;text-underline-offset:3px;cursor:pointer;align-self:center}
.ktp-gate__tick{width:48px;height:48px;border-radius:999px;background:#E3ECE7;color:var(--ktp-pine,#2F4B3F);display:flex;align-items:center;justify-content:center;font-size:24px}
.ktp-gate__ref{padding:6px 14px;border-radius:10px;background:var(--ktp-sand,#F3EBE0);font-size:18px;letter-spacing:.04em}

/* fields (shared) */
.ktp-f,.ktp-lf__field{display:flex;flex-direction:column;gap:6px;min-width:0;margin:0;padding:0;border:0}
.ktp-f[hidden],.ktp-lf__field[hidden],.ktp-f__row[hidden]{display:none!important}
.ktp-f__row,.ktp-lf__row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px}
.ktp-f label,.ktp-lf__field>label,.ktp-lf__chips legend{font-size:14px;font-weight:600;color:var(--ktp-ink,#1F1E1D)}
.ktp-f__opt,.ktp-lf__opt{font-weight:400;color:var(--ktp-muted,#4A4744)}
.ktp-gate input:not([type=checkbox]),.ktp-gate select,.ktp-lf input:not([type=checkbox]),.ktp-lf select,.ktp-lf textarea{box-sizing:border-box;width:100%;min-height:48px;padding:0 14px;border-radius:10px;border:1.5px solid #CFC3B4;background:#fff;color:var(--ktp-ink,#1F1E1D);font:400 16px var(--ktp-font-body,Inter,system-ui,sans-serif)}
.ktp-lf textarea{padding:12px 14px;min-height:96px;resize:vertical}
.ktp-gate [aria-invalid=true],.ktp-lf [aria-invalid=true]{border-color:var(--ktp-red,#7A2E1E)!important}
.ktp-gate :focus-visible,.ktp-lf :focus-visible{outline:2px solid var(--ktp-gold,#C8912F);outline-offset:2px}
.ktp-f__err,.ktp-lf__err,.ktp-lf__formerr{font-size:13px;font-weight:500;color:var(--ktp-red,#7A2E1E);margin:0}
.ktp-lf__hint{font-size:12px;color:var(--ktp-muted,#4A4744)}
.ktp-f__consent,.ktp-lf__consent{display:flex!important;gap:10px;align-items:flex-start;font-size:13px!important;line-height:20px;font-weight:400!important;color:var(--ktp-muted,#4A4744)!important}
.ktp-f__consent input,.ktp-lf__consent input{width:20px;height:20px;margin:1px 0 0;flex-shrink:0;accent-color:var(--ktp-red,#7A2E1E)}
.ktp-f__consent a,.ktp-lf__consent a{color:var(--ktp-red,#7A2E1E)}
.ktp-hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}

/* buttons */
.ktp-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:52px;padding:0 20px;border:0;border-radius:var(--ktp-radius-btn,12px);font:700 16px var(--ktp-font-body,Inter,system-ui,sans-serif);text-decoration:none;cursor:pointer;box-sizing:border-box}
.ktp-btn[disabled]{opacity:.7;cursor:progress}
.ktp-btn--wa{align-self:stretch;background:var(--ktp-wa,#25D366);color:#0B3B21}
.ktp-btn--wa:hover{background:#1EBE5A;color:#0B3B21}
.ktp-btn--primary{background:var(--ktp-red,#7A2E1E);color:#fff}
.ktp-btn--primary:hover{background:var(--ktp-red-dark,#5E2216);color:#fff}

/* inline form */
.ktp-lf{box-sizing:border-box;width:100%;max-width:640px;padding:clamp(20px,3vw,32px);border-radius:var(--ktp-radius-card,16px);background:#fff;border:1px solid var(--ktp-border,#E6DDD1);box-shadow:var(--ktp-shadow-card,0 8px 24px rgba(31,30,29,.08));font-family:var(--ktp-font-body,Inter,system-ui,sans-serif);color:var(--ktp-ink,#1F1E1D)}
.ktp-lf__form,.ktp-lf__done{display:flex;flex-direction:column;gap:16px}
.ktp-lf__form[hidden],.ktp-lf__done[hidden],.ktp-lf__formerr[hidden],.ktp-f__err[hidden],.ktp-lf__err[hidden]{display:none}
.ktp-lf__done{align-items:flex-start}
.ktp-lf__done:focus{outline:none}
.ktp-lf__done p{margin:0;color:var(--ktp-muted,#4A4744)}
.ktp-lf__title{margin:0;font-family:var(--ktp-font-display,Fraunces,Georgia,serif);font-size:clamp(22px,2.4vw,28px);line-height:1.2;font-weight:600}
.ktp-lf__note{margin:0;font-size:13px;color:var(--ktp-muted,#4A4744)}
.ktp-lf .ktp-btn--primary{align-self:stretch}
@media (min-width:600px){.ktp-lf .ktp-btn--primary{align-self:flex-start}}
.ktp-lf__chips div{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px}
.ktp-lf__chip{position:relative;display:inline-flex}
.ktp-lf__chip input{position:absolute;opacity:0;width:1px;height:1px}
.ktp-lf__chip span{display:inline-flex;align-items:center;min-height:44px;padding:0 14px;border-radius:999px;border:1.5px solid var(--ktp-border,#E6DDD1);background:#fff;font-size:14px;font-weight:500;cursor:pointer}
.ktp-lf__chip input:checked+span{border-color:var(--ktp-red,#7A2E1E);background:#FBEFEC}
.ktp-lf__chip input:focus-visible+span{outline:2px solid var(--ktp-gold,#C8912F);outline-offset:2px}
@media (max-width:420px){.ktp-f__row,.ktp-lf__row{grid-template-columns:minmax(0,1fr)}}
