/**
 * Documenti legali Easybed.
 *
 * Formattazione coordinata per le pagine che usano il template
 * "Documento legale Easybed". Riusa i token del tema (tokens.css): nessun
 * colore, spazio o font scritto a mano fuori dai token gia' approvati.
 *
 * Lo stile e' interamente scoped sotto .c-legal, quindi non tocca il resto del
 * sito. Il foglio viene accodato solo quando il template legale e' attivo
 * (inc/enqueue.php).
 *
 * @package Easybed_Theme
 */

/* Larghezza di lettura confortevole per testi lunghi (820-960px). */
.l-legal {
	--easybed-legal-measure: 56rem; /* 896px */
}

/* Colonna centrale: titolo + card, centrati alla misura di lettura. */
.c-legal {
	max-width: var(--easybed-legal-measure);
	margin-inline: auto;
}

/* ---------------------------------------------------------------------------
 * Intestazione
 * ------------------------------------------------------------------------- */
.c-legal__header {
	margin-block-end: var(--easybed-space-5);
}

.c-legal__title {
	margin: 0;
	color: var(--easybed-color-navy);
	font-family: var(--easybed-font-heading);
	font-size: var(--easybed-font-size-xl);
	line-height: var(--easybed-line-height-tight);
	letter-spacing: var(--easybed-letter-spacing-tight);
}

/* ---------------------------------------------------------------------------
 * Superficie del documento (card leggera)
 * ------------------------------------------------------------------------- */
.c-legal__content {
	padding: var(--easybed-space-6);
	background-color: var(--easybed-color-surface-alt);
	border: var(--easybed-border-width) solid var(--easybed-color-border);
	border-radius: var(--easybed-radius-m);
	box-shadow: var(--easybed-shadow-card);
	color: var(--easybed-color-text);
	font-family: var(--easybed-font-body);
	font-size: var(--easybed-font-size-base);
	line-height: var(--easybed-line-height-base);
}

/* Nessun margine superiore sul primo elemento, cosi il testo parte dal bordo. */
.c-legal__content > :first-child {
	margin-block-start: 0;
}

.c-legal__content > :last-child {
	margin-block-end: 0;
}

/* ---------------------------------------------------------------------------
 * Titoli interni: gerarchia chiara
 * ------------------------------------------------------------------------- */
.c-legal__content h2 {
	margin-block: var(--easybed-space-7) var(--easybed-space-4);
	padding-block-start: var(--easybed-space-5);
	border-block-start: var(--easybed-border-width) solid var(--easybed-color-border);
	color: var(--easybed-color-navy);
	font-family: var(--easybed-font-heading);
	font-size: var(--easybed-font-size-l);
	line-height: var(--easybed-line-height-tight);
}

.c-legal__content h3 {
	margin-block: var(--easybed-space-6) var(--easybed-space-3);
	color: var(--easybed-color-navy-soft);
	font-family: var(--easybed-font-heading);
	font-size: var(--easybed-font-size-m);
	line-height: var(--easybed-line-height-tight);
}

.c-legal__content h4 {
	margin-block: var(--easybed-space-5) var(--easybed-space-2);
	color: var(--easybed-color-text);
	font-family: var(--easybed-font-heading);
	font-size: var(--easybed-font-size-base);
	font-weight: var(--easybed-font-weight-semibold);
}

/* ---------------------------------------------------------------------------
 * Corpo del testo
 * ------------------------------------------------------------------------- */
.c-legal__content p {
	margin-block: 0 var(--easybed-space-4);
}

.c-legal__content strong {
	font-weight: var(--easybed-font-weight-semibold);
	color: inherit;
}

/* Link riconoscibili anche senza colore: sottolineatura sempre presente. */
.c-legal__content a {
	color: var(--easybed-color-navy-soft);
	text-decoration: underline;
	text-underline-offset: 0.15em;
}

.c-legal__content a:hover,
.c-legal__content a:focus-visible {
	color: var(--easybed-color-navy);
	text-decoration-thickness: 2px;
}

/* Focus visibile e coerente su tutti gli elementi interattivi. */
.c-legal__content a:focus-visible,
.c-legal :is( button, input, textarea, select, [tabindex] ):focus-visible {
	outline: var(--easybed-focus-width) solid var(--easybed-color-focus);
	outline-offset: var(--easybed-focus-offset);
	border-radius: var(--easybed-radius-s);
}

/* ---------------------------------------------------------------------------
 * Elenchi
 * ------------------------------------------------------------------------- */
.c-legal__content :is( ul, ol ) {
	margin-block: 0 var(--easybed-space-4);
	padding-inline-start: var(--easybed-space-6);
}

.c-legal__content li {
	margin-block-end: var(--easybed-space-2);
}

.c-legal__content li::marker {
	color: var(--easybed-color-navy-soft);
}

.c-legal__content :is( ul, ol ) :is( ul, ol ) {
	margin-block-start: var(--easybed-space-2);
}

/* ---------------------------------------------------------------------------
 * Citazioni / note operative
 * ------------------------------------------------------------------------- */
.c-legal__content blockquote {
	margin-block: var(--easybed-space-4);
	margin-inline: 0;
	padding: var(--easybed-space-4) var(--easybed-space-5);
	border-inline-start: 4px solid var(--easybed-color-navy-soft);
	border-radius: var(--easybed-radius-s);
	background-color: var(--easybed-color-surface);
	color: var(--easybed-color-text);
}

.c-legal__content blockquote > :last-child {
	margin-block-end: 0;
}

/* ---------------------------------------------------------------------------
 * Separatori
 * ------------------------------------------------------------------------- */
.c-legal__content hr {
	margin-block: var(--easybed-space-6);
	border: 0;
	border-block-start: var(--easybed-border-width) solid var(--easybed-color-border);
}

/* ---------------------------------------------------------------------------
 * Tabelle: responsive senza scroll orizzontale della pagina
 * ------------------------------------------------------------------------- */
.c-legal__content table {
	display: block;
	max-width: 100%;
	overflow-x: auto;
	width: 100%;
	margin-block: var(--easybed-space-4);
	border-collapse: collapse;
	font-size: var(--easybed-font-size-s);
}

.c-legal__content :is( th, td ) {
	padding: var(--easybed-space-2) var(--easybed-space-3);
	border: var(--easybed-border-width) solid var(--easybed-color-border);
	text-align: start;
	vertical-align: top;
}

.c-legal__content th {
	background-color: var(--easybed-color-surface);
	font-weight: var(--easybed-font-weight-semibold);
}

/* Immagini e media non superano mai la colonna. */
.c-legal__content :is( img, iframe, video ) {
	max-width: 100%;
	height: auto;
}

/* ---------------------------------------------------------------------------
 * Contenuto dinamico Complianz (Cookie Policy)
 *
 * Stile generico e difensivo: non modifica il plugin, si limita a inserire il
 * documento generato nel ritmo tipografico della pagina.
 * ------------------------------------------------------------------------- */
.c-legal__content .cmplz-document {
	color: inherit;
	font-size: inherit;
	line-height: inherit;
}

.c-legal__content .cmplz-document :is( h2, h3, h4 ) {
	font-family: var(--easybed-font-heading);
}

.c-legal__content .cmplz-document h2 {
	color: var(--easybed-color-navy);
}

.c-legal__content .cmplz-document h3 {
	color: var(--easybed-color-navy-soft);
}

/* ---------------------------------------------------------------------------
 * Modulo Recesso online: resta pienamente utilizzabile.
 *
 * Le regole di form (.eb-recesso*) vivono in components.css; qui si garantisce
 * solo che il modulo respiri dentro la card, senza sovrascrivere la sua logica
 * visiva.
 * ------------------------------------------------------------------------- */
.c-legal__content .eb-recesso {
	margin-block-start: var(--easybed-space-5);
}

/* ---------------------------------------------------------------------------
 * Responsive
 * ------------------------------------------------------------------------- */
@media (max-width: 47.9375em) {
	.c-legal__content {
		padding: var(--easybed-space-5) var(--easybed-space-4);
	}

	.c-legal__title {
		font-size: var(--easybed-font-size-l);
	}
}
