.vf-page{min-height:100vh;display:flex;flex-direction:column;background:var(--cream)}.vf-topbar{display:flex;align-items:center;gap:1rem;justify-content:space-between;max-width:680px;width:100%;margin:0 auto;padding:1rem 1.25rem}.vf-brand{display:inline-flex;align-items:center;gap:.5rem;font-family:var(--font-heading),serif;font-weight:600;font-size:1.05rem;color:var(--ink);text-decoration:none}.vf-brand svg{width:28px;height:28px;flex:none}.vf-langs{display:inline-flex;gap:.3rem}.vf-lang{font-size:.82rem;font-weight:800;text-decoration:none;color:var(--ink-soft);padding:.3rem .6rem;border-radius:999px;border:2px solid transparent}.vf-lang:hover{color:var(--ink)}.vf-lang.is-current{color:var(--ink);border-color:var(--ink)}.vf-main{flex:1 1;width:100%;max-width:680px;margin:0 auto;padding:1rem 1.25rem 3.5rem}.vf-intro{margin-bottom:1.4rem}.vf-intro-heading{font-family:var(--font-heading),serif;font-size:clamp(1.9rem,5vw,2.5rem);color:var(--ink);margin:0 0 .5rem}.vf-intro-text{color:var(--ink-soft);margin:0}.vf-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:clamp(1.3rem,4vw,2rem)}.vf-progress{display:flex;align-items:center;gap:.8rem;margin-bottom:1.4rem}.vf-progress-track{flex:1 1;height:8px;background:var(--cream-deep);border-radius:999px;overflow:hidden}.vf-progress-bar{height:100%;background:var(--coral);border-radius:999px;transition:width .35s var(--ease-out)}.vf-progress-label{font-size:.82rem;font-weight:800;color:var(--ink-soft);white-space:nowrap}.vf-step-title{font-family:var(--font-heading),serif;font-size:1.5rem;color:var(--ink);margin:0 0 .3rem}.vf-step-subtitle{color:var(--ink-soft);margin:0 0 1.4rem}.vf-banner{background:var(--pink-tint);border:1px solid var(--coral);color:var(--coral-deep);border-radius:var(--radius-sm);padding:.7rem .9rem;margin:0 0 1.2rem;font-size:.92rem;font-weight:700}.vf-banner-soft{background:#fbeccb;border-color:var(--yellow-deep);color:var(--ink)}.vf-fields{gap:1.3rem}.vf-field,.vf-fields{display:flex;flex-direction:column}.vf-label{font-weight:800;color:var(--ink);margin-bottom:.35rem}.vf-optional{font-weight:600;color:var(--ink-soft);font-size:.85rem}.vf-help{color:var(--ink-soft);font-size:.88rem;margin:0 0 .5rem}.vf-input,.vf-textarea{font-family:var(--font-body),sans-serif;font-size:1rem;color:var(--ink);background:var(--cream);border:2px solid var(--border);border-radius:var(--radius-sm);padding:.7rem .85rem;width:100%;transition:border-color .16s ease,background .16s ease}.vf-textarea{resize:vertical;line-height:1.6}.vf-input:focus,.vf-textarea:focus{outline:none;border-color:var(--coral);background:var(--surface)}.vf-input-error{border-color:var(--coral-deep);background:var(--pink-tint)}.vf-error{color:var(--coral-deep);font-size:.85rem;font-weight:700;margin:.4rem 0 0}.vf-options{display:flex;flex-direction:column;gap:.55rem}.vf-option{display:flex;align-items:flex-start;gap:.65rem;border:2px solid var(--border);border-radius:var(--radius-sm);padding:.7rem .85rem;cursor:pointer;background:var(--cream);transition:border-color .14s ease,background .14s ease,transform .14s ease}.vf-option.is-selected,.vf-option:hover{border-color:var(--coral)}.vf-option.is-selected{background:var(--pink-tint)}.vf-option input{position:absolute;opacity:0;width:1px;height:1px}.vf-option>span{position:relative;padding-left:1.9rem;line-height:1.5;color:var(--ink)}.vf-option>span:before{content:"";position:absolute;left:0;top:.05rem;width:1.25rem;height:1.25rem;border:2px solid var(--ink-soft);background:var(--surface)}.vf-option input[type=radio]+span:before{border-radius:50%}.vf-option input[type=checkbox]+span:before{border-radius:6px}.vf-option.is-selected>span:before{border-color:var(--coral-deep);background:var(--coral-deep)}.vf-option.is-selected>span:after{content:"";position:absolute;left:.27rem;top:.3rem;width:.72rem;height:.42rem;border-left:2.5px solid var(--surface);border-bottom:2.5px solid var(--surface);transform:rotate(-45deg)}.vf-option:focus-within{border-color:var(--coral);box-shadow:0 0 0 3px rgba(230,136,106,.3)}.vf-check{display:flex;align-items:flex-start;gap:.65rem;border:2px solid var(--border);border-radius:var(--radius-sm);padding:.8rem .9rem;cursor:pointer;background:var(--cream)}.vf-check:hover{border-color:var(--coral)}.vf-check input{width:1.3rem;height:1.3rem;flex:none;margin-top:.1rem;accent-color:var(--coral-deep);cursor:pointer}.vf-check span{color:var(--ink);line-height:1.5}.vf-check-error{border-color:var(--coral-deep);background:var(--pink-tint)}.vf-note{background:var(--blue-tint);border-radius:var(--radius-sm);padding:.7rem .9rem;margin:.7rem 0 0;font-size:.9rem;color:var(--ink)}.vf-nav{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-top:1.8rem}.vf-nav .btn{min-width:9rem;text-align:center}.vf-nav .btn:disabled{opacity:.6;cursor:progress}.vf-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}.vf-confirm{text-align:center}.vf-confirm-badge{width:64px;height:64px;margin:0 auto 1rem;border-radius:50%;background:var(--green-tint);color:var(--green-deep);display:flex;align-items:center;justify-content:center}.vf-confirm-badge svg{width:32px;height:32px}.vf-confirm-heading{font-family:var(--font-heading),serif;font-size:1.7rem;color:var(--ink);margin:0 0 .4rem}.vf-confirm-intro{color:var(--ink-soft);margin:0 0 1.6rem}.vf-confirm-steps{list-style:none;margin:0 0 1.8rem;padding:0;text-align:left;display:flex;flex-direction:column;gap:.9rem}.vf-confirm-step{display:flex;gap:.8rem;align-items:flex-start}.vf-confirm-num{flex:none;width:30px;height:30px;border-radius:50%;background:var(--coral);color:var(--surface);font-weight:800;display:flex;align-items:center;justify-content:center}.vf-confirm-body{display:flex;flex-direction:column;gap:.1rem}.vf-confirm-body strong{color:var(--ink)}.vf-confirm-body span{color:var(--ink-soft);font-size:.93rem}.vf-footer{text-align:center;padding:1.5rem 1.25rem 2.5rem;color:var(--ink-soft);font-size:.85rem}.vf-footer a{color:var(--coral-deep)}@media (max-width:520px){.vf-nav{flex-direction:column-reverse}.vf-nav .btn,.vf-nav span{width:100%}}