
/* !@group animations */

@keyframes opacity {
	from,
	to {
		opacity: 1;
	}
	10%, 30%, 50%, 70%, 90% {
		opacity: .4;
	}
	20%, 40%, 60%, 80% {
		opacity: .9;
	}
}

@keyframes point-left {
	0% {
		transform: translateX(0);
	}
	100% {
		transform: translateX(-.8rem);
	}
}

@keyframes point-right {
	0% {
		transform: translateX(0);
	}
	100% {
		transform: translateX(.8rem);
	}
}

@keyframes point-down {
	0% {
		transform: translateX(0);
	}
	100% {
		transform: translateY(.8rem);
	}
}

@keyframes cta-pulse {
	0% {
		transform: scale(1);
	}
	100% {
		transform: scale(.9);
	}
}

body:not(.touch) .pulse:hover,
body:not(.touch) a:hover .pulse,
body:not(.touch) #open-menu:hover svg {

	animation: opacity 10s infinite;
}

body:not(.touch) .point-left:hover,
body:not(.touch) a:hover .point-left,
body:not(.touch) button:hover .point-left {

	animation: point-left .5s cubic-bezier(.5, 0.05, 1, .5) alternate 10;
}

body:not(.touch) .point-right:hover,
body:not(.touch) a:hover .point-right,
body:not(.touch) button:hover .point-right,
body:not(.touch) .secondary-cta:hover .point-right,
body:not(.touch) .allclick:hover .point-right {

	animation: point-right .5s cubic-bezier(.5, 0.05, 1, .5) alternate 10;
}

.zoom { overflow: hidden; }

.zoom img {

	transform: scale(1);
	transition: transform 1.5s ease-in-out;
}

body:not(.touch) .allclick:hover .zoom img { transform: scale(1.15); }

/* @end */


/* !@group common */

body.menu-open { overflow-y: hidden; }
.pswp__counter { display: none; }

.slider-controls {

	--arrows: var(--page);
	--bullets: var(--page);
	--active: var(--yellow-lt);
}

.slider-controls,
.slider-controls .bullets {

	display: flex;
	flex-direction: row;
	align-items: center;
	column-gap: 2.5rem;
}

.slider-controls .span { display: inline-block; }

.slider-controls [class^='svg-arrow'] svg {

	fill: var(--arrows);
	display: block;
}

.slider-controls .svg-bullet svg {

	fill: var(--bullets);
	transition: fill .25s ease, transform .25s ease;
}

.slider-controls .svg-bullet.glide__bullet--active svg {

	fill: var(--active);
	transform: scale(1.5);
}

.secondary-cta {

	--height: min( 3.9vw, 7.8rem );
	--font-size: min( 1.3vw, 2.6rem );

	color: var(--page);
	background-color: var(--cta);
	display: inline-flex;
	align-items: center;
	text-decoration: none;
	column-gap: 1rem;
	height: var(--height);
	border-radius: calc( var(--height) / 2 );
	padding: 0 1.8rem 0 3rem;
	transition: background-color .25s ease;
}

body:not(.touch) .secondary-cta:hover { background-color: var(--cta-hover); }

.secondary-cta > .label {

	font-family: var(--font2);
	font-size: var(--font-size);
	line-height: 1;
}

.secondary-cta .svg-cta-arrow { height: min( 0.75vw, 1.5rem ); }

.secondary-cta svg {

	display: block;
	fill: var(--page);
	width: min( 3.4vw, 6.8rem );
	height: min( 0.75vw, 1.5rem );
}

.slider-control {

	--color: var(--magenta);
	--button: #dc2d85;

	background-color: var(--color);
	width: min( 7.2vw, 14.4rem );
	height: min( 7.2vw, 14.4rem );
	border-radius: 50%;
	display: flex;
	position: absolute;
	top: 50%;
}

.slider-control button {

	color: var(--page);
	background-color: var(--button);
	width: min( 5.4vw, 10.8rem );
	height: min( 5.4vw, 10.8rem );
	border-radius: 50%;
	display: flex;
	margin: auto;
}

.slider-control button > span {

	display: inline-block;
	font-size: min( 2.2vw, 4.4rem );
	line-height: .5;
	margin: auto;
}

@media screen and (max-width: 1600px) {

	.secondary-cta {

		--height: 6.24rem;
		--font-size: 2rem;
	}
}

@media screen and (max-width: 1023px) {

	.slider-control {

		width: 7.2rem;
		height: 7.2rem;
	}

	.slider-control button {

		width: 5.4rem;
		height: 5.4rem;
	}

	.slider-control button > span { font-size: 2.2rem; }
}

@media screen and (max-width: 767px) {

	.secondary-cta {

		--height: 4.5rem;
		--font-size: 1.4rem;
	}

	.secondary-cta svg {

		width: 2.55rem;
		height: 0.65rem;
	}

	.slider-control {

		width: 5rem;
		height: 5rem;
	}

	.slider-control button {

		width: 3.75rem;
		height: 3.75rem;
	}

	.slider-control button > span { font-size: 1.5rem; }
}

/* @end */


/* !@group header */

.scroll,
.no-slide { --header: min( 6.25vw, 12.5rem ); }
.scroll #site-header,
.no-slide #site-header { filter: drop-shadow(0 0 1rem rgba(0,0,0,.15)); }

.menu-open #site-header {

	background: rgba(255,255,255,0);
	filter: drop-shadow(0 0 0 rgba(0,0,0,0));
}

#club-family-hotel-white,
#cf-m { transition: opacity .25s ease; }
.scroll #club-family-hotel-white,
.scroll #cf-m,
.no-slide #club-family-hotel-white,
.no-slide #cf-m { opacity: 0; }
.menu-open #club-family-hotel-white,
.menu-open #cf-m { opacity: 1; }
body:not(.touch) .header-tel:hover { background-color: var(--magenta); }

@media screen and (max-width: 1400px) {

	.scroll { --header: 8.75rem; }
}

@media screen and (max-width: 767px) {

	.scroll { --header: 8rem; }
}

/* @end */


/* !@group main cta */

#main-cta::before {

	content: '';
	display: block;
	width: min( 9.1vw, 18.2rem );
	height: min( 9.3vw, 18.6rem );
	position: absolute;
	top: min( 1.25vw, 2.5rem );
	right: max( -1.5vw, -3rem );
	background-color: var(--cyan-dk);
	-webkit-mask-image: url('/assets/images/cta-spiral.png');
	mask-image: url('/assets/images/cta-spiral.png');
	-webkit-mask-position: center center;
	mask-position: center center;
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	-webkit-mask-size: contain;
	mask-size: contain;
	z-index: -1;
	transition: background-color .25s ease;
}

body:not(.touch) #main-cta.selected::before { background-color: var(--purple); }
body:not(.touch) a#main-cta:hover::before { animation: cta-pulse .5s cubic-bezier(.5, 0.05, 1, .5) alternate infinite; }

.miglior-tariffa::before {

	content: '';
	display: block;
	width: min( 4.2vw, 8.4rem );
	height: min( 2.5vw, 5rem );
	position: absolute;
	top: max( -0.75vw, -1.5rem );
	left: min( 0.5vw, 1rem );
	background: url('/assets/images/cta-star.png') no-repeat center center / contain;
}

@media screen and (max-width: 1400px) {

	#main-cta::before {

		width: 12.73rem;
		height: 13rem;
		top: 1.75rem;
		right: -2.1rem;
	}

	.miglior-tariffa::before {

		width: 5.87rem;
		height: 3.5rem;
		top: -1rem;
		left: .7rem;
	}
}

@media screen and (max-width: 1023px) {

	#mobile-cta {

		display: flex;
		justify-content: center;
		align-items: center;
		color: var(--page);
		background-color: var(--cta);
		position: fixed;
		left: 0;
		right: 0;
		bottom: 0;
		height: var(--cta-height);
		text-decoration: none;
		z-index: 5;
		filter: drop-shadow( 0 0 0 rgba(0,0,0,0) );
		transition: filter .25s ease, bottom .25s ease;
	}

	.scroll #mobile-cta { filter: drop-shadow( 0 0 1rem rgba(0,0,0,.25) ); }
	#mobile-cta.selected { background-color: var(--magenta); }

	#mobile-cta > .line-1 {

		font-family: var(--font2);
		font-size: 3rem;
	}

	.miglior-tariffa {

		right: 2rem;
		top: initial;
		bottom: 1.5rem;
	}

	.miglior-tariffa::before {

		width: 4.4rem;
		height: 2.62rem;
		top: -.75rem;
		left: .52rem;
	}

	#mobile-cta.hide { bottom: calc( var(--cta-height) * -2 ); }
}

@media screen and (max-width: 767px) {

	#mobile-cta > .line-1 {

		font-size: 1.8rem;
		padding-right: 4rem;
	}

	.miglior-tariffa {

		width: 7.74rem;
		height: 7.74rem;
		right: 1rem;
		bottom: 1rem;
		font-size: .93rem;
	}

	.miglior-tariffa::before {

		width: 4.4rem;
		height: 2.62rem;
		top: -.75rem;
		left: .52rem;
	}
}

/* @end */


/* !@group main */

#main-content { padding: clamp( 8rem, 5vw, 10rem ) 3rem min( 12vw, 24rem ); }

main {

	display: flex;
	flex-direction: column;
}

main > header {

	display: flex;
	flex-direction: column;
	text-align: center;
	width: 100%;
	max-width: 128rem;
	margin: 0 auto;
	padding-bottom: clamp( 4.5rem, 4.5vw, 9rem );
}

main > header .occhiello {

	color: var(--text);
	font-size: clamp( 2rem, 1.35vw, 2.7rem );
	line-height: 1;
	font-weight: 200;
	text-transform: uppercase;
	margin-bottom: clamp( 2rem, 2vw, 4rem );
}

main hgroup h1 {

	color: var(--magenta);
	font-family: var(--font2);
	font-size: clamp( 4rem, 3.9vw, 7.8rem );
	line-height: 1;
	margin-bottom: clamp( 3rem, 3vw, 6rem );
}

main hgroup p {

	color: var(--cyan-dk);
	font-size: clamp( 2.6rem, 1.55vw, 3.1rem );
	line-height: 1.3;
	font-weight: 300;
}

.main-content {

	width: 100%;
	max-width: 152rem;
	margin: 0 auto;
	columns: 2;
	gap: 10%;
}

.main-content h2 {

	color: var(--cyan-dk);
	font-size: 2rem;
	line-height: 1.6;
	font-weight: 700;
	margin-bottom: .5rem;
}

.main-content p,
.main-content ul { margin-bottom: 4rem; }
.main-content strong,
.main-content b { font-weight: 700; }
.main-content em,
.main-content i { font-style: italic; }

.main-content mark {

	color: var(--magenta);
	background: transparent;
	font-weight: 700;
	text-transform: uppercase;
}

.main-content ul li {

	background: url('/assets/images/flash.svg') no-repeat left .5rem top .2rem;
	padding: 0 0 1rem 4rem;
}

@media screen and (max-width: 1023px) {

	.main-content { columns: initial; }
}

@media screen and (max-width: 767px) {

	#main-content { padding: 5rem 3rem 0; }
	main > header .occhiello { font-size: 1.8rem; }
	main hgroup h1 { font-size: 3rem; }
	main hgroup p { font-size: 2.2rem; }
}

/* @end */


/* !@group stiamo cercando */

#stiamo-cercando {

	color: var(--page);
	background-color: var(--maroon);
	padding: 5rem 3rem clamp( 5rem, 5.5vw, 11rem );
}

#stiamo-cercando > .inner {

	width: 100%;
	max-width: 166rem;
	margin: 0 auto;
}

#stiamo-cercando .section-header {

	padding: clamp( 10rem, 10vw, 20rem ) 0 clamp( 6.5rem, 6.5vw, 13rem );
	background-image:
		url('/assets/images/rocket.png'),
		url('/assets/images/cloud.png');
	background-repeat:
		no-repeat,
		no-repeat;
	background-position:
		left min( 3vw, 6rem ) top,
		right min( 2vw, 4rem ) top;
	background-size:
		min( 8.8vw, 17.6rem ) min( 8.1vw, 16.2rem ),
		min( 6.9vw, 13.8rem ) min( 4.8vw, 9.6rem );
}

#stiamo-cercando hgroup {

	display: flex;
	flex-direction: column;
	align-items: flex-start;
}

#stiamo-cercando hgroup h2 {

	color: var(--yellow-lt);
	font-family: var(--font2);
	font-size: min( 6.5vw, 13rem );
	line-height: .9;
	letter-spacing: -.05ch;
	position: relative;
}

#stiamo-cercando hgroup h2::after {

	content: '';
	display: block;
	width: min( 16.7vw, 33.4rem );
	height: min( 39.8vw, 79.6rem );
	position: absolute;
	left: 100%;
	bottom: max( -5.5vw, -11rem );
	background: url('/assets/images/astronaut.png') no-repeat center center / contain;
}

#stiamo-cercando hgroup p {

	font-size: clamp( 2rem, 1.5vw, 3rem );
	line-height: 1.3;
	font-weight: 300;
	margin-top: clamp( 3rem, 3.25vw, 6.5rem );
}

#stiamo-cercando hgroup p strong { font-weight: 800; }
#positions { width: 100%; }

#positions th {

	background-color: var(--magenta);
	font-size: 2rem;
	line-height: 1;
	font-weight: 700;
	padding: 3.6rem clamp( 1.5rem, 1.7vw, 3.4rem );
}

#positions td {

	background-color: var(--maroon);
	padding: clamp( 2.5rem, 2.6vw, 5.2rem ) clamp( 1.5rem, 1.7vw, 3.4rem );
	transition: background-color .25s ease;
	cursor: pointer;
}

#positions tr:not(:last-of-type) td { border-bottom: .1rem solid var(--page); }
body:not(.touch) #positions tr:hover td { background-color: var(--maroon-lt); }
#positions tr.active td { background-color: var(--maroon-mid); }

#positions th,
#positions td {

	text-align: center;
	vertical-align: middle;
}

#positions tr th:nth-of-type(1) { padding-left: clamp( 2rem, 2.8vw, 5.6rem ); }
#positions tr th:nth-of-type(1),
#positions tr td:nth-of-type(1) { text-align: left; }

#positions figure {

	display: flex;
	flex-direction: row;
}

#positions figcaption {

	font-family: var(--font2);
	font-size: clamp( 2.4rem, 1.75vw, 3.5rem );
	line-height: 1.1;
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding-left: clamp( 2rem, 2.4vw, 4.8rem );
}

#positions .location { color: var(--magenta); }

#positions .localita {

	font-family: var(--font2);
	font-size: clamp( 2.4rem, 1.75vw, 3.5rem );
	line-height: 1.1;
}

#positions .count {

	background-color: var(--maroon);
	display: flex;
	width: clamp( 7rem, 5.6vw, 11.2rem );
	height: clamp( 7rem, 5.6vw, 11.2rem );
	margin: 0 auto;
	border: .2rem dashed var(--magenta);
	border-radius: 50%;
}

#positions .count > .value {

	font-family: var(--font2);
	font-size: clamp( 3rem, 2.25vw, 4.5rem );
	line-height: 1;
	margin: auto;
}

#positions .choose {

	appearance: none;
	-webkit-appearance: none;
	width: 2.8rem;
	height: 2.8rem;
	background-color: var(--page);
	border: 0;
	border-radius: 0;
	cursor: pointer;
	pointer-events: none;
}

#positions .choose:checked { background: var(--magenta) url('/assets/images/checkbox.svg') no-repeat center center; }

.no-positions {

	display: flex;
	flex-direction: row;
	justify-content: center;
	align-items: center;
	text-align: center;
}

.no-positions p {

	color: var(--page);
	background-color: red;
	padding: 1rem 2rem;
	border-radius: .5rem;
}

@media screen and (max-width: 1023px) {

	#stiamo-cercando hgroup h2::after {

		left: calc( 100% + 7rem );
		bottom: 1.5rem;
	}


	#positions {

		margin-left: -3rem;
		margin-right: -3rem;
		width: calc( 100% + 6rem );
	}

	#positions th {

		font-size: 1.8rem;
		padding: 3rem 2rem;
	}

	#positions td { padding: 2rem; }
}

@media screen and (max-width: 767px) {

	#stiamo-cercando { padding: 2rem 3rem 0; }

	#stiamo-cercando .section-header {

		padding-top: 7rem;
		padding-bottom: 3rem;
		background-position:
			left 0 top,
			right 0 top;
		background-size:
			6.6rem 6rem,
			5.1rem 3.6rem;
	}

	#stiamo-cercando hgroup h2::after { display: none; }
	#stiamo-cercando hgroup h2 { font-size: 3rem; }

	#stiamo-cercando hgroup p {

		font-size: 1.8rem;
		margin-top: 2rem;
	}

	#positions th {

		font-size: 1.4rem;
		padding: 2rem 1rem;
	}

	#positions tr th:nth-of-type(1) { padding-left: 1rem; }

	#positions td {

		font-size: 1.4rem;
		padding: 2rem 1rem;
	}

	#positions figure { flex-direction: column; }
	#positions figure img { display: none; }

	#positions figcaption {

		font-family: var(--font1);
		font-size: 1.4rem;
		font-weight: 500;
		padding-left: 0;
	}

	#positions .location { font-weight: 800; }

	#positions .localita {

		font-family: var(--font1);
		font-size: 1.5rem;
		font-weight: 500;
	}

	#positions .count {

		width: 4rem;
		height: 4rem;
		border-width: .1rem;
	}

	#positions .count > .value { font-size: 2rem; }

	#positions .choose {

		width: 2rem;
		height: 2rem;
	}

	#positions .choose:checked { background-size: 1.2rem 1.2rem; }
}

@media screen and (max-width: 340px) {

	#positions th,
	#positions td,
	#positions figcaption,
	#positions .localita { font-size: 1.2rem; }
	#positions .count > .value { font-size: 1.8rem; }
}

/* @end */


/* !@group candidatura */

#candidatura {

	background-color: var(--beige);
	padding: 0 3rem clamp( 4rem, 4.5vw, 9rem );
}

#candidatura .section-header {

	width: 100%;
	max-width: 169rem;
	margin: 0 auto;
	padding: min( 18vw, 36rem ) min( 15vw, 30rem ) min( 7.5vw, 15rem ) 0;
	background: url('/assets/images/ufo.png') no-repeat left min( 3.7vw, 7.4rem ) bottom min( 5.25vw, 10.5rem ) / min( 16.6vw, 33.2rem ) min( 20.15vw, 40.3rem );
}

#candidatura .section-header h2 {

	color: var(--magenta);
	font-family: var(--font2);
	font-size: min( 6.5vw, 13rem );
	line-height: .9;
	text-align: right;
	letter-spacing: -.05ch;
	position: relative;
}

#candidatura .section-header h2::before {

	content: '';
	display: block;
	width: min( 31vw, 62rem );
	height: min( 30vw, 60rem );
	background: url('/assets/images/constellation.png') no-repeat center / contain;
	position: absolute;
	right: max( -18.25vw, -36.5rem );
	bottom: max( -1.7vw, -3.4rem );
}

#candidatura .section-header h2 span { position: relative; }

#candidatura .section-content {

	color: var(--page);
	background-color: var(--magenta);
	width: 100%;
	max-width: 169rem;
	margin: 0 auto;
	padding: min( 5.5vw, 11rem ) clamp( 2.75rem, 2.75vw, 5.5rem ) min( 6vw, 12rem );
	border-radius: clamp( 5rem, 5vw, 10rem );
}

#mi-voglio-candidare { scroll-margin-top: var(--header); }
#candidatura .section-content ::-moz-selection { background: var(--selection-dk); }
#candidatura .section-content ::selection { background: var(--selection-dk); }

.contact-form input:not([type="checkbox"])::-webkit-input-placeholder,
.contact-form textarea::-webkit-input-placeholder { /* Chrome/Opera/Safari */

	color: var(--text-lt);
	transition: opacity .25s;
	font-size: 1.8rem;
	font-weight: 300;
}

.contact-form input:not([type="checkbox"])::-moz-placeholder,
.contact-form textarea::-moz-placeholder { /* Firefox 19+ */

	color: var(--text-lt);
	transition: opacity .25s;
	font-size: 1.8rem;
	font-weight: 300;
}

.contact-form input:not([type="checkbox"]):-moz-placeholder,
.contact-form textarea:-moz-placeholder { /* Firefox 18- */

	color: var(--text-lt);
	transition: opacity .25s;
	font-size: 1.8rem;
	font-weight: 300;
}

.contact-form input:focus:not([type="checkbox"])::-webkit-input-placeholder,
.contact-form textarea:focus::-webkit-input-placeholder { /* Chrome/Opera/Safari */

	opacity: 0;
}

.contact-form input:focus:not([type="checkbox"])::-moz-placeholder,
.contact-form textarea:focus::-moz-placeholder { /* Firefox 19+ */

	opacity: 0;
}

.contact-form input:focus:not([type="checkbox"]):-moz-placeholder,
.contact-form textarea:focus:-moz-placeholder { /* Firefox 18- */

	opacity: 0;
}

.form-row {

	display: flex;
	flex-direction: row;
}

.form-row + .form-row { margin-top: clamp( 3rem, 2.7vw, 5.4rem ); }
.form-row:last-of-type { margin-top: clamp( 2.5rem, 2.5vw, 5rem ); }

.col-100,
.col-33,
.col-66 {

	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
	padding: 0;
}

.col-100 { flex: 0 0 100%; }
.col-33 { flex: 0 0 33.33%; }
.col-66 { flex: 0 0 66.66%; }

.reparto {

	flex: 0 0 100%;
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
	padding: 0 clamp( 2rem, 2vw, 4rem );
}

.contact-form legend {

	font-family: var(--font2);
	font-size: clamp( 2.4rem, 1.8vw, 3.6rem );
	line-height: 1;
	padding: 0 clamp( 2.5rem, 2.5vw, 5rem );
	flex: 0 0 100%;
}

.contact-form .dati-row legend {

	display: flex;
	flex-direction: column;
}

.contact-form .dati-row legend > .label {

	font-family: var(--font1);
	font-size: 1.6rem;
	margin-bottom: 2rem;
}

.form-field-25,
.form-field-33,
.form-field-50,
.form-field-66,
.form-field-100,
.form-field-flexible {

	display: flex;
	flex-direction: column;
	padding: clamp( 2rem, 1.3vw, 2.6rem ) clamp( 2.5rem, 2.5vw, 5rem );
}

.form-field-25 { padding: clamp( 2rem, 1.3vw, 2.6rem ) clamp( .5rem, 0.5vw, 1rem ); }
.form-field-25 { flex: 0 0 25%; }
.form-field-33 { flex: 0 0 33.33%; }
.form-field-50 { flex: 0 0 50%; }
.form-field-66 { flex: 0 0 66.66%; }
.form-field-100 { flex: 0 0 100%; }

.form-field-inline {

	flex-direction: row;
	flex-wrap: wrap;
}

.file-details {

	flex: 0 0 100%;
	font-size: clamp( 1.6rem, 0.9vw, 1.8rem );
	line-height: 1.2;
}

.form-field-row {

	flex-direction: row;
	justify-content: space-between;
	flex-wrap: wrap;
}

.form-field-row > div {

	flex: 0 0 calc( 50% - clamp( 2.5rem, 2.5vw, 5rem ) );
	display: flex;
	flex-direction: column;
}

.form-field-row > div:nth-of-type(3),
.form-field-row > div:nth-of-type(4) { padding-top: clamp( 2rem, 1.3vw, 2.6rem ); }

.contact-form label {

	display: inline-block;
	font-size: 1.8rem;
	line-height: 1;
	padding-bottom: clamp( .9rem, 0.9vw, 1.8rem );
}

.contact-form label[for='file'] { padding: 1.5rem 1rem 0 0; }
.contact-form .label { display: inline-block; }
.contact-form .label.label-alloggio { margin-right: clamp( 1rem, 1vw, 2rem ); }

.contact-form input[type='text'],
.contact-form input[type='email'],
.contact-form input[type='date'],
.contact-form input[type='radio'],
.contact-form input[type='checkbox'],
.contact-form select,
.contact-form textarea {

	appearance: none;
	-webkit-appearance: none;
	color: var(--text);
	background-color: var(--page);
	font-family: var(--font1);
	font-size: clamp( 1.6rem, 0.9vw, 1.8rem );
	border: .2rem var(--page) solid;
	height: clamp( 5rem, 3.2vw, 6.4rem );
	padding: 0 2rem;
	border-radius: 0;
	outline: .2rem solid transparent;
	transition:
		border-color .25s ease,
		outline .25s ease;
}

input::-webkit-date-and-time-value { text-align: left; }

.contact-form input[type='radio'],
.contact-form input[type='checkbox'] {

	flex: 0 0 2rem;
	appearance: none;
	-webkit-appearance: none;
	display: inline-block;
	width: 2rem;
	height: 2rem;
	padding: 0;
	border: 0;
	vertical-align: -.3rem;
}

.contact-form select {

	appearance: none;
	-webkit-appearance: none;
	background: var(--page) url('/assets/images/select-arrow.svg') no-repeat right clamp( 1rem, 1vw, 2rem ) center;
}

::-webkit-calendar-picker-indicator {

	color: var(--magenta);
	opacity: 1;
	background-image: url('/assets/images/cal.svg');
	width: 3.2rem;
	height: 3rem;
	cursor: pointer;
}

.contact-form input[type='text']:focus,
.contact-form input[type='email']:focus,
.contact-form input[type='date']:focus,
.contact-form input[type='radio']:focus,
.contact-form input[type='checkbox']:focus,
.contact-form select:focus,
.contact-form textarea:focus { outline-color: var(--maroon); }
.contact-form input[type='radio']:checked,
.contact-form input[type='checkbox']:checked { background: var(--cyan-dk) url('/assets/images/checkbox.svg') no-repeat center / 1.6rem 1.6rem; }
.contact-form textarea { padding-top: clamp( 1rem, 1vw, 2rem ); }
#more_formazione,
#messaggio { height: 13rem; }
#more_lingue { height: clamp( 15.5rem, 9.5vw, 19rem ); }

.contact-form input::file-selector-button {

	color: var(--text);
	background-color: var(--yellow-lt);
	font-size: clamp( 1.8rem, 1.1vw, 2.2rem );
	line-height: 1;
	font-weight: 500;
	border: 0;
	padding: clamp( 1rem, 0.75vw, 1.5rem ) clamp( 1rem, 1vw, 2rem );
	border-radius: clamp( 1rem, 0.75vw, 1.5rem );
}

.contact-form button[type='submit'] {

	color: var(--page);
	font-family: var(--font2);
	background-color: var(--cta);
	font-size: clamp( 2.05rem, 2.05vw, 4.1rem );
	line-height: .9;
	letter-spacing: -.05ch;
	text-align: left;
	padding: clamp( 1.5rem, 1.5vw, 3rem ) clamp( 1.5rem, 1.5vw, 3rem ) clamp( 1.5rem, 1.5vw, 3rem ) clamp( 6.5rem, 6.5vw, 13rem );
	border-radius: clamp( 1.75rem, 1.75vw, 3.5rem );
	position: relative;
	transition: background-color .25s ease;
}

.contact-form button[type='submit']::after {

	content: '';
	display: block;
	width: clamp( 7.8rem, 7.8vw, 15.6rem );
	height: clamp( 6.1rem, 6.1vw, 12.2rem );
	background: url('/assets/images/rocket-2.png') no-repeat center / contain;
	position: absolute;
	left: clamp( -2.35rem, -2.35vw, -4.7rem );
	bottom: clamp( -1.5rem, -1.5vw, -3rem );
}

body:not(.touch) .contact-form button[type='submit']:hover { background-color: var(--cta-hover); }

.row-more {

	display: flex;
	flex-direction: row;
	align-items: center;
}

.row-more + .row-more { margin-top: 1rem; }

.row-more > input[type='checkbox'] {

	vertical-align: initial;
	margin-right: 1rem;
}

.row-more > label {

	font-size: .8em;
	white-space: nowrap;
	overflow: hidden;
	line-height: 1;
	padding-bottom: 0;
}

.more {

	background-color: var(--maroon);
	display: inline-flex;
	width: 1.9rem;
	height: 1.9rem;
	border-radius: 50%;
	transition: background-color .25s ease;
	vertical-align: middle;
	margin-left: 1rem;
	padding: 0;
}

.more span,
.more svg {

	display: block;
	width: .9rem;
	height: .9rem;
	margin: auto;
}

.more svg { transition: transform .25s ease-in; }
.more:hover { background-color: var(--cyan-dk); }
.more:hover svg { transform: rotate(180deg); }
#positions .more { background-color: var(--cyan-dk); }
#positions .more:hover { background-color: var(--magenta); }

.row-privacy {

	display: flex;
	flex-direction: row;
	column-gap: 1rem;
}

label[for='messaggio'] { font-size: clamp( 1.6rem, 0.9vw, 1.8rem ); }

label[for='privacy'] {

	font-size: 1.5rem;
	display: flex;
	flex-direction: column;
	padding-top: .5rem;
}

label[for='privacy'] > span {

	font-weight: 700;
	margin-bottom: .5rem;
}

label[for='privacy'] a {

	color: var(--page);
	text-decoration: none;
}

.checkbox-list .row-check {

	display: flex;
	flex-direction: row;
	align-items: flex-start;
}

.contact-form .checkbox-list .row-check input[type='radio'] { margin: -.3rem 1rem 0 0; }

.reparto dt {

	font-weight: 700;
	margin-bottom: 1rem;
}

@media screen and (max-width: 1700px) {

	.form-field-25 { flex: 0 0 50%; }
	.form-field-25:nth-of-type(1),
	.form-field-25:nth-of-type(2) { padding-bottom: 0; }
	.form-field-25:nth-of-type(3),
	.form-field-25:nth-of-type(4) { padding-top: 1rem; }
}

@media screen and (max-width: 1300px) {

	.contact-form .label.label-alloggio { display: block; }
}

@media screen and (max-width: 1023px) {

	.row-more + .row-more { margin-top: 2rem; }
	.form-field-25:nth-of-type(1),
	.form-field-25:nth-of-type(2),
	.form-field-25:nth-of-type(3) { padding-bottom: 1rem; }
	.form-field-33 { flex: 0 0 50%; }

	.alloggio-row,
	.lingue-row,
	.note-row {

		display: flex;
		flex-direction: column;
	}

	.contact-form .label.label-alloggio { display: inline-block; }

	.alloggio-row .col-33,
	.alloggio-row .col-66,
	.lingue-row .form-field-33,
	.lingue-row .form-field-66,
	.note-row .col-33,
	.note-row .col-66 { flex: initial; }
	.lingue-row .form-field-33 { flex: 0 0 100%; }
	.alloggio-row .col-66,
	.note-row .col-66 { margin-top: 3rem; }
	.alloggio-row .checkbox-list { padding-top: 3rem; }
	.alloggio-row .checkbox-list li + li { margin-top: 1rem; }
	#more_lingue { height: 13rem; }
	.file-details { padding-top: 2rem; }
}

@media screen and (max-width: 767px) {

	#candidatura { padding: 0 3rem 3rem; }
	#candidatura .section-header h2 { font-size: 3rem; }

	#candidatura .section-content {

		margin-left: -2rem;
		margin-right: -2rem;
		width: auto;
		padding: 3rem;
		border-radius: 3rem;
	}

	.contact-form legend { padding: 0; }

	.reparto,
	.form-field-25,
	.form-field-33,
	.form-field-50,
	.form-field-66,
	.form-field-100,
	.form-field-flexible {

		padding-left: 0;
		padding-right: 0;
		flex: initial;
		width: 100%;
	}

	.dati-row .form-field-33 + .form-field-33 { padding-top: 0; }

	.form-field-row > div {

		flex: initial;
		width: 100%;
	}

	.form-field-25:nth-of-type(2) { padding-top: 1rem; }
	.form-field-row > div + div { padding-top: 2rem; }
	.lingue-row .form-field-33 { padding-top: 0; }

	.contact-form label {

		font-size: 1.6rem;
		padding-bottom: .5rem;
	}

	/* .contact-form .row-more > label { font-size: 1.3rem; } */

	.contact-form .label.label-alloggio {

		font-size: 1.6rem;
		display: block;
	}
}

/* @end */


/* !@group cfh team */

#cfh-team {

	background-color: var(--beige);
	padding: clamp( 4rem, 4.5vw, 9rem ) 3rem clamp( 8rem, 6vw, 12rem );
}

#cfh-team > .inner {

	width: 100%;
	max-width: 130rem;
	margin: 0 auto;
}

#cfh-team .section-header {

	padding: min( 13vw, 26rem ) 0 min( 14.5vw, 29rem );
	display: flex;
	flex-direction: row;
	justify-content: center;
}

#cfh-team .section-header hgroup {

	display: flex;
	flex-direction: column;
}

#cfh-team .section-header hgroup h2 {

	color: var(--maroon);
	font-family: var(--font2);
	font-size: min( 6.5vw, 13rem );
	line-height: 1;
	letter-spacing: -.05ch;
	position: relative;
}

#cfh-team .section-header hgroup h2::before {

	content: '';
	display: block;
	width: min( 29.2vw, 58.4rem );
	height: min( 30.6vw, 61.2rem );
	position: absolute;
	background: url('/assets/images/kite.png') no-repeat center / contain;
	left: max( -7.8vw, -15.6rem );
	bottom: max( -11.5vw, -23rem );
}

#cfh-team .section-header hgroup h2 > span { position: relative; }

#cfh-team .section-header hgroup p {

	color: var(--maroon);
	font-size: clamp( 3rem, 2.65vw, 5.3rem );
	line-height: 1;
	font-weight: 300;
	margin-top: 2rem;
	position: relative;
}

.team-slide {

	white-space: normal;
	display: flex;
	flex-direction: row;
	align-items: flex-start;
}

.team-slide > .image {

	flex: 0 0 clamp( 15rem, 10vw, 20rem );
	margin-right: clamp( 3rem, 2.5vw, 5rem );
	overflow: hidden;
	border-radius: 50%;
}

.team-slide > .image img {

	width: clamp( 15rem, 10vw, 20rem );
	height: clamp( 15rem, 10vw, 20rem );
}

.team-slide > .text {

	font-size: 2rem;
	line-height: 1.7;
	padding-top: 2rem;
}

.team-slide blockquote {

	font-weight: 700;
	margin-bottom: 3.5rem;
}

.team-slide blockquote .more { background-color: var(--magenta); }
body:not(.touch) .team-slide blockquote .more:hover { background-color: var(--cyan-dk); }

.team-slide figcaption { font-style: italic; }
.team-slide cite { font-style: normal; }

#team-bullets.slider-controls {

	--bullets: var(--magenta-lt);
	--active: var(--magenta);
}

#team-nav {

	display: flex;
	flex-direction: row;
}

#team-nav button {

	background-color: var(--magenta);
	display: flex;
	width: clamp( 7.5rem, 5vw, 10rem );
	height: clamp( 7.5rem, 5vw, 10rem );
	border-radius: 50%;
	box-shadow: -.6rem 0 1.6rem rgba(0, 0, 0, .2);
	transition: background-color .25s ease;
}

#team-nav button + button { margin-left: -.5rem; }

#team-nav button [class^='svg-'],
#team-nav button svg {

	display: block;
	width: 3rem;
	height: 1rem;
	margin: auto;
}

body:not(.touch) #team-nav button:hover { background-color: var(--maroon); }

#team-footer {

	display: flex;
	flex-direction: row;
	justify-content: center;
	margin-top: clamp( 8rem, 5vw, 10rem );
	position: relative;
}

#team-footer > #team-nav {

	position: absolute;
	right: 0;
	top: 50%;
	transform: translateY(-50%);
}

@media screen and (max-width: 767px) {

	#cfh-team { padding: 3rem 3rem 4rem; }
	#cfh-team .section-header { padding-bottom: 4rem; }
	#cfh-team .section-header hgroup h2 { font-size: 3rem; }
	#cfh-team .section-header hgroup p { font-size: 1.8rem; }

	.team-slide { display: block; }

	.team-slide figure,
	.team-slide blockquote { display: contents; }

	.team-slide > .text {

		font-size: 1.6rem;
		padding-top: 0;
	}

	.team-slide figcaption { padding-top: 2rem; }

	.team-slide .image {

		display: block;
		float: right;
		flex: 0 0 12rem;
		margin-right: 0;
		margin-left: 1.5rem;
		margin-bottom: 1rem;
	}

	.team-slide > .image img {

		width: 12rem;
		height: 12rem;
	}

	#team-footer {

		flex-direction: column;
		align-items: center;
		margin-top: 3rem;
	}

	#team-footer > #team-nav {

		transform: initial;
		position: static;
		margin-top: 2rem;
	}
}

/* @end */


/* !@group dove siamo */

#dove-siamo { background-color: var(--page); }

#dove-siamo > figure {

	display: grid;
	grid-template-columns: 1fr;
	grid-template-rows: 1fr;
	grid-column-gap: 0rem;
	grid-row-gap: 0rem;
}

#dove-siamo > figure > .image,
#dove-siamo > figure > figcaption { grid-area: 1 / 1 / 2 / 2; }

#dove-siamo > figure > .image img { width: 100%; }

#dove-siamo > figure > figcaption { padding: min( 14.5vw, 29rem ) min( 17vw, 34rem ) 3rem 3rem; }

#dove-siamo h2 {

	color: var(--page);
	font-family: var(--font2);
	font-size: min( 4.5vw, 9rem );
	line-height: 1.1;
	text-align: right;
}

.dove-siamo-mobile { display: none; }

@media screen and (max-width: 1023px) {

	#dove-siamo {

		color: var(--page);
		background-color: var(--maroon);
	}

	#dove-siamo figure { display: none; }

	.dove-siamo-mobile {

		display: block;
		padding: 5rem;
		background: url('/assets/images/rocket.png') no-repeat right 3rem top 5rem / 8.8rem 8.1rem;
	}

	.dove-siamo-mobile p {

		color: var(--cyan);
		font-family: var(--font2);
		font-size: 5rem;
		line-height: .9;
	}

	#hotel-list { width: 100%; }

	#hotel-list th {

		color: var(--beige);
		font-size: 2.2rem;
		line-height: 1;
		font-weight: 800;
		text-align: left;
		padding: 5rem 1rem 0;
	}

	#hotel-list td {

		padding: 3rem 1rem 2rem;
		border-bottom: .1rem solid #75577c;
	}

	#hotel-list tr td:last-of-type { text-align: right; }

	.hotel {

		display: flex;
		flex-direction: column;
	}

	.hotel .line-1 {

		font-size: 2rem;
		line-height: 1;
		font-weight: 300;
		text-transform: uppercase;
	}

	.hotel .line-2 {

		font-family: var(--font2);
		font-size: 3rem;
		line-height: 1;
	}

	.map-link {

		color: var(--page);
		background-color: var(--maroon-lt);
		font-size: 1.6rem;
		line-height: 1;
		text-transform: uppercase;
		text-decoration: none;
		display: inline-flex;
		flex-direction: row;
		column-gap: .5rem;
		align-items: center;
		white-space: nowrap;
		height: 4rem;
		border-radius: 2rem;
		padding: 0 2rem;
	}
}

@media screen and (max-width: 767px) {

	.dove-siamo-mobile {

		padding: 5rem 3rem;
		background-position: right 2rem top	3rem;
		background-size: 6.6rem 6rem;
	}

	.dove-siamo-mobile p {

		font-size: 3rem;
		padding-right: 5rem;
	}

	.dove-siamo-mobile p br { display: none; }

	#hotel-list th {

		font-size: 1.8rem;
		padding-left: 0;
	}

	#hotel-list tr {

		display: flex;
		flex-direction: column;
	}

	#hotel-list tr td:first-of-type {

		padding-left: 0;
		padding-right: 0;
		padding-bottom: 0;
		border-bottom: 0;
	}
	#hotel-list tr td:last-of-type {

		text-align: left;
		padding: 1.5rem 0 3rem;
	}

	.hotel .line-1 { font-size: 1.4rem; }
	.hotel .line-2 { font-size: 2.6rem; }
}

/* @end */


/* !@group site footer */

#site-footer {

	display: flex;
	flex-direction: column;
	margin-top: 3.6rem;
}

#site-footer > .top {

	width: 100%;
	height: 19.6vw;
	background: url('/assets/images/footer-back.jpg') no-repeat center bottom / cover;
	display: flex;
}

.footer-logo { margin: auto auto min( 2.4vw, 4.8rem ); }

#site-footer > .bottom {

	background-color: var(--beige);
	font-size: 1.4rem;
	line-height: 1.2;
	display: flex;
	flex-direction: row;
	justify-content: space-between;
	column-gap: 3rem;
	padding: min( 4.5vw, 9rem ) min( 10vw, 20rem ) min( 3vw, 6rem );
}

#site-footer > .bottom p strong { font-weight: 600; }

#credits {

	display: inline-flex;
	white-space: nowrap;
}

#credits img { margin-left: 1rem; }

@media screen and (max-width: 1023px) {

	#site-footer { padding-bottom: var(--cta-height); }

	#footer-logo {

		width: 25.4rem;
		height: 5.8rem;
	}

	#site-footer > .bottom {

		flex-direction: column;
		text-align: center;
	}

	#credits { margin-top: 2rem; }
}

@media screen and (max-width: 767px) {

	#site-footer > .top {

		background-color: var(--beige);
		height: initial;
		background-position: center top;
		background-size: 100% auto;
		padding-top: 8rem;
		padding-bottom: 2rem;
	}

	.footer-logo { margin: auto auto 0; }

	#footer-logo {

		width: 18.4rem;
		height: 4.2rem;
	}

	#site-footer > .bottom {

		font-size: 1.2rem;
		padding-bottom: 3rem;
	}
}

/* @end */


/* !@group modal */

#modal {

	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background-color: var(--overlay);
	z-index: 5;
	padding: 0 3rem;
	-webkit-backdrop-filter: blur(.8rem);
	backdrop-filter: blur(.8rem);
}

body.modal-open { overflow-y: hidden; }

.modal-open #modal {

	display: flex;
	pointer-events: all;
}

.modal-inner {

	width: 100%;
	max-width: 86rem;
	max-height: calc(100vh - 6rem);
	margin: auto;
	position: relative;
}

#modal.large .modal-inner { max-width: 151rem; }

#modal-content {

	position: relative;
	color: var(--text);
	background-color: var(--page);
	padding: 5rem 7rem 6.4rem;
	max-height: calc(100vh - 6rem - 4.2rem);
	border-radius: 4.5rem;
	overflow-y: scroll;
	box-shadow: 1rem 1rem 0 .5rem var(--magenta-dk);
}

.modal-inner::after {

	content: '';
	display: block;
	position: absolute;
	bottom: 0;
	left: 0;
	right: 0;
	height: 6.4rem;
	background: linear-gradient(0deg, rgba(255,255,255,.9) 0%, rgba(255,255,255,0) 100%);
	border-radius: 0 0 4.5rem 4.5rem;
	pointer-events: none;
}

#modal-close {

	display: flex;
	justify-content: center;
	align-items: center;
	height: 4.2rem;
	background-color: var(--page);
	padding: 0 2rem;
	margin: 0 5rem 0 auto;
	border-radius: 2rem 2rem 0 0;
	cursor: pointer;
	box-shadow: 1rem 1rem 0 .5rem var(--magenta-dk);
}

#modal-close .label {

	color: var(--text);
	font-family: var(--font1);
	font-size: 1.5rem;
	font-weight: 300;
	line-height: 1;
	text-transform: uppercase;
	letter-spacing: .05ch;
	padding-right: 1.6rem;
}

#modal-close svg {

	display: block;
	width: 1.2rem;
	height: 1.2rem;
	transform-origin: center;
	transition: transform .25s ease-in;
}

body:not(.touch) #modal-close:hover svg { transform: rotate(180deg); }

.ajax-modal-content,
.template-modal-content {

	color: var(--text);
	font-size: 1.8rem;
	line-height: 1.8;
}

.ajax-modal-content p,
.template-modal-content p { margin-bottom: 1.5ex; }

.ajax-modal-content a,
.template-modal-content a {

	color: var(--cyan);
	transition: color .35s ease;
}

body:not(.touch) .ajax-modal-content a:hover,
body:not(.touch) .template-modal-content a:hover { color: var(--cyan-dk); }

.ajax-modal-content strong,
.ajax-modal-content b,
.template-modal-content strong,
.template-modal-content b { font-weight: 600; }
.ajax-modal-content em,
.ajax-modal-content i,
.template-modal-content em,
.template-modal-content i { font-style: italic; }

.ajax-modal-content h1,
.ajax-modal-content h2,
.ajax-modal-content h3,
.ajax-modal-content h4,
.ajax-modal-content h5,
.ajax-modal-content h6,
.template-modal-content h1,
.template-modal-content h2,
.template-modal-content h3,
.template-modal-content h4,
.template-modal-content h5,
.template-modal-content h6 {

	font-family: var(--font2);
	color: var(--title);
	line-height: 1.1;
	margin-bottom: 1rem;
}

.ajax-modal-content h3,
.template-modal-content h3 {

	font-family: var(--font1);
	color: var(--cyan-dk);
	margin-top: 2rem;
}

.ajax-modal-content h6,
.template-modal-content h6 {

	font-family: var(--font1);
	color: var(--text);
	font-weight: 700;
	font-style: italic;
	margin-top: 2rem;
}

.ajax-modal-content h1,
.template-modal-content h1, { font-size: 1.8em; }
.ajax-modal-content h2,
.template-modal-content h2 { font-size: 1.6em; }
.ajax-modal-content h3,
.template-modal-content h3 { font-size: 1.4em; }
.ajax-modal-content h4,
.template-modal-content h4 { font-size: 1.3em; }
.ajax-modal-content h5,
.template-modal-content h5 { font-size: 1.2em; }
.ajax-modal-content h6,
.template-modal-content h6 { font-size: 1.1em; }

.ajax-modal-content #site,
.ajax-modal-content #main-menu { display: none; }

@media screen and (max-width: 767px) {

	#modal { padding: 1rem; }
	.modal-inner { max-height: calc(100vh - 3rem); }

	#modal-content {

		border-radius: 3rem;
		box-shadow: .5rem .5rem 0 .25rem var(--magenta-dk);
	}

	.modal-inner::after {

		height: 3rem;
		border-radius: 0 0 3rem 3rem;
		pointer-events: none;
	}

	#modal-close {

		height: 3.5rem;
		padding: 0 1.5rem;
		margin: 0 4rem 0 auto;
		border-radius: 1.5rem 1.5rem 0 0;
		box-shadow: .5rem .5rem 0 .25rem var(--magenta-dk);
	}

	#modal-content {

		padding: 3rem;
		max-height: calc(100vh - 2rem - 4.2rem);
	}

	.ajax-modal-content h1 { font-size: 2.2em; }
	.ajax-modal-content h2 { font-size: 2.1em; }
	.ajax-modal-content h3 { font-size: 2em; }
	.ajax-modal-content h4 { font-size: 1.9em; }
	.ajax-modal-content h5 { font-size: 1.8em; }
	.ajax-modal-content h6 { font-size: 1.7em; }

	.ajax-modal-content {

		font-size: 1.4rem;
		line-height: 1.6;
	}
}

/* @end */
