/**
 * Dignipets Form Frontend.
 *
 * Visual language follows SwofCommerce design tokens.
 */

.dignipets-form-widget {
	--swofcommerce-primary: #2563eb;
	--swofcommerce-primary-hover: #1d4ed8;
	--swofcommerce-primary-light: #dbeafe;
	--swofcommerce-secondary: #64748b;
	--swofcommerce-success: #10b981;
	--swofcommerce-danger: #ef4444;
	--swofcommerce-text-primary: #1e293b;
	--swofcommerce-text-secondary: #64748b;
	--swofcommerce-text-muted: #94a3b8;
	--swofcommerce-bg-primary: #ffffff;
	--swofcommerce-bg-secondary: #f8fafc;
	--swofcommerce-border: #e2e8f0;
	--swofcommerce-radius-sm: 6px;
	--swofcommerce-radius-md: 8px;
	--swofcommerce-radius-lg: 12px;
	--swofcommerce-shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
	--swofcommerce-transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);

	font-family: inherit;
	max-width: 760px;
	margin: 0 auto 24px;
	padding: 22px;
	background: var(--swofcommerce-bg-primary);
	border: 1px solid var(--swofcommerce-border);
	border-radius: var(--swofcommerce-radius-lg);
	box-shadow: var(--swofcommerce-shadow-md);
	color: var(--swofcommerce-text-primary);
	box-sizing: border-box;
}

.w-popup-box-content .dignipets-form-widget,
.dignipets-popup-box-content .dignipets-form-widget,
.dignipets-price-modal {
	max-width: 760px;
	margin: 0 auto;
	padding: 36px 36px 24px;
	background: #ffffff;
	border: 0;
	box-shadow: none;
	border-radius: 0;
	background-image: url("https://www.dignipets.co.uk/wp-content/uploads/2023/09/MicrosoftTeams-image-32.png");
	background-repeat: no-repeat;
	background-size: 150px;
	background-position: right 18px bottom 10px;
}

.dignipets-brand-head {
	display: flex;
	align-items: center;
	gap: 14px;
	margin-bottom: 20px;
	padding: 0;
	border-radius: 0;
	background: transparent;
	color: var(--swofcommerce-text-primary);
}

.dignipets-modal-title {
	margin: 0 0 14px;
	text-align: center;
	font-size: 50px;
	font-size: clamp(28px, 4vw, 50px);
	line-height: 1.1;
	color: #323641;
}

.dignipets-brand-title {
	margin: 0 0 8px;
	font-size: 28px;
	font-weight: 700;
	line-height: 1.2;
	color: var(--swofcommerce-text-primary);
}

.dignipets-form-widget [data-lastpass-icon-root] {
	display: none !important;
}

.dignipets-pricing-modal-shortcode,
.dignipets-postcode-modal-shortcode {
	position: relative;
}

.dignipets-pricing-modal-shortcode > .dignipets-popup-overlay,
.dignipets-postcode-modal-shortcode > .dignipets-popup-overlay {
	display: none;
	position: fixed;
	inset: 0;
	z-index: 9998;
	background: rgba(0, 0, 0, 0.85);
}

.dignipets-pricing-modal-shortcode > .dignipets-popup-overlay[hidden],
.dignipets-postcode-modal-shortcode > .dignipets-popup-overlay[hidden],
.dignipets-pricing-modal-shortcode > .dignipets-popup-wrap[hidden],
.dignipets-postcode-modal-shortcode > .dignipets-popup-wrap[hidden] {
	display: none !important;
}

.dignipets-pricing-modal-shortcode > .dignipets-popup-wrap,
.dignipets-postcode-modal-shortcode > .dignipets-popup-wrap {
	display: none;
	position: fixed;
	left: 50%;
	top: 50%;
	transform: translate(-50%, -50%);
	z-index: 9999;
	width: min(92vw, var(--popup-width, 800px));
	max-height: 92vh;
	overflow: auto;
}

.dignipets-pricing-modal-shortcode .dignipets-popup-box,
.dignipets-postcode-modal-shortcode .dignipets-popup-box {
	background: #fff;
}

.dignipets-pricing-modal-shortcode > .dignipets-popup-wrap .dignipets-popup-box,
.dignipets-postcode-modal-shortcode > .dignipets-popup-wrap .dignipets-popup-box,
.dignipets-pricing-modal-shortcode > .dignipets-popup-wrap .dignipets-popup-box-h,
.dignipets-postcode-modal-shortcode > .dignipets-popup-wrap .dignipets-popup-box-h,
.dignipets-pricing-modal-shortcode > .dignipets-popup-wrap .dignipets-popup-box-content,
.dignipets-postcode-modal-shortcode > .dignipets-popup-wrap .dignipets-popup-box-content {
	background-color: #ffffff !important;
	opacity: 1 !important;
}

.dignipets-popup-closer {
	position: absolute;
	right: 10px;
	top: 8px;
	z-index: 3;
	width: 36px;
	height: 36px;
	border: 0;
	border-radius: 999px;
	background: transparent;
	color: #444;
	cursor: pointer;
	font-size: 24px;
	line-height: 1;
}

.dignipets-popup-closer::before {
	content: '×';
}

.dignipets-brand-subtitle {
	margin: 0;
	font-size: 14px;
	color: var(--swofcommerce-text-secondary);
}

.dignipets-label {
	display: block;
	font-weight: 600;
	font-size: 19px;
	margin-bottom: 8px;
	text-transform: none;
	letter-spacing: 0;
	color: var(--swofcommerce-text-primary);
	text-align: left;
}

.dignipets-input {
	width: 100%;
	box-sizing: border-box;
	padding: 10px 12px;
	border: 1px solid var(--swofcommerce-border);
	border-radius: 24px;
	font-size: 22px;
	line-height: 1.2;
	min-height: 54px;
	color: var(--swofcommerce-text-primary);
	background: #ececec;
	transition: var(--swofcommerce-transition);
}

.dignipets-input:focus {
	outline: none;
	border-color: var(--swofcommerce-primary);
	box-shadow: 0 0 0 2px var(--swofcommerce-primary-light);
}

.dignipets-search-row {
	display: flex !important;
	align-items: center !important;
	gap: 8px !important;
	width: 100%;
}

.dignipets-search-form-new {
	width: 100%;
	max-width: 100%;
	margin: 0;
}

.dignipets-search-form-new .dignipets-input {
	flex: 1 1 50%;
	min-width: 0;
}

.dignipets-search-form-new .dignipets-search-submit {
	flex: 1 1 50%;
}

.dignipets-form-widget.dignipets-postcode-search {
	max-width: 100%;
	width: 100%;
	padding: 0;
	border: 0;
	box-shadow: none;
	background: transparent;
}

.dignipets-btn {
	appearance: none;
	border: 1px solid transparent;
	cursor: pointer;
	padding: 10px 36px;
	border-radius: 999px;
	font-size: 22px;
	font-weight: 600;
	line-height: 1.2;
	text-decoration: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	transition: var(--swofcommerce-transition);
}

button.dignipets-btn,
a.dignipets-btn {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	text-decoration: none !important;
}

.dignipets-nav .w-btn.dignipets-btn {
	min-width: 140px;
}

.dignipets-btn-primary {
	background: #6366f1;
	color: #fff;
}

.dignipets-btn-primary:hover,
.dignipets-btn-primary:focus {
	background: #4f46e5;
	color: #fff;
}

.dignipets-btn-secondary {
	background: #86a0af;
	color: #fff;
	border: 0;
}

.dignipets-btn[disabled] {
	opacity: 0.65;
	cursor: not-allowed;
}

.dignipets-spinner {
	width: 14px;
	height: 14px;
	border: 2px solid rgba(255, 255, 255, 0.45);
	border-top-color: #ffffff;
	border-radius: 999px;
	animation: dignipets-spin 0.8s linear infinite;
	display: none;
}

.dignipets-btn.is-loading .dignipets-spinner,
.dignipets-loading .dignipets-spinner {
	display: inline-block;
}

.dignipets-loading .dignipets-spinner {
	border-color: rgba(37, 99, 235, 0.28);
	border-top-color: #2563eb;
}

.dignipets-btn.is-loading .dignipets-btn-text {
	opacity: 0.8;
}

.dignipets-inline-error {
	min-height: 20px;
	margin: 10px 0 0;
	font-size: 16px;
	color: var(--swofcommerce-danger);
	text-align: center;
}

.dignipets-steps {
	display: flex;
	justify-content: center;
	gap: 8px;
	margin: 16px 0 32px;
}

.dignipets-step {
	width: 15px;
	height: 15px;
	border-radius: 99px;
	background: #d9dfcf;
}

.dignipets-step.is-active {
	background: #9dad8a;
}

.dignipets-tab {
	margin-bottom: 18px;
}

#dignipets-breed-wrap {
	margin-top: 14px;
}

.dignipets-note {
	margin: 8px 0 0;
	font-size: 14px;
	color: var(--swofcommerce-text-secondary);
	text-align: center;
}

.dignipets-loading {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 16px;
	padding: 32px 20px;
	border: none;
	border-radius: 0;
	background: transparent;
	margin-bottom: 12px;
	text-align: center;
}

.dignipets-loading .dignipets-spinner {
	width: 40px;
	height: 40px;
	border-width: 3px;
}

.dignipets-loading[hidden] {
	display: none !important;
}

.dignipets-price-table {
	font-size: 18px;
	line-height: 1.55;
	color: var(--swofcommerce-text-primary);
	text-align: center;
}

.dignipets-price-table .price-range {
	display: block;
	margin-bottom: 10px;
}

.dignipets-nav {
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
	gap: 10px;
	margin-top: 32px;
}

.dignipets-nav [hidden] {
	display: none !important;
}

.dignipets-book-btn {
	background: #e4a39a;
}

.dignipets-book-btn:hover,
.dignipets-book-btn:focus {
	background: #d89389;
}

.dignipets-book-btn[hidden] {
	display: none !important;
}

.dignipets-inline-duplicate-hidden {
	display: none !important;
}

@keyframes dignipets-spin {
	to {
		transform: rotate(360deg);
	}
}

@media (max-width: 640px) {
	.w-popup-box-content .dignipets-form-widget,
	.dignipets-price-modal {
		padding: 24px 14px;
		background-size: 110px;
	}

	.dignipets-modal-title {
		font-size: clamp(26px, 7vw, 36px);
	}

	.dignipets-price-table {
		font-size: 16px;
	}

	.dignipets-search-row {
		flex-direction: column !important;
		align-items: stretch !important;
	}

	.dignipets-search-form-new .dignipets-input,
	.dignipets-search-form-new .dignipets-search-submit {
		flex: 1 1 100%;
		width: 100%;
	}

	.dignipets-nav {
		flex-direction: column-reverse;
	}

	.dignipets-btn {
		width: 100%;
	}
}
