/*-------------------------------------------------------------
1.0 Typography & tools
--------------------------------------------------------------*/
	:root {
  		--primary: #000 !important;
  		--secondary: #E4948E !important;
  		--body: #000 !important;
		--burger-width: 18px;
		--burger-height: 14px;
		--line-height: 2px;
		--line-gap: 6px;
		--color-lines: #ffffff;
		--color-lines-dark: #000;
		--color-lines-active: #E4948E;
		--transition-duration: 0.3s;
		--easing: ease;
	}

	[data-prehidden] { visibility: visible !important; }

	.gspb-breadcrumbs a[href*="/visibilite/"],
	.gspb-breadcrumbs a[href*="/visibilite/"] + .gspb-separator-breadcrumbs {
		display: none;
	}

	@media (max-width: 1300px) {
		.wp-block-navigation .has-child.open-on-click {
			width: 100%;
			justify-content: center;
			flex-wrap: wrap;
		}

		.gs-dynamicpanel .active {
			background-color: #000000cf !important;
			backdrop-filter: blur(5px);
			-webkit-backdrop-filter: blur(5px);
		}

		.gs-dynamicpanel .active .gsbp-33f64b4 {
			justify-content: space-around !important;
		}

		.wp-block-navigation
		.has-child.open-on-click
		> .wp-block-navigation__submenu-container {
			position: static !important;

			flex-basis: 100%;
			width: 100% !important;
			min-width: 0 !important;

			height: 0 !important;
			margin: 0 !important;
			padding: 0 !important;

			display: flex !important;
			flex-direction: column;
			align-items: center !important;

			border: 0 !important;
			background: transparent !important;
			box-shadow: none !important;

			opacity: 0 !important;
			visibility: hidden !important;
			overflow: hidden !important;
		}

		.wp-block-navigation
		.has-child.open-on-click
		> .wp-block-navigation-submenu__toggle[aria-expanded="true"]
		~ .wp-block-navigation__submenu-container {
			height: auto !important;

			margin-top: 10px !important;

			opacity: 1 !important;
			visibility: visible !important;
			overflow: visible !important;
		}

		/* Centre les éléments du sous-menu */
		.wp-block-navigation
		.has-child.open-on-click
		> .wp-block-navigation__submenu-container
		> .wp-block-navigation-item__content {
			width: 100%;
			justify-content: center;
			text-align: center;
		}

		.gs-dynamicpanel-close {
			display: none !important;
		}
	}

	.home footer {
		position: relative;
		z-index: 0;
	}

	.cta-footer-rose::before {
		content: "";
		position: absolute;
		bottom: 99%;
		right: 0;
		width: 320px;
		height: 500px;
		background-image: url("https://unpasdedanse.com/wp-content/uploads/2026/09/silhouette_danseur_2.png");
		background-size: contain;
		background-repeat: no-repeat;
		background-position: bottom right;
		pointer-events: none;
		z-index: -1;
	}

	.zone-profs-accueil::before {
		content: "";
		position: absolute;
		bottom: 100%;    /* bas de l'image collé au haut de la section */
		left: -80px;
		width: 400px;
		height: 430px;
		background-image: url("https://unpasdedanse.com/wp-content/uploads/2026/09/silhouette_danseuse_2.webp");
		background-size: contain;
		background-repeat: no-repeat;
		background-position: bottom left;
		pointer-events: none;
		z-index: -1;

		opacity: 0;
		animation: fade-in-silhouette linear both;
		animation-timeline: view();
		animation-range: entry 0% entry 60%;
	}

	@keyframes fade-in-silhouette {
		to { opacity: 1; }
	}

	@supports not (animation-timeline: view()) {
		.zone-profs-accueil::before { opacity: 1; }
	}

	nav ul li.gs-menu-item-has-children .gs-dropdown-menu {
		border-radius: 0 !important;
	}

	.planning-grid-cours .clearfix {
		display: none !important;
	}

	.wc-block-components-notice-banner__content a {
		display: none;
	}

	:where(.wp-site-blocks) > * {
		margin-block-start: 0px;
	}

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

	a {
		text-decoration: none !important;
		color: var(--primary);
	}

	a:hover {
		color: var(--secondary);
	}

	.fleche-cta-hero {
		display: inline-block;
		transition: transform 0.3s ease;
	}

	.cta-hero:hover .fleche-cta-hero {
		transform: translateX(3px);
	}

	/* gradient */
	.bloc-prof::before {
		content: "";
		position: absolute;

		left: 0;
		right: 0;
		bottom: 0;

		/* Dépasse largement vers le haut */
		height: 180%;

		z-index: 0;
		pointer-events: none;

		background: linear-gradient(
		to bottom,
		rgba(12, 13, 12, 0) 0%,
		rgba(12, 13, 12, 0.03) 30%,
		rgba(12, 13, 12, 0.12) 65%,
		rgba(12, 13, 12, 0.25) 100%
		);

		backdrop-filter: blur(75px) saturate(130%);
		-webkit-backdrop-filter: blur(75px) saturate(130%);

		mask-image: linear-gradient(
		to bottom,
		transparent 0%,
		rgba(0, 0, 0, 0.12) 15%,
		rgba(0, 0, 0, 0.4) 28%,
		rgba(0, 0, 0, 0.75) 40%,
		black 55%,
		black 100%
		);

		-webkit-mask-image: linear-gradient(
		to bottom,
		transparent 0%,
		rgba(0, 0, 0, 0.12) 15%,
		rgba(0, 0, 0, 0.4) 28%,
		rgba(0, 0, 0, 0.75) 40%,
		black 55%,
		black 100%
		);

		opacity: 0;
		transform: translateY(20px);
  		transition: opacity 0.45s ease, transform 0.6s cubic-bezier(.22, 1, .36, 1);
	}

	.carte-prof:hover .bloc-prof::before {
		opacity: 1;
		transform: translateY(0);
	}

	.gspbgrid_list_builder .gspbgrid_item span.dot-pts {
		color: #E4948E;
		margin-right: 5px;
	}

	@media (min-width: 768px) {
		.slide-cours-page-prof .is-locked ul {
			justify-content: flex-end;
			gap: 32px;
		}

		.slide-cours-page-prof .is-locked ul li.swiper-slide {
			margin-right: 0px !important;
		}

		.list-profs-page-cours ul {
			justify-content: center;
		}
	}

	.wp-singular .entry-content section:last-child::after, .wp-singular .wp-site-blocks > section[data-type="section-component"]:last-of-type::after {
		content: "";
		display: block;
		height: 480px;
	}

	.home .entry-content section:last-child::after, .home .wp-site-blocks > section[data-type="section-component"]:last-of-type::after {
		display: none !important;
	}

	@media (max-width: 768px) {
		.wp-singular .entry-content section:last-child::after, .wp-singular .wp-site-blocks > section[data-type="section-component"]:last-of-type::after {
			height: 580px;
		}

		.single-professeurs .hero-single-prof {
			background-position: 80% center !important;
		}
	}

	.cours-div-link p {
		margin: 0;
	}

	.date-event-part-1::first-letter { 
		text-transform: uppercase; 
	}

	/* formulaire de contact */
	.jet-form-builder {
		--form-text: #171717;
		--form-line: #8f8f8f;
		--form-bg: #f7f7f8;

		background: var(--form-bg);
		padding: 32px 32px 0px 32px;
		color: var(--form-text);

		display: flex;
		flex-direction: column;
		gap: 16px;
	}

	.jet-form-builder .jet-form-builder-row {
		margin: 0;
		padding: 0;
	}

	.jet-form-builder .jet-form-builder__field-wrap {
		width: 100%;
	}

	.jet-form-builder input:not(
		[type="hidden"],
		[type="checkbox"],
		[type="submit"]
	),
	.jet-form-builder textarea {
		width: 100%;
		box-sizing: border-box;

		border: 0;
		border-bottom: 1px solid var(--form-line);
		border-radius: 0;

		background: transparent !important;

		color: var(--form-text);

		font-family: inherit;
		font-size: 1rem;
		font-style: italic;
		font-weight: 400;
		line-height: 1.3;

		padding: 0 0 10px;

		outline: none;

		transition: border-color 0.25s ease;
	}

	.jet-form-builder input::placeholder,
	.jet-form-builder textarea::placeholder {
		color: var(--form-text);
		opacity: 1;
	}

	.jet-form-builder input:not(
		[type="hidden"],
		[type="checkbox"],
		[type="submit"]
	):focus,
	.jet-form-builder textarea:focus {
		border-bottom-color: #171717;
	}

	.jet-form-builder .wp-block-group {
		display: flex;
		width: 100%;
		gap: 16px;

		margin: 0 0 16px !important;
		padding: 0;
	}

	.jet-form-builder .wp-block-group > .jet-form-builder-row {
		width: calc(50% - 8px);
	}

	.jet-form-builder .wp-block-group > .cb-ike5wtut {
		order: 1;
	}

	.jet-form-builder .wp-block-group > .cb-hoc9vcrt {
		order: 2;
	}

	.jet-form-builder .phone-field-wrap {
		position: relative;
	}

	.jet-form-builder .phone-field-wrap .iti {
		width: 100%;
	}

	.jet-form-builder .iti__country-container {
		bottom: 10px;
		top: auto;
	}

	.jet-form-builder .iti__selected-country {
		background: transparent !important;
		border: 0;
		padding: 0;
	}

	.jet-form-builder .cb-lyfjkqao {
		margin-bottom: 16px;
	}

	.jet-form-builder .textarea-field {
		min-height: 80px;
		resize: vertical;
		padding-top: 0;
	}

	.jet-form-builder .cb-exjh9xez {
		margin-bottom: 16px;
	}

	.jet-form-builder .cb-exjh9xez .for-checkbox {
		display: flex;
		align-items: flex-start;
		gap: 10px;

		font-family: inherit;
		font-size: 13px;
		line-height: 1.5;
		font-style: normal;
	}

	.jet-form-builder .cb-exjh9xez input[type="checkbox"] {
		flex: 0 0 auto;
		width: 16px;
		height: 16px;
		margin: 2px 0 0;
	}

	.jet-form-builder .jet-form-builder__submit-wrap {
		margin-top: 0;
	}

	.jet-form-builder .jet-form-builder__action-button {
		display: inline-flex;
		align-items: center;
		justify-content: space-between !important;
		gap: 14px;

		min-width: 150px;
		height: 50px;

		padding: 0 20px;
		text-transform: uppercase;

		border: 0;
		border-radius: 50px;

		background: #e4948e;
		color: #000;

		font-family: inherit;
		font-size: 1rem;
		font-weight: 300;
		line-height: 1;

		cursor: pointer;

		transition: transform 0.25s ease;
	}

	.jet-form-builder .jet-form-builder__action-button::after {
		content: "";

		width: 14px;
		height: 16px;
		flex: 0 0 14px;

		background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 13.923 16.096' width='14' height='16' xmlns='http://www.w3.org/2000/svg' fill='none'%3E%3Cpath d='M1.406.585c-.4-.237-.906.051-.906.516v13.894c0 .465.506.753.906.516l11.723-6.947c.392-.232.392-.8 0-1.032L1.406.585Z' stroke='%23000' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");

		background-repeat: no-repeat;
		background-position: center;
		background-size: contain;

		transition: transform 0.25s ease;
	}

	.jet-form-builder .jet-form-builder__action-button:hover::after {
		transform: translateX(3px);
	}

	.jet-form-builder .jet-form-builder-messages-wrap {
		margin-top: 16px;
	}

	@media (max-width: 767px) {
		.jet-form-builder {
			padding: 35px 24px 30px;
			border-radius: 20px;
		}

		.jet-form-builder .wp-block-group {
			flex-direction: column;
			gap: 16px;
			margin-bottom: 16px !important;
		}

		.jet-form-builder .wp-block-group > .jet-form-builder-row {
			width: 100%;
		}

		.jet-form-builder .wp-block-group > .cb-ike5wtut {
			order: 1;
		}

		.jet-form-builder .wp-block-group > .cb-hoc9vcrt {
			order: 2;
		}

		.jet-form-builder .jet-form-builder__action-button {
			width: 100%;
		}
	}
		

	/* ---------------------------------------------------------
	Galerie albums — Un Pas de Danse
	Shortcode [upd_galerie_albums]
	--------------------------------------------------------- */

	.upd-alb {
		display: grid;
		grid-template-columns: minmax(220px, 300px) minmax(0, 1fr);
		gap: 32px 48px;
		align-items: stretch;
		max-width: 100%;
		color: #1B1A1F;
	}

	/* --- Colonne de gauche : liste des albums --- */

	.upd-alb__tabs {
		display: flex;
		flex-direction: column;
		gap: 6px;
		max-height: none;
		height: 100%;
		min-height: 0;
		overflow-y: auto;
		overscroll-behavior-y: contain;
		padding-right: 8px;
		scrollbar-width: thin;
		scrollbar-color: rgba(201, 127, 118, .45) transparent;
		scrollbar-gutter: stable;
	}

	.upd-alb__tabs::-webkit-scrollbar { width: 4px; }

	.upd-alb__tabs::-webkit-scrollbar-track {
		background: rgba(27, 26, 31, .06);
		border-radius: 4px;
	}

	.upd-alb__tabs::-webkit-scrollbar-thumb {
		background: rgba(201, 127, 118, .45);
		border-radius: 4px;
		transition: background .2s;
	}

	.upd-alb__tabs:hover::-webkit-scrollbar-thumb { background: rgba(201, 127, 118, .85); }

	.upd-alb__tab {
		display: grid;
		grid-template-columns: 2px minmax(0, 1fr);
		gap: 16px;
		align-items: stretch;
		width: 100%;
		padding: 12px 0;
		text-align: left;
		background: none;
		border: 0;
		color: #5C5761;
		cursor: pointer;
		transition: color .2s;
	}

	.upd-alb__tab:hover,
	.upd-alb__tab.is-active { color: #1B1A1F; }

	.upd-alb__bar {
		display: block;
		width: 2px;
		border-radius: 2px;
		background: transparent;
		transition: background .25s;
	}

	.upd-alb__tab.is-active .upd-alb__bar { background: #C97F76; }

	.upd-alb__body {
		display: flex;
		flex-direction: column;
		gap: 5px;
		min-width: 0;
	}

	.upd-alb__label {
		font-family: "The Seasons", serif;
		font-size: 17px;
		font-weight: 400;
		line-height: 1.3;
	}

	.upd-alb__count {
		font-size: 12.5px;
		font-weight: 300;
		color: #9A949E;
	}

	/* --- Colonne de droite : panneaux --- */

	.upd-alb__panel { display: none; }
	.upd-alb__panel.is-active { display: block; }

	.upd-alb__media {
		width: 100%;
		min-width: 0;
		max-width: 100%;
	}

	/* --- Grande image --- */

	.upd-alb__stage {
		position: relative;
		width: 100%;
		max-width: 100%;
		aspect-ratio: 16 / 9;
		border-radius: 0;
		overflow: hidden;
		background: rgba(244, 244, 244, .06);
	}

	.upd-alb__stage::after {
		content: "";
		position: absolute;
		left: 0;
		right: 0;
		bottom: 0;
		height: 44%;
		pointer-events: none;
		background: linear-gradient(to top, rgba(27, 26, 31, .62), transparent);
	}

	.upd-alb__slide {
		position: absolute;
		inset: 0;
		margin: 0;
		opacity: 0;
		transition: opacity .35s ease;
	}

	.upd-alb__slide.is-active { opacity: 1; }

	.upd-alb__slide img {
		display: block;
		width: 100%;
		height: 100%;
		object-fit: contain;
	}

	/* --- Légende --- */

	.upd-alb__slide figcaption {
		position: absolute;
		left: 26px;
		right: 130px;
		bottom: 24px;
		z-index: 2;
		display: flex;
		flex-direction: column;
		gap: 6px;
		padding: 0;
		background: none;
	}

	.upd-alb__eyebrow {
		font-size: 11px;
		font-weight: 500;
		letter-spacing: .18em;
		text-transform: uppercase;
		color: rgba(248, 246, 245, .72);
	}

	.upd-alb__caption {
		font-family: 'Cormorant Garamond', Georgia, serif;
		font-size: 30px;
		line-height: 1.15;
		color: #F8F6F5;
	}

	/* --- Flèches, en bas à droite --- */

	.upd-alb__navs {
		position: absolute;
		right: 26px;
		bottom: 24px;
		z-index: 3;
		display: flex;
		align-items: center;
		gap: 10px;
	}

	.upd-alb__nav {
		display: flex;
		align-items: center;
		justify-content: center;
		width: 52px;
		height: 52px;
		padding: 0;
		border: 0;
		border-radius: 50%;
		background: #fff;
		color: #1B1A1F;
		font-size: 19px;
		line-height: 1;
		cursor: pointer;
		transition: background .2s, transform .2s;
	}

	.upd-alb__nav:hover {
		background: rgba(248, 246, 245, .98);
		transform: scale(1.06);
	}

	.upd-alb__nav:focus-visible {
		outline: 2px solid #F8F6F5;
		outline-offset: 3px;
	}

	/* --- Bande de vignettes --- */

	.upd-alb__thumbs {
		display: flex;
		gap: 10px;
		margin-top: 16px;
		width: 100%;
		max-width: 100%;
		overflow-x: auto;
		overscroll-behavior-x: contain;
		scroll-snap-type: x proximity;
		scrollbar-width: none;
	}

	.upd-alb__thumbs::-webkit-scrollbar { display: none; }

	.upd-alb__thumb {
		flex: 0 0 auto;
		scroll-snap-align: center;
		padding: 0;
		border: 2px solid transparent;
		border-radius: 0;
		overflow: hidden;
		background: none;
		line-height: 0;
		opacity: .5;
		cursor: pointer;
		transition: opacity .2s, border-color .2s;
	}

	.upd-alb__thumb:hover { opacity: 1; }

	.upd-alb__thumb.is-active {
		opacity: 1;
		border-color: #C97F76;
	}

	.upd-alb__thumb img {
		display: block;
		width: 72px;
		height: 41px;
		object-fit: cover;
	}

	/* --- Mobile --- */

	@media (max-width: 782px) {

		.upd-alb {
			grid-template-columns: minmax(0, 1fr);
			gap: 24px;
		}

		.upd-alb__tabs {
			flex-direction: row;
			max-height: none;
			overflow-x: auto;
			overflow-y: visible;
			gap: 14px;
			padding-right: 0;
			padding-bottom: 6px;
			scrollbar-width: none;
		}

		.upd-alb__tabs::-webkit-scrollbar { display: none; }

		.upd-alb__tab {
			flex: 0 0 160px;
			gap: 12px;
			padding: 8px 0;
		}

		.upd-alb__panels { position: static; }

		.upd-alb__stage {
			border-radius: 0;
			background: #f0f0f0;
			aspect-ratio: 4 / 3;
		}

		.upd-alb__slide figcaption {
			left: 16px;
			right: 16px;
			bottom: 76px;
		}

		.upd-alb__caption { font-size: 22px; }

		.upd-alb__navs {
			right: 16px;
			bottom: 16px;
			gap: 8px;
		}

		.upd-alb__nav {
			width: 42px;
			height: 42px;
			font-size: 16px;
		}

		.cta-footer-rose::before {
			display: none !important;
		}

		.zone-profs-accueil::before {
			display: none !important;
		}
	}

	.upd-alb + p:empty,
	p:empty:has(+ .upd-alb) {
		display: none;
	}

	.marquee-logo::before,
	.marquee-logo::after {
		content: "";
		position: absolute;
		inset-block: 0;
		inline-size: 80px;
		z-index: 2;
		pointer-events: none;
	}

	.marquee-logo::before {
		inset-inline-start: 0;
		background: linear-gradient(to right, #fff, transparent);
	}

	.marquee-logo::after {
		inset-inline-end: 0;
		background: linear-gradient(to left, #fff, transparent);
	}