/*
Theme Name: GW Theme Child
Theme URI: https://genzweb.it/
Description: Tema child ufficiale di GW Theme per personalizzazioni aggiornabili.
Author: GenzWeb
Template: gw-theme
Version: 1.0.0
Text Domain: gw-theme-child
*/

/* Hero interni: centra il sottotitolo rispetto alla barra verticale. */
body.page .elementor[data-elementor-type="wp-page"]
	> .e-con:first-child
	> header.e-con:first-child
	.elementor-widget-text-editor
	> p:only-child {
	margin-block: 0;
}

/* Prestazioni: guida illustrata e indice che si aggiorna dalle pagine figlie. */
.page-id-147 .elementor .elementor-element-731e75d6 {
	display: flex !important;
	padding-top: 44px !important;
	padding-bottom: 80px !important;
}

.page-id-147 .elementor .elementor-element-731e75d6 > .e-con-inner {
	display: flex !important;
	flex-direction: column;
	align-items: stretch;
	gap: 0 !important;
	width: 100%;
	padding: 0 !important;
}

.page-id-147 .elementor .asp-guide-feature,
.page-id-147 .elementor .elementor-element-663e512b,
.page-id-147 .elementor .elementor-element-8bd08e0a {
	width: 100% !important;
	max-width: none !important;
	margin: 0 !important;
}

.page-id-147 .elementor .asp-guide-feature {
	display: grid !important;
	grid-template-columns: minmax(0, 43%) minmax(0, 57%);
	gap: 0 !important;
	min-height: 314px;
	padding: 0 !important;
	overflow: hidden;
	border: 1px solid #bed9e9;
	border-radius: 14px;
	background: #eaf6fc;
	box-shadow: 0 12px 28px rgba(17, 61, 94, 0.10);
}

.page-id-147 .asp-guide-feature .asp-guide-photo {
	position: relative;
	min-height: 314px;
	overflow: hidden;
}

.page-id-147 .asp-guide-feature .asp-guide-photo .elementor-widget-container,
.page-id-147 .asp-guide-feature .asp-guide-photo figure {
	position: absolute !important;
	inset: 0;
	width: 100%;
	height: 100% !important;
	margin: 0;
}

.page-id-147 .asp-guide-feature .asp-guide-photo img {
	display: block;
	width: 100% !important;
	height: 100% !important;
	max-width: none !important;
	object-fit: cover;
	object-position: center;
}

.page-id-147 .elementor .elementor-element-663e512b > .elementor-widget-container {
	height: 100%;
	margin: 0 !important;
}

.page-id-147 .gw-document-feature {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	justify-content: center;
	gap: 22px;
	width: 100%;
	height: 100%;
	margin: 0;
	padding: 32px 38px !important;
	border: 0;
	border-radius: 0;
	background: transparent !important;
	box-shadow: none !important;
}

.page-id-147 .gw-document-feature h2 {
	font-size: clamp(23px, 2.3vw, 30px);
	line-height: 1.18;
}

.page-id-147 .gw-document-feature p {
	font-size: 15px;
	line-height: 1.5;
}

.page-id-147 .gw-document-feature .gw-document-download {
	align-self: flex-start;
}

.page-id-147 .asp-guide-disclaimer {
	margin: 9px 0 38px !important;
	color: #60717e;
	font-size: 12px;
	text-align: right;
}

.page-id-147 .asp-guide-disclaimer p {
	margin: 0;
}

.page-id-147 .asp-benefits {
	width: 100%;
	color: #213747;
}

.page-id-147 .asp-benefits__heading {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 20px;
	margin-bottom: 22px;
}

.page-id-147 .asp-benefits__heading h2 {
	margin: 0;
	color: #102d40;
	font-size: clamp(27px, 2.5vw, 32px);
	line-height: 1.15;
}

.page-id-147 .asp-benefits__count {
	flex-shrink: 0;
	color: #60717e;
	font-size: 12px;
	font-weight: 700;
}


.page-id-147 .asp-benefits__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px;
}

.page-id-147 .asp-benefits__card {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	gap: 23px;
	min-height: 112px;
	padding: 19px 22px;
	border: 1px solid #c7dfeb;
	border-top: 3px solid #1e6698;
	border-radius: 10px;
	background: #fff;
	box-shadow: 0 6px 16px rgba(12, 53, 71, 0.08);
	color: #102d40;
	text-decoration: none;
	transition: border-color 220ms ease, box-shadow 220ms ease, transform 220ms ease;
}

.page-id-147 .asp-benefits__card:hover,
.page-id-147 .asp-benefits__card:focus-visible {
	transform: translateY(-3px);
	border-color: #1e6698;
	box-shadow: 0 12px 24px rgba(12, 53, 71, 0.15);
	color: #164f78;
	text-decoration: none;
}

.page-id-147 .asp-benefits__card:focus-visible {
	outline: 3px solid #8fc3e5;
	outline-offset: 3px;
}

.page-id-147 .asp-benefits__card-title {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 15px;
	font-size: 17px;
	font-weight: 750;
	line-height: 1.35;
}

.page-id-147 .asp-benefits__arrow {
	flex-shrink: 0;
	color: #1e6698;
	font-size: 20px;
	font-weight: 400;
	line-height: 1;
}

.page-id-147 .asp-benefits__card-hint {
	color: #60717e;
	font-size: 11px;
	font-weight: 700;
}

@media (max-width: 1100px) {
	.page-id-147 .elementor .asp-guide-feature {
		grid-template-columns: minmax(0, 1fr);
	}

	.page-id-147 .asp-guide-feature .asp-guide-photo {
		min-height: 0;
		height: clamp(230px, 30vw, 280px);
	}

	.page-id-147 .gw-document-feature {
		height: auto;
		justify-content: flex-start;
		gap: 14px;
		padding: 24px 28px !important;
	}
}

@media (max-width: 900px) {
	.page-id-147 .asp-guide-feature .asp-guide-photo {
		height: auto;
		aspect-ratio: 3 / 2;
	}
}

@media (max-width: 767px) {
	.page-id-147 .elementor .elementor-element-731e75d6 {
		padding-top: 30px !important;
		padding-bottom: 62px !important;
	}

	.page-id-147 .gw-document-feature {
		padding: 24px !important;
	}

	.page-id-147 .asp-guide-disclaimer {
		margin-bottom: 32px !important;
	}

	.page-id-147 .asp-benefits__heading {
		align-items: flex-start;
		flex-direction: column;
		gap: 8px;
	}

	.page-id-147 .asp-benefits__grid {
		grid-template-columns: minmax(0, 1fr);
	}

	.page-id-147 .asp-benefits__card {
		min-height: 96px;
	}

}

@media (prefers-reduced-motion: reduce) {
	.page-id-147 .asp-benefits__card {
		transition: none;
	}

	.page-id-147 .asp-benefits__card:hover,
	.page-id-147 .asp-benefits__card:focus-visible {
		transform: none;
	}
}

/* I numeri dei passaggi restano cerchi di 44 px anche accanto al testo lungo. */
body.page .elementor .e-con.asp-step-number {
	--width: 44px;
	--min-height: 44px;
	--align-self: flex-start;
	--flex-shrink: 0;
	flex: 0 0 44px;
	width: 44px;
	min-width: 44px;
	height: 44px;
	min-height: 44px;
	max-height: 44px;
	align-self: flex-start;
	border-radius: 50%;
}

/* Chi siamo: immagine editoriale coordinata con la card principale. */
.page-id-8 .elementor-element.asp-about-photo {
	position: relative;
	overflow: hidden;
	width: calc(100% + 80px) !important;
	max-width: none !important;
	margin: -40px -40px 14px !important;
	border-radius: 13px 13px 8px 8px;
	background: #dfe8ef;
	box-shadow: 0 22px 46px -34px rgba(9, 35, 52, 0.72);
}

.page-id-8 .elementor-element.asp-about-photo::after {
	position: absolute;
	inset: 0;
	border: 1px solid rgba(255, 255, 255, 0.58);
	border-radius: inherit;
	box-shadow: inset 0 -90px 110px -112px rgba(9, 35, 52, 0.8);
	content: "";
	pointer-events: none;
}

.page-id-8 .asp-about-photo img {
	display: block;
	width: 100%;
	height: 360px;
	object-fit: cover;
	object-position: center 42%;
}

@media (max-width: 1024px) {
	.page-id-8 .elementor-element.asp-about-photo {
		width: calc(100% + 68px) !important;
		margin: -34px -34px 12px !important;
	}

	.page-id-8 .asp-about-photo img {
		height: 320px;
	}
}

@media (max-width: 767px) {
	/* Home: on small screens the objective photograph introduces the message. */
	.page-id-4 .elementor-element.elementor-element-asp41001 {
		grid-row: 1;
	}

	.page-id-4 .elementor-element.elementor-element-asp40002 {
		grid-row: 2;
	}

	.page-id-8 .elementor-element.asp-about-photo {
		width: calc(100% + 40px) !important;
		margin: -24px -20px 8px !important;
	}

	.page-id-8 .elementor-element.asp-about-photo {
		border-radius: 13px 13px 7px 7px;
	}

	.page-id-8 .asp-about-photo img {
		height: 230px;
	}
}

/* Contatti: modulo operativo e recapiti in una composizione editoriale coerente. */
.page-id-12 .asp-contact-content {
	gap: 0 !important;
}

.page-id-12 .asp-contact-content > .e-con-inner {
	gap: 0 !important;
}

.page-id-12 .asp-contact-section-title {
	max-width: 760px;
	margin: 0 0 12px;
}

.page-id-12 .asp-contact-section-title .elementor-heading-title {
	margin: 0;
	color: #102f46;
	font-family: "Figtree", sans-serif;
	font-size: clamp(32px, 3.2vw, 46px);
	font-weight: 650;
	letter-spacing: -0.025em;
	line-height: 1.08;
	text-wrap: balance;
}

.page-id-12 .asp-contact-intro {
	max-width: 720px;
}

.page-id-12 .asp-contact-intro p {
	margin: 0;
}

.page-id-12 .asp-contact-grid {
	align-items: start;
	margin-top: 38px !important;
	padding: 0 !important;
}

.page-id-12 .asp-contact-form-panel {
	align-self: stretch;
	padding: 40px !important;
	border-radius: 14px;
	background: #ffffff;
	box-shadow: 0 24px 54px -42px rgba(9, 35, 52, 0.72);
}

.page-id-12 .asp-contact-form-widget,
.page-id-12 .asp-contact-form-widget .gw-contact-form,
.page-id-12 .asp-contact-form-widget form {
	width: 100%;
}

.page-id-12 .asp-contact-form-widget .gw-contact-form label {
	color: #1f2d36;
}

.page-id-12 .asp-contact-form-widget .gw-contact-form input:not([type="checkbox"]),
.page-id-12 .asp-contact-form-widget .gw-contact-form select,
.page-id-12 .asp-contact-form-widget .gw-contact-form textarea {
	background: #fbfcfd;
	transition: border-color 180ms ease, box-shadow 180ms ease, background-color 180ms ease;
}

.page-id-12 .asp-contact-form-widget .gw-contact-form input:not([type="checkbox"]):focus,
.page-id-12 .asp-contact-form-widget .gw-contact-form select:focus,
.page-id-12 .asp-contact-form-widget .gw-contact-form textarea:focus {
	background: #ffffff;
	box-shadow: 0 0 0 3px rgba(23, 103, 154, 0.12);
}

.page-id-12 .asp-contact-form-widget .gw-contact-form a {
	text-underline-offset: 3px;
}

.page-id-12 .asp-contact-form-widget .gw-contact-form button:focus-visible,
.page-id-12 .asp-contact-info-card a:focus-visible {
	outline: 3px solid rgba(154, 201, 229, 0.72);
	outline-offset: 3px;
}

.page-id-12 .asp-contact-info-card {
	align-self: start;
	gap: 0 !important;
	padding: 0 0 36px !important;
	overflow: hidden;
	box-shadow: 0 24px 54px -42px rgba(9, 35, 52, 0.9);
}

.page-id-12 .asp-contact-photo {
	position: relative;
	width: 100% !important;
	margin: 0 0 30px !important;
	overflow: hidden;
	background: #e7e1d7;
}

.page-id-12 .asp-contact-photo::after {
	position: absolute;
	inset: 0;
	box-shadow: inset 0 -70px 80px -78px rgba(9, 35, 52, 0.86);
	content: "";
	pointer-events: none;
}

.page-id-12 .asp-contact-photo img {
	display: block;
	width: 100%;
	height: 286px;
	object-fit: cover;
	object-position: 58% 48%;
}

.page-id-12 .asp-contact-info-title,
.page-id-12 .asp-contact-address,
.page-id-12 .asp-contact-email {
	width: auto;
	margin-right: 36px;
	margin-left: 36px;
}

.page-id-12 .asp-contact-info-title {
	margin-bottom: 16px;
}

.page-id-12 .asp-contact-info-title .elementor-heading-title {
	font-size: clamp(30px, 3vw, 39px) !important;
	text-wrap: balance;
}

.page-id-12 .asp-contact-address {
	color: #e6f0f7;
}

.page-id-12 .asp-contact-address p,
.page-id-12 .asp-contact-email p {
	margin: 0;
}

.page-id-12 .asp-contact-email {
	margin-top: 24px;
	padding-top: 22px;
	border-top: 1px solid rgba(230, 239, 236, 0.22);
}

.page-id-12 .asp-contact-email a {
	display: inline-block;
	max-width: 100%;
	color: #ffffff;
	font-weight: 650;
	text-decoration-thickness: 1px;
	text-underline-offset: 4px;
	overflow-wrap: anywhere;
}

.page-id-12 ::selection {
	background: #d5eaf6;
	color: #092334;
}

@media (max-width: 900px) {
	.page-id-12 .asp-contact-grid {
		grid-template-columns: minmax(0, 1fr) !important;
		gap: 28px !important;
	}

	.page-id-12 .asp-contact-photo img {
		height: clamp(260px, 46vw, 380px);
		object-position: center 42%;
	}
}

@media (max-width: 767px) {
	.page-id-12 .asp-contact-section-title {
		margin-bottom: 10px;
	}

	.page-id-12 .asp-contact-grid {
		margin-top: 28px !important;
		gap: 22px !important;
	}

	.page-id-12 .asp-contact-form-panel {
		padding: 24px 20px !important;
	}

	.page-id-12 .asp-contact-info-card {
		padding-bottom: 28px !important;
	}

	.page-id-12 .asp-contact-photo {
		margin-bottom: 24px !important;
	}

	.page-id-12 .asp-contact-photo img {
		height: 248px;
		object-position: 56% 46%;
	}

	.page-id-12 .asp-contact-info-title,
	.page-id-12 .asp-contact-address,
	.page-id-12 .asp-contact-email {
		margin-right: 24px;
		margin-left: 24px;
	}

	.page-id-12 .asp-contact-email {
		margin-top: 20px;
		padding-top: 18px;
	}
}

/* Sidebar editoriali: più vicine al testo e più leggibili sul desktop. */
@media (min-width: 1025px) {
	body.page .elementor .e-con-inner:has(> aside.e-con),
	body.page .elementor main.e-con > .e-con-inner > .e-con:has(> article.e-con + div.e-con aside.e-con) {
		column-gap: 32px !important;
	}

	body.page .elementor .e-con-inner > aside.e-con,
	body.page .elementor main.e-con > .e-con-inner > .e-con:has(> article.e-con + div.e-con aside.e-con) > article.e-con + div.e-con {
		--width: 31% !important;
	}
}

/* Le card delle pagine informative partono dal bordo della colonna. */
body.page .elementor .e-con-inner > aside.e-con {
	--padding-top: 0 !important;
	--padding-right: 0 !important;
	--padding-bottom: 0 !important;
	--padding-left: 0 !important;
}

/* Un bordo blu tenue e un'ombra bassa separano i riquadri dallo sfondo. */
body.page .elementor .e-con-inner > aside.e-con > .e-con {
	border: 1px solid #cbdce8 !important;
	box-shadow: 0 12px 24px -18px rgba(9, 35, 52, 0.26),
		0 3px 9px -6px rgba(9, 35, 52, 0.12) !important;
}

body.page .elementor main.e-con > .e-con-inner > .e-con:has(> article.e-con + div.e-con aside.e-con) aside.e-con {
	border: 1px solid rgba(255, 255, 255, 0.14) !important;
	box-shadow: 0 14px 26px -20px rgba(9, 35, 52, 0.55) !important;
}

/* Card fotografiche delle pagine Lavoratori e Aziende. */

:is(.page-id-5, .page-id-6, .page-id-13) .elementor .asp-service-photo-grid {
	--e-con-grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	--padding-top: 0px !important;
	--padding-right: 0px !important;
	--padding-bottom: 0px !important;
	--padding-left: 0px !important;
	grid-auto-rows: 1fr;
	gap: 15px !important;
	margin-top: 0 !important;
	padding: 0 !important;
}

:is(.page-id-5, .page-id-6, .page-id-13) .elementor .asp-service-photo-card {
	--min-height: 203px !important;
	--padding-top: 0 !important;
	--padding-right: 0 !important;
	--padding-bottom: 0 !important;
	--padding-left: 0 !important;
	--gap: 0 !important;
	display: grid !important;
	grid-template-columns: 35% minmax(0, 1fr);
	min-height: 203px;
	height: 100%;
	align-items: stretch;
	gap: 0;
	overflow: hidden;
	position: relative;
	border: 1px solid #c5ddea;
	border-radius: 9px;
	box-shadow: 0 6px 16px rgba(16, 47, 70, 0.12);
}

:is(.page-id-5, .page-id-6, .page-id-13) .elementor .asp-service-photo-card::after {
	position: absolute;
	inset: 0;
	border: 2px solid #1e6698;
	border-radius: inherit;
	content: "";
	opacity: 0;
	pointer-events: none;
	transition: opacity 280ms ease;
}

:is(.page-id-5, .page-id-6, .page-id-13) .elementor .asp-service-photo-card:hover::after,
:is(.page-id-5, .page-id-6, .page-id-13) .elementor .asp-service-photo-card:focus-within::after {
	opacity: 1;
}

:is(.page-id-5, .page-id-6, .page-id-13) .elementor .asp-service-photo-card > .asp-service-photo {
	position: relative;
	width: 100%;
	height: 100%;
	min-width: 0;
	min-height: 0;
	margin: 0 !important;
	overflow: hidden;
}

:is(.page-id-5, .page-id-6, .page-id-13) .asp-service-photo .elementor-widget-container {
	position: absolute;
	inset: 0;
}

:is(.page-id-5, .page-id-6, .page-id-13) .asp-service-photo img {
	display: block;
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

:is(.page-id-5, .page-id-6, .page-id-13) .asp-service-photo-health img { object-position: 50% 12%; }
:is(.page-id-5, .page-id-6, .page-id-13) .asp-service-photo-family img { object-position: 54% 50%; }
:is(.page-id-5, .page-id-6, .page-id-13) .asp-service-photo-booking img { object-position: 69% 50%; }
:is(.page-id-5, .page-id-6, .page-id-13) .asp-service-photo-answers img { object-position: 68% 50%; }

:is(.page-id-5, .page-id-6, .page-id-13) .elementor .asp-service-photo-copy {
	--padding-top: 20px !important;
	--padding-right: 20px !important;
	--padding-bottom: 20px !important;
	--padding-left: 20px !important;
	--gap: 0 !important;
	--width: 100% !important;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	justify-content: center;
	min-width: 0;
	gap: 0;
}

:is(.page-id-5, .page-id-6, .page-id-13) .asp-service-photo-copy > .elementor-widget {
	margin: 0 !important;
}

:is(.page-id-5, .page-id-6, .page-id-13) .asp-service-photo-copy .elementor-heading-title {
	font-family: "Figtree", sans-serif !important;
	font-size: 20px !important;
	line-height: 1.1 !important;
}

:is(.page-id-5, .page-id-6, .page-id-13) .asp-service-photo-copy .elementor-widget-text-editor {
	min-height: 0;
	margin-top: 7px !important;
	font-family: "Source Sans 3", sans-serif !important;
	font-size: 17px !important;
	line-height: 1.62 !important;
}

:is(.page-id-5, .page-id-6, .page-id-13) .asp-service-photo-copy .elementor-widget-text-editor p {
	margin: 0;
}

:is(.page-id-5, .page-id-6, .page-id-13) .asp-service-photo-copy .elementor-widget-button {
	margin-top: 20px !important;
}

:is(.page-id-5, .page-id-6, .page-id-13) .asp-service-photo-copy .elementor-button {
	padding: 12px 18px !important;
	border-radius: 8px !important;
	font-family: "Source Sans 3", sans-serif !important;
	font-size: 15.68px !important;
	line-height: 1.2 !important;
	white-space: normal;
}

:is(.page-id-5, .page-id-6, .page-id-13) .asp-ai-image-note {
	width: 100%;
	margin-top: -5px !important;
	color: #4f6372;
	font-size: 13px;
	text-align: left;
}

:is(.page-id-5, .page-id-6, .page-id-13) .asp-ai-image-note p { margin: 0; }

@media (max-width: 700px) {
	:is(.page-id-5, .page-id-6, .page-id-13) .elementor .asp-service-photo-grid {
		--e-con-grid-template-columns: minmax(0, 1fr) !important;
	}
}

@media (max-width: 1024px) {
	:is(.page-id-5, .page-id-6, .page-id-13) .elementor .asp-service-photo-card {
		--min-height: 0px !important;
		grid-template-columns: minmax(0, 1fr);
		grid-template-rows: auto 1fr;
		min-height: 0;
	}

	:is(.page-id-5, .page-id-6, .page-id-13) .elementor .asp-service-photo-card > .asp-service-photo {
		aspect-ratio: 16 / 9;
		height: auto;
		background: #e9eef2;
	}

	.page-id-6 .elementor .asp-service-photo-card > .asp-service-photo {
		aspect-ratio: 3 / 2;
	}

	:is(.page-id-5, .page-id-6, .page-id-13) .asp-service-photo img {
		object-fit: contain;
		object-position: center !important;
	}
}

@media (max-width: 767px) {
	:is(.page-id-5, .page-id-6, .page-id-13) .elementor .asp-service-photo-copy {
		--padding-top: 16px !important;
		--padding-right: 14px !important;
		--padding-bottom: 16px !important;
		--padding-left: 14px !important;
	}

	:is(.page-id-5, .page-id-6, .page-id-13) .asp-service-photo-copy .elementor-button {
		padding-right: 12px !important;
		padding-left: 12px !important;
	}
}

@media (prefers-reduced-motion: reduce) {
	:is(.page-id-5, .page-id-6, .page-id-13) .elementor .asp-service-photo-card::after {
		transition: none;
	}
}
