/* EZ Forms — public form styles */

.ezf-form { font-family: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; max-width: 640px; margin: 24px auto; color: #111827; }
.ezf-form * { box-sizing: border-box; }
.ezf-card { background: #fff; border: 1px solid #E5E7EB; border-radius: 12px; overflow: hidden; box-shadow: 0 1px 3px rgba(0,0,0,.05); }
.ezf-head { padding: 22px 28px 16px; border-bottom: 1px solid #F3F4F6; }
.ezf-title { font-size: 20px; font-weight: 700; margin: 0 0 5px; }
.ezf-desc { font-size: 14px; color: #6B7280; margin: 0; }

.ezf-body { padding: 22px 28px; }
.ezf-grid { display: flex; flex-wrap: wrap; gap: 16px; }
.ezf-field { flex: 0 0 100%; max-width: 100%; }
.ezf-w-100 { flex-basis: 100%; }
.ezf-w-75 { flex-basis: calc(75% - 8px); }
.ezf-w-50 { flex-basis: calc(50% - 8px); }
.ezf-w-33 { flex-basis: calc(33.333% - 11px); }

.ezf-label { display: block; font-size: 13px; font-weight: 600; margin-bottom: 6px; color: #374151; }
.ezf-required { color: #DC2626; margin-left: 2px; }
.ezf-input { width: 100%; border: 1px solid #D1D5DB; border-radius: 8px; padding: 10px 12px; font-size: 14px; font-family: inherit; color: #111827; background: #fff; }
.ezf-input:focus { outline: none; border-color: #4F46E5; box-shadow: 0 0 0 3px rgba(79,70,229,.1); }
.ezf-textarea { min-height: 110px; resize: vertical; }
.ezf-file { padding: 8px; }

.ezf-choices { display: flex; flex-direction: column; gap: 8px; }
.ezf-choice { display: flex; align-items: center; gap: 8px; font-size: 14px; cursor: pointer; }
.ezf-help { font-size: 12px; color: #6B7280; margin: 6px 0 0; }
.ezf-note { font-size: 13px; color: #6B7280; background: #F9FAFB; border: 1px solid #E5E7EB; border-radius: 8px; padding: 12px; }

.ezf-section { display: flex; align-items: center; gap: 12px; color: #9CA3AF; padding-top: 6px; }
.ezf-section::before, .ezf-section::after { content: ""; flex: 1; height: 1px; background: #E5E7EB; }
.ezf-section span { font-size: 12px; font-weight: 600; text-transform: uppercase; letter-spacing: .08em; }

.ezf-field.ezf-has-error .ezf-input { border-color: #DC2626; box-shadow: 0 0 0 3px rgba(220,38,38,.08); }

.ezf-footer { margin-top: 20px; }
.ezf-submit { background: #4F46E5; color: #fff; border: none; border-radius: 8px; padding: 11px 28px; font-size: 15px; font-weight: 600; cursor: pointer; font-family: inherit; transition: background .15s; }
.ezf-submit:hover { background: #4338CA; }

.ezf-success { margin: 22px 28px; padding: 16px 18px; background: #ECFDF5; border: 1px solid #A7F3D0; border-radius: 10px; color: #065F46; font-size: 14px; }
.ezf-errors { margin: 16px 28px 0; padding: 12px 16px; background: #FEF2F2; border: 1px solid #FECACA; border-radius: 10px; color: #B91C1C; font-size: 13px; }
.ezf-missing { padding: 16px; background: #FEF2F2; border: 1px solid #FECACA; border-radius: 8px; color: #B91C1C; }
.ezf-captcha-wrap { margin: 0 28px 4px; }
.ezf-captcha { margin-top: 8px; }


/* ---------------- RTL / نسخه فارسی ---------------- */
.ezf-form{direction:rtl;text-align:right;font-family:inherit}
.ezf-form input,.ezf-form textarea,.ezf-form select,.ezf-form button{font-family:inherit}
.ezf-form input[type=email],.ezf-form input[type=tel],.ezf-form input[type=url]{direction:ltr}


/* ---------------- Booking field (v3) ---------------- */
.ezf-booking{display:flex;flex-direction:column;gap:10px}
.ezf-booking-jalali{font-size:13px;color:#4F46E5;font-weight:600;min-height:18px}
.ezf-booking-slots{display:flex;flex-wrap:wrap;gap:8px}
.ezf-booking-hint{font-size:13px;color:#6B7280}
.ezf-slot{font:inherit;font-size:14px;background:#fff;border:1px solid #D1D5DB;border-radius:8px;padding:8px 14px;cursor:pointer;transition:all .15s;color:#111827}
.ezf-slot:hover:not(:disabled){border-color:var(--ezf-accent,#4F46E5);color:var(--ezf-accent,#4F46E5)}
.ezf-slot.on{background:var(--ezf-accent,#4F46E5);border-color:var(--ezf-accent,#4F46E5);color:#fff}
.ezf-slot.is-full,.ezf-slot:disabled{opacity:.45;cursor:not-allowed;text-decoration:line-through}


/* ---------------- Jalali calendar (v3) ---------------- */
.ezf-cal{border:1px solid #E5E7EB;border-radius:12px;padding:12px;background:#fff;direction:rtl}
.ezf-cal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.ezf-cal-title{font-size:15px;font-weight:700;color:#111827}
.ezf-cal-nav{font:inherit;font-size:18px;line-height:1;background:transparent;border:1px solid #E5E7EB;border-radius:8px;width:32px;height:32px;cursor:pointer;color:#4B5563;transition:all .15s}
.ezf-cal-nav:hover{border-color:var(--ezf-accent,#4F46E5);color:var(--ezf-accent,#4F46E5)}
.ezf-cal-week{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:6px}
.ezf-cal-week span{text-align:center;font-size:12px;font-weight:700;color:#9CA3AF;padding:4px 0}
.ezf-cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.ezf-cal-day{font:inherit;font-size:14px;aspect-ratio:1;display:flex;align-items:center;justify-content:center;background:#fff;border:1px solid transparent;border-radius:9px;cursor:pointer;color:#111827;transition:all .12s;padding:0}
.ezf-cal-day:hover:not(:disabled){background:#EEF2FF;border-color:#C7D2FE}
.ezf-cal-day.is-empty{visibility:hidden;cursor:default}
.ezf-cal-day.is-off,.ezf-cal-day:disabled{color:#D1D5DB;cursor:not-allowed;background:#FAFAFB}
.ezf-cal-day.is-today{border-color:#C7D2FE;font-weight:700}
.ezf-cal-day.is-selected{background:var(--ezf-accent,#4F46E5);border-color:var(--ezf-accent,#4F46E5);color:#fff;font-weight:700}
.ezf-cal-day:focus-visible{outline:2px solid var(--ezf-accent,#4F46E5);outline-offset:1px}
.ezf-slot{display:inline-flex;flex-direction:column;align-items:center;gap:2px}
.ezf-slot-left{font-size:10px;opacity:.75;font-weight:500}
@media(max-width:420px){.ezf-cal-day{font-size:13px}}
