/*
 * IRE – Internazionale Real Estate
 * Stili del sito. Ogni valore riproduce il concept HTML del cliente
 * (IRE-sito-it.html); le classi sostituiscono gli stili inline originali.
 *
 * Palette: oliva #5C5C48 · oliva scuro #3E3E30 · grigio #CACACA
 *          avorio #F7F6F2 · pietra #ECEAE4 · inchiostro #22221B
 */

/* ---------------------------------------------------------------
 * Base (identica al concept)
 * ------------------------------------------------------------- */
body {
	margin: 0;
	background: #F7F6F2;
}

.ire-site {
	font-family: 'Manrope', system-ui, sans-serif;
	color: #22221B;
	background: #F7F6F2;
	width: 100%;
	box-sizing: border-box;
	line-height: 1.6;
}

a {
	color: #4A4A39;
	text-decoration: none;
}

a:hover {
	color: #22221B;
}

button {
	font-family: inherit;
	cursor: pointer;
}

button:focus-visible,
a:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
	outline: 2px solid #5C5C48;
	outline-offset: 3px;
}

@keyframes ireSpin {
	to {
		transform: rotate(360deg);
	}
}

.ire-spin {
	animation: ireSpin 40s linear infinite;
}

.ire-spin-fast {
	animation: ireSpin 9s linear infinite;
}

@media (prefers-reduced-motion: reduce) {
	.ire-spin,
	.ire-spin-fast {
		animation: none;
	}
}

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

.ire-skip-link:focus {
	clip-path: none;
	height: auto;
	width: auto;
	margin: 0;
	z-index: 100;
	top: 8px;
	left: 8px;
	padding: 12px 18px;
	background: #22221B;
	color: #FFFFFF;
	font-family: 'Manrope', system-ui, sans-serif;
	font-size: 14px;
	font-weight: 600;
}

.ire-main:focus {
	outline: none;
}

/* ---------------------------------------------------------------
 * Elementi comuni
 * ------------------------------------------------------------- */
.ire-kicker {
	margin: 0 0 14px;
	font-size: 12px;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: #5C5C48;
	font-weight: 600;
}

.ire-h2 {
	margin: 0;
	font-family: 'Cormorant Garamond', Georgia, serif;
	font-weight: 500;
	font-size: clamp(32px, 3.6vw, 48px);
	line-height: 1.1;
}

.ire-btn,
.ire-btn:hover {
	display: inline-block;
	background: #5C5C48;
	color: #FFFFFF;
	border-radius: 2px;
}

.ire-btn--lg,
.ire-btn--lg:hover {
	padding: 15px 26px;
	font-size: 15px;
	font-weight: 600;
}

.ire-btn--outline,
.ire-btn--outline:hover {
	background: transparent;
	border: 1px solid #22221B;
	color: #22221B;
	padding: 14px 26px;
	font-size: 15px;
	font-weight: 600;
}

.ire-dash {
	color: #5C5C48;
}

/* ---------------------------------------------------------------
 * Header
 * ------------------------------------------------------------- */
.ire-header {
	position: sticky;
	top: 0;
	z-index: 10;
	background: rgba(247, 246, 242, 0.95);
	border-bottom: 1px solid #DDDBD3;
}

.admin-bar .ire-header {
	top: 32px;
}

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

@media screen and (max-width: 600px) {
	.admin-bar .ire-header {
		top: 0;
	}
}

.ire-header__inner {
	max-width: 1240px;
	margin: 0 auto;
	padding: 14px 24px;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
}

.ire-brand {
	display: flex;
	align-items: center;
	gap: 12px;
}

.ire-brand__logo {
	width: 40px;
	height: 46px;
	object-fit: contain;
}

.ire-brand__text {
	display: flex;
	flex-direction: column;
	line-height: 1.15;
}

.ire-brand__name {
	font-family: 'Cormorant Garamond', Georgia, serif;
	font-size: 21px;
	font-weight: 600;
	letter-spacing: 0.02em;
	color: #22221B;
}

.ire-brand__tagline {
	font-size: 11px;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: #5E5E55;
}

.ire-nav {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px 24px;
	font-size: 14px;
	font-weight: 500;
}

/* Il menu WordPress è una lista: la "dissolviamo" così i link si comportano
   esattamente come nel concept (figli diretti del <nav>). */
.ire-nav__menu,
.ire-nav__menu > li {
	display: contents;
}

.ire-nav__menu a[aria-current="page"] {
	color: #22221B;
}

.ire-nav__cta,
.ire-nav__cta:hover {
	padding: 11px 20px;
}

.ire-lang {
	display: flex;
	border: 1px solid #CACACA;
	border-radius: 2px;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.08em;
}

.ire-lang a {
	display: flex;
	align-items: center;
	min-height: 40px;
	padding: 0 12px;
}

.ire-lang a[aria-current="page"],
.ire-lang a[aria-current="page"]:hover {
	background: #22221B;
	color: #FFFFFF;
}

/* ---------------------------------------------------------------
 * Hero
 * ------------------------------------------------------------- */
.ire-hero {
	max-width: 1240px;
	margin: 0 auto;
	padding: 80px 24px 56px;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 56px;
}

.ire-hero__content {
	flex: 1 1 540px;
	min-width: 0;
}

.ire-hero__kicker {
	margin: 0 0 22px;
}

.ire-hero__title {
	margin: 0;
	font-family: 'Cormorant Garamond', Georgia, serif;
	font-weight: 500;
	font-size: clamp(40px, 5.2vw, 74px);
	line-height: 1.04;
	letter-spacing: -0.01em;
	color: #22221B;
}

.ire-hero__text {
	margin: 28px 0 0;
	max-width: 580px;
	font-size: 18px;
	color: #4D4D44;
}

.ire-hero__actions {
	margin-top: 40px;
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
}

.ire-hero__media {
	flex: 1 1 380px;
	min-width: 0;
	position: relative;
	height: 560px;
}

.ire-hero__bg {
	position: absolute;
	right: 0;
	top: 0;
	width: 82%;
	height: 88%;
	background: #ECEAE4;
}

.ire-hero__img {
	position: absolute;
	left: 0;
	bottom: 0;
	width: 78%;
	height: 88%;
	object-fit: cover;
	display: block;
}

.ire-hero__badge {
	position: absolute;
	right: 0;
	bottom: 36px;
	background: #FFFFFF;
	border: 1px solid #E4E2DA;
	padding: 18px 22px;
	max-width: 220px;
}

.ire-hero__badge-value {
	margin: 0;
	font-family: 'Cormorant Garamond', Georgia, serif;
	font-size: 34px;
	font-weight: 600;
	line-height: 1;
}

.ire-hero__badge-text {
	margin: 6px 0 0;
	font-size: 13px;
	color: #5E5E55;
}

/* ---------------------------------------------------------------
 * Numeri
 * ------------------------------------------------------------- */
.ire-numbers {
	border-top: 1px solid #DDDBD3;
	border-bottom: 1px solid #DDDBD3;
	background: #FFFFFF;
}

.ire-numbers__inner {
	max-width: 1240px;
	margin: 0 auto;
	padding: 36px 24px;
	display: flex;
	flex-wrap: wrap;
	gap: 24px;
}

.ire-numbers__item {
	flex: 1 1 200px;
	border-left: 1px solid #CACACA;
	padding-left: 20px;
}

.ire-numbers__value {
	margin: 0;
	font-family: 'Cormorant Garamond', Georgia, serif;
	font-size: 48px;
	font-weight: 600;
	line-height: 1;
	color: #5C5C48;
}

.ire-numbers__label {
	margin: 6px 0 0;
	font-size: 14px;
	color: #5E5E55;
}

/* ---------------------------------------------------------------
 * Chi siamo
 * ------------------------------------------------------------- */
.ire-about {
	max-width: 1240px;
	margin: 0 auto;
	padding: 88px 24px 40px;
	display: flex;
	flex-wrap: wrap;
	gap: 48px;
}

.ire-about__head {
	flex: 1 1 360px;
	min-width: 0;
}

.ire-about__title {
	font-size: clamp(32px, 3.4vw, 46px);
}

.ire-about__body {
	flex: 1 1 480px;
	min-width: 0;
	font-size: 17px;
	color: #4D4D44;
}

.ire-about__body p {
	margin: 0 0 18px;
}

.ire-about__body p:last-child {
	margin: 0;
}

/* ---------------------------------------------------------------
 * Valori
 * ------------------------------------------------------------- */
.ire-values {
	max-width: 1240px;
	margin: 0 auto;
	padding: 0 24px 88px;
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
}

.ire-values__item {
	flex: 1 1 240px;
	padding: 26px 24px;
	background: #FFFFFF;
	border-top: 2px solid #5C5C48;
}

.ire-values__title {
	margin: 0;
	font-family: 'Cormorant Garamond', Georgia, serif;
	font-size: 26px;
	font-weight: 600;
	line-height: 1.6;
}

.ire-values__text {
	margin: 8px 0 0;
	font-size: 14px;
	color: #5E5E55;
}

/* ---------------------------------------------------------------
 * Il volano IRE
 * ------------------------------------------------------------- */
.ire-volano {
	background: #FFFFFF;
	border-top: 1px solid #E4E2DA;
	border-bottom: 1px solid #E4E2DA;
}

.ire-volano__inner {
	max-width: 1240px;
	margin: 0 auto;
	padding: 96px 24px;
}

.ire-volano__head {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: flex-end;
	/* Stesse colonne di .ire-volano__body: l'intro è larga quanto i pannelli */
	gap: 24px 56px;
	margin-bottom: 48px;
}

.ire-volano__heading {
	flex: 1 1 560px;
	min-width: 0;
}

.ire-volano__title {
	font-size: clamp(34px, 3.8vw, 52px);
	line-height: 1.08;
}

.ire-volano__intro {
	flex: 1 1 400px;
	min-width: 0;
	margin: 0;
	font-size: 16px;
	color: #4D4D44;
}

/* Diagramma e pannelli affiancati; sotto i ~1020px di contenuto vanno uno sotto l'altro */
.ire-volano__body {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 40px 56px;
}

.ire-volano__visual {
	flex: 1 1 560px;
	min-width: 0;
}

.ire-volano__diagram {
	position: relative;
	width: 100%;
	max-width: 1040px;
	margin: 0 auto;
	aspect-ratio: 10 / 7;
	/* I testi dei nodi si misurano sulla larghezza del diagramma (unità cqi) */
	container-type: inline-size;
}

.ire-volano__ring {
	position: absolute;
	left: 33%;
	top: 10%;
	width: 58%;
	height: 82.86%;
	border-radius: 50%;
	border: 1px dashed #CACACA;
	box-sizing: border-box;
}

.ire-volano__ring-dot {
	position: absolute;
	left: 50%;
	width: 9px;
	height: 9px;
	margin-left: -4px;
	border-radius: 50%;
}

.ire-volano__ring-dot--top {
	top: -5px;
	background: #5C5C48;
}

.ire-volano__ring-dot--bottom {
	bottom: -5px;
	background: #CACACA;
}

.ire-volano__svg {
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	overflow: visible;
}

.ire-volano__outer {
	stroke: #8A8A76;
}

.ire-volano__outer-head {
	fill: #8A8A76;
}

.ire-volano.is-accelerating .ire-volano__outer {
	stroke: #5C5C48;
}

.ire-volano.is-accelerating .ire-volano__outer-head {
	fill: #5C5C48;
}

.ire-node {
	position: absolute;
	transform: translate(-50%, -50%);
	width: 17%;
	aspect-ratio: 1 / 1;
	border-radius: 50%;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 2px;
	padding: 6px;
	box-sizing: border-box;
	text-align: center;
	background: #FFFFFF;
	color: #22221B;
	border: 1px solid #CACACA;
	box-shadow: none;
	transition: background 0.3s, color 0.3s;
}

.ire-node.is-active {
	background: #5C5C48;
	color: #FFFFFF;
	border-color: #5C5C48;
	box-shadow: 0 10px 30px rgba(34, 34, 27, 0.18);
}

/* Posizioni dei nodi (identiche al concept) */
.ire-node--0 { left: 62%; top: 17.14%; }
.ire-node--1 { left: 86%; top: 51.43%; }
.ire-node--2 { left: 62%; top: 85.71%; }
.ire-node--3 { left: 38%; top: 51.43%; }
.ire-node--5 { left: 9.7%; top: 72.43%; }
.ire-node--6 { left: 9.7%; top: 30.43%; }

.ire-node--4 {
	left: 62%;
	top: 51.43%;
	width: 15%;
	transition: none;
}

.ire-node__label {
	font-family: 'Cormorant Garamond', Georgia, serif;
	font-size: clamp(11px, 1.9cqi, 20px);
	font-weight: 600;
	line-height: 1.08;
}

.ire-node--4 .ire-node__label {
	font-size: clamp(13px, 2.3cqi, 24px);
	line-height: 1;
}

.ire-node__tag {
	font-size: clamp(7px, 0.96cqi, 10px);
	letter-spacing: 0.14em;
	text-transform: uppercase;
	font-weight: 600;
	opacity: 0.85;
}

.ire-node__icon {
	width: 26%;
	height: auto;
}

.ire-volano__legend {
	margin-top: 20px;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	gap: 12px 28px;
	font-size: 13px;
	color: #5E5E55;
}

.ire-volano__legend-item {
	display: flex;
	align-items: center;
	gap: 8px;
}

.ire-volano__legend-line {
	display: inline-block;
	width: 26px;
	border-top: 1px solid #CACACA;
}

.ire-volano__legend-line--outer {
	border-top: 2px solid #5C5C48;
}

.ire-volano__toggle {
	background: transparent;
	border: 1px solid #CACACA;
	color: #22221B;
	padding: 10px 18px;
	font-size: 13px;
	font-weight: 600;
	border-radius: 999px;
	min-height: 44px;
}

/* Tutti i pannelli nella stessa cella: il contenitore prende l'altezza del più alto,
 * così la pagina non salta a ogni cambio di passo. */
.ire-volano__panels {
	flex: 1 1 400px;
	min-width: 0;
	display: grid;
}

.ire-volano__panel {
	grid-area: 1 / 1;
	background: #F7F6F2;
	border: 1px solid #E4E2DA;
	padding: 36px;
	box-sizing: border-box;
	display: flex;
	flex-wrap: wrap;
	gap: 32px 48px;
}

.ire-volano__panel[hidden] {
	visibility: hidden;
}

.ire-volano__panel-main {
	flex: 1 1 360px;
	min-width: 0;
}

.ire-volano__panel-kicker {
	margin: 0;
	font-size: 12px;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: #5C5C48;
	font-weight: 600;
}

.ire-volano__panel-title {
	margin: 12px 0 10px;
	font-family: 'Cormorant Garamond', Georgia, serif;
	font-weight: 600;
	font-size: 36px;
	line-height: 1.05;
}

.ire-volano__panel-text {
	margin: 0;
	font-size: 16px;
	color: #4D4D44;
}

.ire-volano__panel-side {
	flex: 1 1 420px;
	min-width: 0;
	display: flex;
	flex-direction: column;
}

.ire-volano__items {
	margin: 0;
	padding: 0;
	list-style: none;
	display: flex;
	flex-direction: column;
	gap: 9px;
}

.ire-volano__items li {
	display: flex;
	gap: 12px;
	font-size: 15px;
	border-bottom: 1px solid #E8E6DF;
	padding-bottom: 9px;
}

.ire-volano__panel-foot {
	margin-top: 18px;
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: center;
	gap: 14px;
}

.ire-volano__then {
	margin: 0;
	font-size: 15px;
	font-style: italic;
	color: #5C5C48;
	flex: 1 1 260px;
}

.ire-volano__next {
	background: #5C5C48;
	border: 0;
	color: #FFFFFF;
	padding: 12px 20px;
	font-size: 14px;
	font-weight: 600;
	border-radius: 2px;
	min-height: 44px;
}

/* ---------------------------------------------------------------
 * Ristrutturazioni
 * ------------------------------------------------------------- */
.ire-reno {
	max-width: 1240px;
	margin: 0 auto;
	padding: 96px 24px;
	display: flex;
	flex-wrap: wrap;
	gap: 56px;
	align-items: center;
}

.ire-reno__media {
	flex: 1 1 520px;
	min-width: 0;
	display: flex;
	gap: 16px;
	height: 520px;
}

.ire-reno__img-main {
	flex: 3 1 0;
	min-width: 0;
	height: 100%;
	object-fit: cover;
	display: block;
}

.ire-reno__col {
	flex: 2 1 0;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.ire-reno__img-side {
	flex: 1 1 0;
	min-height: 0;
	width: 100%;
	object-fit: cover;
	display: block;
}

.ire-reno__box {
	flex: 0 0 auto;
	background: #3E3E30;
	color: #FFFFFF;
	padding: 22px;
}

.ire-reno__box-title {
	margin: 0;
	font-family: 'Cormorant Garamond', Georgia, serif;
	font-size: 26px;
	font-weight: 600;
	line-height: 1.1;
}

.ire-reno__box-text {
	margin: 6px 0 0;
	font-size: 13px;
	color: #DDDBD3;
}

.ire-reno__content {
	flex: 1 1 420px;
	min-width: 0;
}

.ire-reno__title {
	margin: 0 0 20px;
}

.ire-reno__text {
	margin: 0 0 24px;
	font-size: 17px;
	color: #4D4D44;
}

.ire-list {
	margin: 0;
	padding: 0;
	list-style: none;
	display: flex;
	flex-direction: column;
	gap: 10px;
	font-size: 15px;
}

.ire-list li {
	display: flex;
	gap: 12px;
	border-bottom: 1px solid #E4E2DA;
	padding-bottom: 10px;
}

/* ---------------------------------------------------------------
 * ESG e rinnovabili
 * ------------------------------------------------------------- */
.ire-esg {
	background: #3E3E30;
	color: #F7F6F2;
}

.ire-esg__inner {
	max-width: 1240px;
	margin: 0 auto;
	padding: 96px 24px;
	display: flex;
	flex-wrap: wrap;
	gap: 56px;
}

.ire-esg__content {
	flex: 1 1 440px;
	min-width: 0;
}

.ire-esg__kicker {
	color: #CACACA;
}

.ire-esg__title {
	margin: 0 0 22px;
	font-size: clamp(32px, 3.6vw, 50px);
	line-height: 1.08;
	color: #FFFFFF;
}

.ire-esg__text {
	margin: 0 0 32px;
	font-size: 17px;
	color: #DDDBD3;
}

.ire-esg__btn,
.ire-esg__btn:hover {
	display: inline-block;
	background: #F7F6F2;
	color: #22221B;
	padding: 15px 26px;
	font-size: 15px;
	font-weight: 600;
	border-radius: 2px;
}

.ire-esg__grid {
	flex: 1 1 520px;
	min-width: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 1px;
	background: #5C5C48;
	align-self: flex-start;
}

.ire-esg__card {
	flex: 1 1 240px;
	background: #3E3E30;
	padding: 26px;
}

.ire-esg__card-title {
	margin: 12px 0 6px;
	font-family: 'Cormorant Garamond', Georgia, serif;
	font-size: 23px;
	font-weight: 600;
	line-height: 1.6;
	color: #FFFFFF;
}

.ire-esg__card-text {
	margin: 0;
	font-size: 14px;
	color: #DDDBD3;
}

/* ---------------------------------------------------------------
 * Per chi lavoriamo
 * ------------------------------------------------------------- */
.ire-audience {
	max-width: 1240px;
	margin: 0 auto;
	padding: 96px 24px;
}

.ire-section-title {
	margin: 0 0 48px;
	max-width: 760px;
}

.ire-audience__grid {
	display: flex;
	flex-wrap: wrap;
	gap: 24px;
}

.ire-audience__item {
	flex: 1 1 260px;
	min-width: 0;
	border-top: 1px solid #22221B;
	padding-top: 22px;
}

.ire-audience__title {
	margin: 0 0 10px;
	font-family: 'Cormorant Garamond', Georgia, serif;
	font-size: 26px;
	font-weight: 600;
	line-height: 1.6;
}

.ire-audience__text {
	margin: 0;
	font-size: 15px;
	color: #4D4D44;
}

/* ---------------------------------------------------------------
 * Il metodo
 * ------------------------------------------------------------- */
.ire-method {
	background: #FFFFFF;
	border-top: 1px solid #E4E2DA;
}

.ire-method__inner {
	max-width: 1240px;
	margin: 0 auto;
	padding: 96px 24px;
}

.ire-method__steps {
	margin: 0;
	padding: 0;
	list-style: none;
	display: flex;
	flex-wrap: wrap;
}

.ire-method__step {
	flex: 1 1 200px;
	min-width: 0;
	padding: 24px 20px 24px 0;
	border-top: 1px solid #22221B;
}

.ire-method__step:last-child {
	padding: 24px 0;
}

.ire-method__num {
	margin: 0;
	font-size: 13px;
	font-weight: 600;
	color: #5C5C48;
}

.ire-method__title {
	margin: 10px 0 6px;
	font-family: 'Cormorant Garamond', Georgia, serif;
	font-size: 24px;
	font-weight: 600;
	line-height: 1.15;
}

.ire-method__text {
	margin: 0;
	font-size: 14px;
	color: #5E5E55;
}

/* ---------------------------------------------------------------
 * Dove operiamo
 * ------------------------------------------------------------- */
.ire-where {
	background: #ECEAE4;
}

.ire-where__inner {
	max-width: 1240px;
	margin: 0 auto;
	padding: 88px 24px;
	display: flex;
	flex-wrap: wrap;
	gap: 56px;
	align-items: center;
}

.ire-where__img {
	flex: 1 1 320px;
	min-width: 0;
	max-width: 440px;
	height: 520px;
	object-fit: cover;
	display: block;
}

.ire-where__content {
	flex: 1 1 480px;
	min-width: 0;
}

.ire-where__title {
	margin: 0 0 20px;
}

.ire-where__text {
	margin: 0 0 32px;
	font-size: 17px;
	color: #4D4D44;
}

.ire-where__tags {
	margin: 0;
	padding: 0;
	list-style: none;
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}

.ire-where__tag {
	border: 1px solid #8A8A76;
	padding: 8px 16px;
	font-size: 14px;
}

.ire-where__tag--main {
	border-color: #22221B;
	font-weight: 600;
	background: #FFFFFF;
}

/* ---------------------------------------------------------------
 * Contatti
 * ------------------------------------------------------------- */
.ire-contact {
	max-width: 1240px;
	margin: 0 auto;
	padding: 96px 24px;
	display: flex;
	flex-wrap: wrap;
	gap: 56px;
}

.ire-contact__info {
	flex: 1 1 380px;
	min-width: 0;
}

.ire-contact__title {
	margin: 0 0 28px;
}

.ire-contact__details {
	display: flex;
	flex-direction: column;
	gap: 14px;
	font-size: 16px;
	font-style: normal;
}

.ire-contact__address {
	margin: 0;
	color: #5E5E55;
}

.ire-contact__form {
	flex: 1 1 480px;
	min-width: 0;
}

.ire-contact__form > .wpcf7 {
	height: 100%;
}

/* Il form (Contact Form 7 o anteprima statica) */
.ire-form,
.ire-contact__form .wpcf7-form {
	margin: 0;
	background: #FFFFFF;
	border: 1px solid #E4E2DA;
	padding: 36px;
	box-sizing: border-box;
	display: flex;
	flex-direction: column;
	gap: 18px;
}

.ire-form__row {
	display: flex;
	flex-wrap: wrap;
	gap: 18px;
}

.ire-field {
	display: flex;
	flex-direction: column;
	gap: 6px;
	font-size: 13px;
	font-weight: 600;
}

.ire-form__row > .ire-field {
	flex: 1 1 200px;
}

.ire-field .wpcf7-form-control-wrap {
	display: flex;
	flex-direction: column;
}


.ire-field input,
.ire-field select,
.ire-field textarea {
	font: inherit;
	font-weight: 400;
	font-size: 15px;
	padding: 12px;
	border: 1px solid #CACACA;
	border-radius: 2px;
	background: #FFFFFF;
	color: #22221B;
}

.ire-field textarea {
	resize: vertical;
}

.ire-form__consent {
	font-size: 13px;
	color: #5E5E55;
}

.ire-form__consent label {
	display: flex;
	gap: 10px;
	align-items: flex-start;
}

.ire-form__consent input[type="checkbox"] {
	margin: 3px 0 0;
	width: 16px;
	height: 16px;
	accent-color: #5C5C48;
	flex: 0 0 auto;
}

.ire-form__consent a {
	text-decoration: underline;
}

.ire-form__consent .wpcf7-list-item {
	margin: 0;
}

.ire-form__actions {
	display: flex;
	align-items: center;
	gap: 12px;
}

.ire-form__submit,
.ire-form__actions .wpcf7-submit {
	align-self: flex-start;
	background: #5C5C48;
	color: #FFFFFF;
	border: 0;
	padding: 15px 28px;
	font-family: inherit;
	font-size: 15px;
	font-weight: 600;
	border-radius: 2px;
	min-height: 48px;
	cursor: pointer;
}

.ire-form__submit:disabled,
.ire-form__actions .wpcf7-submit:disabled {
	opacity: 0.6;
	cursor: default;
}

/* Contact Form 7: elementi accessori */
.ire-contact__form .hidden-fields-container {
	display: none;
}

.ire-contact__form .wpcf7-spinner {
	visibility: hidden;
	display: inline-block;
	width: 20px;
	height: 20px;
	border: 2px solid #CACACA;
	border-top-color: #5C5C48;
	border-radius: 50%;
	animation: ireSpin 0.8s linear infinite;
}

.ire-contact__form .submitting .wpcf7-spinner {
	visibility: visible;
}

.ire-contact__form .wpcf7-not-valid-tip {
	margin-top: 6px;
	font-size: 12px;
	font-weight: 600;
	color: #9A3B2E;
}

.ire-field .wpcf7-not-valid {
	border-color: #9A3B2E;
}

.ire-contact__form .wpcf7-response-output {
	margin: 0;
	padding: 12px 14px;
	font-size: 14px;
	border: 1px solid #CACACA;
	border-left: 3px solid #5C5C48;
	background: #F7F6F2;
}

.ire-contact__form .wpcf7-form.init .wpcf7-response-output,
.ire-contact__form .wpcf7-form.resetting .wpcf7-response-output,
.ire-contact__form .wpcf7-form.submitting .wpcf7-response-output {
	display: none;
}

.ire-contact__form .wpcf7-form.invalid .wpcf7-response-output,
.ire-contact__form .wpcf7-form.unaccepted .wpcf7-response-output,
.ire-contact__form .wpcf7-form.failed .wpcf7-response-output,
.ire-contact__form .wpcf7-form.aborted .wpcf7-response-output,
.ire-contact__form .wpcf7-form.spam .wpcf7-response-output {
	border-left-color: #9A3B2E;
}

.ire-contact__form .screen-reader-response {
	position: absolute;
	overflow: hidden;
	clip-path: inset(50%);
	height: 1px;
	width: 1px;
	margin: -1px;
	padding: 0;
	border: 0;
}

/* ---------------------------------------------------------------
 * Footer
 * ------------------------------------------------------------- */
.ire-footer {
	background: #22221B;
	color: #CACACA;
}

.ire-footer__inner {
	max-width: 1240px;
	margin: 0 auto;
	padding: 40px 24px;
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 20px;
	font-size: 13px;
}

.ire-footer__inner p {
	margin: 0;
}

.ire-footer a,
.ire-footer a:hover {
	color: inherit;
}

.ire-footer a:hover {
	color: #FFFFFF;
}

/* ---------------------------------------------------------------
 * Template base: pagine di testo, articoli, archivi, 404
 * ------------------------------------------------------------- */
.ire-page {
	max-width: 1240px;
	margin: 0 auto;
	padding: 80px 24px 96px;
}

.ire-page__header {
	max-width: 860px;
	margin-bottom: 48px;
}

.ire-page__title {
	margin: 0;
	font-family: 'Cormorant Garamond', Georgia, serif;
	font-weight: 500;
	font-size: clamp(40px, 5.2vw, 64px);
	line-height: 1.04;
	letter-spacing: -0.01em;
}

.ire-page__lead {
	margin: 24px 0 0;
	max-width: 640px;
	font-size: 18px;
	color: #4D4D44;
}

.ire-page__figure {
	margin: 0 0 48px;
}

.ire-page__figure img {
	display: block;
	width: 100%;
	height: auto;
	max-height: 560px;
	object-fit: cover;
}

.ire-prose {
	max-width: 760px;
	font-size: 17px;
	color: #4D4D44;
}

.ire-prose > * {
	margin: 0 0 18px;
}

.ire-prose h2,
.ire-prose h3,
.ire-prose h4 {
	margin: 48px 0 14px;
	font-family: 'Cormorant Garamond', Georgia, serif;
	color: #22221B;
	line-height: 1.15;
}

.ire-prose h2 {
	font-size: clamp(28px, 3vw, 38px);
	font-weight: 500;
}

.ire-prose h3 {
	font-size: 26px;
	font-weight: 600;
}

.ire-prose h4 {
	font-size: 21px;
	font-weight: 600;
}

.ire-prose a {
	color: #5C5C48;
	text-decoration: underline;
	text-underline-offset: 3px;
}

.ire-prose ul,
.ire-prose ol {
	padding-left: 1.3em;
}

.ire-prose li {
	margin-bottom: 6px;
}

.ire-prose img {
	max-width: 100%;
	height: auto;
}

.ire-prose blockquote {
	margin: 32px 0;
	padding: 4px 0 4px 24px;
	border-left: 2px solid #5C5C48;
	font-family: 'Cormorant Garamond', Georgia, serif;
	font-size: 24px;
	color: #22221B;
}

.ire-prose table {
	width: 100%;
	border-collapse: collapse;
	font-size: 15px;
}

.ire-prose th,
.ire-prose td {
	padding: 10px 12px;
	border-bottom: 1px solid #E4E2DA;
	text-align: left;
}

.ire-prose .wp-element-button,
.ire-prose .wp-block-button__link {
	display: inline-block;
	background: #5C5C48;
	color: #FFFFFF;
	padding: 15px 26px;
	font-size: 15px;
	font-weight: 600;
	border-radius: 2px;
	text-decoration: none;
}

.ire-page__nav .nav-links {
	margin-top: 64px;
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 24px;
	border-top: 1px solid #DDDBD3;
	padding-top: 24px;
}

.ire-page__nav a {
	display: flex;
	flex-direction: column;
	font-family: 'Cormorant Garamond', Georgia, serif;
	font-size: 22px;
	font-weight: 600;
}

.ire-page__nav .ire-kicker {
	margin: 0 0 4px;
	font-family: 'Manrope', system-ui, sans-serif;
}

.ire-cards {
	display: flex;
	flex-wrap: wrap;
	gap: 24px;
}

.ire-card {
	flex: 1 1 320px;
	min-width: 0;
	border-top: 1px solid #22221B;
	padding-top: 22px;
}

.ire-card__meta {
	margin: 0 0 8px;
	font-size: 12px;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: #5C5C48;
	font-weight: 600;
}

.ire-card__title {
	margin: 0 0 10px;
	font-family: 'Cormorant Garamond', Georgia, serif;
	font-size: 28px;
	font-weight: 600;
	line-height: 1.15;
}

.ire-card__title a {
	color: #22221B;
}

.ire-card__text {
	margin: 0;
	font-size: 15px;
	color: #4D4D44;
}

.navigation.pagination .nav-links {
	margin-top: 56px;
	display: flex;
	gap: 8px;
	font-size: 14px;
	font-weight: 600;
}

.navigation.pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 40px;
	min-height: 40px;
	border: 1px solid #CACACA;
	border-radius: 2px;
}

.navigation.pagination .page-numbers.current {
	background: #22221B;
	border-color: #22221B;
	color: #FFFFFF;
}

.ire-search {
	margin-top: 28px;
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	max-width: 560px;
}

.ire-search input[type="search"] {
	flex: 1 1 260px;
	font: inherit;
	font-size: 15px;
	padding: 12px;
	border: 1px solid #CACACA;
	border-radius: 2px;
	background: #FFFFFF;
}

.ire-search .ire-btn {
	border: 0;
	padding: 12px 22px;
	font-size: 15px;
	font-weight: 600;
}

.ire-404 .ire-hero__actions {
	margin-top: 0;
}
