/**
 * 4everpet Portal — Frontend styles
 * Integrazione con variabili globali Elementor.
 */

:root {
	--fpet-primary: var(--e-global-color-primary, #2c6e49);
	--fpet-secondary: var(--e-global-color-secondary, #6c757d);
	--fpet-text: var(--e-global-color-text, #333333);
	--fpet-accent: var(--e-global-color-accent, #1b4332);
	--fpet-border: var(--e-global-color-7c8a96, #dee2e6);
	--fpet-bg: var(--e-global-color-4a9eff4, #f8f9fa);
	--fpet-white: var(--e-global-color-ffffff, #ffffff);
	--fpet-radius: 6px;
	--fpet-shadow: 0 2px 10px rgba(0, 0, 0, 0.08);
	--fpet-transition: 0.2s ease;
	--fpet-font: var(--e-global-typography-text-font-family, inherit);
}

/* ── Layout portale ─────────────────────────────────────── */
.fpet-portal {
	max-width: 960px;
	margin: 0;
	padding: 0;
	font-family: var(--fpet-font);
	color: var(--fpet-text);
}

.fpet-portal--narrow {
	max-width: 720px;
}

.fpet-portal__title {
	font-size: 1.75rem;
	font-weight: 700;
	color: var(--fpet-accent);
	margin: 0 0 0.5rem;
}

.fpet-portal__subtitle {
	color: var(--fpet-secondary);
	margin: 0 0 2rem;
}

/* ── Alert ──────────────────────────────────────────────── */
.fpet-alert {
	padding: 1rem 1.25rem;
	border-radius: var(--fpet-radius);
	border-left: 4px solid;
	margin: 1rem 0;
	font-family: "DM Sans", sans-serif;
	font-size: 14px;
	line-height: 1.5;
}

@media (min-width: 1025px) {
	.fpet-alert {
		font-size: 16px;
	}
}

.fpet-alert-error {
	background: #f8d7da;
	border-color: #dc3545;
	color: #721c24;
}

.fpet-alert-success {
	background: #d4edda;
	border-color: #28a745;
	color: #155724;
}

.fpet-alert-info {
	background: #d1ecf1;
	border-color: #17a2b8;
	color: #0c5460;
}

.fpet-alert-warning {
	background: #fff3cd;
	border-color: #ffc107;
	color: #856404;
}

.fpet-alert__text {
	margin: 0;
}

.fpet-alert__list {
	margin: 0.5rem 0 0;
	padding: 0 0 0 1.25rem;
	list-style: disc;
}

.fpet-alert__list:first-child {
	margin-top: 0;
}

.fpet-alert__list li {
	margin: 0;
	padding: 0;
}

.fpet-alert__list li + li {
	margin-top: 0.35rem;
}

.fpet-form__errors {
	box-sizing: border-box;
	margin: 0 0 1rem;
	padding: 1rem 1.25rem 1rem 2rem;
	list-style: disc;
	background: #f8d7da;
	border-left: 4px solid #dc3545;
	border-radius: 14px;
	color: #721c24;
	font-family: "DM Sans", sans-serif;
	font-size: 14px;
	line-height: 1.5;
	box-shadow: none;
}

.fpet-form__errors li {
	margin: 0;
	padding: 0;
}

.fpet-form__errors li + li {
	margin-top: 0.35rem;
}

@media (min-width: 1025px) {
	.fpet-form__errors {
		font-size: 16px;
	}
}

/* ── Progress bar multi-step ──────────────────────────── */
.fpet-progress {
	display: flex;
	justify-content: space-between;
	margin-bottom: 2rem;
	position: relative;
	gap: 0.5rem;
}

.fpet-progress::before {
	content: '';
	position: absolute;
	top: 18px;
	left: 8%;
	right: 8%;
	height: 2px;
	background: var(--fpet-border);
	z-index: 0;
}

.fpet-progress-step {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.4rem;
	flex: 1;
	position: relative;
	z-index: 1;
	text-align: center;
}

.fpet-progress-step__number {
	width: 36px;
	height: 36px;
	border-radius: 50%;
	background: #F1EFEB;
	border: 2px solid #C8BEA8;
	color: #1A1A1A;
	display: flex;
	align-items: center;
	justify-content: center;
	font-family: "DM Sans", sans-serif;
	font-weight: 700;
	font-size: 14px;
	transition: background var(--fpet-transition), color var(--fpet-transition), border-color var(--fpet-transition);
}

@media (min-width: 1025px) {
	.fpet-progress-step__number {
		font-size: 16px;
	}
}

.fpet-progress-step__label {
	font-family: "DM Sans", sans-serif;
	font-size: 10px;
	font-weight: 300;
	color: #1A1A1A;
	line-height: 1.2;
}

@media (min-width: 1025px) {
	.fpet-progress-step__label {
		font-size: 12px;
	}
}

.fpet-progress-step.active .fpet-progress-step__number,
.fpet-progress-step.done .fpet-progress-step__number {
	background: #3ECFDA;
	border-color: #3ECFDA;
	color: #1A1A1A;
}

.fpet-progress-step.active .fpet-progress-step__label,
.fpet-progress-step.done .fpet-progress-step__label {
	color: #1A1A1A;
	font-weight: 600;
}

/* ── Form multi-step ──────────────────────────────────── */
.fpet-form__section-title {
	font-size: 1.1rem;
	color: var(--fpet-accent);
	margin: 0 0 1.25rem;
	padding-bottom: 0.5rem;
	border-bottom: 2px solid var(--fpet-primary);
}

.fpet-step {
	display: none;
}

.fpet-step.active {
	display: block;
	animation: fpetFadeIn 0.25s ease;
}

@keyframes fpetFadeIn {
	from { opacity: 0; transform: translateY(8px); }
	to   { opacity: 1; transform: translateY(0); }
}

.fpet-form__row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1rem;
	margin-bottom: 1rem;
}

.fpet-field {
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 0.35rem;
}

.fpet-field--full {
	grid-column: 1 / -1;
}

.fpet-field label,
.fpet-field__legend {
	font-size: 0.875rem;
	font-weight: 500;
	color: var(--fpet-text);
}

.fpet-field--required label::after {
	content: ' *';
	color: #dc3545;
}

.fpet-field input:not([type="checkbox"]):not([type="radio"]),
.fpet-field select,
.fpet-field textarea {
	padding: 0.6rem 0.75rem;
	border: 1px solid var(--fpet-border);
	border-radius: var(--fpet-radius);
	font-size: 0.95rem;
	transition: border-color var(--fpet-transition);
	background: var(--fpet-white);
	width: 100%;
	box-sizing: border-box;
}

.fpet-field input:focus,
.fpet-field select:focus,
.fpet-field textarea:focus {
	outline: none;
	border-color: var(--fpet-primary);
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--fpet-primary) 20%, transparent);
}

.fpet-field input.fpet-field--error,
.fpet-field select.fpet-field--error {
	border-color: #dc3545;
}

.fpet-radio,
.fpet-checkbox {
	display: flex;
	align-items: flex-start;
	gap: 0.5rem;
	margin-bottom: 0.5rem;
	font-size: 0.9rem;
	cursor: pointer;
}

.fpet-checkbox--block {
	padding: 0.75rem;
	border: 1px solid var(--fpet-border);
	border-radius: var(--fpet-radius);
	background: var(--fpet-bg);
	line-height: 1.5;
}

.fpet-checkbox--block span {
	flex: 1;
}

.fpet-prezzo-box {
	background: var(--fpet-primary);
	color: var(--fpet-white);
	padding: 1.25rem;
	border-radius: var(--fpet-radius);
	margin-top: 1rem;
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 0.5rem 1rem;
}

.fpet-prezzo-box__label {
	display: block;
	font-size: 0.85rem;
	font-weight: 600;
	color: rgba(255, 255, 255, 0.8);
	opacity: 1;
}

.fpet-prezzo-box__value {
	font-family: Playfair, Georgia, serif;
	font-size: 20px;
	font-weight: 800;
	line-height: 1em;
	letter-spacing: -0.02em;
	color: #3ECFDA;
}

@media (min-width: 768px) {
	.fpet-prezzo-box__value {
		font-size: 24px;
	}
}

@media (min-width: 1025px) {
	.fpet-prezzo-box__value {
		font-size: 28px;
	}
}

.fpet-prezzo-box__fascia {
	display: block;
	width: 100%;
	margin-top: 0.35rem;
	font-size: 0.85rem;
	font-weight: 600;
	color: rgba(255, 255, 255, 0.8);
	opacity: 1;
}

.fpet-summary {
	background: #E8E0D0;
	border: 2px solid #C8BEA8;
	border-radius: 20px;
	box-shadow: 3px 3px 20px rgba(0, 0, 0, 0.14);
	padding: 1.25rem;
}

.fpet-summary__group {
	margin-bottom: 1rem;
}

.fpet-summary__group:last-child {
	margin-bottom: 0;
}

.fpet-summary__title {
	font-size: 0.8rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: var(--fpet-secondary);
	margin: 0 0 0.5rem;
}

.fpet-summary__row {
	display: flex;
	justify-content: space-between;
	gap: 1rem;
	padding: 0.3rem 0;
	font-size: 0.9rem;
	border-bottom: 1px solid var(--fpet-border);
}

.fpet-summary__row:last-child {
	border-bottom: none;
}

.fpet-summary__label {
	font-family: "DM Sans", sans-serif;
	font-size: 14px;
	color: #1A1A1A;
}

@media (min-width: 1025px) {
	.fpet-summary__label {
		font-size: 16px;
	}
}

.fpet-summary__value {
	font-family: "DM Sans", sans-serif;
	font-size: 14px;
	font-weight: 600;
	color: #1A1A1A;
	text-align: right;
}

@media (min-width: 1025px) {
	.fpet-summary__value {
		font-size: 16px;
	}
}

.fpet-summary__placeholder {
	color: var(--fpet-secondary);
	font-style: italic;
	margin: 0;
}

.fpet-form__actions {
	display: flex;
	gap: 0.75rem;
	justify-content: flex-end;
	margin-top: 1.5rem;
	flex-wrap: wrap;
}

/* ── Buttons ──────────────────────────────────────────── */
.fpet-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.4rem;
	padding: 0.65rem 1.4rem;
	border: none;
	border-radius: var(--fpet-radius);
	font-size: 0.95rem;
	font-weight: 600;
	cursor: pointer;
	text-decoration: none;
	transition: background var(--fpet-transition), opacity var(--fpet-transition);
}

.fpet-btn:disabled {
	opacity: 0.6;
	cursor: not-allowed;
}

.fpet-btn--primary {
	background: var(--fpet-primary);
	color: var(--fpet-white);
}

.fpet-btn--primary:hover:not(:disabled) {
	background: #1AABB5;
	color: #ffffff;
}

.fpet-btn--secondary {
	background: var(--fpet-secondary);
	color: var(--fpet-white);
}

.fpet-btn--secondary:hover:not(:disabled) {
	filter: brightness(0.92);
}

.fpet-link {
	font-family: "DM Sans", sans-serif;
	font-size: 14px;
	font-weight: 600;
	color: #1AABB5;
	text-decoration: none;
}

@media (min-width: 1025px) {
	.fpet-link {
		font-size: 16px;
	}
}

.fpet-link:hover {
	color: #3ECFDA;
	text-decoration: underline;
}

/* ── Dashboard ────────────────────────────────────────── */
.fpet-dashboard__header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	margin-bottom: 0.75rem;
	padding-bottom: 3%;
	flex-wrap: wrap;
}

.fpet-dashboard__header > div {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	min-width: 0;
}

/* Lista prenotazioni: pulsante allineato all’h1 (non al blocco titolo+sottotitolo) */
@media (min-width: 769px) {
	.fpet-dashboard--list .fpet-dashboard__header {
		display: grid;
		grid-template-columns: minmax(0, 1fr) auto;
		grid-template-rows: auto auto;
		column-gap: 1rem;
		align-items: center;
	}

	.fpet-dashboard--list .fpet-dashboard__header > div {
		display: contents;
	}

	.fpet-dashboard--list .fpet-dashboard__header .fpet-portal__title {
		grid-column: 1;
		grid-row: 1;
	}

	.fpet-dashboard--list .fpet-dashboard__header .fpet-portal__subtitle {
		grid-column: 1;
		grid-row: 2;
	}

	.fpet-dashboard--list .fpet-dashboard__header > .fpet-btn--primary {
		grid-column: 2;
		grid-row: 1;
		align-self: center;
		margin-bottom: 0;
	}
}

/* Match homepage Elementor CTA pair (.elementor-animation-float).
   Scoped selectors beat Hello Elementor reset.css on <button>. */
.fpet-dashboard__header .fpet-btn--primary,
.fpet-landing__actions .fpet-btn--primary,
.fpet-login .fpet-btn--primary,
.fpet-login button.fpet-btn--primary,
.fpet-registration .fpet-btn--primary,
.fpet-registration button.fpet-btn--primary,
.fpet-booking .fpet-btn--primary,
.fpet-booking button.fpet-btn--primary,
.fpet-booking [type="button"].fpet-btn--primary,
.fpet-booking [type="submit"].fpet-btn--primary,
.fpet-profile .fpet-btn--primary,
.fpet-profile button.fpet-btn--primary,
.fpet-profile [type="submit"].fpet-btn--primary,
.fpet-confirmation .fpet-btn--primary,
.fpet-confirmation a.fpet-btn--primary {
	display: inline-block;
	width: auto;
	background-color: #3ECFDA !important;
	border: 2px solid #A8EDF2 !important;
	border-radius: 40px;
	box-shadow: 3px 3px 10px rgba(62, 207, 218, 0.43);
	color: #ffffff !important;
	font-family: "DM Sans", sans-serif;
	font-size: 16px;
	font-weight: 600;
	line-height: 1;
	letter-spacing: normal;
	text-transform: none;
	padding: 13px 22px;
	min-height: 0;
	text-align: center;
	text-decoration: none;
	outline: none;
	-webkit-tap-highlight-color: transparent;
	transition: transform 0.3s ease-out, background-color 0.3s ease-out, color 0.3s ease-out, border-color 0.3s ease-out;
}

.fpet-landing__actions .fpet-btn--secondary {
	display: inline-block;
	width: auto;
	background-color: transparent;
	border: 2px solid #1A1A1A;
	border-radius: 40px;
	box-shadow: none;
	color: #1A1A1A;
	font-family: "DM Sans", sans-serif;
	font-size: 16px;
	font-weight: 600;
	line-height: 1;
	letter-spacing: normal;
	text-transform: none;
	padding: 13px 22px;
	min-height: 0;
	text-align: center;
	text-decoration: none;
	transition: transform 0.3s ease-out, background-color 0.3s ease-out, color 0.3s ease-out, border-color 0.3s ease-out;
}

.fpet-landing__actions .fpet-btn--secondary:hover:not(:disabled),
.fpet-landing__actions .fpet-btn--secondary:focus {
	background-color: transparent;
	border-color: #3ECFDA;
	color: #3ECFDA;
	transform: translateY(-8px);
}

.fpet-dashboard__header .fpet-btn--primary:hover:not(:disabled),
.fpet-dashboard__header .fpet-btn--primary:focus,
.fpet-dashboard__header .fpet-btn--primary:focus-visible,
.fpet-dashboard__header .fpet-btn--primary:active,
.fpet-landing__actions .fpet-btn--primary:hover:not(:disabled),
.fpet-landing__actions .fpet-btn--primary:focus,
.fpet-landing__actions .fpet-btn--primary:focus-visible,
.fpet-landing__actions .fpet-btn--primary:active,
.fpet-login .fpet-btn--primary:hover:not(:disabled),
.fpet-login .fpet-btn--primary:focus,
.fpet-login .fpet-btn--primary:focus-visible,
.fpet-login .fpet-btn--primary:active,
.fpet-login button.fpet-btn--primary:hover,
.fpet-login button.fpet-btn--primary:focus,
.fpet-login button.fpet-btn--primary:active,
.fpet-registration .fpet-btn--primary:hover:not(:disabled),
.fpet-registration .fpet-btn--primary:focus,
.fpet-registration .fpet-btn--primary:focus-visible,
.fpet-registration .fpet-btn--primary:active,
.fpet-registration button.fpet-btn--primary:hover,
.fpet-registration button.fpet-btn--primary:focus,
.fpet-registration button.fpet-btn--primary:active,
.fpet-booking .fpet-btn--primary:hover:not(:disabled),
.fpet-booking .fpet-btn--primary:focus,
.fpet-booking .fpet-btn--primary:focus-visible,
.fpet-booking .fpet-btn--primary:active,
.fpet-booking button.fpet-btn--primary:hover,
.fpet-booking button.fpet-btn--primary:focus,
.fpet-booking button.fpet-btn--primary:focus-visible,
.fpet-booking button.fpet-btn--primary:active,
.fpet-booking [type="button"].fpet-btn--primary:hover,
.fpet-booking [type="button"].fpet-btn--primary:focus,
.fpet-booking [type="button"].fpet-btn--primary:active,
.fpet-booking [type="submit"].fpet-btn--primary:hover,
.fpet-booking [type="submit"].fpet-btn--primary:focus,
.fpet-booking [type="submit"].fpet-btn--primary:active,
.fpet-profile .fpet-btn--primary:hover:not(:disabled),
.fpet-profile .fpet-btn--primary:focus,
.fpet-profile .fpet-btn--primary:focus-visible,
.fpet-profile .fpet-btn--primary:active,
.fpet-profile button.fpet-btn--primary:hover,
.fpet-profile button.fpet-btn--primary:focus,
.fpet-profile button.fpet-btn--primary:active,
.fpet-profile [type="submit"].fpet-btn--primary:hover,
.fpet-profile [type="submit"].fpet-btn--primary:focus,
.fpet-profile [type="submit"].fpet-btn--primary:active,
.fpet-confirmation .fpet-btn--primary:hover,
.fpet-confirmation .fpet-btn--primary:focus,
.fpet-confirmation .fpet-btn--primary:focus-visible,
.fpet-confirmation .fpet-btn--primary:active,
.fpet-confirmation a.fpet-btn--primary:hover,
.fpet-confirmation a.fpet-btn--primary:focus,
.fpet-confirmation a.fpet-btn--primary:active {
	background-color: #1AABB5 !important;
	border-color: #A8EDF2 !important;
	box-shadow: 3px 3px 10px rgba(62, 207, 218, 0.43);
	color: #ffffff !important;
	transform: translateY(-8px);
	outline: none;
	-webkit-tap-highlight-color: transparent;
}

.fpet-booking .fpet-btn--secondary,
.fpet-booking button.fpet-btn--secondary,
.fpet-booking [type="button"].fpet-btn--secondary,
.fpet-profile .fpet-btn--secondary,
.fpet-profile button.fpet-btn--secondary,
.fpet-profile [type="submit"].fpet-btn--secondary {
	display: inline-block;
	width: auto;
	background: transparent !important;
	background-color: transparent !important;
	border: 2px solid #1A1A1A !important;
	border-radius: 40px;
	box-shadow: none;
	color: #1A1A1A !important;
	font-family: "DM Sans", sans-serif;
	font-size: 16px;
	font-weight: 600;
	line-height: 1;
	letter-spacing: normal;
	text-transform: none;
	padding: 13px 22px;
	min-height: 0;
	text-align: center;
	text-decoration: none;
	outline: none;
	-webkit-tap-highlight-color: transparent;
	transition: transform 0.3s ease-out, background-color 0.3s ease-out, color 0.3s ease-out, border-color 0.3s ease-out;
}

.fpet-confirmation .fpet-btn--secondary,
.fpet-confirmation a.fpet-btn--secondary,
.fpet-confirmation .fpet-form__actions .fpet-btn--secondary {
	display: inline-block !important;
	width: auto !important;
	max-width: max-content;
	box-sizing: border-box !important;
	background: transparent !important;
	background-color: transparent !important;
	border: 2px solid #1A1A1A !important;
	border-radius: 40px !important;
	box-shadow: none !important;
	color: #1A1A1A !important;
	font-family: "DM Sans", sans-serif !important;
	font-size: 16px !important;
	font-weight: 600 !important;
	line-height: 1 !important;
	letter-spacing: normal !important;
	text-transform: none !important;
	padding: 13px 22px !important;
	min-height: 0 !important;
	height: auto !important;
	text-align: center;
	text-decoration: none !important;
	outline: none;
	-webkit-tap-highlight-color: transparent;
	transition: transform 0.3s ease-out, background-color 0.3s ease-out, color 0.3s ease-out, border-color 0.3s ease-out;
}

.fpet-booking .fpet-btn--secondary:hover:not(:disabled),
.fpet-booking .fpet-btn--secondary:focus,
.fpet-booking .fpet-btn--secondary:focus-visible,
.fpet-booking .fpet-btn--secondary:active,
.fpet-booking button.fpet-btn--secondary:hover,
.fpet-booking button.fpet-btn--secondary:focus,
.fpet-booking button.fpet-btn--secondary:active,
.fpet-booking [type="button"].fpet-btn--secondary:hover,
.fpet-booking [type="button"].fpet-btn--secondary:focus,
.fpet-booking [type="button"].fpet-btn--secondary:active,
.fpet-profile .fpet-btn--secondary:hover:not(:disabled),
.fpet-profile .fpet-btn--secondary:focus,
.fpet-profile .fpet-btn--secondary:focus-visible,
.fpet-profile .fpet-btn--secondary:active,
.fpet-profile button.fpet-btn--secondary:hover,
.fpet-profile button.fpet-btn--secondary:focus,
.fpet-profile button.fpet-btn--secondary:active,
.fpet-profile [type="submit"].fpet-btn--secondary:hover,
.fpet-profile [type="submit"].fpet-btn--secondary:focus,
.fpet-profile [type="submit"].fpet-btn--secondary:active,
.fpet-confirmation .fpet-btn--secondary:hover,
.fpet-confirmation .fpet-btn--secondary:focus,
.fpet-confirmation .fpet-btn--secondary:focus-visible,
.fpet-confirmation .fpet-btn--secondary:active,
.fpet-confirmation a.fpet-btn--secondary:hover,
.fpet-confirmation a.fpet-btn--secondary:focus,
.fpet-confirmation a.fpet-btn--secondary:active {
	background: transparent !important;
	background-color: transparent !important;
	border-color: #3ECFDA !important;
	color: #3ECFDA !important;
	box-shadow: none !important;
	transform: translateY(-8px);
	outline: none;
	-webkit-tap-highlight-color: transparent;
}

@media (max-width: 1024px) {
	.fpet-dashboard__header .fpet-btn--primary,
	.fpet-landing__actions .fpet-btn--primary,
	.fpet-landing__actions .fpet-btn--secondary,
	.fpet-login .fpet-btn--primary,
	.fpet-registration .fpet-btn--primary,
	.fpet-booking .fpet-btn--primary,
	.fpet-booking .fpet-btn--secondary,
	.fpet-booking button.fpet-btn--secondary,
	.fpet-booking [type="button"].fpet-btn--secondary,
	.fpet-profile .fpet-btn--primary,
	.fpet-profile .fpet-btn--secondary,
	.fpet-confirmation .fpet-btn--primary,
	.fpet-confirmation .fpet-btn--secondary,
	.fpet-confirmation a.fpet-btn--secondary,
	.fpet-confirmation .fpet-form__actions .fpet-btn--secondary {
		font-size: 14px !important;
	}
}

@media (max-width: 767px) {
	.fpet-dashboard__header .fpet-btn--primary,
	.fpet-landing__actions .fpet-btn--primary,
	.fpet-landing__actions .fpet-btn--secondary,
	.fpet-login .fpet-btn--primary,
	.fpet-registration .fpet-btn--primary,
	.fpet-booking .fpet-btn--primary,
	.fpet-booking .fpet-btn--secondary,
	.fpet-booking button.fpet-btn--secondary,
	.fpet-booking [type="button"].fpet-btn--secondary,
	.fpet-profile .fpet-btn--primary,
	.fpet-profile .fpet-btn--secondary,
	.fpet-confirmation .fpet-btn--primary,
	.fpet-confirmation .fpet-btn--secondary,
	.fpet-confirmation a.fpet-btn--secondary,
	.fpet-confirmation .fpet-form__actions .fpet-btn--secondary {
		padding: 10px 15px !important;
		font-size: 14px !important;
		width: auto !important;
	}
}

.fpet-dashboard .fpet-portal__title,
.fpet-landing .fpet-portal__title,
.fpet-login .fpet-portal__title,
.fpet-registration .fpet-portal__title,
.ep-registration .ep-portal__title,
.fpet-booking .fpet-portal__title,
.fpet-confirmation .fpet-portal__title {
	font-family: Playfair, Georgia, serif;
	font-size: 40px;
	font-weight: 800;
	line-height: 0.9em;
	color: #1A1A1A;
	letter-spacing: 0;
	margin: 0;
}

.fpet-dashboard__header .fpet-btn--primary {
	align-self: center;
	flex-shrink: 0;
}

@media (min-width: 768px) {
	.fpet-dashboard .fpet-portal__title,
	.fpet-landing .fpet-portal__title,
	.fpet-login .fpet-portal__title,
	.fpet-registration .fpet-portal__title,
	.ep-registration .ep-portal__title,
	.fpet-booking .fpet-portal__title,
	.fpet-confirmation .fpet-portal__title {
		font-size: 50px;
	}
}

@media (min-width: 1025px) {
	.fpet-dashboard .fpet-portal__title,
	.fpet-landing .fpet-portal__title,
	.fpet-login .fpet-portal__title,
	.fpet-registration .fpet-portal__title,
	.ep-registration .ep-portal__title,
	.fpet-booking .fpet-portal__title,
	.fpet-confirmation .fpet-portal__title {
		font-size: 70px;
	}
}

.fpet-dashboard__section {
	margin-bottom: 3rem;
}

.fpet-dashboard__section h2 {
	font-family: "DM Sans", sans-serif;
	font-size: 12px;
	font-weight: 700;
	line-height: 1.3em;
	letter-spacing: 2px;
	text-transform: uppercase;
	color: #1AABB5;
	margin: 0 0 1rem;
	margin-left: 2%;
}

@media (min-width: 1025px) {
	.fpet-dashboard__section h2 {
		font-size: 14px;
		margin-left: 1%;
	}
}

.fpet-dashboard__section-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem 1rem;
	margin-bottom: 1rem;
	flex-wrap: nowrap;
}

.fpet-dashboard__section-header h2 {
	margin: 0 0 0 2%;
	flex: 1 1 auto;
	min-width: 0;
	line-height: 1.3em;
}

.fpet-dashboard__section-header .fpet-link {
	flex: 0 0 auto;
	margin: 0 2% 0 0;
	line-height: 1.3em;
	white-space: nowrap;
	font-style: italic;
}

@media (min-width: 1025px) {
	.fpet-dashboard__section-header h2 {
		margin-left: 1%;
	}

	.fpet-dashboard__section-header .fpet-link {
		margin-right: 1%;
	}
}

@media (max-width: 767px) {
	.fpet-dashboard__section-header {
		flex-wrap: wrap;
		align-items: baseline;
	}

	.fpet-dashboard__section-header h2 {
		flex: 1 1 auto;
	}

	.fpet-dashboard__section-header .fpet-link {
		margin-left: auto;
	}
}

.fpet-dashboard__empty {
	font-family: "DM Sans", sans-serif;
	font-size: 14px;
	font-style: italic;
	color: #1A1A1A;
	margin: 0;
	margin-left: 2%;
}

@media (min-width: 1025px) {
	.fpet-dashboard__empty {
		font-size: 16px;
		margin-left: 1%;
	}
}

.fpet-stats {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1rem;
}

.fpet-stats__item {
	background: var(--fpet-white);
	border: 1px solid var(--fpet-border);
	border-radius: var(--fpet-radius);
	padding: 1.25rem;
	text-align: center;
	box-shadow: var(--fpet-shadow);
}

.fpet-stats__value {
	display: block;
	font-family: Playfair, Georgia, serif;
	font-size: 25px;
	font-weight: 800;
	line-height: 1em;
	color: #3ECFDA;
}

@media (min-width: 768px) {
	.fpet-stats__value {
		font-size: 30px;
	}
}

@media (min-width: 1025px) {
	.fpet-stats__value {
		font-size: 35px;
	}
}

.fpet-stats__value--money {
	font-size: 20px;
	letter-spacing: -0.02em;
}

@media (min-width: 768px) {
	.fpet-stats__value--money {
		font-size: 24px;
	}
}

@media (min-width: 1025px) {
	.fpet-stats__value--money {
		font-size: 28px;
	}
}

.fpet-stats__label {
	display: block;
	margin-top: 0.35rem;
	font-size: 0.85rem;
	color: var(--fpet-secondary);
}

/* ── Table ────────────────────────────────────────────── */
.fpet-table-wrap {
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
}

.fpet-table {
	width: 100%;
	border-collapse: collapse;
	font-size: 0.9rem;
	box-shadow: none;
	border: 0;
	border-radius: 16px;
	overflow: hidden;
	min-width: 640px;
}

.fpet-table th {
	background: #1A1A1A;
	color: rgba(255, 255, 255, 0.8);
	font-family: "DM Sans", sans-serif;
	font-size: 0.85rem;
	font-weight: 600;
	letter-spacing: normal;
	line-height: 1.5;
	padding: 0.75rem 1rem;
	text-align: left;
	text-transform: uppercase;
	white-space: nowrap;
}

.fpet-table td {
	padding: 0.65rem 1rem;
	border-bottom: 1px solid var(--fpet-border);
	background-color: #E8E0D0 !important;
	font-family: "DM Sans", sans-serif;
	font-size: 14px;
	font-weight: 400;
	line-height: 1.5;
	letter-spacing: normal;
	color: #1A1A1A;
	text-transform: none;
}

@media (min-width: 1025px) {
	.fpet-table td {
		font-size: 16px;
	}
}

.fpet-table tr:last-child td {
	border-bottom: none;
}

/* Sovrascrive strisce/hover di Hello Elementor reset.css */
.fpet-table tbody > tr > td,
.fpet-table tbody > tr:nth-child(n) > td,
.fpet-table tbody > tr:hover > td,
.fpet-table tbody > tr:focus-within > td,
.ep-table tbody > tr > td,
.ep-table tbody > tr:nth-child(n) > td,
.ep-table tbody > tr:hover > td,
.ep-table tbody > tr:focus-within > td {
	background-color: #E8E0D0 !important;
}

/* Come «Vedi tutte le prenotazioni», senza corsivo */
.fpet-table a.fpet-link,
.ep-table a.fpet-link {
	font-family: "DM Sans", sans-serif !important;
	font-size: 14px !important;
	font-weight: 600 !important;
	font-style: normal !important;
	line-height: 1.3em;
	letter-spacing: normal;
	color: #1AABB5 !important;
	text-decoration: none !important;
	text-underline-offset: 3px;
}

@media (min-width: 1025px) {
	.fpet-table a.fpet-link,
	.ep-table a.fpet-link {
		font-size: 16px !important;
	}
}

.fpet-table a.fpet-link:hover,
.ep-table a.fpet-link:hover {
	color: #3ECFDA !important;
	text-decoration: underline !important;
}

/* ── Badge stato prenotazione ─────────────────────────── */
.fpet-badge-stato {
	display: inline-block;
	padding: 0.25rem 0.6rem;
	border-radius: 20px;
	font-family: "DM Sans", sans-serif;
	font-size: 0.75rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.03em;
	white-space: nowrap;
}

.fpet-badge-stato--ricevuta {
	background: #d4edda;
	color: #155724;
}

.fpet-badge-stato--in_lavorazione {
	background: #ffe0b2;
	color: #e65100;
}

.fpet-badge-stato--cremata {
	background: #e2d9f3;
	color: #4a235a;
}

.fpet-badge-stato--ceneri_consegnate {
	background: #d4edda;
	color: #155724;
}

/* ── Filtri e paginazione ─────────────────────────────── */
.fpet-filters {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	align-items: flex-end;
	margin-bottom: 0;
}

.fpet-dashboard__section .fpet-filters {
	margin-bottom: 1.5rem;
}

.fpet-filters label {
	font-size: 0.875rem;
	font-weight: 500;
}

.fpet-filters select {
	padding: 0.55rem 0.75rem;
	border: 1px solid var(--fpet-border);
	border-radius: var(--fpet-radius);
	min-width: 180px;
}

.fpet-pagination {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 0.9rem;
	margin-top: 1.5rem;
}

.fpet-pagination__link {
	font-family: "DM Sans", sans-serif;
	font-size: 14px;
	font-weight: 700;
	font-style: normal;
	color: #1AABB5;
	text-decoration: none;
	text-underline-offset: 3px;
	line-height: 1.3em;
	background: none;
	border: none;
	padding: 0;
	min-width: 0;
	height: auto;
}

@media (min-width: 1025px) {
	.fpet-pagination__link {
		font-size: 16px;
	}
}

.fpet-pagination__link:hover {
	color: #3ECFDA;
	text-decoration: underline;
	background: none;
	border: none;
}

.fpet-pagination__link--active {
	color: #3ECFDA;
	text-decoration: none;
	cursor: default;
	background: none;
	border: none;
}

.fpet-pagination__link--active:hover {
	color: #3ECFDA;
	text-decoration: none;
}

.fpet-form__hint {
	font-family: "DM Sans", sans-serif;
	font-size: 10px;
	color: #1A1A1A;
	margin-top: 0.75rem;
}

.fpet-dashboard__section .fpet-form__hint {
	margin-left: 2%;
}

@media (min-width: 1025px) {
	.fpet-form__hint {
		font-size: 12px;
	}

	.fpet-dashboard__section .fpet-form__hint {
		margin-left: 1%;
	}
}

[hidden] {
	display: none !important;
}

/* ── Responsive ───────────────────────────────────────── */
@media (max-width: 768px) {
	.fpet-stats {
		grid-template-columns: 1fr;
	}

	.fpet-dashboard__header {
		flex-direction: column-reverse;
		align-items: stretch;
	}

	.fpet-dashboard__header .fpet-btn--primary {
		align-self: flex-end;
		width: auto;
		margin-bottom: 0.75rem;
	}

	.fpet-form__actions {
		flex-direction: column;
	}

	.fpet-btn {
		width: 100%;
	}

	.fpet-login .fpet-form__actions {
		align-items: flex-end;
	}

	.fpet-login .fpet-btn--primary {
		width: auto;
		align-self: flex-end;
		max-width: max-content;
	}

	.fpet-registration .fpet-form__actions {
		align-items: flex-end;
	}

	.fpet-registration .fpet-btn--primary {
		width: auto;
		align-self: flex-end;
		max-width: max-content;
	}

	.fpet-booking .fpet-form__actions {
		flex-direction: row;
		flex-wrap: wrap;
		justify-content: flex-end;
		align-items: center;
	}

	.fpet-booking .fpet-btn,
	.fpet-booking .fpet-btn--primary,
	.fpet-booking .fpet-btn--secondary {
		width: auto;
		align-self: auto;
		max-width: max-content;
		flex: 0 0 auto;
	}

	.fpet-table {
		min-width: 560px;
	}
}

@media (max-width: 600px) {
	.fpet-form__row {
		grid-template-columns: 1fr;
	}

	.fpet-summary__row {
		flex-direction: column;
		align-items: flex-start;
	}

	.fpet-summary__value {
		text-align: left;
	}
}

@media (max-width: 767px) {
	.fpet-progress-step__label {
		display: none;
	}
}

/* ── 4EVERPET visual system ───────────────────────────── */
/*
 * La pagina pubblica usa fondo avorio, titoli Playfair e CTA turchesi.
 * Queste regole estendono lo stesso linguaggio all'area riservata senza
 * modificare gli stili generali del tema WordPress.
 */
.fpet-portal-page .entry-title {
	display: none;
}

.fpet-portal,
.ep-portal {
	--fpet-ink: #1a1a1a;
	--fpet-aqua: #3ecfda;
	--fpet-aqua-dark: #1aabb5;
	--fpet-cream: #e8e0d0;
	--fpet-surface: #fffdf8;
	--fpet-line: rgba(26, 26, 26, 0.14);
	--fpet-muted: #625f58;
	max-width: 1040px;
	/* Rientro pagina: solo sulla sezione Elementor (sotto). Niente padding qui. */
	padding: 0;
	margin: 0;
	color: var(--fpet-ink);
	font-family: "DM Sans", var(--fpet-font), sans-serif;
}

.fpet-portal--narrow,
.ep-portal {
	max-width: 760px;
}

.fpet-portal.fpet-dashboard {
	max-width: none;
	width: 100%;
}

/* Azzera padding/margini Elementor che si sommerebbero al rientro pagina */
.elementor-widget-wrap:has(.fpet-portal),
.elementor-widget-container:has(.fpet-portal),
.elementor-widget-wrap:has(.ep-portal),
.elementor-widget-container:has(.ep-portal) {
	margin: 0 !important;
	padding: 0 !important;
}

.elementor-section:has(.fpet-portal) > .elementor-container,
.elementor-section:has(.ep-portal) > .elementor-container {
	max-width: none !important;
	width: 100% !important;
	margin: 0 !important;
	padding: 0 !important;
}

.elementor-section:has(.fpet-portal) > .elementor-container > .elementor-column,
.elementor-section:has(.ep-portal) > .elementor-container > .elementor-column,
.elementor-section:has(.fpet-portal) .elementor-element-populated > .elementor-widget-wrap,
.elementor-section:has(.ep-portal) .elementor-element-populated > .elementor-widget-wrap {
	margin: 0 !important;
	padding: 0 !important;
}

/*
 * Unico rientro pagina (sezione/container Elementor):
 * Mobile 10% 5% 20% 5% | Tablet 5% 5% 10% 5% | Desktop 5% 10% 10% 10%
 * Eccezione dashboard loggata (home + lista): solo mobile → 5% 5% 20% 5%
 */
.elementor-section:has(.fpet-portal),
.e-con:has(.fpet-portal),
.elementor-section:has(.ep-portal),
.e-con:has(.ep-portal),
.elementor-element-008384fe,
.elementor-element-12fca7e,
.elementor-element-a626926,
.elementor-element-267f806 {
	box-sizing: border-box;
	min-height: 80vh !important;
	--padding-top: 10%;
	--padding-right: 5%;
	--padding-bottom: 20%;
	--padding-left: 5%;
	padding: 10% 5% 20% 5% !important;
}

/* Dashboard loggata (home + lista + profilo): eccezione solo mobile */
@media (max-width: 767px) {
	.elementor-section:has(.fpet-dashboard--home),
	.e-con:has(.fpet-dashboard--home),
	.elementor-element-12fca7e:has(.fpet-dashboard--home),
	.elementor-section:has(.fpet-dashboard--list),
	.e-con:has(.fpet-dashboard--list),
	.elementor-element-a626926:has(.fpet-dashboard--list),
	.elementor-element-a626926,
	.elementor-section:has(.fpet-profile),
	.e-con:has(.fpet-profile),
	.elementor-element-267f806:has(.fpet-profile),
	.elementor-element-267f806 {
		--padding-top: 5%;
		--padding-right: 5%;
		--padding-bottom: 20%;
		--padding-left: 5%;
		padding: 5% 5% 20% 5% !important;
	}
}

@media (min-width: 768px) {
	.elementor-section:has(.fpet-portal),
	.e-con:has(.fpet-portal),
	.elementor-section:has(.ep-portal),
	.e-con:has(.ep-portal),
	.elementor-element-008384fe,
	.elementor-element-12fca7e,
	.elementor-element-a626926,
	.elementor-element-267f806 {
		--padding-top: 5%;
		--padding-right: 5%;
		--padding-bottom: 10%;
		--padding-left: 5%;
		padding: 5% 5% 10% 5% !important;
	}
}

@media (min-width: 1025px) {
	.elementor-section:has(.fpet-portal),
	.e-con:has(.fpet-portal),
	.elementor-section:has(.ep-portal),
	.e-con:has(.ep-portal),
	.elementor-element-008384fe,
	.elementor-element-12fca7e,
	.elementor-element-a626926,
	.elementor-element-267f806 {
		--padding-top: 5%;
		--padding-right: 10%;
		--padding-bottom: 10%;
		--padding-left: 10%;
		padding: 5% 10% 10% 10% !important;
	}
}

/* Pagine dashboard (home + lista + profilo): niente min-height forzato */
.elementor-section:has(.fpet-dashboard--home),
.e-con:has(.fpet-dashboard--home),
.elementor-section:has(.fpet-dashboard--list),
.e-con:has(.fpet-dashboard--list),
.elementor-section:has(.fpet-profile),
.e-con:has(.fpet-profile),
.elementor-element-12fca7e,
.elementor-element-a626926,
.elementor-element-267f806 {
	min-height: 0 !important;
}

/* Solo avviso standalone: centratura verticale su tutti i dispositivi */
.elementor-section:has(.fpet-portal--notice-only),
.e-con:has(.fpet-portal--notice-only) {
	display: flex !important;
	flex-direction: column !important;
	justify-content: center !important;
	align-items: stretch !important;
	min-height: 80vh !important;
}

.elementor-widget-container:has(.fpet-portal--notice-only),
.fpet-elementor-widget:has(.fpet-portal--notice-only) {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: 100%;
}

.fpet-portal--notice-only {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	max-width: 760px;
	margin: 0 auto;
	padding: 0;
}

.fpet-portal--notice-only .fpet-alert {
	width: 100%;
	margin: 0;
}

.fpet-portal.fpet-landing {
	max-width: none;
	width: 100%;
	padding: 0;
	margin: 0;
}

.fpet-landing {
	padding-top: 0;
	padding-bottom: 0;
}

.fpet-landing__eyebrow {
	font-family: "DM Sans", sans-serif;
	font-size: 12px;
	font-weight: 700;
	line-height: 1.3em;
	letter-spacing: 2px;
	text-transform: uppercase;
	color: #1AABB5;
	margin: 0 0 1rem;
}

@media (min-width: 1025px) {
	.fpet-landing__eyebrow {
		font-size: 14px;
	}
}

.fpet-landing__actions {
	display: flex;
	flex-direction: row;
	flex-wrap: nowrap;
	align-items: center;
	gap: 40px;
	margin: 0 0 3rem;
}

@media (max-width: 767px) {
	.fpet-landing__actions {
		gap: 20px;
	}
}

.fpet-landing__features {
	display: grid;
	gap: 0;
	grid-template-columns: repeat(3, 1fr);
	background: #E8E0D0;
	border: 2px solid #C8BEA8;
	border-radius: 20px;
	box-shadow: 3px 3px 20px rgba(0, 0, 0, 0.14);
	overflow: hidden;
}

.fpet-landing__feature {
	background: transparent;
	padding: clamp(1.25rem, 3vw, 2rem);
	border-right: 1px solid #C8BEA8;
}

.fpet-landing__feature:last-child {
	border-right: none;
}

.fpet-landing__number {
	display: block;
	font-family: Playfair, Georgia, serif;
	font-size: 25px;
	font-weight: 800;
	line-height: 1em;
	color: #3ECFDA;
	letter-spacing: 0;
	margin-bottom: 1rem;
}

@media (min-width: 768px) {
	.fpet-landing__number {
		font-size: 30px;
	}
}

@media (min-width: 1025px) {
	.fpet-landing__number {
		font-size: 35px;
	}
}

.fpet-landing__feature h2 {
	font-family: Playfair, Georgia, serif;
	font-size: 25px;
	font-weight: 800;
	line-height: 1em;
	color: #1A1A1A;
	letter-spacing: 0;
	margin: 0 0 0.6rem;
}

@media (min-width: 768px) {
	.fpet-landing__feature h2 {
		font-size: 30px;
	}
}

@media (min-width: 1025px) {
	.fpet-landing__feature h2 {
		font-size: 35px;
	}
}

.fpet-landing__feature p {
	font-family: "DM Sans", sans-serif;
	font-size: 14px;
	line-height: 1.6;
	color: #1A1A1A;
	margin: 0;
}

@media (min-width: 1025px) {
	.fpet-landing__feature p {
		font-size: 16px;
	}
}

.fpet-portal__title,
.ep-portal__title {
	color: var(--fpet-ink);
	font-family: Playfair, Georgia, serif;
	font-size: clamp(2rem, 4vw, 3.2rem);
	font-weight: 600;
	line-height: 1.08;
	letter-spacing: 0;
	margin-bottom: 0.8rem;
}

.fpet-dashboard .fpet-portal__title,
.fpet-landing .fpet-portal__title,
.fpet-booking .fpet-portal__title,
.fpet-confirmation .fpet-portal__title,
#fpet-modulo-prenotazione .fpet-portal__title {
	font-family: Playfair, Georgia, serif;
	font-size: 40px;
	font-weight: 800;
	line-height: 0.9em;
	color: #1A1A1A;
	letter-spacing: 0;
	margin: 0 0 0.75rem;
}

@media (min-width: 768px) {
	.fpet-dashboard .fpet-portal__title,
	.fpet-landing .fpet-portal__title,
	.fpet-booking .fpet-portal__title,
	.fpet-confirmation .fpet-portal__title,
	#fpet-modulo-prenotazione .fpet-portal__title {
		font-size: 50px;
	}
}

@media (min-width: 1025px) {
	.fpet-dashboard .fpet-portal__title,
	.fpet-landing .fpet-portal__title,
	.fpet-booking .fpet-portal__title,
	.fpet-confirmation .fpet-portal__title,
	#fpet-modulo-prenotazione .fpet-portal__title {
		font-size: 70px;
	}
}

.fpet-dashboard .fpet-portal__title {
	margin-bottom: 0;
}

.fpet-portal__title-accent {
	color: #1AABB5;
}

.fpet-portal__title-accent em {
	font-style: italic;
}

.fpet-portal__subtitle,
.ep-portal__subtitle {
	color: var(--fpet-muted);
	font-size: 1.05rem;
	line-height: 1.65;
	margin-bottom: 2.25rem;
}

.fpet-landing .fpet-portal__subtitle,
.fpet-login .fpet-portal__subtitle,
.fpet-registration .fpet-portal__subtitle,
.ep-registration .ep-portal__subtitle,
.fpet-booking .fpet-portal__subtitle,
#fpet-modulo-prenotazione .fpet-portal__subtitle,
.fpet-dashboard .fpet-portal__subtitle {
	font-family: "DM Sans", sans-serif;
	font-size: 16px;
	line-height: 1.65;
	color: #1A1A1A;
	margin: 0 0 1rem;
}

/* Titolo + sottotitolo nell’header: lo spazio sotto lo gestisce l’header */
.fpet-dashboard__header .fpet-portal__subtitle {
	margin-bottom: 0;
}

/* Login: stessa spaziatura verticale delle pagine portale riviste */
.fpet-login {
	padding: 0;
}

.fpet-login .fpet-portal__title,
.fpet-registration .fpet-portal__title,
.ep-registration .ep-portal__title,
.fpet-booking .fpet-portal__title {
	margin: 0 0 0.75rem;
}

.fpet-login .fpet-alert {
	margin: 0 0 1rem;
	font-family: "DM Sans", sans-serif;
	font-size: 14px;
	line-height: 1.5;
}

@media (min-width: 1025px) {
	.fpet-login .fpet-alert {
		font-size: 16px;
	}
}

.fpet-login .fpet-form {
	margin-top: 0;
	background: #E8E0D0;
	border: 2px solid #C8BEA8;
	border-radius: 20px;
	box-shadow: 3px 3px 20px rgba(0, 0, 0, 0.14);
	padding: clamp(1.25rem, 3vw, 2rem);
}

.fpet-login .fpet-field input {
	background: #F1EFEB;
	border: 2px solid #C8BEA8;
	border-radius: 20px;
}

.fpet-login .fpet-password {
	position: relative;
	width: 100%;
}

.fpet-login .fpet-password input {
	width: 100%;
	padding-right: 6.5rem;
	box-sizing: border-box;
}

.fpet-login .fpet-password__toggle {
	position: absolute;
	top: 50%;
	right: 0.75rem;
	transform: translateY(-50%);
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	margin: 0;
	padding: 0.25rem 0.35rem;
	border: 0;
	background: transparent;
	color: #1A1A1A;
	cursor: pointer;
	font-family: "DM Sans", sans-serif;
	font-size: 12px;
	font-weight: 400;
	letter-spacing: 0;
	line-height: 1;
	white-space: nowrap;
}

@media (min-width: 1025px) {
	.fpet-login .fpet-password__toggle {
		font-size: 14px;
	}
}

.fpet-login .fpet-password__toggle:hover,
.fpet-login .fpet-password__toggle:focus {
	background: transparent;
	color: #3ECFDA;
	outline: none;
}

.fpet-login .fpet-password__icon {
	display: block;
	flex-shrink: 0;
}

.fpet-login .fpet-field label {
	font-family: "DM Sans", sans-serif;
	font-size: 12px;
	font-weight: 700;
	line-height: 1.3em;
	letter-spacing: 2px;
	text-transform: uppercase;
	color: #1AABB5;
}

@media (min-width: 1025px) {
	.fpet-login .fpet-field label {
		font-size: 14px;
	}
}

.fpet-login .fpet-field input:focus {
	border-color: #C8BEA8;
	box-shadow: 0 0 0 3px rgba(200, 190, 168, 0.35);
}

.fpet-login .fpet-form__row--inline {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 0.5rem 1rem;
}

.fpet-login .fpet-form__row--inline .fpet-checkbox {
	margin-bottom: 0;
	align-items: center;
	font-family: "DM Sans", sans-serif;
	font-size: 14px;
	line-height: 1.6;
	color: #1A1A1A;
}

.fpet-login .fpet-form__row--inline .fpet-checkbox input[type="checkbox"] {
	margin: 0;
	flex-shrink: 0;
	width: 1em;
	height: 1em;
	accent-color: #1AABB5;
}

@media (min-width: 1025px) {
	.fpet-login .fpet-form__row--inline .fpet-checkbox {
		font-size: 16px;
	}
}

.fpet-login .fpet-form__row--inline .fpet-link {
	font-family: "DM Sans", sans-serif;
	font-size: 14px;
	font-weight: 600;
	font-style: italic;
	line-height: 1.3em;
	color: #1AABB5;
	text-decoration: none;
	text-underline-offset: 3px;
	margin-left: auto;
	white-space: nowrap;
}

.fpet-login .fpet-form__row--inline .fpet-link:hover {
	color: #3ECFDA;
	text-decoration: underline;
}

@media (min-width: 1025px) {
	.fpet-login .fpet-form__row--inline .fpet-link {
		font-size: 16px;
	}
}

@media (max-width: 767px) {
	.fpet-login .fpet-form__row--inline {
		flex-direction: column;
		align-items: flex-start;
		gap: 0;
	}

	.fpet-login .fpet-form__row--inline .fpet-link {
		margin-left: 0;
		margin-top: 3%;
	}
}

/* Registrazione: stesso box crema della landing (.fpet-landing__features) + campi come login */
.fpet-registration,
.ep-registration {
	padding: 0;
}

.fpet-registration .fpet-portal__title,
.ep-registration .ep-portal__title {
	margin: 0 0 0.75rem;
}

.fpet-registration .fpet-alert,
.fpet-registration .fpet-form__errors,
.ep-registration .ep-form__message,
.ep-registration .ep-form__errors {
	margin: 0 0 1rem;
}

.fpet-registration .fpet-form,
.ep-registration .ep-form {
	margin-top: 0;
	background: #E8E0D0;
	border: 2px solid #C8BEA8;
	border-radius: 20px;
	box-shadow: 3px 3px 20px rgba(0, 0, 0, 0.14);
	padding: clamp(1.25rem, 3vw, 2rem);
	overflow: hidden;
}

.fpet-registration .fpet-form__section,
.ep-registration .ep-form__section {
	border: 0;
	border-bottom: 1px solid #C8BEA8;
	border-radius: 0;
	margin: 0 0 1.5rem;
	padding: 0 0 1.5rem;
	min-width: 0;
}

.fpet-registration .fpet-form__section:last-of-type,
.ep-registration .ep-form__section:last-of-type {
	border-bottom: 0;
	margin-bottom: 0;
	padding-bottom: 0;
}

.fpet-registration .fpet-form__section-title,
.ep-registration .ep-form__section legend {
	font-family: "DM Sans", sans-serif;
	font-size: 12px;
	font-weight: 700;
	line-height: 1.3em;
	letter-spacing: 2px;
	text-transform: uppercase;
	color: #1AABB5;
	border: 0;
	padding: 0;
	margin: 0 0 1rem;
	float: none;
	width: auto;
}

@media (min-width: 1025px) {
	.fpet-registration .fpet-form__section-title,
	.ep-registration .ep-form__section legend {
		font-size: 14px;
	}
}

.fpet-registration .fpet-form__row,
.ep-registration .ep-form__row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1rem;
	margin-bottom: 1rem;
}

.fpet-registration .fpet-form__row:last-child,
.ep-registration .ep-form__row:last-child {
	margin-bottom: 0;
}

.fpet-registration .fpet-field label,
.ep-registration .ep-form__field label {
	font-family: "DM Sans", sans-serif;
	font-size: 14px;
	font-weight: 400;
	line-height: 1.6;
	letter-spacing: 0;
	text-transform: none;
	color: #1A1A1A;
}

@media (min-width: 1025px) {
	.fpet-registration .fpet-field label,
	.ep-registration .ep-form__field label {
		font-size: 16px;
	}
}

.fpet-registration .fpet-field input,
.ep-registration .ep-form__field input {
	background: #F1EFEB;
	border: 2px solid #C8BEA8;
	border-radius: 20px;
}

.fpet-registration .fpet-field input:focus,
.ep-registration .ep-form__field input:focus {
	border-color: #C8BEA8;
	box-shadow: 0 0 0 3px rgba(200, 190, 168, 0.35);
}

.fpet-registration .fpet-form__actions,
.ep-registration .ep-form__actions {
	margin-top: 1.5rem;
	justify-content: flex-end;
}

.fpet-registration .fpet-form__section--privacy {
	margin-top: 1.5rem;
}

.fpet-legal-checkboxes .fpet-field + .fpet-field {
	margin-top: 0.75rem;
}

.ep-registration .ep-btn--primary {
	background: #3ECFDA;
	border: 2px solid #A8EDF2;
	border-radius: 40px;
	box-shadow: 3px 3px 10px rgba(62, 207, 218, 0.43);
	color: #ffffff;
	font-family: "DM Sans", sans-serif;
	font-size: 14px;
	font-weight: 600;
	letter-spacing: 0.01em;
	min-height: 0;
	padding: 10px 15px;
	transition: transform 0.2s ease, background 0.2s ease, box-shadow 0.2s ease;
}

@media (min-width: 768px) {
	.ep-registration .ep-btn--primary {
		padding: 13px 22px;
		font-size: 14px;
	}
}

@media (min-width: 1025px) {
	.ep-registration .ep-btn--primary {
		font-size: 16px;
	}
}

.ep-registration .ep-btn--primary:hover:not(:disabled),
.ep-registration .ep-btn--primary:focus {
	background: #1AABB5;
	border-color: #A8EDF2;
	box-shadow: 3px 3px 10px rgba(62, 207, 218, 0.43);
	color: #ffffff;
	transform: translateY(-3px);
}

@media (max-width: 767px) {
	.fpet-registration .fpet-form__row,
	.ep-registration .ep-form__row {
		grid-template-columns: 1fr;
	}

	.fpet-registration .fpet-form__actions,
	.ep-registration .ep-form__actions {
		align-items: flex-end;
	}

	.fpet-registration .fpet-btn--primary,
	.ep-registration .ep-btn--primary {
		width: auto;
		align-self: flex-end;
		max-width: max-content;
	}
}

@media (min-width: 1025px) {
	.fpet-landing .fpet-portal__subtitle,
	.fpet-login .fpet-portal__subtitle,
	.fpet-registration .fpet-portal__subtitle,
	.ep-registration .ep-portal__subtitle,
	.fpet-booking .fpet-portal__subtitle,
	#fpet-modulo-prenotazione .fpet-portal__subtitle,
	.fpet-dashboard .fpet-portal__subtitle {
		font-size: 18px;
	}
}

/* Prenotazione: stesse distanze/stile form di login e registrazione */
.fpet-booking {
	padding: 0;
}

.fpet-booking .fpet-alert {
	margin: 0 0 1rem;
}

.fpet-booking .fpet-progress {
	margin: 0 0 1.5rem;
}

.fpet-booking .fpet-form {
	margin-top: 0;
	background: #E8E0D0;
	border: 2px solid #C8BEA8;
	border-radius: 20px;
	box-shadow: 3px 3px 20px rgba(0, 0, 0, 0.14);
	padding: clamp(1.25rem, 3vw, 2rem);
}

.fpet-booking .fpet-form__section {
	border: 0;
	border-bottom: 1px solid #C8BEA8;
	border-radius: 0;
	margin: 0 0 1.5rem;
	padding: 0 0 1.5rem;
	min-width: 0;
}

.fpet-booking .fpet-form__section:last-of-type {
	border-bottom: 0;
	margin-bottom: 0;
	padding-bottom: 0;
}

.fpet-booking .fpet-form__section-title {
	font-family: "DM Sans", sans-serif;
	font-size: 12px;
	font-weight: 700;
	line-height: 1.3em;
	letter-spacing: 2px;
	text-transform: uppercase;
	color: #1AABB5;
	border: 0;
	padding: 0;
	margin: 0 0 1rem;
	float: none;
	width: auto;
}

@media (min-width: 1025px) {
	.fpet-booking .fpet-form__section-title {
		font-size: 14px;
	}
}

.fpet-booking .fpet-summary__title {
	font-family: "DM Sans", sans-serif;
	font-size: 12px;
	font-weight: 700;
	line-height: 1.3em;
	letter-spacing: 2px;
	text-transform: uppercase;
	color: #1AABB5;
	margin: 0 0 1rem;
}

@media (min-width: 1025px) {
	.fpet-booking .fpet-summary__title {
		font-size: 14px;
	}
}

.fpet-booking .fpet-form__row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1rem;
	margin-bottom: 1rem;
}

.fpet-booking .fpet-form__row--address,
.fpet-booking .fpet-form__row--3 {
	/* Stessa griglia: civico e CAP nella 3ª colonna = allineati */
	grid-template-columns: 1fr 1.4fr 1fr;
}

.fpet-booking .fpet-form__row--address > .fpet-field:first-child {
	grid-column: 1 / span 2;
}

.fpet-booking .fpet-form__row:last-child,
.fpet-booking .fpet-form__section .fpet-form__row:last-child {
	margin-bottom: 0;
}

.fpet-booking .fpet-field--full {
	grid-column: 1 / -1;
	width: 100%;
}

.fpet-booking .fpet-field--full input {
	width: 100%;
	box-sizing: border-box;
}

.fpet-booking .fpet-field label {
	font-family: "DM Sans", sans-serif;
	font-size: 14px;
	font-weight: 400;
	line-height: 1.6;
	letter-spacing: 0;
	text-transform: none;
	color: #1A1A1A;
}

.fpet-booking .fpet-field__legend {
	display: block;
	font-family: "DM Sans", sans-serif;
	font-size: 12px;
	font-weight: 700;
	line-height: 1.3em;
	letter-spacing: 2px;
	text-transform: uppercase;
	color: #1AABB5;
	border: 0;
	padding: 0;
	margin: 0 0 1rem;
}

@media (min-width: 1025px) {
	.fpet-booking .fpet-field label {
		font-size: 16px;
	}

	.fpet-booking .fpet-field__legend {
		font-size: 14px;
	}
}

.fpet-booking .fpet-field input:not([type="checkbox"]):not([type="radio"]),
.fpet-booking .fpet-field select,
.fpet-booking .fpet-field textarea {
	background: #F1EFEB;
	border: 2px solid #C8BEA8;
	border-radius: 20px;
	appearance: none;
	-webkit-appearance: none;
}

.fpet-booking .fpet-checkbox,
.fpet-booking .fpet-radio,
.fpet-registration .fpet-checkbox {
	align-items: center;
	gap: 0.75rem;
	margin-bottom: 0.75rem;
	font-family: "DM Sans", sans-serif;
	font-size: 14px;
	font-weight: 400;
	line-height: 1.5;
	color: #1A1A1A;
}

.fpet-legal-checkboxes .fpet-checkbox.fpet-checkbox--block {
	display: grid;
	grid-template-columns: 1.15rem 1fr;
	column-gap: 0.75rem;
	row-gap: 0.35rem;
	align-items: flex-start;
	border-radius: 20px;
	background: #ffffff;
	border: 2px solid #C8BEA8;
	box-shadow: 3px 3px 12px rgba(0, 0, 0, 0.08);
	padding: 0.85rem 1rem;
	width: 100%;
	box-sizing: border-box;
}

.fpet-legal-checkboxes .fpet-checkbox.fpet-checkbox--block input[type="checkbox"] {
	grid-column: 1;
	grid-row: 1;
	margin-top: 0.12rem;
}

.fpet-legal-checkboxes .fpet-field--required-corner {
	position: relative;
}

.fpet-legal-checkboxes .fpet-field--required-corner > label::after {
	content: '';
}

.fpet-legal-checkboxes .fpet-field--required-corner::after {
	content: ' *';
	position: absolute;
	top: 0.55rem;
	right: 0.75rem;
	color: #dc3545;
	font-family: "DM Sans", sans-serif;
	font-size: 14px;
	font-weight: 400;
	line-height: 1.5;
	pointer-events: none;
}

@media (min-width: 1025px) {
	.fpet-legal-checkboxes .fpet-field--required-corner::after {
		font-size: 16px;
	}
}

.fpet-legal-checkboxes .fpet-checkbox__text {
	display: block;
}

.fpet-registration .fpet-checkbox a {
	color: #1AABB5;
	font-weight: 600;
	text-decoration: underline;
	text-underline-offset: 3px;
}

.fpet-legal-checkboxes .fpet-checkbox__text a {
	color: #1AABB5;
	font-weight: 600;
	text-decoration: underline;
	text-underline-offset: 3px;
}

.fpet-legal-checkboxes .fpet-checkbox.fpet-checkbox--block > span {
	grid-column: 2;
	grid-row: 1;
	font-size: 12px;
	line-height: 1.5;
}

.fpet-legal-checkboxes .fpet-checkbox__text--collapsed {
	overflow: hidden;
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
	line-clamp: 2;
	max-height: 3em;
}

.fpet-legal-checkboxes .fpet-checkbox__text--rich.fpet-checkbox__text--collapsed {
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
	line-clamp: 2;
	max-height: 3em;
}

.fpet-legal-checkboxes .fpet-checkbox__text--rich.fpet-checkbox__text--collapsed > strong,
.fpet-legal-checkboxes .fpet-checkbox__text--rich.fpet-checkbox__text--collapsed > p {
	display: inline;
	margin: 0;
}

.fpet-legal-checkboxes .fpet-checkbox__text--rich.fpet-checkbox__text--collapsed > strong::after {
	content: " ";
}

.fpet-legal-checkboxes .fpet-checkbox__text--rich.fpet-checkbox__text--collapsed > ol,
.fpet-legal-checkboxes .fpet-checkbox__text--rich.fpet-checkbox__text--collapsed > p:last-of-type {
	display: none;
}

.fpet-legal-checkboxes .fpet-checkbox__text--rich > strong {
	display: block;
	margin-bottom: 0.35em;
	font-weight: 700;
}

.fpet-legal-checkboxes .fpet-checkbox__text--rich > p {
	margin: 0 0 0.5em;
}

.fpet-legal-checkboxes .fpet-checkbox__text--rich > p:last-child {
	margin-bottom: 0;
}

.fpet-legal-checkboxes .fpet-checkbox__text--rich > ol {
	margin: 0 0 0.5em;
	padding-left: 1.25em;
}

.fpet-legal-checkboxes .fpet-checkbox__text--rich > ol > li {
	margin-bottom: 0.4em;
}

.fpet-legal-checkboxes .fpet-checkbox__text--rich > ol > li:last-child {
	margin-bottom: 0;
}

.fpet-legal-checkboxes .fpet-checkbox__toggle,
.fpet-legal-checkboxes button.fpet-checkbox__toggle,
.fpet-legal-checkboxes button.fpet-checkbox__toggle.fpet-link,
.fpet-legal-checkboxes [type="button"].fpet-checkbox__toggle {
	grid-column: 2;
	grid-row: 2;
	justify-self: end;
	display: inline;
	width: auto;
	min-width: 0;
	min-height: 0;
	height: auto;
	margin: 0;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 0 !important;
	background: transparent !important;
	background-color: transparent !important;
	box-shadow: none !important;
	outline: none;
	cursor: pointer;
	appearance: none;
	-webkit-appearance: none;
	font-family: "DM Sans", sans-serif !important;
	font-size: 12px !important;
	font-weight: 600 !important;
	font-style: italic;
	line-height: 1.3em;
	letter-spacing: normal;
	text-transform: none;
	text-align: right;
	text-decoration: none !important;
	text-underline-offset: 3px;
	color: #1AABB5 !important;
	white-space: nowrap;
	-webkit-tap-highlight-color: transparent;
}

@media (min-width: 1025px) {
	.fpet-legal-checkboxes .fpet-checkbox__toggle,
	.fpet-legal-checkboxes button.fpet-checkbox__toggle,
	.fpet-legal-checkboxes button.fpet-checkbox__toggle.fpet-link,
	.fpet-legal-checkboxes [type="button"].fpet-checkbox__toggle {
		font-size: 14px !important;
	}
}

.fpet-legal-checkboxes .fpet-checkbox__toggle:hover,
.fpet-legal-checkboxes .fpet-checkbox__toggle:focus,
.fpet-legal-checkboxes .fpet-checkbox__toggle:focus-visible,
.fpet-legal-checkboxes .fpet-checkbox__toggle:active,
.fpet-legal-checkboxes button.fpet-checkbox__toggle:hover,
.fpet-legal-checkboxes button.fpet-checkbox__toggle:focus,
.fpet-legal-checkboxes button.fpet-checkbox__toggle:focus-visible,
.fpet-legal-checkboxes button.fpet-checkbox__toggle:active,
.fpet-legal-checkboxes button.fpet-checkbox__toggle.fpet-link:hover,
.fpet-legal-checkboxes button.fpet-checkbox__toggle.fpet-link:focus,
.fpet-legal-checkboxes button.fpet-checkbox__toggle.fpet-link:active {
	background: transparent !important;
	background-color: transparent !important;
	border: 0 !important;
	box-shadow: none !important;
	color: #3ECFDA !important;
	text-decoration: underline !important;
	outline: none;
}

@media (min-width: 1025px) {
	.fpet-booking .fpet-checkbox,
	.fpet-booking .fpet-radio,
	.fpet-registration .fpet-checkbox {
		font-size: 16px;
	}

	.fpet-legal-checkboxes .fpet-checkbox.fpet-checkbox--block > span {
		font-size: 14px;
	}
}

.fpet-booking .fpet-checkbox input[type="checkbox"],
.fpet-booking .fpet-field input[type="checkbox"],
.fpet-registration .fpet-checkbox input[type="checkbox"] {
	appearance: none;
	-webkit-appearance: none;
	width: 1.15rem;
	height: 1.15rem;
	min-width: 1.15rem;
	min-height: 1.15rem;
	margin: 0;
	padding: 0;
	flex-shrink: 0;
	border: 2px solid #C8BEA8 !important;
	border-radius: 4px;
	background-color: #F1EFEB !important;
	background-image: none;
	box-shadow: none !important;
	accent-color: transparent;
	cursor: pointer;
	outline: none;
}

.fpet-booking .fpet-checkbox input[type="checkbox"]:checked,
.fpet-booking .fpet-field input[type="checkbox"]:checked,
.fpet-registration .fpet-checkbox input[type="checkbox"]:checked {
	background-color: #F1EFEB !important;
	border-color: #C8BEA8 !important;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath fill='none' stroke='%231A1A1A' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' d='M2.5 6.2L5 8.7 9.5 3.5'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: center;
	background-size: 0.85rem 0.85rem;
	box-shadow: none !important;
}

.fpet-booking .fpet-checkbox input[type="checkbox"]:hover,
.fpet-booking .fpet-checkbox input[type="checkbox"]:focus,
.fpet-booking .fpet-checkbox input[type="checkbox"]:focus-visible,
.fpet-booking .fpet-checkbox input[type="checkbox"]:active,
.fpet-booking .fpet-field input[type="checkbox"]:hover,
.fpet-booking .fpet-field input[type="checkbox"]:focus,
.fpet-booking .fpet-field input[type="checkbox"]:focus-visible,
.fpet-booking .fpet-field input[type="checkbox"]:active,
.fpet-registration .fpet-checkbox input[type="checkbox"]:hover,
.fpet-registration .fpet-checkbox input[type="checkbox"]:focus,
.fpet-registration .fpet-checkbox input[type="checkbox"]:focus-visible,
.fpet-registration .fpet-checkbox input[type="checkbox"]:active {
	background-color: #F1EFEB !important;
	border-color: #C8BEA8 !important;
	box-shadow: none !important;
	outline: none;
}

.fpet-booking .fpet-radio input[type="radio"],
.fpet-booking .fpet-field input[type="radio"] {
	appearance: none;
	-webkit-appearance: none;
	width: 1.15rem;
	height: 1.15rem;
	min-width: 1.15rem;
	min-height: 1.15rem;
	margin: 0;
	padding: 0;
	flex-shrink: 0;
	border: 2px solid #C8BEA8 !important;
	border-radius: 50%;
	background-color: #F1EFEB !important;
	box-shadow: none !important;
	accent-color: transparent;
	cursor: pointer;
	outline: none;
}

.fpet-booking .fpet-radio input[type="radio"]:checked,
.fpet-booking .fpet-field input[type="radio"]:checked {
	background-color: #F1EFEB !important;
	border-color: #C8BEA8 !important;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Ccircle cx='6' cy='6' r='3' fill='%231A1A1A'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: center;
	background-size: 100% 100%;
	box-shadow: none !important;
}

.fpet-booking .fpet-radio input[type="radio"]:hover,
.fpet-booking .fpet-radio input[type="radio"]:focus,
.fpet-booking .fpet-radio input[type="radio"]:focus-visible,
.fpet-booking .fpet-radio input[type="radio"]:active,
.fpet-booking .fpet-field input[type="radio"]:hover,
.fpet-booking .fpet-field input[type="radio"]:focus,
.fpet-booking .fpet-field input[type="radio"]:focus-visible,
.fpet-booking .fpet-field input[type="radio"]:active {
	background-color: #F1EFEB !important;
	border-color: #C8BEA8 !important;
	box-shadow: none !important;
	outline: none;
}

/* iOS centra il valore di input[type=date]; forza allineamento a sinistra */
.fpet-booking .fpet-field input[type="date"],
.fpet-field input[type="date"] {
	text-align: left;
	text-align-last: left;
	direction: ltr;
}

.fpet-booking .fpet-field input[type="date"]::-webkit-date-and-time-value,
.fpet-field input[type="date"]::-webkit-date-and-time-value {
	text-align: left;
	margin: 0;
	min-width: 0;
	width: 100%;
}

.fpet-booking .fpet-field input[type="date"]::-webkit-datetime-edit,
.fpet-field input[type="date"]::-webkit-datetime-edit {
	text-align: left;
	padding: 0;
	width: 100%;
}

.fpet-booking .fpet-field select {
	padding-right: 2.25rem;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%231A1A1A' d='M1.4.6L6 5.2 10.6.6 12 2 6 8 0 2z'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 1rem center;
	cursor: pointer;
}

.fpet-booking .fpet-field select:disabled {
	opacity: 0.65;
	cursor: not-allowed;
}

.fpet-booking .fpet-field input:not([type="checkbox"]):not([type="radio"]):focus,
.fpet-booking .fpet-field select:focus,
.fpet-booking .fpet-field textarea:focus {
	border-color: #C8BEA8;
	box-shadow: 0 0 0 3px rgba(200, 190, 168, 0.35);
}

.fpet-booking .fpet-form__actions {
	margin-top: 1.5rem;
	justify-content: flex-end;
	gap: 0.75rem;
	flex-direction: row;
	flex-wrap: wrap;
	align-items: center;
}

.fpet-booking .fpet-btn,
.fpet-booking .fpet-btn--primary,
.fpet-booking .fpet-btn--secondary,
.fpet-confirmation .fpet-btn,
.fpet-confirmation .fpet-btn--primary,
.fpet-confirmation .fpet-btn--secondary {
	width: auto;
	max-width: max-content;
	flex: 0 0 auto;
}

@media (max-width: 767px) {
	.fpet-booking .fpet-form__row,
	.fpet-booking .fpet-form__row--address,
	.fpet-booking .fpet-form__row--3 {
		grid-template-columns: 1fr;
	}

	.fpet-booking .fpet-form__row--address > .fpet-field:first-child {
		grid-column: auto;
	}
}

.fpet-form,
.ep-form {
	background: var(--fpet-surface);
	border: 1px solid var(--fpet-line);
	border-radius: 20px;
	box-shadow: 0 14px 35px rgba(26, 26, 26, 0.06);
	padding: clamp(1.25rem, 3vw, 2.25rem);
}

/* Profilo: stessi form della prenotazione */
.fpet-profile .fpet-form {
	margin-top: 0;
	background: #E8E0D0;
	border: 2px solid #C8BEA8;
	border-radius: 20px;
	box-shadow: 3px 3px 20px rgba(0, 0, 0, 0.14);
	padding: clamp(1.25rem, 3vw, 2rem);
}

.fpet-profile .fpet-form__row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1rem;
	margin-bottom: 1rem;
}

.fpet-profile .fpet-form__row:last-child {
	margin-bottom: 0;
}

.fpet-profile .fpet-field--full {
	grid-column: 1 / -1;
	width: 100%;
}

.fpet-profile .fpet-field--full input {
	width: 100%;
	box-sizing: border-box;
}

.fpet-profile .fpet-field label {
	font-family: "DM Sans", sans-serif;
	font-size: 14px;
	font-weight: 400;
	line-height: 1.6;
	letter-spacing: 0;
	text-transform: none;
	color: #1A1A1A;
}

@media (min-width: 1025px) {
	.fpet-profile .fpet-field label {
		font-size: 16px;
	}
}

.fpet-profile .fpet-field input:not([type="checkbox"]):not([type="radio"]),
.fpet-profile .fpet-field select,
.fpet-profile .fpet-field textarea {
	background: #F1EFEB;
	border: 2px solid #C8BEA8;
	border-radius: 20px;
	appearance: none;
	-webkit-appearance: none;
}

.fpet-profile .fpet-field input:not([type="checkbox"]):not([type="radio"]):focus,
.fpet-profile .fpet-field select:focus,
.fpet-profile .fpet-field textarea:focus {
	border-color: #C8BEA8;
	box-shadow: 0 0 0 3px rgba(200, 190, 168, 0.35);
}

.fpet-profile .fpet-form__actions {
	margin-top: 1.5rem;
	justify-content: flex-end;
	gap: 0.75rem;
	flex-direction: row;
	flex-wrap: wrap;
	align-items: center;
}

.fpet-profile .fpet-profile-notice {
	margin-top: 1rem;
}

.fpet-profile .fpet-profile-notice .fpet-alert {
	margin-bottom: 0;
}

.fpet-profile .fpet-btn,
.fpet-profile .fpet-btn--primary,
.fpet-profile .fpet-btn--secondary {
	width: auto;
	max-width: max-content;
	flex: 0 0 auto;
}

@media (max-width: 767px) {
	.fpet-profile .fpet-form__row {
		grid-template-columns: 1fr;
	}
}

.fpet-dashboard__section,
.ep-dashboard__section {
	margin-bottom: 3rem;
}

.fpet-dashboard__section h2,
.ep-dashboard__section h2 {
	font-family: "DM Sans", sans-serif;
	font-size: 12px;
	font-weight: 700;
	line-height: 1.3em;
	letter-spacing: 2px;
	text-transform: uppercase;
	color: #1AABB5;
	margin-left: 2%;
}

@media (min-width: 1025px) {
	.fpet-dashboard__section h2,
	.ep-dashboard__section h2 {
		font-size: 14px;
		margin-left: 1%;
	}
}

.fpet-form__section-title,
.ep-form__section legend {
	color: var(--fpet-ink);
	font-family: Playfair, Georgia, serif;
	font-size: clamp(1.35rem, 2vw, 1.65rem);
	font-weight: 600;
	letter-spacing: -0.02em;
}

.fpet-form__section-title {
	border-bottom: 1px solid var(--fpet-line);
	padding-bottom: 0.85rem;
}

.ep-form__section {
	border: 0;
	border-bottom: 1px solid var(--fpet-line);
	border-radius: 0;
	margin: 0 0 1.5rem;
	padding: 0 0 1.5rem;
}

.ep-form__section:last-of-type {
	border-bottom: 0;
	margin-bottom: 0;
}

.ep-form__section legend {
	padding: 0;
	margin-bottom: 1.25rem;
}

.fpet-field label,
.fpet-field__legend,
.ep-form__field label,
.ep-form__legend {
	color: var(--fpet-ink);
	font-size: 0.82rem;
	font-weight: 700;
	letter-spacing: 0.02em;
	text-transform: uppercase;
}

.ep-form__row {
	display: flex;
	flex-wrap: wrap;
	gap: 1rem;
	margin-bottom: 1rem;
}

.ep-form__field {
	display: flex;
	flex: 1;
	flex-direction: column;
	gap: 0.35rem;
	min-width: 180px;
}

.ep-form__field--full {
	flex-basis: 100%;
}

.fpet-field input:not([type="checkbox"]):not([type="radio"]),
.fpet-field select,
.fpet-field textarea,
.ep-form__field input:not([type="checkbox"]):not([type="radio"]),
.ep-form__field select,
.ep-form__field textarea,
.fpet-filters select {
	background: #fff;
	border: 1px solid rgba(26, 26, 26, 0.2);
	border-radius: 10px;
	color: var(--fpet-ink);
	font-family: inherit;
	min-height: 46px;
	padding: 0.7rem 0.85rem;
}

.ep-btn {
	align-items: center;
	cursor: pointer;
	display: inline-flex;
	justify-content: center;
	text-decoration: none;
}

.fpet-form__actions,
.ep-form__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	justify-content: flex-end;
	margin-top: 1.75rem;
}

.fpet-form__actions--start {
	justify-content: flex-start;
}

.fpet-form__row--inline {
	align-items: center;
	justify-content: space-between;
}

.fpet-field input:focus,
.fpet-field select:focus,
.fpet-field textarea:focus,
.ep-form__field input:focus,
.ep-form__field select:focus,
.ep-form__field textarea:focus,
.fpet-filters select:focus {
	border-color: var(--fpet-aqua-dark);
	box-shadow: 0 0 0 4px rgba(62, 207, 218, 0.22);
}

.fpet-btn,
.ep-btn,
.fpet-btn--primary {
	background: #3ECFDA;
	border: 2px solid #A8EDF2;
	border-radius: 40px;
	box-shadow: 3px 3px 10px rgba(62, 207, 218, 0.43);
	color: #ffffff;
	font-family: "DM Sans", sans-serif;
	font-size: 14px;
	font-weight: 600;
	letter-spacing: 0.01em;
	min-height: 0;
	padding: 10px 15px;
	transition: transform 0.2s ease, background 0.2s ease, box-shadow 0.2s ease;
}

@media (min-width: 768px) {
	.fpet-btn,
	.ep-btn,
	.fpet-btn--primary {
		padding: 13px 22px;
		font-size: 14px;
	}
}

@media (min-width: 1025px) {
	.fpet-btn,
	.ep-btn,
	.fpet-btn--primary {
		font-size: 16px;
	}
}

.fpet-btn:hover:not(:disabled),
.ep-btn:hover:not(:disabled),
.fpet-btn--primary:hover:not(:disabled),
.fpet-btn:focus:not(:disabled),
.fpet-btn:focus-visible:not(:disabled),
.fpet-btn:active:not(:disabled),
button.fpet-btn:hover,
button.fpet-btn:focus,
button.fpet-btn:active,
[type="button"].fpet-btn:hover,
[type="button"].fpet-btn:focus,
[type="button"].fpet-btn:active,
[type="submit"].fpet-btn:hover,
[type="submit"].fpet-btn:focus,
[type="submit"].fpet-btn:active {
	background: #1AABB5 !important;
	border-color: #A8EDF2 !important;
	box-shadow: 3px 3px 10px rgba(62, 207, 218, 0.43);
	color: #ffffff !important;
	transform: translateY(-3px);
	outline: none;
	-webkit-tap-highlight-color: transparent;
}

.fpet-btn--secondary,
.ep-btn--secondary {
	background: transparent;
	border-color: var(--fpet-ink);
	color: var(--fpet-ink);
}

.fpet-btn--secondary:hover:not(:disabled),
.ep-btn--secondary:hover:not(:disabled) {
	background: transparent;
	border-color: #3ECFDA;
	color: #3ECFDA;
}

.fpet-summary,
.ep-summary {
	background: #E8E0D0;
	border: 2px solid #C8BEA8;
	border-radius: 20px;
	box-shadow: 3px 3px 20px rgba(0, 0, 0, 0.14);
	padding: 1.4rem 1.5rem;
}

.fpet-summary__row,
.ep-summary__row {
	border-color: var(--fpet-line);
	padding: 0.7rem 0;
}

.fpet-summary__label,
.ep-summary__label {
	font-family: "DM Sans", sans-serif;
	font-size: 14px;
	color: #1A1A1A;
}

@media (min-width: 1025px) {
	.fpet-summary__label,
	.ep-summary__label {
		font-size: 16px;
	}
}

.fpet-dashboard__empty,
.ep-dashboard__empty {
	font-family: "DM Sans", sans-serif;
	font-size: 14px;
	font-style: italic;
	color: #1A1A1A;
	margin-left: 2%;
}

@media (min-width: 1025px) {
	.fpet-dashboard__empty,
	.ep-dashboard__empty {
		font-size: 16px;
		margin-left: 1%;
	}
}

.fpet-form__hint,
.ep-form__hint {
	font-family: "DM Sans", sans-serif;
	font-size: 10px;
	color: #1A1A1A;
}

.fpet-dashboard__section .fpet-form__hint,
.ep-dashboard__section .ep-form__hint,
.ep-dashboard__section .fpet-form__hint {
	margin-left: 2%;
}

@media (min-width: 1025px) {
	.fpet-form__hint,
	.ep-form__hint {
		font-size: 12px;
	}

	.fpet-dashboard__section .fpet-form__hint,
	.ep-dashboard__section .ep-form__hint,
	.ep-dashboard__section .fpet-form__hint {
		margin-left: 1%;
	}
}

.fpet-summary__value,
.ep-summary__value {
	font-family: "DM Sans", sans-serif;
	font-size: 14px;
	font-weight: 600;
	color: #1A1A1A;
}

@media (min-width: 1025px) {
	.fpet-summary__value,
	.ep-summary__value {
		font-size: 16px;
	}
}

.fpet-stats,
.ep-stats {
	gap: 1.25rem;
}

.fpet-stats__item,
.ep-stats__item {
	background: var(--fpet-ink);
	border: 0;
	border-radius: 18px;
	box-shadow: none;
	padding: 1.5rem;
	text-align: left;
}

.fpet-stats__value,
.ep-stats__value {
	font-family: Playfair, Georgia, serif;
	font-size: 25px;
	font-weight: 800;
	line-height: 1em;
	color: #3ECFDA;
}

@media (min-width: 768px) {
	.fpet-stats__value,
	.ep-stats__value {
		font-size: 30px;
	}
}

@media (min-width: 1025px) {
	.fpet-stats__value,
	.ep-stats__value {
		font-size: 35px;
	}
}

.fpet-stats__value--money {
	font-size: 20px;
	letter-spacing: -0.02em;
}

@media (min-width: 768px) {
	.fpet-stats__value--money {
		font-size: 24px;
	}
}

@media (min-width: 1025px) {
	.fpet-stats__value--money {
		font-size: 28px;
	}
}

.fpet-stats__label,
.ep-stats__label {
	font-family: "DM Sans", sans-serif;
	font-size: 0.85rem;
	font-weight: 600;
	letter-spacing: normal;
	line-height: 1.5;
	color: rgba(255, 255, 255, 0.8);
	text-transform: none;
}

.fpet-table,
.ep-table {
	border: 0;
	border-radius: 16px;
	box-shadow: none;
	border-collapse: collapse;
	overflow: hidden;
}

.fpet-table-wrap,
.ep-table-wrap {
	border: 0;
	border-radius: 0;
	overflow-x: auto;
}

.fpet-table th,
.ep-table th {
	background: #1A1A1A;
	color: rgba(255, 255, 255, 0.8);
	font-family: "DM Sans", sans-serif;
	font-size: 0.85rem;
	font-weight: 600;
	letter-spacing: normal;
	line-height: 1.5;
	text-transform: uppercase;
}

.fpet-table td,
.ep-table td {
	background-color: #E8E0D0 !important;
	border-color: var(--fpet-line);
	font-family: "DM Sans", sans-serif;
	font-size: 14px;
	font-weight: 400;
	line-height: 1.5;
	letter-spacing: normal;
	color: #1A1A1A;
	text-transform: none;
}

@media (min-width: 1025px) {
	.fpet-table td,
	.ep-table td {
		font-size: 16px;
	}
}

.fpet-table tbody > tr > td,
.fpet-table tbody > tr:nth-child(n) > td,
.fpet-table tbody > tr:hover > td,
.fpet-table tbody > tr:focus-within > td,
.ep-table tbody > tr > td,
.ep-table tbody > tr:nth-child(n) > td,
.ep-table tbody > tr:hover > td,
.ep-table tbody > tr:focus-within > td {
	background-color: #E8E0D0 !important;
}

.fpet-table a.fpet-link,
.ep-table a.fpet-link {
	font-family: "DM Sans", sans-serif !important;
	font-size: 14px !important;
	font-weight: 600 !important;
	font-style: normal !important;
	line-height: 1.3em;
	letter-spacing: normal;
	color: #1AABB5 !important;
	text-decoration: none !important;
	text-underline-offset: 3px;
}

@media (min-width: 1025px) {
	.fpet-table a.fpet-link,
	.ep-table a.fpet-link {
		font-size: 16px !important;
	}
}

.fpet-table a.fpet-link:hover,
.ep-table a.fpet-link:hover {
	color: #3ECFDA !important;
	text-decoration: underline !important;
}

.fpet-progress-step__number,
.ep-steps__number {
	background: #F1EFEB;
	border: 2px solid #C8BEA8;
	color: #1A1A1A;
	font-family: "DM Sans", sans-serif;
	font-size: 14px;
}

@media (min-width: 1025px) {
	.fpet-progress-step__number,
	.ep-steps__number {
		font-size: 16px;
	}
}

.fpet-progress::before,
.ep-steps::before {
	background: var(--fpet-line);
}

.fpet-progress-step.active .fpet-progress-step__number,
.fpet-progress-step.done .fpet-progress-step__number,
.ep-steps__item--active .ep-steps__number,
.ep-steps__item--done .ep-steps__number {
	background: #3ECFDA;
	border-color: #3ECFDA;
	color: #1A1A1A;
}

.fpet-progress-step.active .fpet-progress-step__label,
.fpet-progress-step.done .fpet-progress-step__label,
.ep-steps__item--active .ep-steps__label,
.ep-steps__item--done .ep-steps__label {
	color: #1A1A1A;
	font-weight: 600;
}

.fpet-prezzo-box,
.ep-prezzo-box {
	background: var(--fpet-ink);
	border-radius: 16px;
}

.fpet-prezzo-box__label,
.fpet-prezzo-box__fascia,
.ep-prezzo-box__label,
.ep-prezzo-box__fascia {
	color: rgba(255, 255, 255, 0.8);
	font-weight: 600;
	font-size: 0.85rem;
	opacity: 1;
}

.fpet-prezzo-box__value,
.ep-prezzo-box__value {
	font-family: Playfair, Georgia, serif;
	font-size: 20px;
	font-weight: 800;
	line-height: 1em;
	letter-spacing: -0.02em;
	color: #3ECFDA;
}

@media (min-width: 768px) {
	.fpet-prezzo-box__value,
	.ep-prezzo-box__value {
		font-size: 24px;
	}
}

@media (min-width: 1025px) {
	.fpet-prezzo-box__value,
	.ep-prezzo-box__value {
		font-size: 28px;
	}
}

.fpet-alert,
.fpet-alert-info,
.fpet-alert-error,
.ep-notice,
.ep-form__message,
.ep-form__message--error,
.ep-form__errors,
.fpet-form__errors {
	font-family: "DM Sans", sans-serif;
	font-size: 14px;
	line-height: 1.5;
}

.fpet-alert,
.ep-notice,
.ep-form__message,
.fpet-form__errors {
	border-radius: 14px;
	box-shadow: none;
	margin: 0 0 1.5rem;
	padding: 1rem 1.25rem;
}

.fpet-form__errors {
	padding-left: 2rem;
}

@media (min-width: 1025px) {
	.fpet-alert,
	.fpet-alert-info,
	.fpet-alert-error,
	.ep-notice,
	.ep-form__message,
	.ep-form__message--error,
	.ep-form__errors,
	.fpet-form__errors {
		font-size: 16px;
	}
}

.ep-form__message--success {
	background: #dff7f4;
	color: #075c62;
}

.ep-form__message--error,
.ep-form__errors {
	background: #fff0ef;
	color: #7a2620;
}

.fpet-link,
.ep-link,
.ep-login__lost-password {
	font-family: "DM Sans", sans-serif;
	font-size: 14px;
	font-weight: 600;
	color: #1AABB5;
	text-decoration: none;
	text-underline-offset: 3px;
}

@media (min-width: 1025px) {
	.fpet-link,
	.ep-link,
	.ep-login__lost-password {
		font-size: 16px;
	}
}

.fpet-link:hover,
.ep-link:hover,
.ep-login__lost-password:hover {
	color: #3ECFDA;
	text-decoration: underline;
}

@media (max-width: 600px) {
	.fpet-form,
	.ep-form {
		border-radius: 16px;
		padding: 1.1rem;
	}

	.ep-form__row,
	.ep-form__actions {
		flex-direction: column;
	}

	.ep-btn {
		width: 100%;
	}

	.fpet-landing__features {
		grid-template-columns: 1fr;
	}

	.fpet-landing__feature {
		border-right: none;
		border-bottom: 1px solid #C8BEA8;
	}

	.fpet-landing__feature:last-child {
		border-bottom: none;
	}
}

/* ── Logout (stile alert errore, in fondo a destra nella sezione) ── */
.fpet-logout-wrap {
	text-align: right;
	margin-top: 2rem;
}

.fpet-logout {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: #f8d7da;
	border: 2px solid #dc3545;
	border-radius: 40px;
	box-shadow: 3px 3px 10px rgba(220, 53, 69, 0.25);
	color: #721c24;
	font-family: "DM Sans", sans-serif;
	font-size: 14px;
	font-weight: 600;
	line-height: 1;
	letter-spacing: normal;
	text-decoration: none;
	text-transform: none;
	padding: 10px 18px;
	transition: transform 0.2s ease, background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.fpet-logout:hover,
.fpet-logout:focus {
	background: #dc3545;
	border-color: #dc3545;
	color: #ffffff;
	transform: translateY(-3px);
}

@media (min-width: 1025px) {
	.fpet-logout {
		font-size: 16px;
		padding: 12px 22px;
	}
}
