.avn-quote-form { --avn-ink:#102b3d; --avn-muted:#64748b; --avn-line:#d6e1e8; --avn-surface:#f6fafb; --avn-brand:#087880; --avn-brand-dark:#045e67; background:transparent; border:0; border-radius:0; color:var(--avn-ink); font:400 16px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; margin:0; max-width:850px; overflow:hidden; padding:10px clamp(18px,3vw,30px); position:relative; }
.avn-quote-form * { box-sizing:border-box; }
.avn-progress { background:rgba(255,255,255,.72); border:1px solid rgba(215,228,232,.9); border-radius:14px; margin:0 0 20px; overflow:hidden; padding:13px 16px; }
.avn-progress ol { list-style:none; display:flex; margin:0; padding:0; }
.avn-progress li { color:#8b98a8; display:flex; align-items:center; flex:1; font-size:12px; font-weight:700; gap:7px; letter-spacing:.01em; min-width:0; position:relative; }
.avn-progress li:not(:last-child)::after { background:#dce4eb; content:""; height:2px; flex:1; margin:0 8px; }
.avn-progress li span { background:#e3eaf0; border-radius:50%; color:#64748b; display:grid; flex:0 0 28px; height:28px; place-items:center; width:28px; }
.avn-progress li b { white-space:nowrap; }
.avn-progress li.is-active,.avn-progress li.is-complete { color:var(--avn-brand); }
.avn-progress li.is-active span { background:#000; color:#fff; box-shadow:0 0 0 4px rgba(0,0,0,.1); }
.avn-progress li.is-complete span { background:#bfe2d8; color:var(--avn-brand-dark); }
.avn-progress li.is-complete:not(:last-child)::after { background:#98cfc4; }
.avn-panel { background:rgba(255,255,255,.95); border:1px solid rgba(213,226,232,.95); border-radius:19px; box-shadow:0 18px 42px rgba(21,53,68,.11); overflow:hidden; padding:10px clamp(22px,5vw,46px); position:relative; }
.avn-panel::before { background:linear-gradient(90deg,#c01616,#f2ebe6,#c01616); content:""; height:4px; left:0; position:absolute; right:0; top:0; }
.avn-kicker { color:#c01616; font-size:13px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.avn-kicker span { color:var(--avn-muted); float:right; font-weight:600; letter-spacing:0; text-transform:none; }
.avn-panel h2 { font-size:clamp(18px,2vw,24px); letter-spacing:-.04em; line-height:1.16; margin:10px 0 9px; }
.avn-panel > p { color:var(--avn-muted); margin:0 0 26px; }
.avn-service-grid { display:grid; gap:12px; grid-template-columns:repeat(2,minmax(0,1fr)); }
.avn-service-grid--categories { gap:14px; grid-template-columns:1fr; }
.avn-service-card { align-items:center; background:linear-gradient(145deg,#fff,#f1f8f8); border:1px solid var(--avn-line); border-radius:13px; color:var(--avn-ink); cursor:pointer; display:flex; font:700 16px/1.3 inherit; isolation:isolate; justify-content:space-between; min-height:76px; overflow:hidden; padding:16px 18px; position:relative; text-align:left; transition:border-color .4s ease,color .4s ease; }
.avn-service-card--category { border-color:#c7d8dc; border-radius:12px; font-size:20px; min-height:64px; padding:18px 20px; }
.avn-service-card:hover,.avn-service-card:focus-visible { background:#fff; border-color:var(--avn-brand); box-shadow:0 11px 24px rgba(7,110,117,.14),0 0 0 3px rgba(7,110,117,.09); outline:0; transform:translateY(-3px); }
.avn-service-card i { color:var(--avn-brand); font-size:22px; font-style:normal; padding-left:10px; }
.avn-service-card::before { background:#c01616; content:""; height:100%; left:0; position:absolute; top:0; transform:scaleX(0); transform-origin:left; transition:transform .4s ease-in-out; width:100%; z-index:0; }
.avn-service-card > * { position:relative; z-index:1; }
.avn-service-card:hover::before,.avn-service-card:focus-visible::before { transform:scaleX(1); }
.avn-service-card:hover,.avn-service-card:focus-visible { background:#fff; border-color:#fff; box-shadow:none; color:#fff; outline:0; transform:none; }
.avn-service-card:hover i,.avn-service-card:focus-visible i { color:#fff; }
.avn-selection { display:flex; flex-wrap:wrap; gap:7px; margin:4px 0 22px!important; }
.avn-selection span,.avn-selection strong { background:#e9f5f2; border-radius:999px; color:#176b67; font-size:12px; font-weight:700; padding:5px 9px; }
.avn-selection span::after { content:"›"; margin-left:7px; }
.avn-selection strong { background:#e6f2f1; color:#176b67; }
.avn-options { display:grid; gap:10px; grid-template-columns:repeat(2,minmax(0,1fr)); margin:22px 0 28px; }
.avn-option { background:#fff; border-radius:11px; cursor:pointer; display:block; isolation:isolate; overflow:hidden; position:relative; }
.avn-option input { height:1px; opacity:0; position:absolute; width:1px; }
.avn-option span { align-items:center; background:#fff; border:1px solid var(--avn-line); border-radius:11px; display:flex; font-weight:650; min-height:58px; padding:12px 15px; position:relative; transition:background-color .22s ease,border-color .22s ease,box-shadow .22s ease,color .22s ease,transform .22s cubic-bezier(.2,.8,.2,1); z-index:1; }
.avn-option span::before { border:2px solid #a4b2c0; border-radius:50%; content:""; flex:0 0 17px; height:17px; margin-right:10px; width:17px; }
.avn-option:hover span,.avn-option:focus-within span { background:#f6fbfb; border-color:#86b7b7; box-shadow:0 9px 20px rgba(7,110,117,.11),0 0 0 3px rgba(7,110,117,.07); transform:translateY(-3px); }
.avn-option.is-selected span { background:#edf9f6; border-color:var(--avn-brand); color:#075b60; }
.avn-option.is-selected:hover span,.avn-option.is-selected:focus-within span { background:#e5f5f1; border-color:var(--avn-brand-dark); box-shadow:0 10px 22px rgba(7,110,117,.15),0 0 0 3px rgba(7,110,117,.1); }
.avn-option.is-selected span::before { background:var(--avn-brand); border:5px solid var(--avn-brand); box-shadow:inset 0 0 0 2px #edf9f6; }
.avn-option::after { background:#c01616; content:""; height:100%; left:0; position:absolute; top:0; transform:scaleX(0); transform-origin:left; transition:transform .4s ease-in-out; width:100%; z-index:0; }
.avn-option:hover::after,.avn-option:focus-within::after { transform:scaleX(1); }
.avn-option:hover span,.avn-option:focus-within span,.avn-option.is-selected:hover span,.avn-option.is-selected:focus-within span { background:transparent; border-color:#fff; box-shadow:none; color:#fff; transform:none; }
.avn-option:hover span::before,.avn-option:focus-within span::before { border-color:#fff; }
.avn-option.is-selected:hover span::before,.avn-option.is-selected:focus-within span::before { background:#fff; border-color:#fff; box-shadow:inset 0 0 0 2px #c01616; }
.avn-options--multiple .avn-option span::before { border-radius:5px; }
.avn-optional { color:#7b8794!important; font-size:14px; margin-bottom:0!important; }
.avn-input,.avn-textarea { background:#fff; border:1px solid #bfcbd6; border-radius:11px; color:var(--avn-ink); font:inherit; margin:20px 0 28px; outline:0; padding:14px 15px; width:100%; }
.avn-input:focus,.avn-textarea:focus { border-color:var(--avn-brand); box-shadow:0 0 0 3px rgba(7,110,117,.13); }
.avn-textarea { resize:vertical; }
.avn-actions { align-items:center; display:flex; flex-wrap:wrap; gap:10px; justify-content:flex-end; margin-top:8px; padding:5px 0; }
.avn-button { background:linear-gradient(135deg,#0b8990,#05646c); border:1px solid #056b72; border-radius:10px; box-shadow:0 7px 13px rgba(4,94,103,.19); color:#fff; cursor:pointer; font:700 15px/1 inherit; min-height:48px; padding:0 20px; transition:.15s ease; }
.avn-button:hover,.avn-button:focus-visible { background:linear-gradient(135deg,#08777d,#034f57); border-color:var(--avn-brand-dark); box-shadow:0 9px 18px rgba(4,94,103,.27); outline:0; transform:translateY(-1px); }
.avn-button:disabled { cursor:wait; opacity:.65; }
.avn-button--secondary { background:#fff; border-color:#c6d1db; color:#34475a; margin-right:auto; }
.avn-button--secondary:hover,.avn-button--secondary:focus-visible { background:#f4f7f9; border-color:#aabac7; color:#172331; }
.avn-button--ghost { background:transparent; border-color:transparent; color:#527080; }
.avn-button--ghost:hover,.avn-button--ghost:focus-visible { background:#edf3f6; border-color:#edf3f6; color:#264757; }
.avn-actions > .avn-button[data-action="project-next"],.avn-actions > .avn-button[data-action="photos-next"],.avn-actions > .avn-button[data-action="submit"] { background:#c01616; background-image:none; border-color:#c01616; color:#fff; }
.avn-actions > .avn-button[data-action="project-next"]:hover,.avn-actions > .avn-button[data-action="project-next"]:focus-visible,.avn-actions > .avn-button[data-action="photos-next"]:hover,.avn-actions > .avn-button[data-action="photos-next"]:focus-visible,.avn-actions > .avn-button[data-action="submit"]:hover,.avn-actions > .avn-button[data-action="submit"]:focus-visible { background:#9f1010; border-color:#9f1010; }
.avn-upload { align-items:center; background:#f4faf9; border:2px dashed #9ccfc4; border-radius:13px; cursor:pointer; display:flex; flex-direction:column; gap:4px; justify-content:center; margin:22px 0 9px; min-height:140px; padding:20px; text-align:center; }
.avn-upload:hover { background:#ecf8f5; border-color:var(--avn-brand); }
.avn-upload span { color:var(--avn-brand-dark); font-weight:800; }
.avn-upload small { color:var(--avn-muted); }
.avn-upload input { height:1px; opacity:0; overflow:hidden; position:absolute; width:1px; }
.avn-file-list { color:#3e6170; font-size:14px; margin:0 0 20px; padding-left:20px; }
.avn-file-list li { padding:2px 0; }
.avn-label,.avn-contact-field > label { color:#31465a; display:block; font-size:14px; font-weight:800; }
.avn-label span,.avn-contact-field > label span { color:#7b8794; font-weight:500; }
.avn-contact-fields { display:grid; gap:18px; grid-template-columns:repeat(2,minmax(0,1fr)); margin-top:25px; }
.avn-contact-field--choice { grid-column:1/-1; }
.avn-contact-field--date { grid-column:1/-1; }
.avn-contact-field .avn-options { margin:9px 0 0; }
.avn-contact-field .avn-input { margin:8px 0 0; }
.avn-required-note { color:#748190!important; font-size:13px; margin:20px 0 0!important; }
.avn-contact-field em,.avn-required-note em { color:#bc2f35; font-style:normal; }
.avn-form-error { color:#ad252b!important; font-weight:700; margin:14px 0 0!important; }
.avn-safety { background:#fff4e8; border-left:4px solid #d56518; border-radius:7px; color:#6a3814; margin:0 0 20px; padding:13px 15px; }
.avn-safety p { color:inherit!important; font-size:14px; margin:3px 0 0!important; }
.avn-success { text-align:center; padding:60px 30px; }
.avn-success-icon { background:#daf1e9; border-radius:50%; color:#067167; display:grid; font-size:32px; font-weight:800; height:68px; margin:0 auto 18px; place-items:center; width:68px; }
.avn-success p { margin:0!important; }
@media (max-width:640px) { .avn-quote-form { margin:22px auto; } .avn-progress li { gap:0; justify-content:center; } .avn-progress li b { display:none; } .avn-progress li:not(:last-child)::after { margin:0 4px; } .avn-service-grid,.avn-options,.avn-contact-fields { grid-template-columns:1fr; } .avn-panel { border-radius:14px; padding:24px 19px; } .avn-actions { align-items:stretch; flex-direction:column-reverse; } .avn-button { width:100%; } .avn-button--secondary { margin-right:0; } .avn-kicker span { float:none; margin-left:6px; } }
@media (prefers-reduced-motion:reduce) { .avn-service-card,.avn-option span,.avn-service-card::before,.avn-option::after { transition:none!important; } .avn-service-card:hover,.avn-service-card:focus-visible,.avn-option:hover span,.avn-option:focus-within span { transform:none; } }
