.home { display: block; overflow-x: clip; }

.home > section { padding-block: 0; }
.home > .home-hero     { padding-top: max(calc(var(--header-h) + 2.5rem), min(10.648vw, 11.5rem)); }
.home > .home-band     { padding-top: clamp(2.5rem, 4.919vw, 5.3125rem); }
.home > .home-team     { padding-top: clamp(4rem, 10.069vw, 10.875rem); }
.home > .home-services { padding-top: clamp(4rem, 11.667vw, 12.6rem); }
.home-contact-wrap > .section-contact { padding-top: clamp(3.5rem, 11.806vw, 12.75rem); padding-bottom: clamp(3rem, 9.954vw, 10.75rem); }

.home-hero { text-align: center; }
.hero-title {
	max-width: 1435px; margin: 0 auto;
	font-family: var(--font-display); font-weight: 500;
	font-size: clamp(2.5rem, 0.6rem + 5.35vw, 6.157rem); line-height: 1.073;
	color: var(--c-burgundy);
}
.hero-title span:not(.n3t-word):not(.n3t-mask) { color: var(--c-red); }

.exp-head { margin-top: clamp(1.75rem, 3.588vw, 3.875rem); display: flex; flex-direction: column; align-items: center; }

.exp-list-wrap { max-width: 50.4563rem; margin: clamp(.75rem, 1.215vw, 1.3125rem) auto 0; }
.exp-row { border-bottom: 1px solid var(--c-burgundy); }
.exp-row a {
	display: block;
	font-size: clamp(1.125rem, 0.8rem + 1.25vw, 2.0264rem); line-height: 1.4545; letter-spacing: .05em;
	text-transform: uppercase; color: var(--c-burgundy);
	padding-block: clamp(.25rem, .434vw, .46875rem) clamp(.3rem, .492vw, .53125rem);
	transition: color .25s ease;
}
.exp-row a:hover { color: var(--c-red); }

.home-band__stage { position: relative; }
.home-band__frame { position: relative; z-index: 1; aspect-ratio: 1622 / 651; overflow: hidden; }
.home-band__img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.home-band__letters {
	position: absolute; z-index: 0; pointer-events: none;
	left: -9.371%; top: 47.773%; width: 35.887%; aspect-ratio: 582.091 / 907.697;
}
.home-band__letters img {
	position: absolute; left: 50%; top: 50%;
	width: 155.936%; max-width: none; height: auto; aspect-ratio: 907.697 / 582.091;
	transform: translate(-50%, -50%) rotate(90deg);
}
.home-band__ring {
	position: absolute; z-index: 2; pointer-events: none;
	left: 71.702%; top: 65.131%; width: 28.298%; aspect-ratio: 1;
	border: 1px solid var(--c-footer); border-radius: 50%;
}
.home-band__circle {
	position: absolute; z-index: 3;
	left: 64.118%; top: 37.634%; width: 31.319%; aspect-ratio: 1;
	display: flex; align-items: center; justify-content: center;
	border-radius: 50%; background: var(--c-red);
}
.home-band__intro {
	width: 79.921%; margin: 0;
	text-align: center; color: var(--c-light);
	font-size: clamp(.875rem, 0.45rem + .625vw, 1.125rem); line-height: 1.6667;
}

.team-head { max-width: 39.4375rem; margin: 0 auto clamp(2.5rem, 5.671vw, 6.125rem); display: flex; flex-direction: column; align-items: center; text-align: center; }
.team-head__intro { margin: clamp(.875rem, 1.273vw, 1.375rem) 0 clamp(1.25rem, 1.852vw, 2rem); line-height: 1.1538; }

.home-team .team-cluster { position: relative; }
.home-team__ring, .home-team__letters, .home-team__disc { position: absolute; z-index: 0; pointer-events: none; display: none; }
.home-team__ring { aspect-ratio: 1; border: 1px solid var(--c-footer); border-radius: 50%; }
.home-team__disc { aspect-ratio: 1; border-radius: 50%; background: var(--c-red); }
.home-team__letters { aspect-ratio: 717 / 460; }
.home-team__letters img { display: block; width: 100%; height: auto; aspect-ratio: 717 / 460; }

.home-services {
	position: relative; z-index: 2;
	display: grid; grid-template-columns: minmax(0, 420px) minmax(0, 730px) 1fr;
	column-gap: clamp(2rem, 6.25vw, 6.75rem); align-items: start;
}
.services-head { max-width: 26.25rem; }
.services-head__intro { margin-top: clamp(.875rem, 1.273vw, 1.375rem); line-height: 1.1538; }
.home-services__ring {
	position: absolute; z-index: -1; pointer-events: none;
	left: 89.583%; bottom: max(-14.931vw, -16.125rem); width: min(17.419vw, 301px); aspect-ratio: 1;
	border: 1px solid var(--c-footer); border-radius: 50%;
}

.service-cards { display: grid; grid-template-columns: 1fr 1fr; gap: 0; }
.service-card {
	position: relative;
	display: flex; flex-direction: column; align-items: center; justify-content: flex-start;
	text-align: center; aspect-ratio: 365 / 363;
	padding: 30.685% 1.25rem 0;
	border-radius: 0;
	transition: border-radius .35s ease;
}
.service-card--paiement { background: var(--c-red); color: var(--c-light); }
.service-card--tarifs   { background: var(--c-white); color: var(--c-burgundy); }
.service-card__num { font-size: var(--fs-intro); line-height: 1.6667; }
.service-card__title { margin-top: clamp(.75rem, 1.331vw, 1.4375rem); font-family: var(--font-serif); font-weight: 300; font-size: var(--fs-lead); line-height: 1.1538; }
.service-card__desc { font-size: var(--fs-cta); line-height: 2.1429; white-space: nowrap; }
.service-card__arrow {
	position: absolute; left: 50%; top: 65.565%; transform: translateX(-50%);
	background: var(--c-white); border-color: var(--c-burgundy);
	opacity: 0; transition: opacity .35s ease, background-color .3s ease;
}
.service-card:hover .service-card__arrow, .service-card:focus-visible .service-card__arrow { opacity: 1; }
.service-card--paiement .service-card__arrow { border-color: var(--c-light); background: transparent; }
.service-card--paiement .service-card__arrow .c-arrow svg path { stroke: var(--c-light); }
.service-card--tarifs .service-card__arrow:hover { background: var(--c-burgundy); }
.service-card--tarifs .service-card__arrow:hover .c-arrow svg path { stroke: var(--c-white); }

@media (min-width: 601px) and (hover: hover) and (pointer: fine) {
	.service-card:hover { border-radius: 50%; }
}

.home-contact-wrap { position: relative; }
.home-contact__disc {
	position: absolute; z-index: 0; pointer-events: none;
	left: calc(max(0px, (100% - 1728px) / 2) - min(8.738vw, 151px));
	top: min(18.345vw, 317px); width: min(15.914vw, 275px); aspect-ratio: 1;
	border-radius: 50%; background: var(--c-red);
}
.home-contact-wrap > .section-contact { position: relative; z-index: 1; }

@media (min-width: 1025px) {
	.home-contact-wrap .section-contact__cols { max-width: 74rem; column-gap: clamp(2rem, 9.606vw, 10.375rem); }
}

@media (min-width: 1025px) {
	.home-team .team-cluster { aspect-ratio: 1622 / 1111.4; }
	.home-team .team-circle { width: 29.495%; }
	.home-team .team-circle--feature { left: 3.206%;  top: 13.946%; }
	.home-team .team-circle--a       { left: 35.265%; top: 0; }
	.home-team .team-circle--c       { left: 70.530%; top: 3.869%; }
	.home-team .team-circle--b       { left: 51.110%; top: 43.009%; }
	.home-team .team-circle--e       { left: 18.927%; top: 56.955%; }

	.home-team__ring, .home-team__letters, .home-team__disc { display: block; }
	.home-team__ring    { left: -14.057%; top: 66.853%; width: 18.557%; }
	.home-team__letters { left: 65.228%;  top: 78.460%; width: 44.205%; }
	.home-team__disc    { left: 61.097%;  top: 69.822%; width: 28.607%; }
}

@media (max-width: 1024px) {
	.home > .home-team { padding-top: clamp(3rem, 8vw, 5rem); }

	.home-band__letters { left: -10%; top: 72%; width: 24%; }
	.home-band__circle {
		position: relative; left: auto; top: auto;
		width: min(26rem, 78%); margin: -14% 3% 0 auto;
	}
	.home-band__intro { font-size: var(--fs-intro); }
	.home-band__ring { left: auto; right: -12%; top: auto; bottom: -10%; width: min(24rem, 62%); }

	.home-team .team-cluster { isolation: isolate; }
	.home-team .team-circle { position: relative; inset: auto; z-index: 1; }
	.home-team__ring, .home-team__letters, .home-team__disc { display: block; }
	.home-team__ring    { left: -16%; top: 18%; width: 34%; }
	.home-team__disc    { right: -6%; bottom: -6%; width: 34%; }
	.home-team__letters { right: -14%; bottom: -14%; width: 52%; }

	.home-services { grid-template-columns: minmax(0, 1fr); gap: clamp(2rem, 5vw, 3rem); }
	.services-head { max-width: 36rem; }
	.service-cards { max-width: 45.625rem; }
	.home-services__ring { display: none; }

	.home-contact__disc { left: auto; right: -10%; top: auto; bottom: clamp(5rem, 16vw, 9rem); width: clamp(110px, 26vw, 200px); }
}

@media (max-width: 600px) {
	.home-band__frame { aspect-ratio: 3 / 2; }
	.home-band__img { object-position: 38% center; }
	.home-band__letters { display: none; }
	.home-band__circle { width: min(86vw, 22rem); margin: -20% -2% 0 auto; }
	.home-band__intro { width: 72%; font-size: .875rem; line-height: 1.5; }
	.home-band__ring { right: -22%; bottom: -12%; width: 74vw; }

	.home-team__ring    { left: -30%; top: 34%; width: 52%; }
	.home-team__disc    { right: -12%; bottom: -4%; width: 46%; }
	.home-team__letters { right: -26%; bottom: -12%; width: 72%; }

	.service-cards { max-width: none; }
	.service-card { justify-content: center; padding: 0 .75rem; }
	.service-card__num { font-size: .875rem; line-height: 1.4; }
	.service-card__title { margin-top: .375rem; font-size: 1.125rem; line-height: 1.2; }
	.service-card__desc { margin-top: .25rem; font-size: .75rem; line-height: 1.4; white-space: normal; }
	.service-card__arrow { position: static; transform: none; margin-top: .75rem; width: 2.5rem; height: 2.5rem; opacity: 1; }

	.home-contact__disc { right: -14%; bottom: clamp(8.5rem, 40vw, 10rem); width: 30vw; }
}
