/*
 * VC Marketplace — mobile / touch (iOS Safari, Android Chrome)
 * Caricato per ultimo su tutte le pagine del plugin.
 */

html {
	scroll-padding-bottom: max(72px, calc(48px + env(safe-area-inset-bottom, 0px)));
}

@media (max-width: 900px) {
	html:has(.vc-marketplace__sticky-cta) {
		scroll-padding-bottom: max(88px, calc(56px + env(safe-area-inset-bottom, 0px)));
	}
}

/* Evita scroll orizzontale su pagine plugin */
body:has(.vc-landing),
body:has(.vc-marketplace),
body:has(.vc-health),
body:has(.vc-role),
body:has(.vc-mkt),
body:has(.vc-obf-catalog) {
	overflow-x: clip;
}

body:has(.vc-landing) #inner-wrap,
body:has(.vc-marketplace) #inner-wrap,
body:has(.vc-mkt) #inner-wrap {
	overflow-x: clip;
	max-width: 100%;
}

.vc-landing img,
.vc-marketplace img,
.vc-mkt img,
.vc-health img,
.vc-role img,
.vc-obf-catalog img {
	max-width: 100%;
	height: auto;
}

/* iOS: background fixed causa jank */
@media (max-width: 768px) {
	body.vc-gaming-active,
	body:has(.vc-gaming),
	body:has(.vc-marketplace),
	body:has(.vc-health),
	body:has(.vc-role),
	body:has(.vc-mkt),
	body:has(.vc-obf-catalog.vc-gaming) {
		background-attachment: scroll !important;
	}
}

/* Hero tablet / mobile — niente gap enorme sotto il titolo */
@media (max-width: 1140px) {
	.vc-marketplace__hero-visual,
	.vc-gaming .vc-marketplace__hero-visual {
		margin-top: 0 !important;
		transform: none !important;
		justify-self: center;
		width: min(100%, 520px);
	}
}

@media (max-width: 900px) {
	.vc-role__hero,
	.vc-health__hero {
		grid-template-columns: 1fr !important;
		gap: 20px;
	}

	.vc-health__hero-card,
	.vc-role__hero-card {
		max-width: 100%;
	}

	.vc-landing,
	.vc-role,
	.vc-health,
	.vc-marketplace {
		padding-right: max(12px, env(safe-area-inset-right, 0px));
		padding-left: max(12px, env(safe-area-inset-left, 0px));
		padding-bottom: max(88px, calc(48px + env(safe-area-inset-bottom, 0px)));
	}

	.vc-marketplace__sticky-cta-btn {
		font-size: 1rem;
		min-height: 48px;
	}

	/* —— Marketplace landing hero —— */
	.vc-marketplace__hero-grid {
		grid-template-columns: 1fr !important;
		gap: clamp(14px, 3.5vw, 22px);
	}

	.vc-marketplace__hero-copy {
		max-width: 100%;
		min-width: 0;
	}

	.vc-marketplace__hero--showcase {
		padding: clamp(14px, 3.5vw, 20px) max(12px, env(safe-area-inset-left)) clamp(16px, 3.5vw, 22px) max(12px, env(safe-area-inset-right)) !important;
		border-radius: 16px;
		overflow-x: clip;
	}

	.vc-marketplace__hero-eyebrow {
		font-size: 0.6875rem;
		line-height: 1.35;
		padding: 0.4rem 0.7rem;
		max-width: 100%;
		white-space: normal;
	}

	.vc-marketplace__hero-title {
		font-size: clamp(1.45rem, 6.8vw, 2rem) !important;
		line-height: 1.22 !important;
		margin-bottom: 12px !important;
		gap: 0.25rem;
	}

	.vc-marketplace__hero-title-line {
		overflow-wrap: anywhere;
		word-break: normal;
	}

	.vc-marketplace__hero-lead,
	.vc-marketplace__hero-copy > p {
		font-size: 1rem !important;
		line-height: 1.6 !important;
		max-width: 100%;
		margin-bottom: 12px !important;
	}

	.vc-marketplace__trust-strip {
		display: grid !important;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 8px;
		flex-wrap: unset;
		overflow-x: visible;
		margin-bottom: 14px;
		padding-bottom: 0;
	}

	.vc-marketplace__trust-strip li {
		font-size: 0.8125rem;
		padding: 0.5rem 0.65rem;
		justify-content: flex-start;
		align-items: center;
		min-height: 44px;
		white-space: normal;
		line-height: 1.3;
	}

	.vc-marketplace__hero-actions {
		grid-template-columns: 1fr !important;
		gap: 10px;
		margin-bottom: 14px;
	}

	.vc-marketplace__btn {
		width: 100%;
		min-height: 52px;
		padding: 0.75rem 1rem;
		border-radius: 14px;
		text-transform: none !important;
		letter-spacing: normal !important;
		font-size: 1rem !important;
	}

	.vc-marketplace__btn-text {
		min-width: 0;
		flex: 1;
	}

	.vc-marketplace__btn-text strong {
		font-size: 0.9375rem;
		line-height: 1.28;
		white-space: normal;
		overflow-wrap: anywhere;
	}

	.vc-marketplace__btn-text small {
		font-size: 0.8125rem;
		line-height: 1.35;
	}

	.vc-marketplace__hero-visual,
	.vc-gaming .vc-marketplace__hero-visual {
		margin-top: 0 !important;
		transform: none !important;
		max-width: 100% !important;
		width: 100%;
		margin-inline: auto;
		overflow: visible !important;
	}

	.vc-gaming .vc-marketplace__hero--showcase .vc-marketplace__hero-copy {
		transform: none !important;
		padding-top: 0;
	}

	.vc-marketplace__service-cards:not(.vc-marketplace__service-cards--trades):not(.vc-marketplace__service-cards--health):not(.vc-marketplace__service-cards--specialists):not(.vc-marketplace__service-cards--professionals) {
		grid-template-columns: 1fr !important;
	}
}

/* Orbit: cerchio completo + tutte le pill leggibili su mobile */
@media (max-width: 768px) {
	.vc-marketplace__orbit-pill,
	.vc-gaming .vc-marketplace__orbit-pill {
		display: inline-flex !important;
	}

	.vc-marketplace__orbit,
	.vc-gaming .vc-marketplace__orbit {
		aspect-ratio: 1;
		width: min(96vw, 520px, calc(100dvh - 240px));
		max-width: 520px;
		min-height: 0;
		margin-inline: auto;
		padding: 0;
		overflow: visible;
		animation: vcMarketplaceOrbitFloat 6.2s ease-in-out infinite;
	}

	.vc-marketplace__orbit-ring,
	.vc-gaming .vc-marketplace__orbit-ring {
		display: block;
	}

	.vc-marketplace__orbit-core,
	.vc-gaming .vc-marketplace__orbit-core {
		position: absolute;
		top: 50%;
		left: 50%;
		transform: translate(-50%, -50%) !important;
	}

	.vc-marketplace__hero-visual,
	.vc-gaming .vc-marketplace__hero-visual {
		min-height: 0 !important;
		padding: 8px max(4px, env(safe-area-inset-right)) 16px max(4px, env(safe-area-inset-left)) !important;
		max-width: 100% !important;
		width: 100%;
	}

	.vc-marketplace__quick-links {
		display: grid !important;
		grid-template-columns: 1fr !important;
		flex-direction: unset !important;
		flex-wrap: unset !important;
		overflow-x: visible !important;
		gap: 8px;
		margin-top: 10px;
		padding-bottom: 0;
		scrollbar-width: auto;
	}

	.vc-marketplace__quick-links::-webkit-scrollbar {
		display: block;
	}

	.vc-marketplace__quick-links a {
		flex: unset !important;
		width: 100% !important;
		min-height: 48px;
		padding: 12px 14px;
		font-size: 0.9375rem;
		line-height: 1.35;
		white-space: normal !important;
		text-align: left !important;
		justify-content: flex-start !important;
	}

	.vc-marketplace__trust-strip {
		display: grid !important;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		overflow-x: visible;
		padding-bottom: 0;
	}

	.vc-marketplace__trust-strip li {
		flex: unset;
		font-size: 0.8125rem;
		white-space: normal;
	}

	.vc-marketplace__cat-grid {
		grid-template-columns: 1fr !important;
	}

	.vc-marketplace__cat-link {
		font-size: 0.875rem;
		min-height: 48px;
		padding: 12px 14px;
	}
}

@media (max-width: 480px) {
	.vc-marketplace__hero-title {
		font-size: clamp(1.3rem, 6.2vw, 1.65rem) !important;
	}

	.vc-marketplace__trust-strip {
		grid-template-columns: 1fr !important;
	}

	.vc-marketplace__service-cards a {
		min-height: 112px;
		padding: 20px 16px 18px;
	}
}

/* Form, dashboard, registrazione */
@media (max-width: 768px) {
	.vc-mkt__row,
	.vc-mkt__row--company-safety {
		grid-template-columns: 1fr !important;
	}

	.vc-mkt__doc-grid,
	.vc-mkt__compare-grid {
		grid-template-columns: 1fr !important;
	}

	.vc-mkt__quote-metrics {
		grid-template-columns: 1fr !important;
	}

	.vc-mkt__quote-card {
		padding: 1rem;
	}

	.vc-mkt__btn,
	.vc-mkt__btn--primary,
	.vc-mkt__btn--block {
		width: 100%;
		min-height: 48px;
		font-size: 1rem;
	}

	.vc-obf-catalog__grid,
	.vc-obf-catalog__hero-grid,
	.vc-obf-catalog__cards {
		grid-template-columns: 1fr !important;
	}
}

/* Tabelle: scroll orizzontale sicuro */
.vc-mkt__table-scroll,
.vc-mkt__summary-scroll {
	width: 100%;
	max-width: 100%;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	margin: 12px 0;
}

.vc-mkt__table-scroll .vc-mkt__table {
	min-width: 560px;
}

.vc-mkt__summary-scroll .vc-mkt__summary {
	min-width: 100%;
}

.vc-mkt__summary-scroll .vc-mkt__summary th {
	min-width: 38%;
}

@media (max-width: 768px) {
	.vc-mkt__summary th,
	.vc-mkt__summary td,
	.vc-mkt__table th,
	.vc-mkt__table td {
		font-size: 1rem;
		line-height: 1.5;
		padding: 12px 10px;
	}
}

/* WCFM carousel / mappa */
@media (max-width: 768px) {
	.vc-marketplace__stores-carousel,
	.vc-marketplace__stores-track,
	.vc-marketplace-wcfm-carousel {
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
		scroll-snap-type: x proximity;
		max-width: 100%;
	}

	.vc-marketplace__stores-map,
	.vc-marketplace-wcfm-map {
		max-width: 100%;
		overflow: hidden;
	}
}

/* Registrazione, enti, form gaming */
@media (max-width: 900px) {
	.vc-mkt--gaming-form,
	.vc-mkt--register,
	.vc-mkt--agency-register,
	.vc-mkt--comparison {
		padding-inline: max(12px, env(safe-area-inset-left, 0px)) max(12px, env(safe-area-inset-right, 0px));
	}

	.vc-mkt__header h2 {
		font-size: clamp(1.35rem, 5.5vw, 1.75rem);
		line-height: 1.25;
	}

	.vc-mkt__header p,
	.vc-mkt__login-hint {
		font-size: 1rem;
		line-height: 1.55;
	}

	.vc-mkt__convert-banner {
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
	}

	.vc-mkt__convert-perks {
		display: flex;
		flex-wrap: nowrap;
		gap: 10px;
		min-width: min-content;
	}

	.vc-mkt__convert-perks li {
		flex: 0 0 auto;
		font-size: 0.9375rem;
		padding: 10px 12px;
		white-space: nowrap;
	}

	.vc-mkt__chips {
		display: grid;
		grid-template-columns: 1fr;
		gap: 8px;
	}

	.vc-mkt__chip {
		min-height: 48px;
		font-size: 1rem;
	}

	.vc-mkt__fieldset,
	.vc-mkt__recover-credentials,
	.vc-mkt__wcfm-fast {
		margin-bottom: 16px;
	}

	.vc-mkt__recover-credentials summary,
	.vc-mkt__wcfm-fast summary {
		min-height: 48px;
		display: flex;
		align-items: center;
		font-size: 1rem;
		padding: 10px 0;
	}

	.vc-mkt__notice--info {
		font-size: 0.9375rem;
		line-height: 1.5;
		margin: 0 0 12px;
	}

	.vc-mkt__request-list {
		display: grid;
		grid-template-columns: 1fr;
		gap: 12px;
	}

	.vc-mkt__request-card {
		padding: 14px;
	}

	.vc-mkt__request-card .vc-mkt__btn {
		margin-top: 10px;
	}

	.vc-mkt__entity-types {
		grid-template-columns: 1fr !important;
	}

	.vc-mkt__region summary {
		min-height: 48px;
		font-size: 1rem;
	}
}

@media (max-width: 768px) {
	.vc-mkt__form input:not([type="checkbox"]):not([type="radio"]),
	.vc-mkt__form select,
	.vc-mkt__form textarea {
		font-size: 16px !important;
		min-height: 48px;
	}

	.vc-mkt__consent {
		font-size: 1rem;
		line-height: 1.45;
		gap: 10px;
	}

	.vc-mkt__consent input[type="checkbox"],
	.vc-mkt__consent input[type="radio"] {
		width: 20px;
		height: 20px;
		flex-shrink: 0;
	}

	.vc-mkt__quote-card-head {
		flex-wrap: wrap;
		gap: 8px;
	}

	.vc-mkt__quote-title {
		font-size: 1.05rem;
		line-height: 1.35;
	}

	.vc-mkt__no-refund-notice {
		font-size: 0.9375rem;
		line-height: 1.5;
	}

	.vc-mkt-training-cta__catalog-grid {
		grid-template-columns: minmax(0, 1fr) !important;
	}

	.vc-mkt-training-cta--dual-catalog .vc-mkt-training-cta__catalog-card {
		grid-template-columns: auto minmax(0, 1fr) auto;
		padding: 0.85rem 0.75rem;
		gap: 0.55rem 0.65rem;
	}

	.vc-mkt-training-cta--dual-catalog .vc-mkt-training-cta__catalog-card-title {
		font-size: 1rem;
	}

	.vc-mkt-training-cta--dual-catalog .vc-mkt-training-cta__catalog-card-desc {
		font-size: 0.875rem;
	}

	.vc-mkt-training-cta__register-group {
		display: grid;
		grid-template-columns: 1fr;
		gap: 10px;
	}

	.vc-mkt-training-cta__btn {
		width: 100%;
		min-height: 48px;
		font-size: 1rem;
	}
}

/* —— Confronto preventivi + Content Egg (mobile universale) —— */
@media (max-width: 899px) {
	.vc-mkt--comparison,
	.vc-mkt.vc-mkt--comparison {
		padding-inline: max(12px, env(safe-area-inset-left, 0px)) max(12px, env(safe-area-inset-right, 0px));
		padding-bottom: max(20px, env(safe-area-inset-bottom, 0px));
		max-width: 100%;
		overflow-x: clip;
		box-sizing: border-box;
	}

	.vc-mkt--comparison .vc-mkt__header {
		padding: 0;
		margin-bottom: 1rem;
	}

	.vc-mkt--comparison .vc-mkt__header h2 {
		font-size: clamp(1.25rem, 5.5vw, 1.65rem);
		line-height: 1.25;
		word-wrap: break-word;
		overflow-wrap: anywhere;
	}

	.vc-mkt--comparison .vc-mkt__header p,
	.vc-mkt--comparison .vc-mkt__notice,
	.vc-mkt--comparison .vc-mkt__empty,
	.vc-mkt--comparison .vc-mkt__banner p {
		font-size: 1rem;
		line-height: 1.6;
	}

	.vc-mkt--comparison .vc-mkt__no-refund-notice {
		font-size: 0.9375rem;
		line-height: 1.55;
		padding: 0.85rem;
	}

	.vc-mkt--comparison .vc-mkt__banner {
		padding: 0.85rem 1rem;
	}

	.vc-mkt--comparison .vc-mkt__quote-metric-label {
		font-size: 0.8125rem;
	}

	.vc-mkt--comparison .vc-mkt__quote-metric-value {
		font-size: 1.125rem;
	}

	.vc-mkt--comparison .vc-mkt__quote-metric small {
		font-size: 0.875rem;
	}

	.vc-mkt--comparison .vc-mkt__subheading {
		font-size: 1.0625rem;
		line-height: 1.35;
	}

	.vc-mkt--comparison .vc-mkt__completion h3 {
		font-size: 1.0625rem;
		line-height: 1.35;
	}

	.vc-mkt--ce-primary .vc-mkt__ce-scroll .table-responsive,
	.vc-mkt--ce-primary .vc-mkt__ce-scroll .table {
		max-width: 100%;
	}

	.vc-mkt--ce-primary .vc-mkt__ce-scroll .table-responsive {
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
	}
}

@media (max-width: 480px) {
	.vc-mkt {
		margin-inline: max(0.5rem, env(safe-area-inset-left, 0px)) max(0.5rem, env(safe-area-inset-right, 0px)) !important;
		border-radius: 16px !important;
		padding: 1rem !important;
	}

	.vc-mkt__quote-badge {
		position: static;
		display: inline-block;
		margin-bottom: 0.5rem;
		font-size: 0.75rem;
	}

	.vc-mkt__quote-card-head {
		padding-top: 0 !important;
		flex-direction: column;
		align-items: flex-start;
	}

	.vc-mkt__quote-title {
		font-size: 1.0625rem !important;
		padding-right: 0 !important;
		word-wrap: break-word;
		overflow-wrap: anywhere;
	}
}

@media (min-width: 769px) and (max-width: 1024px) {
	.vc-mkt__compare-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	}

	.vc-mkt__row {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	}

	.vc-marketplace__cat-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	}
}

/* ========== Training CTA — catalogo allievi (solo desktop; mobile = flex in vc-tw-catalog-mobile) ========== */
@media (min-width: 1141px) {
	.vc-mkt-training-cta--dual-catalog .vc-mkt-training-cta__catalog-grid,
	.vc-mkt-training-cta--premium .vc-mkt-training-cta__catalog-grid,
	.vc-marketplace__hero--showcase .vc-marketplace__hero-promo .vc-mkt-training-cta--premium .vc-mkt-training-cta__catalog-grid {
		display: grid !important;
		grid-template-columns: minmax(0, 1fr) !important;
		grid-auto-flow: row !important;
		gap: clamp(0.65rem, 2vw, 0.85rem) !important;
		width: 100% !important;
		min-width: 0 !important;
	}

	.vc-mkt-training-cta--dual-catalog .vc-mkt-training-cta__catalog-card,
	.vc-mkt-training-cta--premium .vc-mkt-training-cta__catalog-card,
	.vc-marketplace__hero--showcase .vc-marketplace__hero-promo .vc-mkt-training-cta--premium .vc-mkt-training-cta__catalog-card,
	a.vc-mkt-training-cta__catalog-card {
		display: grid !important;
		grid-template-columns: minmax(2.75rem, 3.25rem) minmax(0, 1fr) minmax(2rem, 2.5rem) !important;
		grid-template-rows: auto !important;
		align-items: center !important;
		justify-items: stretch !important;
		text-align: left !important;
		align-self: stretch !important;
		min-width: 0 !important;
		width: 100% !important;
		max-width: 100% !important;
	}

	.vc-mkt-training-cta__catalog-card-icon {
		grid-column: 1;
		grid-row: 1;
	}

	.vc-mkt-training-cta__catalog-card-body {
		grid-column: 2;
		grid-row: 1;
	}

	.vc-mkt-training-cta__catalog-card-arrow {
		grid-column: 3;
		grid-row: 1;
	}
}

.vc-mkt-training-cta__catalog-card-body,
.vc-mkt-training-cta__catalog-card-title,
.vc-mkt-training-cta__catalog-card-desc {
	min-width: 0 !important;
	max-width: 100% !important;
	overflow-wrap: normal !important;
	word-break: normal !important;
	hyphens: none !important;
	-webkit-hyphens: none !important;
}

.vc-mkt-training-cta--dual-catalog .vc-mkt-training-cta__card,
.vc-mkt-training-cta--premium.vc-mkt-training-cta--dual-catalog .vc-mkt-training-cta__card,
.vc-marketplace__hero--showcase .vc-marketplace__hero-promo .vc-mkt-training-cta--premium.vc-mkt-training-cta--dual-catalog .vc-mkt-training-cta__card {
	grid-template-columns: minmax(0, 1fr) !important;
	max-width: 100% !important;
	overflow-x: clip !important;
}

@media (min-width: 769px) {
	.vc-marketplace__hero--showcase .vc-marketplace__hero-promo .vc-mkt-training-cta--premium .vc-mkt-training-cta__register-group {
		display: grid !important;
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
		gap: 0.65rem !important;
	}

	.vc-mkt-training-cta--dual-catalog .vc-mkt-training-cta__catalog-card,
	.vc-mkt-training-cta--premium .vc-mkt-training-cta__catalog-card,
	.vc-marketplace__hero--showcase .vc-marketplace__hero-promo .vc-mkt-training-cta--premium .vc-mkt-training-cta__catalog-card {
		padding: 1.05rem 1rem !important;
		gap: 0.8rem 0.95rem !important;
	}
}

@media (min-width: 1141px) {
	.vc-marketplace__hero--showcase .vc-marketplace__hero-promo {
		max-width: 100% !important;
	}

	.vc-mkt-training-cta--dual-catalog .vc-mkt-training-cta__catalog-card-title,
	.vc-mkt-training-cta--premium .vc-mkt-training-cta__catalog-card-title,
	.vc-marketplace__hero--showcase .vc-marketplace__hero-promo .vc-mkt-training-cta--premium .vc-mkt-training-cta__catalog-card-title {
		font-size: 1.0625rem !important;
	}
}

.vc-mkt-training-cta__actions,
.vc-mkt-training-cta__panel,
.vc-mkt-training-cta__catalog-block {
	min-width: 0 !important;
	max-width: 100% !important;
}

@media (max-width: 768px) {
	.vc-mkt-training-cta--dual-catalog .vc-mkt-training-cta__catalog-card,
	.vc-mkt-training-cta--premium .vc-mkt-training-cta__catalog-card {
		padding: 0.9rem 0.8rem !important;
		gap: 0.6rem 0.7rem !important;
		min-height: 52px;
	}

	.vc-mkt-training-cta--dual-catalog .vc-mkt-training-cta__catalog-card-icon,
	.vc-mkt-training-cta--premium .vc-mkt-training-cta__catalog-card-icon {
		width: 2.75rem !important;
		height: 2.75rem !important;
	}

	.vc-mkt-training-cta--dual-catalog .vc-mkt-training-cta__catalog-card-title,
	.vc-mkt-training-cta--premium .vc-mkt-training-cta__catalog-card-title {
		font-size: 1rem !important;
		line-height: 1.38 !important;
	}

	.vc-mkt-training-cta--dual-catalog .vc-mkt-training-cta__catalog-card-desc,
	.vc-mkt-training-cta--premium .vc-mkt-training-cta__catalog-card-desc {
		font-size: 0.875rem !important;
		line-height: 1.5 !important;
	}

	.vc-mkt-training-cta--premium .vc-mkt-training-cta__catalog-heading-label {
		white-space: normal !important;
		text-align: center;
		line-height: 1.35;
	}
}
