/* Impostazioni Generali */
* {
		margin: 0;
		padding: 0;
		box-sizing: border-box;
}

/* Tipografia */

/* Paragrafi di testo */
p {
	text-align: justify;
}

/* Titoli */
/*
h2.indentato {
	text-indent: 0.5em;
  line-height: 30px;
	margin-top: -20px;
}

h3.indentato {
	text-indent: 0.5em;
  line-height: 20px;
	margin-top: -20px;
}
*/

/* HEADER /*

/* link menu */
.nv-nav-wrap a {
		font-size: 0.9em;
		font-weight: 500;
}


/* icona ricerca */
@media screen and (min-width: 768px) {
		.menu-item-nav-search {
				padding-left: 15px;
		}
}
@media screen and (max-width: 767px) {
		.menu-item-nav-search {
				/* padding-left: 10px; */
				padding-left: 5px;
		}
}

/* MAIN CSS */

body {
		font-family: 'EB Garamond', serif;
		color: #333333;
		overflow-x: hidden;
		background-color: #f5f5f5;
}

h1, h2, h3, h4, h5, h6 {
		font-family: 'EB Garamond', serif;
		font-weight: 700;
}

a {
		text-decoration: none;
		color: inherit;
		transition: color 0.3s ease;
}

a:hover {
		color: #ff6b9d;
}

/*  Mod. Ivan */

/* Immagine Elenco Blog */

.nv-post-thumbnail-wrap.img-wrap a img {
		aspect-ratio: 4/3 !important;
		object-fit: contain !important;
		/* width: 100%;
	  height: auto; */
		/*border-color: black;
		border-style: solid;
		border-width: 2px;
		border-radius: 5px; */
}

@media screen and (min-width: 767px) {
		section {
				padding: 80px 0;
		}
}
/* mobile */
@media screen and (max-width: 767px) {
		section {
				padding: 0px 0;
		}
		
		.blog-entry-title { font-size: 1.6rem !important; }
		
		/* padding specifico per immagini */
		.wp-block-image { padding: 10px !important; }
}

/* Mod. Ivan: changed class name in order to not modify Elementor's container default behaviour */
.hero-container {
		width: 100%;
		max-width: 1200px;
		margin: 0 auto;
		padding: 0 20px;
}


/* Preloader */
.preloader {
		position: fixed;
		top: 0;
		left: 0;
		width: 100%;
		height: 100%;
		background-color: #003366;
		display: flex;
		justify-content: center;
		align-items: center;
		z-index: 9999;
		transition: opacity 0.8s ease-out;
}

.preloader .text {
		color: #ffffff;
		font-family: 'EB Garamond', serif;
		font-size: 2rem;
		position: relative;
}

.preloader .text::after {
		content: '';
		position: absolute;
		top: 0;
		right: -10px;
		width: 2px;
		height: 100%;
		background-color: #ffffff;
		animation: blink 0.7s infinite;
}

/* animazione preloader */
@keyframes blink {
		0%, 100% { opacity: 1; }
		50% { opacity: 0; }
}

/* Preloader per dispositivi mobili */
@media (max-width: 768px) {
		.preloader .text {
				font-size: 1.6rem;
		}
}

@media (max-width: 480px) {
		.preloader .text {
				font-size: 1.4rem;
		}
}

/* Narrative Paths Canvas */
#narrative-paths {
		position: fixed;
		top: 0;
		left: 0;
		width: 100%;
		height: 100%;
		z-index: -1;
		background-color: #00102f;
		opacity: 0;
		transition: opacity 1s ease-in;
}

/* Particles Canvas for Hero - Stars */
#particles-canvas {
		position: absolute;
		top: 0;
		left: 0;
		width: 100%;
		height: 100%;
		z-index: 1;
		pointer-events: none;
}


/* Logo testuale e animazione (Caterina Arnoldi Scrive) */
.header-logo-container {
		display: flex;
		justify-content: space-between;
		align-items: center;
		max-width: 1400px;
		margin: 0 auto;
		padding: 0 2rem;
		/* transition: opacity 1s ease-in, background-color 0.7s ease, box-shadow 0.7s ease, padding 0.7s ease; */
}

.logo {
		/* font-family: 'EB Garamond', serif; */
		font-family: 'Playfair Display', serif;
		font-size: 1.2rem;
		font-weight: 700;
		color: #ffffff;
		text-decoration: none;
		letter-spacing: 1px;
		position: relative;
		overflow: hidden;
		display: inline-block;
		white-space: nowrap;
		/* margin-top: -30px; */ /* mod. IVAN */
}

/* Logo testuale per dispositivi mobili */
@media (max-width: 768px) {
		.logo {
				font-size: 0.8rem;
				/* margin-top: -10px; */
		}
		
	.header-logo-container {
		display: flex;
		justify-content: space-between;
		/*align-items: center;*/
		align-items: baseline;
		/* max-width: 1400px; */
		margin: 0 auto;
		padding: 0px;
	}
}

.logo .letter {
		display: inline-block;
		animation: colorCycle 8s infinite;
		transform-origin: bottom center;
}

/* animazione logo scritta header */
.logo .letter:nth-child(2) { animation-delay: 0.1s; }
.logo .letter:nth-child(3) { animation-delay: 0.2s; }
.logo .letter:nth-child(4) { animation-delay: 0.3s; }
.logo .letter:nth-child(5) { animation-delay: 0.4s; }
.logo .letter:nth-child(6) { animation-delay: 0.5s; }
.logo .letter:nth-child(7) { animation-delay: 0.6s; }
.logo .letter:nth-child(8) { animation-delay: 0.7s; }
.logo .letter:nth-child(9) { animation-delay: 0.8s; }
.logo .letter:nth-child(10) { animation-delay: 0.9s; }
.logo .letter:nth-child(11) { animation-delay: 1.0s; }
.logo .letter:nth-child(12) { animation-delay: 1.1s; }
.logo .letter:nth-child(13) { animation-delay: 1.2s; }
.logo .letter:nth-child(14) { animation-delay: 1.3s; }
.logo .letter:nth-child(15) { animation-delay: 1.4s; }
.logo .letter:nth-child(16) { animation-delay: 1.5s; }
.logo .letter:nth-child(17) { animation-delay: 1.6s; }
.logo .letter:nth-child(18) { animation-delay: 1.7s; }
.logo .letter:nth-child(19) { animation-delay: 1.8s; }
.logo .letter:nth-child(20) { animation-delay: 1.9s; }
.logo .letter:nth-child(21) { animation-delay: 2.0s; }
.logo .letter:nth-child(22) { animation-delay: 2.1s; }
.logo .letter:nth-child(23) { animation-delay: 2.2s; }

@keyframes colorCycle {
		0%, 100% { color: #ffffff; }
		20% { color: #ff6b9d; }
		40% { color: #ffa9d1; }
		60% { color: #fff0f5; }
		80% { color: #4a9eff; }
}
        
/* Hero Section - Stile Erikama */
#home {
		height: 100vh;
		padding: 0;
		position: relative;
		background-color: transparent;
		display: flex;
		align-items: center;
		justify-content: center;
		text-align: center;
		overflow: hidden;
		/* padding-top: 80px; */ padding-top: 0px;
		opacity: 0;
		transition: opacity 1.2s ease-in;
}

.hero-bg {
		position: absolute;
		top: 0;
		left: 0;
		width: 100%;
		height: 100%;
		z-index: -2;
}

.hero-content {
		max-width: 900px;
		z-index: 2;
		margin: 0 auto;
		text-align: center;
		padding: 20px;
}

/* Typing Effect Styles */
.hero-title {
		/* font-family: 'Playfair Display','EB Garamond', serif; */
		font-family: 'Playfair Display', serif;
		font-size: clamp(2.2rem, 5vw, 3.5rem);
		font-weight: 700;
		line-height: 1.1;
		margin-bottom: 2rem;
		margin-top: 3rem;
		letter-spacing: 2px;
		text-align: center;
		background: linear-gradient(45deg, #ff69b4, #ffb6c1, #ff80ab, #ffc0cb, #ff69b4);
		background-size: 200% 200%;
		-webkit-background-clip: text;
		-webkit-text-fill-color: transparent;
		background-clip: text;
		animation: gradientFlow 8s ease infinite;
		min-height: 1.2em;
}

.hero-title .typing-cursor {
		display: inline-block;
		width: 3px;
		height: 1em;
		background: linear-gradient(45deg, #ff69b4, #ffb6c1);
		margin-left: 5px;
		animation: cursorBlink 0.8s infinite;
		vertical-align: middle;
}

/* animazioni Hero */
@keyframes cursorBlink {
		0%, 50% { opacity: 1; }
		51%, 100% { opacity: 0; }
}

@keyframes gradientFlow {
		0% { background-position: 0% 50%; }
		50% { background-position: 100% 50%; }
		100% { background-position: 0% 50%; }
}

@keyframes fadeInUp {
		0% {
				opacity: 0;
				transform: translateY(30px);
		}
		100% {
				opacity: 1;
				transform: translateY(0);
		}
}

.hero-subtitle {
		font-size: clamp(1.1rem, 2vw, 1.5rem); /* 1.2rem, 2vw, 1.5rem */
		font-weight: 300;
		max-width: 700px;
		margin: 0 auto 3rem;
		color: #ffffff !important;
		letter-spacing: 1px;
		opacity: 0;
		transform: translateY(30px);
		animation: fadeInUp 1s forwards 2.5s;
		text-align: center;
		line-height: 1.8;
}

/* Hero - versione per dispositivi mobili */
@media (max-width: 768px) {
		
		/* Mod. Ivan */
		#home {
			height: 80vh;
		}
		
		.hero-container {
			padding: 0 0px !important;
		}
		.hero-content {
				padding: 0px !important;
		}
		/*
		.hero-subtitle {
				font-size: 1.1rem !important;
		}
		*/
		.hero-title {
				/* font-size: 1.4rem !important; */
				font-size: clamp(2.2rem, 5vw, 3.5rem);
				line-height: 1 !important;
				letter-spacing: 1px;
				min-height: 1.4em;
		}	
}

@media (max-width: 480px) {
		.hero-title {
			font-size: 1.8rem;
		}

		.hero-subtitle {
				font-size: 1rem;
		}

		.section-title {
			font-size: 1.8rem;
		}

}

/* Styling Pulsanti */

/* PULSANTE PRINCIPALE */
.scroll-btn {
		display: inline-block;
		background: linear-gradient(45deg, #003366, #ff6b9d);
		padding: 1rem 2.5rem;
		color: #ffffff;
		text-decoration: none;
		text-transform: uppercase;
		letter-spacing: 2px;
		font-size: 0.9rem;
		font-weight: 600;
		border-radius: 50px;
		transition: all 0.3s ease;
		margin-top: 2rem;
		opacity: 0;
		transform: translateY(30px);
		animation: fadeInUp 1s forwards 2s; /* Mod */
		position: relative;
		overflow: hidden;
		box-shadow: 0 5px 15px rgba(0, 51, 102, 0.4);
		text-align: center;
}

.scroll-btn:hover
{
		transform: translateY(-5px);
		box-shadow: 0 8px 25px rgba(0, 51, 102, 0.6);
		color: #ffffff;
}

.scroll-btn::before
{
		content: '';
		position: absolute;
		top: 0;
		left: 0;
		width: 100%;
		height: 100%;
		background: linear-gradient(45deg, #ff6b9d, #003366);
		opacity: 0;
		transition: opacity 0.5s ease;
}

.scroll-btn:hover::before {
		opacity: 1;
}

.scroll-btn span {
		position: relative;
		z-index: 1;
}

/* Pulsante Recensioni (Review) */
.o-review__footer_buttons {
		display: inline-block;
		/* background: linear-gradient(45deg, #003366, #ff6b9d); */
		padding: 1rem 2.5rem;
		color: #ffffff;
		text-decoration: none;
		text-transform: uppercase;
		letter-spacing: 2px;
		font-size: 0.9rem;
		font-weight: 600;
		border-radius: 50px;
		transition: all 0.3s ease;
		margin-top: 2rem;
		opacity: 1;
		/* transform: translateY(30px); */
		/* animation: fadeInUp 1s forwards 3s; */
		position: relative;
		overflow: hidden;
		/* box-shadow: 0 5px 15px rgba(0, 51, 102, 0.4); */
		text-align: center;
}
/*
.o-review__footer_buttons::before {
		opacity: 1;
}
*/
.o-review__footer_buttons a:hover
{
		transform: translateY(-5px);
		box-shadow: 0 6px 8px rgba(0, 51, 102, 0.6);
		color: #ffffff;
}

.o-review__footer_buttons a {
	color: #ffffff;
	/* background: transparent !important; */
	background: linear-gradient(45deg, #003366, #ff6b9d) !important;
	border-radius: 50px;
	z-index: 1000;
}


/* Citations Section */
.citations1 {
		background-color: #003366;
		color: #ffffff;
		overflow: hidden;
		position: relative;
		
		/* Mod. Ivan */
		padding: 550px 0;
}
.citations2 {
		background-color: #003366;
		color: #ffffff;
		overflow: hidden;
		position: relative;
		
		/* Mod. Ivan */
		padding: 500px 0;
}


.citations-bg {
		position: absolute;
		top: 0;
		left: 0;
		width: 100%;
		height: 100%;
		/*opacity: 0.1;/*
		/* Mod. Ivan */
		opacity: 1;
		z-index: 0;
}

.citations-content {
		position: relative;
		z-index: 1;
		display: flex;
		flex-wrap: wrap;
		justify-content: center;
		align-items: flex-start;
}

.citations-list {
		width: 50%;
		max-width: 500px;
		/* Mod. Ivan */
		margin-top: 100px;
}

.citation1 {
		margin-bottom: 30px;
		opacity: 0; /* inizialmente nascosto, viene impostato a 1 dallo script JS */
		transform: translateY(20px);
}

.citation2 {
		margin-bottom: 30px;
		opacity: 0; /* inizialmente nascosto, viene impostato a 1 dallo script JS */
		transform: translateY(20px);
}

.citation1 p {
		font-size: 1.1rem;
		line-height: 1.7;
		font-style: italic;
		margin-bottom: 15px;
}

.citation2 p {
		font-size: 1.1rem;
		line-height: 1.7;
		font-style: italic;
		margin-bottom: 15px;
}

.citation-title {
		font-size: 1.4rem;
		font-weight: 700;
		margin-bottom: 20px;
		color: #ff6b9d;
		text-align: left;
}

.citation-section-title {
		font-size: 1.1rem;
		font-weight: 700;
		color: #ffa9d1;
		margin-bottom: 10px;
		margin-top: 15px;
}

/* Slideshow Styles */
.book-slideshow {
		width: 45%;
		max-width: 400px;
		margin-right: 5%;
		position: relative;
		/*Mod. Ivan*/
		margin-top: 100px;
}

.slideshow-container {
		position: relative;
		width: 100%;
		aspect-ratio: 9/16;
}

.slide1 {
		position: absolute;
		top: 0;
		left: 0;
		width: 100%;
		height: 100%;
		display: flex;
		align-items: center;
		justify-content: center;
		opacity: 0;
		transition: opacity 1.5s ease-in-out;
}

.slide2 {
		position: absolute;
		top: 0;
		left: 0;
		width: 100%;
		height: 100%;
		display: flex;
		align-items: center;
		justify-content: center;
		opacity: 0;
		transition: opacity 1.5s ease-in-out;
}

.slide1.active {
		opacity: 1;
}

.slide2.active {
		opacity: 1;
}

/* Prima slide (copertina 9:16) - riempie tutto */
.slide1:first-child img {
		width: 100%;
		height: 100%;
		object-fit: cover;
		border-radius: 8px;
}

.slide2:first-child img {
		width: 100%;
		height: 100%;
		object-fit: cover;
		border-radius: 8px;
}

/* Altre slide (foto 3:4) - centrate con sfumatura bordi */
.slide1:not(:first-child) {
		padding: 20px 0;
}

.slide2:not(:first-child) {
		padding: 20px 0;
}

.slide1:not(:first-child) img {
		width: auto;
		height: auto;
		max-height: 90%;
		max-width: 100%;
		object-fit: contain;
		border-radius: 8px;
		mask-image: linear-gradient(to bottom, 
				transparent 0%, 
				black 5%, 
				black 95%, 
				transparent 100%);
		-webkit-mask-image: linear-gradient(to bottom, 
				transparent 0%, 
				black 5%, 
				black 95%, 
				transparent 100%);
}

.slide2:not(:first-child) img {
		width: auto;
		height: auto;
		max-height: 90%;
		max-width: 100%;
		object-fit: contain;
		border-radius: 8px;
		mask-image: linear-gradient(to bottom, 
				transparent 0%, 
				black 5%, 
				black 95%, 
				transparent 100%);
		-webkit-mask-image: linear-gradient(to bottom, 
				transparent 0%, 
				black 5%, 
				black 95%, 
				transparent 100%);
}

.slide1 img {
		box-shadow: 
				0 15px 40px rgba(0, 0, 0, 0.4),
				0 5px 15px rgba(0, 0, 0, 0.2);
}

.slide2 img {
		box-shadow: 
				0 15px 40px rgba(0, 0, 0, 0.4),
				0 5px 15px rgba(0, 0, 0, 0.2);
}

@media (max-width: 992px) {
		.book-cover, .book-slideshow {
				width: 100%;
				max-width: 350px;
				margin-right: 0;
				
				/* Mod. Ivan */
				/* margin-bottom: 30px; */
		}

		.citations-list {
				width: 100%;
				max-width: 600px;
				/* Mod. Ivan */
				margin-top: 0px;
		}

		.citations-content {
				flex-direction: column;
				align-items: center;
		}

}

@media (max-width: 767px) {
		
		/* Mod. Ivan */
		.citations1 {
			padding: 920px 0 !important;
			position: relative;
		}
		.citations2 {
			padding: 800px 0 !important;
			position: relative;
		}
	
		/* Mod. Ivan */
		.book-slideshow {
				margin-top: 20px;
		}
		      
		.slideshow-container {
				aspect-ratio: auto;
				min-height: auto;
				margin-bottom: 30px;
		}

		.slide1 {
				position: relative !important;
				display: none !important;
				height: auto;
				opacity: 1 !important;
		}
		
		.slide2 {
				position: relative !important;
				display: none !important;
				height: auto;
				opacity: 1 !important;
		}

		/*
		.slide1.active-slide {
				display: flex !important;
				opacity: 1 !important;
		}
		
		.slide2.active-slide {
				display: flex !important;
				opacity: 1 !important;
		}
		*/
		
		.slide1.active {
				display: flex !important;
				opacity: 1 !important;
		}
		
		.slide2.active {
				display: flex !important;
				opacity: 1 !important;
		}

		/* Prima slide (copertina) - più piccola su mobile */
		.slide1:first-child img {
				width: 80% !important;
				height: auto !important;
				max-height: none !important;
				margin: 20px;
		}

		.slide2:first-child img {
				width: 70% !important;
				height: auto !important;
				max-height: none !important;
				margin: 0 auto;
		}

	
		/* Altre slide - con padding */
		.slide1:not(:first-child) img {
				width: 85% !important;
				height: auto !important;
				max-height: none !important;
				margin: 20px auto;
				/*mask-image: none !important;
				-webkit-mask-image: none !important;*/
				mask-image: linear-gradient(to bottom, 
				transparent 0%, 
				black 5%, 
				black 95%, 
				transparent 100%);
				-webkit-mask-image: linear-gradient(to bottom, 
				transparent 0%, 
				black 5%, 
				black 95%, 
				transparent 100%);
		}
		
		.slide2:not(:first-child) img {
				width: 85% !important;
				height: auto !important;
				max-height: none !important;
				margin: 20px auto;
				/*mask-image: none !important;
				-webkit-mask-image: none !important;*/
				mask-image: linear-gradient(to bottom, 
				transparent 0%, 
				black 5%, 
				black 95%, 
				transparent 100%);
				-webkit-mask-image: linear-gradient(to bottom, 
				transparent 0%, 
				black 5%, 
				black 95%, 
				transparent 100%);
		}

}

/* Biografia */
/* desktop */
@media screen and (min-width: 768px) {
		.img_bio > figure {
				height: 500px !important;
		}
		.img_bio > figure > img {
				height: 500px !important;
		}
}
/* mobile */
@media screen and (max-width: 767px) {
		.img_bio > figure > img {
				height: 250px !important;
				margin: 0px;
				padding: 0px;
		}
		.img_bio > figure {
				height: 250px !important;
				margin: 0px;
				padding: 0px;
		}
}

/* Libri HP */
.wp-block-image.fixed-height a img {
		border-radius: 5px;
		box-shadow: 0 3px 6px rgba(0, 51, 102, 0.4) !important;
}

@media screen and (min-width: 768px) {
	 .wp-block-image.fixed-height a img {
			 width: 100%;
			 height: 400px !important;
		}

}


/* SPECIALI */
/* Recensioni e Valutazioni */
@media screen and (min-width: 768px) { /* desktop */
		.wp-block-themeisle-blocks-review.left { padding-left: 100px; padding-right: 100px; }
		.wp-block-themeisle-blocks-review.right { padding-left: 0px; padding-right: 200px; }
}
@media only screen and (min-device-width: 768px) and (max-device-width: 1024px) { /* tablet */
		.wp-block-themeisle-blocks-review.left { padding-left: 25px; padding-right: 25px; }
		.wp-block-themeisle-blocks-review.right { padding-left: 25px; padding-right: 25px; }
}
@media screen and (max-width: 767px) { /* mobile */
		.wp-block-themeisle-blocks-review.left { padding: 25px; }
		.wp-block-themeisle-blocks-review.right { padding: 25px; }	
}

/* rimozione del blocco "Feature" */ 
.o-review__left {display: none;}

/* rimozione della scritta "5 out of 5" */ 
.o-review__header_ratings span {display: none;}

/* BreadCrumbs */
.wp-block-breadcrumbs {font-size: 0.9em;}

/* FOOTER */

/* Bottom Footer - Copyright Informattion */
p.copyright {
		margin-top: 10px;
		text-align: center;
		font-size: 0.9em !important;
}
.copyright a.one { color: #ff6b9d; } /* rosa */
.copyright a.two { color: #4a9eff; } /* azzurro */

/* Footer About */
.footer-content {
		flex-direction: column;
		text-align: center;
		display: flex;
		flex-wrap: wrap;
		justify-content: space-between;
}        

.footer-about p {
		font-style: italic;
		color: rgba(255, 255, 255, 0.8);
		position: relative;
		display: inline-block;
}

.footer-about p::before {
		content: '✦';
		margin-right: 8px;
		color: #ff6b9d; /* pink */
		animation: starTwinkle 2s ease-in-out infinite;
}

.footer-about p::after {
		content: '✦';
		margin-left: 8px;
		color: #4a9eff; /* light blue */
		animation: starTwinkle 2s ease-in-out infinite 0.5s;
}

.footer-logo {
		 font-family: 'Playfair Display', serif;
		 font-size: 1.5rem;
		 font-weight: 700;
		 /* margin-bottom: 15px; */
		 background: linear-gradient(135deg, #fff 0%, #ff6b9d 50%, #4a9eff 100%);
		 background-size: 200% 200%;
		 -webkit-background-clip: text;
		 -webkit-text-fill-color: transparent;
		 background-clip: text;
		 animation: footerGradient 4s ease infinite;
}

/* gestione animazioni */
@keyframes footerGradient {
		0%, 100% { background-position: 0% 50%; }
		50% { background-position: 100% 50%; }
}

@keyframes starTwinkle {
		0%, 100% { opacity: 0.5; transform: scale(1); }
		50% { opacity: 1; transform: scale(1.2); }
}

/* Footer centrale: titoli Libri - Categorie */
h5.has-nv-dark-bg-color { padding: 0px !important; }

/* versione footer tablet */
@media only screen and (min-device-width: 768px) and (max-device-width: 1024px) { /* tablet */
		h5.has-nv-dark-bg-color { text-align: center !important; padding-top: 30px !important; }
		ul.has-background { text-align: center !important; }
}

/* versione footer mobile */
@media screen and (max-width: 767px) {
		h5.has-nv-dark-bg-color { text-align: center !important; padding-top: 30px !important; }
		ul.has-background { text-align: center !important; }
}


/* versione desktop */
@media screen and (min-width: 768px) {
		.wp-block-video video {
			height: 400px !important;
		}
}