.sow-gallery {
  color: #f4f8fc;
  background: #14263c;
  padding: 64px 0 104px;
}
.sow-gallery-inner { max-width: 1200px; margin: 0 auto; padding: 0 24px; }
.sow-gallery-intro { max-width: 840px; margin-bottom: 36px; }
.sow-gallery-eyebrow { color: #7ad7f4; font-size: 13px; font-weight: 750; letter-spacing: .13em; text-transform: uppercase; margin-bottom: 12px; }
.sow-gallery h2 { color: #ffffff; font-size: clamp(28px, 3.2vw, 42px); font-weight: 750; line-height: 1.2; letter-spacing: -.025em; margin: 0 0 20px; }
.sow-gallery-intro > p:not(.sow-gallery-eyebrow) { color: #d0deeb; font-size: 17px; line-height: 1.75; margin: 0 0 14px; }
.sow-gallery-links { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 24px; }
.sow-gallery-links a, .sow-gallery-cta a {
  display: inline-flex; align-items: center; justify-content: center; min-height: 48px;
  padding: 11px 22px; border-radius: 999px; border: 1px solid #39abd4;
  color: #124f6e; background: #fff; font-size: 16px; font-weight: 700; text-align: center;
}
.sow-gallery-links a:first-child, .sow-gallery-cta a { background: #39abd4; color: #092f45; }
.sow-gallery a:focus-visible { outline: 3px solid #7ad7f4; outline-offset: 4px; }
.sow-video-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px; align-items: start; scroll-margin-top: 88px; }
.sow-video-card { min-width: 0; overflow: hidden; background: #fff; border: 1px solid #d9e6ee; border-radius: 20px; box-shadow: 0 10px 28px #0f3d6010; }
.sow-video-heading { display: flex; align-items: center; gap: 12px; min-height: 90px; padding: 20px; }
.sow-video-heading > span { display: grid; place-items: center; flex-shrink: 0; width: 34px; height: 34px; border-radius: 50%; background: #e7f5fb; color: #14749a; font-size: 13px; font-weight: 800; }
.sow-video-heading h3 { margin: 0; color: #0f172a; font-size: 19px; font-weight: 750; line-height: 1.4; }
.sow-video-card video { display: block; width: 100%; height: auto; aspect-ratio: 9 / 16; object-fit: contain; background: #101b27; }
.sow-video-copy { padding: 20px; }
.sow-video-copy .sow-ai-label { display: inline-block; margin: 0 0 14px; padding: 7px 10px; border-radius: 8px; background: #e7f5fb; color: #145b7a; font-size: 13px; font-weight: 700; line-height: 1.55; }
.sow-video-copy p { margin: 0 0 18px; color: #475569; font-size: 16px; line-height: 1.65; }
.sow-video-copy a { color: #156d91; font-size: 16px; font-weight: 750; text-decoration: underline; text-underline-offset: 4px; }
.sow-gallery-photos { padding-top: 80px; scroll-margin-top: 80px; }
.sow-photo-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px; align-items: start; }
.sow-photo-card { min-width: 0; margin: 0; overflow: hidden; background: #fff; border: 1px solid #d9e6ee; border-radius: 18px; box-shadow: 0 8px 22px #0f3d600a; }
.sow-photo-card > a { display: block; background: #eef4f8; }
.sow-photo-card img { display: block; width: 100%; height: auto; max-height: 430px; object-fit: contain; }
.sow-photo-card figcaption { padding: 16px 20px; color: #1e293b; font-size: 16px; font-weight: 650; line-height: 1.5; }
.sow-gallery-cta { display: flex; align-items: center; justify-content: space-between; gap: 28px; margin-top: 64px; padding: 32px; border: 1px solid #416781; border-radius: 20px; background: #203e58; }
.sow-gallery-cta h2 { font-size: 27px; margin: 0 0 8px; }
.sow-gallery-cta p { margin: 0; color: #d0deeb; line-height: 1.7; }
.sow-gallery-cta a { flex-shrink: 0; }
@media (max-width: 1000px) {
  .sow-video-grid, .sow-photo-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .sow-gallery-cta { align-items: flex-start; flex-direction: column; }
}
@media (max-width: 600px) {
  .sow-gallery { padding: 42px 0 80px; }
  .sow-gallery-inner { padding: 0 20px; }
  .sow-gallery-intro > p:not(.sow-gallery-eyebrow) { font-size: 16px; }
  .sow-video-grid, .sow-photo-grid { grid-template-columns: minmax(0, 1fr); gap: 26px; }
  .sow-video-heading { min-height: 78px; }
  .sow-gallery-photos { padding-top: 56px; }
  .sow-gallery-cta { margin-top: 44px; padding: 24px; }
  .sow-gallery-cta a { width: 100%; }
}

/* Galerie uniquement : raccorder la vague du hero au fond bleu. */
section:has(+ .sow-gallery) .pointer-events-none svg { fill: #14263c !important; }
