/* ==========================================================================
   Componenti riutilizzabili
   ========================================================================== */

/* --- Pulsanti -------------------------------------------------------------- */
.asm-btn,
.asm-blocks .wp-block-button__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: var(--asm-sp-3);
	min-height: 52px;
	padding: 0 var(--asm-sp-7);
	border: 1px solid var(--asm-nero);
	border-radius: 0;
	background: var(--asm-nero);
	color: var(--asm-bianco);
	font-family: var(--asm-font-sans);
	font-size: var(--asm-fs-xs);
	font-weight: 500;
	letter-spacing: var(--asm-ls-caps);
	text-transform: uppercase;
	text-decoration: none;
	line-height: 1;
	transition: background-color var(--asm-dur) var(--asm-ease), color var(--asm-dur) var(--asm-ease), border-color var(--asm-dur) var(--asm-ease);
}
.asm-btn:hover,
.asm-blocks .wp-block-button__link:hover { background: transparent; color: var(--asm-nero); }

/* Secondario: contorno */
.asm-btn--outline { background: transparent; color: var(--asm-nero); }
.asm-btn--outline:hover { background: var(--asm-nero); color: var(--asm-bianco); }

/* Su fondo scuro */
.asm-btn--light { background: transparent; color: var(--asm-avorio); border-color: rgba(241, 237, 227, 0.7); }
.asm-btn--light:hover { background: var(--asm-avorio); color: var(--asm-nero); border-color: var(--asm-avorio); }

/* Link testuale con filetto */
.asm-textlink, .asm-textlink a {
	display: inline-block;
	font-size: var(--asm-fs-xs);
	font-weight: 500;
	letter-spacing: var(--asm-ls-caps);
	text-transform: uppercase;
	text-decoration: none !important;
	padding-bottom: 6px;
	background: linear-gradient(currentColor, currentColor) left bottom / 100% 1px no-repeat;
	transition: background-size var(--asm-dur-slow) var(--asm-ease), color var(--asm-dur) var(--asm-ease);
}
.asm-textlink:hover, a:hover .asm-textlink, .asm-textlink a:hover { color: var(--asm-accent); }

/* --- Pulsanti icona (header) ---------------------------------------------- */
.asm-iconbtn {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	padding: 0;
	border: 0;
	background: none;
	color: inherit;
}
.asm-iconbtn:hover { color: var(--asm-accent); }
.asm-icon { width: 19px; height: 19px; fill: none; stroke: currentColor; stroke-width: 1; stroke-linecap: round; stroke-linejoin: round; }

/* --- Selettore lingua ----------------------------------------------------- */
.asm-lang { display: flex; gap: var(--asm-sp-3); margin: 0; padding: 0; list-style: none; }
.asm-lang__item {
	display: inline-block;
	font-size: var(--asm-fs-2xs);
	font-weight: 500;
	letter-spacing: 0.16em;
	padding-bottom: 2px;
	border-bottom: 1px solid transparent;
}
.asm-lang__item.is-active { border-bottom-color: var(--asm-accent); }
.asm-lang__item.is-soon { opacity: 0.45; cursor: default; }
a.asm-lang__item:hover { color: var(--asm-accent); }

/* --- Segnaposto foto/video ------------------------------------------------
   Riconoscibili a colpo d'occhio: fondo neutro, cornice sottile, etichetta. */
.asm-ph {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	overflow: hidden;
	background:
		repeating-linear-gradient(135deg, transparent 0 14px, rgba(181, 173, 160, 0.16) 14px 15px),
		var(--asm-avorio);
	color: var(--asm-text-muted);
	outline: 1px solid rgba(181, 173, 160, 0.6);
	outline-offset: -12px;
	text-align: center;
}
.asm-ph--dark {
	background:
		repeating-linear-gradient(135deg, transparent 0 14px, rgba(241, 237, 227, 0.05) 14px 15px),
		var(--asm-nero-2);
	color: var(--asm-on-dark-soft);
	outline-color: rgba(241, 237, 227, 0.18);
}
.asm-ph__media { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.asm-ph__label {
	position: relative;
	z-index: 1;
	display: flex;
	flex-direction: column;
	gap: var(--asm-sp-1);
	max-width: 80%;
	padding: var(--asm-sp-4);
}
.asm-ph__kind, .asm-ph__ratio,
.asm-ph p.asm-ph__kind {
	font-size: var(--asm-fs-2xs);
	font-weight: 500;
	letter-spacing: var(--asm-ls-caps);
	text-transform: uppercase;
	margin: 0;
}
.asm-ph__text, .asm-ph p.asm-ph__text { font-family: var(--asm-font-display); font-style: italic; font-size: var(--asm-fs-sm); margin: 0; }
.asm-ph.wp-block-group { flex-direction: column; }
/* Con un video provvisorio sotto: etichetta discreta in basso a sinistra */
.asm-ph:has(.asm-ph__media) .asm-ph__label {
	position: absolute;
	left: var(--asm-sp-5);
	bottom: var(--asm-sp-5);
	align-items: flex-start;
	text-align: left;
	padding: var(--asm-sp-2) var(--asm-sp-3);
	background: rgba(8, 8, 8, 0.55);
	color: var(--asm-avorio);
}
.asm-ph:has(.asm-ph__media) .asm-ph__ratio { display: none; }

/* Testo provvisorio da completare */
.asm-todo { font-style: italic; opacity: 0.6; }

/* --- Schede (prodotti ed editoriali) -------------------------------------- */
.asm-cards { display: grid; gap: var(--asm-grid-gap); }
.asm-cards--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.asm-cards--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (max-width: 1023px) {
	.asm-cards--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
	.asm-cards--3, .asm-cards--2 { grid-template-columns: 1fr; }
}

.asm-card { display: flex; flex-direction: column; align-items: center; text-align: center; color: inherit; }
.asm-card__media { width: 100%; margin-bottom: var(--asm-sp-5); overflow: hidden; }
.asm-card__media img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; transition: transform 900ms var(--asm-ease); }
a.asm-card:hover .asm-card__media img { transform: scale(1.025); }
.asm-card .asm-eyebrow { margin-bottom: var(--asm-sp-2); }
.asm-card__title, .asm-card h3 {
	font-family: var(--asm-font-display);
	font-size: var(--asm-fs-h3);
	margin: 0 0 var(--asm-sp-3);
}
.asm-card__text {
	max-width: 34ch;
	color: var(--asm-text-soft);
	font-size: var(--asm-fs-sm);
	margin-bottom: var(--asm-sp-3);
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
.asm-section--dark .asm-card__text { color: var(--asm-on-dark-soft); }
.asm-card__price, .asm-card .asm-prezzo { font-size: var(--asm-fs-sm); letter-spacing: var(--asm-ls-wide); margin-bottom: var(--asm-sp-4); }
.asm-card--editorial { align-items: flex-start; text-align: left; }
.asm-card--editorial .asm-card__media .asm-ph,
.asm-card--editorial .asm-card__media img { aspect-ratio: 3 / 2; }
a.asm-card:hover .asm-card__title { color: var(--asm-accent); }

/* --- Due colonne: immagine e testo ---------------------------------------- */
.asm-split-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: clamp(32px, 7vw, 120px);
	align-items: center;
}
.asm-split-grid__text { max-width: 480px; }
@media (max-width: 860px) {
	.asm-split-grid { grid-template-columns: 1fr; }
}

/* --- Contenuti a blocchi (pagine e descrizioni prodotto) ------------------ */
.asm-blocks > * { margin-inline: auto; }
.asm-blocks > :where(p, h1, h2, h3, h4, ul, ol, blockquote) { max-width: var(--asm-narrow); padding-inline: var(--asm-gutter); box-sizing: content-box; }
.asm-blocks .wp-block-columns { gap: var(--asm-grid-gap); }
.asm-blocks .wp-block-group.asm-section { padding-inline: var(--asm-gutter); }
.asm-blocks .asm-section--dark { color: var(--asm-on-dark); }

/* Piramide olfattiva (blocco e contenuti esistenti dei prodotti) */
.asm-piramide { background: var(--asm-avorio); text-align: center; }
.asm-piramide h2 { font-size: var(--asm-fs-h2); margin-bottom: var(--asm-sp-8); }
.asm-piramide-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	max-width: 1100px;
	margin-inline: auto;
	border-top: 1px solid var(--asm-line-strong);
}
.asm-piramide-col { padding: var(--asm-sp-7) var(--asm-sp-6); border-left: 1px solid var(--asm-line); }
.asm-piramide-col:first-child { border-left: 0; }
.asm-piramide-col h4 {
	font-family: var(--asm-font-sans);
	font-size: var(--asm-fs-xs);
	font-weight: 500;
	letter-spacing: var(--asm-ls-caps);
	text-transform: uppercase;
	color: var(--asm-text-muted);
	margin-bottom: var(--asm-sp-4);
}
.asm-piramide-col p { font-size: var(--asm-fs-sm); color: var(--asm-text-soft); }
.asm-piramide-col strong { display: block; font-family: var(--asm-font-display); font-weight: 400; font-size: var(--asm-fs-h4); color: var(--asm-text); margin-bottom: var(--asm-sp-2); }
@media (max-width: 760px) {
	.asm-piramide-grid { grid-template-columns: 1fr; }
	.asm-piramide-col { border-left: 0; border-top: 1px solid var(--asm-line); }
	.asm-piramide-col:first-child { border-top: 0; }
}

/* Contenuti già presenti nelle descrizioni prodotto */
.asm-contenuto { max-width: var(--asm-narrow); margin-inline: auto; padding-inline: var(--asm-gutter); text-align: center; box-sizing: content-box; }
.asm-storia-torre { background: var(--asm-bianco); }
.asm-storia-torre h2 { font-size: var(--asm-fs-h2); }
.asm-storia-torre p { color: var(--asm-text-soft); }
.asm-storia-torre p:first-of-type em { display: block; font-size: var(--asm-fs-lead); color: var(--asm-text); }
.asm-fragranze { background: var(--asm-bianco); text-align: center; border-top: 1px solid var(--asm-line); }
.asm-fragranze > h2, .asm-fragranze > .asm-sottotitolo { padding-inline: var(--asm-gutter); }
.asm-sottotitolo { color: var(--asm-text-muted); margin-bottom: var(--asm-sp-8); }
.asm-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); max-width: var(--asm-container); margin-inline: auto; padding-inline: var(--asm-gutter); }
@media (max-width: 760px) { .asm-grid--3 { grid-template-columns: 1fr; } }
.asm-placeholder {
	width: 100%;
	aspect-ratio: 4 / 5;
	display: flex; align-items: center; justify-content: center;
	margin-bottom: var(--asm-sp-5);
	background: repeating-linear-gradient(135deg, transparent 0 14px, rgba(181, 173, 160, 0.16) 14px 15px), var(--asm-avorio);
	outline: 1px solid rgba(181, 173, 160, 0.6);
	outline-offset: -12px;
	color: var(--asm-text-muted);
	font-size: var(--asm-fs-2xs);
	letter-spacing: var(--asm-ls-caps);
	text-transform: uppercase;
}
.asm-placeholder::before { content: "Foto · segnaposto — "; white-space: pre; }

/* --- Link editoriale con freccia (CTA) ------------------------------------ */
.asm-arrowlink {
	display: inline-flex;
	align-items: baseline;
	gap: 10px;
	font-family: var(--asm-font-sans);
	font-size: 11px;
	font-weight: 400;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--asm-avorio);
	text-decoration: none;
	transition: color 300ms var(--asm-ease);
}
.asm-arrowlink__label {
	padding-bottom: 8px;
	background: linear-gradient(var(--asm-oro), var(--asm-oro)) left bottom / 100% 1px no-repeat;
}
.asm-arrowlink__arrow { display: inline-block; transition: transform 400ms var(--asm-ease); }
.asm-arrowlink:hover, .asm-arrowlink:focus-visible { color: var(--asm-oro); }
.asm-arrowlink:hover .asm-arrowlink__arrow { transform: translateX(4px); }
.asm-arrowlink:focus-visible { outline: 1px solid var(--asm-oro); outline-offset: 6px; }
/* Su fondo chiaro */
.asm-arrowlink--dark { color: var(--asm-nero-2); }
.asm-arrowlink--dark:hover, .asm-arrowlink--dark:focus-visible { color: var(--asm-oro-scuro); } /* oro leggibile su avorio */

/* --- Firma secondaria "Libertas Mundum Illuminat" ------------------------- */
.asm-signature {
	margin: 0;
	font-family: var(--asm-font-sans);
	font-size: 10px;
	letter-spacing: 0.32em;
	text-transform: uppercase;
}

/* --- Entrata delle sezioni (reveal.js aggiunge .is-revealed) -------------- */
.asm-js [data-asm-reveal] {
	opacity: 0;
	transform: translateY(12px);
	transition:
		opacity 900ms var(--asm-ease) var(--asm-delay, 0ms),
		transform 900ms var(--asm-ease) var(--asm-delay, 0ms);
}
.asm-js [data-asm-reveal="fade"] { transform: none; }
.asm-js [data-asm-reveal].is-revealed { opacity: 1; transform: none; }
/* Linea sottile che si disegna dall'alto */
.asm-js [data-asm-reveal="line"] { opacity: 1; transform: scaleY(0); transform-origin: top center; }
.asm-js [data-asm-reveal="line"].is-revealed { transform: scaleY(1); }
@media (prefers-reduced-motion: reduce) {
	.asm-js [data-asm-reveal] { opacity: 1; transform: none; transition: none; }
}
