/* High Camp Vero Volley: token, font, tipografia, contenitori.
   Identità del sito Elementor (bianco, blu Vero Volley, rosso per le azioni,
   DIN Pro, montagne innevate), con il rosso dei pulsanti scurito quanto basta
   per il contrasto AA col testo bianco. */

@font-face {
	font-family: "DIN Pro";
	src: url("../fonts/din-pro-regular.woff2") format("woff2");
	font-weight: 400;
	font-style: normal;
	font-display: swap;
}

:root {
	--hcv-blue: #1352a5;
	--hcv-blue-ink: #164698;
	--hcv-blue-deep: #0e3d7c;
	--hcv-blue-night: #0a2c5c;
	--hcv-red: #f4313f;
	--hcv-red-action: #dc2433;
	--hcv-red-hover: #bd1a28;
	--hcv-ice: #f4faff;
	--hcv-ice-strong: #e3f0fc;
	--hcv-line: #ccddee;
	--hcv-muted: #4a5e80;
	--hcv-white: #ffffff;
	--hcv-success: #1d7a4a;
	--hcv-error: #b3131f;

	--hcv-font: "DIN Pro", "Helvetica Neue", Arial, sans-serif;
	--hcv-text: 1.0625rem;
	--hcv-small: 0.9375rem;
	--hcv-h1: clamp(2.25rem, 1.6rem + 2.6vw, 3.75rem);
	--hcv-h2: clamp(1.875rem, 1.45rem + 1.7vw, 2.75rem);
	--hcv-h3: clamp(1.375rem, 1.2rem + 0.6vw, 1.625rem);
	--hcv-h4: 1.1875rem;

	--hcv-space-1: 0.5rem;
	--hcv-space-2: 1rem;
	--hcv-space-3: 1.5rem;
	--hcv-space-4: 2rem;
	--hcv-space-5: 3rem;
	--hcv-space-6: clamp(3.5rem, 2.5rem + 4vw, 6rem);

	--hcv-radius: 8px;
	--hcv-radius-sm: 5px;
	--hcv-shadow: 0 10px 30px -12px rgba(14, 61, 124, 0.28);
	--hcv-shadow-soft: 0 4px 16px -8px rgba(14, 61, 124, 0.22);
	--hcv-container: 1200px;
	--hcv-gutter: clamp(1rem, 0.6rem + 2vw, 2rem);
	--hcv-header: 76px;
	--hcv-ease: cubic-bezier(0.16, 1, 0.3, 1);
}

*,
*::before,
*::after {
	box-sizing: border-box;
}

html {
	-webkit-text-size-adjust: 100%;
	text-size-adjust: 100%;
	scroll-padding-top: calc(var(--hcv-header) + 1rem);
}

@media (prefers-reduced-motion: no-preference) {
	html {
		scroll-behavior: smooth;
	}
}

body {
	margin: 0;
	background: var(--hcv-white);
	color: var(--hcv-blue-ink);
	font-family: var(--hcv-font);
	font-size: var(--hcv-text);
	line-height: 1.6;
	font-synthesis: weight;
	-webkit-font-smoothing: antialiased;
	overflow-x: clip;
}

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

img,
svg,
video {
	display: block;
	max-width: 100%;
	height: auto;
}

h1,
h2,
h3,
h4,
h5,
h6 {
	margin: 0 0 0.5em;
	color: var(--hcv-blue);
	font-weight: 400;
	line-height: 1.12;
	letter-spacing: -0.01em;
	text-wrap: balance;
}

h1 {
	font-size: var(--hcv-h1);
}

h2 {
	font-size: var(--hcv-h2);
}

h3 {
	font-size: var(--hcv-h3);
}

h4 {
	font-size: var(--hcv-h4);
	font-weight: 700;
	letter-spacing: 0;
}

p {
	margin: 0 0 1em;
	text-wrap: pretty;
}

a {
	color: var(--hcv-blue);
	text-decoration-thickness: 1px;
	text-underline-offset: 0.18em;
	transition: color 0.2s ease;
}

a:hover {
	color: var(--hcv-red-action);
}

strong,
b {
	font-weight: 700;
}

ul,
ol {
	margin: 0 0 1em;
	padding-left: 1.25em;
}

li + li {
	margin-top: 0.35em;
}

:focus-visible {
	outline: 3px solid var(--hcv-red);
	outline-offset: 3px;
	border-radius: 2px;
}

.screen-reader-text {
	position: absolute !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px);
	white-space: nowrap;
}

.hcv-skip {
	position: absolute;
	top: -100px;
	left: 1rem;
	z-index: 100;
	padding: 0.75rem 1rem;
	background: var(--hcv-blue);
	color: var(--hcv-white);
	border-radius: var(--hcv-radius-sm);
}

.hcv-skip:focus {
	top: 1rem;
	color: var(--hcv-white);
}

.hcv-main:focus {
	outline: none;
}

/* Contenitori e sezioni */

.hcv-container {
	width: min(100% - 2 * var(--hcv-gutter), var(--hcv-container));
	margin-inline: auto;
}

.hcv-measure > * {
	max-width: 760px;
}

.hcv-section {
	padding-block: var(--hcv-space-6);
}

.hcv-section + .hcv-section:not(.hcv-section--tint, .hcv-section--blue, .hcv-section--snow) {
	padding-top: 0;
}

.hcv-section--tint {
	background: var(--hcv-ice);
}

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

.hcv-section--blue h2,
.hcv-section--blue h3 {
	color: var(--hcv-white);
}

.hcv-section--snow {
	position: relative;
	background: linear-gradient(rgba(255, 255, 255, 0.72), rgba(255, 255, 255, 0.86)), url("../img/mountains.webp") center / cover no-repeat;
}

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

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

	.hcv-grid--3 {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

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

/* Testo lungo (regolamento, privacy, schede) */

.hcv-prose {
	max-width: 760px;
}

.hcv-prose h2 {
	margin-top: 1.6em;
	font-size: var(--hcv-h3);
}

.hcv-prose h3 {
	margin-top: 1.5em;
	font-size: var(--hcv-h4);
	font-weight: 700;
	color: var(--hcv-blue);
}

.hcv-prose > :first-child {
	margin-top: 0;
}

.hcv-prose li::marker {
	color: var(--hcv-red);
}

.hcv-table-scroll {
	overflow-x: auto;
	margin: 0 0 1.5em;
	border: 1px solid var(--hcv-line);
	border-radius: var(--hcv-radius);
}

.hcv-table-scroll table {
	width: 100%;
	border-collapse: collapse;
	font-size: var(--hcv-small);
	font-variant-numeric: tabular-nums;
}

.hcv-table-scroll th,
.hcv-table-scroll td {
	padding: 0.65rem 0.9rem;
	border-bottom: 1px solid var(--hcv-line);
	text-align: left;
	vertical-align: top;
}

.hcv-table-scroll th {
	background: var(--hcv-ice);
	color: var(--hcv-blue);
	font-weight: 700;
}

.hcv-table-scroll tr:last-child td {
	border-bottom: 0;
}

.hcv-lead {
	margin: 0;
	font-size: clamp(1.1875rem, 1.05rem + 0.5vw, 1.4375rem);
	line-height: 1.55;
	color: var(--hcv-blue);
}
