:root {
	--color-surface-default: #f6f6f3;
	--color-surface-alt: #ffffff;
	--color-surface-inverse: #22223b;
	--color-accent-primary: #3460a6;
	--color-accent-secondary: #f3b700;
	--color-border-default: #e0e0dc;
	--color-text-primary: #23232a;
	--color-text-secondary: #5c5c6c;
	--color-text-inverse: #ffffff;
	--color-focus: #3460a6cc;

	--font-heading: Inter, "Helvetica Neue", Arial, sans-serif;
	--font-body: Inter, "Helvetica Neue", Arial, sans-serif;

	--fs-xl: 2.25rem;
	--fs-lg: 1.5rem;
	--fs-md: 1.25rem;
	--fs-base: 1rem;
	--fs-sm: 0.875rem;

	--space-1: 0.25rem;
	--space-2: 0.5rem;
	--space-3: 1rem;
	--space-4: 1.5rem;
	--space-5: 2rem;
	--space-6: 3rem;

	--container-max: 1120px;
	--container-pad: 1.5rem;

	--radius-sm: 6px;

	--border-default: 1px solid var(--color-border-default);
}

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

html {
	font-size: 100%;
	-webkit-text-size-adjust: 100%;
}

body {
	font-family: var(--font-body);
	font-size: var(--fs-base);
	line-height: 1.6;
	color: var(--color-text-primary);
	background: var(--color-surface-default);
	min-height: 100vh;
	text-rendering: optimizeLegibility;
}

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

a {
	color: var(--color-accent-primary);
	text-decoration: underline;
	text-underline-offset: 2px;
}
a:hover {
	color: var(--color-accent-primary);
}
a:focus-visible {
	outline: 2px solid var(--color-focus);
	outline-offset: 2px;
}

button,
input,
select,
textarea,
.btn {
	font-family: inherit;
	font-size: inherit;
	color: inherit;
	background: none;
	border: none;
}

button {
	cursor: pointer;
	background: var(--color-accent-primary);
	color: var(--color-text-inverse);
	padding: 0.75em 1.25em;
	border-radius: var(--radius-sm);
	border: var(--border-default);
}
button:hover {
	background: #2d5492;
}
.btn {
	cursor: pointer;
	background: var(--color-accent-primary);
	color: var(--color-text-inverse);
	padding: 0.75em 1.25em;
    text-align: center;
    text-decoration: none;
	border-radius: var(--radius-sm);
	border: var(--border-default);
}
.btn:hover {
	background: #2d5492;
    color: #fff;
}
button:focus-visible {
	outline: 2px solid var(--color-focus);
	outline-offset: 2px;
}
.btn:focus-visible {
	outline: 2px solid var(--color-focus);
	outline-offset: 2px;
}
input,
textarea,
select {
	padding: 0.5em 0.75em;
	border: var(--border-default);
	border-radius: var(--radius-sm);
	background: var(--color-surface-alt);
}
input:focus-visible,
textarea:focus-visible,
select:focus-visible {
	outline: 2px solid var(--color-focus);
	outline-offset: 1px;
}

h1,
h2,
h3,
h4,
h5,
h6 {
	font-family: var(--font-heading);
	font-weight: 600;
	line-height: 1.3;
	color: var(--color-text-primary);
}

h1 {
	font-size: var(--fs-xl);
	margin-block-end: var(--space-4);
}
h2 {
	font-size: var(--fs-lg);
	margin-block-end: var(--space-3);
}
h3 {
	font-size: var(--fs-md);
	margin-block-end: var(--space-3);
}
h4,
h5,
h6 {
	font-size: var(--fs-base);
	margin-block-end: var(--space-2);
}

p {
	margin-block-end: var(--space-3);
	color: var(--color-text-primary);
}
small {
	font-size: var(--fs-sm);
	color: var(--color-text-secondary);
}

ul,
ol {
	padding-inline-start: 1.25rem;
}
li {
	margin-block-end: var(--space-1);
}

blockquote {
	margin-block-end: var(--space-3);
	padding-inline-start: var(--space-3);
	border-left: 3px solid var(--color-border-default);
	color: var(--color-text-secondary);
}

hr {
	border: none;
	border-top: var(--border-default);
	margin-block: var(--space-5);
}

:where(article, section, div) > :last-child {
	margin-block-end: 0;
}

.container {
	max-width: var(--container-max);
	margin-inline: auto;
	padding-inline: var(--container-pad);
	width: 100%;
}

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

.surface {
	background: var(--color-surface-alt);
	border: var(--border-default);
}

.surface-inverse {
	background: var(--color-surface-inverse);
	color: var(--color-text-inverse);
}

.card {
	background: var(--color-surface-alt);
	border: var(--border-default);
	border-radius: var(--radius-sm);
	padding: var(--space-4);
	display: flex;
	flex-direction: column;
	gap: var(--space-3);
}

.stack {
	display: flex;
	flex-direction: column;
	gap: var(--space-3);
}

.inline {
	display: flex;
	align-items: center;
	gap: var(--space-2);
	flex-wrap: wrap;
}

.grid {
	display: grid;
	gap: var(--space-4);
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

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

.media {
	overflow: hidden;
	border-radius: var(--radius-sm);
	background: var(--color-border-default);
}
.media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.tag {
	display: inline-block;
	background: var(--color-accent-secondary);
	color: var(--color-text-primary);
	padding: 0.25em 0.5em;
	border-radius: var(--radius-sm);
	font-size: var(--fs-sm);
}

.muted {
	color: var(--color-text-secondary);
}

@media (max-width: 700px) {
	:root {
		--container-pad: 1rem;
	}
	h1 {
		font-size: var(--fs-lg);
	}
	h2 {
		font-size: var(--fs-md);
	}
	h3 {
		font-size: var(--fs-base);
	}
	.section {
		padding-block: var(--space-5);
	}
	.grid {
		grid-template-columns: 1fr;
	}
	.card {
		padding: var(--space-3);
	}
}

.ms-header {
	background: var(--color-surface-inverse);
	color: var(--color-text-inverse);
	position: sticky;
	top: 0;
	z-index: 1000;
}
.ms-header__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding-block: var(--space-3);
}
.ms-header__brand {
	display: flex;
	align-items: center;
	gap: var(--space-2);
	text-decoration: none;
	color: var(--color-text-inverse);
}
.ms-header__logo {
	height: 40px;
	width: auto;
	display: block;
}
.ms-header__brand-text {
	font-size: 1.35rem;
	font-weight: 600;
}
.ms-header__nav {
	display: block;
}
.ms-header__menu {
	display: flex;
	gap: var(--space-4);
	list-style: none;
}
.ms-header__menu a {
	color: var(--color-text-inverse);
	text-decoration: none;
}
.ms-header__menu a:hover {
	text-decoration: underline;
}
.ms-header__toggle {
	display: none;
	align-items: center;
	justify-content: center;
	height: 44px;
}
.ms-header__toggle-lines,
.ms-header__toggle-lines::before,
.ms-header__toggle-lines::after {
	display: block;
	width: 22px;
	height: 2px;
	background: var(--color-text-inverse);
	position: relative;
}
.ms-header__toggle-lines::before,
.ms-header__toggle-lines::after {
	content: "";
	position: absolute;
	left: 0;
}
.ms-header__toggle-lines::before {
	top: -6px;
}
.ms-header__toggle-lines::after {
	top: 6px;
}

@media (max-width: 900px) {
	.ms-header__nav {
		position: fixed;
		inset: 0 0 0 auto;
		width: 85%;
		max-width: 320px;
		background: var(--color-surface-inverse);
		transform: translateX(100%);
		transition: none;
		overflow-y: auto;
		padding: var(--space-4);
	}
	.ms-header__nav.is-open {
		transform: translateX(0);
	}
	.ms-header__menu {
		flex-direction: column;
		gap: var(--space-3);
	}
	.ms-header__toggle {
		display: flex;
		align-items: center;
		z-index: 1111;
	}
	.ms-header__brand-text {
		font-size: 1.1rem;
	}
	.ms-header__logo {
		height: 30px;
	}
}

.ms-footer {
	background: var(--color-surface-inverse);
	color: var(--color-text-inverse);
	padding-block: var(--space-5);
}
.ms-footer__inner {
	display: flex;
	flex-direction: column;
	gap: var(--space-4);
}
.ms-footer__nav ul {
	list-style: none;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-3);
}
.ms-footer__nav a {
	color: var(--color-text-inverse);
	text-decoration: none;
}
.ms-footer__nav a:hover {
	text-decoration: underline;
}
.ms-footer__desc {
	max-width: 600px;
    color: #fff;
}
.lv-footer__partners {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 20px;
    padding: 32px 0;
}
.lv-footer__partner {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 8px 12px;
    background: #ffffff08;
    border: 1px solid rgba(255, 255, 255, .06);
    border-radius: 10px;
    transition: border-color .2s ease, background-color .2s ease;
}
.lv-footer__partner img {
    max-height: 40px;
    max-width: 100px;
    object-fit: contain;
    filter: grayscale(20%);
    opacity: .85;
    transition: opacity .2s ease, filter .2s ease;
}
.ms-consent {
	position: fixed;
	bottom: 0;
	left: 0;
	width: 100%;
	background: var(--color-surface-alt);
	border-top: var(--border-default);
	padding: var(--space-3);
	z-index: 1000;
}
.ms-consent__inner {
	max-width: 800px;
	margin-inline: auto;
	display: flex;
	flex-direction: column;
	gap: var(--space-2);
	text-align: center;
}
.ms-consent__actions {
	display: flex;
	gap: var(--space-2);
	justify-content: center;
}

.ms-age {
	position: fixed;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	z-index: 1100;
}
.ms-age__overlay {
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, 0.6);
}
.ms-age__modal {
	position: relative;
	background: var(--color-surface-alt);
	padding: var(--space-5);
	border-radius: var(--radius-sm);
	max-width: 400px;
	width: 90%;
	text-align: center;
	display: flex;
	flex-direction: column;
	gap: var(--space-3);
}
.ms-age__actions {
	display: flex;
	gap: var(--space-2);
	justify-content: center;
}
[hidden] {
	display: none;
}
.cookie-policy .cp-intro {
	max-width: 720px;
	margin-inline: auto;
	text-align: left;
}

.cookie-policy .cp-narrow {
	max-width: 680px;
}

.cookie-policy .cp-block {
	max-width: 720px;
}

.cookie-policy .cp-update {
	max-width: 600px;
}

.cookie-policy .cp-block,
.cookie-policy .cp-update {
	margin-inline: auto;
}

.cookie-policy .cp-types {
	display: flex;
	flex-direction: column;
	gap: var(--space-4);
}

.cookie-policy .cp-type-item {
	border-top: var(--border-default);
	padding-top: var(--space-4);
	max-width: 720px;
}

.cookie-policy .cp-type-item:first-of-type {
	border-top: none;
	padding-top: 0;
}

@media (max-width: 700px) {
	.cookie-policy .cp-intro,
	.cookie-policy .cp-block,
	.cookie-policy .cp-update,
	.cookie-policy .cp-type-item {
		max-width: 100%;
	}
}

.tc-page {
}

.tc-intro__inner {
	max-width: 720px;
	margin-inline: auto;
	text-align: left;
	display: flex;
	flex-direction: column;
	gap: var(--space-3);
}

.tc-intro__secondary {
	color: var(--color-text-secondary);
}

.tc-section {
	border-top: var(--border-default);
}

.tc-block {
	display: flex;
	flex-direction: column;
	gap: var(--space-3);
}

.tc-block--medium {
	max-width: 760px;
}

.tc-block--narrow {
	max-width: 720px;
}

.tc-section .tc-block {
	margin-inline: auto;
}

@media (max-width: 700px) {
	.tc-block--medium,
	.tc-block--narrow,
	.tc-intro__inner {
		max-width: 100%;
	}
}

.pp-main {
}

.pp-intro__inner {
	max-width: 720px;
	margin-inline: auto;
}

.pp-section .pp-block {
	max-width: 760px;
}

.pp-subblock {
	padding-top: var(--space-4);
	border-top: var(--border-default);
	margin-top: var(--space-4);
	display: flex;
	flex-direction: column;
	gap: var(--space-3);
}

.pp-narrow {
	max-width: 720px;
}

.pp-rights {
	max-width: 720px;
}

.pp-final__inner {
	max-width: 680px;
	margin-inline: auto;
}

@media (max-width: 700px) {
	.pp-intro__inner,
	.pp-narrow,
	.pp-rights,
	.pp-final__inner,
	.pp-section .pp-block {
		max-width: 100%;
	}
}

.contact-page .contact-hero__container {
	max-width: 720px;
	margin-inline: auto;
	text-align: center;
}
.contact-page .contact-reasons__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: var(--space-4);
}
.contact-page .contact-reasons__col {
	min-width: 0;
}
.contact-page .contact-limits__container {
	max-width: 800px;
}
.contact-page .contact-form__container {
	max-width: 640px;
}
.contact-page .contact-form {
	display: flex;
	flex-direction: column;
	gap: var(--space-3);
}
.contact-page .contact-form__fields {
	display: flex;
	flex-direction: column;
	gap: var(--space-3);
}
.contact-page .contact-form__response {
	font-size: var(--fs-sm);
	color: var(--color-text-secondary);
}
.contact-page .contact-processing__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--space-4);
}
.contact-page .contact-data__container {
	max-width: 720px;
}
.contact-page .contact-links__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--space-4);
}
.contact-page .contact-links__card {
	display: block;
	padding: var(--space-4);
	background: var(--color-surface-alt);
	border: var(--border-default);
	border-radius: var(--radius-sm);
	text-decoration: none;
	color: inherit;
}
.contact-page .contact-final__container {
	max-width: 800px;
}

@media (max-width: 700px) {
	.contact-page .contact-reasons__grid {
		grid-template-columns: 1fr;
	}
	.contact-page .contact-processing__grid {
		grid-template-columns: 1fr;
	}
	.contact-page .contact-links__grid {
		grid-template-columns: 1fr;
	}
}

.jr-page {
}

.jr-hero-container {
	max-width: 720px;
	margin-inline: auto;
	text-align: center;
}
.jr-hero-text {
	display: flex;
	flex-direction: column;
	gap: var(--space-3);
}
.jr-hero-note {
	color: var(--color-text-secondary);
}

.jr-risk-grid {
	margin-top: var(--space-4);
}
.jr-media {
	margin-bottom: var(--space-4);
}

.jr-two-col {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--space-5);
}
.jr-col {
	min-width: 0;
}

.jr-tools-grid {
	margin-top: var(--space-4);
}

.jr-help-grid {
	margin-top: var(--space-4);
}

.jr-narrow {
	max-width: 720px;
}

.jr-center {
	max-width: 600px;
	margin-inline: auto;
	text-align: center;
}

@media (max-width: 700px) {
	.jr-two-col {
		grid-template-columns: 1fr;
		gap: var(--space-4);
	}
	.jr-hero-container {
		text-align: left;
	}
}

.home-main {
	display: block;
}

.home-hero__inner {
	max-width: 640px;
	margin-inline: auto;
	text-align: center;
	display: flex;
	flex-direction: column;
	gap: var(--space-3);
}

.home-catalogue__grid {
	margin-top: var(--space-4);
}
.home-card {
	height: 100%;
}
.home-card .btn {
	margin-top: auto;
}

.home-position__inner {
	max-width: 720px;
}

.home-transparency__grid {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}
.home-transparency__col {
	display: flex;
	flex-direction: column;
	gap: var(--space-2);
}

.home-responsible__grid {
	align-items: start;
}

.home-methodology__inner {
	max-width: 720px;
}

.home-nav__grid a {
	display: block;
	text-decoration: none;
}

.home-reminder__inner {
	max-width: 640px;
	margin-inline: auto;
	padding: var(--space-4);
	display: flex;
	flex-direction: column;
	gap: var(--space-2);
	text-align: center;
}

@media (max-width: 700px) {
	.home-hero__inner {
		text-align: left;
	}
	.home-transparency__grid {
		grid-template-columns: 1fr;
	}
	.home-nav__grid {
		grid-template-columns: 1fr;
	}
}

.methodologie .intro-container {
	max-width: 720px;
	margin-inline: auto;
	text-align: center;
}

.methodologie-principes .media {
	margin-bottom: var(--space-4);
}
.methodologie-principes .principes-grid > * {
	min-width: 0;
}

.methodologie-criteres .criteres-container {
	max-width: 800px;
}

.methodologie-verification .verification-container {
	max-width: 760px;
}
.methodologie-verification .media {
	margin-bottom: var(--space-4);
}

.methodologie-structure .structure-container {
	max-width: 760px;
}

.methodologie-limites .limites-container {
	max-width: 760px;
}

.methodologie-responsable .responsable-container {
	max-width: 760px;
}
.methodologie-responsable .media {
	margin-bottom: var(--space-4);
}

.methodologie-transparence .transparence-container {
	max-width: 760px;
}

.methodologie-conclusion .conclusion-container {
	max-width: 720px;
	margin-inline: auto;
	text-align: center;
}

@media (max-width: 700px) {
	.methodologie .intro-container,
	.methodologie-conclusion .conclusion-container {
		margin-inline: 0;
		text-align: left;
	}
}

.ap-main {
	display: block;
}

.ap-hero-grid {
	display: grid;
	grid-template-columns: 60% 40%;
	gap: var(--space-5);
	align-items: center;
}
.ap-hero-text {
	max-width: 65ch;
}
.ap-hero-media {
	width: 100%;
}

.ap-grid-3 {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: var(--space-4);
}
.ap-grid-2 {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--space-4);
}

.ap-narrow {
	max-width: 70ch;
}

.ap-method-media {
	margin-top: var(--space-4);
	max-width: 600px;
}

.ap-center {
	max-width: 65ch;
	margin-inline: auto;
	text-align: center;
}

@media (max-width: 700px) {
	.ap-hero-grid {
		grid-template-columns: 1fr;
	}
	.ap-grid-3 {
		grid-template-columns: 1fr;
	}
	.ap-grid-2 {
		grid-template-columns: 1fr;
	}
	.ap-method-media {
		max-width: 100%;
	}
}

.faq-page {
}

.faq-intro__inner {
	max-width: 720px;
	margin-inline: auto;
	text-align: left;
}

.faq-block {
	max-width: 800px;
	margin-inline: auto;
}

.faq-list {
	display: flex;
	flex-direction: column;
	gap: var(--space-3);
}

.faq-item {
	border: var(--border-default);
	border-radius: var(--radius-sm);
	background: var(--color-surface-alt);
}

.faq-question {
	width: 100%;
	text-align: left;
	padding: var(--space-3);
	font-weight: 600;
	background: none;
	color: var(--color-text-primary);
}

.faq-question[aria-expanded="true"] {
	border-bottom: var(--border-default);
}

.faq-answer {
	display: none;
	padding: var(--space-3);
}

.faq-answer p {
	margin: 0;
}

.faq-links__inner {
	max-width: 640px;
	margin-inline: auto;
	text-align: center;
}

@media (max-width: 700px) {
	.faq-block {
		max-width: 100%;
	}
	.faq-intro__inner {
		max-width: 100%;
	}
	.faq-links__inner {
		max-width: 100%;
	}
}

.thankyou {
	max-width: 640px;
	margin-inline: auto;
	text-align: center;
	display: flex;
	flex-direction: column;
	gap: var(--space-4);
}

.thankyou__content {
	display: flex;
	flex-direction: column;
	gap: var(--space-3);
}

.thankyou__actions {
	display: flex;
	flex-direction: column;
	gap: var(--space-3);
	align-items: center;
	justify-content: center;
	margin-top: var(--space-3);
}

.thankyou__button {
	display: inline-block;
	background: var(--color-accent-primary);
	color: var(--color-text-inverse);
	padding: 0.75em 1.25em;
	border-radius: var(--radius-sm);
	border: var(--border-default);
	text-decoration: none;
}

.thankyou__button:hover {
	background: #2d5492;
}

.thankyou__button:focus-visible {
	outline: 2px solid var(--color-focus);
	outline-offset: 2px;
}

.thankyou__link {
	color: var(--color-accent-primary);
	text-decoration: underline;
}

.thankyou__link:focus-visible {
	outline: 2px solid var(--color-focus);
	outline-offset: 2px;
}

@media (min-width: 700px) {
	.thankyou__actions {
		flex-direction: row;
	}
}
