:root {
  --paper: #f7f2e8;
  --paper-2: #eee4d4;
  --ink: #282520;
  --muted: #6f675d;
  --wood: #8b5e3c;
  --wood-dark: #543723;
  --clay: #bd8b67;
  --line: rgba(76, 51, 33, .2);
  --white: #fffdf8;
  --serif: "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;
  --sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --shadow: 0 24px 70px rgba(69, 47, 31, .14);
  --radius: 1.15rem;
  --wrap: min(1180px, calc(100vw - 2rem));
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--ink);
  background:
    repeating-linear-gradient(96deg, rgba(94, 64, 40, .018) 0, rgba(94, 64, 40, .018) 1px, transparent 1px, transparent 17px),
    var(--paper);
  font-family: var(--sans);
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
}
html.menu-open, body.menu-open { overflow: hidden; overscroll-behavior: none; }
body.menu-open { position: fixed; left: 0; right: 0; width: 100%; touch-action: none; }
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration-thickness: .08em; text-underline-offset: .2em; }
button, input, select, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
:focus-visible { outline: 3px solid #b4774b; outline-offset: 4px; }
.skip-link { position: fixed; top: .5rem; left: .5rem; transform: translateY(-150%); background: var(--ink); color: #fff; padding: .75rem 1rem; z-index: 999; }
.skip-link:focus { transform: none; }
.wrap { width: var(--wrap); margin-inline: auto; }
.narrow { width: min(760px, calc(100vw - 2rem)); margin-inline: auto; }
.eyebrow { display: flex; align-items: center; gap: .75rem; margin: 0 0 1rem; color: var(--wood-dark); font-size: .75rem; font-weight: 750; letter-spacing: .18em; text-transform: uppercase; }
.eyebrow::before { content: ""; width: 2.7rem; height: 1px; background: currentColor; }
h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 { font-family: var(--serif); font-weight: 500; line-height: 1.05; text-wrap: balance; }
h1 { font-size: clamp(3rem, 9vw, 7.3rem); letter-spacing: -.045em; }
h2 { font-size: clamp(2.4rem, 6vw, 5rem); letter-spacing: -.035em; }
h3 { font-size: clamp(1.65rem, 3vw, 2.35rem); letter-spacing: -.025em; }
.lede { color: #554e45; font-family: var(--serif); font-size: clamp(1.18rem, 2vw, 1.55rem); line-height: 1.5; }
.muted { color: var(--muted); }
.button { display: inline-flex; min-height: 3.1rem; align-items: center; justify-content: center; gap: .6rem; border: 1px solid var(--ink); border-radius: 999px; padding: .75rem 1.15rem; background: var(--ink); color: #fff; font-size: .875rem; font-weight: 720; letter-spacing: .04em; text-decoration: none; transition: transform .2s ease, background .2s ease, color .2s ease; }
.button:hover { transform: translateY(-2px); background: var(--wood-dark); }
.button--ghost { background: transparent; color: var(--ink); }
.button--ghost:hover { color: #fff; }
.text-link { display: inline-flex; align-items: center; gap: .5rem; color: var(--wood-dark); font-weight: 720; }
.text-link::after { content: "↗"; transition: transform .2s ease; }
.text-link:hover::after { transform: translate(2px, -2px); }

.site-header { position: absolute; inset: 0 0 auto; z-index: 50; padding: 1rem 0; color: var(--ink); }
.site-header.is-scrolled { position: absolute; background: rgba(247, 242, 232, .88); border-bottom: 1px solid var(--line); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); animation: drop .25s ease; }
@keyframes drop { from { transform: translateY(-100%); } }
.nav { display: flex; align-items: center; justify-content: space-between; gap: 1.25rem; }
.brand { display: flex; align-items: center; gap: .75rem; color: inherit; text-decoration: none; }
.brand img { width: 2.8rem; height: 2.8rem; border-radius: 50%; object-fit: cover; }
.brand strong { display: block; font-family: var(--serif); font-size: 1.3rem; font-weight: 600; line-height: 1; }
.brand small { display: block; margin-top: .2rem; color: var(--muted); font-size: .75rem; letter-spacing: .09em; text-transform: uppercase; }
.nav-links { display: flex; align-items: center; gap: clamp(.8rem, 2vw, 1.7rem); }
.nav-links a { font-size: .875rem; font-weight: 650; text-decoration: none; }
.nav-links a:not(.button) { position: relative; }
.nav-links a:not(.button)::after { content: ""; position: absolute; left: 0; right: 100%; bottom: -.3rem; height: 1px; background: currentColor; transition: right .2s ease; }
.nav-links a:hover::after, .nav-links a[aria-current="page"]::after { right: 0; }

@media (min-width: 901px) {
  .nav-links { gap: clamp(.6rem, 1.15vw, 1.2rem); }
}
.menu-toggle { display: none; width: 3rem; height: 3rem; border: 1px solid var(--line); border-radius: 50%; background: var(--paper); color: var(--ink); }
.menu-toggle span, .menu-toggle::before, .menu-toggle::after { display: block; width: 1.15rem; height: 1px; margin: .26rem auto; background: currentColor; content: ""; transition: transform .2s ease, opacity .2s ease; }
.menu-open .menu-toggle span { opacity: 0; }
.menu-open .menu-toggle::before { transform: translateY(.32rem) rotate(45deg); }
.menu-open .menu-toggle::after { transform: translateY(-.32rem) rotate(-45deg); }

.hero { min-height: 100svh; display: grid; align-items: center; padding: 8rem 0 4rem; overflow: hidden; }
.hero-grid { display: grid; grid-template-columns: 1.02fr .98fr; align-items: center; gap: clamp(2rem, 7vw, 7rem); }
.hero h1 em { display: block; color: var(--wood); font-weight: 400; }
.hero-copy { position: relative; z-index: 2; }
.hero-copy .lede { max-width: 37rem; }
.hero-actions { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 2rem; }
.hero-visual { position: relative; min-height: min(680px, 72vh); }
.hero-image { position: absolute; overflow: hidden; border-radius: 48% 48% 1.4rem 1.4rem; box-shadow: var(--shadow); }
.hero-image picture, .editorial-gallery picture, .teaser picture, .collection-images picture, .story-media picture, .split-media picture { display: block; width: 100%; height: 100%; }
.hero-image img { width: 100%; height: 100%; object-fit: cover; object-position: center; background: #e8ddcf; }
.hero-image--main { width: 72%; height: 83%; top: 2%; right: 0; }
.hero-image--small { width: 58%; height: 34%; left: 0; bottom: 2%; border: 8px solid var(--paper); border-radius: 1.1rem; }
.hero-mark { position: absolute; left: -2%; top: 6%; width: 8rem; height: 8rem; border: 1px solid var(--wood); border-radius: 50%; opacity: .45; }
.hero-mark::after { content: ""; position: absolute; inset: 1rem; border: 1px solid var(--wood); border-radius: 50%; }

.intro-strip { padding: 1.2rem 0; border-block: 1px solid var(--line); overflow: hidden; }
.marquee { display: flex; gap: 2rem; min-width: max-content; color: var(--wood-dark); font-family: var(--serif); font-size: clamp(1.15rem, 2vw, 1.5rem); }
.marquee span::after { content: "✦"; margin-left: 2rem; color: var(--clay); font-size: .65em; }
.review-strip { border-bottom: 1px solid var(--line); background: rgba(255, 253, 248, .62); }
.review-strip__inner { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; min-height: 4.25rem; }
.review-strip__inner p { display: flex; align-items: center; gap: .55rem; margin: 0; color: var(--muted); font-size: .86rem; }
.review-strip__inner strong { color: var(--ink); font-weight: 720; }
.review-strip__inner a { color: var(--wood-dark); font-size: .82rem; font-weight: 720; text-underline-offset: .22rem; }
.section { padding: clamp(5rem, 10vw, 9rem) 0; }
.section--tint { background: var(--paper-2); }
.section-head { display: grid; grid-template-columns: 1.2fr .8fr; align-items: end; gap: 2rem; margin-bottom: 3rem; }
.section-head h2 { margin-bottom: 0; }
.section-head p { max-width: 34rem; margin: 0 0 .5rem auto; }

.editorial-gallery { display: grid; grid-template-columns: 1.15fr .85fr; grid-template-rows: 20rem 20rem; gap: 1rem; }
.editorial-gallery figure { position: relative; overflow: hidden; margin: 0; border-radius: var(--radius); background: #dccdbb; }
.editorial-gallery figure:first-child { grid-row: 1 / 3; }
.editorial-gallery img { width: 100%; height: 100%; object-fit: cover; object-position: center; background: #e8ddcf; }
.editorial-gallery figcaption { position: absolute; inset: auto .75rem .75rem; padding: .65rem .85rem; border-radius: .7rem; background: rgba(255, 253, 248, .88); color: var(--ink); font-size: .75rem; -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); }

.collection-teasers { display: grid; grid-template-columns: repeat(12, 1fr); gap: 1rem; }
.teaser { position: relative; min-height: 28rem; overflow: hidden; border-radius: var(--radius); color: #fff; text-decoration: none; }
.teaser:nth-child(1) { grid-column: span 7; }
.teaser:nth-child(2) { grid-column: span 5; }
.teaser:nth-child(1), .teaser:nth-child(2) { min-height: 32rem; }
.teaser:nth-child(3) { grid-column: span 4; min-height: 20rem; }
.teaser:nth-child(4) { grid-column: span 8; min-height: 30rem; }
.teaser:nth-child(5) { grid-column: span 5; min-height: 22rem; }
.teaser:nth-child(6) { grid-column: span 7; min-height: 22rem; }
.teaser picture { background: #d8c8b6; }
.teaser img { width: 100%; height: 100%; object-fit: cover; object-position: center; transition: filter .25s ease, transform .3s ease; }
.teaser::after { content: ""; position: absolute; inset: 35% 0 0; background: linear-gradient(transparent, rgba(24, 18, 14, .78)); }
.teaser-copy { position: absolute; z-index: 2; inset: auto 1.5rem 1.4rem; }
.teaser small { display: block; margin-bottom: .45rem; letter-spacing: .13em; text-transform: uppercase; }
.teaser h3 { margin: 0; font-size: clamp(1.7rem, 4vw, 3.2rem); }
.teaser:hover img { filter: saturate(1.05) contrast(1.02); transform: scale(1.015); }

.story-grid { display: grid; grid-template-columns: .8fr 1.2fr; gap: clamp(2rem, 7vw, 7rem); align-items: center; }
.story-media { position: relative; padding: 0 0 3rem 3rem; }
.story-media::before { content: ""; position: absolute; inset: 3rem 3rem 0 0; border: 1px solid var(--wood); border-radius: 50% 50% var(--radius) var(--radius); }
.story-media img { position: relative; width: 100%; height: 100%; aspect-ratio: 4 / 5; object-fit: cover; object-position: center; background: #e8ddcf; border-radius: 50% 50% var(--radius) var(--radius); box-shadow: var(--shadow); }
body[data-page="a-propos"] .story-media img[data-media="a-propos-porte-alliances-ee-mockup"] { height: auto; aspect-ratio: 4 / 3; object-fit: cover; object-position: center; }
.steps { counter-reset: step; display: grid; gap: 0; margin: 2rem 0 0; padding: 0; list-style: none; border-top: 1px solid var(--line); }
.steps li { counter-increment: step; display: grid; grid-template-columns: 2.5rem 1fr; gap: 1rem; padding: 1rem 0; border-bottom: 1px solid var(--line); }
.steps li::before { content: "0" counter(step); color: var(--wood); font-family: var(--serif); }

.quote-band { position: relative; overflow: hidden; padding: clamp(5rem, 11vw, 10rem) 0; background: var(--ink); color: var(--paper); }
.quote-band::before { content: "Z"; position: absolute; right: -3vw; top: -8rem; color: rgba(255,255,255,.035); font-family: var(--serif); font-size: 38rem; line-height: 1; }
.quote-band blockquote { position: relative; max-width: 930px; margin: 0; font-family: var(--serif); font-size: clamp(2.1rem, 5.7vw, 5rem); line-height: 1.08; }
.quote-band p { max-width: 42rem; margin-top: 2rem; color: #d8ccbe; }
.reviews-section { border-top: 1px solid var(--line); }
.reviews-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.review-card { display: flex; flex-direction: column; gap: 1.5rem; min-width: 0; margin: 0; padding: clamp(1.35rem, 3vw, 2.25rem); border: 1px solid var(--line); border-radius: var(--radius); background: rgba(255, 253, 248, .72); box-shadow: 0 1rem 2.5rem rgba(74, 48, 30, .045); }
.review-card__header { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: .85rem; align-items: center; }
.review-avatar { display: grid; width: 2.6rem; height: 2.6rem; place-items: center; border: 1px solid var(--line); border-radius: 50%; background: var(--paper-2); color: var(--wood-dark); font-family: var(--serif); font-size: 1.15rem; }
.review-card h3 { margin: 0 0 .18rem; font-family: var(--sans); font-size: 1rem; font-weight: 760; }
.review-card__header p { margin: 0; color: var(--muted); font-size: .76rem; }
.review-source { align-self: start; padding: .3rem .55rem; border: 1px solid var(--line); border-radius: 999px; color: var(--wood-dark); font-size: .64rem; font-weight: 720; letter-spacing: .06em; text-transform: uppercase; }
.review-card blockquote { margin: 0; color: var(--ink); font-family: var(--serif); font-size: clamp(1rem, 1.5vw, 1.12rem); line-height: 1.7; }
.reviews-link { margin: 2rem 0 0; text-align: right; }
.reviews-facebook-link { color: var(--wood-dark); font-weight: 720; text-underline-offset: .22rem; }

.page-hero { padding: 11rem 0 5rem; }
.page-hero-grid { display: grid; grid-template-columns: 1.2fr .8fr; align-items: end; gap: 2rem; }
.page-hero h1 { margin-bottom: 0; }
.page-hero .lede { max-width: 38rem; margin: 0 0 .6rem auto; }
.collection-nav { position: static; z-index: 20; padding: .75rem 0; overflow-x: auto; background: rgba(247,242,232,.92); border-block: 1px solid var(--line); scrollbar-width: none; -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); }
.collection-nav::-webkit-scrollbar { display: none; }
.filter-row { display: flex; gap: .55rem; min-width: max-content; }
.filter-button { border: 1px solid var(--line); border-radius: 999px; padding: .55rem .9rem; background: transparent; color: var(--ink); font-size: .75rem; cursor: pointer; }
.filter-button:hover, .filter-button.is-active { border-color: var(--ink); background: var(--ink); color: #fff; }
.collections { padding: 3rem 0 8rem; }
.collection { display: grid; grid-template-columns: .72fr 1.28fr; gap: clamp(2rem, 6vw, 6rem); align-items: center; padding: clamp(4rem, 9vw, 8rem) 0; border-bottom: 1px solid var(--line); }
.collection:nth-child(even) { grid-template-columns: 1.28fr .72fr; }
.collection:nth-child(even) .collection-copy { order: 2; }
.collection-copy { position: sticky; top: 9rem; align-self: start; }
.collection-index { color: var(--wood); font-family: var(--serif); font-size: .9rem; }
.collection-copy h2 { font-size: clamp(2.6rem, 5vw, 4.7rem); margin: 1rem 0; }
.collection-copy p { max-width: 29rem; color: var(--muted); }
.collection-images { display: grid; grid-template-columns: 1.15fr .85fr; gap: .8rem; }
.collection-images button { position: relative; overflow: hidden; min-height: 17rem; border: 0; border-radius: var(--radius); padding: 0; background: #e6dacb; cursor: zoom-in; }
.collection-images button:first-child { grid-row: span 2; min-height: 36rem; }
.collection-images button:first-child[data-ratio="landscape"] { grid-column: 1 / -1; grid-row: auto; min-height: 0; aspect-ratio: 4 / 3; }
.collection-images img { width: 100%; height: 100%; object-fit: cover; object-position: center; transition: filter .25s ease, transform .25s ease; }
.collection-images button:hover img { filter: saturate(1.05) contrast(1.02); }
.collection-images button:has(> .collection-image-caption)::after {
  content: "";
  position: absolute;
  z-index: 1;
  inset: 56% 0 0;
  pointer-events: none;
  background: linear-gradient(to bottom, transparent, rgba(24, 18, 14, .48));
}
.collection-image-caption {
  position: absolute;
  z-index: 2;
  right: 1rem;
  bottom: .9rem;
  left: 1rem;
  color: #fffdf8;
  font-size: clamp(.76rem, .8vw, .88rem);
  font-weight: 650;
  line-height: 1.3;
  text-align: left;
  text-shadow: 0 1px 8px rgba(24, 18, 14, .42);
}
.collection[hidden] { display: none; }

#deco-maison .collection-images img[data-media="deco-maison-trois-creations"] {
  object-fit: cover;
  object-position: center;
  transform: none;
}

.process { display: grid; grid-template-columns: repeat(5, 1fr); padding: 0; list-style: none; counter-reset: process; border-block: 1px solid var(--line); }
.process li { counter-increment: process; min-height: 16rem; padding: 1.25rem; border-right: 1px solid var(--line); }
.process li:last-child { border-right: 0; }
.process li::before { content: "0" counter(process); display: block; margin-bottom: 4rem; color: var(--wood); font-family: var(--serif); }
.process strong { display: block; font-family: var(--serif); font-size: 1.5rem; font-weight: 500; }
.process span { color: var(--muted); font-size: .86rem; }
.split { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2rem, 7vw, 7rem); align-items: center; }
.split-media { min-height: 35rem; overflow: hidden; border-radius: var(--radius); }
.split-media img { width: 100%; height: 100%; object-fit: cover; object-position: center; background: #e8ddcf; }

/* Cadrages fins : le produit reste au centre, les zones de décor sont sacrifiées en priorité. */
img[data-media="portrait-grave-femme"], img[data-media="portrait-grave-homme"] { object-position: center 42%; }
img[data-media="portrait-porte-cles"] { object-position: center 55%; }
img[data-media="prenom-relief-mickaelle"], img[data-media="prenom-relief-fleuri"] { object-position: center 58%; }
img[data-media="planche-barbecue"], img[data-media="planche-coeur-medical"], img[data-media="planche-petit-format"] { object-position: center 54%; }
img[data-media="ecole-cadeau-maitresse"], img[data-media="ecole-souvenir-personnalise"] { object-position: center 50%; }
img[data-media="noel-decoration-bois"], img[data-media="inspiration-piton-magnet"], img[data-media="inspiration-piton-porte-cles"], img[data-media="petit-cadeau-bois"] { object-position: center 46%; }
img[data-media="naissance-cadre-prenom"] { object-position: center 57%; }
img[data-media="naissance-carte-ciel"], img[data-media="portrait-garcon"] { object-position: center 44%; }
img[data-media="ramadan-collection"] { object-position: center 63%; }
img[data-media="ramadan-horloge"] { object-position: center 58%; }
img[data-media="ramadan-dessous-verre"] { object-position: center 65%; }
img[data-media="mariage-badges-roles"], img[data-media="bapteme-medaillons-personnalises"] { object-position: center 68%; }
img[data-media="maman-rose-decoupee"] { object-position: center 56%; }
img[data-media="professionnel-carte-visite-alu"], img[data-media="professionnel-plaque-plexi"] { object-fit: contain; }

/* Cadrages ciblés : garder les séries, trophées, médailles et QR codes entièrement lisibles. */
body[data-page="creations"] .collection-images img:is(
  [data-media="professionnel-boites-edf"],
  [data-media="sport-trophees-trjv-clubs"],
  [data-media="sport-trophee-360-handi-voice"],
  [data-media="sport-grand-raid-allou-medaille"],
  [data-media="mariage-porte-alliances-ee"],
  [data-media="mariage-boite-coeurs-ajouree"],
  [data-media="parrain-gaming-ensemble"]
),
body[data-page="professionnels"] .editorial-gallery img:is(
  [data-media="professionnel-enseigne-atelier-boreal"],
  [data-media="professionnel-plaque-atelier-kanel"],
  [data-media="professionnel-trophees-trjv-plexiglas"],
  [data-media="sport-trophee-360-handi-voice"],
  [data-media="professionnel-medailles-course-tamarins"]
) {
  background: #f4eee5;
  object-fit: contain;
  object-position: center;
}

#sports-trophees-medailles .collection-images button:nth-child(3) img[data-media="sport-grand-raid-allou-medaille"] {
  object-fit: cover;
  object-position: center 75%;
}

/* Cadrages propres aux nouveaux visuels de la page Créations. */
body[data-page="creations"] .collection-images img:is(
  [data-media="veilleuse-nahil"],
  [data-media="veilleuse-bienaime-loic"],
  [data-media="veilleuse-mathys-gabriel"],
  [data-media="deco-carte-monde"],
  [data-media="deco-numero-maison"],
  [data-media="deco-porte-cles-mural"],
  [data-media="couple-plexi-sarah-yassine"]
) {
  object-fit: cover;
  object-position: center;
}
img[data-media="veilleuse-nahil"] { object-position: center 48%; }
img[data-media="veilleuse-bienaime-loic"] { object-position: center 51%; }
img[data-media="veilleuse-mathys-gabriel"] { object-position: center 49%; }
img[data-media="deco-numero-maison"] { object-position: center 50%; }
img[data-media="deco-porte-cles-mural"] { object-position: center 48%; }
img[data-media="couple-plexi-sarah-yassine"] { object-position: center 50%; }

/* Créations : cadrages desktop/tablette ciblés pour préserver les pièces entières. */
@media (min-width: 621px) {
  body[data-page="creations"] .collection-images img:is(
    [data-media="famille-attrape-reve"],
    [data-media="maman-rose-decoupee"],
    [data-media="papa-cadeau-personnalise"],
    [data-media="parrain-planche-gravee"],
    [data-media="mariage-badges-roles"],
    [data-media="bapteme-medaillons-personnalises"],
    [data-media="ecole-decoration-enfant"],
    [data-media="noel-chaussettes-prenoms"],
    [data-media="ramadan-collection"],
    [data-media="ramadan-dessous-verre"],
    [data-media="porte-cles-collection-personnalisee"],
    [data-media="magnet-personnalise"],
    [data-media="porte-cles-personnalises"],
    [data-media="mot-relief-maman"],
    [data-media="mot-relief-papa"],
    [data-media="reference-prenom-relief-papa"],
    [data-media="portrait-grave-femme"],
    [data-media="portrait-garcon"]
  ) {
    background: #f4eee5;
    object-fit: contain;
    object-position: center;
  }
}

@media (min-width: 621px) and (max-width: 1199px) {
  body[data-page="creations"] img[data-media="inspiration-diagonale-des-fous"] {
    background: #f4eee5;
    object-fit: contain;
    object-position: center;
  }
}

/* Cadrages desktop ciblés : préserver chaque création sans modifier le rendu mobile. */
@media (min-width: 1200px) {
  #maman .collection-images button:nth-child(3) img[data-media="maman-cadeau-grave"] {
    object-fit: cover;
    object-position: center 55%;
    transform: none;
  }

  #marraine .collection-images button:first-child {
    isolation: isolate;
    background: #d8c9b8 url("/assets/images/marraine-lotus-1120.webp") center / cover no-repeat;
  }

  #marraine .collection-images button:first-child::before {
    content: "";
    position: absolute;
    z-index: 0;
    inset: -1.5rem;
    background: linear-gradient(rgba(244, 238, 229, .18), rgba(244, 238, 229, .18)), url("/assets/images/marraine-lotus-1120.webp") center / cover no-repeat;
    filter: blur(17px) saturate(.76);
    transform: scale(1.08);
  }

  #marraine .collection-images button:first-child picture {
    position: relative;
    z-index: 1;
  }

  #marraine .collection-images button:first-child img[data-media="marraine-lotus"] {
    background: transparent;
    object-fit: contain;
    object-position: center;
    transform: scale(.95);
    -webkit-mask-image: linear-gradient(to bottom, transparent 14%, #000 20%, #000 80%, transparent 86%);
    mask-image: linear-gradient(to bottom, transparent 14%, #000 20%, #000 80%, transparent 86%);
  }

  #ramadan .collection-images button:nth-child(3) img[data-media="ramadan-dessous-verre"] {
    object-fit: cover;
    object-position: center 50%;
  }

  #papa .collection-images button:first-child {
    isolation: isolate;
    background: #d8c7b4 url("/assets/images/papa-cadeau-personnalise-1120.webp") center / cover no-repeat;
  }

  #papa .collection-images button:first-child::before {
    content: "";
    position: absolute;
    z-index: 0;
    inset: -1.25rem;
    background: linear-gradient(rgba(244, 238, 229, .16), rgba(244, 238, 229, .16)), url("/assets/images/papa-cadeau-personnalise-1120.webp") center / cover no-repeat;
    filter: blur(15px) saturate(.78);
    transform: scale(1.07);
  }

  #papa .collection-images button:first-child picture {
    position: relative;
    z-index: 1;
  }

  #papa .collection-images button:first-child img[data-media="papa-cadeau-personnalise"] {
    background: transparent;
    object-fit: contain;
    object-position: center;
    transform: scale(.96);
    -webkit-mask-image: linear-gradient(to bottom, transparent 12%, #000 19%, #000 81%, transparent 88%);
    mask-image: linear-gradient(to bottom, transparent 12%, #000 19%, #000 81%, transparent 88%);
  }

  #papa .collection-images button:nth-child(2),
  #papa .collection-images button:nth-child(3) {
    min-height: 17rem;
    height: 100%;
  }

  #papa .collection-images button:nth-child(2) img,
  #papa .collection-images button:nth-child(3) img {
    object-fit: cover;
    object-position: center;
    transform: none;
  }

  body[data-page="professionnels"] .professional-gallery--main figure:nth-child(3) img[data-media="professionnel-plaque-atelier-kanel"] {
    object-fit: contain;
    object-position: center 52%;
    transform: scale(1.1);
  }

  body[data-page="professionnels"] .professional-gallery--events figure:first-child img[data-media="professionnel-trophees-trjv-plexiglas"] {
    object-fit: contain;
    object-position: center 51%;
    transform: scale(1.16);
  }

  body[data-page="professionnels"] .professional-gallery--events figure:nth-child(2) img[data-media="sport-trophee-360-handi-voice"] {
    object-fit: contain;
    object-position: center 52%;
    transform: scale(1.1);
  }

  body[data-page="professionnels"] .professional-gallery--events figure:nth-child(3) img[data-media="professionnel-medailles-course-tamarins"] {
    object-fit: cover;
    object-position: center 53%;
    transform: none;
  }

  body[data-page="accueil"] .teaser img[data-media="planche-barbecue"] {
    background: transparent;
    object-fit: cover;
    object-position: center 54%;
    transform: none;
  }

  body[data-page="accueil"] .teaser:has(img[data-media="mariage-medaille-personnalisee"]) {
    isolation: isolate;
    background: #ddd0c0 url("/assets/images/mariage-medaille-personnalisee-1120.webp") center / cover no-repeat;
  }

  body[data-page="accueil"] .teaser:has(img[data-media="mariage-medaille-personnalisee"])::before {
    content: "";
    position: absolute;
    z-index: 0;
    inset: -1.25rem;
    background: linear-gradient(rgba(244, 238, 229, .16), rgba(244, 238, 229, .16)), url("/assets/images/mariage-medaille-personnalisee-1120.webp") center / cover no-repeat;
    filter: blur(15px) saturate(.78);
    transform: scale(1.07);
  }

  body[data-page="accueil"] .teaser:has(img[data-media="mariage-medaille-personnalisee"]) picture {
    position: relative;
    z-index: 1;
    background: transparent;
  }

  body[data-page="accueil"] .teaser img[data-media="mariage-medaille-personnalisee"] {
    background: transparent;
    object-fit: contain;
    object-position: center;
    transform: scale(.92);
    -webkit-mask-image: radial-gradient(ellipse 72% 88% at center, #000 70%, transparent 100%);
    mask-image: radial-gradient(ellipse 72% 88% at center, #000 70%, transparent 100%);
  }

  body[data-page="accueil"] .teaser:hover img:is(
    [data-media="planche-barbecue"],
    [data-media="prenom-relief-mickaelle"]
  ) {
    transform: none;
  }
}
.service-lines { margin: 2rem 0; padding: 0; list-style: none; border-top: 1px solid var(--line); }
.service-lines li { display: flex; justify-content: space-between; gap: 1rem; padding: .8rem 0; border-bottom: 1px solid var(--line); }
.service-lines span { color: var(--wood); }

.contact-grid { display: grid; grid-template-columns: .72fr 1.28fr; gap: clamp(3rem, 8vw, 8rem); align-items: start; }
.contact-aside { position: sticky; top: 8rem; }
.contact-aside__title { margin-bottom: 1em; font-size: clamp(1.65rem, 3vw, 2.35rem); letter-spacing: -.025em; }
.contact-aside a { display: block; margin: .5rem 0; }
.form { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; padding: clamp(1.25rem, 4vw, 3rem); border: 1px solid var(--line); border-radius: var(--radius); background: rgba(255,253,248,.66); box-shadow: var(--shadow); }
.field { display: grid; gap: .4rem; }
.field--full { grid-column: 1 / -1; }
.field label { font-size: .75rem; font-weight: 720; letter-spacing: .05em; text-transform: uppercase; }
.field input, .field select, .field textarea { width: 100%; border: 1px solid rgba(70,48,32,.28); border-radius: .65rem; padding: .85rem .9rem; background: var(--white); color: var(--ink); }
.field textarea { min-height: 10rem; resize: vertical; }
.field input:focus, .field select:focus, .field textarea:focus { border-color: var(--wood); outline: 2px solid rgba(139,94,60,.15); }
.form-note { grid-column: 1 / -1; margin: 0; color: var(--muted); font-size: .74rem; }
.form-status { grid-column: 1 / -1; margin: 0; color: #8a3328; font-size: .82rem; }

.legal { padding: 10rem 0 6rem; }
.legal h1 { font-size: clamp(3rem, 7vw, 5.8rem); }
.legal h2 { margin-top: 3rem; font-size: 2rem; }
.legal-placeholder { margin: 2rem 0; padding: 1.25rem; border-left: 3px solid var(--clay); background: var(--paper-2); }
.not-found { min-height: 100svh; display: grid; place-items: center; text-align: center; padding: 7rem 1rem; }
.not-found .number { color: var(--wood); font-family: var(--serif); font-size: clamp(8rem, 30vw, 20rem); line-height: .65; opacity: .2; }

.lightbox { position: fixed; inset: 0; z-index: 100; display: grid; place-items: center; padding: 1rem; border: 0; background: rgba(24,20,17,.9); }
.lightbox[hidden] { display: none; }
.lightbox figure { max-width: min(1100px, 94vw); max-height: 90vh; margin: 0; color: #fff; }
.lightbox img { max-height: 82vh; margin: auto; border-radius: .6rem; }
.lightbox figcaption { padding-top: .75rem; text-align: center; }
.lightbox-close { position: fixed; top: 1rem; right: 1rem; width: 3rem; height: 3rem; border: 1px solid rgba(255,255,255,.5); border-radius: 50%; background: rgba(0,0,0,.2); color: #fff; cursor: pointer; }

.site-footer { padding: 4.5rem 0 1.5rem; background: #25211d; color: #f4ede3; }
.footer-grid { display: grid; grid-template-columns: 1.4fr .7fr .9fr; gap: 3rem; }
.site-footer .brand { margin-bottom: 1.2rem; }
.site-footer .brand small { color: #bfb2a5; }
.footer-nav { display: grid; align-content: start; gap: .55rem; }
.footer-nav a { color: #d9cfc3; text-decoration: none; font-size: .84rem; }
.footer-contact { color: #d9cfc3; }
.footer-contact a { color: #fff; }
.footer-bottom { display: flex; justify-content: space-between; gap: 1rem; margin-top: 3.5rem; padding-top: 1.25rem; border-top: 1px solid rgba(255,255,255,.12); color: #a99f95; font-size: .72rem; }

.reveal { opacity: 0; transform: translateY(18px); transition: opacity .6s ease, transform .6s ease; }
.reveal.is-visible { opacity: 1; transform: none; }

@media (max-width: 900px) {
  .site-header { z-index: 1000; }
  .menu-open .site-header, .menu-open .site-header.is-scrolled { position: fixed; inset: 0 0 auto; z-index: 1000; background: transparent; border: 0; animation: none; -webkit-backdrop-filter: none; backdrop-filter: none; }
  .nav-links { position: fixed; z-index: 1001; inset: 0; width: 100%; min-height: 100vh; min-height: 100dvh; display: flex; flex-direction: column; justify-content: center; gap: 1.4rem; padding: max(6rem, env(safe-area-inset-top)) 2rem max(2rem, env(safe-area-inset-bottom)); overflow-y: auto; overscroll-behavior: contain; background: var(--paper); transform: translateX(100%); visibility: hidden; pointer-events: none; transition: transform .3s ease, visibility .3s; }
  .menu-open .nav-links { transform: none; visibility: visible; }
  .menu-open .nav-links { pointer-events: auto; }
  .nav-links a { font-family: var(--serif); font-size: 1.7rem; }
  .nav-links a[href$="professionnels/"] { align-self: center; max-width: 100%; text-align: center; text-wrap: balance; }
  .nav-links .button { font-family: var(--sans); font-size: .85rem; }
  .site-header .brand { position: relative; z-index: 1002; }
  .menu-toggle { display: block; position: relative; z-index: 1002; flex: 0 0 auto; }
  .menu-toggle--floating {
    position: fixed;
    z-index: 999;
    top: max(.75rem, calc(env(safe-area-inset-top) + .55rem));
    right: max(.75rem, calc(env(safe-area-inset-right) + .75rem));
    background: rgba(247, 242, 232, .9);
    box-shadow: 0 6px 20px rgba(69, 47, 31, .08);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    -webkit-backdrop-filter: blur(10px);
    backdrop-filter: blur(10px);
    transition: opacity .18s ease, visibility 0s linear .18s;
  }
  .menu-toggle--floating.is-visible {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transition-delay: 0s;
  }
  .menu-open .menu-toggle--floating {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
  }
  .hero-grid, .page-hero-grid, .section-head, .story-grid, .split, .contact-grid { grid-template-columns: 1fr; }
  .hero { padding-top: 7rem; }
  .hero h1 { font-size: clamp(3.2rem, 15vw, 6rem); }
  .hero-visual { min-height: 34rem; }
  .page-hero .lede, .section-head p { margin-left: 0; }
  .collection, .collection:nth-child(even) { grid-template-columns: 1fr; }
  .collection:nth-child(even) .collection-copy { order: initial; }
  .collection-copy, .contact-aside { position: static; }
  .process { grid-template-columns: 1fr 1fr; }
  .process li { min-height: 11rem; border-bottom: 1px solid var(--line); }
  .process li::before { margin-bottom: 2rem; }
  .footer-grid { grid-template-columns: 1.3fr .7fr; }
  .footer-contact { grid-column: 1 / -1; }
}

@media (max-width: 620px) and (orientation: portrait) {
  .intro-strip { padding: .9rem .6rem; overflow: visible; }
  .intro-strip .marquee {
    display: grid;
    grid-template-columns: repeat(3, auto);
    align-items: center;
    justify-content: center;
    gap: 0;
    width: 100%;
    min-width: 0;
    font-size: clamp(.9rem, 3.6vw, 1.05rem);
    line-height: 1.3;
    text-align: center;
  }
  .intro-strip .marquee span { display: inline-flex; align-items: center; white-space: nowrap; }
  .intro-strip .marquee span::after { margin-left: clamp(.35rem, 1.6vw, .65rem); margin-right: clamp(.35rem, 1.6vw, .65rem); }
  .intro-strip .marquee span:nth-child(3)::after { display: none; }
  .intro-strip .marquee span:nth-child(n+4) { display: none; }
}

@media (max-width: 620px) {
  :root { --wrap: min(100% - 1.15rem, 1180px); }
  body[data-page="accueil"] { --wrap: min(1180px, calc(100% - 1.15rem)); }
  body[data-page="accueil"] .editorial-gallery,
  body[data-page="accueil"] .collection-teasers { width: 100%; max-width: 100%; min-width: 0; }
  body[data-page="accueil"] .editorial-gallery { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  body[data-page="accueil"] .collection-teasers { grid-template-columns: minmax(0, 1fr); }
  body[data-page="accueil"] .editorial-gallery figure,
  body[data-page="accueil"] .teaser,
  body[data-page="accueil"] .teaser picture,
  body[data-page="accueil"] .teaser img { width: 100%; max-width: 100%; min-width: 0; }
  .brand small { display: none; }
  .hero-copy .lede { font-size: 1.08rem; }
  .hero-visual { min-height: 28rem; }
  .hero-image--main { width: 79%; height: 85%; }
  .hero-image--small { width: 58%; height: 32%; }
  .editorial-gallery { grid-template-columns: 1fr 1fr; grid-template-rows: 24rem auto; }
  .editorial-gallery figure:first-child { grid-column: 1 / -1; grid-row: auto; }
  .editorial-gallery figure:not(:first-child) { aspect-ratio: 4 / 3; }
  .editorial-gallery figure:nth-child(2) img { object-position: center 58%; }
  .editorial-gallery figure:nth-child(3) img { object-position: center 50%; }
  .editorial-gallery figcaption { display: none; }
  .collection-teasers { grid-template-columns: 1fr; }
  .teaser:nth-child(n) { grid-column: auto; min-height: 24rem; }
  .teaser:nth-child(3), .teaser:nth-child(4), .teaser:nth-child(5), .teaser:nth-child(6) { min-height: 19rem; }
  body[data-page="accueil"] .editorial-gallery:has(img[data-media="accueil-carte-monde"]) { grid-template-rows: auto auto; }
  body[data-page="accueil"] .editorial-gallery figure:has(img[data-media="accueil-carte-monde"]),
  body[data-page="accueil"] .teaser:has(img[data-media="planche-barbecue"]),
  body[data-page="accueil"] .teaser:has(img[data-media="prenom-relief-mickaelle"]) { min-height: 0; aspect-ratio: 4 / 3; }
  body[data-page="accueil"] img[data-media="accueil-carte-monde"] {
    background: #eee6da;
    object-fit: contain;
    object-position: center;
  }
  body[data-page="accueil"] img[data-media="planche-barbecue"] {
    background: #d9bd98;
    object-fit: contain;
    object-position: center;
  }
  body[data-page="accueil"] img[data-media="prenom-relief-mickaelle"] {
    background: #e8e1d6;
    object-fit: contain;
    object-position: center;
  }
  body[data-page="accueil"] .teaser:hover img:is(
    [data-media="planche-barbecue"],
    [data-media="prenom-relief-mickaelle"]
  ) { transform: none; }
  .story-media { padding-left: 1.25rem; }
  .review-strip__inner { align-items: flex-start; flex-direction: column; gap: .4rem; padding-block: .9rem; }
  .review-strip__inner p { align-items: flex-start; flex-wrap: wrap; gap: .3rem .5rem; }
  .reviews-grid { grid-template-columns: 1fr; }
  .review-card__header { grid-template-columns: auto minmax(0, 1fr); }
  .review-source { grid-column: 2; justify-self: start; }
  .reviews-link { text-align: left; }
  .collection-images { grid-template-columns: 1fr 1fr; }
  .collection-images button { min-height: 12rem; }
  .collection-images button:first-child { grid-column: 1 / -1; grid-row: auto; min-height: 26rem; }
  .collection-images button:first-child[data-ratio="landscape"] { min-height: 0; aspect-ratio: 4 / 3; }
  #professionnels .collection-images button:first-child { min-height: 0; aspect-ratio: 1 / 1; }
  #professionnels .collection-images button:nth-child(2),
  #professionnels .collection-images button:nth-child(3) { min-height: 0; aspect-ratio: 4 / 3; }
  #professionnels .collection-images img[data-media="professionnel-carte-visite-alu"],
  #professionnels .collection-images img[data-media="professionnel-plaque-plexi"] { object-fit: cover; object-position: center; }
  .process { grid-template-columns: 1fr; }
  .process li { min-height: auto; border-right: 0; }
  .process li::before { margin-bottom: .8rem; }
  .split-media { min-height: 27rem; }
  .form { grid-template-columns: 1fr; }
  .field--full { grid-column: auto; }
  .footer-grid { grid-template-columns: 1fr; }
  .footer-contact { grid-column: auto; }
  .footer-bottom { flex-direction: column; }
}

@media (max-width: 560px) and (orientation: portrait) {
  .intro-strip .marquee { grid-template-columns: auto auto; row-gap: .25rem; }
  .intro-strip .marquee span:nth-child(2)::after { display: none; }
  .intro-strip .marquee span:nth-child(3) { grid-column: 1 / -1; justify-self: center; }
  .intro-strip .marquee span:nth-child(3)::before { content: "✦"; margin-right: clamp(.35rem, 1.6vw, .65rem); color: var(--clay); font-size: .65em; }
}

@media (max-width: 480px) {
  .hero-visual { min-height: 26rem; }
  .hero-image--main { width: 82%; height: 86%; }
  .hero-image--small { width: 62%; height: 30%; }
  .collection-images { grid-template-columns: 1fr; gap: .7rem; }
  .collection-images button, .collection-images button:first-child { grid-column: auto; grid-row: auto; min-height: 0; aspect-ratio: 1 / 1; }
  .collection-images button[data-ratio="portrait"] { aspect-ratio: 3 / 4; }
  .collection-images button[data-ratio="landscape"] { aspect-ratio: 4 / 3; }

  #mariage-evenements .collection-images button:nth-child(1),
  #mariage-evenements .collection-images button:nth-child(2) { aspect-ratio: 4 / 3; }
  #parrain .collection-images button:nth-child(1) { aspect-ratio: 4 / 5; }
  #veilleuses .collection-images button { aspect-ratio: 4 / 5; }
  #deco-maison .collection-images button:first-child { aspect-ratio: 4 / 3; }
  #pei .collection-images button:nth-child(2) { aspect-ratio: 3 / 4; }
  #pei .collection-images img[data-media="inspiration-diagonale-des-fous"] {
    object-fit: cover;
    object-position: center;
  }

  /* Nouveaux visuels : ratios mobiles calés sur chaque photographie. */
  #sports-trophees-medailles .collection-images button:nth-child(1),
  #sports-trophees-medailles .collection-images button:nth-child(2) { aspect-ratio: 4 / 3; }
  #sports-trophees-medailles .collection-images button:nth-child(3) { aspect-ratio: 1 / 1; }

  body[data-page="professionnels"] .professional-gallery--main,
  body[data-page="professionnels"] .professional-gallery--events { grid-template-rows: auto auto; }
  body[data-page="professionnels"] .professional-gallery--main figure:first-child { aspect-ratio: 1 / 1; }
  body[data-page="professionnels"] .professional-gallery--events figure:first-child { aspect-ratio: 4 / 5; }
  body[data-page="professionnels"] .professional-gallery--events figure:nth-child(3) img[data-media="professionnel-medailles-course-tamarins"] {
    object-fit: cover;
    object-position: center 58%;
  }
}

/* Neuf assets finaux : cadrages locaux sans fond dupliqué ni ancien montage. */
body[data-page="accueil"] .teaser img[data-media="final-home-planches"] {
  object-fit: cover;
  object-position: center 56%;
  transform: none;
}
body[data-page="accueil"] .teaser img[data-media="final-home-mariage"] {
  object-fit: cover;
  object-position: center 49%;
  transform: none;
}
body[data-page="accueil"] .teaser img[data-media="final-home-veilleuse-nahil"] {
  object-fit: cover;
  object-position: center 52%;
  transform: none;
}

#marraine .collection-images img[data-media="final-marraine-lotus"] {
  object-fit: cover;
  object-position: center 52%;
  transform: none;
}
#papa .collection-images img[data-media="final-papa-deux-creations"] {
  object-fit: cover;
  object-position: center 50%;
  transform: none;
}
#gravure-photo .collection-images img[data-media="final-portrait-homme"] {
  object-fit: cover;
  object-position: center 48%;
  transform: none;
}

@media (min-width: 1200px) {
  #marraine .collection-images button:first-child:has(img[data-media="final-marraine-lotus"]),
  #papa .collection-images button:first-child:has(img[data-media="final-papa-deux-creations"]) {
    isolation: auto;
    background: #e6dacb;
  }
  #marraine .collection-images button:first-child:has(img[data-media="final-marraine-lotus"])::before,
  #papa .collection-images button:first-child:has(img[data-media="final-papa-deux-creations"])::before {
    content: none;
  }
}

@media (max-width: 1199px) {
  #marraine .collection-images button:first-child:has(img[data-media="final-marraine-lotus"]),
  #papa .collection-images button:first-child:has(img[data-media="final-papa-deux-creations"]),
  #gravure-photo .collection-images button:first-child:has(img[data-media="final-portrait-homme"]) {
    min-height: 0;
    aspect-ratio: 3 / 4;
  }
}

@media (min-width: 901px) {
  body[data-page="accueil"] .teaser:has(img[data-media="final-home-mariage"]),
  body[data-page="accueil"] .teaser:has(img[data-media="final-home-veilleuse-nahil"]) {
    min-height: 46rem;
  }
}

@media (min-width: 621px) and (max-width: 900px) {
  body[data-page="accueil"] .teaser:has(img[data-media="final-home-mariage"]),
  body[data-page="accueil"] .teaser:has(img[data-media="final-home-veilleuse-nahil"]) {
    min-height: 34rem;
  }
}

@media (max-width: 620px) {
  body[data-page="accueil"] .teaser:has(img[data-media="final-home-planches"]),
  body[data-page="accueil"] .teaser:has(img[data-media="final-home-mariage"]) {
    min-height: 0;
    aspect-ratio: 3 / 4;
  }
  body[data-page="accueil"] .teaser:has(img[data-media="final-home-veilleuse-nahil"]) {
    min-height: 0;
    aspect-ratio: 4 / 5;
  }
}

/* Légendes photographiques : photo pleine carte et texte directement superposé. */
.editorial-gallery figure::after {
  content: "";
  position: absolute;
  z-index: 1;
  inset: 48% 0 0;
  pointer-events: none;
  background: linear-gradient(to bottom, transparent, rgba(24, 18, 14, .58));
}

.editorial-gallery figcaption {
  display: block;
  z-index: 2;
  inset: auto 1rem .9rem;
  padding: 0;
  border-radius: 0;
  background: transparent;
  color: #fffdf8;
  font-size: clamp(.75rem, .8vw, .86rem);
  font-weight: 700;
  line-height: 1.35;
  text-shadow: 0 1px 8px rgba(24, 18, 14, .42);
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
}

.editorial-gallery figure:not(:first-child) figcaption {
  inset: auto .65rem .6rem;
  max-width: calc(100% - 1.3rem);
  font-size: clamp(.68rem, .7vw, .75rem);
  font-weight: 600;
  line-height: 1.22;
  text-wrap: balance;
}

.home-final-cta h2 > span {
  display: block;
}

.home-final-cta .lede {
  max-width: 42rem;
  margin-inline: auto;
}

@media (max-width: 620px) {
  .home-final-cta__inner {
    width: min(31rem, calc(100% - 2rem));
  }

  .home-final-cta h2 {
    max-width: 8em;
    margin-right: auto;
    margin-left: auto;
    font-size: clamp(2.25rem, 11vw, 2.85rem);
    line-height: 1.02;
  }

  .home-final-cta .nowrap {
    white-space: nowrap;
  }

  .home-final-cta .lede {
    max-width: 32ch;
    font-size: clamp(1.05rem, 4.7vw, 1.16rem);
    line-height: 1.45;
  }
}

/* Sur-mesure : duo photographique local, sans modifier les autres blocs du site. */
body[data-page="sur-mesure"] .split-media--duo {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .8rem;
  min-height: 0;
  overflow: visible;
  border-radius: 0;
}

body[data-page="sur-mesure"] .split-media--duo figure {
  aspect-ratio: 4 / 5;
  overflow: hidden;
  margin: 0;
  border-radius: var(--radius);
  background: #e8ddcf;
  box-shadow: var(--shadow);
}

@media (min-width: 621px) {
  body[data-page="sur-mesure"] .split-media--duo figure:nth-child(even) {
    margin-top: 1.15rem;
  }
}

body[data-page="sur-mesure"] .split-media--duo img {
  object-fit: cover;
  object-position: center;
}

@media (max-width: 620px) {
  body[data-page="sur-mesure"] .split-media--duo {
    grid-template-columns: 1fr;
    min-height: 0;
    gap: 1rem;
  }
}

/* Créations : géométrie desktop adaptée aux nouveaux assets, sans recadrage artificiel. */
@media (min-width: 1200px) {
  #naissance .collection-images button:first-child {
    min-height: 0;
    aspect-ratio: 2 / 3;
    align-self: start;
  }

  #famille .collection-images {
    grid-template-rows: repeat(2, minmax(0, 1fr));
  }

  #famille .collection-images button {
    min-height: 0;
  }

  #famille .collection-images button:first-child {
    grid-row: 1 / 3;
    aspect-ratio: 1 / 1;
  }

  #planches .collection-images button:nth-child(3) {
    min-height: 0;
    aspect-ratio: 2 / 3;
  }

  #planches .collection-images,
  #pei .collection-images {
    grid-template-columns: 1.3fr .7fr;
  }

  #pei .collection-images {
    grid-template-rows: repeat(2, minmax(0, 1fr));
  }

  #pei .collection-images button:nth-child(2),
  #pei .collection-images button:nth-child(3) {
    min-height: 0;
    aspect-ratio: 3 / 4;
  }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; transition-duration: .01ms !important; }
  .reveal { opacity: 1; transform: none; }
}
