.contact-hero{height:280px}@media(min-width:768px){.contact-hero{height:340px}}@media(min-width:1024px){.contact-hero{height:auto;aspect-ratio:4 / 1}}.contact-hero-overlay{background:linear-gradient(to top,rgba(30,58,95,.85) 0%,rgba(30,58,95,.5) 35%,rgba(30,58,95,.15) 65%,transparent 100%)}.contact-hero-title{opacity:0;transform:translateY(20px);animation:contactHeroReveal .8s cubic-bezier(.25,.46,.45,.94) .3s forwards}@keyframes contactHeroReveal{to{opacity:1;transform:translateY(0)}}.contact-wave{margin-top:-1px;margin-bottom:-1px}.contact-section-heading{border-left:4px solid var(--color-link-blue);padding-left:1rem}.contact-fade-in{opacity:0;animation:contactFadeIn .6s ease .2s forwards}@keyframes contactFadeIn{to{opacity:1}}.contact-progress-bar{height:6px;background:#e5e7eb;border-radius:3px;overflow:hidden}.contact-progress-fill{height:100%;background:var(--color-link-blue);border-radius:3px;transition:width .4s cubic-bezier(.25,.46,.45,.94)}.contact-input{width:100%;border:2px solid #e5e7eb;border-radius:10px;padding:12px 16px;font-size:16px;line-height:1.5;color:#222;background:#fff;transition:border-color .2s ease,box-shadow .2s ease}.contact-input::placeholder{color:#9ca3af}.contact-input:focus{outline:none;border-color:var(--color-link-blue);box-shadow:0 0 0 3px #0067c01f}.contact-input:has(+.contact-error:not(:empty)){border-color:#ef4444}.contact-label{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:700;color:#333;margin-bottom:6px}.contact-required-badge{display:inline-flex;align-items:center;padding:1px 8px;font-size:11px;font-weight:700;color:#fff;background:#ef4444;border-radius:4px;line-height:1.6}.contact-optional-badge{display:inline-flex;align-items:center;padding:1px 8px;font-size:11px;font-weight:700;color:#6b7280;background:#e5e7eb;border-radius:4px;line-height:1.6}.contact-field-group{opacity:0;transform:translateY(12px);animation:contactFieldReveal .5s ease forwards}@keyframes contactFieldReveal{to{opacity:1;transform:translateY(0)}}.contact-agree{display:flex;align-items:center;gap:10px;cursor:pointer}.contact-agree-checkbox{appearance:none;-webkit-appearance:none;width:24px;height:24px;border:2px solid #c4c4c4;border-radius:4px;background:#fff;cursor:pointer;flex-shrink:0;position:relative;transition:background-color .15s ease,border-color .15s ease}.contact-agree-checkbox:checked{background:var(--color-link-blue);border-color:var(--color-link-blue)}.contact-agree-checkbox:after{content:"";position:absolute;left:7px;top:3px;width:6px;height:11px;border:solid #efefef;border-width:0 2.5px 2.5px 0;transform:rotate(45deg);transition:border-color .15s ease}.contact-agree-checkbox:checked:after{border-color:#fff}.contact-agree-text{font-size:14px;color:#333}.contact-agree-link{display:inline-flex;align-items:center;gap:2px;color:var(--color-link-blue);text-decoration:underline;font-weight:700;transition:opacity .2s ease}.contact-agree-link-icon{width:14px;height:14px;flex-shrink:0}.contact-agree-link:hover{opacity:.7}.contact-submit-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:14px 48px;font-size:16px;font-weight:700;color:#fff;background:var(--color-link-blue);border:2px solid var(--color-link-blue);border-radius:9999px;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease,background-color .2s ease,color .2s ease;letter-spacing:.05em}.contact-submit-btn:hover{background:#fff;color:var(--color-link-blue)}.contact-submit-btn:disabled{opacity:.6;cursor:not-allowed;transform:none;box-shadow:none}.contact-error{display:block;margin-top:4px;font-size:13px;color:#ef4444}.contact-success{opacity:0;transform:scale(.95);animation:contactSuccessReveal .6s cubic-bezier(.25,.46,.45,.94) forwards}@keyframes contactSuccessReveal{to{opacity:1;transform:scale(1)}}.contact-success-check{width:64px;height:64px}.contact-success-check circle{fill:#22c55e}.contact-success-check path{stroke:#fff;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:40;stroke-dashoffset:40;animation:contactCheckDraw .5s ease .3s forwards}@keyframes contactCheckDraw{to{stroke-dashoffset:0}}
