/* Energia Ora editorial platform 2.1. Colors and typography inherit Foxiz. */

.eo-module {
	--eo-accent: var(--g-color, #1689ff);
	min-width: 0;
	margin-bottom: 30px;
}

.eo-module:last-child,
.eo-editorial-sidebar .eo-module:last-child {
	margin-bottom: 0;
}

.eo-module > .block-h,
.eo-module-heading {
	margin-bottom: 16px;
}

.eo-module-items,
.eo-card,
.eo-card-body,
.eo-quote-content {
	min-width: 0;
}

.eo-module-items {
	display: grid;
	gap: 18px;
}

.eo-card {
	background: var(--body-bg, #fff);
}

.eo-card-media {
	display: block;
	overflow: hidden;
	margin-bottom: 12px;
	background: var(--flex-gray-7, #f5f5f5);
}

/* v2.6.2: anchor the video play overlay to its thumbnail, not the module/page.
   This renderer is shared by Home and every editorial sidebar, so the fix
   applies consistently site-wide without altering any other card type. */
.eo-video-card-media {
	position: relative;
}

.eo-video-card-media .eo-archive-play {
	top: 50%;
	left: 50%;
	pointer-events: none;
	transform: translate(-50%, -50%);
}

.eo-card-media img,
.eo-video-frame img,
.eo-video-frame iframe,
.eo-video-frame video {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.eo-card-title {
	margin: 0 0 8px;
	font-size: 1.05rem;
	line-height: 1.25;
}

.eo-card-kicker,
.eo-card-date,
.eo-archive-meta {
	margin: 0 0 8px;
	color: var(--meta-fcolor, #777);
	font-size: .72rem;
	font-weight: 600;
	line-height: 1.35;
	letter-spacing: .025em;
}

.eo-card-excerpt {
	margin: 8px 0 12px;
	color: var(--excerpt-color, inherit);
}

.eo-clamp-3 {
	display: -webkit-box;
	overflow: hidden;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
}

.eo-card-more,
.eo-archive-more {
	display: inline-flex;
	gap: 5px;
	align-items: center;
	color: var(--eo-accent, var(--g-color));
	font-weight: 700;
}

.eo-card-more {
	display: flex;
	width: fit-content;
	margin-left: auto;
	font-size: 70%;
	font-weight: 400;
}

.eo-card-more:hover,
.eo-archive-more:hover {
	opacity: .7;
}

/* Video: the persistent frame prevents layout collapse after click-to-play. */
.eo-video-frame {
	position: relative;
	display: block;
	overflow: hidden;
	width: 100%;
	max-width: 100%;
	margin: 0 0 12px;
	background: #111;
}

.eo-ratio-16-9 { aspect-ratio: 16 / 9; }
.eo-ratio-9-16 { aspect-ratio: 9 / 16; }
.eo-ratio-1-1 { aspect-ratio: 1; }

.eo-video-frame > iframe,
.eo-video-frame > video,
.eo-video-frame > .eo-video-facade {
	position: absolute;
	inset: 0;
	display: block;
	width: 100%;
	height: 100%;
	border: 0;
}

.eo-video-facade {
	margin: 0;
	padding: 0;
	background: #111;
	cursor: pointer;
}

.eo-video-play,
.eo-archive-play {
	position: absolute;
	top: 50%;
	left: 50%;
	display: grid;
	place-items: center;
	width: 58px;
	height: 42px;
	padding-left: 3px;
	border-radius: 10px;
	color: #fff;
	background: #f03;
	font-size: 18px;
	transform: translate(-50%, -50%);
	transition: transform .2s ease, background-color .2s ease;
}

.eo-video-facade:hover .eo-video-play,
.eo-archive-media:hover .eo-archive-play {
	background: #d9002b;
	transform: translate(-50%, -50%) scale(1.06);
}

.eo-video-facade:focus-visible {
	outline: 3px solid var(--eo-accent);
	outline-offset: -3px;
}

/* Social Quotes: metadata first, editorial text second. */
.eo-quote-card .eo-card-media {
	aspect-ratio: 16 / 10;
}

.eo-quote-meta {
	margin-bottom: 14px;
	padding-bottom: 12px;
	border-bottom: 1px solid var(--flex-gray-15);
}

.eo-quote-author {
	margin: 0 0 4px;
	font-size: .95rem;
	line-height: 1.35;
}

.eo-quote-card blockquote {
	margin: 0 0 14px;
	padding-left: 14px;
	border-left: 3px solid var(--eo-accent);
	font-size: 1rem;
	font-style: normal;
	font-weight: 600;
	line-height: 1.55;
}

.eo-quote-card blockquote p {
	display: -webkit-box;
	overflow: hidden;
	margin: 0;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
	line-clamp: 3;
}

.eo-person-card {
	display: grid;
	grid-template-columns: minmax(105px, 40%) minmax(0, 1fr);
	gap: 15px;
}

.eo-person-card .eo-card-media {
	height: 100%;
	min-height: 140px;
	margin: 0;
}

.eo-person-card .eo-card-excerpt {
	font-size: .82rem;
	line-height: 1.45;
	-webkit-line-clamp: 4;
	line-clamp: 4;
}

.eo-report-card,
.eo-company-card {
	padding-bottom: 18px;
	border-bottom: 1px solid var(--flex-gray-15);
}

.eo-module-items .eo-card:last-child {
	padding-bottom: 0;
	border-bottom: 0;
}

/* A restrained magazine control bar replaces oversized overlay arrows/dots. */
.eo-carousel {
	position: relative;
	overflow: hidden;
}

.eo-carousel .swiper-slide {
	height: auto;
}

.eo-carousel-toolbar {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 8px;
	margin-top: 14px;
	padding-top: 10px;
	border-top: 1px solid var(--flex-gray-15);
}

.eo-carousel-button {
	position: static;
	display: grid;
	place-items: center;
	width: 32px;
	height: 32px;
	margin: 0;
	padding: 0;
	border: 1px solid var(--flex-gray-20, #d9d9d9);
	border-radius: 50%;
	color: var(--body-fcolor, #111);
	background: transparent;
	font-size: 14px;
	line-height: 1;
	transition: color .2s ease, background-color .2s ease, border-color .2s ease;
	cursor: pointer;
}

.eo-carousel-button:hover,
.eo-carousel-button:focus-visible {
	color: #fff;
	border-color: var(--g-color);
	background: var(--g-color);
}

.eo-carousel-button.swiper-button-disabled {
	opacity: .35;
	cursor: default;
}

.eo-carousel-pagination.swiper-pagination {
	position: static;
	width: auto;
	min-width: 54px;
	padding: 0 4px;
	color: var(--meta-fcolor, #777);
	font-size: .7rem;
	font-weight: 700;
	line-height: 32px;
	letter-spacing: .12em;
	text-align: center;
	transform: none;
}

.eo-carousel-pagination .swiper-pagination-current {
	color: var(--g-color);
}

.eo-editorial-sidebar > .eo-module {
	margin-bottom: 28px;
}

.eo-latest-list {
	display: grid;
	gap: 0;
}

.eo-latest-card {
	display: grid;
	grid-template-columns: 88px minmax(0, 1fr);
	gap: 12px;
	padding: 12px 0;
	border-bottom: 1px solid var(--flex-gray-15);
}

.eo-latest-card:first-child { padding-top: 0; }
.eo-latest-card:last-child { border-bottom: 0; }

.eo-latest-thumb {
	display: block;
	overflow: hidden;
	aspect-ratio: 1 / .78;
}

.eo-latest-thumb img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.eo-latest-body h3 {
	margin: 0 0 6px;
	font-size: .88rem;
	line-height: 1.3;
}

/* Home grid: every ancestor remains overflow-visible and the widget wrapper
   owns sticky positioning. Its dynamic top supports sidebars taller than the
   viewport while the outer Elementor section remains the stopping boundary. */
.eo-home-v2-main-column,
.eo-home-v2-sidebar,
.eo-home-v2-main-column .elementor-section,
.eo-home-v2-main-column .elementor-column {
	min-width: 0;
}

.eo-home-v2-main-section {
	margin-right: 0 !important;
	margin-left: 0 !important;
}

.eo-home-v2-main-section > .elementor-container,
.eo-home-v2-hero-main > .elementor-container {
	max-width: none !important;
}

.eo-home-editorial-layout {
	display: grid;
	grid-template-columns: minmax(0, 3fr) minmax(280px, 1fr);
	gap: 30px;
	align-items: stretch;
	padding-top: 40px;
	padding-bottom: 70px;
}

.eo-home-editorial-main,
.eo-home-editorial-aside {
	min-width: 0;
}

.eo-home-editorial-main .eo-notizie-hub,
.eo-home-editorial-main .eo-notizie-inner {
	width: 100%;
	max-width: none;
	padding: 0;
}

/* Shared archive/single page shell. */
.eo-archive-hero {
	position: relative;
	overflow: hidden;
	padding: 48px 0 44px;
	border-bottom: 1px solid var(--flex-gray-15);
	background-color: var(--body-bg, #fff);
	background-image: radial-gradient(circle, color-mix(in srgb, var(--body-fcolor, #111) 13%, transparent) 1px, transparent 1.2px);
	background-size: 18px 18px;
}

@supports not (color: color-mix(in srgb, white, black)) {
	.eo-archive-hero { background-image: radial-gradient(circle, rgba(0, 0, 0, .11) 1px, transparent 1.2px); }
}

.eo-archive-hero-inner {
	position: relative;
}

.eo-archive-eyebrow {
	margin: 0 0 8px;
	color: var(--g-color);
	font-size: .72rem;
	font-weight: 800;
	letter-spacing: .13em;
	text-transform: uppercase;
}

.eo-archive-hero h1 {
	max-width: 850px;
	margin: 0;
	font-size: clamp(2.15rem, 4vw, 3.5rem);
	line-height: 1.02;
}

.eo-archive-description {
	max-width: 700px;
	margin: 16px 0 0;
	color: var(--excerpt-color, #666);
	font-size: 1.05rem;
	line-height: 1.55;
}

.eo-editorial-page {
	padding-top: 42px;
	padding-bottom: 70px;
}

.eo-editorial-shell {
	display: grid;
	grid-template-columns: minmax(0, 2fr) minmax(280px, 1fr);
	gap: 54px;
	align-items: stretch;
}

.eo-archive-main,
.eo-single-main,
.eo-context-aside {
	min-width: 0;
}

.eo-context-aside {
	position: relative;
	align-self: stretch;
	padding-left: 30px;
	border-left: 1px solid var(--flex-gray-15);
}

.eo-archive-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 38px 28px;
}

.eo-archive-card {
	min-width: 0;
	padding-bottom: 24px;
	border-bottom: 1px solid var(--flex-gray-15);
}

.eo-archive-media {
	position: relative;
	display: block;
	overflow: hidden;
	aspect-ratio: 16 / 10;
	margin-bottom: 16px;
	background: var(--flex-gray-7, #f5f5f5);
}

.eo-archive-media img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .35s ease;
}

.eo-archive-card-eo_company .eo-archive-media img,
.eo-single-featured-eo_company img {
	padding: 8%;
	background: #fff;
	object-fit: contain;
}

.eo-archive-media:hover img {
	transform: scale(1.025);
}

.eo-entry-type,
.eo-single-type-link {
	display: inline-flex;
	margin-bottom: 10px;
	padding: 3px 7px;
	color: #fff;
	background: var(--g-color);
	font-size: .66rem;
	font-weight: 800;
	line-height: 1;
	letter-spacing: .06em;
	text-transform: uppercase;
}

.eo-entry-type:hover,
.eo-single-type-link:hover {
	color: #fff;
	opacity: .75;
}

.eo-archive-byline {
	margin: 0 0 4px;
	font-size: .86rem;
	line-height: 1.35;
}

.eo-archive-card h2 {
	margin: 0 0 10px;
	font-size: 1.22rem;
	line-height: 1.22;
}

.eo-archive-excerpt {
	margin: 0 0 14px;
	color: var(--excerpt-color, #666);
	line-height: 1.55;
}

.eo-editorial-empty {
	padding: 34px;
	border: 1px solid var(--flex-gray-15);
	background: var(--flex-gray-3, #fafafa);
}

/* Aziende A–Z directory. */
.eo-company-alphabet.is-directory {
	padding: 24px;
	border: 1px solid var(--flex-gray-15);
	background-color: var(--flex-gray-3, #fafcff);
	background-image: linear-gradient(to right, rgba(30, 90, 150, .06) 1px, transparent 1px), linear-gradient(to bottom, rgba(30, 90, 150, .06) 1px, transparent 1px);
	background-size: 48px 48px;
}

.eo-company-directory-intro {
	margin-bottom: 18px;
	padding-bottom: 18px;
	border-bottom: 1px solid var(--flex-gray-15);
}

.eo-company-directory-intro h2 {
	margin: 0 0 4px;
	font-size: 1.35rem;
}

.eo-company-directory-intro p {
	margin: 0;
	color: var(--excerpt-color, #666);
}

.is-directory .eo-company-letter-grid {
	display: grid;
	grid-template-columns: repeat(6, minmax(0, 1fr));
	gap: 6px;
}

.is-directory .eo-company-letter-item {
	display: grid;
	place-items: center;
	min-height: 94px;
}

.is-directory .eo-company-letter-item.last-row-left { grid-column: 3; }
.is-directory .eo-company-letter-item.last-row-right { grid-column: 4; }

.is-directory .eo-company-letter {
	position: relative;
	display: grid;
	place-items: center;
	width: 100%;
	height: 100%;
	color: var(--body-fcolor, #111);
	font-size: clamp(2.7rem, 5vw, 4.8rem);
	font-weight: 900;
	line-height: 1;
	letter-spacing: -.06em;
	transition: color .2s ease, transform .2s ease, background-color .2s ease;
}

.is-directory a.eo-company-letter:hover,
.is-directory a.eo-company-letter:focus-visible,
.is-directory a.eo-company-letter.is-current {
	color: #fff;
	background: var(--g-color);
	transform: translateY(-2px);
}

.is-directory .eo-company-letter.is-disabled {
	color: var(--meta-fcolor, #999);
	opacity: .28;
	cursor: default;
}

.eo-company-alphabet.is-compact {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-bottom: 30px;
	padding-bottom: 18px;
	border-bottom: 1px solid var(--flex-gray-15);
}

.is-compact .eo-company-all,
.is-compact .eo-company-letter {
	display: grid;
	place-items: center;
	min-width: 30px;
	height: 30px;
	padding: 0 7px;
	border: 1px solid var(--flex-gray-15);
	font-size: .72rem;
	font-weight: 800;
}

.is-compact .eo-company-letter-grid {
	display: flex;
	flex-wrap: wrap;
	gap: 5px;
}

.is-compact .eo-company-letter.is-disabled {
	color: var(--meta-fcolor, #aaa);
	opacity: .4;
}

.is-compact a:hover,
.is-compact a.is-current,
.is-compact a.is-active:hover {
	color: #fff;
	border-color: var(--g-color);
	background: var(--g-color);
}

/* Single editorial pages. */
.eo-editorial-single {
	padding: 48px 0 72px;
}

.eo-editorial-single-header {
	max-width: 1040px;
	margin-bottom: 36px;
}

.eo-editorial-single-header .s-title {
	margin-top: 2px;
}

.eo-single-shell {
	grid-template-columns: minmax(0, 2fr) minmax(280px, 1fr);
}

.eo-single-featured {
	overflow: hidden;
	margin: 0 0 28px;
	background: var(--flex-gray-7, #f5f5f5);
}

.eo-single-featured img {
	display: block;
	width: 100%;
	height: auto;
	max-height: 680px;
	object-fit: cover;
}

.eo-single-featured-eo_quote img,
.eo-single-featured-eo_person img {
	aspect-ratio: 16 / 10;
}

.eo-single-details,
.eo-single-quote {
	margin: 0 0 30px;
	padding: 24px;
	border: 1px solid var(--flex-gray-15);
	background: var(--body-bg, #fff);
}

.eo-single-details dl,
.eo-single-details dl > div {
	margin: 0;
}

.eo-single-details dl > div {
	display: grid;
	grid-template-columns: minmax(110px, .35fr) minmax(0, 1fr);
	gap: 15px;
	padding: 8px 0;
	border-bottom: 1px solid var(--flex-gray-15);
}

.eo-single-details dl > div:last-child { border-bottom: 0; }
.eo-single-details dt { font-weight: 700; }
.eo-single-details dd { margin: 0; }

.eo-single-quote {
	position: relative;
	padding-left: 34px;
	border-left: 4px solid var(--g-color);
}

.eo-single-quote blockquote,
.eo-single-quote blockquote p {
	margin: 0;
}

.eo-single-quote figcaption {
	display: grid;
	gap: 2px;
	margin-top: 16px;
	font-size: .83rem;
}

.eo-single-quote figcaption span {
	color: var(--meta-fcolor, #777);
	font-size: .72rem;
}

.eo-primary-button {
	display: inline-flex;
	padding: 10px 16px;
	color: #fff;
	background: var(--g-color);
	font-weight: 700;
}

.eo-company-logo {
	max-width: 260px;
	margin-bottom: 20px;
}

.eo-related-posts {
	margin: 38px 0;
}

.eo-related-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 24px;
}

.eo-related-grid h3 {
	margin: 8px 0 0;
	font-size: 1rem;
}

@media (min-width: 1025px) {
	.eo-home-v2-grid,
	.eo-home-v2-grid > .elementor-container,
	.eo-home-v2-grid > .elementor-container > .elementor-row,
	.eo-home-v2-sidebar,
	.eo-home-v2-sidebar > .elementor-column-wrap,
	.eo-home-v2-sidebar > .elementor-widget-wrap,
	.eo-home-v2-sidebar > .elementor-column-wrap > .elementor-widget-wrap {
		overflow: visible !important;
	}

	.eo-home-v2-grid > .elementor-container,
	.eo-home-v2-grid > .elementor-container > .elementor-row {
		align-items: stretch !important;
	}

	.elementor-column.eo-home-v2-sidebar {
		position: relative !important;
		align-self: stretch !important;
		align-items: flex-start !important;
		height: auto !important;
	}

	.eo-home-v2-sidebar > .elementor-widget-wrap,
	.eo-home-v2-sidebar > .elementor-column-wrap,
	.eo-smart-sticky {
		position: -webkit-sticky !important;
		position: sticky !important;
		top: var(--eo-smart-sticky-top, 12px) !important;
		align-self: flex-start;
		height: max-content;
		transition: top .2s ease;
		will-change: top;
	}

	.admin-bar .eo-smart-sticky,
	.admin-bar .eo-home-v2-sidebar > .elementor-widget-wrap,
	.admin-bar .eo-home-v2-sidebar > .elementor-column-wrap {
		top: var(--eo-smart-sticky-top, 44px) !important;
	}

	.sticky-on .eo-smart-sticky,
	.sticky-on .eo-home-v2-sidebar > .elementor-widget-wrap,
	.sticky-on .eo-home-v2-sidebar > .elementor-column-wrap {
		top: var(--eo-smart-sticky-top, calc(var(--nav-height) + 12px)) !important;
	}

	.sticky-on.admin-bar .eo-smart-sticky,
	.sticky-on.admin-bar .eo-home-v2-sidebar > .elementor-widget-wrap,
	.sticky-on.admin-bar .eo-home-v2-sidebar > .elementor-column-wrap {
		top: var(--eo-smart-sticky-top, calc(var(--nav-height) + 44px)) !important;
	}
}

@media (max-width: 1024px) {
	.eo-home-editorial-layout,
	.eo-editorial-shell,
	.eo-single-shell {
		grid-template-columns: 1fr;
		gap: 42px;
	}

	.eo-context-aside {
		padding-top: 34px;
		padding-left: 0;
		border-top: 1px solid var(--flex-gray-15);
		border-left: 0;
	}

	.eo-person-card { grid-template-columns: minmax(90px, 34%) minmax(0, 1fr); }
}

@media (max-width: 767px) {
	.eo-archive-hero { padding: 34px 0 30px; }
	.eo-editorial-page,
	.eo-editorial-single { padding-top: 30px; padding-bottom: 48px; }
	.eo-archive-grid { grid-template-columns: 1fr; gap: 28px; }
	.eo-person-card { grid-template-columns: 1fr; }
	.eo-person-card .eo-card-media { aspect-ratio: 16 / 10; }
	.eo-related-grid { grid-template-columns: 1fr; }
	.eo-single-details { padding: 18px; }
	.eo-single-details dl > div { grid-template-columns: 1fr; gap: 3px; }
	.eo-company-alphabet.is-directory { padding: 14px 10px; }
	.is-directory .eo-company-letter-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 3px; }
	.is-directory .eo-company-letter-item { min-height: 68px; }
	.is-directory .eo-company-letter-item.last-row-left { grid-column: 1 / 3; }
	.is-directory .eo-company-letter-item.last-row-right { grid-column: 3 / 5; }
	.is-directory .eo-company-letter { font-size: clamp(2.1rem, 11vw, 3.4rem); }
	.eo-company-alphabet.is-compact { align-items: flex-start; flex-direction: column; }
	.eo-latest-card { grid-template-columns: 76px minmax(0, 1fr); }
}

@media (prefers-reduced-motion: reduce) {
	.eo-carousel *,
	.eo-video-facade *,
	.eo-archive-media img,
	.eo-smart-sticky {
		scroll-behavior: auto !important;
		transition-duration: 0s !important;
		animation-duration: 0s !important;
	}
}
