.appointment-section{background:linear-gradient(145deg,#004b87,#0078b7);color:#fff}.appointment-heading p{color:#dbeafe}.appointment-wrap{max-width:940px}.appointment-panel{background:#fff;color:#1e293b;border-radius:24px;padding:34px;box-shadow:0 30px 70px rgba(0,25,50,.25)}.appointment-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:32px}.appointment-steps span{display:flex;align-items:center;gap:8px;color:#94a3b8;font-size:12px;font-weight:700}.appointment-steps b{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:#e2e8f0}.appointment-steps .is-active{color:#004b87}.appointment-steps .is-active b{background:#004b87;color:#fff}.appointment-step{display:none}.appointment-step.is-active{display:block;animation:appointment-in .3s ease}@keyframes appointment-in{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:none}}.appointment-panel label{display:block;font-size:13px;font-weight:700;margin:15px 0 7px}.appointment-panel label span{color:#ef4444}.appointment-panel input,.appointment-panel select,.appointment-panel textarea{width:100%;border:1px solid #cbd5e1;border-radius:11px;padding:12px 13px;background:#fff;color:#0f172a;outline:0}.appointment-panel input:focus,.appointment-panel select:focus,.appointment-panel textarea:focus{border-color:#00a8e8;box-shadow:0 0 0 3px rgba(0,168,232,.12)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.step-actions{display:flex;justify-content:space-between;gap:12px;margin-top:25px}.appointment-step>.appointment-next{float:right;margin-top:24px}.form-message{clear:both;margin-top:20px;font-size:13px;color:#b91c1c}.form-message.is-success{color:#047857}.appointment-success{text-align:center;padding:22px}.success-icon{width:75px;height:75px;display:grid;place-items:center;border-radius:50%;background:#d1fae5;color:#047857;margin:0 auto 18px}.success-icon .dh-icon{width:38px;height:38px}.appointment-success h3{font:800 25px "Be Vietnam Pro"}.appointment-success p{color:#64748b}.ticket{background:#f0f9ff;border:1px dashed #7dd3fc;padding:14px;border-radius:12px;margin:20px auto;max-width:360px}@media(max-width:600px){.appointment-panel{padding:22px 18px}.appointment-steps span{font-size:0}.appointment-steps b{font-size:12px}.appointment-steps{justify-items:center}.form-grid{grid-template-columns:1fr}}

