/* Atelier Maison Jaune — motion & finitions v1.8.2 */

/* Scroll progress */
.amj-scroll-line {
	position: fixed;
	top: 0;
	left: 0;
	z-index: 100;
	height: 2px;
	width: 0;
	background: linear-gradient(90deg, var(--amj-jaune-deep), var(--amj-jaune), #f0d070);
	pointer-events: none;
	box-shadow: 0 0 12px rgba(227, 177, 42, 0.45);
}

/* Pas d’opacity/transform sur html, body ou .wp-site-blocks : ça casse le menu fixed. */

@keyframes amj-rise {
	from {
		opacity: 0;
		transform: translateY(28px);
	}
	to {
		opacity: 1;
		transform: none;
	}
}

@keyframes amj-reveal-clip {
	from {
		opacity: 0;
		clip-path: inset(0 100% 0 0);
		transform: scale(1.05);
	}
	to {
		opacity: 1;
		clip-path: inset(0 0 0 0);
		transform: scale(1);
	}
}

@keyframes amj-shimmer {
	to {
		background-position: 200% center;
	}
}

@keyframes amj-float {
	0%,
	100% {
		transform: translateY(0);
	}
	50% {
		transform: translateY(-5px);
	}
}

@keyframes amj-line-grow {
	to {
		transform: scaleX(1);
	}
}

@keyframes amj-fade-in {
	from {
		opacity: 0;
	}
	to {
		opacity: 1;
	}
}

@keyframes amj-soft-zoom {
	from {
		transform: scale(1.08);
	}
	to {
		transform: scale(1.02);
	}
}

/* Hero entrance */
.amj-loaded .amj-hero--home .amj-hero__panel > * {
	animation: amj-rise 0.9s var(--amj-ease) backwards;
}

.amj-loaded .amj-hero--home .amj-hero__panel > :nth-child(1) { animation-delay: 0.06s; }
.amj-loaded .amj-hero--home .amj-hero__panel > :nth-child(2) { animation-delay: 0.16s; }
.amj-loaded .amj-hero--home .amj-hero__panel > :nth-child(3) { animation-delay: 0.26s; }
.amj-loaded .amj-hero--home .amj-hero__panel > :nth-child(4) { animation-delay: 0.36s; }
.amj-loaded .amj-hero--home .amj-hero__panel > :nth-child(5) { animation-delay: 0.46s; }

.amj-loaded .amj-hero--home .amj-hero__visual {
	animation: amj-reveal-clip 1.1s var(--amj-ease) 0.12s backwards;
}

.amj-hero--home .amj-hero__visual {
	overflow: hidden;
}

.amj-loaded .amj-hero--home .amj-hero__visual img {
	animation: amj-soft-zoom 8s var(--amj-ease) 0.3s both;
}

.amj-hero--page .amj-hero__visual img {
	transition: transform 0.15s linear;
}

.amj-loaded .amj-hero--page .amj-hero__panel > * {
	animation: amj-rise 0.8s var(--amj-ease) backwards;
}

.amj-loaded .amj-hero--page .amj-hero__panel > :nth-child(1) { animation-delay: 0.05s; }
.amj-loaded .amj-hero--page .amj-hero__panel > :nth-child(2) { animation-delay: 0.12s; }
.amj-loaded .amj-hero--page .amj-hero__panel > :nth-child(3) { animation-delay: 0.2s; }
.amj-loaded .amj-hero--page .amj-hero__panel > :nth-child(4) { animation-delay: 0.28s; }

.amj-loaded .amj-hero--page .amj-hero__visual {
	animation: amj-reveal-clip 1s var(--amj-ease) 0.06s backwards;
}

/* Kicker line */
.amj-kicker--line {
	display: inline-flex;
	align-items: center;
	gap: 0.85rem;
}

.amj-kicker--line::before {
	content: "";
	flex: 0 0 2.6rem;
	height: 1px;
	background: currentColor;
	transform: scaleX(0);
	transform-origin: left;
	transition: transform 0.7s var(--amj-ease);
}

.is-in .amj-kicker--line::before,
.amj-loaded .amj-hero .amj-kicker--line::before {
	transform: scaleX(1);
}

/* Nav underline */
.amj-nav__list a {
	position: relative;
}

.amj-nav__list a::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: -5px;
	width: 100%;
	height: 1px;
	background: var(--amj-jaune-deep);
	transform: scaleX(0);
	transform-origin: right;
	transition: transform 0.35s var(--amj-ease);
}

.amj-nav__list a:hover::after,
.amj-nav__list .current-menu-item a::after {
	transform: scaleX(1);
	transform-origin: left;
}

/* Buttons shimmer */
.amj-btn {
	position: relative;
	overflow: hidden;
	isolation: isolate;
}

.amj-btn::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: linear-gradient(
		105deg,
		transparent 35%,
		rgba(255, 255, 255, 0.28) 50%,
		transparent 65%
	);
	transform: translateX(-130%);
	transition: transform 0.65s var(--amj-ease);
	pointer-events: none;
}

.amj-btn:hover::after {
	transform: translateX(130%);
}

.amj-btn:hover {
	box-shadow: 0 10px 26px rgba(22, 20, 18, 0.12);
}

.amj-btn:active {
	transform: translateY(0);
	box-shadow: none;
}

/* Textlink underline draw */
.amj-textlink {
	position: relative;
	border-bottom-color: transparent !important;
}

.amj-textlink::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	width: 100%;
	height: 1px;
	background: currentColor;
	transform: scaleX(0.35);
	transform-origin: left;
	transition: transform 0.4s var(--amj-ease);
}

.amj-textlink:hover::after {
	transform: scaleX(1);
}

/* Stagger */
.amj-js .amj-stagger:not(.is-in) > * {
	opacity: 0;
	transform: translateY(24px);
}

.amj-js .amj-stagger.is-in > * {
	opacity: 1;
	transform: none;
	transition:
		opacity 0.7s var(--amj-ease),
		transform 0.7s var(--amj-ease);
}

.amj-js .amj-stagger.is-in > :nth-child(1) { transition-delay: 0.04s; }
.amj-js .amj-stagger.is-in > :nth-child(2) { transition-delay: 0.1s; }
.amj-js .amj-stagger.is-in > :nth-child(3) { transition-delay: 0.16s; }
.amj-js .amj-stagger.is-in > :nth-child(4) { transition-delay: 0.22s; }
.amj-js .amj-stagger.is-in > :nth-child(5) { transition-delay: 0.28s; }
.amj-js .amj-stagger.is-in > :nth-child(6) { transition-delay: 0.34s; }
.amj-js .amj-stagger.is-in > :nth-child(7) { transition-delay: 0.4s; }
.amj-js .amj-stagger.is-in > :nth-child(8) { transition-delay: 0.46s; }

/* Mosaic polish */
.amj-mosaic__item::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	background: linear-gradient(160deg, rgba(227, 177, 42, 0.2), transparent 50%);
	opacity: 0;
	transition: opacity 0.45s var(--amj-ease);
	pointer-events: none;
}

.amj-mosaic__item:hover::before {
	opacity: 1;
}

.amj-mosaic__meta {
	z-index: 2;
	transition: transform 0.45s var(--amj-ease);
}

.amj-mosaic__item:hover .amj-mosaic__meta {
	transform: translateY(-5px);
}

.amj-mosaic__n {
	transition: letter-spacing 0.35s var(--amj-ease), color 0.35s;
}

.amj-mosaic__item:hover .amj-mosaic__n {
	letter-spacing: 0.28em;
	color: var(--amj-jaune);
}

/* Quote mark */
.amj-quote blockquote {
	position: relative;
}

.amj-quote blockquote::before {
	content: "“";
	display: block;
	margin-bottom: -0.12em;
	font-family: var(--amj-serif);
	font-size: clamp(4.5rem, 12vw, 8rem);
	font-weight: 300;
	line-height: 0.75;
	color: var(--amj-jaune);
	opacity: 0.4;
	animation: amj-fade-in 1s var(--amj-ease) both;
}

.amj-quote.is-in p {
	animation: amj-rise 0.85s var(--amj-ease) 0.1s both;
}

.amj-quote.is-in cite {
	animation: amj-rise 0.85s var(--amj-ease) 0.22s both;
}

/* Featured glow line */
.amj-featured-wrap {
	position: relative;
	overflow: hidden;
}

.amj-featured-wrap::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 2px;
	background: linear-gradient(
		90deg,
		transparent,
		var(--amj-jaune) 20%,
		var(--amj-jaune) 80%,
		transparent
	);
	background-size: 200% 100%;
	animation: amj-shimmer 5s ease-in-out infinite;
}

.amj-featured-wrap::after {
	content: "";
	position: absolute;
	width: 50%;
	height: 50%;
	right: -10%;
	top: -20%;
	background: radial-gradient(circle, rgba(227, 177, 42, 0.12), transparent 70%);
	pointer-events: none;
}

/* Process numbers */
.amj-process__list li {
	transition: background 0.35s var(--amj-ease), border-color 0.35s;
}

.amj-process__list li span {
	display: inline-block;
	transition: transform 0.35s var(--amj-ease), color 0.35s;
}

.amj-process__list li:hover span {
	transform: scale(1.15);
	color: var(--amj-jaune-deep);
}

/* Atelier */
.amj-atelier__inset {
	transition: transform 0.6s var(--amj-ease), box-shadow 0.6s var(--amj-ease);
}

.amj-atelier.is-in .amj-atelier__inset {
	animation: amj-float 5.5s ease-in-out infinite;
}

.amj-atelier__main {
	overflow: hidden;
}

.amj-atelier__main img {
	transition: transform 1.2s var(--amj-ease);
}

.amj-atelier.is-in:hover .amj-atelier__main img {
	transform: scale(1.035);
}

/* Workshop number */
.amj-workshop__num {
	display: inline-block;
	transition: transform 0.45s var(--amj-ease);
}

.amj-workshop.is-in .amj-workshop__num {
	animation: amj-rise 0.85s var(--amj-ease) 0.15s backwards;
}

.amj-workshop.is-in .amj-workshop__price:hover .amj-workshop__num {
	transform: scale(1.03) rotate(-1deg);
}

/* Product cards */
.amj-card,
.amj-gallery__item {
	transition: transform 0.4s var(--amj-ease);
}

.amj-card:hover,
.amj-gallery__item:hover {
	transform: translateY(-5px);
}

.amj-card .amj-card__media,
.amj-gallery__media {
	outline: 1px solid transparent;
	outline-offset: -8px;
	transition: outline-color 0.35s, box-shadow 0.4s var(--amj-ease);
}

.amj-card:hover .amj-card__media,
.amj-gallery__item:hover .amj-gallery__media {
	outline-color: rgba(227, 177, 42, 0.5);
	box-shadow: 0 14px 36px rgba(22, 20, 18, 0.12);
}

.amj-card__peek {
	transition: opacity 0.3s, transform 0.35s var(--amj-ease), letter-spacing 0.3s;
}

.amj-card:hover .amj-card__peek {
	letter-spacing: 0.2em;
}

/* Shop families / tags */
.amj-shop-families__item {
	transition: transform 0.4s var(--amj-ease), box-shadow 0.4s var(--amj-ease);
}

.amj-shop-families__item:hover {
	transform: translateY(-3px);
	box-shadow: 0 12px 28px rgba(22, 20, 18, 0.16);
}

.amj-shop-families__item span {
	transition: transform 0.35s var(--amj-ease);
}

.amj-shop-families__item:hover span {
	transform: translateY(-2px);
}

.amj-shop-tags__pill {
	transition:
		transform 0.25s var(--amj-ease),
		background 0.25s,
		border-color 0.25s,
		color 0.25s,
		box-shadow 0.25s;
}

.amj-shop-tags__pill:hover {
	transform: translateY(-2px);
	box-shadow: 0 5px 14px rgba(22, 20, 18, 0.1);
}

/* Footer wordmark */
.amj-footer__wordmark {
	background: linear-gradient(
		100deg,
		var(--amj-jaune) 0%,
		#f5dc82 40%,
		var(--amj-jaune) 70%,
		#c99612 100%
	);
	background-size: 220% auto;
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
	animation: amj-shimmer 12s linear infinite;
}

.amj-footer__menu a {
	transition: color 0.25s, padding-left 0.25s var(--amj-ease);
}

.amj-footer__menu a:hover {
	padding-left: 0.25rem;
}

/* GCast texture */
.amj-gcast {
	position: relative;
	overflow: hidden;
}

.amj-gcast::before {
	content: "";
	position: absolute;
	inset: 0;
	opacity: 0.05;
	background: repeating-linear-gradient(
		-45deg,
		transparent,
		transparent 8px,
		var(--amj-bone) 8px,
		var(--amj-bone) 9px
	);
	pointer-events: none;
}

/* Section title gold rule */
.amj-section__head h2,
.amj-process__intro h2,
.amj-atelier__text h2,
.amj-workshop__copy h2,
.amj-metals h2 {
	position: relative;
}

.amj-section__head.is-in h2::after,
.is-in .amj-section__head h2::after,
.amj-process.is-in .amj-process__intro h2::after,
.amj-atelier.is-in .amj-atelier__text h2::after,
.amj-workshop.is-in .amj-workshop__copy h2::after,
.amj-metals.is-in h2::after {
	content: "";
	display: block;
	width: 3.25rem;
	height: 2px;
	margin-top: 0.8rem;
	background: var(--amj-jaune);
	transform: scaleX(0);
	transform-origin: left;
	animation: amj-line-grow 0.75s var(--amj-ease) 0.2s forwards;
}

/* Cart */
.amj-cart-link {
	transition: transform 0.3s var(--amj-ease);
}

.amj-cart-link:hover {
	transform: scale(1.06);
}

/* Logo polish */
.amj-logo {
	transition: opacity 0.25s;
}

.amj-logo:hover {
	opacity: 0.85;
}

.amj-mark {
	transition: transform 0.4s var(--amj-ease);
}

.amj-logo:hover .amj-mark {
	transform: rotate(-4deg) scale(1.05);
}

/* Header scrolled */
.amj-header {
	transition: background 0.35s, box-shadow 0.35s, border-color 0.35s;
}

.amj-header.is-scrolled {
	box-shadow: 0 8px 28px rgba(22, 20, 18, 0.06);
}

/* Image fade-in when loaded */
.amj-img-fade {
	opacity: 0;
	transition: opacity 0.6s var(--amj-ease);
}

.amj-img-fade.is-ready {
	opacity: 1;
}

/* Mobile dock polish */

.amj-mobile-dock a {
	position: relative;
	transition: color 0.25s, background 0.25s;
}

.amj-mobile-dock a::before {
	content: "";
	position: absolute;
	top: 0;
	left: 20%;
	right: 20%;
	height: 2px;
	background: var(--amj-jaune);
	transform: scaleX(0);
	transition: transform 0.3s var(--amj-ease);
}

.amj-mobile-dock a.is-active::before,
.amj-mobile-dock a[aria-current="page"]::before {
	transform: scaleX(1);
}

.amj-mobile-dock a:active {
	background: rgba(243, 238, 228, 0.08);
}

/* Forms focus */
.amj-form input,
.amj-form textarea,
.amj-form select,
.amj-shop-search {
	transition: border-color 0.25s, box-shadow 0.25s;
}

.amj-form input:focus,
.amj-form textarea:focus,
.amj-form select:focus,
.amj-shop-search:focus-within {
	box-shadow: 0 0 0 3px rgba(227, 177, 42, 0.28);
}

/* Selection */
body.amj-theme ::selection {
	background: rgba(227, 177, 42, 0.35);
	color: var(--amj-ink);
}

/* Scroll reveal base */
.amj-js .amj-reveal,
.amj-js .amj-atelier,
.amj-js .amj-workshop,
.amj-js .amj-featured-wrap,
.amj-js .amj-process,
.amj-js .amj-metals,
.amj-js .amj-gcast,
.amj-js .amj-shop-hero,
.amj-js .amj-shop-filters,
.amj-js .amj-hours,
.amj-js .amj-form-band,
.amj-js .amj-quote {
	opacity: 0;
	transform: translateY(22px);
	transition:
		opacity 0.8s var(--amj-ease),
		transform 0.8s var(--amj-ease);
}

.amj-js .amj-reveal.is-in,
.amj-js .amj-atelier.is-in,
.amj-js .amj-workshop.is-in,
.amj-js .amj-featured-wrap.is-in,
.amj-js .amj-process.is-in,
.amj-js .amj-metals.is-in,
.amj-js .amj-gcast.is-in,
.amj-js .amj-shop-hero.is-in,
.amj-js .amj-shop-filters.is-in,
.amj-js .amj-hours.is-in,
.amj-js .amj-form-band.is-in,
.amj-js .amj-quote.is-in {
	opacity: 1;
	transform: none;
}

/* Metals / CTA polish */
.amj-metals .amj-btn {
	transition: transform 0.3s var(--amj-ease), background 0.25s, color 0.25s, box-shadow 0.3s;
}

.amj-metals .amj-btn:hover {
	box-shadow: 0 10px 24px rgba(22, 20, 18, 0.12);
}

/* Ticker soft edge */
.amj-ticker {
	position: relative;
}

.amj-ticker::before,
.amj-ticker::after {
	content: "";
	position: absolute;
	top: 0;
	bottom: 0;
	width: 2.5rem;
	z-index: 1;
	pointer-events: none;
}

.amj-ticker::before {
	left: 0;
	background: linear-gradient(90deg, var(--amj-ink), transparent);
}

.amj-ticker::after {
	right: 0;
	background: linear-gradient(270deg, var(--amj-ink), transparent);
}

@media (prefers-reduced-motion: reduce) {
	.amj-scroll-line,
	.amj-loaded .amj-hero--home .amj-hero__panel > *,
	.amj-loaded .amj-hero--home .amj-hero__visual,
	.amj-loaded .amj-hero--home .amj-hero__visual img,
	.amj-atelier.is-in .amj-atelier__inset,
	.amj-workshop.is-in .amj-workshop__num,
	.amj-footer__wordmark,
	.amj-featured-wrap::before,
	.amj-quote blockquote::before,
	.amj-quote.is-in p,
	.amj-quote.is-in cite {
		animation: none !important;
	}

	.amj-js .amj-reveal,
	.amj-js .amj-stagger:not(.is-in) > *,
	.amj-js .amj-atelier,
	.amj-js .amj-workshop,
	.amj-js .amj-featured-wrap,
	.amj-js .amj-process,
	.amj-js .amj-metals,
	.amj-js .amj-gcast,
	.amj-js .amj-shop-hero,
	.amj-js .amj-shop-filters,
	.amj-js .amj-quote,
	.amj-img-fade {
		opacity: 1 !important;
		transform: none !important;
		transition: none !important;
	}

	.amj-card:hover,
	.amj-gallery__item:hover,
	.amj-mosaic__item:hover,
	.amj-shop-families__item:hover,
	.amj-btn::after {
		transform: none;
		box-shadow: none;
	}
}
