@media (max-width: 640px) {
  h1,
  .page-hero h1 { font-size: clamp(2.65rem, 11.5vw, 3.2rem); line-height: 1.02; }
  h2,
  .entry-content h2 { font-size: clamp(2.05rem, 9vw, 2.65rem); line-height: 1.04; }

  .hero h1,
  .manifesto h2,
  .story-copy h2,
  .reviews-heading h2,
  .closing-content h2 { max-width: 100%; }

  .header-inner { width: calc(100% - 2rem); }
  .hero-progress { left: 1.5rem; bottom: 1.5rem; }
  .review-grid { grid-template-columns: 1fr; }
  .review-card { padding: 2rem 1.5rem; }
  .footer-resources ul { display: grid; grid-template-columns: 1fr 1fr; gap: .65rem 1rem; }
  .footer-resources li:not(:last-child)::after { display: none; }
  .page-hero-visual { min-height: 620px; padding: 9rem 1.25rem 4rem; }
  .page-hero-visual h1 { font-size: clamp(2.5rem, 11vw, 3rem); }
  .page-body { width: calc(100% - 2.5rem); padding-top: 4.5rem; }
  .page-body-photographe-mariage > .wp-block-columns { display: block; }
  .page-body-photographe-mariage > .wp-block-columns .wp-block-column + .wp-block-column { margin-top: 1.5rem; }
  .page-body-portfolio > .wp-block-columns { display: block; padding: 1.5rem; }
  .page-body-portfolio > .wp-block-columns > .wp-block-column + .wp-block-column { margin-top: 1.75rem; }
  .page-body-portfolio > .wp-block-columns:nth-of-type(even) > .wp-block-column:first-child { order: initial; }
  .cecile-about-page > header { text-align: left; }
  .cecile-about-page > aside { text-align: left; }
  .page-body-vos-photos > .wp-block-columns { display: grid; grid-template-columns: 1fr; }
  .page-body-contact > .wp-block-columns { display: block; padding: 1.5rem; }
  .page-body-contact > .wp-block-columns > .wp-block-column + .wp-block-column { margin-top: 3rem; }
}

@media (max-width: 782px) {
  body.admin-bar:not(.home) .site-header,
  body.admin-bar:not(.home) .site-header.is-scrolled {
    top: 46px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .hero-slide { transition: none; }
}

/* Contrastes WCAG AA sur les petits libellés et les appels à l'action. */
.button-primary,
.header-action-primary {
  border-color: #814724;
  background: #814724;
}

.button-primary:hover,
.header-action-primary:hover {
  border-color: #68391d;
  background: #68391d;
}

.promise-list article > span,
.review-stars {
  color: #814724;
}

.reviews-section {
  background: #814724;
}

.reviews-section .eyebrow,
.reviews-section .review-note {
  color: #fff;
}

.wedding-signature-strip {
  padding: clamp(5rem, 8vw, 8rem) max(3vw, calc((100vw - 1440px) / 2));
  background: #faf7f2;
}
.signature-strip-heading { width: min(760px, 90vw); margin: 0 auto clamp(2.5rem, 5vw, 4.5rem); text-align: center; }
.signature-strip-heading h2 { font-size: clamp(2.6rem, 4.5vw, 5rem); }
.signature-strip-grid { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: clamp(.65rem, 1.2vw, 1.15rem); }
.signature-strip-grid figure { position: relative; margin: 0; overflow: hidden; transition: transform .45s cubic-bezier(.2,.75,.25,1); }
.signature-strip-grid img { width: 100%; aspect-ratio: 1; object-fit: cover; transform: scale(1.001); transition: transform .7s cubic-bezier(.2,.75,.25,1), filter .45s ease; }
.signature-strip-grid figcaption { position: relative; padding: .9rem .1rem .15rem; color: #814724; font: 600 clamp(1.1rem, 1.55vw, 1.55rem)/1.1 var(--serif); transition: transform .4s cubic-bezier(.2,.75,.25,1), color .3s ease; }
.signature-strip-grid figcaption::after { content: ''; display: block; width: 0; height: 1px; margin-top: .55rem; background: currentColor; transition: width .45s cubic-bezier(.2,.75,.25,1); }
.signature-strip-grid figure:hover { z-index: 2; transform: translateY(-8px); }
.signature-strip-grid figure:hover img { transform: scale(1.07); filter: saturate(1.08) contrast(1.03); }
.signature-strip-grid figure:hover figcaption { color: #b45f34; transform: translateX(.35rem); }
.signature-strip-grid figure:hover figcaption::after { width: 2.5rem; }
.signature-strip-grid figcaption strong { color: #814724; font-weight: 600; }
@media (prefers-reduced-motion: reduce) {
  .signature-strip-grid figure,
  .signature-strip-grid img,
  .signature-strip-grid figcaption,
  .signature-strip-grid figcaption::after { transition: none; }
  .signature-strip-grid figure:hover,
  .signature-strip-grid figure:hover img,
  .signature-strip-grid figure:hover figcaption { transform: none; }
}

@media (max-width: 1080px) {
  .signature-strip-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2rem 1rem; }
}

/* Page Photographe mariage : galerie d'introduction plus généreuse. */
.page-id-54323 .entry-content > .wp-block-columns:first-of-type { grid-template-columns: minmax(0, .9fr) minmax(420px, 1.1fr); }
.page-id-54323 .entry-content > .wp-block-columns:first-of-type .kb-gallery-ul {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .8rem;
  height: auto !important;
}
.page-id-54323 .entry-content > .wp-block-columns:first-of-type .kadence-blocks-gallery-item:first-child { grid-column: 1 / -1; }
.page-id-54323 .entry-content > .wp-block-columns:first-of-type .kadence-blocks-gallery-item {
  position: static !important;
  width: auto !important;
}
.page-id-54323 .entry-content > .wp-block-columns:first-of-type .kb-gal-image-radius { max-width: none !important; }
.page-id-54323 .entry-content > .wp-block-columns:first-of-type img { width: 100% !important; height: auto !important; }
.page-id-54323 .wedding-tariff-grid { display: grid !important; grid-template-columns: 1fr !important; gap: 2rem; }
.page-id-54323 .wedding-tariff-grid > * { width: min(880px, 100%) !important; margin-right: auto !important; margin-left: auto !important; }
.page-id-54323 .tariff-visual { cursor: zoom-in; box-shadow: 0 18px 50px rgba(68,45,37,.1); transition: transform .25s ease, box-shadow .25s ease; }
.page-id-54323 .tariff-visual:hover { transform: translateY(-3px); box-shadow: 0 24px 65px rgba(68,45,37,.16); }

/* Les anciens blocs ne doivent devenir foncés que si leur fond était foncé. */
.entry-content [style*="color: #1e293b"],
.entry-content [style*="color:#1e293b"] { background-color: transparent !important; color: #1e293b !important; }

.contact-form-card .wpforms-required-label { display: inline !important; color: #814724 !important; font-weight: 800 !important; }

@media (max-width: 760px) {
  .signature-strip-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.7rem .8rem; }
  .signature-strip-grid img { aspect-ratio: 1; }
  .page-id-54323 .entry-content > .wp-block-columns:first-of-type { grid-template-columns: 1fr; }
}

/* Appel à l'action du footer */
.site-footer .footer-intro .button {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: auto !important;
  min-height: 48px !important;
  height: 48px !important;
  margin-top: .75rem;
  padding: 0 1.45rem !important;
  border: 1px solid #b97143 !important;
  border-radius: 999px !important;
  background: #b97143 !important;
  color: #fff !important;
  font-size: .64rem !important;
  font-weight: 600 !important;
  letter-spacing: .1em;
  line-height: 1 !important;
  text-decoration: none !important;
  text-transform: uppercase;
  white-space: nowrap;
  box-shadow: none !important;
}
.site-footer .footer-intro .button:hover {
  border-color: #9c5932 !important;
  background: #9c5932 !important;
  color: #fff !important;
  transform: translateY(-1px);
}
