/* 
Theme Name: #cuoriconnessi
Theme URI: https://www.cuoriconnessi.it
Description: Il tema ufficiale per il progetto #cuoriconnessi.
Author: PubliOne
Author URI: https://publione.it
Template: hello-elementor
*/


/* -------------------------------------------*/
/* THEME GLOBAL VARS
/* -------------------------------------------*/
body.elementor-default {
	--cc-container-padding: 80px;
	--cc-grid-spacing: 30px;
	--cc-stroke-width: 1px;
}
@media (max-width: 1000px) {
	body.elementor-default {
		--cc-container-padding: 60px;
	}
}
@media (max-width: 640px) {
	body.elementor-default {
		--cc-container-padding: 40px;
		--cc-column-spacing: 20px;
	}
}


/* -------------------------------------------*/
/* ELEMENTOR CUSTOM COLORS (NAMED)
/* -------------------------------------------*/
body.elementor-default {
	--cc-color-orange:         var(--e-global-color-a499b73);
	--cc-color-blue:           var(--e-global-color-020cf56);
	--cc-color-navy:           var(--e-global-color-f9f940b);
	--cc-color-white:          var(--e-global-color-7dcd9c5);
	--cc-color-white-60p:      var(--e-global-color-a077b9e);
	--cc-color-white-0p:       var(--e-global-color-44a29b7);
	--cc-color-background-100: var(--e-global-color-7d9382d6);
	--cc-color-background-200: var(--e-global-color-3a89f3a);
	--cc-color-black:          var(--e-global-color-6186cf3);
	--cc-color-gray-900:       var(--e-global-color-4830a7a);
	--cc-color-gray-800:       var(--e-global-color-42ce9cd);
	--cc-color-gray-700:       var(--e-global-color-b0492f7);
	--cc-color-gray-600:       var(--e-global-color-1d77edd);
	--cc-color-gray-500:       var(--e-global-color-052f135);
	--cc-color-gray-400:       var(--e-global-color-1a81980);
	--cc-color-gray-350:       var(--e-global-color-b14f7b5);
	--cc-color-gray-300:       var(--e-global-color-87e0685);
	--cc-color-gray-250:       var(--e-global-color-7fddf89);
	--cc-color-gray-200:       var(--e-global-color-76f60f1);
	--cc-color-gray-150:       var(--e-global-color-0639e01);
	--cc-color-gray-100:       var(--e-global-color-1e9d82d);
	--cc-color-success:        var(--e-global-color-74581f5);
	--cc-color-error:          var(--e-global-color-0b760f5);
}


/* -------------------------------------------*/
/* THEME RESET
/* -------------------------------------------*/
*, *::before, *::after {
	box-sizing: border-box;
}
* {
	margin: 0;
}
html, body {
	height: 100%;
	-webkit-text-size-adjust: none;
	text-size-adjust: none;
}
body {
	width: 100vw;
	overflow-x: hidden;
	-webkit-font-smoothing: antialiased;
	scroll-behavior: smooth;
}
html {
	overflow: hidden;
}
img, picture, video, canvas, svg {
	display: block;
	max-width: 100%;
}
input, button, textarea, select {
	font: inherit;
}
p, h1, h2, h3, h4, h5, h6 {
	overflow-wrap: break-word;
}
a {
	color: inherit;
}


/* -------------------------------------------*/
/* ELEMENTOR FIXES
/* -------------------------------------------*/

/* Make containers shrink to their size by default */
.e-container {
	--width: auto;
}

/* Vertical rhythm for consecutive paragraphs. */
.elementor-widget-text-editor p + p {
	margin-top: 1rem;
}


/* -------------------------------------------*/
/* ELEMENTOR ANIMATIONS
/* -------------------------------------------*/

/* Override Bounce animation with Reveal animation */
.elementor-element.bounceIn,
.elementor-element.bounceInUp,
.elementor-element.bounceInDown,
.elementor-element.bounceInLeft,
.elementor-element.bounceInRight {
    clip-path: polygon(0 0, 100% 0, 100% 100%, 0% 100%);
	animation-name: none;
}
.elementor-element.bounceIn.animated .elementor-widget-container,
.elementor-element.bounceInUp.animated .elementor-widget-container,
.elementor-element.bounceInDown.animated .elementor-widget-container,
.elementor-element.bounceInLeft.animated .elementor-widget-container,
.elementor-element.bounceInRight.animated .elementor-widget-container {
	animation-duration: inherit;
	animation-delay: inherit;
	animation-timing-function: cubic-bezier(0.25, 1, 0.5, 1);
}
.elementor-element.bounceIn.animated .elementor-widget-container,
.elementor-element.bounceInUp.animated .elementor-widget-container    { animation-name: revealInUp; }
.elementor-element.bounceInDown.animated .elementor-widget-container  { animation-name: revealInDown; }
.elementor-element.bounceInLeft.animated .elementor-widget-container  { animation-name: revealInLeft; }
.elementor-element.bounceInRight.animated .elementor-widget-container { animation-name: revealInRight; }
@keyframes revealInUp    { from { transform: translateY(100%); } }
@keyframes revealInDown  { from { transform: translateY(-100%); } }
@keyframes revealInLeft  { from { transform: translateX(100%); } }
@keyframes revealInRight { from { transform: translateX(-100%); } }


/* -------------------------------------------*/
/* ELEMENTOR TEXT EDITOR
/* -------------------------------------------*/

.elementor-widget-text-editor p a:hover {
	text-decoration: underline;
}
.elementor-widget-text-editor strong {
	font-weight: 600;
}


/* -------------------------------------------*/
/* ELEMENTOR BLOCKQUOTE
/* -------------------------------------------*/

.elementor-widget-theme-post-content .wp-block-quote::before,
.elementor-element.elementor-blockquote--skin-quotation .elementor-blockquote:before {
	content: "\201c";
    display: inline-block;
    position: absolute;
    bottom: 100%;
    right: 100%;
    margin-bottom: -0.5em;
    margin-right: -0.4em;
	font-family: var(--e-global-typography-primary-font-family);
    transform: rotate(180deg);
}
.elementor-element.elementor-blockquote--skin-quotation .elementor-blockquote .elementor-blockquote__content {
	position: relative;
}


/* -------------------------------------------*/
/* ELEMENTOR IMAGE
/* -------------------------------------------*/

/* Hide the overflow of the image container to allow ken burns-like effect. */
.elementor-widget-image .elementor-widget-container,
.elementor-widget-wp-widget-media_image .elementor-widget-container {
	overflow: hidden;
}

/* 
 * Element: 	Elementor WP Image
 * Class:		.object-fit [.cover] [.contain]
 * Description: Make image behave like a background.
 */
.elementor-widget-wp-widget-media_image.object-fit,
.elementor-widget-wp-widget-media_image.object-fit .elementor-widget-container {
	height: 100%;
}
.elementor-widget-wp-widget-media_image.object-fit img {
	height: 100% !important;
	object-fit: cover;
}
.elementor-widget-wp-widget-media_image.object-fit.contain img {
	object-fit: contain;
}


/* -------------------------------------------*/
/* ELEMENTOR BUTTON
/* -------------------------------------------*/

/* 
 * Element: 	Elementor Button
 * Description: Normalize button appearance.

.elementor-button,
.fea-submit-button {
	font-family: var( --e-global-typography-accent-font-family ), Sans-serif;
    font-weight: var( --e-global-typography-accent-font-weight );
    text-transform: var( --e-global-typography-accent-text-transform );
    line-height: var( --e-global-typography-accent-line-height );
    letter-spacing: var( --e-global-typography-accent-letter-spacing );
    background-color: var( --e-global-color-accent );
	transition: all 0.3s ease, transform 0.5s ease-in-out;
	cursor: pointer;
}
 */

/* 
 * Element: 	Elementor Button
 * Description: Align icon and text.
 */
.elementor-button .elementor-button-content-wrapper,
.elementor-form .elementor-button > span {
	align-items: center;
}
/* 
 * Element: 	Elementor Button
 * Description: Normalize display of icon.
 */
.elementor-button .elementor-button-icon {
	display: flex;
}
.elementor-button .elementor-button-icon > svg {
	--stroke-width: 3px;
	transform: scale(1.4);
}
/* 
 * Element: 	Elementor Button
 * Description: Fix vertical alignment of text when button is full-width and has an icon.
 */
@media (min-width: 400px) {
	.elementor-element.elementor-align-justify .elementor-button .elementor-button-icon.elementor-align-icon-left,
	.elementor-button-align-stretch .e-form__buttons .elementor-button-icon.elementor-align-icon-left {
		/* margin: 0 -1em 0 0; */
	}
	.elementor-element.elementor-align-justify .elementor-button .elementor-button-icon.elementor-align-icon-right,
	.elementor-button-align-stretch .e-form__buttons .elementor-button-icon.elementor-align-icon-right {
		/* margin: 0 0 0 -1em; */
	}
}
/* 
 * Element: 	Elementor Button
 * Class:		.align-start
 * Description: Button with an arrow or caret on the right side.
 */
.elementor-element.align-start .elementor-button-content-wrapper {
	justify-content: flex-start;
	text-align: left;
}
/* 
 * Element: 	Elementor Button
 * Class:		.arrow, .caret, [.ghost]
 * Description: Button with an arrow or caret on the right side.
 */
.elementor-widget-button.arrow .elementor-button-content-wrapper,
.elementor-widget-button.caret .elementor-button-content-wrapper {
	justify-content: flex-start;
}
.elementor-widget-button.arrow .elementor-button-text,
.elementor-widget-button.caret .elementor-button-text {
	flex-grow: 0;
	margin-right: 1em;
}
.elementor-widget-button.arrow .elementor-button-content-wrapper::after,
.elementor-widget-button.caret .elementor-button-content-wrapper::after {
	order: 99;
	width: 1.333em;
	height: 1.333em;
	margin-left: auto;
}
.elementor-widget-button.arrow .elementor-button-content-wrapper::after {
	content: url("data:image/svg+xml; utf8, %3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cdefs%3E%3Cstyle%3E.a%7Bfill:none;opacity:0;%7D.b%7Bfill:none;stroke:%23fff;stroke-linecap:round;stroke-linejoin:round;stroke-width:2px;%7D%3C/style%3E%3C/defs%3E%3Cg transform='translate(-1706 2824)'%3E%3Crect class='a' width='32' height='32' transform='translate(1706 -2824)'/%3E%3Cpath class='b' d='M12,3V21m0,0L5,14m7,7,7-7' transform='translate(1710.5 -2795.5) rotate(-90)'/%3E%3C/g%3E%3C/svg%3E");
}
.elementor-widget-button.caret .elementor-button-content-wrapper::after {
	content: url("data:image/svg+xml; utf8, %3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cdefs%3E%3Cstyle%3E.a%7Bfill:none;opacity:0;%7D.b%7Bfill:none;stroke:%23fff;stroke-linecap:round;stroke-linejoin:round;stroke-width:2px;%7D%3C/style%3E%3C/defs%3E%3Cg transform='translate(-1706 2824)'%3E%3Crect class='a' width='32' height='32' transform='translate(1706 -2824)'/%3E%3Cpath class='b' d='M12,21m0,0L5,14m7,7,7-7' transform='translate(1705.5 -2795.5) rotate(-90)'/%3E%3C/g%3E%3C/svg%3E");
}
.elementor-widget-button.arrow.down .elementor-button-content-wrapper::after,
.elementor-widget-button.caret.down .elementor-button-content-wrapper::after {
	transform: rotate(90deg);
}
.elementor-widget-button.ghost.arrow a:hover .elementor-button-content-wrapper::after,
.elementor-widget-button.ghost.caret a:hover .elementor-button-content-wrapper::after {
	filter: invert(0.75);
}

/* -------------------------------------------*/
/* ELEMENTOR ICON
/* -------------------------------------------*/
.elementor-icon {
	display: block;
}
.elementor svg,
.elementor-icon-list-icon svg {
	--stroke-width: var(--cc-stroke-width);
	stroke-width: var(--stroke-width);
	stroke: currentcolor;
	transition: none;
}


/* -------------------------------------------*/
/* ELEMENTOR FORM
/* -------------------------------------------*/
.elementor-form {
	--accent-color: var(--cc-color-orange);
}
.elementor-element[accent-color="blue"] .elementor-form {
	--accent-color: var(--cc-color-blue);
}
.elementor-element[accent-color="navy"] .elementor-form {
	--accent-color: var(--cc-color-navy);
}


/* -------------------------------------------*/
/* CLASS: .button-dropdown
/* -------------------------------------------*/
/* A menu used in conjuction with a button to simulate a dropdown. */
.elementor-widget-nav-menu.button-dropdown {
}
.elementor-widget-nav-menu.button-dropdown ul,
.elementor-widget-nav-menu.button-dropdown ul li, 
.elementor-widget-nav-menu.button-dropdown ul li a {
	width: 100% !important;
}

/* -------------------------------------------*/
/* CLASS: .fill-available
/* -------------------------------------------*/
/* Expand image to fill the width of the container. */
.elementor-widget-image.fill-available img,
.elementor-widget-wp-widget-media_image.fill-available img {
	max-width: -moz-available;          /* WebKit-based browsers will ignore this. */
    max-width: -webkit-fill-available;  /* Mozilla-based browsers will ignore this. */
    max-width: fill-available;
}

/* -------------------------------------------*/
/* CLASS: .fluid-padding
/* -------------------------------------------*/
.fluid-padding {
	padding: var(--cc-container-padding);
}
.fluid-padding-h {
	padding-left: var(--cc-container-padding);
	padding-right: var(--cc-container-padding);
}


/* 
 * Element: 	Elementor Form Hidden
 * Description: Hidden form elements.
 */
.elementor-form .hidden,
.acf-hidden {
	display: none;
}

/* 
 * Element: 	Elementor Form Disabled
 * Description: Disabled form elements.
 */
.elementor-form .disabled,
.fea-submit.disabled {
	pointer-events: none;
	opacity: 0.65;
}

/* 
 * Element: 	Elementor Form Message
 * Description: Normalize style of feedback messages.
 */
.elementor-message,
.elementor-element.elementor-message {
	display: flex;
    align-items: center;
	width: 100%;
    margin: 1em 0;
    padding: 1em 2em;
}
.elementor-element.elementor-message .elementor-heading-title {
	color: inherit;
}
.elementor-message.elementor-message-success {
	color: #fff;
	background: var(--e-global-color-74581f5);
}
.elementor-message.elementor-message-danger {
	color: #fff;
	background: var(--e-global-color-0b760f5);
}

/* 
 * Element: 	Elementor Form Field Textual
 * Description: Set color of textual inputs when focused.
 */
.elementor-element .elementor-form .elementor-field-group .elementor-field-textual:focus {
	border-color: var(--accent-color);
}

/* 
 * Element: 	Elementor Form Input (Hidden)
 * Description: Remove margin from hidden form elements.
 */
.elementor-element.elementor-widget-form .elementor-field-group.elementor-field-type-hidden {
	margin: 0;
}

/* 
 * Element: 	Elementor Form Input (Checkbox / Radio)
 * Description: Normalize appearance of checkbox and radio inputs.
 */
.elementor-form {
	accent-color: var(--accent-color);
}
.elementor-form .elementor-field-group input[type="checkbox"],
.elementor-form .elementor-field-group input[type="radio"] {
	width: 1.5em;
	height: 1.5em;
	margin-right: 0.5rem;
}
.elementor-form .elementor-field-group.elementor-field-type-checkbox label,
.elementor-form .elementor-field-group.elementor-field-type-acceptance label {
	font-weight: 400;
}
.elementor-form .elementor-field-subgroup .elementor-field-option,
.elementor-form .elementor-remember-me > label {
	display: flex;
	align-items: center;
}
.elementor-form .elementor-field-subgroup:not(.elementor-subgroup-inline) .elementor-field-option + .elementor-field-option {
	margin-top: 0.25rem;
}

/* 
 * Element: 	Elementor Login Form Remember Me
 * Description: Normalize appearance of "Remember me" checkbox.
 */
.elementor-element .elementor-form .elementor-field-group.elementor-field-type-checkbox.elementor-remember-me {
	padding: 1rem 0;
}
.elementor-element .elementor-form .elementor-field-group.elementor-field-type-checkbox.elementor-remember-me > label {
	padding-bottom: 0;
}

/* 
 * Element: 	Elementor Login Form Lost Password
 * Description: Normalize appearance of "Lost Password" link.
 */
.elementor-login .elementor-lost-password {
	font-weight: 600;
}

/* -------------------------------------------*/
/* ACF FRONTEND FORM (AREA DOCENTI)
/* -------------------------------------------*/

.acf-input input[type="text"],
.acf-input input[type="email"],
.acf-input input[type="password"] {
	width: 100%;
}
.acf-input input::placeholder {
	opacity: 0.65;
}
.acf-input .description {
    margin-top: 5px;
    color: var(--e-global-color-1d77edd);
	font-size: 14px;
}
.fea-submit-button {
	width: 100%;
	margin-top: 20px;
	color: #fff;
	border-color: transparent;
	background-color: var( --e-global-color-f9f940b );
	font-size: 1.125em;
}
.fea-submit-button:hover {
	background-color: var( --e-global-color-020cf56 );
}


/* -------------------------------------------*/
/* ELEMENTOR AUDIO PLAYER
/* -------------------------------------------*/

/* 
 * Element: 	Elementor Audio Player
 * Description: Customize the audio player.
 */
.elementor-widget-wp-widget-media_audio {
	--background: var(--cc-color-gray-400);
}
.elementor-widget-wp-widget-media_audio .mejs-container,
.elementor-widget-wp-widget-media_audio .mejs-container .mejs-controls,
.elementor-widget-wp-widget-media_audio .mejs-embed,
.elementor-widget-wp-widget-media_audio .mejs-embed body {
	background: var(--background);
	border-radius: 20px;
}
.elementor-widget-wp-widget-media_audio .mejs-container .mejs-controls button:hover,
.elementor-widget-wp-widget-media_audio .mejs-container .mejs-controls button:focus {
	background-color: inherit;
}

/* -------------------------------------------*/
/* ELEMENTOR POST CONTENT
/* -------------------------------------------*/

/* 
 * Element: 	Elementor Post Content
 * Description: Set styles for the post content.
 */
.elementor-widget-theme-post-content {
	--spacing: 50px;
}
@media (min-width: 1001px) {
	.elementor-widget-theme-post-content {
		--spacing: 4rem;
	}	
}

/* 
 * Description: Make bold text slightly less bold.
 */
.elementor-widget-theme-post-content strong {
	font-weight: 600;
}

/* 
 * Description: Set vertical rhythm.
 */
.elementor-widget-theme-post-content p {
	margin-bottom: 0;
}
.elementor-widget-theme-post-content .elementor-widget-container p + p,
.elementor-widget-theme-post-content .elementor-widget-container > * + * {
	margin-top: var(--spacing);
}
.elementor-widget-theme-post-content .elementor-widget-container > *:first-child {
	margin-top: 0;
}

/* 
 * Description: Blockquote.
 */
.elementor-widget-theme-post-content .wp-block-quote {
	--font-family: var(--e-global-typography-primary-font-family);
	--quote-color: var(--e-global-color-f9f940b);
	position: relative;
	padding: var(--spacing);
	color: var(--e-global-color-052f135);
	font-size: 1.35em;
	font-style: italic;
	line-height: 1.35;
}
.elementor-widget-theme-post-content .wp-block-quote::before {
	margin-bottom: -0.65em;
    margin-right: -0.65em;
	color: var(--quote-color);
	font-size: 8em;
	font-family: var(--font-family);
	font-weight: 900;
	opacity: 0.1;
}
@media (min-width: 800px) {
	.elementor-widget-theme-post-content .wp-block-quote {
		float: right;
		max-width: 400px;
		padding: 0 var(--spacing);
		float: right;
	}
}
@media (min-width: 1201px) {
	.elementor-widget-theme-post-content .wp-block-quote {
		font-size: 1.35em;
		margin-right: -200px;
	}
}

/* 
 * Description: Horizontal separator.
 */
.elementor-widget-theme-post-content hr {
	--height: 3.5px;
	--color: var(--e-global-color-f9f940b);
	--background: var(--e-global-color-7d9382d6);
	position: relative;
	width: 33vw;
	max-width: 200px;
	height: var(--height);
	margin-left: auto;
	margin-right: auto;
	padding: var(--spacing) 0;
	border: 0;
	opacity: 0.2;
}
.elementor-widget-theme-post-content hr::before {
	content: "";
	position: absolute;
	top: 50%; left: 0;
	width: 100%; height: var(--height);
	margin-top: calc((var(--height) / 2) * -1);
	background: var(--color);
}
.elementor-widget-theme-post-content hr::after {
	content: "#";
	position: absolute;
	top: 50%; left: 50%;
	transform: translate(-50%,-50%);
	padding: 0 0.25em;
	font-size: 2em;
	font-weight: 600;
	color: var(--color);
	background: var(--background);
}

/* 
 * Description: Drop cap.
 */
.elementor-widget-theme-post-content .has-drop-cap:not(:focus):first-letter {
	font-weight: 600;
	color: var(--e-global-color-a499b73);
}

/* 
 * Class: 	    .callout
 * Description: Set styles for the callout.
 */
.elementor-widget-theme-post-content .callout {
	background: var(--e-global-color-7dcd9c5);
	padding: var(--spacing);
	margin: var(--spacing) 0;
	border-radius: 48px;
	box-shadow: 0px 3px 40px 0px #ccd2db;
}
.elementor-widget-theme-post-content .callout > div {
	--spacing: 1em;
}


/* -------------------------------------------*/
/* SECTION - SPONSORS
/* -------------------------------------------*/
.section-sponsors {
	pointer-events: none;
}
.section-sponsors a {
	pointer-events: auto;
}


/* -------------------------------------------*/
/* SITE HEADER
/* -------------------------------------------*/
.site-header {
    --nav-primary-icon-color:         var(--cc-color-gray-400);
    --nav-primary-icon-color-hover:   var(--cc-color-gray-500);
    --nav-primary-text-color:         var(--cc-color-gray-400);
    --nav-primary-text-color-hover:   var(--cc-color-orange);
    --nav-secondary-color:            var(--cc-color-gray-350);
    --nav-secondary-color-hover:      var(--cc-color-gray-600);
}
    .site-header svg {
        --stroke-width: 1.5px;
    }
    .site-header a {
        --width: auto;
    }
    .site-header a .elementor-icon,
    .site-header a .elementor-heading-title {
        transition: all 0.2s linear, transform 0.4s ease;
    }
    .site-header .nav-primary a .elementor-icon {
        color: var(--nav-primary-icon-color);
    }
    .site-header .nav-primary a:hover .elementor-icon {
        color: var(--nav-primary-icon-color-hover);
        transform: translateY(-0.15em);
    }
    .site-header .nav-primary a .elementor-heading-title {
        color: var(--nav-primary-text-color);
    }
    .site-header .nav-primary a:hover .elementor-heading-title {
        color: var(--nav-primary-text-color-hover);
    }
    .site-header .nav-secondary a .elementor-icon,
    .site-header .nav-secondary a .elementor-heading-title {
        color: var(--nav-secondary-color);
    }
    .site-header .nav-secondary a:hover .elementor-icon,
    .site-header .nav-secondary a:hover .elementor-heading-title {
        color: var(--nav-secondary-color-hover);
    }


/* -------------------------------------------*/
/* STORIA - ARCHIVES
/* -------------------------------------------*/

/* Place category label between the image and the text in each card. */
.cc-postgrid .cc-card.-storia .cc-card_categories {
	position: absolute;
	top: -10px;
	right: 30px;
	width: auto;
}
.cc-postgrid .cc-card.-storia:hover .cc-card_image {
	transform: scale(1.15);
}


/* -------------------------------------------*/
/* UTILITIES
/* -------------------------------------------*/
.multiply .elementor-widget-container {
	mix-blend-mode: multiply;
}
body.logged-in .hide-if-logged-in {
	display: none !important;
}
body:not(.logged-in) .hide-if-logged-out {
	display: none !important;
}
