/* Sections "photo de mariage" — reprend les codes du site (Inter, noir #171717, formes arrondies) */
.mz-section { padding: 4.5rem 5% 0; }
.mz-container { width: 100%; max-width: 80rem; margin: 0 auto; }
.mz-container.is-wide { max-width: 105rem; }
.mz-eyebrow {
  display: inline-block; margin-bottom: 1rem; padding: .35rem .9rem;
  border: 1px solid var(--black); border-radius: 100rem;
  font-size: .875rem; font-weight: 500; line-height: 1.4;
}
.mz-title { margin: 0 0 1rem; font-size: 3rem; font-weight: 500; line-height: 1.15; }
.mz-lead { max-width: 46rem; margin: 0; font-size: 1.25rem; line-height: 1.6; }
.mz-center { text-align: center; }
.mz-center .mz-lead { margin-left: auto; margin-right: auto; }
.mz-head { margin-bottom: 2.5rem; }
.mz-photo { display: block; width: 100%; height: 100%; object-fit: cover; border-radius: 1.5rem; background: var(--grey); }

/* Hero : trio de photos */
.mz-hero-photos { display: grid; grid-template-columns: 1fr 1.25fr 1fr; gap: 1rem; align-items: center; max-width: 72rem; margin: 3rem auto 0; }
.mz-hero-photos .mz-photo { aspect-ratio: 2 / 3; border-radius: 2rem; }
.mz-hero-photos .is-side { margin-top: 3rem; }

/* Texte + photo */
.mz-split { display: grid; grid-template-columns: 1fr 1fr; gap: 4rem; align-items: center; }
.mz-split .mz-photo { aspect-ratio: 4 / 5; border-radius: 2rem; }
.mz-split p { font-size: 1.125rem; line-height: 1.7; }
.mz-checks { margin: 1.5rem 0 0; padding: 0; list-style: none; }
.mz-checks li { position: relative; margin-bottom: .75rem; padding-left: 2rem; font-size: 1.125rem; line-height: 1.5; }
.mz-checks li::before {
  content: ""; position: absolute; left: 0; top: .2rem; width: 1.25rem; height: 1.25rem; border-radius: 50%;
  background: var(--black) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5.5 10.5l3 3 6-7' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* Galerie */
.mz-gallery { columns: 3; column-gap: 1rem; }
.mz-gallery-item {
  display: block; width: 100%; margin: 0 0 1rem; padding: 0; border: 0; background: none;
  border-radius: 1.5rem; overflow: hidden; cursor: zoom-in; break-inside: avoid;
}
.mz-gallery-item img { display: block; width: 100%; height: auto; background: var(--grey); transition: transform .4s ease-out; }
.mz-gallery-item:hover img { transform: scale(1.03); }
.mz-gallery-item:focus-visible, .mz-faq summary:focus-visible, .mz-lightbox button:focus-visible { outline: .125rem solid #4d65ff; outline-offset: .125rem; }

/* Déroulé de la journée */
.mz-steps { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; margin: 0; padding: 0; list-style: none; }
.mz-step { padding: 1.75rem; border: 1px solid var(--grey); border-radius: 2rem; background: var(--light-grey); }
.mz-step-num { display: flex; align-items: center; justify-content: center; width: 2.5rem; height: 2.5rem; margin-bottom: 1.25rem; border-radius: 50%; background: var(--black); color: var(--white); font-weight: 500; }
.mz-step h3 { margin: 0 0 .5rem; font-size: 1.375rem; font-weight: 500; line-height: 1.3; }
.mz-step p { margin: 0; font-size: 1rem; line-height: 1.6; }

/* FAQ */
.mz-faq { max-width: 56rem; margin: 0 auto; }
.mz-faq details { margin-bottom: .75rem; border: 1px solid var(--black); border-radius: 2rem; }
.mz-faq summary { display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: 3.5rem; padding: 1rem 1.5rem; border-radius: 2rem; font-size: 1.125rem; font-weight: 500; cursor: pointer; list-style: none; }
.mz-faq summary::-webkit-details-marker { display: none; }
.mz-faq summary::after { content: "+"; flex: none; font-size: 1.75rem; font-weight: 300; line-height: 1; transition: transform .25s ease-out; }
.mz-faq details[open] summary::after { transform: rotate(45deg); }
.mz-faq details p { margin: 0; padding: 0 1.5rem 1.5rem; font-size: 1.0625rem; line-height: 1.65; }
.mz-faq a, .mz-others a { color: inherit; text-decoration: underline; text-underline-offset: .2em; }

/* Autres prestations photo */
.mz-others { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; margin: 0; padding: 0; list-style: none; }
.mz-others li { padding: 1.5rem; border: 1px solid var(--grey); border-radius: 1.5rem; font-size: 1rem; line-height: 1.55; }
.mz-others strong { display: block; margin-bottom: .35rem; font-size: 1.125rem; font-weight: 500; }

/* Bloc mariage de la page d'accueil */
.mz-feature { display: grid; grid-template-columns: 1fr 1.1fr; gap: 3rem; align-items: center; padding: 2.5rem; border-radius: 3rem; background: var(--light-grey); }
.mz-feature-photos { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.mz-feature-photos .mz-photo { aspect-ratio: 2 / 3; }
.mz-feature-photos .mz-photo:last-child { margin-top: 2.5rem; }
.mz-buttons { display: flex; flex-wrap: wrap; gap: 1rem; margin-top: 2rem; }
.mz-center .mz-buttons { justify-content: center; }

/* Visionneuse */
.mz-lightbox { position: fixed; inset: 0; z-index: 10000; display: none; align-items: center; justify-content: center; padding: 4.5rem 1rem; background: rgba(0, 0, 0, .9); }
.mz-lightbox.is-open { display: flex; }
.mz-lightbox img { max-width: 100%; max-height: 100%; border-radius: 1rem; }
.mz-lightbox button { position: absolute; display: flex; align-items: center; justify-content: center; width: 3rem; height: 3rem; padding: 0; border: 0; border-radius: 50%; background: var(--white); color: var(--black); font-size: 1.5rem; line-height: 1; cursor: pointer; }
.mz-lightbox .mz-close { top: 1rem; right: 1rem; }
.mz-lightbox .mz-prev { left: 1rem; top: 50%; transform: translateY(-50%); }
.mz-lightbox .mz-next { right: 1rem; top: 50%; transform: translateY(-50%); }

/* Apparition au défilement (uniquement si le script est actif) */
.mz-js .mz-reveal { opacity: 0; transform: translateY(1.5rem); transition: opacity .6s ease-out, transform .6s ease-out; }
.mz-js .mz-reveal.is-visible { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
  .mz-js .mz-reveal { opacity: 1; transform: none; transition: none; }
  .mz-gallery-item img { transition: none; }
}

@media screen and (max-width: 991px) {
  .mz-title { font-size: 2.5rem; }
  .mz-split, .mz-feature { grid-template-columns: 1fr; gap: 2rem; }
  .mz-steps, .mz-others { grid-template-columns: 1fr 1fr; }
  .mz-gallery { columns: 2; }
}
@media screen and (max-width: 767px) {
  .mz-section { padding-top: 3.5rem; }
  .mz-title { font-size: 2rem; }
  .mz-lead { font-size: 1.125rem; }
  .mz-hero-photos { grid-template-columns: 1fr 1fr; margin-top: 2rem; }
  .mz-hero-photos .is-side { margin-top: 0; }
  .mz-hero-photos .is-last { display: none; }
  .mz-feature { padding: 1.25rem; border-radius: 2rem; }
}
@media screen and (max-width: 479px) {
  .mz-steps, .mz-others { grid-template-columns: 1fr; }
  .mz-lightbox .mz-prev, .mz-lightbox .mz-next { top: auto; bottom: 1rem; transform: none; }
}
