/* FixItFast Booking — modal styles
   Tokens fall back gracefully if the theme variables aren't present. */
.ffb-overlay{
	position:fixed; inset:0; z-index:99999;
	background:rgba(10,37,64,.62); backdrop-filter:blur(4px);
	display:flex; align-items:flex-start; justify-content:center;
	padding:24px 16px; overflow-y:auto;
	opacity:0; transition:opacity .2s ease;
}
.ffb-overlay.is-open{ opacity:1; }
.ffb-overlay[hidden]{ display:none; }

.ffb-modal{
	position:relative; width:100%; max-width:640px; margin:auto;
	background:#fff; border-radius:18px;
	box-shadow:0 30px 80px -24px rgba(10,37,64,.55);
	padding:30px clamp(20px,4vw,38px) 28px;
	transform:translateY(14px) scale(.99); transition:transform .22s ease;
	font-family:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;
}
.ffb-overlay.is-open .ffb-modal{ transform:none; }

.ffb-close{
	position:absolute; top:14px; right:16px;
	width:38px; height:38px; border-radius:50%;
	border:0; background:#f1f5f9; color:#0A2540;
	font-size:24px; line-height:1; cursor:pointer; transition:.15s;
}
.ffb-close:hover{ background:#e2e8f0; transform:rotate(90deg); }

.ffb-head{ margin-bottom:20px; padding-right:40px; }
.ffb-head h2{
	margin:0 0 4px; font-size:1.6rem; color:#0A2540;
	font-family:'Plus Jakarta Sans','Inter',sans-serif; font-weight:800;
}
.ffb-head p{ margin:0; color:#5b6b7b; font-size:.96rem; }

.ffb-row{ display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.ffb-field{ margin-bottom:14px; display:flex; flex-direction:column; }
.ffb-field label{ font-size:.85rem; font-weight:600; color:#0A2540; margin-bottom:6px; }
.ffb-field label span{ color:#FF6B1A; }
.ffb-field input,
.ffb-field select,
.ffb-field textarea{
	width:100%; padding:.72em .9em; font:inherit; color:#0A2540;
	background:#fff; border:1.5px solid #D8E2EC; border-radius:11px;
	transition:border-color .15s, box-shadow .15s;
}
.ffb-field input:focus,
.ffb-field select:focus,
.ffb-field textarea:focus{
	outline:0; border-color:#FF6B1A; box-shadow:0 0 0 3px rgba(255,107,26,.16);
}
.ffb-field select:disabled{ background:#f1f5f9; color:#94a3b8; }
.ffb-field textarea{ resize:vertical; min-height:72px; }

.ffb-hp{ position:absolute; left:-9999px; height:0; overflow:hidden; }

.ffb-error{
	background:#fdeaea; border:1px solid #f3c1c1; color:#9b2c2c;
	padding:11px 14px; border-radius:11px; font-size:.9rem; margin-bottom:14px;
}

.ffb-btn{
	display:inline-flex; align-items:center; justify-content:center; gap:.5em;
	border:0; border-radius:999px; padding:.95em 1.6em;
	font:inherit; font-weight:700; cursor:pointer; transition:.15s; width:100%;
	font-family:'Plus Jakarta Sans','Inter',sans-serif;
}
.ffb-btn-primary{ background:#FF6B1A; color:#fff; box-shadow:0 12px 26px -12px rgba(255,107,26,.8); }
.ffb-btn-primary:hover{ background:#e85d10; }
.ffb-btn-primary:disabled{ opacity:.6; cursor:not-allowed; }
.ffb-btn-ghost{ background:transparent; color:#0A2540; border:2px solid #D8E2EC; }
.ffb-btn-ghost:hover{ border-color:#0A2540; }

.ffb-fineprint{ text-align:center; color:#8190a0; font-size:.78rem; margin:12px 0 0; }

/* success */
.ffb-success{ text-align:center; padding:18px 6px 6px; }
.ffb-success[hidden]{ display:none; }
.ffb-tick{
	width:72px; height:72px; margin:0 auto 16px; border-radius:50%;
	background:#0FB5A8; color:#fff; font-size:38px; line-height:72px; font-weight:700;
}
.ffb-success h3{ margin:0 0 8px; color:#0A2540; font-size:1.4rem; font-family:'Plus Jakarta Sans','Inter',sans-serif; }
.ffb-success p{ color:#5b6b7b; margin:0 0 20px; }
.ffb-success .ffb-btn{ width:auto; padding-inline:2em; margin:0 auto; }

@media (max-width:520px){
	.ffb-row{ grid-template-columns:1fr; gap:0; }
	.ffb-modal{ padding:26px 18px 22px; border-radius:14px; }
	.ffb-head h2{ font-size:1.35rem; }
}
