/* High Camp Vero Volley: sezioni delle pagine (homepage, camp, pacchetti,
   iscrizioni, contatti). */

/* Homepage: apertura */

.hcv-hero {
	position: relative;
	display: grid;
	background: var(--hcv-white);
}

.hcv-hero__media img {
	width: 100%;
	height: auto;
}

.hcv-hero__inner {
	width: min(100% - 2 * var(--hcv-gutter), var(--hcv-container));
	margin-inline: auto;
	padding-block: var(--hcv-space-4) var(--hcv-space-5);
}

.hcv-hero__title {
	margin-bottom: 0.15em;
	font-size: clamp(2.5rem, 1.6rem + 3.6vw, 4.5rem);
	letter-spacing: -0.02em;
}

.hcv-hero__dates {
	margin: 0 0 0.75rem;
	color: var(--hcv-red-action);
	font-size: clamp(1.25rem, 1.05rem + 0.8vw, 1.75rem);
	font-weight: 700;
}

.hcv-hero__text {
	max-width: 40ch;
	font-size: 1.125rem;
}

.hcv-hero__actions {
	display: flex;
	flex-wrap: wrap;
	gap: var(--hcv-space-2);
	margin-top: var(--hcv-space-3);
}

.hcv-hero__note {
	max-width: 46ch;
	margin: var(--hcv-space-3) 0 0;
	color: var(--hcv-muted);
	font-size: var(--hcv-small);
}

@media (max-width: 759px) {
	.hcv-hero__media img {
		aspect-ratio: 1 / 1;
		object-fit: cover;
		object-position: 50% 30%;
	}
}

@media (min-width: 760px) {
	.hcv-hero {
		min-height: clamp(520px, 52vw, 760px);
		overflow: hidden;
	}

	.hcv-hero__media,
	.hcv-hero__inner {
		grid-area: 1 / 1;
	}

	.hcv-hero__media img {
		width: 100%;
		height: 100%;
		object-fit: cover;
		object-position: 20% 50%;
	}

	.hcv-hero__inner {
		display: flex;
		align-items: center;
		justify-content: flex-end;
		padding-block: var(--hcv-space-5);
	}

	.hcv-hero__panel {
		width: min(100%, 520px);
		padding: var(--hcv-space-4);
		border-radius: var(--hcv-radius);
		background: rgba(255, 255, 255, 0.84);
		box-shadow: var(--hcv-shadow);
		backdrop-filter: blur(6px);
	}
}

@media (prefers-reduced-motion: no-preference) {
	.hcv-hero__panel {
		animation: hcv-rise 0.9s var(--hcv-ease) both;
	}
}

@keyframes hcv-rise {
	from {
		opacity: 0;
		transform: translateY(18px);
	}
}

/* Homepage: partner */

.hcv-partners {
	display: grid;
}

@media (min-width: 760px) {
	.hcv-partners {
		grid-template-columns: 1fr 1fr;
	}
}

.hcv-partners__item {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 1rem;
	padding: var(--hcv-space-5) var(--hcv-gutter);
	text-align: center;
	text-decoration: none;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	font-weight: 700;
}

.hcv-partners__item img {
	width: min(280px, 70vw);
	transition: transform 0.35s var(--hcv-ease);
}

.hcv-partners__item:hover img {
	transform: scale(1.03);
}

.hcv-partners__item--blue {
	background: var(--hcv-blue);
	color: var(--hcv-white);
}

.hcv-partners__item--blue:hover {
	background: var(--hcv-blue-deep);
	color: var(--hcv-white);
}

.hcv-partners__item--white {
	background: var(--hcv-white);
	color: var(--hcv-blue);
	border-bottom: 1px solid var(--hcv-line);
}

/* Homepage: sezioni del camp */

.hcv-discover {
	display: grid;
	gap: var(--hcv-space-3);
	margin: 0;
	padding: 0;
	list-style: none;
}

@media (min-width: 640px) {
	.hcv-discover {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (min-width: 1000px) {
	.hcv-discover {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

.hcv-discover li + li {
	margin-top: 0;
}

.hcv-discover__item {
	display: flex;
	flex-direction: column;
	height: 100%;
	overflow: hidden;
	background: var(--hcv-white);
	border: 1px solid var(--hcv-line);
	border-radius: var(--hcv-radius);
	color: var(--hcv-blue-ink);
	text-decoration: none;
	transition: box-shadow 0.3s ease, transform 0.3s var(--hcv-ease), border-color 0.3s ease;
}

.hcv-discover__item:hover {
	color: var(--hcv-blue-ink);
	border-color: #9fb6d3;
	box-shadow: var(--hcv-shadow);
	transform: translateY(-3px);
}

.hcv-discover__media {
	display: block;
	aspect-ratio: 16 / 10;
	overflow: hidden;
	background: var(--hcv-ice);
}

.hcv-discover__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.6s var(--hcv-ease);
}

.hcv-discover__item:hover .hcv-discover__media img {
	transform: scale(1.04);
}

.hcv-discover__media--top img {
	object-position: 50% 0;
}

.hcv-discover__item--contain .hcv-discover__media {
	padding: var(--hcv-space-3);
	background: linear-gradient(180deg, var(--hcv-ice), var(--hcv-ice-strong));
}

.hcv-discover__item--contain .hcv-discover__media img {
	object-fit: contain;
}

.hcv-discover__body {
	display: flex;
	flex: 1;
	flex-direction: column;
	gap: 0.35rem;
	padding: var(--hcv-space-3);
}

.hcv-discover__title {
	color: var(--hcv-blue);
	font-size: 1.625rem;
	line-height: 1.15;
}

.hcv-discover__body .hcv-text-link {
	margin-top: auto;
	padding-top: 0.5rem;
	color: var(--hcv-red-action);
}

/* Homepage: kit */

.hcv-kit__inner {
	text-align: center;
}

.hcv-kit__title {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 0.35em 0.6em;
	margin-bottom: 0.6rem;
}

.hcv-kit__title img {
	width: clamp(160px, 20vw, 240px);
	height: auto;
}

.hcv-kit p {
	margin: 0;
}

/* Fascia finale (iscrizioni) */

.hcv-cta {
	padding-block: var(--hcv-space-5);
	background: var(--hcv-blue);
	color: var(--hcv-white);
}

.hcv-cta__inner {
	display: grid;
	gap: var(--hcv-space-3);
	align-items: center;
}

@media (min-width: 900px) {
	.hcv-cta__inner {
		grid-template-columns: 1fr auto;
		gap: var(--hcv-space-5);
	}
}

.hcv-cta__title {
	margin-bottom: 0.3em;
	color: var(--hcv-white);
}

.hcv-cta__text {
	max-width: 60ch;
	margin: 0;
	color: #dbe8f8;
}

.hcv-cta__actions {
	display: flex;
	flex-wrap: wrap;
	gap: var(--hcv-space-2);
}

/* Blocco «Non è una vacanza» */

.hcv-dream {
	display: grid;
	gap: var(--hcv-space-5);
}

@media (min-width: 1000px) {
	.hcv-dream {
		grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
		align-items: start;
	}
}

.hcv-dream__intro {
	font-size: 1.1875rem;
}

.hcv-dream__steps {
	counter-reset: hcv-step;
	margin: 0;
	padding: 0;
	list-style: none;
}

.hcv-dream__steps li {
	display: grid;
	grid-template-columns: 2.75rem 1fr;
	gap: 0 1rem;
	padding: 1rem 0;
	border-top: 1px solid var(--hcv-line);
}

.hcv-dream__steps li + li {
	margin-top: 0;
}

.hcv-dream__steps .hcv-feature__icon {
	width: 2.75rem;
	height: 2.75rem;
	font-size: 1.1rem;
}

.hcv-dream__steps strong {
	display: block;
	color: var(--hcv-blue);
}

.hcv-day {
	display: grid;
	gap: var(--hcv-space-2);
	margin: 0;
	padding: 0;
	list-style: none;
}

@media (min-width: 720px) {
	.hcv-day {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

.hcv-day li + li {
	margin-top: 0;
}

.hcv-day__item {
	display: flex;
	gap: 0.85rem;
	padding: var(--hcv-space-2) var(--hcv-space-3);
	background: var(--hcv-white);
	border: 1px solid var(--hcv-line);
	border-radius: var(--hcv-radius);
}

.hcv-day__item .hcv-icon {
	margin-top: 0.25rem;
	color: var(--hcv-red);
	font-size: 1.25rem;
}

.hcv-day__item strong {
	display: block;
	color: var(--hcv-blue);
}

/* Pagine del camp: località */

.hcv-places {
	display: grid;
	gap: var(--hcv-space-3);
	margin: 0;
	padding: 0;
	list-style: none;
}

@media (min-width: 640px) {
	.hcv-places {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (min-width: 1000px) {
	.hcv-places {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

.hcv-places li + li {
	margin-top: 0;
}

.hcv-place {
	position: relative;
	display: flex;
	align-items: flex-end;
	min-height: 240px;
	overflow: hidden;
	border-radius: var(--hcv-radius);
	background: var(--hcv-blue-night);
	color: var(--hcv-white);
	text-decoration: none;
	isolation: isolate;
}

.hcv-place img {
	position: absolute;
	inset: 0;
	z-index: -2;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.6s var(--hcv-ease);
}

.hcv-place::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: linear-gradient(180deg, rgba(10, 44, 92, 0) 35%, rgba(10, 44, 92, 0.82) 100%);
}

.hcv-place:hover {
	color: var(--hcv-white);
}

.hcv-place:hover img {
	transform: scale(1.05);
}

.hcv-place__body {
	padding: var(--hcv-space-3);
}

.hcv-place__name {
	display: block;
	font-size: 1.75rem;
	line-height: 1.1;
}

.hcv-place__tag {
	display: inline-block;
	margin-top: 0.5rem;
	padding: 0.15rem 0.65rem;
	border-radius: 999px;
	background: var(--hcv-red-action);
	font-size: 0.875rem;
	font-weight: 700;
}

/* Special guests: settimane */

.hcv-guest-weeks {
	display: grid;
	gap: var(--hcv-space-4);
	margin: 0;
	padding: 0;
	list-style: none;
}

@media (min-width: 720px) {
	.hcv-guest-weeks {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (min-width: 1000px) {
	.hcv-guest-weeks {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

.hcv-guest-weeks > li + li {
	margin-top: 0;
}

.hcv-guest-week {
	height: 100%;
	padding: var(--hcv-space-3);
	background: var(--hcv-white);
	border: 1px solid var(--hcv-line);
	border-radius: var(--hcv-radius);
	scroll-margin-top: calc(var(--hcv-header) + 1rem);
}

.hcv-guest-week:target {
	border-color: var(--hcv-red);
	box-shadow: 0 0 0 3px rgba(244, 49, 63, 0.18);
}

.hcv-guest-week__label {
	margin: 0 0 var(--hcv-space-2);
	color: var(--hcv-blue);
	font-size: 1.375rem;
}

.hcv-guest-week__label span {
	display: block;
	color: var(--hcv-red-action);
	font-size: 1rem;
	font-weight: 700;
}

.hcv-guest-week__soon {
	display: grid;
	place-items: center;
	aspect-ratio: 5 / 4;
	margin-bottom: var(--hcv-space-2);
	border: 1px dashed #9fb6d3;
	border-radius: var(--hcv-radius);
	background: var(--hcv-ice);
	color: var(--hcv-muted);
	text-align: center;
}

.hcv-guest-week__soon .hcv-icon {
	margin: 0 auto 0.5rem;
	color: var(--hcv-blue);
	font-size: 2rem;
}

.hcv-guest-week .hcv-guest + .hcv-guest {
	margin-top: var(--hcv-space-4);
	padding-top: var(--hcv-space-3);
	border-top: 1px solid var(--hcv-line);
}

/* Contatti */

.hcv-contact {
	display: grid;
	gap: var(--hcv-space-5);
}

@media (min-width: 900px) {
	.hcv-contact {
		grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr);
		align-items: start;
	}
}

.hcv-contact__list {
	margin: 0 0 var(--hcv-space-3);
	padding: 0;
	list-style: none;
}

.hcv-contact__list li {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	padding: 0.85rem 0;
	border-bottom: 1px solid var(--hcv-line);
	font-size: 1.125rem;
}

.hcv-contact__list li + li {
	margin-top: 0;
}

.hcv-contact__list .hcv-icon {
	color: var(--hcv-red);
	font-size: 1.15rem;
}

.hcv-contact__list a {
	text-decoration: none;
}

.hcv-contact__list small {
	display: block;
	color: var(--hcv-muted);
	font-size: 0.875rem;
}

/* Iscrizioni */

.hcv-steps {
	display: grid;
	gap: var(--hcv-space-3);
	margin: 0;
	padding: 0;
	list-style: none;
	counter-reset: hcv-step;
}

@media (min-width: 720px) {
	.hcv-steps {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}
}

.hcv-steps li {
	counter-increment: hcv-step;
	padding-top: var(--hcv-space-2);
	border-top: 2px solid var(--hcv-blue);
}

.hcv-steps li + li {
	margin-top: 0;
}

.hcv-steps li::before {
	content: counter(hcv-step);
	display: grid;
	place-items: center;
	width: 2rem;
	height: 2rem;
	margin-bottom: 0.6rem;
	border-radius: 50%;
	background: var(--hcv-red-action);
	color: var(--hcv-white);
	font-weight: 700;
}

.hcv-steps strong {
	display: block;
	color: var(--hcv-blue);
	font-size: 1.125rem;
}

.hcv-registration {
	display: grid;
	gap: var(--hcv-space-5);
}

@media (min-width: 1000px) {
	.hcv-registration {
		grid-template-columns: minmax(0, 1fr) 320px;
		align-items: start;
	}

	.hcv-registration__aside {
		position: sticky;
		top: calc(var(--hcv-header) + var(--hcv-space-3));
	}
}

.hcv-registration__aside .hcv-panel + .hcv-panel {
	margin-top: var(--hcv-space-3);
}

.hcv-registration__aside h2 {
	font-size: 1.375rem;
}

.hcv-fieldset {
	display: grid;
	gap: var(--hcv-space-3);
	margin: 0;
	padding: var(--hcv-space-4);
	border: 1px solid var(--hcv-line);
	border-radius: var(--hcv-radius);
	background: var(--hcv-white);
	scroll-margin-top: calc(var(--hcv-header) + 1rem);
}

.hcv-fieldset > legend {
	float: left;
	width: 100%;
	margin: 0 0 var(--hcv-space-1);
	padding: 0;
	color: var(--hcv-blue);
	font-size: var(--hcv-h3);
	line-height: 1.2;
}

.hcv-fieldset > legend + * {
	clear: both;
}

.hcv-fieldset__intro {
	margin: -0.5rem 0 0;
	color: var(--hcv-muted);
	font-size: var(--hcv-small);
}

.hcv-registration__progress {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin: 0 0 var(--hcv-space-3);
	padding: 0;
	list-style: none;
	font-size: var(--hcv-small);
}

.hcv-registration__progress li + li {
	margin-top: 0;
}

.hcv-registration__progress a {
	display: inline-block;
	padding: 0.35rem 0.85rem;
	border: 1px solid var(--hcv-line);
	border-radius: 999px;
	color: var(--hcv-blue);
	text-decoration: none;
}

.hcv-registration__progress a:hover {
	border-color: var(--hcv-blue);
}

.hcv-registration__closed {
	padding: var(--hcv-space-4);
	border-radius: var(--hcv-radius);
	background: var(--hcv-ice);
	border: 1px solid var(--hcv-line);
}

.hcv-registration__done {
	padding: var(--hcv-space-4);
	border: 1px solid #a9d8bd;
	border-radius: var(--hcv-radius);
	background: #f0faf4;
}

.hcv-registration__done h2 {
	color: var(--hcv-success);
}

.hcv-transport[hidden] {
	display: none;
}

/* Guida alle taglie */

.hcv-sizes {
	display: grid;
	gap: var(--hcv-space-5);
}

@media (min-width: 1000px) {
	.hcv-sizes {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		align-items: start;
	}
}

.hcv-dream__subtitle {
	margin-top: var(--hcv-space-5);
}

.hcv-day--stack {
	grid-template-columns: 1fr;
}

.hcv-prices-notes {
	margin-top: var(--hcv-space-4);
	gap: var(--hcv-space-2);
}

.hcv-prices-notes .hcv-note {
	background: var(--hcv-white);
}

.hcv-lead-strong {
	margin-top: var(--hcv-space-3);
	color: var(--hcv-blue);
	font-size: 1.1875rem;
	font-weight: 700;
}

.hcv-retreats__goal {
	margin-top: var(--hcv-space-5);
	text-align: center;
}

.hcv-retreats__more {
	max-width: 60ch;
	margin: var(--hcv-space-2) auto 0;
	text-align: center;
}

.hcv-contact__form {
	background: var(--hcv-white);
	box-shadow: var(--hcv-shadow-soft);
}

@media (min-width: 640px) {
	.hcv-form__row--address {
		grid-template-columns: minmax(0, 3fr) minmax(0, 1fr);
	}
}
