/*
Theme Name: Impreza Child
Template: Impreza
Version: 1.0
Author:	UpSolution
Theme URI: http://impreza.us-themes.com/
Author URI: http://us-themes.com/
*/

/*Add your own styles here:*/
:root {
	--es-red: #980000;
	--es-red-dark: #6e0000;
	--es-ink: #2a211f;
	--es-muted: #5c4540;
	--es-line: #e7d6d2;
	--es-paper: #fbf6f4;
	--es-blush: #f6e7e4;
	--es-white: #ffffff;
	--es-radius: 12px;
	--es-shadow: 0 10px 28px rgba(152, 0, 0, 0.08);
	--es-max: 1120px;
	--es-font: "Source Sans 3", "Segoe UI", sans-serif;
	--es-display: Outfit, "Segoe UI", sans-serif;
}

body {
	color: var(--es-ink);
	font-family: var(--es-font);
	font-size: 1.125rem;
	line-height: 1.65;
	background: var(--es-white);
}

body .l-main,
body .l-main p,
body .l-main li,
body .l-footer,
body .l-header {
	font-family: var(--es-font);
}

body h1,
body h2,
body h3,
body .es-kicker {
	font-family: var(--es-display);
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: -0.02em;
}

body h1 {
	font-size: clamp(2rem, 4vw, 3.15rem);
	margin: 0 0 0.7rem;
	color: var(--es-red);
}

body h2 {
	font-size: clamp(1.55rem, 2.4vw, 2.15rem);
	margin: 0 0 0.8rem;
	color: var(--es-red);
}

body h3 {
	font-size: 1.28rem;
	margin: 0 0 0.45rem;
	color: var(--es-ink);
}

body .es-prose p,
body .es-card p,
body .es-area-list p {
	max-width: 68ch;
}

.es-skip {
	position: absolute;
	left: 12px;
	top: -40px;
	z-index: 100000;
	background: var(--es-white);
	color: var(--es-red);
	padding: 0.6rem 1rem;
	border-radius: 8px;
}

.es-skip:focus {
	top: 12px;
}

.es-wrap {
	width: min(var(--es-max), calc(100% - 2rem));
	margin-inline: auto;
}

body .es-band {
	margin: 0 !important;
}

body .es-band > .l-section-h,
body .es-footer > .l-section-h {
	padding: 0 !important;
}

body .es-band .wpb_text_column,
body .es-band .wpb_wrapper {
	margin: 0;
}

.es-band-white { background: var(--es-white); }
.es-band-paper { background: var(--es-paper); }
.es-band-blush { background: var(--es-blush); }
.es-band-red { background: var(--es-red); color: var(--es-white); }

body .es-band-red h1,
body .es-band-red h2,
body .es-band-red h3,
body .es-band-red p,
body .es-band-red .es-kicker,
body .es-band-red .es-lead {
	color: var(--es-white);
}

.es-hero { padding: 3.2rem 0 2.4rem; }
.es-band .es-wrap { padding-top: 3.4rem; padding-bottom: 3.4rem; }
.es-hero .es-wrap { padding-top: 1.2rem; padding-bottom: 1.2rem; }

.es-hero-grid,
.es-split {
	display: grid;
	grid-template-columns: minmax(0, 1.3fr) minmax(220px, 0.7fr);
	gap: 2rem;
	align-items: center;
}

.es-kicker {
	font-size: clamp(1.6rem, 3vw, 2.4rem);
	margin: 0 0 0.35rem;
	color: var(--es-red);
}

.es-lead {
	font-size: 1.15rem;
	margin-top: 0;
}

.es-hero-figure,
.es-figure-red {
	display: flex;
	justify-content: center;
}

.es-hero-figure img,
.es-figure-red img {
	width: min(100%, 280px);
	height: auto;
}

.es-actions,
.es-card-action {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	margin-top: 1.2rem;
}

.es-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 48px;
	padding: 0.7rem 1.2rem;
	border-radius: 8px;
	border: 2px solid var(--es-red);
	background: var(--es-red);
	color: var(--es-white);
	font-family: var(--es-font);
	font-size: 1.05rem;
	font-weight: 700;
	line-height: 1.2;
	text-decoration: none;
	cursor: pointer;
	text-align: center;
}

.es-btn:hover {
	background: var(--es-red-dark);
	border-color: var(--es-red-dark);
	color: var(--es-white);
}

.es-btn-ghost {
	background: transparent;
	color: var(--es-red);
}

.es-btn-ghost:hover {
	background: var(--es-red);
	color: var(--es-white);
}

.es-btn-ghost-light {
	background: transparent;
	color: var(--es-white);
	border-color: var(--es-white);
}

.es-btn-ghost-light:hover {
	background: var(--es-white);
	color: var(--es-red);
}

body .es-band-red .es-btn-primary {
	background: var(--es-white);
	color: var(--es-red);
	border-color: var(--es-white);
}

body .es-band-red .es-btn-primary:hover {
	background: #f6d5d3;
	color: var(--es-red-dark);
	border-color: #f6d5d3;
}

body {
	overflow-x: clip;
}

body .l-section,
body .l-section-h,
body .es-wrap,
body .es-hero-grid,
body .es-split,
body .es-footer-inner {
	max-width: 100%;
	min-width: 0;
}

body .es-hero-grid > *,
body .es-split > * {
	min-width: 0;
}

body .l-main a.es-btn,
body .l-footer a.es-btn {
	text-decoration: none;
}

body .l-main a.es-btn-primary {
	background: var(--es-red);
	color: var(--es-white);
	border-color: var(--es-red);
}

body .l-main a.es-btn-primary:hover {
	background: var(--es-red-dark);
	color: var(--es-white);
	border-color: var(--es-red-dark);
}

body .l-main a.es-btn-ghost-light,
body .l-footer a.es-btn-ghost-light,
body .es-band-red a.es-btn-ghost-light {
	background: transparent;
	color: var(--es-white);
	border-color: var(--es-white);
}

body .l-main a.es-btn-ghost-light:hover,
body .l-footer a.es-btn-ghost-light:hover,
body .es-band-red a.es-btn-ghost-light:hover {
	background: var(--es-white);
	color: var(--es-red);
	border-color: var(--es-white);
}

/* CookieYes si sovrappone a CookieAdmin, già in italiano. */
.cky-consent-container,
.cky-btn-revisit-wrapper,
.cky-modal,
.cky-overlay {
	display: none !important;
}

.es-card-grid {
	display: grid;
	gap: 1.1rem;
}

.es-card-grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.es-card-grid-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }

.es-card {
	background: var(--es-white);
	border: 1px solid var(--es-line);
	border-radius: var(--es-radius);
	box-shadow: var(--es-shadow);
	padding: 1.3rem 1.25rem 1.4rem;
	height: 100%;
}

.es-band-paper .es-card,
.es-band-blush .es-card {
	background: var(--es-white);
}

.es-icon {
	display: inline-flex;
	width: 48px;
	height: 48px;
	color: var(--es-red);
	margin-bottom: 0.7rem;
}

.es-icon svg { width: 48px; height: 48px; }

.es-card-meta {
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem;
	margin: 0 0 0.55rem;
}

.es-card-meta span,
.es-field-label {
	display: inline-block;
	background: var(--es-blush);
	color: var(--es-red-dark);
	border-radius: 999px;
	padding: 0.15rem 0.65rem;
	font-size: 0.92rem;
	font-weight: 700;
}

.es-card h2 { font-size: 1.4rem; }
.es-card-address { color: var(--es-muted); }
.es-note { color: var(--es-muted); font-size: 1rem; }

.es-area-list {
	display: grid;
	gap: 1.6rem;
}

.es-area-list section {
	padding-bottom: 0.4rem;
	border-bottom: 1px solid var(--es-line);
}

.es-area-list section:last-child { border-bottom: 0; }

.es-stemmi { margin: 1.4rem 0 0; }
.es-stemmi img,
.es-footer-stemmi img { max-width: min(100%, 520px); height: auto; }

.es-linkline a,
body .l-main a {
	color: var(--es-red);
	text-underline-offset: 0.16em;
}

body .l-main a:hover { color: var(--es-red-dark); }

body .es-band-red a:not(.es-btn) {
	color: var(--es-white);
}

.es-filters {
	display: grid;
	grid-template-columns: minmax(160px, 0.8fr) minmax(200px, 1fr) minmax(200px, 1.2fr) auto;
	gap: 0.8rem;
	align-items: end;
	margin: 1rem 0 1.3rem;
}

.es-field label {
	display: block;
	font-weight: 700;
	margin-bottom: 0.3rem;
}

.es-field input,
.es-field select {
	width: 100%;
	min-height: 48px;
	border: 1px solid #c9b2ad;
	border-radius: 8px;
	padding: 0.55rem 0.75rem;
	font: inherit;
	color: var(--es-ink);
	background: var(--es-white);
}

.es-filter-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.6rem;
}

.es-callout,
.es-contact-box,
.es-update {
	max-width: 760px;
}

.es-contact-box .es-kicker { color: var(--es-white); }

.es-links { padding-left: 1.1rem; }
.es-links li { margin: 0.25rem 0; }

.es-dl { margin: 1.4rem 0; }
.es-dl > div {
	display: grid;
	grid-template-columns: minmax(140px, 220px) minmax(0, 1fr);
	gap: 0.6rem 1rem;
	padding: 0.85rem 0;
	border-top: 1px solid var(--es-line);
}
.es-dl dt { font-weight: 700; color: var(--es-red-dark); }
.es-dl dd { margin: 0; }
.es-sheet { padding: 2.4rem 0 3.5rem; }
.es-sheet-lead { font-size: 1.2rem; }
.es-back { margin-bottom: 0.8rem; }
.es-event-when { font-weight: 700; color: var(--es-red); }

body .l-footer {
	background: var(--es-red);
	color: var(--es-white);
}

body .l-footer p,
body .l-footer .es-kicker,
body .l-footer a:not(.es-btn) {
	color: var(--es-white);
}

.es-footer-inner {
	display: grid;
	grid-template-columns: minmax(0, 1.4fr) minmax(220px, 0.8fr);
	gap: 2rem;
	padding-top: 2.6rem;
	padding-bottom: 1.2rem;
}

.es-footer-nav {
	list-style: none;
	margin: 0 0 1rem;
	padding: 0;
}

.es-footer-nav a {
	display: inline-block;
	padding: 0.25rem 0;
	text-decoration: underline;
	text-underline-offset: 0.16em;
}

.es-footer-stemmi {
	padding: 0 1rem 1.6rem;
	margin: 0;
}

body .l-header {
	background: var(--es-white);
	box-shadow: 0 1px 0 rgba(42, 33, 31, 0.08);
	max-width: 100%;
}

body .l-header img {
	width: auto;
	max-width: 210px;
	max-height: 52px;
	height: auto;
}

.cky-consent-container,
.cky-btn-revisit-wrapper,
.cky-modal,
.cky-overlay,
.cky-preference-center,
[class^="cky-"] {
	display: none !important;
}

body .l-header .w-nav-list > .menu-item > a,
body .l-header .w-nav a {
	font-family: var(--es-font);
}

body :focus-visible {
	outline: 3px solid var(--es-red);
	outline-offset: 3px;
}

body .es-band-red :focus-visible {
	outline-color: var(--es-white);
}

@media (max-width: 1024px) {
	.es-card-grid-3 { grid-template-columns: 1fr 1fr; }
	.es-filters { grid-template-columns: 1fr 1fr; }
	.es-hero-grid, .es-split, .es-footer-inner { grid-template-columns: 1fr; }
}

@media (max-width: 700px) {
	body { font-size: 1.05rem; }
	.es-card-grid-3,
	.es-card-grid-2,
	.es-filters,
	.es-dl > div { grid-template-columns: 1fr; }
	.es-btn { width: 100%; }
	.es-actions, .es-filter-actions, .es-card-action { flex-direction: column; }
	.es-hero { padding-top: 1.6rem; }
	.es-band .es-wrap { padding-top: 2.2rem; padding-bottom: 2.2rem; }
	.es-hero-figure img, .es-figure-red img { width: min(70%, 220px); }
}

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
}
