.fv-section { padding: clamp(2rem,5vw,5rem) 0; background: linear-gradient(135deg,#edf7f4,#d8ebe7); }
.fv-layout { display:grid; grid-template-columns: .85fr 1.15fr; gap:clamp(2rem,5vw,5rem); align-items:start; }
.fv-aside { position:sticky; top:8rem; }
.fv-aside h1 { font-family:Georgia,serif; font-size:clamp(2.7rem,4vw,4.4rem); line-height:1.08; margin:.7rem 0 1.2rem; }
.fv-aside h1 em { color:#b95c00; font-style:normal; }
.fv-aside > img { width:100%; height:auto; aspect-ratio:1.65; object-fit:cover; border-radius:1.5rem; margin:1.5rem 0; }
.fv-aside > a { display:inline-block; margin-top:1rem; }
.fv-location { padding:1.3rem; border:1px solid #bad5cf; border-radius:1rem; }
.fv-location p { margin:.4rem 0 0; font-size:.9rem; }
.fv-card { padding:clamp(1.3rem,3vw,2.5rem); background:#fff; border:1px solid #d2e4e1; border-radius:2rem; box-shadow:0 20px 60px #10484c12; }
.fv-card h2 { font-size:clamp(1.8rem,3vw,2.5rem); margin:1.2rem 0; }
.fv-card h2 span { color:#b95c00; }
.fv-card p { margin-bottom:1.2rem; }
.fv-badge { display:inline-block; padding:.4rem .8rem; border-radius:99px; background:#e4f2ee; color:#10484c; font-weight:700; font-size:.8rem; }
.fv-highlights { padding-left:1.2rem; margin:1.5rem 0; }
.fv-highlights li { margin:.6rem 0; }
.fv-note { font-size:.83rem; color:#52686b; margin-top:1rem; }
.fv-step-meta { display:flex; justify-content:space-between; gap:1rem; font-size:.85rem; }
.fv-card progress { width:100%; height:8px; appearance:none; border:0; border-radius:99px; background:#e6eeec; margin:1rem 0 2rem; }
.fv-card progress::-webkit-progress-bar { background:#e6eeec; border-radius:99px; }
.fv-card progress::-webkit-progress-value { background:#ff8816; border-radius:99px; transition:width .2s; }
.fv-card progress::-moz-progress-bar { background:#ff8816; border-radius:99px; }
.fv-step { padding:0; margin:0; border:0; min-width:0; }
.fv-step legend { font-family:var(--font-heading); font-size:1.5rem; color:#10484c; font-weight:700; line-height:1.3; margin-bottom:.8rem; }
.fv-step h3 { margin:1.5rem 0 .75rem; font-size:1rem; }
.fv-option { display:flex; align-items:center; gap:.9rem; padding:1.1rem; border:1px solid #cddfda; border-radius:1rem; margin-bottom:.8rem; cursor:pointer; color:#10484c; font-weight:600; transition:background .2s,border-color .2s; }
.fv-option:hover { background:#f3f8f6; border-color:#15585b; }
.fv-option:has(input:checked) { background:#e8f4ef; border-color:#15585b; box-shadow:inset 0 0 0 1px #15585b; }
.fv-option input, .fv-consent input { width:20px; height:20px; accent-color:#15585b; flex:none; }
.fv-options-grid, .fv-fields { display:grid; grid-template-columns:1fr 1fr; gap:.8rem; }
.fv-options-grid .fv-option { margin:0; }
.fv-field, .fv-fields > label { display:block; margin:1.2rem 0; font-weight:600; color:#10484c; }
.fv-fields > label { min-width:0; }
.fv-field input, .fv-fields input, .fv-field select { display:block; width:100%; padding:1rem; margin-top:.5rem; border:1px solid #b9d1ca; border-radius:.8rem; font:inherit; background:#fff; color:#183c40; }
.fv-privacy { background:#f1f7f5; border-radius:1rem; padding:1rem; font-size:.83rem; margin:1.5rem 0; }
.fv-privacy h3 { margin:0 0 .5rem; }
.fv-privacy p { margin:0; }
.fv-consent { display:flex; align-items:flex-start; gap:.8rem; font-size:.9rem; }
.fv-actions { display:flex; gap:1rem; margin-top:2rem; }
.fv-actions #fv-next { flex:1; }
.fv-card button:disabled { opacity:.45; cursor:not-allowed; }
#fv-error, #fv-returning, #fv-acc-ineligible { padding:1rem; background:#fff1e7; color:#7e3900; border-radius:.8rem; margin-top:1rem; }
.fv-honeypot { position:absolute; left:-10000px; }
.fv-card [hidden] { display:none !important; }
.fv-card input:focus-visible, .fv-card select:focus-visible { outline:3px solid #cc6709; outline-offset:3px; }
@media(max-width:768px) { .fv-layout { grid-template-columns:1fr; } .fv-aside { position:static; } .fv-aside > img { display:none; } .fv-card { border-radius:1.3rem; } }
@media(max-width:420px) { .fv-fields { grid-template-columns:1fr; gap:0; } .fv-actions { gap:.6rem; } .fv-actions .btn { padding:.8rem 1rem; } }
@media(prefers-reduced-motion:reduce) { .fv-option, .fv-card progress { transition:none; } }
