/* WooPatient — Online Booking Form
 * Re-skinned to the maxillo design (navy ink + vivid green + glassmorphism).
 * Inherits design tokens from the theme's system.css (with fallbacks).
 */
.wpb-wrap {
	--wpb-ink:     var(--ink, #16335E);
	--wpb-ink-2:   var(--ink-2, #45618B);
	--wpb-ink-3:   var(--ink-3, #8295B5);
	--wpb-ink-4:   var(--ink-4, #AEBED5);
	--wpb-green:   var(--green, #34C45B);
	--wpb-green-d: var(--green-d, #23A847);
	--wpb-green-l: rgba(52,196,91,.14);
	--wpb-line:    var(--line, rgba(22,51,94,.16));
	--wpb-line-soft: var(--line-soft, rgba(22,51,94,.08));
	--wpb-danger:  #c0392b;
	--wpb-radius:  var(--radius, 22px);
	--wpb-radius-sm: 14px;
	--wpb-radius-xs: 10px;
	--wpb-glossy:  var(--glossy, inset 0 1px 0 rgba(255,255,255,.95), inset 0 -14px 30px -18px rgba(22,51,94,.08));
	--wpb-shadow:  var(--shadow-card, 0 1px 2px rgba(22,51,94,.05), 0 22px 50px -30px rgba(22,51,94,.40));
	--wpb-pop:     var(--shadow-pop, 0 10px 24px rgba(22,51,94,.14), 0 44px 90px -44px rgba(22,51,94,.55));
	--wpb-ring:    0 0 0 4px rgba(52,196,91,.15);
	--wpb-glass:   linear-gradient(155deg, rgba(255,255,255,.78), rgba(255,255,255,.42));
	--wpb-font:    var(--font-body, 'Yekan Bakh','Vazirmatn','Tahoma',sans-serif);
	--wpb-display: var(--font-display, 'Yekan Bakh','Vazirmatn',sans-serif);
	--wpb-mono:    var(--font-mono, 'IBM Plex Mono',ui-monospace,monospace);
	--wpb-ease:    var(--ease, cubic-bezier(.22,.61,.36,1));

	font-family: var(--wpb-font);
	direction: rtl;
	max-width: 680px;
	margin: 0 auto;
	color: var(--wpb-ink);
	-webkit-font-smoothing: antialiased;
}
.wpb-wrap *, .wpb-wrap *::before, .wpb-wrap *::after { box-sizing: border-box; }

/* ── Header ─────────────────────────── */
.wpb-header { text-align:center; margin-bottom:30px; }
.wpb-header__icon {
	width:66px; height:66px; margin:0 auto 16px;
	display:flex; align-items:center; justify-content:center;
	font-size:30px; line-height:1;
	border-radius:20px; background:linear-gradient(150deg,#1c3e6e,#122c52); color:#fff;
	box-shadow:0 16px 32px -16px rgba(22,51,94,.6), var(--wpb-glossy);
}
.wpb-header__title { font-family:var(--wpb-display); font-size:clamp(1.6rem,3vw,2.2rem); font-weight:900; margin:0 0 8px; color:var(--wpb-ink); letter-spacing:-.02em; }
.wpb-header__sub { font-size:.96rem; color:var(--wpb-ink-2); margin:0; line-height:1.7; }

/* ── Steps ──────────────────────────── */
.wpb-steps { display:flex; align-items:flex-start; justify-content:center; gap:0; margin-bottom:28px; position:relative; }
.wpb-steps::before { content:''; position:absolute; top:18px; right:18%; left:18%; height:2px; background:var(--wpb-line); z-index:0; }
.wpb-step { display:flex; flex-direction:column; align-items:center; gap:7px; font-size:.78rem; color:var(--wpb-ink-3); font-weight:600; flex:1; position:relative; z-index:1; transition:color .2s; }
.wpb-step__num {
	width:36px; height:36px; border-radius:50%;
	background:rgba(255,255,255,.7); backdrop-filter:blur(8px);
	border:1px solid rgba(255,255,255,.85); box-shadow:var(--wpb-glossy);
	color:var(--wpb-ink-3); display:flex; align-items:center; justify-content:center;
	font-family:var(--wpb-display); font-weight:800; font-size:14px; transition:all .25s var(--wpb-ease);
}
.wpb-step.is-active { color:var(--wpb-ink); }
.wpb-step.is-active .wpb-step__num { background:var(--wpb-ink); border-color:var(--wpb-ink); color:#fff; box-shadow:0 10px 22px -10px rgba(22,51,94,.6); }
.wpb-step.is-done { color:var(--wpb-green-d); }
.wpb-step.is-done .wpb-step__num { background:var(--wpb-green); border-color:var(--wpb-green); color:#fff; }

/* ── Panel (glass) ──────────────────── */
.wpb-panel {
	position:relative;
	background:var(--wpb-glass);
	backdrop-filter:blur(20px) saturate(1.4); -webkit-backdrop-filter:blur(20px) saturate(1.4);
	border:1px solid rgba(255,255,255,.8); border-radius:var(--wpb-radius);
	padding:clamp(22px,3vw,32px); box-shadow:var(--wpb-glossy), var(--wpb-shadow);
}
.wpb-hidden { display:none !important; }
.wpb-panel__title { font-family:var(--wpb-display); font-size:1.2rem; font-weight:800; margin:0 0 22px; color:var(--wpb-ink); display:flex; align-items:center; gap:10px; }
.wpb-panel__title::before { content:''; width:5px; height:20px; border-radius:999px; background:var(--wpb-green); flex-shrink:0; }

/* ── Fields ─────────────────────────── */
.wpb-field-group { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.wpb-field { display:flex; flex-direction:column; gap:8px; }
.wpb-field--full { grid-column:1/-1; }
.wpb-field label { font-size:.86rem; font-weight:600; color:var(--wpb-ink-2); }
.wpb-req { color:var(--wpb-danger); }
.wpb-field input, .wpb-field select, .wpb-field textarea {
	border:1px solid rgba(255,255,255,.85); border-radius:var(--wpb-radius-sm);
	padding:13px 15px; font-size:1rem; font-family:var(--wpb-font);
	color:var(--wpb-ink); background:rgba(255,255,255,.6); outline:none;
	box-shadow:var(--wpb-glossy);
	transition:border-color .2s, box-shadow .2s;
	width:100%; min-height:48px;
}
.wpb-field input::placeholder, .wpb-field textarea::placeholder { color:var(--wpb-ink-4); }
.wpb-field textarea { min-height:104px; resize:vertical; line-height:1.7; }
.wpb-field input:focus, .wpb-field select:focus, .wpb-field textarea:focus {
	border-color:var(--wpb-green); box-shadow:var(--wpb-ring);
}

/* ── Buttons ─────────────────────────── */
.wpb-actions { display:flex; align-items:center; justify-content:flex-end; gap:12px; margin-top:26px; }
.wpb-btn {
	display:inline-flex; align-items:center; justify-content:center; gap:8px;
	padding:.9em 1.6em; border-radius:999px;
	font-size:1rem; font-weight:700; cursor:pointer; line-height:1.4;
	border:1px solid transparent; font-family:var(--wpb-font);
	transition:transform .35s var(--wpb-ease), background .3s, color .3s, border-color .3s, box-shadow .3s;
	white-space:nowrap;
}
.wpb-btn:focus-visible { outline:none; box-shadow:var(--wpb-ring); }
.wpb-btn--next, .wpb-btn--submit {
	background:var(--wpb-ink); color:#fff; box-shadow:0 10px 26px -12px rgba(22,51,94,.55);
}
.wpb-btn--next:hover, .wpb-btn--submit:hover { transform:translateY(-2px); box-shadow:0 16px 34px -12px rgba(22,51,94,.6); }
.wpb-btn--next:disabled { background:var(--wpb-ink-4); color:#fff; cursor:not-allowed; box-shadow:none; transform:none; }
.wpb-btn--back {
	background:rgba(255,255,255,.55); backdrop-filter:blur(12px) saturate(1.4);
	color:var(--wpb-ink); border-color:rgba(255,255,255,.85); box-shadow:var(--wpb-glossy);
}
.wpb-btn--back:hover { background:#fff; transform:translateY(-2px); }
.wpb-btn--outline { background:var(--wpb-ink); color:#fff; }
.wpb-btn--outline:hover { transform:translateY(-2px); box-shadow:var(--wpb-pop); }

/* ── Calendar ───────────────────────── */
.wpb-calendar { margin-bottom:8px; }
.wpb-cal-nav { display:flex; align-items:center; justify-content:space-between; margin-bottom:16px; }
.wpb-cal-nav button {
	background:rgba(255,255,255,.55); border:1px solid rgba(255,255,255,.8); border-radius:12px;
	width:42px; height:42px; font-size:20px; cursor:pointer; color:var(--wpb-ink);
	display:flex; align-items:center; justify-content:center; box-shadow:var(--wpb-glossy);
	transition:all .2s var(--wpb-ease);
}
.wpb-cal-nav button:hover { background:var(--wpb-ink); color:#fff; border-color:var(--wpb-ink); }
#wpb-cal-month { font-family:var(--wpb-display); font-size:1.05rem; font-weight:800; color:var(--wpb-ink); }
.wpb-cal-weekdays { display:grid; grid-template-columns:repeat(7,1fr); text-align:center; font-size:.74rem; font-weight:700; color:var(--wpb-ink-3); margin-bottom:8px; }
.wpb-cal-days { display:grid; grid-template-columns:repeat(7,1fr); gap:5px; }
.wpb-cal-day {
	aspect-ratio:1; display:flex; align-items:center; justify-content:center;
	border-radius:11px; font-size:.92rem; font-weight:600; cursor:pointer;
	transition:all .15s var(--wpb-ease); border:1.5px solid transparent; color:var(--wpb-ink);
}
.wpb-cal-day:hover:not(.wpb-cal-day--empty):not(.wpb-cal-day--off):not(.wpb-cal-day--past) {
	background:var(--wpb-green-l); color:var(--wpb-green-d); border-color:rgba(52,196,91,.35);
}
.wpb-cal-day--today { font-weight:800; box-shadow:inset 0 0 0 1.5px var(--wpb-green); color:var(--wpb-green-d); }
.wpb-cal-day--selected { background:var(--wpb-ink) !important; color:#fff !important; border-color:var(--wpb-ink) !important; }
.wpb-cal-day--off, .wpb-cal-day--past { color:var(--wpb-ink-4); cursor:default; }
.wpb-cal-day--empty { cursor:default; }

/* ── Slots Grid ─────────────────────── */
.wpb-slots { display:grid; grid-template-columns:repeat(auto-fill,minmax(80px,1fr)); gap:12px; margin-bottom:8px; min-height:60px; }
.wpb-slot {
	padding:13px 8px; border:1px solid rgba(255,255,255,.85); border-radius:var(--wpb-radius-sm);
	text-align:center; font-size:.96rem; font-weight:700; cursor:pointer; box-shadow:var(--wpb-glossy);
	background:rgba(255,255,255,.55); transition:all .15s var(--wpb-ease); color:var(--wpb-ink); direction:ltr;
}
.wpb-slot:hover { background:var(--wpb-green-l); color:var(--wpb-green-d); border-color:rgba(52,196,91,.35); }
.wpb-slot--selected { background:var(--wpb-ink); color:#fff; border-color:var(--wpb-ink); }
.wpb-slots-loading, .wpb-slots-empty { color:var(--wpb-ink-3); font-size:.9rem; padding:18px 0; grid-column:1/-1; text-align:center; }
.wpb-selected-info { font-size:.92rem; color:var(--wpb-ink-2); margin-bottom:16px; }

/* ── Summary ─────────────────────────── */
.wpb-summary { background:var(--wpb-green-l); border:1px solid rgba(52,196,91,.28); border-radius:var(--wpb-radius-sm); padding:20px 22px; }
.wpb-summary-row { display:flex; align-items:center; gap:10px; padding:11px 0; border-bottom:1px solid rgba(52,196,91,.18); font-size:.96rem; }
.wpb-summary-row:last-child { border-bottom:none; }
.wpb-summary-row__label { font-weight:600; color:var(--wpb-ink-2); width:130px; flex-shrink:0; }
.wpb-summary-row__value { color:var(--wpb-ink); font-weight:700; }

/* ── Success ─────────────────────────── */
.wpb-success {
	position:relative; background:var(--wpb-glass);
	backdrop-filter:blur(20px) saturate(1.4); -webkit-backdrop-filter:blur(20px) saturate(1.4);
	border:1px solid rgba(255,255,255,.8); border-radius:var(--wpb-radius);
	padding:clamp(32px,5vw,48px) 28px; box-shadow:var(--wpb-glossy), var(--wpb-pop); text-align:center;
}
.wpb-success__icon {
	width:76px; height:76px; margin:0 auto 18px;
	display:flex; align-items:center; justify-content:center; font-size:36px; line-height:1;
	border-radius:50%; background:var(--wpb-green-l); color:var(--wpb-green-d);
}
.wpb-success h3 { font-family:var(--wpb-display); font-size:1.5rem; font-weight:900; margin:0 0 10px; color:var(--wpb-ink); }
.wpb-success p { color:var(--wpb-ink-2); margin:0 0 18px; line-height:1.7; }
.wpb-success-detail {
	background:rgba(255,255,255,.5); border:1px solid rgba(255,255,255,.8); border-radius:var(--wpb-radius-sm);
	padding:18px 20px; margin-bottom:22px; font-size:.92rem; text-align:right; line-height:1.9; box-shadow:var(--wpb-glossy);
}

@media(max-width:560px) {
	.wpb-field-group { grid-template-columns:1fr; }
	.wpb-actions { flex-direction:column-reverse; }
	.wpb-actions .wpb-btn { width:100%; }
}
@media (prefers-reduced-motion: reduce) {
	.wpb-wrap *, .wpb-wrap *::before, .wpb-wrap *::after { transition-duration:.01ms !important; animation-duration:.01ms !important; }
}
