/* TROTTOLA Styles */

/* MAIN */
:root {
	--trottola-primary-color: #B62D21;
	--trottola-secondary-color: #F5F3EA;
	--trottola-text-color: #333331;
	--trottola-primary-font: 'Gravitas One';
}

/**********************/

/* UTILITIES */
/* Hide anything */
.hidden {
	display: none;
}

/* Hide menu item */
.hide-menu-item {
  display: none !important;
}

/* Truncate text */
.truncate p {
	white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
	width: calc(100vw - 40px);
}

/**********************/

/* CUSTOM STYLES */
/* Underline effect */
.underline a:not(.white-button) {
	position: relative;
}
.underline a:not(.white-button)::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -1px;
  height: 1px;
  background: var(--trottola-secondary-color);
  transition: height .25s ease-in-out, bottom .25s ease-in-out, left .25s ease-in-out, right .25s ease-in-out;
}
.underline a:not(.white-button):hover::after {
  bottom: -4px;
  height: 3px;
}
.underline--center a:hover::after {
  left: -3px;
  right: -3px;
}
.underline--left a:hover::after {
  right: -3px;
}
.underline--right a:hover::after {
  left: -3px;
}
.underline--dark a {
	line-height: 1.5 !important;
}
.underline--dark a::after {
	background: var(--trottola-text-color) !important;
}

/* Underline truncate */
.underline-truncate {
	position: relative;
	display: block;
  max-width: 70vw;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  text-decoration: none;
}

/* Layout correction */
.main {
  pointer-events: none;
}

/* Red Layout */
.red-layout {
	z-index: 10;
  position: relative;
	background-color: var(--trottola-primary-color);
	border-top: 1px solid var(--trottola-primary-color);
	border-bottom: 1px solid var(--trottola-primary-color);
  color: var(--trottola-secondary-color);
	pointer-events: all;
}

.red-layout::before, .red-layout::after {
  content: '';
	position: absolute;
  width: 100%;
  height: 0;
  left: 0;
  right: 0;
}

.red-layout::before {
  top: -75px;
  border-left: 100vw solid transparent;
  border-bottom: 75px solid var(--trottola-primary-color);
}

.red-layout::after {
  bottom: -75px;
  border-left: 100vw solid transparent;
  border-top: 75px solid var(--trottola-primary-color);
}

@media (max-width: 768px) {
  .red-layout::before {
    top: -30px;
    border-bottom: 30px solid var(--trottola-primary-color);
  }
	.red-layout::after {
    bottom: -30px;
    border-top: 30px solid var(--trottola-primary-color);
  }
}

/* White List */
.white-list .e-loop-item + .e-loop-item,
.white-list > .e-con-inner > .elementor-element + .elementor-element {
  position: relative;
}
.white-list .e-loop-item + .e-loop-item:before,
.white-list > .e-con-inner > .elementor-element + .elementor-element:before {
  content: "";
  position: absolute;
  width: 100%;
  height: 1px;
  background: var(--trottola-secondary-color);
  top: -15px;
  left: 0;
}

/* White List - Plus button */
.white-list-button .elementor-button {
  position: relative;
  padding: 0;
  width: 40px !important;
  height: 40px;
}
.white-list-button .elementor-button-icon {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

/* Red & White button */
.red-button, .white-button {
	display: inline-flex;
	align-items: center;
	height: 40px;
	padding: 0 24px;
	border-radius: 50px;
	font-weight: 400!important;
	transition: transform .3s ease-in-out;
}
.red-button {
	color: var(--trottola-secondary-color) !important;
	background-color: var(--trottola-primary-color);
}
.white-button {
	color: var(--trottola-primary-color) !important;
	background-color: var(--trottola-secondary-color);
}
.red-button:hover, .white-button:hover {
	transform: scale(1.1);
}

/* Plus button */
.plus-button {
	position: relative;
  padding: 0 !important;
  width: 50px;
  height: 50px;
}
.plus-button:hover {
	transform: scale(1.2) !important;
}
.plus-button span {
	position: absolute;
  top: 50%;
  left: 50%;
	font-size: 36px;
  transform: translate(-50%, -50%);
}

@media (max-width: 768px) {
  .plus-button {
		width: 40px;
		height: 40px;
	}
	.plus-button span {
		font-size: 30px;
	}
}

/* Separators */
.red-layout hr {
	border-top: 0;
	border-bottom: 1px solid var(--trottola-secondary-color);
}

/* Separators List */
.separators-list .elementor-widget {
	display: inline-flex;
}
.separators-list .elementor-widget:not(:first-child)::before {
  content: "—";
  margin-left: 8px;
  margin-right: 8px;
}

/* Tour Loop Grid */
.tour-year {
	margin-bottom: 50px;
	color: var(--trottola-secondary-color) !important;
	font-family: var(--trottola-primary-font) !important;
	font-size: 40px;
	text-align: center;
}
.tour-loop-item {
	margin: 25px 0;
	text-align: center;
}
.tour-loop-item + .tour-year {
	margin-top: 100px;
}
.tour-loop-item p {
	margin: 0 auto;
}
.tour-title {
	margin-bottom: 5px;
	color: var(--trottola-secondary-color) !important;
	font-size: 20px;
	font-weight: 900;
}
.tour-city {
	font-size: 22px;
	font-weight: 400;
	text-transform: uppercase;
}
.tour-info {
	font-weight: 300;
}
.tour-info a {
	color: var(--trottola-secondary-color) !important;
	font-weight: 300;
	text-align: center;
}

/* Tour Upcoming Dates */
.upcoming-date-title {
	margin-bottom: 0;
	font-size: 20px;
	font-weight: 900;
}

/* ACF Repeater */
.location-repeater + .location-repeater {
	margin-top: 5px;
}

/* Scroll to Top Button */
.scroll-to-top {
	z-index: 20;
	position: fixed;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 50px;
	height: 50px;
	padding: 10px;
	right: 30px;
	color: var(--trottola-secondary-color) !important;
	background-color: var(--trottola-primary-color) !important;
	border: 1px solid var(--trottola-secondary-color) !important;
	border-radius: 50%;
	opacity: 0;
	transition: color .25s ease-in-out, background-color .25s ease-in-out, opacity .25s ease-in-out;
}
.scroll-to-top:hover {
	color: var(--trottola-primary-color) !important;
	background-color: var(--trottola-secondary-color) !important;
}

@media (max-width: 768px) {
  .scroll-to-top {
		width: 40px;
		height: 40px;
		padding: 8px;
		right: 20px;
	}
}

/**********************/

/* reCAPTCHA */
.grecaptcha-badge { visibility: hidden; }

/**********************/

/* COOKIE BANNER */
#cookie-consent-banner {
	z-index: 999;
	position: fixed;
	padding: 20px;
  bottom: 0;
  left: 0;
  right: 0;
	color: var(--trottola-secondary-color);
	background: var(--trottola-primary-color);
  border-top: 1px solid var(--trottola-secondary-color);
}
.cookie-content {
	display: flex;
	justify-content: space-between;
	align-items: center;
	column-gap: 20px;
}
.cookie-content p {
  margin: 0;
}
@media(max-width: 767px) {
	.cookie-content p {
		font-size: 14px;
	}
}
.cookie-content button:hover, .cookie-content button:focus {
	color: var(--trottola-primary-color);
  background-color: var(--trottola-secondary-color);
}