/* FORMS === */
.form{background:var(--chalk);border:1px solid var(--rule-2);padding:clamp(18px,3vw,36px)}
.fg{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem 1.2rem}
.fg .full{grid-column:1/-1}
@media (max-width:640px){.fg{grid-template-columns:minmax(0,1fr)}}
.f label.l,.f legend{display:block;font-size:.8rem;font-weight:700;letter-spacing:.05em;margin-bottom:.35rem;padding:0}
.opt{font-weight:400;color:var(--ink2)}
input[type=text],input[type=email],input[type=tel],input[type=date],input[type=search],select,textarea{width:100%;font:inherit;font-size:1rem;padding:.7rem .8rem;border:1px solid var(--rule-2);border-bottom-color:var(--graphite);background:var(--white);color:var(--graphite);border-radius:var(--r)}
textarea{min-height:104px;resize:vertical}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--sang);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary-color) 20%,transparent)}
[aria-invalid="true"]{border-color:var(--err)!important;background:color-mix(in srgb,var(--surface-color) 92%,var(--negative-color))}
fieldset{border:0;margin:0;padding:0;min-width:0}
.chk{display:flex;gap:.65rem;align-items:flex-start;font-size:.9rem;line-height:1.45;cursor:pointer}
.chk input{width:18px;height:18px;margin:.15rem 0 0;flex:none;accent-color:var(--sang)}
.chk.tcpa{background:var(--paper);padding:.8rem;border:1px solid var(--rule);font-size:.84rem}
.opts{display:flex;flex-wrap:wrap;gap:.5rem}
.opts label{display:flex;gap:.45rem;align-items:center;border:1px solid var(--rule-2);padding:.5rem .8rem;cursor:pointer;background:var(--white);font-size:.9rem}
.opts label:has(input:checked){border-color:var(--sang);box-shadow:inset 0 0 0 1px var(--sang)}
.opts input{accent-color:var(--sang);margin:0}
.err{color:var(--err);font-size:.82rem;margin:.35rem 0 0;font-weight:700}
.err:empty{display:none}
.consent{font-size:.8rem;color:var(--ink2);margin:1rem 0 0;line-height:1.5}
.ok{background:var(--chalk);border:1px solid var(--sang);padding:clamp(20px,3vw,36px)}
.ok:focus{outline:2px solid var(--sang);outline-offset:3px}
.ok .tick{width:48px;height:48px;margin-bottom:.8rem}
.ok .tick path{fill:none;stroke:var(--ok);stroke-width:2;stroke-dasharray:60;stroke-dashoffset:60;animation:tick .9s var(--ease) .2s forwards}
@keyframes tick{to{stroke-dashoffset:0}}
.cards{display:grid;gap:.6rem}
.rc{display:grid;grid-template-columns:auto 1fr auto;gap:.3rem 1rem;align-items:center;border:1px solid var(--rule-2);background:var(--white);padding:.85rem 1rem;cursor:pointer;transition:box-shadow .2s}
.rc:has(input:checked){box-shadow:inset 0 0 0 2px var(--sang);border-color:var(--sang)}
.rc input{accent-color:var(--sang);width:18px;height:18px;margin:0}
.rc b{font-family:var(--serif);font-size:1.15rem}
.rc .st{justify-self:start}
.rc small{grid-column:2/-1;color:var(--ink2)}
@media (max-width:480px){.rc{grid-template-columns:auto 1fr}.rc .st{grid-column:2}}
.wl{font-size:.88rem;border-left:2px solid var(--sang);padding:.4rem .8rem;margin:.6rem 0 0;background:color-mix(in srgb,var(--primary-color) 6%,transparent)}
.steps-ind{list-style:none;padding:0;margin:0 0 2rem;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));position:relative;counter-reset:s}
.steps-ind::before{content:"";position:absolute;left:12.5%;right:12.5%;top:17px;height:1px;background:var(--rule-2)}
.steps-ind::after{content:"";position:absolute;left:12.5%;top:17px;height:2px;width:75%;background:var(--sang);transform-origin:0 50%;transform:scaleX(var(--p,0));transition:transform .5s var(--ease)}
.steps-ind li{counter-increment:s;text-align:center;font-size:.8rem;color:var(--ink2);position:relative}
.steps-ind li::before{content:counter(s);display:flex;align-items:center;justify-content:center;width:34px;height:34px;margin:0 auto .4rem;border-radius:50%;border:1px solid var(--rule-2);background:var(--paper);font:600 1.05rem var(--serif);color:var(--graphite);position:relative}
.steps-ind li.done::before,.steps-ind li[aria-current="step"]::before{background:var(--graphite);color:var(--chalk);border-color:var(--graphite)}
.steps-ind li[aria-current="step"]{color:var(--graphite);font-weight:700}
.sum{position:sticky;top:96px;background:var(--chalk);border:1px solid var(--rule-2);padding:clamp(18px,2.4vw,28px)}
.sum .tot{display:flex;justify-content:space-between;border-top:1px solid var(--graphite);margin-top:.4rem;padding-top:.7rem;font:600 1.35rem var(--serif)}

.form--cf7 .wpcf7-form-control-wrap{display:block}
.form--cf7 .wpcf7-list-item{margin:0}
.form--cf7 .opts .wpcf7-form-control{display:flex;flex-wrap:wrap;gap:.5rem}
.form--cf7 .nl .wpcf7-form-control-wrap{flex:1;min-width:0}
.form--cf7 .wpcf7-submit{cursor:pointer}
