/*
 * Civita Venezia – stili dei contenuti e dei blocchi.
 * Caricato sul sito e nell'editor (add_editor_style), così l'editor è identico al sito.
 */

/* Sfondo carta */
body {
	background-color: var(--wp--preset--color--carta);
	background-image: url("../images/carta-texture.jpg");
	background-size: 800px 800px;
	-webkit-font-smoothing: antialiased;
}

/* Testi e link */
h1,
h2,
h3,
h4 {
	overflow-wrap: break-word;
	text-wrap: balance;
}

a {
	text-decoration-thickness: 1px;
	text-underline-offset: 0.18em;
}

a:hover {
	text-decoration-thickness: 2px;
}

:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
	outline: 3px solid var(--wp--preset--color--inchiostro);
	outline-offset: 3px;
}

/* Fondi scuri: testo e link bianchi, focus bianco */
:where(.has-inchiostro-background-color, .has-accento-background-color, .has-accento-2-background-color, .has-grigio-background-color) a:where(:not(.wp-element-button)) {
	color: inherit;
}

:where(.has-inchiostro-background-color, .has-accento-background-color, .has-accento-2-background-color, .has-grigio-background-color) :focus-visible {
	outline-color: var(--wp--preset--color--bianco);
}

/* Sezioni a tutta larghezza una dopo l'altra, senza spazi tra le fasce */
.entry-content > .alignfull {
	margin-block-start: 0;
	margin-block-end: 0;
}

/* Pulsanti */
.wp-block-button__link,
.wp-element-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	min-height: 56px;
	box-sizing: border-box;
}

.wp-block-button.is-style-freccia .wp-block-button__link::after {
	content: "";
	flex: 0 0 auto;
	width: 16px;
	height: 16px;
	background-color: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 17L17 7M8 7h9v9'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 17L17 7M8 7h9v9'/%3E%3C/svg%3E") center / contain no-repeat;
}

.wp-block-button.is-style-contorno-chiaro .wp-block-button__link {
	background-color: transparent;
	border: 2px solid var(--wp--preset--color--bianco);
	color: var(--wp--preset--color--bianco);
}

.wp-block-button.is-style-contorno-chiaro .wp-block-button__link:hover {
	background-color: var(--wp--preset--color--bianco);
	color: var(--wp--preset--color--inchiostro);
}

.has-inchiostro-background-color .wp-block-button:not(.is-style-contorno-chiaro) .wp-block-button__link:hover {
	background-color: var(--wp--preset--color--bianco);
	color: var(--wp--preset--color--inchiostro);
}

/* Paragrafo: etichetta scura (badge) */
.is-style-badge {
	width: fit-content;
	max-width: 100%;
	padding: 8px 14px;
	background-color: var(--wp--preset--color--inchiostro);
	color: var(--wp--preset--color--bianco);
	font-size: 0.8125rem;
	font-weight: 800;
	letter-spacing: 0.12em;
	line-height: 1.35;
	text-transform: uppercase;
}

/* Etichetta maiuscola (paragrafo o titolo piccolo) */
.is-style-etichetta {
	font-family: var(--wp--preset--font-family--archivo);
	font-size: 0.8125rem;
	font-weight: 800;
	letter-spacing: 0.14em;
	line-height: 1.35;
	text-transform: uppercase;
}

h3.is-style-etichetta,
h4.is-style-etichetta {
	font-size: 0.8125rem;
	font-weight: 800;
	letter-spacing: 0.14em;
}

/* Numeri e date in Oswald */
.is-style-numero {
	font-family: var(--wp--preset--font-family--oswald);
	font-size: 1.25rem;
	font-weight: 600;
	line-height: 1.1;
}

/* Sottotitolo della mostra */
.is-style-sottotitolo {
	font-family: var(--wp--preset--font-family--oswald);
	font-weight: 600;
	line-height: 1.05;
	text-transform: uppercase;
}

/* Link in maiuscolo */
.is-style-link-maiuscolo {
	font-size: 0.9375rem;
	font-weight: 800;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.is-style-link-maiuscolo a {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
}

/* Gruppo: sezione con linea sopra */
.is-style-linea-sopra {
	border-top: 2px solid var(--wp--preset--color--inchiostro);
}

/* Gruppo: card bianca */
.wp-block-group.is-style-card {
	gap: 0.75rem;
	padding: 1.75rem;
}

.wp-block-group.is-style-card > *,
.wp-block-group.is-style-card > .wp-block-group > * {
	margin: 0;
}

/* Gruppo: riga tariffa */
.wp-block-group.is-style-riga-tariffa {
	gap: 16px;
	padding: 10px 0;
	border-bottom: 1px solid #8a8580;
	font-size: 1.0625rem;
}

.wp-block-group.is-style-riga-tariffa p {
	margin: 0;
}

.wp-block-group.is-style-riga-tariffa > .wp-block-group {
	gap: 2px;
}

.wp-block-group.is-style-riga-tariffa .is-style-numero {
	flex-shrink: 0;
	white-space: nowrap;
}

.cvv-tariffe > .is-style-riga-tariffa,
.cvv-tariffe > .is-style-etichetta + * {
	margin-block-start: 0;
}

.cvv-tariffe > .is-style-etichetta {
	margin-block-end: 8px;
}

.cvv-tariffe > p:last-child {
	margin-block-start: 8px;
}

/* Immagine con didascalia verticale */
.wp-block-image.is-style-didascalia-verticale {
	display: flex;
	align-items: flex-end;
	gap: 10px;
}

.wp-block-image.is-style-didascalia-verticale img {
	flex: 1 1 auto;
	min-width: 0;
	width: 100%;
}

.wp-block-image.is-style-didascalia-verticale figcaption {
	flex: 0 0 auto;
	margin: 0;
	writing-mode: vertical-rl;
	transform: rotate(180deg);
	white-space: nowrap;
	font-size: 0.6875rem;
	color: var(--wp--preset--color--grigio);
}

/* Hero della mostra */
.wp-block-columns.cvv-hero {
	gap: var(--wp--preset--spacing--70);
}

.cvv-hero h1 {
	margin-block-start: 1.75rem;
}

.cvv-hero h1 + .is-style-sottotitolo {
	margin-block-start: 1rem;
}

.cvv-hero .cvv-hero__date {
	margin-block-start: 1.75rem;
	font-weight: 500;
	line-height: 1.3;
}

.cvv-hero .cvv-hero__date + .cvv-hero__luogo {
	margin-block-start: 0;
}

.cvv-hero .wp-block-image {
	max-width: 500px;
	margin-inline: auto 0;
}

.cvv-hero .wp-block-image img {
	aspect-ratio: 2 / 3;
	object-fit: cover;
	height: auto;
}

.cvv-hero .wp-block-group {
	gap: 16px 28px;
	margin-block-start: 1.75rem;
}

.cvv-hero .wp-block-group > * {
	margin: 0;
}

/* Colonne informative (orari, tariffe, come arrivare) */
.wp-block-columns.cvv-info {
	gap: var(--wp--preset--spacing--60);
	margin-block-start: var(--wp--preset--spacing--60);
}

.cvv-info .wp-block-column > * + * {
	margin-block-start: 12px;
}

.cvv-info .wp-block-column > .is-style-etichetta + * {
	margin-block-start: 12px;
}

/* Titolo grande nella fascia "Prossimamente" */
.cvv-titolo-prossima {
	font-size: clamp(2.25rem, 1.6rem + 2.8vw, 3.5rem);
	line-height: 0.95;
}

/* Titoli di sezione con link o pulsante a destra */
.alignwide.is-layout-flex > h2,
.alignwide.is-layout-flex > p {
	margin: 0;
}

/* Tablet: le tre colonne informative diventano due */
@media (min-width: 782px) and (max-width: 1023px) {
	.wp-block-columns.cvv-info {
		flex-wrap: wrap !important;
	}

	.wp-block-columns.cvv-info > .wp-block-column {
		flex-basis: calc(50% - var(--wp--preset--spacing--60)) !important;
		flex-grow: 1;
	}
}

@media (max-width: 781px) {
	.cvv-hero .wp-block-image {
		margin-inline: 0;
	}
}

@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}
}
