/*
Theme Name:   Dynamik Aero Child
Theme URI:    https://www.dynamikaero.fr/
Description:  Child theme de Twenty Twenty-Three - degrades rose blanc bleu animes
Author:       Dynamik Aero
Template:     twentytwentythree
Version:      1.2.1
License:      GNU General Public License v2 or later
Text Domain:  dynamikaero-child
*/

@keyframes dynamikGradient {
  0%   { background-position: 0% 50%; }
  50%  { background-position: 100% 50%; }
  100% { background-position: 0% 50%; }
}

@keyframes pulseGlow {
  0% { transform: scale(1) translate(0px, 0px); opacity: 0.7; }
  33% { transform: scale(1.05) translate(15px, -15px); opacity: 1; }
  66% { transform: scale(0.95) translate(-15px, 10px); opacity: 0.8; }
  100% { transform: scale(1) translate(0px, 0px); opacity: 0.7; }
}

@keyframes floatText {
  0% { transform: translateY(0px) scale(0.99); opacity: 0.85; }
  50% { transform: translateY(-4px) scale(1.02); opacity: 1; }
  100% { transform: translateY(0px) scale(0.99); opacity: 0.85; }
}

/* ============================================================
   FOND GLOBAL — forcer la couleur claire même en dark mode
   ============================================================ */

html {
  background-color: #f0eaf8 !important;
  color-scheme: light !important;
}

body {
  background-color: #f0eaf8 !important;
  background-image: linear-gradient(
    135deg,
    #f5e8f4 0%,
    #eaecf9 20%,
    #e4eef8 40%,
    #f0e8f6 60%,
    #e8f0fa 80%,
    #f5e8f4 100%
  ) !important;
  background-size: 400% 400% !important;
  background-attachment: scroll !important;
  -webkit-animation: dynamikGradient 22s ease infinite !important;
  animation: dynamikGradient 22s ease infinite !important;
  min-height: 100vh !important;
  /* Forcer le mode clair même si le navigateur/OS est en dark */
  color-scheme: light !important;
}

/* Neutraliser les fonds intermédiaires FSE */
.wp-site-blocks,
.wp-block-group,
.wp-block-group__inner-container,
.wp-block-template-part,
.wp-block-post-template,
.wp-block-query,
.wp-block-column,
.wp-block-columns,
.entry-content,
.wp-block-post-content,
main, #main {
  background-color: transparent !important;
  background-image: none !important;
}

/* Neutraliser les couleurs inline du FSE */
[style*="background-color: var(--wp--preset--color--base)"],
[style*="background-color:var(--wp--preset--color--base)"],
.has-base-background-color,
.has-background {
  background-color: transparent !important;
  background-image: none !important;
}

/* ============================================================
   HEADER
   ============================================================ */

body > .wp-site-blocks {
  padding-top: 0 !important;
  row-gap: 0 !important;
}

body > .wp-site-blocks > .wp-block-cover.alignfull {
  margin-top: 0 !important;
}

/* Offset header fixe sur les pages autres que la page principale */
body:not(.home) > .wp-site-blocks > main {
  padding-top: 140px !important;
}

/* Navbar toujours avec fond sur les pages hors accueil */
body:not(.home) > .wp-site-blocks > header {
  padding-top: 15px !important;
  padding-bottom: 15px !important;
  background-color: rgba(245, 230, 242, 0.9) !important;
  background-image: linear-gradient(
    135deg,
    rgba(239,150,197,0.5) 0%,
    rgba(255,255,255,0.8) 45%,
    rgba(144,177,221,0.4) 100%
  ) !important;
  background-size: 300% 300% !important;
  animation: dynamikGradient 14s ease infinite !important;
  backdrop-filter: blur(8px) !important;
  -webkit-backdrop-filter: blur(8px) !important;
  border-bottom: 1px solid rgba(239,150,197,0.25) !important;
  box-shadow: 0 2px 20px rgba(144,177,221,0.15) !important;
}

body > .wp-site-blocks > header .wp-block-group {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

.wp-block-navigation__responsive-container.is-menu-open {
  height: 100dvh !important;
  min-height: 100dvh !important;
  top: 0 !important;
  left: 0 !important;
}

.wp-block-navigation__responsive-container-open,
.wp-block-navigation__responsive-container-close {
  margin-right: var(--wp--preset--spacing--30, 1rem) !important;
}

body > .wp-site-blocks > header {
  position: fixed !important;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 99999 !important;
  padding-top: 25px !important;
  padding-bottom: 25px !important;
  background-color: transparent !important;
  background-image: none !important;
  border-bottom: none !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  transition: background-color 0.4s ease, padding 0.4s ease, box-shadow 0.4s ease, backdrop-filter 0.4s ease;
}

body > .wp-site-blocks > header.is-scrolled {
  padding-top: 15px !important;
  padding-bottom: 15px !important;
  background-color: rgba(245, 230, 242, 0.9) !important;
  background-image: linear-gradient(
    135deg,
    rgba(239,150,197,0.5) 0%,
    rgba(255,255,255,0.8) 45%,
    rgba(144,177,221,0.4) 100%
  ) !important;
  background-size: 300% 300% !important;
  -webkit-animation: dynamikGradient 14s ease infinite !important;
  animation: dynamikGradient 14s ease infinite !important;
  backdrop-filter: blur(8px) !important;
  -webkit-backdrop-filter: blur(8px) !important;
  border-bottom: 1px solid rgba(239,150,197,0.25) !important;
  box-shadow: 0 2px 20px rgba(144,177,221,0.15) !important;
}

.wp-block-site-title a,
.wp-block-site-title {
  color: #4a1f65 !important;
  font-weight: 700 !important;
  text-decoration: none !important;
  white-space: normal !important;
  overflow-wrap: break-word !important;
  word-break: break-word !important;
}

@media (max-width: 782px) {
  .wp-block-group.alignwide,
  .wp-block-group.alignwide.is-layout-flex,
  body .wp-block-group.alignwide.is-layout-flex {
    flex-wrap: wrap !important;
  }

  .wp-block-site-title {
    width: 100% !important;
    max-width: 100% !important;
    flex-shrink: 1 !important;
  }
}

.wp-block-site-logo img,
img.wp-image-18 {
  width: 100px !important;
  height: auto !important;
}

.wp-block-navigation a,
.wp-block-navigation-item__content {
  color: #4a2860 !important;
  font-weight: 500 !important;
  transition: color 0.2s ease !important;
}

@keyframes solarHalo {
  0%   {
    box-shadow:
      0 0 6px 3px rgba(255,255,255,0.45),
      0 0 16px 7px rgba(255,255,255,0.2),
      0 0 30px 12px rgba(255,255,255,0.08);
  }
  50%  {
    box-shadow:
      0 0 10px 5px rgba(255,255,255,0.65),
      0 0 26px 12px rgba(255,255,255,0.3),
      0 0 50px 22px rgba(255,255,255,0.12);
  }
  100% {
    box-shadow:
      0 0 6px 3px rgba(255,255,255,0.45),
      0 0 16px 7px rgba(255,255,255,0.2),
      0 0 30px 12px rgba(255,255,255,0.08);
  }
}

.wp-block-navigation a {
  text-decoration: none !important;
  border-radius: 20px !important;
  padding: calc(0.2em + 5px) calc(0.65em + 5px) !important;
  transition: background 0.3s ease !important;
}

.wp-block-navigation a:hover {
  color: #4a2860 !important;
  text-decoration: none !important;
  background: rgba(255, 255, 255, 0.18) !important;
  animation: solarHalo 1.8s ease-in-out infinite !important;
}

/* Croix de fermeture du burger */
.wp-block-navigation__responsive-dialog {
  position: relative !important;
}

.wp-block-navigation__responsive-container-close {
  position: absolute !important;
  top: 120px !important;
  right: 30px !important;
  z-index: 100000 !important;
}

/* ============================================================
   HERO — Cover block
   ============================================================ */

.wp-block-cover {
  background-color: #ef96c5 !important;
  background-image: linear-gradient(
    160deg,
    #ef96c5 0%,
    #f5b8d8 20%,
    #fce8f4 38%,
    #ffffff 50%,
    #d8e8f5 65%,
    #b3cce8 82%,
    #90b1dd 100%
  ) !important;
  background-size: 250% 250% !important;
  -webkit-animation: dynamikGradient 10s ease infinite !important;
  animation: dynamikGradient 10s ease infinite !important;
  min-height: 320px !important;
  position: relative !important;
  overflow: hidden !important;
}

.wp-block-cover__image-background,
.wp-block-cover__video-background { 
  opacity: 0.45 !important;
  mix-blend-mode: luminosity !important;
  filter: grayscale(100%) contrast(1.1) !important;
}

.wp-block-cover::before {
  content: '';
  position: absolute;
  inset: -20%;
  background:
    radial-gradient(ellipse at 25% 35%, rgba(255,255,255,0.6) 0%, transparent 60%),
    radial-gradient(ellipse at 78% 65%, rgba(144,177,221,0.4) 0%, transparent 50%),
    radial-gradient(ellipse at 50% 10%, rgba(239,150,197,0.3) 0%, transparent 40%);
  pointer-events: none;
  z-index: 1;
  -webkit-animation: pulseGlow 12s ease-in-out infinite alternate !important;
  animation: pulseGlow 12s ease-in-out infinite alternate !important;
}

.wp-block-cover .wp-block-cover__inner-container { position: relative; z-index: 2; }

.wp-block-cover h1,
.wp-block-cover h2,
.wp-block-cover .wp-block-heading {
  color: #3d1a55 !important;
  -webkit-animation: floatText 5s ease-in-out infinite alternate !important;
  animation: floatText 5s ease-in-out infinite alternate !important;
}

.wp-block-cover .text_gradient {
  background-size: 200% auto !important;
  -webkit-animation: dynamikGradient 6s ease-out infinite alternate !important;
  animation: dynamikGradient 6s ease-out infinite alternate !important;
  text-shadow: 0 4px 25px rgba(255,255,255,0.8) !important;
}

.hero_white_mask.wp-block-cover {
  background-color: #ffffff !important;
  background-image: none !important;
  -webkit-animation: none !important;
  animation: none !important;
}

.hero_white_mask .wp-block-cover__image-background {
  opacity: 0.3 !important;
  mix-blend-mode: normal !important;
  filter: none !important;
}

.hero_white_mask::before {
  display: none !important;
}

.hero_white_mask .wp-block-cover__inner-container {
  position: relative;
  z-index: 2;
  margin-top: calc(70vh / 3) !important;
}

/* ============================================================
   H1 AUTRES PAGES — surbrillance rose
   ============================================================ */

body:not(.home) h1.wp-block-heading,
body:not(.home) .wp-block-post-title,
body:not(.home) .wp-block-post-title a {
  background-color: #ef96c544 !important;
  border-radius: 4px !important;
  padding: 2px 8px !important;
  display: inline-block !important;
}

/* ============================================================
   IMAGES
   ============================================================ */

img {
  border-radius: 5px !important;
}

/* ============================================================
   TITRES ET TEXTES
   ============================================================ */

h1 {
  font-size: clamp(2.2rem, 4vw, 3rem) !important;
}

.wp-block-post-title,
.wp-block-post-title a,
.entry-title,
.entry-title a {
  font-size: clamp(1.6rem, 3vw, 2.4rem) !important;
}

h1, h2, h3, h4, h5, h6,
.wp-block-heading,
.wp-block-post-title,
.wp-block-post-title a,
.entry-title,
.entry-title a {
  color: #4a1f65 !important;
}

h4 { line-height: 1.2 !important; font-size: 1.05rem !important; }

.wp-block-post-title a:hover,
.entry-title a:hover { color: #c065a0 !important; }

p, li, .wp-block-paragraph { color: #3d2a50 !important; }
a { color: #9040a0 !important; }
a:hover { color: #c065a0 !important; }

.wp-block-post-author { 
  color: #9070a8 !important; 
  font-size: 0.85em !important; 
}

.wp-block-post-date { 
  color: #9070a8 !important; 
  font-size: 0.85em !important; 
  position: absolute !important;
  bottom: 15px !important;
  left: 20px !important;
  margin: 0 !important;
}

/* ============================================================
   CARDS / ARTICLES — glassmorphism
   ============================================================ */

.wp-block-post,
.wp-block-query-loop article,
article.post,
article.page,
.wp-block-post-template > li {
  background-color: rgba(255,255,255,0.62) !important;
  background-image: none !important;
  border: 1px solid rgba(239,150,197,0.32) !important;
  border-radius: 5px !important;
  backdrop-filter: blur(10px) !important;
  -webkit-backdrop-filter: blur(10px) !important;
  box-shadow:
    0 4px 20px rgba(144,177,221,0.18),
    0 1px 4px rgba(239,150,197,0.12),
    inset 0 1px 0 rgba(255,255,255,0.7) !important;
  padding: 20px !important;
  padding-bottom: 55px !important;
  position: relative !important;
  transition: transform 0.25s ease, box-shadow 0.25s ease !important;
}

.wp-block-post:hover, article.post:hover {
  transform: translateY(-3px) !important;
  box-shadow:
    0 10px 36px rgba(144,177,221,0.28),
    0 2px 8px rgba(239,150,197,0.2),
    inset 0 1px 0 rgba(255,255,255,0.8) !important;
}

.wp-block-post-featured-image img,
.post-thumbnail img { border-radius: 5px !important; width: 100% !important; }

/* ============================================================
   BOUTONS
   ============================================================ */

.wp-block-button__link, .wp-element-button {
  background-color: #ef96c5 !important;
  background-image: linear-gradient(135deg, #ef96c5, #c878aa) !important;
  color: #ffffff !important;
  border: none !important;
  border-radius: 30px !important;
  box-shadow: 0 4px 14px rgba(239,150,197,0.4) !important;
  transition:
    transform 0.5s cubic-bezier(0.34, 1.56, 0.64, 1),
    box-shadow 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94),
    background-image 0.4s ease !important;
}
.wp-block-button__link:hover, .wp-element-button:hover {
  transform: translateY(-4px) scale(1.03) !important;
  box-shadow:
    0 8px 24px rgba(239,150,197,0.55),
    0 2px 8px rgba(239,150,197,0.3) !important;
  color: #ffffff !important;
}

/* ============================================================
   FOOTER
   ============================================================ */

body > .wp-site-blocks > footer {
  padding-top: 20px !important;
  padding-bottom: 20px !important;
  background-color: #b080be !important;
  background-image: linear-gradient(
    135deg,
    #c070aa 0%,
    #a888c8 35%,
    #8898c8 65%,
    #7090c4 100%
  ) !important;
  background-size: 250% 250% !important;
  -webkit-animation: dynamikGradient 16s ease infinite !important;
  animation: dynamikGradient 16s ease infinite !important;
  border-top: 1px solid rgba(255,255,255,0.2) !important;
}

body > .wp-site-blocks > footer,
body > .wp-site-blocks > footer * { color: rgba(255,255,255,0.92) !important; }
body > .wp-site-blocks > footer a:hover { color: #ffffff !important; text-decoration: underline !important; }
body > .wp-site-blocks > footer img { opacity: 0.85 !important; filter: brightness(1.15) !important; }

body > .wp-site-blocks > footer .wp-block-social-links {
  justify-content: flex-start !important;
  order: -1 !important;
}

body > .wp-site-blocks > footer .wp-block-columns {
  flex-direction: row !important;
}

body > .wp-site-blocks > footer .wp-block-column:has(.wp-block-social-links) {
  order: -1 !important;
}

/* ============================================================
   BACK TO TOP
   ============================================================ */

#wpfront-scroll-top-container {
  transform: scale(0.67) !important;
  transform-origin: bottom right !important;
}

/* ============================================================
   ACCESSIBILITÉ + MOBILE
   ============================================================ */

@media (prefers-reduced-motion: reduce) {
  * { -webkit-animation: none !important; animation: none !important; }
}

/* Burger menu déclenché à 850px */
@media (min-width: 1101px) {
  .wp-block-navigation__responsive-container-open,
  .wp-block-navigation__responsive-container-close {
    display: none !important;
  }
  .wp-block-navigation__responsive-container:not(.is-menu-open) {
    display: flex !important;
    position: static !important;
    background: transparent !important;
    width: auto !important;
    height: auto !important;
  }
}

@media (max-width: 1100px) {
  .wp-block-navigation__responsive-container:not(.is-menu-open) {
    display: none !important;
  }
  .wp-block-navigation__responsive-container-open {
    display: flex !important;
  }

  .wp-block-post-template.modern_grid > li:nth-child(n+3) {
    display: none !important;
  }

  .wp-block-post-template.modern_grid {
    display: flex !important;
    flex-wrap: nowrap !important;
    gap: var(--wp--preset--spacing--40) !important;
  }

  .wp-block-post-template.modern_grid > li {
    flex: 1 1 0 !important;
    min-width: 0 !important;
  }
}

@media (max-width: 480px) {
  .wp-block-post-template.modern_grid > li:nth-child(n+2) {
    display: none !important;
  }

  .wp-block-post-template.modern_grid {
    display: block !important;
  }

  .wp-block-post-template.modern_grid > li {
    width: auto !important;
    max-width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }
}

@media (max-width: 768px) {
  .wp-block-cover { min-height: 220px !important; }
  .wp-block-post, article.post { padding: 14px !important; border-radius: 5px !important; }
  .wp-block-navigation__responsive-container { z-index: 99999 !important; }

  .wp-block-navigation__responsive-container .wp-block-navigation__container {
    gap: 0.25rem !important;
  }

  .wp-block-navigation__responsive-container .wp-block-navigation-item__content {
    padding-top: 0.35rem !important;
    padding-bottom: 0.35rem !important;
  }

  /* Icônes réseaux sociaux centrées dans le footer */
  body > .wp-site-blocks > footer .wp-block-social-links {
    justify-content: center !important;
  }

  /* Menu burger — items centrés verticalement */
  .wp-block-navigation__responsive-container.is-menu-open {
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
    align-items: center !important;
  }

  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
    align-items: center !important;
    text-align: center !important;
  }

}

/* ============================================================
   UTILITAIRES DE DESIGN (GLASSMORPHISM & OMBRES)
   ============================================================ */

.glassmorphism_panel {
  background: rgba(255, 255, 255, 0.45) !important;
  backdrop-filter: blur(16px) !important;
  -webkit-backdrop-filter: blur(16px) !important;
  border: 1px solid rgba(255, 255, 255, 0.6) !important;
  border-radius: 5px !important;
  box-shadow: 0 12px 40px 0 rgba(144, 177, 221, 0.25) !important;
  padding: 18px !important;
  margin: 20px auto !important;
  transition: transform 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275), box-shadow 0.4s ease !important;
}

.glassmorphism_panel:hover {
  transform: translateY(-8px) scale(1.01) !important;
  box-shadow: 0 20px 50px 0 rgba(239, 150, 197, 0.35) !important;
}

.pink_block {
  background: linear-gradient(135deg, rgba(239, 150, 197, 0.15) 0%, rgba(144, 177, 221, 0.15) 100%) !important;
  border-radius: 5px !important;
  padding: 40px !important;
  border: 1px solid rgba(255, 255, 255, 0.5) !important;
}

.radius_lg img {
  border-radius: 5px !important;
}

.text_gradient {
  background: linear-gradient(90deg, #c55d9d 0%, #688dc1 100%) !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  display: inline-block !important;
  font-weight: 800 !important;
  white-space: nowrap !important;
  text-wrap: wrap !important;
}

hr.gradient_line {
  background: linear-gradient(90deg, #c55d9d 0%, #688dc1 100%) !important;
  border: none !important;
  height: 2px !important;
  opacity: 1 !important;
  border-radius: 1px !important;
  margin-top: 1.1rem !important;
}

/* (Sticky header styles are defined in the HEADER section above with body > specificity) */

/* Subtle gradient vignette at top of hero for menu readability */
.hero_white_mask::after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 120px;
  background: linear-gradient(180deg, rgba(255,255,255,0.6) 0%, transparent 100%);
  z-index: 1;
  pointer-events: none;
}

/* ============================================================
   HERO: MASK PULSATION (white overlay breathes)
   ============================================================ */
@keyframes maskPulse {
  0%   { opacity: 0.85; }
  50%  { opacity: 0.5; }
  100% { opacity: 0.85; }
}

.hero_white_mask .wp-block-cover__background {
  -webkit-animation: maskPulse 8s ease-in-out infinite !important;
  animation: maskPulse 8s ease-in-out infinite !important;
}

/* ============================================================
   PARTNERS BLOCK: MIDNIGHT BLUE → ULTRA VIOLET GRADIENT
   ============================================================ */
.dark_blue_gradient_block {
  background: linear-gradient(-45deg, #1b0e33, #3d1a55, #172a5a, #0b0f19) !important;
  background-size: 400% 400% !important;
  -webkit-animation: partnersGradient 12s ease infinite !important;
  animation: partnersGradient 12s ease infinite !important;
  color: #ffffff !important;
  padding: 60px 40px !important;
  border-radius: 0 !important;
}

@keyframes partnersGradient {
  0%   { background-position: 0% 50%; }
  50%  { background-position: 100% 50%; }
  100% { background-position: 0% 50%; }
}

.dark_blue_gradient_block p,
.dark_blue_gradient_block h1,
.dark_blue_gradient_block h2,
.dark_blue_gradient_block h3,
.dark_blue_gradient_block h4 {
  color: #ffffff !important;
}

.dark_blue_gradient_block a {
  color: #ef96c5 !important;
  transition: color 0.3s ease;
}
.dark_blue_gradient_block a:hover {
  color: #ffffff !important;
}

.dark_blue_gradient_block .wp-block-image {
  text-align: center !important;
}

.dark_blue_gradient_block .wp-block-image img {
  margin-left: auto !important;
  margin-right: auto !important;
  display: block !important;
  width: 160px !important;
  height: 160px !important;
  object-fit: contain !important;
}

@media (max-width: 600px) {
  .dark_blue_gradient_block .wp-block-image img {
    width: 80px !important;
    height: 80px !important;
  }
}

/* ============================================================
   NEWS CARDS (ACTUALITES) — smaller text + grayscale hover
   ============================================================ */
.wp-block-query .wp-block-post-title {
  font-size: 1.15rem !important;
  line-height: 1.15 !important;
  margin-bottom: 0.33em !important;
}

.wp-block-query .wp-block-post-excerpt {
  font-size: 0.85rem !important;
  line-height: 1.5 !important;
  color: #666666 !important;
}

.wp-block-post-template.modern_grid .wp-block-spacer {
  display: none !important;
}

.wp-block-query .wp-block-post-featured-image img {
  filter: grayscale(80%) sepia(20%) hue-rotate(300deg) saturate(1.2) opacity(0.85) !important;
  transition: all 0.5s ease-in-out !important;
}

.wp-block-query .wp-block-post:hover .wp-block-post-featured-image img {
  filter: grayscale(0%) sepia(0%) hue-rotate(0deg) saturate(1) opacity(1) !important;
  transform: scale(1.02);
}
