:root {
  --asaju-blue: #007aff;
  --asaju-pink: #e61c6e;
  --asaju-gunmetal: #324158;
  --asaju-ink: #172033;
  --asaju-light: #f4f6f8;
  --asaju-violet: #7759d9;
  --asaju-grid: rgba(50, 65, 88, 0.08);
}

body { background: var(--asaju-light); color: var(--asaju-ink); }
.lf-site-header { background: rgba(255,255,255,.94); border-bottom-color: #d8e0e8; backdrop-filter: blur(16px); }
.lf-asaju-brand { display: block; width: clamp(9rem, 13vw, 12.5rem); }
.lf-asaju-brand img { display: block; width: 100%; height: auto; mix-blend-mode: multiply; }
.lf-site-footer .lf-asaju-brand img { filter: grayscale(1) brightness(0) invert(1); mix-blend-mode: normal; }
.lf-site-header .lf-c-button { background: var(--asaju-pink); border-color: var(--asaju-pink); color: #fff; }

.lf-asaju-home { overflow: clip; }
.lf-asaju-home h1,
.lf-asaju-home h2,
.lf-asaju-home h3 { font-family: Manrope, ui-sans-serif, system-ui, sans-serif; letter-spacing: -.055em; text-wrap: balance; }
.lf-asaju-home h2 { margin: 0; font-size: clamp(2.7rem, 6vw, 6rem); line-height: .94; }
.lf-asaju-home p { text-wrap: pretty; }
.lf-asaju-section-number,
.lf-asaju-eyebrow { margin: 0 0 1.25rem; color: var(--asaju-blue); font-size: .75rem; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
.lf-asaju-actions { display: flex; flex-wrap: wrap; gap: .8rem; margin-top: 2rem; }
.lf-asaju-home .lf-c-button { border-radius: .65rem; font-weight: 800; }
.lf-asaju-home .lf-c-button:not(.is-secondary):not(.is-gradient) { background: var(--asaju-pink); border-color: var(--asaju-pink); color: #fff; }
.lf-asaju-home .lf-c-button.is-secondary { background: transparent; border-color: var(--asaju-blue); color: #005fcc; }
.lf-asaju-home .lf-c-button.is-gradient { background: linear-gradient(120deg, var(--asaju-blue), var(--asaju-pink)); border-color: transparent; color: #fff; }

.lf-asaju-hero {
  position: relative;
  min-height: min(850px, calc(100svh - 5rem));
  display: grid;
  align-items: center;
  background-color: #fff;
  background-image: linear-gradient(var(--asaju-grid) 1px, transparent 1px), linear-gradient(90deg, var(--asaju-grid) 1px, transparent 1px);
  background-size: 42px 42px;
}
.lf-asaju-hero::before { content: ""; position: absolute; inset: auto -15% -45% 48%; width: 65vw; aspect-ratio: 1; border-radius: 50%; background: radial-gradient(circle, rgba(0,122,255,.16), rgba(230,28,110,.08) 38%, transparent 70%); }
.lf-asaju-hero__layout { position: relative; display: grid; grid-template-columns: minmax(0, .92fr) minmax(22rem, .68fr); gap: clamp(2rem, 7vw, 7rem); align-items: center; padding-block: clamp(4rem, 8vw, 8rem); }
.lf-asaju-hero__copy { position: relative; z-index: 2; }
.lf-asaju-hero h1 { max-width: 11ch; margin: 0; font-size: clamp(3.6rem, 7vw, 7.6rem); line-height: .87; font-weight: 800; }
.lf-asaju-lead { max-width: 43rem; margin: 2rem 0 0; color: #526174; font-size: clamp(1.05rem, 1.4vw, 1.35rem); line-height: 1.65; }
.lf-asaju-proof { display: flex; flex-wrap: wrap; gap: .6rem; margin: 2.2rem 0 0; padding: 0; list-style: none; }
.lf-asaju-proof li { padding: .5rem .75rem; border: 1px solid #cdd7e2; border-radius: 99rem; color: var(--asaju-gunmetal); font-size: .72rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; background: rgba(255,255,255,.85); }
.lf-asaju-hero__visual { position: relative; margin: 0; padding: clamp(1rem, 3vw, 2.5rem); border: 1px solid #d8e0e8; border-radius: .9rem; background: rgba(255,255,255,.9); box-shadow: 0 2.5rem 7rem rgba(50,65,88,.18); transform: rotate(1.5deg); }
.lf-asaju-hero__visual::after { content: ""; position: absolute; inset: .75rem; pointer-events: none; border: 1px solid rgba(0,122,255,.22); border-radius: .55rem; }
.lf-asaju-hero__visual img { display: block; width: 100%; max-height: 620px; object-fit: contain; }
.lf-asaju-hero__visual figcaption { margin-top: 1rem; color: #526174; font-size: .75rem; text-transform: uppercase; letter-spacing: .08em; }
.lf-asaju-hero__index { position: absolute; z-index: 2; top: 1rem; right: 1rem; padding: .4rem .55rem; color: #fff; background: var(--asaju-gunmetal); border-radius: .35rem; font-size: .7rem; font-weight: 800; }

.lf-asaju-manifesto { padding-block: clamp(5rem, 10vw, 10rem); background: var(--asaju-gunmetal); color: #fff; }
.lf-asaju-manifesto__layout { display: grid; grid-template-columns: .38fr 1fr; gap: 3rem; align-items: start; }
.lf-asaju-manifesto .lf-asaju-section-number { color: #89bfff; }
.lf-asaju-manifesto h2 { max-width: 12ch; }
.lf-asaju-manifesto p:last-child { max-width: 43rem; margin: 2rem 0 0; color: #d9e1eb; font-size: clamp(1.1rem, 1.8vw, 1.45rem); line-height: 1.75; }

.lf-asaju-collections,
.lf-asaju-innovation,
.lf-asaju-faq { padding-block: clamp(5rem, 9vw, 9rem); }
.lf-asaju-heading { display: grid; grid-template-columns: 1.35fr .65fr; gap: 4rem; align-items: end; margin-bottom: 4rem; }
.lf-asaju-heading > p { margin: 0; color: #526174; font-size: 1.05rem; line-height: 1.7; }
.lf-asaju-collection-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 1rem; }
.lf-asaju-collection { position: relative; min-height: 29rem; display: flex; flex-direction: column; justify-content: flex-end; padding: clamp(1.5rem, 3vw, 2.5rem); overflow: hidden; border-radius: .9rem; color: #fff; box-shadow: 0 1.25rem 3.5rem rgba(50,65,88,.12); }
.lf-asaju-collection::before { content: ""; position: absolute; inset: 0; background: radial-gradient(circle at 70% 25%, rgba(255,255,255,.42), transparent 19%), repeating-radial-gradient(circle at 70% 25%, transparent 0 34px, rgba(255,255,255,.16) 35px 36px); transition: transform .45s ease; }
.lf-asaju-collection:hover::before { transform: scale(1.08) rotate(3deg); }
.lf-asaju-collection > * { position: relative; z-index: 1; }
.lf-asaju-collection span { font-size: .72rem; font-weight: 800; letter-spacing: .15em; text-transform: uppercase; }
.lf-asaju-collection h3 { margin: .75rem 0; font-size: clamp(3.2rem, 5vw, 5.5rem); line-height: .9; }
.lf-asaju-collection p { min-height: 4.8em; margin: 0; line-height: 1.6; }
.lf-asaju-collection a { width: fit-content; margin-top: 1.5rem; color: inherit; font-weight: 800; text-decoration: none; border-bottom: 2px solid currentColor; }
.lf-asaju-collection.is-mily { background: linear-gradient(145deg, #007aff, #7759d9); }
.lf-asaju-collection.is-eufor { background: linear-gradient(145deg, #324158, #007aff); }
.lf-asaju-collection.is-lab { background: linear-gradient(145deg, #7c1644, #e61c6e); }

.lf-asaju-collection.has-packaging { min-height: 37rem; display: grid; grid-template-rows: minmax(0,1fr) auto; justify-content: stretch; padding: 0; color: var(--asaju-ink); background: #fff; border: 1px solid #d8e0e8; }
.lf-asaju-collection.has-packaging::before { content: none; }
.lf-asaju-collection__packaging { position: relative; min-height: 25rem; margin: 0; overflow: hidden; background: #c7b2a3; }
.lf-asaju-collection__packaging img { width: 100%; height: 100%; object-fit: contain; }
.lf-asaju-collection.is-mily .lf-asaju-collection__packaging { background: #f1d9dc; }
.lf-asaju-collection.is-eufor .lf-asaju-collection__packaging { background: #101c88; }
.lf-asaju-collection.is-nekomimy .lf-asaju-collection__packaging { background: #eadde0; }
.lf-asaju-collection__copy { position: relative; z-index: 1; padding: 1.5rem; background: #fff; }
.lf-asaju-collection.has-packaging h3 { margin: .45rem 0 .7rem; font-size: clamp(2.5rem,4vw,4rem); }
.lf-asaju-collection.has-packaging p { min-height: 0; color: #526174; }
.lf-asaju-collection.has-packaging a { color: var(--asaju-blue); }

.lf-asaju-play-system { display: grid; grid-template-columns: minmax(16rem,.72fr) minmax(0,1.28fr); gap: clamp(2rem,6vw,6rem); margin-top: clamp(4rem,8vw,7rem); padding: clamp(2rem,5vw,4.5rem); border-radius: 1.25rem; color: #fff; background: #172437; box-shadow: 0 1.5rem 4rem rgba(23,36,55,.18); }
.lf-asaju-play-system__intro h3 { margin: .75rem 0 1.2rem; font-size: clamp(2.35rem,4.5vw,4.5rem); line-height: .95; }
.lf-asaju-play-system__intro > p:last-child { max-width: 34rem; margin: 0; color: #c8d2df; line-height: 1.7; }
.lf-asaju-play-system__steps { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 0; margin: 0; padding: 0; list-style: none; border-top: 1px solid rgba(255,255,255,.18); border-left: 1px solid rgba(255,255,255,.18); }
.lf-asaju-play-system__steps li { min-height: 13rem; padding: 1.5rem; border-right: 1px solid rgba(255,255,255,.18); border-bottom: 1px solid rgba(255,255,255,.18); }
.lf-asaju-play-system__steps span { display: block; margin-bottom: 1.8rem; color: #61c9ff; font-size: .72rem; font-weight: 900; letter-spacing: .14em; }
.lf-asaju-play-system__steps strong { display: block; font-size: 1.15rem; }
.lf-asaju-play-system__steps p { margin: .65rem 0 0; color: #c8d2df; line-height: 1.55; }

@media (max-width: 820px) {
	.lf-asaju-play-system { grid-template-columns: 1fr; }
}

@media (max-width: 560px) {
	.lf-asaju-play-system__steps { grid-template-columns: 1fr; }
	.lf-asaju-play-system__steps li { min-height: 0; }
}
.lf-asaju-ceremony { position: relative; padding-block: clamp(5rem,10vw,10rem); overflow: hidden; background: #fff; }
.lf-asaju-ceremony::before { content: "CÉRÉMONIE"; position: absolute; right: -2vw; bottom: -4vw; color: rgba(230,28,110,.045); font-size: min(18vw,17rem); font-weight: 800; letter-spacing: -.06em; line-height: 1; pointer-events: none; }
.lf-asaju-ceremony__layout { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0,1.05fr) minmax(20rem,.78fr); gap: clamp(3rem,7vw,7rem); align-items: center; }
.lf-asaju-ceremony__visual { position: relative; min-height: clamp(32rem,54vw,47rem); }
.lf-asaju-ceremony__main { position: absolute; inset: 0 12% 8% 0; margin: 0; overflow: hidden; border-radius: .9rem; box-shadow: 0 2rem 6rem rgba(50,65,88,.18); }
.lf-asaju-ceremony__main img { width: 100%; height: 100%; object-fit: cover; }
.lf-asaju-ceremony__detail { position: absolute; right: 0; bottom: 0; width: 44%; margin: 0; padding: .6rem; border: 1px solid #d8e0e8; border-radius: .8rem; background: #fff; box-shadow: 0 1.5rem 4rem rgba(50,65,88,.2); transform: rotate(2deg); }
.lf-asaju-ceremony__detail img { display: block; width: 100%; border-radius: .45rem; }
.lf-asaju-ceremony__logo { display: block; width: min(100%,15rem); max-height: 10rem; margin: 0 0 2rem; object-fit: contain; object-position: left center; }
.lf-asaju-ceremony__copy h2 { max-width: 10ch; }
.lf-asaju-ceremony__lead { margin: 2rem 0 0; color: #526174; font-size: clamp(1.05rem,1.5vw,1.3rem); line-height: 1.7; }
.lf-asaju-ceremony__proof { display: grid; gap: .75rem; margin: 2rem 0 0; padding: 0; list-style: none; }
.lf-asaju-ceremony__proof li { position: relative; padding-left: 1.6rem; color: var(--asaju-gunmetal); font-weight: 700; }
.lf-asaju-ceremony__proof li::before { content: "♥"; position: absolute; left: 0; color: var(--asaju-pink); }

@media (max-width: 980px) {
  .lf-asaju-ceremony__layout { grid-template-columns: 1fr; }
  .lf-asaju-ceremony__visual { min-height: min(110vw,44rem); }
}

@media (max-width: 680px) {
  .lf-asaju-ceremony__visual { min-height: 125vw; }
  .lf-asaju-ceremony__main { inset: 0 5% 10% 0; }
  .lf-asaju-ceremony__detail { width: 48%; }
}
.lf-asaju-lab { padding-block: clamp(5rem, 9vw, 9rem); color: #fff; background: #111827; }
.lf-asaju-heading.is-light > p { color: #b9c6d5; }
.lf-asaju-heading.is-light .lf-asaju-section-number { color: #75b5ff; }
.lf-asaju-process { display: grid; grid-template-columns: repeat(7, 1fr); margin: 0 0 2rem; counter-reset: stage; }
.lf-asaju-process span { position: relative; padding: 1rem .65rem 1rem 2rem; border-block: 1px solid #526174; color: #dce6f1; font-size: .75rem; font-weight: 800; text-transform: uppercase; }
.lf-asaju-process span::before { counter-increment: stage; content: counter(stage, decimal-leading-zero); position: absolute; left: .25rem; color: #75b5ff; }
.lf-asaju-process span:not(:last-child)::after { content: ""; position: absolute; top: 50%; right: -.22rem; width: .42rem; height: .42rem; background: var(--asaju-pink); border-radius: 50%; transform: translateY(-50%); }
.lf-asaju-cao { margin: 0 0 clamp(2rem, 5vw, 4rem); padding: clamp(1.25rem, 3vw, 2.5rem); border: 1px solid #526174; border-radius: .9rem; background: #182235; }
.lf-asaju-cao__intro { display: grid; grid-template-columns: minmax(0, .75fr) minmax(0, 1.25fr); gap: 1rem 3rem; align-items: end; margin-bottom: 2rem; }
.lf-asaju-cao__intro .lf-asaju-section-number { grid-column: 1 / -1; margin-bottom: 0; color: #75b5ff; }
.lf-asaju-cao__intro h3 { margin: 0; color: #fff; font-size: clamp(2rem, 4vw, 4rem); line-height: .95; }
.lf-asaju-cao__intro > p:last-child { margin: 0; color: #bdc9d6; line-height: 1.7; }
.lf-asaju-cao__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)) minmax(0, 1.15fr); gap: .8rem; }
.lf-asaju-cao__grid figure { position: relative; margin: 0; overflow: hidden; border: 1px solid #526174; border-radius: .65rem; background: #0f1726; }
.lf-asaju-cao__grid img { display: block; width: 100%; aspect-ratio: 1 / 1; object-fit: cover; }
.lf-asaju-cao__grid .is-mannequin img { object-position: center 15%; }
.lf-asaju-cao__grid figcaption { position: absolute; inset: auto .55rem .55rem; padding: .45rem .55rem; color: #fff; background: rgba(10, 16, 27, .82); border-radius: .35rem; font-size: .72rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.lf-asaju-cao__source { margin: 1rem 0 0; color: #8493a6; font-size: .75rem; }
.lf-asaju-lab__visual { display: grid; grid-template-columns: 1fr .36fr; margin: 0; overflow: hidden; border-radius: .9rem; background: #202b3d; }
.lf-asaju-lab__visual img { display: block; width: 100%; height: min(58vw, 640px); object-fit: cover; }
.lf-asaju-lab__visual figcaption { align-self: end; padding: 2rem; color: #bdc9d6; line-height: 1.7; }
.lf-asaju-lab__visual strong { display: block; margin-bottom: .8rem; color: #fff; font-size: 1.4rem; }
.lf-asaju-innovation { background: #fff; }
.lf-asaju-innovation__layout { display: grid; grid-template-columns: 1.1fr .9fr; gap: clamp(3rem, 7vw, 7rem); align-items: center; }
.lf-asaju-innovation figure { margin: 0; padding: 1rem; border: 1px solid #d8e0e8; border-radius: .9rem; background-color: var(--asaju-light); background-image: linear-gradient(var(--asaju-grid) 1px, transparent 1px), linear-gradient(90deg, var(--asaju-grid) 1px, transparent 1px); background-size: 28px 28px; }
.lf-asaju-innovation img { display: block; width: 100%; }
.lf-asaju-specs { margin-top: 2.5rem; border-top: 1px solid #d8e0e8; }
.lf-asaju-specs article { display: grid; grid-template-columns: .35fr .65fr; gap: 1.5rem; padding-block: 1.25rem; border-bottom: 1px solid #d8e0e8; }
.lf-asaju-specs strong { color: var(--asaju-blue); }
.lf-asaju-specs p { margin: 0; color: #526174; line-height: 1.6; }

.lf-asaju-journal { position: relative; padding-block: clamp(6rem, 11vw, 11rem); overflow: hidden; color: #fff; background: linear-gradient(120deg, var(--asaju-blue), var(--asaju-pink)); }
.lf-asaju-journal::after { content: "ASAJU"; position: absolute; right: -2vw; bottom: -8vw; color: rgba(255,255,255,.12); font-size: min(28vw, 27rem); font-weight: 800; letter-spacing: -.08em; line-height: 1; }
.lf-asaju-journal .lf-l-container { position: relative; z-index: 1; }
.lf-asaju-journal .lf-asaju-section-number { color: #fff; }
.lf-asaju-journal h2 { max-width: 9ch; }
.lf-asaju-journal p:not(.lf-asaju-section-number) { max-width: 42rem; margin: 2rem 0; font-size: 1.15rem; line-height: 1.7; }
.lf-asaju-journal .lf-c-button.is-secondary { border-color: #fff; color: #fff; }

.lf-asaju-faq { background: var(--asaju-light); }
.lf-asaju-faq__grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1rem; }
.lf-asaju-faq details { padding: 1.5rem; border: 1px solid #d8e0e8; border-radius: .9rem; background: #fff; }
.lf-asaju-faq summary { cursor: pointer; color: var(--asaju-gunmetal); font-size: 1.1rem; font-weight: 800; }
.lf-asaju-faq details[open] { border-color: var(--asaju-blue); box-shadow: 0 1rem 2.5rem rgba(50,65,88,.08); }
.lf-asaju-faq details p { margin: 1rem 0 0; color: #526174; line-height: 1.7; }

.lf-asaju-closing { padding-block: clamp(5rem, 9vw, 9rem); text-align: center; background: #fff; }
.lf-asaju-closing p { color: var(--asaju-blue); font-size: .75rem; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
.lf-asaju-closing h2 { max-width: 14ch; margin: 1rem auto 2.5rem; }

.page-ceremonie .lf-v8-editorial-home { overflow: clip; }
.page-ceremonie .lf-v8-editorial-home :is(h1,h2,h3) { font-family: Manrope, ui-sans-serif, system-ui, sans-serif; letter-spacing: -.045em; text-wrap: balance; }
.page-ceremonie .lf-c-hero { position: relative; background-image: linear-gradient(rgba(50,65,88,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(50,65,88,.055) 1px,transparent 1px); background-size: 42px 42px; }
.page-ceremonie .lf-c-hero::after { content: "SUR MESURE"; position: absolute; right: -1rem; bottom: -2.5rem; color: rgba(255,255,255,.06); font-size: clamp(5rem,16vw,15rem); font-weight: 800; line-height: 1; pointer-events: none; }
.page-ceremonie .lf-c-hero__content { position: relative; z-index: 1; }
.page-ceremonie .lf-c-hero__media { padding: .75rem; border: 1px solid rgba(255,255,255,.28); border-radius: var(--lf-radius-md); background: rgba(255,255,255,.08); transform: rotate(1.5deg); }
.page-ceremonie .lf-c-hero__media img { max-height: 42rem; object-fit: contain; }
.page-ceremonie .lf-c-feature-card { border-top: .3rem solid var(--asaju-blue); }
.page-ceremonie .lf-c-feature-card:nth-child(even) { border-top-color: var(--asaju-pink); }
.page-ceremonie #identite-ceremonie .lf-c-brand-presentation__figure { background: #fff; }
.page-ceremonie #identite-ceremonie .lf-c-brand-presentation__image { width: min(100%,44rem); max-height: 38rem; margin-inline: auto; object-fit: contain; }
.page-ceremonie #figurines-mariage .lf-c-promotion__media img { aspect-ratio: 1; object-fit: cover; }
.page-ceremonie .lf-c-process__number { color: var(--asaju-pink); }
.page-ceremonie .lf-c-price-card.is-featured { border-color: var(--asaju-pink); box-shadow: 0 1.5rem 4rem rgba(230,28,110,.16); }
.page-ceremonie .lf-c-price-card__badge { color: var(--asaju-blue); }
.page-ceremonie .lf-c-gallery__image { background: #fff; object-fit: contain; }
.page-ceremonie #devis { background-image: linear-gradient(135deg,rgba(0,122,255,.08),rgba(230,28,110,.08)); }

@media (max-width: 48rem) {
  .page-ceremonie .lf-c-hero__media { transform: none; }
}
@media (max-width: 980px) {
  .lf-asaju-hero__layout,
  .lf-asaju-innovation__layout { grid-template-columns: 1fr; }
  .lf-asaju-hero__visual { width: min(34rem, 82vw); margin-inline: auto; }
  .lf-asaju-manifesto__layout,
  .lf-asaju-heading { grid-template-columns: 1fr; gap: 1.5rem; }
  .lf-asaju-collection-grid { grid-template-columns: 1fr 1fr; }
  .lf-asaju-collection:last-child { grid-column: 1 / -1; min-height: 23rem; }
  .lf-asaju-process { grid-template-columns: repeat(4, 1fr); }
  .lf-asaju-cao__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .lf-asaju-lab__visual { grid-template-columns: 1fr; }
  .lf-asaju-lab__visual figcaption { align-self: auto; }
}

@media (max-width: 680px) {
  .lf-asaju-hero { min-height: auto; }
  .lf-asaju-hero__layout { padding-block: 4rem; }
  .lf-asaju-hero h1 { font-size: clamp(3.1rem, 16vw, 5rem); }
  .lf-asaju-hero__visual { width: auto; }
  .lf-asaju-collection-grid,
  .lf-asaju-faq__grid { grid-template-columns: 1fr; }
  .lf-asaju-collection:last-child { grid-column: auto; }
  .lf-asaju-process { grid-template-columns: 1fr 1fr; }
  .lf-asaju-cao__intro, .lf-asaju-cao__grid { grid-template-columns: 1fr; }
  .lf-asaju-cao__grid img { aspect-ratio: 4 / 3; }
  .lf-asaju-cao__grid .is-mannequin img { aspect-ratio: 3 / 4; }
  .lf-asaju-lab__visual img { height: 68vw; }
  .lf-asaju-specs article { grid-template-columns: 1fr; gap: .35rem; }
}

@media (prefers-reduced-motion: reduce) {
  .lf-asaju-collection::before { transition: none; }
}
