/**
 * PSH Professional Theme — base layout (variables via styles-manager.php).
 */

*, *::before, *::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; }

body {
	margin: 0;
	font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
	font-size: 1rem;
	line-height: 1.6;
	color: var(--psh-text-color, #222);
	background: var(--psh-background-color, #fff);
}

img { max-width: 100%; height: auto; vertical-align: middle; }

.screen-reader-text {
	border: 0;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute;
	width: 1px;
	word-wrap: normal !important;
}

a {
	color: var(--psh-primary-color, #111);
	text-decoration-thickness: 1px;
	text-underline-offset: 0.15em;
}

.psh-container {
	width: 100%;
	max-width: 1200px;
	margin-left: auto;
	margin-right: auto;
	padding-left: 1.25rem;
	padding-right: 1.25rem;
}

.psh-section { padding-top: 3rem; padding-bottom: 3rem; }
.psh-main { min-height: 40vh; }

/**
 * Home — blocchi modulari (wrapper da theme-options / JSON home_sections).
 * Senza queste regole le classi --p-* non creano spazio fra le sezioni.
 */
.psh-home {
	display: flex;
	flex-direction: column;
}

.psh-home-section-cta {
	margin-top: 0.5rem;
	text-align: center;
}

.psh-home-section-cta__inner {
	margin: 0;
}

.psh-home-block--p-none {
	padding-top: 0;
	padding-bottom: 0;
}

.psh-home-block--p-sm {
	padding-top: clamp(1.25rem, 3vw, 2rem);
	padding-bottom: clamp(1.25rem, 3vw, 2rem);
}

.psh-home-block--p-md {
	padding-top: clamp(2rem, 5vw, 3.75rem);
	padding-bottom: clamp(2rem, 5vw, 3.75rem);
}

.psh-home-block--p-lg {
	padding-top: clamp(2.75rem, 6vw, 5rem);
	padding-bottom: clamp(2.75rem, 6vw, 5rem);
}

.psh-home-block--p-xl {
	padding-top: clamp(3.5rem, 8vw, 6.5rem);
	padding-bottom: clamp(3.5rem, 8vw, 6.5rem);
}

/* Larghezza: il contenuto usa già .psh-container; qui solo varianti di max-width */
.psh-home-block--w-contained .psh-container {
	max-width: 1200px;
}

.psh-home-block--w-full .psh-container {
	max-width: none;
}

/* Schema di sfondo per separare visivamente le fasce */
.psh-home-block--s-default {
	background: transparent;
}

.psh-home-block--s-muted {
	background: var(--psh-surface-muted, var(--psh-secondary-color, #f5f5f5));
}

.psh-home-block--s-primary {
	background: rgba(0, 0, 0, 0.04);
}

.psh-scheme-dark .psh-home-block--s-primary {
	background: rgba(255, 255, 255, 0.05);
}

.psh-home-block--s-contrast {
	background: var(--psh-primary-color, #111);
	color: var(--psh-background-color, #fff);
}

.psh-home-block--s-contrast a {
	color: inherit;
}

.psh-page-wrapper {
	display: flex;
	flex-direction: column;
	min-height: 100vh;
}

.psh-site-header {
	position: relative;
	z-index: 50;
	background: var(--psh-background-color, #fff);
	border-bottom: 1px solid rgba(0, 0, 0, 0.06);
}

.psh-header-sticky .psh-site-header {
	position: fixed;
	left: 0;
	right: 0;
	top: 0;
	z-index: 50;
}

body.admin-bar.psh-header-sticky .psh-site-header {
	top: 32px;
}

@media screen and (max-width: 782px) {
	body.admin-bar.psh-header-sticky .psh-site-header {
		top: 46px;
	}
}

/* Home con hero trasparente: header in overlay, niente riserva su #page */
body.psh-header-sticky.psh-header-transparent-hero.psh-page-home .psh-site-header {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
}

body.psh-header-sticky.psh-header-transparent-hero.psh-page-home #page.psh-page-wrapper {
	padding-top: 0;
}

body.psh-header-sticky #page.psh-page-wrapper {
	padding-top: var(--psh-header-offset, 5rem);
}

html {
	scroll-padding-top: var(--psh-header-offset, 0px);
}

.psh-site-header__inner {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding-top: 1rem;
	padding-bottom: 1rem;
}

.psh-custom-logo-link img,
.psh-logo-img { max-height: 48px; width: auto; }

.psh-site-title {
	font-weight: 700;
	font-size: 1.25rem;
	text-decoration: none;
	color: inherit;
}

.psh-nav-toggle {
	display: none;
	background: none;
	border: 0;
	cursor: pointer;
	padding: 0.5rem;
	color: var(--psh-text-color, #222);
	-webkit-appearance: none;
	appearance: none;
}

.psh-nav-toggle__bar {
	display: block;
	width: 24px;
	height: 2px;
	background: currentColor;
	margin: 5px 0;
}

/* Hamburger + eventuale chat toolbar: solo mobile (vedi sotto max-width 640px). */
.psh-header-triggers {
	display: none;
	align-items: center;
	gap: 0.5rem;
}

.psh-primary-nav {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 1rem;
}

.psh-header-social {
	display: flex;
	align-items: center;
	flex-shrink: 0;
}

.psh-header-social .psh-social-icons {
	justify-content: flex-start;
	gap: 0.35rem;
	margin: 0;
}

.psh-header-social .psh-social-icons__link {
	width: 2.35rem;
	height: 2.35rem;
}

@media (min-width: 641px) {
	.psh-primary-nav {
		flex: 1;
		justify-content: flex-end;
	}

	.psh-header-social {
		margin-left: 0.5rem;
	}
}

.psh-menu {
	display: flex;
	flex-wrap: wrap;
	gap: 1rem;
	list-style: none;
	margin: 0;
	padding: 0;
}

.psh-menu a { text-decoration: none; font-weight: 500; }

.psh-btn {
	display: inline-block;
	padding: 0.65rem 1.25rem;
	border-radius: 4px;
	font-weight: 600;
	text-decoration: none;
	background: var(--psh-button-color, #111);
	color: #fff;
	border: none;
	cursor: pointer;
	transition: background 0.2s;
}

.psh-btn:hover {
	background: var(--psh-button-hover-color, #333);
	color: #fff;
}

.psh-btn--ghost {
	background: transparent;
	color: inherit;
	border: 2px solid currentColor;
}

.psh-site-footer {
	margin-top: auto;
}

.psh-social-list {
	display: flex;
	flex-wrap: wrap;
	gap: 1rem;
	list-style: none;
	margin: 0;
	padding: 0;
}

.psh-social-list a { text-decoration: none; }

.psh-hero {
	position: relative;
	display: flex;
	align-items: center;
	padding: 4rem 0;
	overflow: hidden;
}

.psh-hero:not(.psh-hero--fullscreen) {
	min-height: calc(var(--psh-hero-min-vh-mobile, 70) * 1vh);
}

@media (min-width: 768px) {
	.psh-hero:not(.psh-hero--fullscreen) {
		min-height: calc(var(--psh-hero-min-vh-desktop, 85) * 1vh);
	}
}

.psh-hero--fullscreen { min-height: 100vh; }

.psh-hero__bg {
	position: absolute;
	inset: 0;
	background-size: cover;
	background-position: center;
	z-index: 0;
}

.psh-hero__video-wrap {
	position: absolute;
	inset: 0;
	z-index: 0;
	overflow: hidden;
}

.psh-hero__video {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.psh-hero__video-wrap--youtube {
	position: absolute;
	inset: 0;
	z-index: 0;
	overflow: hidden;
	pointer-events: none;
}

/*
 * Crop cover (come object-fit: cover): iframe 16:9 più grande del box,
 * centrata; scale leggero per tagliare barre/UI ai bordi del player.
 */
.psh-hero__youtube-iframe {
	position: absolute;
	top: 50%;
	left: 50%;
	width: 100vw;
	height: 56.25vw;
	min-width: 177.78vh;
	min-height: 100vh;
	max-width: none;
	border: 0;
	outline: none;
	box-shadow: none;
	transform: translate(-50%, -50%) scale(1.12);
	transform-origin: center center;
}

/* Overlay leggero su immagine/video hero: contrasto per titoli e CTA */
.psh-hero:has(.psh-hero__bg, .psh-hero__video-wrap)::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	pointer-events: none;
	background: var(--psh-hero-overlay-bg, rgba(0, 0, 0, 0.28));
}

.psh-hero__inner {
	position: relative;
	z-index: 2;
}

.psh-hero__title {
	font-size: clamp(1.65rem, 3.8vw, 2.65rem);
	margin: 0 0 0.5rem;
	line-height: 1.1;
	color: var(--psh-hero-title-color, var(--psh-text-color, #222));
}

.psh-hero__subtitle {
	font-size: 1.25rem;
	opacity: 0.9;
	margin: 0 0 1rem;
	color: var(--psh-hero-subtitle-color, var(--psh-text-color, #222));
}

.psh-hero__text {
	color: var(--psh-hero-text-color, var(--psh-text-color, #222));
}

.psh-hero__social .psh-social-list a {
	color: var(--psh-hero-social-color, var(--psh-hero-text-color, var(--psh-text-color, #222)));
}

.psh-hero .psh-btn--ghost {
	color: var(--psh-hero-text-color, var(--psh-text-color, #222));
}

/* Con overlay attivo, fallback testo chiaro (override opzioni «Colori testo hero» se impostati) */
.psh-hero:has(.psh-hero__bg, .psh-hero__video-wrap) .psh-hero__title {
	color: var(--psh-hero-title-color, rgba(255, 255, 255, 0.98));
}

.psh-hero:has(.psh-hero__bg, .psh-hero__video-wrap) .psh-hero__subtitle {
	color: var(--psh-hero-subtitle-color, rgba(255, 255, 255, 0.92));
}

.psh-hero:has(.psh-hero__bg, .psh-hero__video-wrap) .psh-hero__text {
	color: var(--psh-hero-text-color, rgba(255, 255, 255, 0.88));
}

.psh-hero:has(.psh-hero__bg, .psh-hero__video-wrap) .psh-hero__social .psh-social-list a {
	color: var(--psh-hero-social-color, var(--psh-hero-text-color, rgba(255, 255, 255, 0.88)));
}

.psh-hero:has(.psh-hero__bg, .psh-hero__video-wrap) .psh-btn--ghost {
	color: var(--psh-hero-text-color, rgba(255, 255, 255, 0.95));
}

.psh-hero__cta {
	display: flex;
	flex-wrap: wrap;
	gap: 1rem;
	margin-top: 1.5rem;
}

.psh-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
	gap: 1.25rem;
}

@media (min-width: 900px) {
	.psh-grid:not(.psh-grid--masonry):not(.psh-grid--carousel):not(.psh-grid--archive-stack):not(.psh-page-about__team-grid) {
		grid-template-columns: repeat(var(--psh-grid-columns, 3), minmax(0, 1fr));
	}
}

.psh-grid--masonry {
	column-count: var(--psh-grid-columns, 3);
	column-gap: 1.25rem;
	display: block;
}

.psh-grid--masonry .psh-card {
	break-inside: avoid;
	margin-bottom: 1.25rem;
}

@media (max-width: 900px) {
	.psh-grid--masonry {
		column-count: min(2, var(--psh-grid-columns, 3));
	}
}

@media (max-width: 520px) {
	.psh-grid--masonry {
		column-count: 1;
	}
}

.psh-grid--carousel {
	display: flex;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	gap: 1rem;
	padding-bottom: 0.5rem;
}

.psh-grid--carousel .psh-card {
	flex: 0 0 min(320px, 85vw);
	scroll-snap-align: start;
}

/* Archivi «vedi tutto»: elenco verticale (no carosello) */
.psh-grid--archive-stack {
	display: flex;
	flex-direction: column;
	gap: 1.25rem;
	align-items: stretch;
}

.psh-grid--archive-stack .psh-card {
	width: 100%;
	max-width: none;
	flex: none;
}

.psh-card {
	border-radius: 6px;
	overflow: hidden;
	background: var(--psh-surface-muted, var(--psh-secondary-color, #f5f5f5));
}

.psh-card__link {
	display: block;
	text-decoration: none;
	color: inherit;
	height: 100%;
}

.psh-card__img {
	width: 100%;
	aspect-ratio: 4/5;
	object-fit: cover;
	display: block;
}

/* Home — anteprima articoli: riquadro 1:1 (cover). */
.psh-home-posts .psh-card__img {
	aspect-ratio: 1 / 1;
}

.psh-card__placeholder {
	aspect-ratio: 4/5;
	background: rgba(0, 0, 0, 0.06);
}

.psh-card__body { padding: 1rem; }

/* Staff / team: stesso sfondo delle altre card; titolo compatto, ruolo in accento */
.psh-card--team {
	background: var(--psh-surface-muted, var(--psh-secondary-color, #f5f5f5));
	color: #2a2a2a;
}

.psh-card--team .psh-card__link {
	color: inherit;
}

.psh-card--team .psh-card__title {
	font-size: 0.95rem;
	font-weight: 600;
	line-height: 1.25;
	letter-spacing: -0.015em;
	margin: 0 0 0.25rem;
}

.psh-card--team .psh-card__meta {
	margin: 0 0 0.45rem;
	font-size: 0.8rem;
	font-weight: 600;
	line-height: 1.35;
	color: var(--psh-primary-color, #111);
}

.psh-card--team .psh-card__excerpt {
	margin: 0;
	font-size: 0.82rem;
	line-height: 1.45;
	color: color-mix(in srgb, #2a2a2a 78%, transparent);
}

/* Archive / home — video & audio «fast» cards: player nel box, titolo con link (no card-link wrap) */
.psh-card--fast {
	display: flex;
	flex-direction: column;
	height: 100%;
}

.psh-card--fast .psh-card__media--embed {
	background: #0a0a0a;
	min-height: 0;
}

.psh-card--fast .psh-card__media--embed .psh-embed-responsive {
	position: relative;
	padding-bottom: 56.25%;
	height: 0;
	overflow: hidden;
	max-width: 100%;
}

.psh-card--fast .psh-card__media--embed .psh-local-video {
	position: relative;
	width: 100%;
	aspect-ratio: 16 / 9;
	background: #000;
}

.psh-card--fast .psh-card__media--embed .psh-local-video video {
	width: 100%;
	height: 100%;
	object-fit: contain;
	display: block;
}

.psh-card--fast .psh-card__media--audio {
	padding: 1rem 1rem 0;
	flex: 1;
	min-height: 0;
	display: flex;
	flex-direction: column;
	justify-content: center;
}

.psh-card--fast .psh-card__media--audio .psh-audio-native {
	width: 100%;
	min-width: 0;
}

.psh-card--fast .psh-card__media--audio .psh-audio-external {
	margin: 0;
	text-align: center;
}

.psh-card--fast .psh-card__title {
	margin: 0;
}

.psh-card--fast .psh-card__title a {
	text-decoration: none;
	color: inherit;
}

.psh-card--fast .psh-card__title a:hover {
	text-decoration: underline;
}

.psh-card__title {
	font-size: 1.02rem;
	margin: 0 0 0.35rem;
}

.psh-section-title {
	font-size: clamp(1.25rem, 2.4vw, 1.65rem);
	margin: 0 0 1.5rem;
}

/* Home — sezioni «in evidenza» (carousel mobile, griglia desktop) */
.psh-featured-work {
	padding-top: 0.125rem;
}

.psh-featured-work .psh-section-head {
	margin-bottom: 1.25rem;
}

.psh-featured-work .psh-section-head .psh-section-title {
	margin-bottom: 0;
}

.psh-featured-work__archive-desktop {
	display: none;
}

@media (min-width: 768px) {
	.psh-featured-work__archive-desktop {
		display: inline;
	}
}

.psh-featured-work__archive-mobile {
	display: block;
	margin: 1.15rem 0 0;
	text-align: center;
}

.psh-featured-work__see-all {
	font-size: 0.9rem;
	font-weight: 600;
	text-decoration: none;
	color: color-mix(in srgb, var(--psh-text-color, #222) 65%, transparent);
	border-bottom: 1px solid color-mix(in srgb, var(--psh-primary-color, #111) 30%, transparent);
	padding-bottom: 0.1rem;
}

.psh-featured-work__see-all:hover {
	color: var(--psh-primary-color, #111);
}

@media (min-width: 768px) {
	.psh-featured-work__archive-mobile {
		display: none;
	}
}

.psh-featured-carousel {
	position: relative;
}

.psh-featured-carousel__track {
	display: flex;
	gap: 1rem;
	overflow-x: auto;
	overflow-y: hidden;
	scroll-snap-type: x mandatory;
	scroll-padding-inline: max(0.75rem, env(safe-area-inset-left)) max(0.75rem, env(safe-area-inset-right));
	scroll-behavior: smooth;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: thin;
	padding: 0.25rem 0 0.5rem;
	margin: 0 -0.25rem;
	padding-left: 0.25rem;
	padding-right: 0.25rem;
}

@media (min-width: 768px) {
	.psh-featured-carousel__track {
		display: grid;
		grid-template-columns: repeat(auto-fill, minmax(min(100%, 280px), 1fr));
		gap: clamp(1rem, 2vw, 1.5rem);
		overflow: visible;
		scroll-snap-type: none;
		margin: 0;
		padding: 0;
	}
}

.psh-featured-slide {
	flex: 0 0 min(86vw, 22rem);
	scroll-snap-align: center;
	min-width: 0;
	display: flex;
	flex-direction: column;
	background: var(--psh-surface-muted, color-mix(in srgb, var(--psh-secondary-color, #f5f5f5) 50%, var(--psh-background-color, #fff)));
	border-radius: 16px;
	border: 1px solid color-mix(in srgb, var(--psh-text-color, #222) 8%, transparent);
	box-shadow: 0 4px 24px rgba(0, 0, 0, 0.07);
	overflow: hidden;
}

@media (min-width: 768px) {
	.psh-featured-slide {
		flex: none;
		scroll-snap-align: unset;
	}
}

.psh-featured-slide__media {
	position: relative;
	width: 100%;
	min-height: 10rem;
	background: color-mix(in srgb, var(--psh-text-color, #111) 4%, transparent);
}

.psh-featured-slide__media .psh-featured-slide__figure {
	margin: 0;
	line-height: 0;
}

.psh-featured-slide__img {
	width: 100%;
	height: auto;
	max-height: min(52vh, 420px);
	object-fit: cover;
	display: block;
	aspect-ratio: 4 / 3;
}

.psh-featured-slide__embed {
	width: 100%;
	height: 100%;
	min-height: 11rem;
	display: flex;
	align-items: center;
	justify-content: center;
}

.psh-featured-slide__embed .psh-embed-responsive {
	position: relative;
	width: 100%;
	padding-bottom: 56.25%;
	height: 0;
	overflow: hidden;
	border-radius: 0;
}

.psh-featured-slide__embed .psh-embed-responsive iframe,
.psh-featured-slide__embed .psh-embed-responsive > * {
	position: absolute !important;
	top: 0 !important;
	left: 0 !important;
	width: 100% !important;
	height: 100% !important;
	border: 0 !important;
}

.psh-featured-slide__embed .psh-local-video video {
	width: 100%;
	max-height: min(52vh, 420px);
	border-radius: 0;
	background: #000;
}

.psh-featured-slide__audio {
	padding: 1rem 1rem 0.25rem;
	width: 100%;
	box-sizing: border-box;
}

.psh-featured-slide__audio .psh-audio-native {
	width: 100%;
	min-height: 2.5rem;
}

.psh-featured-slide__audio .psh-embed-responsive {
	padding-bottom: 120px;
	min-height: 120px;
}

.psh-featured-slide__placeholder {
	min-height: 12rem;
	display: flex;
	align-items: center;
	justify-content: center;
	background: linear-gradient(145deg, color-mix(in srgb, var(--psh-primary-color, #111) 15%, transparent), color-mix(in srgb, var(--psh-surface-muted, var(--psh-secondary-color, #f5f5f5)) 75%, transparent));
}

.psh-featured-slide__ph-icon {
	display: block;
	width: 3rem;
	height: 3rem;
	border-radius: 50%;
	border: 2px solid color-mix(in srgb, var(--psh-text-color, #222) 25%, transparent);
	opacity: 0.35;
}

.psh-featured-slide__footer {
	padding: 0.85rem 1rem 1rem;
	flex-grow: 1;
	display: flex;
	align-items: flex-end;
}

.psh-featured-slide__title {
	margin: 0;
	font-size: 0.95rem;
	line-height: 1.35;
	font-weight: 600;
}

.psh-featured-slide__title a {
	text-decoration: none;
	color: inherit;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.psh-featured-slide__title a:hover {
	text-decoration: underline;
	text-underline-offset: 0.15em;
}

/* Home — servizi in evidenza: carosello + punti (mobile), 4 colonne desktop, immagine 5:4 cover */
.psh-services-featured-slide.psh-featured-slide {
	padding: 0;
	overflow: hidden;
}

.psh-services-featured-slide__link {
	display: flex;
	flex-direction: column;
	height: 100%;
	min-height: 0;
	text-decoration: none;
	color: inherit;
}

.psh-services-featured-slide__media {
	position: relative;
	width: 100%;
	aspect-ratio: 5 / 4;
	overflow: hidden;
	background: color-mix(in srgb, var(--psh-text-color, #111) 5%, var(--psh-background-color, #fff));
}

.psh-services-featured-slide__img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	display: block;
}

.psh-services-featured-slide__placeholder {
	width: 100%;
	height: 100%;
	min-height: 0;
	background: linear-gradient(
		145deg,
		color-mix(in srgb, var(--psh-primary-color, #111) 12%, transparent),
		color-mix(in srgb, var(--psh-surface-muted, var(--psh-secondary-color, #f5f5f5)) 55%, transparent)
	);
}

.psh-services-featured-slide__footer {
	padding: 0.85rem 1rem 1rem;
	flex-grow: 1;
	display: flex;
	align-items: flex-end;
}

.psh-services-featured-slide__title {
	margin: 0;
	font-size: 0.95rem;
	line-height: 1.35;
	font-weight: 600;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

@media (min-width: 768px) {
	.psh-services-featured-carousel .psh-featured-carousel__track {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}
}

.psh-featured-carousel__dots {
	display: flex;
	justify-content: center;
	align-items: center;
	flex-wrap: wrap;
	gap: 0.45rem;
	margin-top: 0.85rem;
	min-height: 1.25rem;
}

@media (min-width: 768px) {
	.psh-featured-carousel__dots {
		display: none !important;
	}
}

.psh-featured-carousel__dot {
	width: 7px;
	height: 7px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: color-mix(in srgb, var(--psh-text-color, #222) 28%, transparent);
	cursor: pointer;
	transition: transform 0.2s ease, background 0.2s ease;
}

.psh-featured-carousel__dot.is-active {
	background: var(--psh-primary-color, #111);
	transform: scale(1.35);
}

@media (prefers-reduced-motion: reduce) {
	.psh-featured-carousel__track {
		scroll-behavior: auto;
	}

	.psh-featured-carousel__dot {
		transition: none;
	}
}

.psh-scheme-dark .psh-featured-slide {
	box-shadow: 0 8px 28px rgba(0, 0, 0, 0.35);
	border-color: color-mix(in srgb, var(--psh-text-color, #fff) 12%, transparent);
}

/* Home — recensioni Google (carosello) */
.psh-home-reviews {
	padding-block: clamp(2rem, 5vw, 3.5rem);
}

.psh-home-reviews__head {
	margin-bottom: clamp(1.25rem, 3vw, 2rem);
}

.psh-home-reviews__meta {
	margin: 0.5rem 0 0;
	font-size: 0.92rem;
	line-height: 1.5;
	color: color-mix(in srgb, var(--psh-text-color, #222) 72%, transparent);
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.5rem 1rem;
}

.psh-home-reviews__place {
	font-weight: 600;
	color: color-mix(in srgb, var(--psh-text-color, #222) 88%, transparent);
}

.psh-home-reviews__stars,
.psh-home-reviews__card-stars {
	color: #c9a227;
	letter-spacing: 0.02em;
}

.psh-home-reviews__rating-num {
	margin-left: 0.25rem;
	font-weight: 600;
}

.psh-home-reviews__widget {
	position: relative;
	display: flex;
	flex-wrap: wrap;
	align-items: stretch;
	gap: 0.35rem;
	max-width: min(100%, 920px);
	margin-left: auto;
	margin-right: auto;
}

.psh-home-reviews__viewport {
	flex: 1;
	min-width: 0;
	overflow: hidden;
	order: 2;
}

.psh-home-reviews__nav--prev {
	order: 1;
}

.psh-home-reviews__nav--next {
	order: 3;
}

.psh-home-reviews__dots {
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
	gap: 0.4rem;
	flex: 1 1 100%;
	order: 4;
	margin-top: 0.35rem;
	min-height: 1.1rem;
}

.psh-home-reviews__dot {
	width: 7px;
	height: 7px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: color-mix(in srgb, var(--psh-text-color, #222) 28%, transparent);
	cursor: pointer;
	transition: transform 0.2s ease, background 0.2s ease;
}

.psh-home-reviews__dot.is-active {
	background: var(--psh-primary-color, #111);
	transform: scale(1.35);
}

.psh-home-reviews__nav[hidden] {
	display: none !important;
}

.psh-home-reviews__track {
	display: flex;
	gap: 1rem;
	overflow-x: auto;
	overflow-y: hidden;
	scroll-snap-type: x mandatory;
	scroll-behavior: smooth;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: thin;
	padding: 0.15rem 0 0.5rem;
}

.psh-home-reviews__slide {
	flex: 0 0 min(100%, 420px);
	scroll-snap-align: center;
	min-width: min(100%, 420px);
}

.psh-home-reviews__card {
	height: 100%;
	padding: 1.15rem 1.25rem;
	border-radius: 10px;
	border: 1px solid color-mix(in srgb, var(--psh-text-color, #222) 10%, transparent);
	background: var(--psh-surface-muted, color-mix(in srgb, var(--psh-background-color, #fff) 92%, var(--psh-secondary-color, #f5f5f5) 8%));
	box-shadow: 0 4px 20px rgba(0, 0, 0, 0.04);
}

.psh-home-reviews__author {
	display: flex;
	align-items: center;
	gap: 0.65rem;
	margin-bottom: 0.75rem;
}

.psh-home-reviews__avatar {
	width: 40px;
	height: 40px;
	border-radius: 50%;
	object-fit: cover;
	flex-shrink: 0;
}

.psh-home-reviews__avatar--placeholder {
	display: flex;
	align-items: center;
	justify-content: center;
	background: color-mix(in srgb, var(--psh-primary-color, #111) 12%, transparent);
	color: var(--psh-primary-color, #111);
	font-weight: 700;
	font-size: 1rem;
}

.psh-home-reviews__author-text {
	display: flex;
	flex-direction: column;
	min-width: 0;
	flex: 1;
}

.psh-home-reviews__name {
	font-weight: 600;
	font-size: 0.95rem;
}

.psh-home-reviews__when {
	font-size: 0.8rem;
	color: color-mix(in srgb, var(--psh-text-color, #222) 58%, transparent);
}

.psh-home-reviews__card-stars {
	font-size: 0.85rem;
	flex-shrink: 0;
}

.psh-home-reviews__quote {
	margin: 0;
	font-size: 0.92rem;
	line-height: 1.55;
	font-style: italic;
	color: color-mix(in srgb, var(--psh-text-color, #222) 92%, transparent);
}

.psh-home-reviews__nav {
	flex-shrink: 0;
	align-self: center;
	width: 2.25rem;
	height: 2.25rem;
	border-radius: 50%;
	border: 1px solid color-mix(in srgb, var(--psh-text-color, #222) 14%, transparent);
	background: var(--psh-background-color, #fff);
	color: var(--psh-text-color, #222);
	font-size: 1.35rem;
	line-height: 1;
	cursor: pointer;
	transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.psh-home-reviews__nav:hover {
	background: var(--psh-primary-color, #111);
	color: var(--psh-background-color, #fff);
	border-color: transparent;
}

.psh-home-reviews__legal {
	margin: 1.25rem 0 0;
	font-size: 0.78rem;
	line-height: 1.5;
	color: color-mix(in srgb, var(--psh-text-color, #222) 58%, transparent);
	text-align: center;
}

.psh-home-reviews__maps-link {
	font-weight: 600;
	margin-right: 0.35rem;
}

.psh-home-reviews__attr {
	display: inline;
}

@media (max-width: 600px) {
	.psh-home-reviews__nav {
		display: none;
	}

	.psh-home-reviews__slide {
		flex: 0 0 88%;
		min-width: 88%;
	}
}

@media (prefers-reduced-motion: reduce) {
	.psh-home-reviews__track {
		scroll-behavior: auto;
	}
}

/* Home — Intro / Chi siamo: testo + immagine affiancati (desktop), colonna su mobile */
.psh-about-preview__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: clamp(1.5rem, 4vw, 3rem);
	align-items: center;
}

.psh-about-preview__content {
	min-width: 0;
}

.psh-about-preview__cta {
	margin-top: clamp(1.75rem, 4.5vw, 3rem);
	margin-bottom: 0;
}

.psh-about-preview__text + .psh-about-preview__cta {
	margin-top: clamp(2rem, 5vw, 3.25rem);
}

.psh-about-preview__text > *:first-child {
	margin-top: 0;
}

.psh-about-preview__aside {
	min-width: 0;
}

.psh-about-preview__figure {
	margin: 0;
}

.psh-about-preview__figure img {
	width: 100%;
	max-width: 560px;
	height: auto;
	display: block;
	border-radius: 4px;
	object-fit: cover;
}

/* About intro — gallery slider */
.psh-about-gallery {
	position: relative;
	--psh-about-gallery-aspect: 1 / 1;
	max-width: 560px;
	margin-left: auto;
	margin-right: auto;
}

.psh-about-gallery--1_1 {
	--psh-about-gallery-aspect: 1 / 1;
}

.psh-about-gallery--4_5 {
	--psh-about-gallery-aspect: 4 / 5;
}

.psh-about-gallery--5_4 {
	--psh-about-gallery-aspect: 5 / 4;
}

.psh-about-gallery__viewport {
	position: relative;
	overflow: hidden;
	border-radius: 12px;
	border: 1px solid color-mix(in srgb, var(--psh-text-color, #222) 10%, transparent);
	box-shadow: 0 8px 32px rgba(0, 0, 0, 0.08);
}

.psh-about-gallery__track {
	display: flex;
	gap: 0.85rem;
	overflow-x: auto;
	overflow-y: hidden;
	scroll-snap-type: x mandatory;
	scroll-padding-inline: max(0.5rem, env(safe-area-inset-left)) max(0.5rem, env(safe-area-inset-right));
	scroll-behavior: smooth;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: thin;
	padding: 0.2rem 0 0.35rem;
}

.psh-about-gallery__slide {
	flex: 0 0 min(88vw, 420px);
	max-width: min(88vw, 520px);
	scroll-snap-align: center;
	min-width: 0;
}

@media (min-width: 721px) {
	.psh-about-gallery__slide {
		flex: 0 0 calc(100% - 0.5rem);
		max-width: 100%;
	}
}

.psh-about-gallery__frame {
	position: relative;
	width: 100%;
	aspect-ratio: var(--psh-about-gallery-aspect);
	overflow: hidden;
	border-radius: 10px;
	background: color-mix(in srgb, var(--psh-text-color, #111) 6%, transparent);
}

.psh-about-gallery__frame img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.psh-about-gallery__nav {
	position: absolute;
	top: 50%;
	z-index: 2;
	transform: translateY(-50%);
	width: 2.35rem;
	height: 2.35rem;
	padding: 0;
	margin: 0;
	border: 0;
	border-radius: 50%;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 1.5rem;
	line-height: 1;
	color: var(--psh-background-color, #fff);
	background: color-mix(in srgb, var(--psh-text-color, #111) 72%, transparent);
	box-shadow: 0 2px 12px rgba(0, 0, 0, 0.2);
	transition: background 0.2s ease, transform 0.2s ease;
}

.psh-about-gallery__nav:hover,
.psh-about-gallery__nav:focus-visible {
	background: var(--psh-primary-color, #111);
	outline: none;
}

.psh-about-gallery__nav:focus-visible {
	box-shadow: 0 0 0 2px var(--psh-background-color, #fff), 0 0 0 4px var(--psh-primary-color, #111);
}

.psh-about-gallery__nav--prev {
	left: 0.4rem;
}

.psh-about-gallery__nav--next {
	right: 0.4rem;
}

.psh-about-gallery__nav[hidden] {
	display: none !important;
}

.psh-about-gallery__dots {
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
	gap: 0.4rem;
	margin-top: 0.75rem;
	min-height: 1.1rem;
}

.psh-about-gallery__dot {
	width: 6px;
	height: 6px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: color-mix(in srgb, var(--psh-text-color, #222) 28%, transparent);
	cursor: pointer;
	transition: transform 0.2s ease, background 0.2s ease;
}

.psh-about-gallery__dot.is-active {
	background: var(--psh-primary-color, #111);
	transform: scale(1.35);
}

@media (prefers-reduced-motion: reduce) {
	.psh-about-gallery__track {
		scroll-behavior: auto;
	}
	.psh-about-gallery__dot {
		transition: none;
	}
}

@media (min-width: 721px) {
	.psh-about-preview__grid:has(.psh-about-preview__aside) {
		grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	}
}

.psh-scheme-dark .psh-about-gallery__viewport {
	box-shadow: 0 12px 40px rgba(0, 0, 0, 0.35);
	border-color: color-mix(in srgb, var(--psh-text-color, #fff) 12%, transparent);
}

/* Pagina About (template PSH About) */
.psh-page-about__masthead {
	padding: clamp(2rem, 5vw, 3.25rem) 0;
	background: linear-gradient(
		180deg,
		var(--psh-surface-muted, color-mix(in srgb, var(--psh-secondary-color, #f5f5f5) 55%, var(--psh-background-color, #fff))) 0%,
		var(--psh-background-color, #fff) 100%
	);
	border-bottom: 1px solid color-mix(in srgb, var(--psh-text-color, #222) 8%, transparent);
}

.psh-page-about__masthead-inner {
	text-align: center;
	max-width: 52rem;
	margin-inline: auto;
}

.psh-page-about__title {
	margin: 0;
	font-size: clamp(1.5rem, 3.5vw, 2.1rem);
	line-height: 1.12;
	letter-spacing: -0.02em;
}

.psh-page-about__subtitle {
	margin: 0.75rem 0 0;
	font-size: clamp(0.98rem, 2vw, 1.15rem);
	font-weight: 500;
	line-height: 1.45;
	color: color-mix(in srgb, var(--psh-text-color, #222) 78%, transparent);
}

.psh-page-about__blocks {
	padding-bottom: clamp(2rem, 5vw, 4rem);
}

.psh-page-about__section {
	padding-top: clamp(1.75rem, 4vw, 2.75rem);
	padding-bottom: clamp(1.75rem, 4vw, 2.75rem);
}

.psh-page-about__section--cta {
	padding-top: clamp(2rem, 4vw, 3rem);
}

.psh-page-about__row {
	margin: 0;
}

.psh-page-about__row--split {
	display: grid;
	grid-template-columns: 1fr;
	gap: clamp(1.5rem, 3vw, 2.5rem);
	align-items: start;
}

@media (max-width: 767px) {
	.psh-page-about__row--split .psh-page-about__figure--lead {
		order: -1;
	}
}

@media (min-width: 768px) {
	.psh-page-about__row--split {
		grid-template-columns: minmax(0, 1.08fr) minmax(0, 0.92fr);
		align-items: center;
		gap: clamp(2rem, 4vw, 3rem);
	}
}

.psh-page-about__split-text--solo {
	max-width: 46rem;
	margin-inline: auto;
}

.psh-page-about__split-text .psh-page-about__intro + .psh-page-about__page-content,
.psh-page-about__split-text .psh-page-about__page-content + .psh-page-about__story,
.psh-page-about__split-text .psh-page-about__intro + .psh-page-about__story {
	margin-top: 1.25rem;
}

.psh-page-about__after-text-ctas {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem 1rem;
	margin-top: 1.5rem;
	align-items: center;
}

.psh-page-about__after-text-ctas .psh-page-about__after-text-cta {
	margin: 0;
}

.psh-page-about__figure {
	margin: 0;
	line-height: 0;
	border-radius: 14px;
	overflow: hidden;
	box-shadow: 0 10px 36px rgba(0, 0, 0, 0.1);
	border: 1px solid color-mix(in srgb, var(--psh-text-color, #222) 8%, transparent);
}

.psh-page-about__figure img {
	width: 100%;
	height: auto;
	display: block;
	vertical-align: top;
	object-fit: cover;
}

.psh-page-about__figure--lead img {
	max-height: min(72vh, 560px);
}

.psh-page-about__figure--hero img {
	max-height: min(78vh, 640px);
}

.psh-page-about__figure--secondary {
	max-width: 720px;
	margin-left: auto;
	margin-right: auto;
}

.psh-page-about__figure--secondary img {
	max-height: min(60vh, 480px);
}

.psh-page-about__story {
	font-size: 1.05rem;
	line-height: 1.65;
}

.psh-page-about__cta {
	margin: 0;
	padding: clamp(1.5rem, 4vw, 2.5rem);
	border-radius: 16px;
	background: color-mix(in srgb, var(--psh-surface-muted, var(--psh-secondary-color, #f5f5f5)) 82%, var(--psh-background-color, #fff));
	border: 1px solid color-mix(in srgb, var(--psh-text-color, #222) 8%, transparent);
	text-align: center;
}

.psh-page-about__cta-title {
	margin: 0 0 0.75rem;
	font-size: clamp(1.15rem, 2.1vw, 1.45rem);
}

.psh-page-about__cta-text {
	margin: 0 auto 1.25rem;
	max-width: 36rem;
	text-align: left;
}

.psh-page-about__cta-action {
	margin: 0;
}

/* Pagina template: tutti i servizi — header come Chi siamo + elenco card */
.psh-main--services-catalog {
	padding-bottom: clamp(2rem, 5vw, 3.5rem);
}

.psh-services-catalog-page__lead {
	padding-top: clamp(1.25rem, 3vw, 2rem);
	padding-bottom: clamp(1.5rem, 4vw, 2.75rem);
	background: var(--psh-background-color, #fff);
}

.psh-services-catalog-page__intro {
	max-width: 48rem;
	margin-left: auto;
	margin-right: auto;
	text-align: center;
}

.psh-services-catalog-body {
	padding-top: clamp(0.25rem, 1.5vw, 0.75rem);
	padding-bottom: 0;
}

.psh-services-catalog {
	display: flex;
	flex-direction: column;
	gap: clamp(1.35rem, 4vw, 2.25rem);
}

.psh-services-catalog__item {
	margin: 0;
	padding: 0;
	border: none;
}

.psh-services-catalog__card {
	background: var(--psh-surface-muted, color-mix(in srgb, var(--psh-background-color, #fff) 92%, var(--psh-secondary-color, #f5f5f5)));
	border: 1px solid color-mix(in srgb, var(--psh-text-color, #222) 8%, transparent);
	border-radius: 14px;
	padding: clamp(1.25rem, 4vw, 2rem);
	box-shadow:
		0 1px 2px color-mix(in srgb, var(--psh-text-color, #222) 6%, transparent),
		0 12px 40px color-mix(in srgb, var(--psh-text-color, #222) 5%, transparent);
}

.psh-services-catalog__box {
	display: grid;
	grid-template-columns: 1fr;
	gap: clamp(1rem, 3vw, 1.35rem);
	align-items: start;
	min-width: 0;
}

/* Mobile: ordine DOM = titolo (+ meta + line nascosta), immagine, testo */
.psh-services-catalog__head {
	margin: 0;
	min-width: 0;
}

.psh-services-catalog__title {
	margin: 0 0 0.35rem;
	font-size: clamp(1.15rem, 2.3vw, 1.5rem);
	font-weight: 600;
	line-height: 1.2;
	letter-spacing: -0.02em;
	color: var(--psh-text-color, #222);
}

.psh-services-catalog__meta {
	margin: 0 0 0.65rem;
	font-size: 0.9rem;
	line-height: 1.4;
	color: color-mix(in srgb, var(--psh-text-color, #222) 62%, transparent);
}

.psh-services-catalog__rule {
	display: none;
}

.psh-services-catalog__media {
	margin: 0;
	min-width: 0;
	border-radius: 12px;
	overflow: hidden;
	aspect-ratio: 4 / 3;
	background: color-mix(in srgb, var(--psh-text-color, #222) 6%, transparent);
}

.psh-services-catalog__media img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	vertical-align: top;
}

.psh-services-catalog__body {
	margin: 0;
	min-width: 0;
}

.psh-services-catalog__extras {
	margin-top: clamp(1.25rem, 3vw, 1.75rem);
	padding-top: clamp(1rem, 2.5vw, 1.35rem);
	border-top: 1px solid color-mix(in srgb, var(--psh-text-color, #222) 8%, transparent);
}

.psh-services-catalog__extras .psh-work-video:first-child {
	margin-top: 0;
}

@media (min-width: 768px) {
	.psh-services-catalog__rule {
		display: block;
		width: 3rem;
		height: 3px;
		margin: 0 0 1rem;
		border: none;
		border-radius: 2px;
		background: linear-gradient(
			90deg,
			var(--psh-primary-color, #111),
			color-mix(in srgb, var(--psh-primary-color, #111) 35%, var(--psh-surface-muted, var(--psh-secondary-color, #f5f5f5)))
		);
	}

	.psh-services-catalog__meta {
		margin-bottom: 0;
	}

	.psh-services-catalog__box:not(.psh-services-catalog__box--no-image) {
		grid-template-columns: minmax(0, 1.08fr) minmax(0, min(40vw, 480px));
		grid-template-rows: auto 1fr;
		column-gap: clamp(1.75rem, 4vw, 2.75rem);
		row-gap: clamp(0.65rem, 2vw, 1rem);
		align-items: start;
	}

	.psh-services-catalog__box:not(.psh-services-catalog__box--no-image) .psh-services-catalog__head {
		grid-column: 1;
		grid-row: 1;
	}

	.psh-services-catalog__box:not(.psh-services-catalog__box--no-image) .psh-services-catalog__body {
		grid-column: 1;
		grid-row: 2;
	}

	.psh-services-catalog__box:not(.psh-services-catalog__box--no-image) .psh-services-catalog__media {
		grid-column: 2;
		grid-row: 1 / span 2;
		align-self: stretch;
		aspect-ratio: auto;
		min-height: 220px;
	}

	.psh-services-catalog__box:not(.psh-services-catalog__box--no-image) .psh-services-catalog__media img {
		height: 100%;
		min-height: 260px;
		object-fit: cover;
	}

	.psh-services-catalog__box--no-image .psh-services-catalog__rule {
		display: block;
	}

	.psh-services-catalog__box--no-image {
		max-width: 48rem;
	}
}

.psh-services-catalog__empty {
	margin: 0;
	color: color-mix(in srgb, var(--psh-text-color, #222) 70%, transparent);
}

/* Team: griglia desktop, carosello scroll-snap mobile */
.psh-page-about__team {
	margin-top: clamp(1rem, 3vw, 2rem);
}

.psh-page-about__team-head {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: baseline;
	gap: 1rem;
	margin-bottom: 1.25rem;
}

.psh-page-about__team .psh-section-title {
	margin-bottom: 0;
}

.psh-page-about__team-shell {
	position: relative;
}

.psh-page-about__team-viewport {
	position: relative;
	padding-left: max(1.25rem, env(safe-area-inset-left, 0px));
	padding-right: max(1.25rem, env(safe-area-inset-right, 0px));
}

.psh-page-about__team-grid {
	gap: 1.25rem;
}

@media (min-width: 768px) {
	.psh-page-about__team-viewport {
		max-width: 1200px;
		margin-left: auto;
		margin-right: auto;
	}

	.psh-page-about__team-grid {
		display: grid;
		grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
	}
}

@media (max-width: 767px) {
	.psh-page-about__team-shell {
		width: 100vw;
		margin-left: calc(50% - 50vw);
		margin-right: calc(50% - 50vw);
	}

	.psh-page-about__team-grid {
		display: flex;
		flex-direction: row;
		flex-wrap: nowrap;
		overflow-x: auto;
		overflow-y: hidden;
		scroll-snap-type: x mandatory;
		scroll-padding-inline: 1.25rem;
		padding-bottom: 0.85rem;
		-webkit-overflow-scrolling: touch;
		scrollbar-width: thin;
	}

	.psh-page-about__team-grid > .psh-card {
		flex: 0 0 min(300px, 88vw);
		scroll-snap-align: center;
		max-width: none;
	}
}

.psh-scheme-dark .psh-page-about__masthead {
	background: linear-gradient(
		180deg,
		color-mix(in srgb, var(--psh-secondary-color, #1a1a1a) 80%, #000) 0%,
		var(--psh-background-color, #0f0f0f) 100%
	);
	border-bottom-color: rgba(255, 255, 255, 0.08);
}

.psh-scheme-dark .psh-page-about__figure {
	box-shadow: 0 14px 44px rgba(0, 0, 0, 0.45);
	border-color: color-mix(in srgb, var(--psh-text-color, #fff) 12%, transparent);
}

.psh-scheme-dark .psh-page-about__cta {
	background: color-mix(in srgb, var(--psh-text-color, #fff) 6%, var(--psh-background-color, #111));
	border-color: color-mix(in srgb, var(--psh-text-color, #fff) 10%, transparent);
}
.psh-scheme-dark .psh-page-about__team .psh-section-title {
	color: var(--psh-text-color, #f2f2f2);
}

.psh-section-head {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: baseline;
	gap: 1rem;
	margin-bottom: 1.5rem;
}

.psh-section-link { font-weight: 600; text-decoration: none; }

/* Home — striscia loghi (CPT Loghi) */
.psh-home-logos-marquee__head {
	margin-bottom: 0.75rem;
}

.psh-home-logos-marquee__strip {
	--psh-logo-marquee-duration: 45s;
}

.psh-home-logos-marquee__viewport {
	overflow: hidden;
	width: 100%;
	margin-top: 0.25rem;
	position: relative;
}

.psh-home-logos-marquee__track {
	--psh-logo-marquee-duration: 45s;
	display: flex;
	flex-direction: row;
	flex-wrap: nowrap;
	align-items: center;
	width: max-content;
	animation-name: psh-logo-marquee-scroll;
	animation-duration: var(--psh-logo-marquee-duration, 45s);
	animation-timing-function: linear;
	animation-iteration-count: infinite;
	animation-fill-mode: none;
	will-change: transform;
}

.psh-home-logos-marquee__seq {
	flex: 0 0 auto;
}

.psh-home-logos-marquee__list {
	display: flex;
	flex-wrap: nowrap;
	align-items: center;
	gap: clamp(1.5rem, 4vw, 2.75rem);
	list-style: none;
	margin: 0;
	padding: 0;
}

.psh-home-logos-marquee__item {
	flex: 0 0 auto;
}

.psh-home-logos-marquee__link,
.psh-home-logos-marquee__nolink {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 2.5rem;
	opacity: 0.88;
	transition: opacity 0.2s ease;
}

.psh-home-logos-marquee__link:hover,
.psh-home-logos-marquee__link:focus-visible {
	opacity: 1;
}

.psh-home-logos-marquee__img {
	display: block;
	max-height: 3rem;
	width: auto;
	max-width: 9rem;
	object-fit: contain;
}

@media (prefers-reduced-motion: reduce) {
	.psh-home-logos-marquee__track {
		animation: none;
		transform: none;
	}

	.psh-home-logos-marquee__seq[aria-hidden="true"] {
		display: none;
	}

	.psh-home-logos-marquee__viewport {
		overflow-x: auto;
		overflow-y: hidden;
		-webkit-overflow-scrolling: touch;
	}
}

@keyframes psh-logo-marquee-scroll {
	from {
		transform: translate3d(0, 0, 0);
	}

	to {
		transform: translate3d(-50%, 0, 0);
	}
}

.psh-prose > *:first-child { margin-top: 0; }
.psh-prose > *:last-child { margin-bottom: 0; }

/* Titoli h1–h6 più contenuti (prosa editor, pagine, articoli) */
.psh-prose h1,
.entry-content h1,
.psh-entry-content h1,
.wp-block-post-content h1 {
	font-size: clamp(1.3rem, 2.5vw, 1.7rem);
	line-height: 1.28;
	margin-top: 1.5em;
	margin-bottom: 0.5em;
	letter-spacing: -0.02em;
}

.psh-prose h2,
.entry-content h2,
.psh-entry-content h2,
.wp-block-post-content h2 {
	font-size: clamp(1.12rem, 2vw, 1.38rem);
	line-height: 1.3;
	margin-top: 1.4em;
	margin-bottom: 0.45em;
	letter-spacing: -0.015em;
}

.psh-prose h3,
.entry-content h3,
.psh-entry-content h3,
.wp-block-post-content h3 {
	font-size: clamp(1.05rem, 1.65vw, 1.2rem);
	line-height: 1.32;
	margin-top: 1.25em;
	margin-bottom: 0.4em;
}

.psh-prose h4,
.entry-content h4,
.psh-entry-content h4,
.wp-block-post-content h4 {
	font-size: 1.02rem;
	line-height: 1.35;
	margin-top: 1.15em;
	margin-bottom: 0.35em;
}

.psh-prose h5,
.entry-content h5,
.psh-entry-content h5,
.wp-block-post-content h5 {
	font-size: 0.95rem;
	line-height: 1.4;
	margin-top: 1em;
	margin-bottom: 0.3em;
	font-weight: 600;
}

.psh-prose h6,
.entry-content h6,
.psh-entry-content h6,
.wp-block-post-content h6 {
	font-size: 0.88rem;
	line-height: 1.4;
	margin-top: 1em;
	margin-bottom: 0.3em;
	font-weight: 600;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: color-mix(in srgb, var(--psh-text-color, #222) 78%, transparent);
}

.wp-block-post-title,
h1.wp-block-post-title {
	font-size: clamp(1.35rem, 3vw, 1.85rem);
	line-height: 1.18;
	letter-spacing: -0.02em;
}

/* Titolo H1 in header contenuti (pagine standard, singoli lavori/servizi) */
.psh-entry-header .psh-entry-title {
	font-size: clamp(1.45rem, 3.2vw, 1.95rem);
	line-height: 1.18;
	letter-spacing: -0.02em;
}

.psh-breadcrumbs {
	padding: 0.75rem 0;
	font-size: 0.875rem;
}

.psh-breadcrumbs__list {
	display: flex;
	flex-wrap: wrap;
	gap: 0.35rem 0.65rem;
	list-style: none;
	margin: 0;
	padding: 0;
}

.psh-embed-responsive {
	position: relative;
	padding-bottom: 56.25%;
	height: 0;
	overflow: hidden;
	max-width: 100%;
}

.psh-embed-responsive iframe {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	border: 0;
}

/* YouTube: poster + play until click (no pre-play title/chrome from iframe) */
.psh-youtube-facade {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: #000;
}

.psh-youtube-facade__btn {
	position: absolute;
	inset: 0;
	margin: 0;
	padding: 0;
	border: 0;
	cursor: pointer;
	display: block;
	width: 100%;
	height: 100%;
	background: transparent;
}

.psh-youtube-facade__btn:focus-visible {
	outline: 2px solid var(--psh-primary-color, #fff);
	outline-offset: -4px;
}

.psh-youtube-facade__thumb {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.psh-youtube-facade__play {
	position: absolute;
	top: 50%;
	left: 50%;
	width: 4.25rem;
	height: 3rem;
	margin: 0;
	transform: translate(-50%, -50%);
	background: rgba(255, 0, 0, 0.88);
	border-radius: 12px;
	box-shadow: 0 2px 12px rgba(0, 0, 0, 0.35);
	transition: transform 0.2s ease, background 0.2s ease;
}

.psh-youtube-facade__play::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 52%;
	width: 0;
	height: 0;
	border-style: solid;
	border-width: 0.65rem 0 0.65rem 1.1rem;
	border-color: transparent transparent transparent #fff;
	transform: translate(-50%, -50%);
}

.psh-youtube-facade__btn:hover .psh-youtube-facade__play,
.psh-youtube-facade__btn:focus-visible .psh-youtube-facade__play {
	transform: translate(-50%, -50%) scale(1.06);
	background: #f00;
}

@media (prefers-reduced-motion: reduce) {
	.psh-youtube-facade__play {
		transition: none;
	}
}

.psh-local-video video {
	width: 100%;
	height: auto;
	display: block;
}

.psh-visual-gallery {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
	gap: 0.75rem;
	margin-top: 2rem;
}

.psh-gallery-item img {
	display: block;
	width: 100%;
	height: auto;
}

.psh-archive-header { padding: 2rem 0 1rem; }

.psh-archive-title {
	margin: 0;
	font-size: clamp(1.45rem, 3.2vw, 1.95rem);
}

.psh-archive-intro {
	margin: 0.75rem 0 0;
	max-width: 42rem;
	font-size: clamp(1rem, 2vw, 1.1rem);
	line-height: 1.6;
	color: color-mix(in srgb, var(--psh-text-color, #222) 88%, transparent);
}

/* --- Single team: masthead + sticky photo + scroll column --- */
.psh-team-single__masthead {
	padding: clamp(2rem, 5vw, 3.25rem) 0;
	background: linear-gradient(
		180deg,
		var(--psh-surface-muted, color-mix(in srgb, var(--psh-secondary-color, #f5f5f5) 55%, var(--psh-background-color, #fff))) 0%,
		var(--psh-background-color, #fff) 100%
	);
	border-bottom: 1px solid color-mix(in srgb, var(--psh-text-color, #222) 8%, transparent);
}

.psh-team-single__masthead-inner {
	text-align: center;
	max-width: 52rem;
	margin-inline: auto;
}

.psh-team-single__title {
	margin: 0 0 0.35rem;
	font-size: clamp(1.5rem, 3.5vw, 2.05rem);
	line-height: 1.15;
	letter-spacing: -0.02em;
}

.psh-team-single__role {
	margin: 0 auto 1.25rem;
	max-width: 40rem;
	font-size: clamp(0.95rem, 2vw, 1.1rem);
	line-height: 1.45;
	color: color-mix(in srgb, var(--psh-text-color, #222) 72%, transparent);
	font-weight: 500;
}

.psh-team-single__socials {
	margin-top: 0.25rem;
}

.psh-team-single__socials-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	gap: 0.65rem;
}

.psh-team-single__social-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.75rem;
	height: 2.75rem;
	border-radius: 50%;
	text-decoration: none;
	color: var(--psh-text-color, #222);
	background: var(--psh-background-color, #fff);
	border: 1px solid color-mix(in srgb, var(--psh-text-color, #222) 12%, transparent);
	transition: color 0.15s ease, border-color 0.15s ease, transform 0.15s ease, box-shadow 0.15s ease;
}

.psh-team-single__social-btn:hover {
	color: var(--psh-primary-color, #111);
	border-color: color-mix(in srgb, var(--psh-primary-color, #111) 35%, transparent);
	transform: translateY(-2px);
	box-shadow: 0 6px 20px color-mix(in srgb, var(--psh-text-color, #222) 12%, transparent);
}

.psh-team-single__social-btn .psh-team-contact__icon {
	color: inherit;
}

.psh-team-single__social-btn .psh-chat-icon,
.psh-team-single__social-btn .psh-social-icons__svg {
	width: 1.35rem;
	height: 1.35rem;
}

.psh-team-single__split-wrap {
	padding: clamp(2rem, 4vw, 3rem) 0 clamp(2.5rem, 5vw, 4rem);
}

.psh-team-single__split {
	display: grid;
	grid-template-columns: minmax(220px, min(36vw, 380px)) minmax(0, 1fr);
	gap: clamp(1.5rem, 4vw, 3rem);
	align-items: start;
}

.psh-team-single__visual {
	position: relative;
	align-self: start;
}

.psh-team-single__visual-inner {
	position: sticky;
	top: calc(var(--psh-header-offset, 5rem) + 1.25rem);
}

.psh-team-single__figure {
	margin: 0;
	border-radius: 14px;
	overflow: hidden;
	background: color-mix(in srgb, var(--psh-surface-muted, var(--psh-secondary-color, #f5f5f5)) 55%, var(--psh-background-color, #fff));
	box-shadow:
		0 4px 6px color-mix(in srgb, var(--psh-text-color, #222) 6%, transparent),
		0 18px 40px color-mix(in srgb, var(--psh-text-color, #222) 8%, transparent);
}

.psh-team-single__figure--placeholder {
	aspect-ratio: 3 / 4;
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 280px;
	background: linear-gradient(
		145deg,
		color-mix(in srgb, var(--psh-primary-color, #111) 18%, var(--psh-surface-muted, var(--psh-secondary-color, #f5f5f5))),
		color-mix(in srgb, var(--psh-surface-muted, var(--psh-secondary-color, #f5f5f5)) 65%, var(--psh-background-color, #fff))
	);
}

.psh-team-single__placeholder-initials {
	font-size: clamp(2rem, 6vw, 3rem);
	font-weight: 700;
	letter-spacing: 0.04em;
	color: color-mix(in srgb, var(--psh-primary-color, #111) 55%, transparent);
}

.psh-team-single__photo-img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 3 / 4;
	object-fit: cover;
}

.psh-team-single__content-col {
	min-width: 0;
}

.psh-team-single__direct {
	list-style: none;
	margin: 0 0 1.5rem;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem 1.25rem;
}

.psh-team-single__direct-link {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	text-decoration: none;
	color: var(--psh-text-color, #222);
	font-weight: 600;
	font-size: 0.95rem;
}

.psh-team-single__direct-link:hover {
	text-decoration: underline;
}

.psh-team-single__direct-link .psh-team-contact__icon {
	color: color-mix(in srgb, var(--psh-text-color, #222) 70%, transparent);
}

.psh-team-single__direct-link .psh-chat-icon,
.psh-team-single__direct-link .psh-social-icons__svg {
	width: 1.15rem;
	height: 1.15rem;
}

.psh-team-single__intro {
	font-size: 1.08rem;
	line-height: 1.6;
	color: color-mix(in srgb, var(--psh-text-color, #222) 88%, transparent);
	margin-bottom: 1.75rem;
}

.psh-team-single__prose {
	margin-top: 0.25rem;
}

.psh-scheme-dark .psh-team-single__masthead {
	background: linear-gradient(
		180deg,
		color-mix(in srgb, var(--psh-secondary-color, #1a1a1a) 80%, #000) 0%,
		var(--psh-background-color, #0f0f0f) 100%
	);
	border-bottom-color: rgba(255, 255, 255, 0.08);
}

.psh-scheme-dark .psh-team-single__social-btn {
	background: color-mix(in srgb, var(--psh-secondary-color, #1a1a1a) 90%, #000);
	border-color: rgba(255, 255, 255, 0.12);
	color: var(--psh-text-color, #f2f2f2);
}

.psh-scheme-dark .psh-team-single__social-btn:hover {
	border-color: rgba(255, 255, 255, 0.28);
	box-shadow: 0 8px 28px rgba(0, 0, 0, 0.45);
}

.psh-scheme-dark .psh-team-single__figure {
	box-shadow: 0 12px 40px rgba(0, 0, 0, 0.5);
}

@media (max-width: 900px) {
	.psh-team-single__split {
		grid-template-columns: minmax(200px, 280px) 1fr;
		gap: 1.5rem;
	}
}

@media (max-width: 640px) {
	.psh-header-triggers {
		display: flex;
		margin-left: auto;
	}

	.psh-nav-toggle {
		display: block;
	}

	.psh-primary-nav {
		display: none;
		width: 100%;
		flex-direction: column;
		align-items: stretch;
		padding: 1rem 0;
		gap: 0.75rem;
	}

	body.psh-nav-open .psh-primary-nav { display: flex; }

	.psh-primary-nav .psh-menu,
	.psh-primary-nav .sub-menu {
		display: flex;
		flex-direction: column;
		flex-wrap: nowrap;
		align-items: stretch;
		width: 100%;
		gap: 0;
	}

	.psh-primary-nav .psh-menu > li,
	.psh-primary-nav .sub-menu > li {
		width: 100%;
	}

	.psh-primary-nav .psh-menu > li > a,
	.psh-primary-nav .sub-menu a {
		display: block;
		padding: 0.55rem 0;
	}

	.psh-primary-nav .sub-menu {
		margin: 0.25rem 0 0;
		padding-left: 0.75rem;
		border-left: 2px solid color-mix(in srgb, var(--psh-text-color, #222) 12%, transparent);
	}

	.psh-primary-nav .psh-header-social .psh-social-icons {
		justify-content: flex-start;
	}

	.psh-team-single__split {
		grid-template-columns: 1fr;
	}

	.psh-team-single__visual-inner {
		position: static;
	}

	.psh-team-single__figure,
	.psh-team-single__figure--placeholder {
		max-width: 22rem;
		margin-inline: auto;
	}
}

.psh-scheme-dark .psh-site-header {
	border-bottom-color: rgba(255, 255, 255, 0.08);
}

/* Pagina hub lavori e contenuti — griglia tipologie */
.psh-main--portfolio-hub .psh-portfolio-hub-intro.psh-section {
	padding-bottom: clamp(1.25rem, 3vw, 2rem);
}

.psh-portfolio-types {
	padding: clamp(2.5rem, 6vw, 4.5rem) 0 clamp(3rem, 8vw, 5.5rem);
	background: color-mix(in srgb, var(--psh-surface-muted, var(--psh-secondary-color, #f5f5f5)) 62%, var(--psh-background-color, #fff));
}

.psh-portfolio-types__intro {
	max-width: 40rem;
	margin-bottom: clamp(1.75rem, 4vw, 2.75rem);
}

.psh-portfolio-types__title {
	margin: 0 0 0.5rem;
	font-size: clamp(1.4rem, 2.7vw, 1.75rem);
	font-weight: 700;
	letter-spacing: -0.02em;
	line-height: 1.2;
}

.psh-portfolio-types__lede {
	margin: 0;
	font-size: 1.05rem;
	line-height: 1.5;
	color: color-mix(in srgb, var(--psh-text-color, #222) 72%, transparent);
}

.psh-portfolio-types__grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr));
	gap: clamp(1rem, 2.4vw, 1.65rem);
	list-style: none;
	margin: 0;
	padding: 0;
}

.psh-portfolio-types__card {
	display: grid;
	grid-template-columns: auto 1fr auto;
	align-items: center;
	gap: 1rem 1.25rem;
	min-height: 7.25rem;
	padding: 1.25rem 1.2rem;
	border-radius: 14px;
	border: 1px solid color-mix(in srgb, var(--psh-text-color, #222) 11%, transparent);
	background: var(--psh-background-color, #fff);
	text-decoration: none;
	color: inherit;
	box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
	transition: transform 0.2s ease, box-shadow 0.25s ease, border-color 0.2s ease;
}

.psh-portfolio-types__card:hover {
	transform: translateY(-4px);
	box-shadow: 0 16px 44px color-mix(in srgb, var(--psh-primary-color, #111) 12%, transparent);
	border-color: color-mix(in srgb, var(--psh-primary-color, #111) 22%, transparent);
}

.psh-portfolio-types__icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 3.75rem;
	height: 3.75rem;
	flex-shrink: 0;
	border-radius: 12px;
	background: color-mix(in srgb, var(--psh-primary-color, #111) 10%, transparent);
	color: var(--psh-primary-color, #111);
}

.psh-portfolio-types__svg {
	display: block;
	width: 2.25rem;
	height: auto;
}

.psh-portfolio-types__body {
	min-width: 0;
}

.psh-portfolio-types__label {
	display: block;
	font-weight: 700;
	font-size: 1.12rem;
	margin-bottom: 0.3rem;
	line-height: 1.25;
}

.psh-portfolio-types__hint {
	display: block;
	font-size: 0.9rem;
	line-height: 1.45;
	color: color-mix(in srgb, var(--psh-text-color, #222) 66%, transparent);
}

.psh-portfolio-types__chev {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	color: color-mix(in srgb, var(--psh-text-color, #222) 38%, transparent);
	transition: transform 0.2s ease, color 0.2s ease;
}

.psh-portfolio-types__card:hover .psh-portfolio-types__chev {
	transform: translateX(5px);
	color: var(--psh-primary-color, #111);
}

.psh-scheme-dark .psh-portfolio-types {
	background: color-mix(in srgb, var(--psh-text-color, #fff) 5%, var(--psh-background-color, #111));
}

.psh-scheme-dark .psh-portfolio-types__card {
	box-shadow: 0 2px 12px rgba(0, 0, 0, 0.25);
	border-color: color-mix(in srgb, var(--psh-text-color, #fff) 12%, transparent);
}

.psh-scheme-dark .psh-portfolio-types__card:hover {
	box-shadow: 0 18px 48px rgba(0, 0, 0, 0.35);
}

