/* FitFoodPro & theme form fields */

.fitfood-wrap input.regular-text:not([type="checkbox"]):not([type="hidden"]):not([type="radio"]),
.fitfood-wrap select.regular-text,
.fitfood-wrap textarea.regular-text,
.fitfood-wrap textarea.large-text,
.fitoo-field,
.ffp-quick-order-form input[type="text"],
.ffp-quick-order-form input[type="tel"],
.ffp-quick-order-form input[type="email"],
.ffp-quick-order-form input[type="password"],
.ffp-quick-order-form input[type="number"],
.ffp-quick-order-form select,
.ffp-quick-order-form textarea,
.ffp-feedback-form input[type="text"],
.ffp-feedback-form input[type="tel"],
.ffp-feedback-form input[type="email"],
.ffp-feedback-form select,
.ffp-feedback-form textarea,
.ffp-lead-form input[type="text"],
.ffp-lead-form input[type="tel"],
.ffp-lead-form input[type="email"],
.ffp-lead-form select,
.ffp-lead-form textarea,
#ffp-checkout-form input.regular-text,
#ffp-checkout-form input[type="tel"],
#ffp-checkout-form input[type="email"],
#ffp-checkout-form input[type="password"],
#ffp-checkout-form input[type="number"],
#ffp-checkout-form select.regular-text,
#ffp-checkout-form textarea,
.ffp-calc-panel input,
.ffp-calc-panel select {
	box-sizing: border-box;
	width: 100%;
	max-width: 100%;
	margin-top: 0.35rem;
	padding: 0.75rem 0.9rem;
	border: 1px solid var(--color-border);
	border-radius: 12px;
	background: var(--color-surface);
	color: var(--color-heading);
	font-family: inherit;
	font-size: 1rem;
	line-height: 1.4;
	transition: border-color var(--transition), box-shadow var(--transition), background var(--transition);
	-webkit-appearance: none;
	appearance: none;
}

.ffp-quick-order-form select,
.ffp-feedback-form select,
.ffp-lead-form select,
#ffp-checkout-form select.regular-text {
	padding-right: 2.5rem;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 0.85rem center;
	background-size: 16px;
	cursor: pointer;
}

.fitoo-field:focus,
.fitfood-wrap input.regular-text:focus,
.fitfood-wrap select.regular-text:focus,
.fitfood-wrap textarea:focus,
.ffp-quick-order-form input:focus,
.ffp-quick-order-form select:focus,
.ffp-quick-order-form textarea:focus,
.ffp-feedback-form input:focus,
.ffp-feedback-form select:focus,
.ffp-feedback-form textarea:focus,
.ffp-lead-form input:focus,
.ffp-lead-form select:focus,
.ffp-lead-form textarea:focus,
#ffp-checkout-form input:focus,
#ffp-checkout-form select:focus,
#ffp-checkout-form textarea:focus,
.ffp-calc-panel input:focus,
.ffp-calc-panel select:focus {
	outline: none;
	border-color: var(--color-brand);
	box-shadow: 0 0 0 3px rgba(var(--color-brand-rgb), 0.15);
	background: #fff;
}

.fitoo-field::placeholder,
.ffp-quick-order-form input::placeholder,
.ffp-feedback-form input::placeholder,
.ffp-lead-form input::placeholder,
#ffp-checkout-form input::placeholder,
#ffp-checkout-form textarea::placeholder {
	color: var(--color-muted);
	opacity: 1;
}

/* Form layout */
.ffp-quick-order-form p,
.ffp-feedback-form p,
.ffp-lead-form p {
	margin: 0 0 1rem;
}

.ffp-quick-order-form label,
.ffp-feedback-form label,
.ffp-lead-form p > label:first-child {
	font-size: 0.875rem;
	font-weight: 600;
	color: var(--color-heading);
	line-height: 1.4;
}

.ffp-quick-order-form label:has(input[type="checkbox"]),
.ffp-feedback-form label:has(input[type="checkbox"]),
.ffp-lead-form label:has(input[type="checkbox"]),
.ffp-account-wrapper label:has(input[type="checkbox"]),
.ffp-checkout-form label:has(input[type="checkbox"]),
.ffp-checkout-login-modal label:has(input[type="checkbox"]) {
	display: flex;
	align-items: flex-start;
	gap: 0.7rem;
	font-weight: 400;
	font-size: 0.8125rem;
	line-height: 1.45;
	color: var(--color-text);
	cursor: pointer;
}

.ffp-quick-order-form input[type="checkbox"],
.ffp-feedback-form input[type="checkbox"],
.ffp-lead-form input[type="checkbox"],
.ffp-account-wrapper input[type="checkbox"],
.ffp-checkout-form input[type="checkbox"],
.ffp-checkout-login-modal input[type="checkbox"] {
	-webkit-appearance: none;
	appearance: none;
	width: 1.15rem;
	height: 1.15rem;
	margin: 0.15rem 0 0;
	flex-shrink: 0;
	box-sizing: border-box;
	border: 1.5px solid #c5c9bf;
	border-radius: 5px;
	background: #fff;
	cursor: pointer;
	transition: border-color var(--transition), background var(--transition), box-shadow var(--transition);
	accent-color: var(--color-brand);
}

.ffp-quick-order-form input[type="checkbox"]:hover,
.ffp-feedback-form input[type="checkbox"]:hover,
.ffp-lead-form input[type="checkbox"]:hover,
.ffp-account-wrapper input[type="checkbox"]:hover,
.ffp-checkout-form input[type="checkbox"]:hover,
.ffp-checkout-login-modal input[type="checkbox"]:hover {
	border-color: var(--color-brand);
}

.ffp-quick-order-form input[type="checkbox"]:checked,
.ffp-feedback-form input[type="checkbox"]:checked,
.ffp-lead-form input[type="checkbox"]:checked,
.ffp-account-wrapper input[type="checkbox"]:checked,
.ffp-checkout-form input[type="checkbox"]:checked,
.ffp-checkout-login-modal input[type="checkbox"]:checked {
	border-color: var(--color-brand);
	background-color: var(--color-brand);
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23171b18' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3.5 8.2 6.6 11.2 12.5 4.8'/%3E%3C/svg%3E");
	background-size: 0.78rem 0.78rem;
	background-position: center;
	background-repeat: no-repeat;
	box-shadow: 0 0 0 3px rgba(var(--color-brand-rgb), 0.18);
}

.ffp-quick-order-form input[type="checkbox"]:focus-visible,
.ffp-feedback-form input[type="checkbox"]:focus-visible,
.ffp-lead-form input[type="checkbox"]:focus-visible,
.ffp-account-wrapper input[type="checkbox"]:focus-visible,
.ffp-checkout-form input[type="checkbox"]:focus-visible,
.ffp-checkout-login-modal input[type="checkbox"]:focus-visible {
	outline: none;
	border-color: var(--color-brand);
	box-shadow: 0 0 0 3px rgba(var(--color-brand-rgb), 0.22);
}

.ffp-consent-text {
	display: block;
	min-width: 0;
	flex: 1 1 auto;
	font-weight: 400;
	color: var(--color-muted);
}

.ffp-consent-text a {
	color: var(--color-brand-dark);
	text-decoration: underline;
	text-underline-offset: 2px;
}

.ffp-consent-text a:hover {
	color: var(--color-brand);
}

.ffp-quick-order-form .description,
.ffp-feedback-form .description {
	font-size: 0.8125rem;
	color: var(--color-muted);
	line-height: 1.5;
	margin-bottom: 1rem;
}

/* Quick order in modal */
.fitoo-modal .ffp-quick-order-form-wrapper {
	max-width: none;
	margin: 0;
}

.fitoo-modal .ffp-quick-order-form input[type="text"],
.fitoo-modal .ffp-quick-order-form input[type="tel"],
.fitoo-modal .ffp-quick-order-form select {
	box-sizing: border-box;
	width: 100%;
	margin-top: 0.35rem;
	padding: 0.75rem 0.9rem;
	border: 1px solid var(--color-border);
	border-radius: 12px;
	background: var(--color-surface);
	color: var(--color-heading);
	font-family: inherit;
	font-size: 1rem;
	line-height: 1.4;
	transition: border-color var(--transition), box-shadow var(--transition);
	-webkit-appearance: none;
	appearance: none;
}

.fitoo-modal .ffp-quick-order-form select {
	padding-right: 2.5rem;
	background-color: var(--color-surface);
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 0.85rem center;
	background-size: 16px;
}

.fitoo-modal .ffp-quick-order-form input:focus,
.fitoo-modal .ffp-quick-order-form select:focus {
	outline: none;
	border-color: var(--color-brand);
	box-shadow: 0 0 0 3px rgba(var(--color-brand-rgb), 0.15);
}

.fitoo-modal .ffp-quick-order-form label:not(:has(input[type="checkbox"])) {
	font-size: 0.875rem;
	font-weight: 600;
	color: var(--color-heading);
}

.fitoo-modal .ffp-quick-order-preview-wrap {
	margin-bottom: 1.25rem;
	padding: 0.9rem 1rem;
	background: var(--color-surface-alt);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-card);
	font-size: 0.875rem;
	line-height: 1.5;
}

.fitoo-modal .ffp-quick-order-preview-wrap strong {
	display: block;
	margin-bottom: 0.35rem;
	color: var(--color-heading);
}

.fitoo-modal .ffp-quick-order-form button[type="submit"] {
	width: 100%;
	margin-top: 0.25rem;
}

.fitoo-modal .ffp-quick-order-message {
	font-size: 0.875rem;
	border-radius: 10px;
	padding: 0.75rem 1rem;
}

.ffp-lead-form .ffp-feedback-form-wrapper {
	max-width: none !important;
	margin: 0 !important;
}

.fitoo-lead-section .ffp-lead-form .ffp-feedback-form label:has(input[type="checkbox"]) {
	font-size: 0.75rem;
	line-height: 1.45;
	color: var(--color-muted);
}

.fitoo-lead-section .ffp-lead-form .ffp-consent-text {
	color: var(--color-muted);
}

.fitoo-lead-section .ffp-lead-form .ffp-feedback-form button[type="submit"] {
	width: 100%;
}

/*
 * FitFoodPro / Impreza leftover buttons → Fitoo primary / ghost standards.
 */
.ffp-feedback-form button[type="submit"],
.ffp-quick-order-form button[type="submit"],
#ffp-checkout-form button[type="submit"],
#ffp-checkout-form button.button-primary,
.ffp-account-wrapper button.button-primary,
.button.button-primary.us-btn-style_1,
.button.button-primary.us-btn-style_27,
button.us-btn-style_1,
a.us-btn-style_1,
button.us-btn-style_27,
a.us-btn-style_27,
.ffp-city-modal-btn,
.ffp-review-submit {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.85rem;
	min-height: 2.875rem;
	padding: 0.8rem 1.25rem;
	border-radius: var(--radius-btn);
	border: 0;
	background: var(--color-brand);
	color: var(--color-ink) !important;
	font-family: inherit;
	font-size: 0.9375rem;
	font-weight: 600;
	line-height: 1.2;
	text-decoration: none;
	cursor: pointer;
	box-shadow: none;
	transition: background var(--transition), transform var(--transition);
	-webkit-appearance: none;
	appearance: none;
}

.ffp-feedback-form button[type="submit"]:hover,
.ffp-quick-order-form button[type="submit"]:hover,
#ffp-checkout-form button[type="submit"]:hover,
#ffp-checkout-form button.button-primary:hover,
.ffp-account-wrapper button.button-primary:hover,
.button.button-primary.us-btn-style_1:hover,
.button.button-primary.us-btn-style_27:hover,
button.us-btn-style_1:hover,
a.us-btn-style_1:hover,
button.us-btn-style_27:hover,
a.us-btn-style_27:hover,
.ffp-city-modal-btn:hover,
.ffp-review-submit:hover {
	background: var(--color-brand-hover);
	color: var(--color-ink) !important;
	transform: translateY(-2px);
	text-decoration: none;
	box-shadow: none;
}

.ffp-feedback-form button[type="submit"]:disabled,
.ffp-quick-order-form button[type="submit"]:disabled,
#ffp-checkout-form button[type="submit"]:disabled,
.button.button-primary:disabled {
	opacity: 0.45;
	cursor: not-allowed;
	transform: none;
}

.button.button-large.us-btn-style_1,
#ffp-checkout-form button.button-large {
	min-height: 3.5rem;
	padding: 1rem 1.4rem;
	font-size: 0.95rem;
	width: 100%;
}

/* Ghost / secondary Impreza leftover */
button.us-btn-style_30,
a.us-btn-style_30 {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.85rem;
	min-height: 2.875rem;
	padding: 0.8rem 1.25rem;
	border-radius: var(--radius-btn);
	border: 0;
	background: transparent;
	color: var(--color-ink) !important;
	font-family: inherit;
	font-size: 0.9375rem;
	font-weight: 600;
	cursor: pointer;
	transition: background var(--transition);
}

button.us-btn-style_30:hover,
a.us-btn-style_30:hover {
	background: var(--color-soft);
	color: var(--color-ink) !important;
}

/*
 * FitFoodPro interactive UI — lime accent + ink text (readable on #b5e64b).
 */
.ffp-pill.active,
.ffp-day.active {
	background: var(--color-brand) !important;
	border-color: var(--color-brand) !important;
	color: var(--color-ink) !important;
}

.ffp-day.active .ffp-day-week {
	color: var(--color-muted) !important;
}

.ffp-program.active,
.ffp-duration.active {
	border-color: var(--color-brand-dark) !important;
	box-shadow: 0 0 0 3px rgba(var(--color-brand-rgb), 0.22) !important;
}

.ffp-badge {
	background: var(--color-brand) !important;
	color: var(--color-ink) !important;
}

.ffp-city-name {
	color: var(--color-brand-dark) !important;
}

.ffp-city-name:hover {
	color: var(--color-ink) !important;
}

.ffp-earned-bonus-value,
.ffp-delivery-map-eyebrow {
	color: var(--color-brand-dark) !important;
}

.ffp-ba-dot.is-active,
.ffp-ba-dot[aria-selected="true"] {
	background: var(--color-brand) !important;
}

.ffp-review-day-badge {
	color: var(--color-brand-dark) !important;
	border-color: rgba(var(--color-brand-rgb), 0.35) !important;
}
#ffp-promo-code {
	width: 100%;
	padding: 0.75rem 0.9rem !important;
	border: 1px solid var(--color-border) !important;
	border-radius: 12px !important;
	font-size: 1rem !important;
}

/* Account forms */
.ffp-account-wrapper input.regular-text,
.ffp-account-wrapper input[type="password"],
.ffp-account-wrapper input[type="email"],
.ffp-account-wrapper input[type="tel"],
.ffp-account-wrapper select {
	box-sizing: border-box;
	width: 100%;
	padding: 0.75rem 0.9rem;
	border: 1px solid var(--color-border);
	border-radius: 12px;
	font-size: 1rem;
	font-family: inherit;
}

.ffp-account-wrapper input:focus,
.ffp-account-wrapper select:focus {
	outline: none;
	border-color: var(--color-brand);
	box-shadow: 0 0 0 3px rgba(var(--color-brand-rgb), 0.15);
}
