/* Robedimank Media – frontend
 * Tutti i valori personalizzabili sono variabili CSS (impostate dai controlli dei widget Elementor).
 */

:root {
	--rdm-accent: #c8a03c;
	--rdm-accent-text: #8a6d1e; /* oro scurito: 4.9:1 sul bianco, per il testo */
	--rdm-ink: #111;
	--rdm-muted: #6b6b6b;
	--rdm-line: #ececec;
	--rdm-sidebar-w: 220px;
	--rdm-ab: var(--wp-admin--admin-bar--height, 0px);
	--rdm-ease: cubic-bezier(.16, 1, .3, 1);
}
/* Sotto i 600px la barra admin di WordPress scorre con la pagina: l'header sticky va a filo schermo. */
@media (max-width: 600px) { :root { --rdm-ab: 0px; } }

/* =========================================================================
   Layout del sito (impostazione "Header come sidebar")
   La pagina è una griglia alta almeno quanto la viewport:
   - desktop:        [sidebar | contenuto] + footer a tutta larghezza sotto entrambi
   - tablet/mobile:  header in alto (sticky) / contenuto / footer
   La riga del contenuto prende lo spazio libero, quindi il footer nero chiude
   sempre la viewport: niente bianco sotto, anche nelle pagine corte.
   ========================================================================= */
body.rdm-sidebar-layout:not(.elementor-editor-active) {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	grid-template-rows: auto 1fr auto;
	/* L'altezza da sottrarre è sempre quella della barra admin (margine dell'<html>), anche quando non è fissa. */
	min-height: calc(100vh - var(--wp-admin--admin-bar--height, 0px));
	min-height: calc(100dvh - var(--wp-admin--admin-bar--height, 0px));
}
body.rdm-sidebar-layout:not(.elementor-editor-active) > * {
	grid-column: 1;
	grid-row: 2;
	min-width: 0;
}
body.rdm-sidebar-layout:not(.elementor-editor-active) > .elementor-location-header {
	grid-row: 1;
	position: sticky;
	top: var(--rdm-ab);
	z-index: 100;
	background: #fff;
	box-shadow: 0 1px 0 var(--rdm-line);
}
body.rdm-sidebar-layout:not(.elementor-editor-active) > .elementor-location-footer { grid-row: 3; }

@media (min-width: 1025px) {
	body.rdm-sidebar-layout:not(.elementor-editor-active) {
		grid-template-columns: var(--rdm-sidebar-w) minmax(0, 1fr);
		grid-template-rows: 1fr auto;
	}
	body.rdm-sidebar-layout:not(.elementor-editor-active) > * {
		grid-column: 2;
		grid-row: 1;
	}
	/* La colonna della sidebar è alta quanto il contenuto (bordo continuo fino al footer);
	   il suo contenuto resta fermo mentre si scorre. */
	body.rdm-sidebar-layout:not(.elementor-editor-active) > .elementor-location-header {
		grid-column: 1;
		grid-row: 1;
		position: relative;
		top: auto;
		box-shadow: inset -1px 0 0 var(--rdm-line);
	}
	body.rdm-sidebar-layout:not(.elementor-editor-active) > .elementor-location-header > * {
		position: sticky;
		top: var(--rdm-ab);
		max-height: min(100%, calc(100dvh - var(--rdm-ab)));
		overflow-y: auto;
		overscroll-behavior: contain;
		scrollbar-width: thin;
		scrollbar-color: var(--rdm-line) transparent;
	}
	body.rdm-sidebar-layout:not(.elementor-editor-active) > .elementor-location-footer { grid-column: 1 / -1; }
}

/* Classe alternativa per contenitori classici (template JSON v1.0). */
@media (min-width: 1025px) {
	body:not(.elementor-editor-active):not(.rdm-sidebar-layout) .rdm-sidebar {
		position: fixed;
		inset-block: var(--rdm-ab) 0;
		inset-inline-start: 0;
		width: var(--rdm-sidebar-w);
		overflow-y: auto;
		z-index: 100;
	}
	body:not(.elementor-editor-active):not(.rdm-sidebar-layout):has(.rdm-sidebar) { padding-inline-start: var(--rdm-sidebar-w); }
}

/* =========================================================================
   Menu automatico "Portfolio" (widget Nav Menu)
   ========================================================================= */
.elementor-nav-menu .menu-item.rdm-menu-parent > a.elementor-item {
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .06em;
	color: var(--rdm-ink);
}
.elementor-nav-menu--layout-vertical .menu-item.rdm-menu-parent:not(:first-child) { margin-block-start: 1.25rem; }
.elementor-nav-menu .menu-item.rdm-menu-l3 > a.elementor-item { font-size: .9em; opacity: .85; }
.elementor-nav-menu--main a.elementor-item.elementor-item-active { color: var(--rdm-accent-text); }

/* Mobile/tablet: foglio a tutta larghezza, gruppi con etichetta e voci grandi da toccare. */
@media (max-width: 1024px) {
	body.rdm-sidebar-layout .elementor-location-header .elementor-menu-toggle.elementor-active + .elementor-nav-menu__container {
		max-height: calc(100dvh - var(--rdm-ab) - 64px);
		overflow-y: auto;
		overscroll-behavior: contain;
		box-shadow: 0 28px 40px -28px rgba(0, 0, 0, .22);
	}
	body.rdm-sidebar-layout .elementor-location-header .elementor-nav-menu--dropdown .elementor-nav-menu {
		padding: 4px 16px 28px;
	}
	body.rdm-sidebar-layout .elementor-location-header .elementor-nav-menu--dropdown li.menu-item.rdm-menu-parent > a.elementor-item {
		padding: 28px 0 6px;
		font-size: 11px;
		font-weight: 500;
		letter-spacing: .16em;
		text-transform: uppercase;
		color: var(--rdm-muted);
		background: transparent;
	}
	body.rdm-sidebar-layout .elementor-location-header .elementor-nav-menu--dropdown li.menu-item.rdm-menu-parent:first-child > a.elementor-item { padding-top: 12px; }
	body.rdm-sidebar-layout .elementor-location-header .elementor-nav-menu--dropdown li.menu-item.rdm-menu-child > a.elementor-item {
		display: flex;
		align-items: center;
		min-height: 44px;
		padding: 4px 0;
		font-size: 22px;
		font-weight: 400;
		letter-spacing: -.01em;
		color: var(--rdm-ink);
		background: transparent;
		border: 0;
	}
	body.rdm-sidebar-layout .elementor-location-header .elementor-nav-menu--dropdown li.menu-item > a.elementor-item.elementor-item-active,
	body.rdm-sidebar-layout .elementor-location-header .elementor-nav-menu--dropdown li.menu-item > a.elementor-item:hover { color: var(--rdm-accent-text); background: transparent; }
}

/* =========================================================================
   Schede dei Loop atomici (classi globali rm-*)
   ========================================================================= */
.rm-card:not(:has(img))::before {
	content: "";
	display: block;
	aspect-ratio: 3 / 2;
	background: var(--rdm-line);
}
.rm-card:focus-visible { outline: 2px solid var(--rdm-accent-text); outline-offset: 4px; }
.rm-card:hover .rm-card-title { color: var(--rdm-accent-text); }
.rm-card-title { transition: color .25s var(--rdm-ease); }
/* "Altri lavori" sparisce se non ci sono altri lavori da mostrare. */
.rm-related:not(:has(.rm-card)) { display: none; }

/* Superfici del browser */
body.rdm-sidebar-layout ::selection { background: rgba(200, 160, 60, .32); color: inherit; }
body.rdm-sidebar-layout a:focus-visible,
body.rdm-sidebar-layout button:focus-visible { outline: 2px solid var(--rdm-accent-text); outline-offset: 3px; }

/* =========================================================================
   Elementi comuni
   ========================================================================= */
.rdm-badge {
	position: absolute;
	inset-block-start: .6rem;
	inset-inline-start: .6rem;
	z-index: 2;
	padding: .2em .6em;
	font-size: .7rem;
	font-weight: 600;
	letter-spacing: .06em;
	text-transform: uppercase;
	line-height: 1.4;
	color: #fff;
	background: rgba(0, 0, 0, .6);
	border-radius: 2px;
	pointer-events: none;
}

.rdm-placeholder {
	padding: 1.5rem;
	border: 1px dashed #c4c4c4;
	color: var(--rdm-muted);
	font-size: .875rem;
	text-align: center;
	background: #fafafa;
}

/* =========================================================================
   Gallery
   ========================================================================= */
.rdm-gallery {
	--rdm-cols: 3;
	--rdm-gap: 6px;
	--rdm-row-h: 280px;
	--rdm-ratio: 3/2;
	--rdm-radius: 0px;
	margin: 0;
}
.rdm-gallery__item {
	position: relative;
	margin: 0;
	overflow: hidden;
	border-radius: var(--rdm-radius);
}
.rdm-gallery__link {
	display: block;
	width: 100%;
	height: 100%;
	padding: 0;
	border: 0;
	background: #eee;
	cursor: zoom-in;
	position: relative;
}
.rdm-gallery--360 .rdm-gallery__link { cursor: pointer; }
.rdm-gallery__img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .5s ease, opacity .3s ease;
}
.rdm-hover-dim .rdm-gallery__link:hover .rdm-gallery__img,
.rdm-gallery__link:focus-visible .rdm-gallery__img { opacity: .85; }
.rdm-hover-zoom .rdm-gallery__link:hover .rdm-gallery__img { transform: scale(1.04); }
.rdm-gallery__link:focus-visible { outline: 2px solid var(--rdm-accent); outline-offset: 2px; }
.rdm-gallery__caption {
	padding: .4rem 0 0;
	font-size: .8125rem;
	color: var(--rdm-muted);
}

/* Giustificata: righe ad altezza costante, larghezza proporzionale (--w/--h impostati per foto). */
.rdm-gallery--justified {
	display: flex;
	flex-wrap: wrap;
	gap: var(--rdm-gap);
}
.rdm-gallery--justified::after {
	content: "";
	flex-grow: 999999;
}
.rdm-gallery--justified .rdm-gallery__item {
	flex-grow: calc(var(--w) / var(--h) * 100);
	flex-basis: calc(var(--rdm-row-h) * var(--w) / var(--h));
}
.rdm-gallery--justified .rdm-gallery__img { aspect-ratio: var(--w) / var(--h); height: auto; }
.rdm-gallery--justified .rdm-gallery__caption { display: none; }

/* Griglia regolare */
.rdm-gallery--grid {
	display: grid;
	grid-template-columns: repeat(var(--rdm-cols), minmax(0, 1fr));
	gap: var(--rdm-gap);
}
.rdm-gallery--grid .rdm-gallery__link { aspect-ratio: var(--rdm-ratio); height: auto; }

/* Masonry (colonne CSS) */
.rdm-gallery--masonry {
	columns: var(--rdm-cols);
	column-gap: var(--rdm-gap);
}
.rdm-gallery--masonry .rdm-gallery__item {
	break-inside: avoid;
	margin-block-end: var(--rdm-gap);
}
.rdm-gallery--masonry .rdm-gallery__img { height: auto; aspect-ratio: var(--w) / var(--h); }

@media (max-width: 767px) {
	.rdm-gallery--justified .rdm-gallery__item { flex-basis: calc(var(--rdm-row-h) * var(--w) / var(--h) * .8); }
}

/* =========================================================================
   Griglia portfolio
   ========================================================================= */
.rdm-portfolio {
	--rdm-cols: 3;
	--rdm-gap: 0px;
	--rdm-radius: 0px;
	--rdm-overlay: rgba(0, 0, 0, .45);
	--rdm-filter-color: var(--rdm-muted);
}
.rdm-portfolio__grid {
	display: grid;
	grid-template-columns: repeat(var(--rdm-cols), minmax(0, 1fr));
	gap: var(--rdm-gap);
}
.rdm-card { position: relative; min-width: 0; }
.rdm-card[hidden] { display: none; }
.rdm-card__link {
	display: block;
	color: inherit;
	text-decoration: none;
}
.rdm-card__media {
	position: relative;
	overflow: hidden;
	aspect-ratio: var(--rdm-card-ratio, 3/2);
	background: #e6e6e6;
	border-radius: var(--rdm-radius);
}
.rdm-card__img,
.rdm-card__noimg {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .6s ease;
}
.rdm-zoom-yes .rdm-card__link:hover .rdm-card__img { transform: scale(1.05); }
.rdm-card__title {
	margin: 0;
	font-size: 1.125rem;
	line-height: 1.25;
}
.rdm-card__terms {
	margin: .25rem 0 0;
	font-size: .8125rem;
	opacity: .8;
}

/* Stile "sotto" */
.rdm-portfolio--below .rdm-card__body { padding: .75rem 0 1rem; }

/* Stile "overlay": titolo sopra l'immagine al passaggio (sempre visibile su touch) */
.rdm-portfolio--overlay .rdm-card__body {
	position: absolute;
	inset: 0;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	padding: 1.25rem;
	color: #fff;
	background: linear-gradient(to top, var(--rdm-overlay), transparent 70%);
	border-radius: var(--rdm-radius);
	opacity: 0;
	transition: opacity .3s ease;
	pointer-events: none;
}
.rdm-portfolio--overlay .rdm-card__title { color: #fff; }
.rdm-portfolio--overlay .rdm-card__link:hover .rdm-card__body,
.rdm-portfolio--overlay .rdm-card__link:focus-visible .rdm-card__body { opacity: 1; }
@media (hover: none) {
	.rdm-portfolio--overlay .rdm-card__body { opacity: 1; }
}
.rdm-card__link:focus-visible { outline: 2px solid var(--rdm-accent); outline-offset: 2px; }

/* Filtri */
.rdm-filter {
	display: flex;
	flex-wrap: wrap;
	gap: .25rem 1.25rem;
	margin-block-end: 1.25rem;
}
.rdm-filter__btn {
	padding: .25rem 0;
	border: 0;
	border-block-end: 1px solid transparent;
	border-radius: 0;
	background: none;
	color: var(--rdm-filter-color);
	font: inherit;
	font-size: .875rem;
	cursor: pointer;
}
.rdm-filter__btn:hover,
.rdm-filter__btn:focus { background: none; color: var(--rdm-ink); }
.rdm-filter__btn.is-active { color: var(--rdm-ink); border-block-end-color: var(--rdm-accent); }

/* Paginazione */
.rdm-pagination {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: .5rem;
	margin-block-start: 2rem;
	font-size: .9375rem;
}
.rdm-pagination .page-numbers {
	min-width: 2.25em;
	padding: .3em .6em;
	text-align: center;
	color: var(--rdm-filter-color);
	text-decoration: none;
}
.rdm-pagination .page-numbers.current { color: var(--rdm-ink); border-block-end: 1px solid var(--rdm-accent); }

/* =========================================================================
   Player
   ========================================================================= */
.rdm-player {
	--rdm-radius: 0px;
	--rdm-max-h: none;
	position: relative;
	width: 100%;
	aspect-ratio: var(--rdm-aspect, 16/9);
	max-height: var(--rdm-max-h);
	overflow: hidden;
	background: #000;
	border-radius: var(--rdm-radius);
}
.rdm-player__frame,
.rdm-player__video,
.rdm-player__poster {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
}
.rdm-player__video { object-fit: contain; background: #000; }
.rdm-player__poster {
	display: grid;
	place-items: center;
	padding: 0;
	background: #111;
	color: #fff;
	cursor: pointer;
}
.rdm-player__cover {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	opacity: .75;
	transition: opacity .3s ease;
}
.rdm-player__poster:hover .rdm-player__cover { opacity: .6; }
.rdm-player__play {
	position: relative;
	display: inline-flex;
	flex-direction: column;
	align-items: center;
	gap: 12px;
	color: #fff;
	font-size: .8125rem;
	font-weight: 500;
	letter-spacing: .08em;
	text-transform: uppercase;
}
.rdm-player__play svg {
	box-sizing: border-box;
	width: 68px;
	height: 68px;
	padding: 22px 20px 22px 24px;
	border-radius: 50%;
	background: rgba(255, 255, 255, .94);
	color: var(--rdm-ink);
	box-shadow: 0 12px 32px rgba(0, 0, 0, .35);
	transition: transform .4s var(--rdm-ease);
}
.rdm-player__poster:hover .rdm-player__play svg { transform: scale(1.07); }
.rdm-player__poster:focus-visible .rdm-player__play svg { outline: 2px solid #fff; outline-offset: 4px; }
.rdm-player__notice {
	position: absolute;
	inset-inline: 1rem;
	inset-block-end: .75rem;
	font-size: .75rem;
	opacity: .8;
	text-align: center;
}
.rdm-player__fs {
	position: absolute;
	inset-block-start: .6rem;
	inset-inline-end: .6rem;
	z-index: 3;
	display: grid;
	place-items: center;
	width: 2.25rem;
	height: 2.25rem;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: rgba(0, 0, 0, .55);
	color: #fff;
	cursor: pointer;
	opacity: .8;
}
.rdm-player__fs:hover,
.rdm-player__fs:focus-visible { opacity: 1; background: rgba(0, 0, 0, .8); }
.rdm-player--file .rdm-player__fs { display: none; }
.rdm-player:fullscreen { max-height: none; border-radius: 0; aspect-ratio: auto; }

/* =========================================================================
   Viewer 360 (modale)
   ========================================================================= */
.rdm-pano-modal {
	position: fixed;
	inset: 0;
	z-index: 99999;
	display: flex;
	flex-direction: column;
	background: #000;
	color: #fff;
}
.rdm-pano-modal[hidden] { display: none; }
.rdm-pano-modal__bar {
	display: flex;
	align-items: center;
	gap: .5rem;
	padding: .5rem .75rem;
	font-size: .875rem;
}
.rdm-pano-modal__title { flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rdm-pano-modal__btn {
	display: grid;
	place-items: center;
	width: 2.5rem;
	height: 2.5rem;
	padding: 0;
	border: 1px solid rgba(255, 255, 255, .25);
	border-radius: 50%;
	background: transparent;
	color: #fff;
	font-size: 1.25rem;
	line-height: 1;
	cursor: pointer;
}
.rdm-pano-modal__btn:hover,
.rdm-pano-modal__btn:focus-visible { background: rgba(255, 255, 255, .15); color: #fff; }
.rdm-pano-modal__viewer { position: relative; flex: 1; }
.rdm-pano-modal__status {
	position: absolute;
	inset: 0;
	display: grid;
	place-items: center;
	font-size: .875rem;
	opacity: .8;
}
html.rdm-no-scroll { overflow: hidden; }

/* =========================================================================
   Menu categorie
   ========================================================================= */
.rdm-catmenu {
	--rdm-l1: var(--rdm-ink);
	--rdm-l2: var(--rdm-muted);
	--rdm-group-gap: 1.25rem;
	--rdm-item-gap: .35rem;
	position: relative;
}
.rdm-catmenu__list,
.rdm-catmenu__sub {
	margin: 0;
	padding: 0;
	list-style: none;
}
.rdm-catmenu__item--l1 + .rdm-catmenu__item--l1 { margin-block-start: var(--rdm-group-gap); }
.rdm-catmenu__sub { margin-block-start: var(--rdm-item-gap); }
.rdm-catmenu__sub > li + li { margin-block-start: var(--rdm-item-gap); }
.rdm-catmenu__link {
	display: inline-block;
	color: var(--rdm-l2);
	font-size: .875rem;
	line-height: 1.4;
	text-decoration: none;
	transition: color .2s ease;
}
.rdm-catmenu__item--l1 > .rdm-catmenu__link {
	color: var(--rdm-l1);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .04em;
}
.rdm-catmenu__item--extra { margin-block-start: var(--rdm-group-gap); }
a.rdm-catmenu__link:hover,
a.rdm-catmenu__link:focus-visible,
.rdm-catmenu .is-current > .rdm-catmenu__link { color: var(--rdm-accent); }
.rdm-catmenu__toggle { display: none; }

/* Toggle su schermi piccoli */
@media (max-width: 1024px) {
	.rdm-catmenu--toggle-tablet .rdm-catmenu__toggle { display: inline-flex; }
	.rdm-catmenu--toggle-tablet .rdm-catmenu__list { display: none; }
	.rdm-catmenu--toggle-tablet.is-open .rdm-catmenu__list { display: block; }
}
@media (max-width: 767px) {
	.rdm-catmenu--toggle-mobile .rdm-catmenu__toggle { display: inline-flex; }
	.rdm-catmenu--toggle-mobile .rdm-catmenu__list { display: none; }
	.rdm-catmenu--toggle-mobile.is-open .rdm-catmenu__list { display: block; }
}
.rdm-catmenu__toggle {
	align-items: center;
	gap: .5rem;
	padding: .4rem .2rem;
	border: 0;
	background: none;
	color: var(--rdm-l1);
	font: inherit;
	font-size: .8125rem;
	font-weight: 600;
	letter-spacing: .08em;
	text-transform: uppercase;
	cursor: pointer;
}
.rdm-catmenu__toggle:hover,
.rdm-catmenu__toggle:focus { background: none; color: var(--rdm-accent); }
.rdm-catmenu__bars,
.rdm-catmenu__bars::before,
.rdm-catmenu__bars::after {
	display: block;
	width: 18px;
	height: 2px;
	background: currentColor;
	transition: transform .25s ease, opacity .25s ease;
}
.rdm-catmenu__bars { position: relative; }
.rdm-catmenu__bars::before,
.rdm-catmenu__bars::after { content: ""; position: absolute; left: 0; }
.rdm-catmenu__bars::before { top: -6px; }
.rdm-catmenu__bars::after { top: 6px; }
.rdm-catmenu.is-open .rdm-catmenu__bars { background: transparent; }
.rdm-catmenu.is-open .rdm-catmenu__bars::before { transform: translateY(6px) rotate(45deg); }
.rdm-catmenu.is-open .rdm-catmenu__bars::after { transform: translateY(-6px) rotate(-45deg); }

@media (max-width: 1024px) {
	.rdm-catmenu.is-open .rdm-catmenu__list {
		position: absolute;
		inset-inline-end: 0;
		inset-block-start: 100%;
		min-width: min(80vw, 280px);
		max-height: 75vh;
		overflow-y: auto;
		padding: 1.25rem 1.5rem;
		background: #fff;
		box-shadow: 0 12px 32px rgba(0, 0, 0, .12);
		text-align: start;
		z-index: 50;
	}
}

@media (prefers-reduced-motion: reduce) {
	.rdm-gallery__img,
	.rdm-card__img,
	.rdm-card__body,
	.rdm-player__cover { transition: none; }
}

/* Footer del template: niente margine extra sotto il paragrafo. */
footer .elementor-widget-text-editor p:last-child { margin-block-end: 0; }

/* Gallery / player inseriti nel contenuto (widget "Contenuto articolo") */
.rdm-single-media { margin-block-end: 2rem; }

/* Testo descrittivo del contenuto: colonna leggibile allineata ai titoli, media a tutta larghezza */
.elementor-widget-theme-post-content > :not(.rdm-single-media):not(.elementor-widget-container),
.elementor-widget-theme-post-content > .elementor-widget-container > :not(.rdm-single-media) {
	max-width: 68ch;
	margin-inline: 0;
	padding-inline: 32px;
	box-sizing: content-box;
	font-size: 1rem;
	line-height: 1.7;
	color: #333;
}
@media (max-width: 767px) {
	.elementor-widget-theme-post-content > :not(.rdm-single-media):not(.elementor-widget-container),
	.elementor-widget-theme-post-content > .elementor-widget-container > :not(.rdm-single-media) { padding-inline: 16px; }
}
.rdm-single-media .rdm-player { max-height: calc(100dvh - 160px); }
.rdm-single-media .rdm-gallery { padding-inline: 32px; }
@media (max-width: 767px) { .rdm-single-media .rdm-gallery { padding-inline: 0; } }
