:root {
  --bg: #0e2a1e;
  --lime: #BFFF00;
  --lime-dim: rgba(191,255,0,0.12);
  --white: #F0EDE6;
  --white-mid: rgba(240,237,230,0.55);
  --white-low: rgba(240,237,230,0.2);
  --font-sans: 'Outfit', sans-serif;
  --font-body: 'Sora', sans-serif;
}

* { margin: 0; padding: 0; box-sizing: border-box; }

html, body {
  height: 100%;
  min-height: 100%;
  font-family: var(--font-sans);
  background: var(--bg);
  color: var(--white);
  overflow-x: hidden;
  overflow-y: auto;
}

/* ===== LAYOUT ===== */
.stage {
  width: 100%;
  min-height: 100vh;
  min-height: 100dvh;
  height: auto;
  display: grid;
  grid-template-columns: 1fr 1fr;
  position: relative;
}

/* ===== LEFT PANEL ===== */
.left {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 6vw 5vw 6vw 7vw;
  z-index: 2;
  position: relative;
}

.eyebrow {
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.2em;
  color: var(--lime);
  margin-bottom: 2rem;
  opacity: 0;
  animation: fadeUp 0.8s 0.3s forwards;
}

.headline {
  font-size: clamp(3.5rem, 5.5vw, 6.5rem);
  font-weight: 900;
  line-height: 0.9;
  letter-spacing: -0.03em;
  text-transform: uppercase;
  margin-bottom: 2rem;
  opacity: 0;
  animation: fadeUp 0.8s 0.5s forwards;
}

.headline .outline {
  -webkit-text-stroke: 1.5px var(--white);
  color: transparent;
}

.headline .lime {
  color: var(--lime);
}

.tagline {
  font-family: var(--font-sans);
  font-style: normal;
  font-size: clamp(1.08rem, 1.45vw, 1.35rem);
  font-weight: 700;
  line-height: 1.08;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: var(--lime);
  max-width: 24ch;
  margin-bottom: 1.45rem;
  opacity: 0;
  animation: fadeUp 0.8s 0.7s forwards;
}

.body-text {
  font-family: var(--font-body);
  font-size: clamp(0.92rem, 1.02vw, 1rem);
  font-weight: 400;
  line-height: 1.72;
  letter-spacing: -0.012em;
  color: rgba(240,237,230,0.9);
  max-width: 38ch;
  margin-bottom: 2rem;
  opacity: 0;
  animation: fadeUp 0.8s 0.9s forwards;
}

.body-text p {
  margin: 0 0 1.1rem;
}

.body-text p:last-child {
  margin-bottom: 0;
  margin-top: 0.35rem;
  font-family: var(--font-sans);
  font-size: clamp(0.98rem, 1.12vw, 1.08rem);
  font-weight: 700;
  line-height: 1.1;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--lime);
}

.closing-line {
  font-size: clamp(0.84rem, 1.05vw, 0.98rem);
  font-weight: 400;
  font-style: italic;
  line-height: 1.45;
  letter-spacing: 0.01em;
  color: rgba(240,237,230,0.5);
  margin-bottom: 1.2rem;
  opacity: 0;
  animation: fadeUp 0.8s 1.0s forwards;
}

.tagline strong {
  color: var(--white);
  font-style: normal;
  font-weight: 400;
}

.divider {
  width: 40px;
  height: 2px;
  background: var(--lime);
  margin-bottom: 0.8rem;
  opacity: 0;
  animation: fadeUp 0.8s 0.9s forwards;
}

.contact {
  opacity: 0;
  animation: fadeUp 0.8s 1.1s forwards;
}

.contact a {
  display: inline-flex;
  align-items: center;
  gap: 0.7rem;
  color: var(--white);
  text-decoration: none;
  font-size: 0.78rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  border: 1.5px solid var(--white-low);
  padding: 0.85rem 1.6rem;
  transition: all 0.2s;
}

.contact a:hover {
  border-color: var(--lime);
  color: var(--lime);
}

.contact a svg {
  transition: transform 0.2s;
}

.contact a:hover svg {
  transform: translateX(4px);
}

.newsletter {
  margin-top: 0.8rem;
  opacity: 0;
  animation: fadeUp 0.8s 1.3s forwards;
}

.newsletter-label {
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  color: var(--white-mid);
  margin-bottom: 0.75rem;
}

.newsletter-row {
  display: flex;
  gap: 0;
  max-width: 400px;
}

.newsletter-row input[type="email"] {
  flex: 1;
  background: rgba(240,237,230,0.07);
  border: 1.5px solid var(--white-low);
  border-right: none;
  color: var(--white);
  font-family: 'Outfit', sans-serif;
  font-size: 0.82rem;
  font-weight: 400;
  padding: 0.85rem 1.1rem;
  outline: none;
  transition: border-color 0.2s, background 0.2s;
  -webkit-appearance: none;
}

.newsletter-row input[type="email"]::placeholder {
  color: rgba(240,237,230,0.3);
}

.newsletter-row input[type="email"]:focus {
  border-color: var(--lime);
  background: rgba(191,255,0,0.05);
}

.newsletter-row button {
  background: var(--lime);
  color: #0e2a1e;
  border: 1.5px solid var(--lime);
  font-family: 'Outfit', sans-serif;
  font-size: 0.75rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  padding: 0.85rem 1.3rem;
  cursor: pointer;
  transition: background 0.15s, color 0.15s;
  white-space: nowrap;
}

.newsletter-row button:hover {
  background: #d4ff00;
}

.newsletter-row button:disabled {
  opacity: 0.5;
  cursor: default;
}
.newsletter-row button:focus-visible,
.newsletter-row input[type="email"]:focus-visible {
  outline: none;
}
.newsletter-row input[type="email"]:focus-visible {
  border-color: var(--lime);
  border-width: 2.5px;
}
.newsletter-row button:focus-visible {
  border-color: var(--lime);
  border-width: 2.5px;
}

.newsletter-confirm {
  display: none;
  align-items: center;
  gap: 0.6rem;
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--lime);
  padding: 0.85rem 0;
}

.newsletter-confirm svg {
  flex-shrink: 0;
}

.newsletter-confirm.visible {
  display: flex;
}

.newsletter-note {
  margin-top: 0.6rem;
  font-size: 0.68rem;
  color: rgba(240,237,230,0.50);
  letter-spacing: 0.04em;
}

.location {
  position: absolute;
  bottom: 2rem;
  left: 7vw;
  font-size: 0.65rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.16em;
  color: var(--white-mid);
  opacity: 0;
  animation: fadeUp 0.8s 1.5s forwards;
}

/* ===== RIGHT PANEL — SVG ===== */
@media (max-height: 860px) and (min-width: 761px) {
  .left {
    justify-content: flex-start;
    padding-top: 3rem;
    padding-bottom: 3rem;
  }

  .eyebrow,
  .headline,
  .tagline,
  .body-text,
  .divider {
    margin-bottom: 1rem;
  }

  .newsletter {
    margin-top: 0.35rem;
  }
}

.right {
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  overflow: hidden;
}

.right::before {
  content: '';
  position: absolute;
  left: 0;
  top: 10%;
  height: 80%;
  width: 1px;
  background: linear-gradient(to bottom, transparent, var(--white-low) 30%, var(--white-low) 70%, transparent);
}

.windmill-wrap {
  width: 80%;
  max-width: 500px;
  opacity: 0;
  animation: fadeIn 1.2s 0.6s forwards;
}

.windmill-wrap svg {
  width: 100%;
  height: auto;
}

.hub-glow {
  animation: pulse 4s ease-in-out infinite;
}

@keyframes pulse {
  0%, 100% { opacity: 0.07; r: 22; }
  50% { opacity: 0.18; r: 30; }
}

.blade-spin {
  animation: spin 18s linear infinite;
  transform-origin: 200px 190px;
}

@keyframes spin {
  to { transform: rotate(360deg); }
}

.wind-line {
  animation: windMove 3s ease-in-out infinite;
  opacity: 0;
}
.wind-line:nth-child(2) { animation-delay: 0.75s; }
.wind-line:nth-child(3) { animation-delay: 1.5s; }
.wind-line:nth-child(4) { animation-delay: 2.25s; }

@keyframes windMove {
  0%   { opacity: 0; transform: translateX(0); }
  20%  { opacity: 0.7; }
  80%  { opacity: 0.4; }
  100% { opacity: 0; transform: translateX(55px); }
}

@keyframes fadeUp {
  from { opacity: 0; transform: translateY(18px); }
  to   { opacity: 1; transform: translateY(0); }
}

@keyframes fadeIn {
  from { opacity: 0; }
  to   { opacity: 1; }
}

/* ===== SEASON LAYERS ===== */
.season-layer {
  opacity: 0;
  transition: opacity 0.8s ease;
  pointer-events: none;
}

.season-layer.active {
  opacity: 1;
}

/* --- Neige (flocons) --- */
.snowflake {
  animation: snowFall var(--sdur) var(--sdelay) linear infinite;
}
@keyframes snowFall {
  0%   { opacity: 0;    transform: translate(0px, 0px); }
  6%   { opacity: 0.85; }
  90%  { opacity: 0.7;  transform: translate(var(--swx), 470px); }
  96%  { opacity: 0.35; transform: translate(var(--swx), 470px); }
  100% { opacity: 0;    transform: translate(var(--swx), 470px); }
}

/* --- Pluie --- */
.raindrop {
  animation: rainFall var(--rdur) var(--rdelay) linear infinite;
}
@keyframes rainFall {
  0%   { opacity: 0;    transform: translate(0, 0); }
  5%   { opacity: 0.55; }
  86%  { opacity: 0.45; transform: translate(var(--rwx), 360px); }
  89%  { opacity: 0.2;  transform: translate(var(--rwx), 376px); }
  91%  { opacity: 0;    transform: translate(var(--rwx), 383px); }
  100% { opacity: 0;    transform: translate(var(--rwx), 415px); }
}

/* Éclaboussures */
.splash {
  opacity: 0;
  transform-box: fill-box;
  transform-origin: center bottom;
}
.season-layer.active .splash {
  animation: splashAnim var(--sdur) var(--sdelay) linear infinite;
}
@keyframes splashAnim {
  0%   { opacity: 0;    transform: scale(0.1); }
  70%  { opacity: 0;    transform: scale(0.1); }
  76%  { opacity: 0.65; transform: scale(1); }
  86%  { opacity: 0.3;  transform: scale(1.6); }
  94%  { opacity: 0;    transform: scale(1.9); }
  100% { opacity: 0;    transform: scale(1.9); }
}

/* Lignes de flux de vent */
.flow-line {
  opacity: 0;
  stroke-dasharray: 320 800;
  stroke-dashoffset: 0;
  animation: flowAnim var(--fdur) var(--fdelay) ease-in-out infinite;
}
@keyframes flowAnim {
  0%   { opacity: 0;    stroke-dashoffset: 1200; }
  8%   { opacity: var(--fopac); }
  85%  { opacity: var(--fopac); }
  100% { opacity: 0;    stroke-dashoffset: -200; }
}

/* --- Feuilles --- */
.leaf {
  opacity: 0;
  transform-box: fill-box;
  transform-origin: center center;
}
.season-layer.active .leaf {
  animation: leafDrift calc(var(--ldur) * 0.22) var(--ldelay) ease-out 1 forwards;
}
@keyframes leafDrift {
  0%   { opacity: 0;            transform: translate(0, 0) rotate(0deg); }
  8%   { opacity: var(--lopac); transform: translate(calc(var(--ldx)*0.08), calc(var(--ldy)*0.08)) rotate(18deg); }
  22%  {                        transform: translate(calc(var(--ldx)*0.22), calc(var(--ldy)*0.22)) rotate(-14deg); }
  38%  {                        transform: translate(calc(var(--ldx)*0.38), calc(var(--ldy)*0.38)) rotate(22deg); }
  52%  {                        transform: translate(calc(var(--ldx)*0.52), calc(var(--ldy)*0.52)) rotate(-10deg); }
  66%  {                        transform: translate(calc(var(--ldx)*0.66), calc(var(--ldy)*0.66)) rotate(16deg); }
  80%  {                        transform: translate(calc(var(--ldx)*0.80), calc(var(--ldy)*0.80)) rotate(-8deg); }
  88%  { opacity: var(--lopac); transform: translate(calc(var(--ldx)*0.88), calc(var(--ldy)*0.88)) rotate(12deg); }
  100% { opacity: 0.42;         transform: translate(var(--ldx), var(--ldy)) rotate(4deg); }
}

/* --- Barre d'étapes linéaire --- */
.step-bg {
  fill: transparent;
  transition: fill 0.3s ease;
}
.step-bg.active {
  fill: #BFFF00;
}
.step-text {
  transition: fill 0.3s ease;
  cursor: pointer;
}
.step-text.active {
  fill: #0e2a1e;
}
.step-label:hover .step-text {
  fill: #F0EDE6;
}
.step-label:hover .step-bg.active ~ .step-text,
.step-bg.active + .step-text {
  fill: #0e2a1e;
}

/* --- Papillon --- */
.butterfly-wing {
  transform-box: fill-box;
}
.butterfly-wing-left {
  transform-origin: 100% 50%;
  animation: flapLeft 0.18s cubic-bezier(0.2, 0.75, 0.35, 1) infinite;
}
.butterfly-wing-right {
  transform-origin: 0% 50%;
  animation: flapRight 0.18s cubic-bezier(0.2, 0.75, 0.35, 1) infinite;
}
@keyframes flapLeft {
  0%   { transform: rotate(-18deg) scaleX(1) scaleY(1); }
  30%  { transform: rotate(12deg)  scaleX(0.22) scaleY(0.98); }
  100% { transform: rotate(-18deg) scaleX(1) scaleY(1); }
}
@keyframes flapRight {
  0%   { transform: rotate(18deg) scaleX(1) scaleY(1); }
  30%  { transform: rotate(-12deg) scaleX(0.22) scaleY(0.98); }
  100% { transform: rotate(18deg) scaleX(1) scaleY(1); }
}

/* --- Fleur de printemps --- */
.spring-flower {
  transform-box: fill-box;
  transform-origin: center bottom;
  opacity: 0;
  transform: scaleY(0.06);
  animation: flowerGrow 7s linear 1 forwards;
}
.flower-bloom {
  transform-box: fill-box;
  transform-origin: center center;
  opacity: 0;
  transform: scale(0.08);
  animation: flowerBloom 7s linear 1 forwards;
}
@keyframes flowerGrow {
  0%   { opacity: 0;   transform: scaleY(0.06); }
  10%  { opacity: 0.95; }
  22%  { opacity: 1;   transform: scaleY(1); }
  100% { opacity: 1;   transform: scaleY(1); }
}
@keyframes flowerBloom {
  0%   { opacity: 0;   transform: scale(0.08); }
  14%  { opacity: 0;   transform: scale(0.08); }
  28%  { opacity: 0.95; transform: scale(1); }
  100% { opacity: 0.95; transform: scale(1); }
}

/* --- Snow cover --- */
.snow-cover {
  opacity: 0;
  transition: opacity 1.2s ease;
}
.snow-cover.visible {
  opacity: 1;
}

/* --- Summer particles --- */
.summer-mote {
  animation:
    moteDrift var(--mdur) var(--mdelay) ease-in-out infinite,
    moteTwinkle var(--tw-dur, 2.2s) var(--tw-delay, calc(var(--mdelay) * 0.7)) ease-in-out infinite;
}
@keyframes moteDrift {
  0%   { opacity: 0.14; transform: translate(0, 0); }
  15%  { opacity: 0.5; }
  85%  { opacity: 0.4; }
  100% { opacity: 0;   transform: translate(var(--mdx), var(--mdy)); }
}

@keyframes moteTwinkle {
  0%, 100% { filter: brightness(0.95) drop-shadow(0 0 0px rgba(191,255,0,0)); }
  40%      { filter: brightness(1.2) drop-shadow(0 0 3px rgba(191,255,0,0.42)); }
  65%      { filter: brightness(0.98) drop-shadow(0 0 1px rgba(191,255,0,0.18)); }
}

/* --- Soleil radieux (printemps/imaginer) --- */
.sun-glow-pulse {
  animation: sunGlowPulse 4s ease-in-out infinite;
}
@keyframes sunGlowPulse {
  0%, 100% { opacity: 0.8; transform: scale(1); }
  50%      { opacity: 1;   transform: scale(1.08); }
}

.sun-ray {
  animation: rayShimmer var(--ray-dur) var(--ray-delay) ease-in-out infinite;
}
@keyframes rayShimmer {
  0%   { opacity: 0.2;  stroke-width: 1; }
  25%  { opacity: 0.9;  stroke-width: 2.2; }
  50%  { opacity: 0.35; stroke-width: 1.2; }
  75%  { opacity: 0.85; stroke-width: 1.8; }
  100% { opacity: 0.2;  stroke-width: 1; }
}

.sun-sparkle {
  animation: sparkle var(--sp-dur) var(--sp-delay) ease-in-out infinite;
}
@keyframes sparkle {
  0%, 100% { opacity: 0;   }
  50%      { opacity: 0.75; }
}

.spring-cloud {
  animation: springCloudDrift var(--cloud-dur, 11s) ease-out 1 forwards;
}
@keyframes springCloudDrift {
  0%   { transform: translateX(0); opacity: 1; }
  100% { transform: translateX(var(--cloud-dx, 118px)); opacity: 1; }
}

/* ===== NOISE GRAIN OVERLAY ===== */
body::after {
  content: '';
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 50;
  opacity: 0.03;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E");
  background-size: 200px 200px;
}

/* ===== RESPONSIVE ===== */
@media (max-width: 760px) {
  html, body { overflow-x: hidden; overflow-y: auto;  }

  .stage {
    grid-template-columns: 1fr;
    grid-template-rows: auto auto;
    height: auto;
    min-height: 100vh;
  }

  .left {
    padding: 3rem 2rem 2rem;
    order: 2;
  }

  .right {
    order: 1;
    padding: 2rem 0 1rem;
    width: 100%;
    overflow: hidden;
  }

  .right::before { display: none; }

  .windmill-wrap {
    width: 100%;
    max-width: 100%;
    margin: 0 auto;
  }

  .newsletter-row {
    max-width: 100%;
  }

  .location {
    position: static;
    margin-top: 2rem;
  }

  .headline {
    font-size: clamp(3rem, 12vw, 5rem);
  }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    opacity: 1 !important;
    transform: none !important;
  }
}

/* Police Brevo remplacée */
  #sib-container input::placeholder,
  #sib-container textarea::placeholder {
    font-family: 'Outfit', sans-serif;
    color: rgba(240,237,230,0.3);
  }
  #sib-container a {
    color: #BFFF00;
    text-decoration: underline;
  }

  /* Conteneur : supprimer bordure et fond Brevo */
  .sib-form { background-color: transparent !important; padding: 0 !important; }
  .sib-form-container { padding: 0 !important; }
  #sib-container {
    background-color: transparent !important;
    border: none !important;
    border-radius: 0 !important;
    padding: 0 !important;
    max-width: 400px !important;
    text-align: left !important;
  }

  /* Titre "Newsletter" — masqué, remplacé par le label .newsletter-label */
  #sib-form > div:first-child { display: none !important; }

  /* Label du champ */
  .entry__label {
    font-family: var(--font-body) !important;
    font-size: 0.8rem !important;
    font-style: normal !important;
    font-weight: 600 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.08em !important;
    color: rgba(240,237,230,0.65) !important;
    margin-bottom: 0.75rem !important;
    line-height: 1.35 !important;
    display: block !important;
  }

  /* Élargir le conteneur pour accueillir le layout en ligne */
  #sib-container {
    max-width: 500px !important;
  }

  /* Aplatir la hiérarchie Brevo pour un placement CSS Grid précis */
  #sib-form > div:nth-child(1) { display: none !important; }
  #sib-form > div:nth-child(2),
  #sib-form > div:nth-child(2) .sib-input,
  #sib-form > div:nth-child(2) .form__entry,
  #sib-form > div:nth-child(2) .form__label-row,
  #sib-form > div:nth-child(3),
  #sib-form > div:nth-child(3) > .sib-form-block {
    display: contents !important;
  }

  /* Grille : label pleine largeur, puis input+bouton côte à côte, puis textes pleine largeur */
  #sib-form {
    display: grid !important;
    grid-template-columns: 1fr auto !important;
    gap: 0 !important;
  }
  .entry__label {
    grid-column: 1 / -1 !important;
    grid-row: 1 !important;
  }
  .entry__field {
    grid-column: 1 !important;
    grid-row: 2 !important;
  }
  .sib-form-block__button {
    grid-column: 2 !important;
    grid-row: 2 !important;
    align-self: stretch !important;
  }
  .entry__error {
    grid-column: 1 / -1 !important;
    grid-row: 3 !important;
  }
  .entry__specification {
    grid-column: 1 / -1 !important;
    grid-row: 4 !important;
  }

  /* Champ email */
  .input {
    font-family: var(--font-sans) !important;
    font-size: 0.82rem !important;
    font-weight: 400 !important;
    background: rgba(240,237,230,0.07) !important;
    border: 1.5px solid rgba(240,237,230,0.2) !important;
    border-radius: 0 !important;
    color: #F0EDE6 !important;
    padding: 0.85rem 1.1rem !important;
    width: 100% !important;
    transition: border-color 0.2s, background 0.2s !important;
  }
  .input:focus {
    border-color: #BFFF00 !important;
    border-width: 2.5px !important;
    background: rgba(191,255,0,0.05) !important;
    outline: none !important;
  }

  /* Bouton */
  .sib-form-block__button {
    font-family: 'Outfit', sans-serif !important;
    font-size: 0.75rem !important;
    font-weight: 800 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.1em !important;
    background-color: #BFFF00 !important;
    color: #0e2a1e !important;
    border: 1.5px solid #BFFF00 !important;
    border-radius: 0 !important;
    padding: 0.85rem 1.3rem !important;
    width: auto !important;
    cursor: pointer !important;
    transition: background 0.15s !important;
    margin-top: 0 !important;
  }
  .sib-form-block__button:hover {
    background-color: #d4ff00 !important;
    border-color: #d4ff00 !important;
  }

  /* Responsive : repasser en colonne quand l'input devient trop étroit */
  /* Zone two-column (760-1020px) : left panel trop étroit pour input+bouton en ligne */
  @media (min-width: 761px) and (max-width: 1020px) {
    #sib-form {
      grid-template-columns: 1fr !important;
    }
    .sib-form-block__button {
      grid-column: 1 !important;
      grid-row: 3 !important;
      width: 100% !important;
      margin-top: 0.5rem !important;
    }
    .entry__error { grid-row: 4 !important; }
    .entry__specification { grid-row: 5 !important; }
  }
  /* Zone single-column (< 560px) : même traitement */
  @media (max-width: 560px) {
    #sib-form {
      grid-template-columns: 1fr !important;
    }
    .sib-form-block__button {
      grid-column: 1 !important;
      grid-row: 3 !important;
      width: 100% !important;
      margin-top: 0.5rem !important;
    }
    .entry__error { grid-row: 4 !important; }
    .entry__specification { grid-row: 5 !important; }
  }

  /* Icône loader dans le bouton */
  .sib-hide-loader-icon { display: none !important; }
  #sib-form.sib-is-pending .sib-hide-loader-icon {
    display: inline-block !important;
    animation: sibSpin 0.8s linear infinite;
  }
  #sib-form.sib-is-pending {
    pointer-events: none;
    opacity: 0.82;
  }
  #sib-form.sib-is-pending .sib-form-block__button {
    cursor: wait !important;
  }

  @keyframes sibSpin {
    to { transform: rotate(360deg); }
  }

  /* Icônes de notification — contraindre la taille */
.sib-notification__icon,
.sib-icon.sib-notification__icon,
.sib-form-message-panel .sib-icon {
  width: 20px !important;
  height: 20px !important;
  max-width: 20px !important;
  max-height: 20px !important;
  flex-shrink: 0 !important;
}

  /* Contraindre TOUS les SVG du formulaire Brevo */
  .sib-form svg {
    max-width: 20px !important;
    max-height: 20px !important;
  }

  /* Loader dans le bouton */
  .sib-form-block__button svg {
    width: 16px !important;
    height: 16px !important;
    max-width: 16px !important;
    max-height: 16px !important;
  }

/* Réordonner visuellement : formulaire d'abord, messages ensuite */
#sib-form-container {
  display: flex !important;
  flex-direction: column !important;
}
#error-message { order: 3 !important; }
#success-message { order: 1 !important; }
#sib-container { order: 2 !important; }
/* Les div vides entre les éléments */
#sib-form-container > div:not([id]) { order: 10 !important; display: none !important; }

/* Messages succès et erreur — style cohérent */
#success-message {
  display: none;
  background-color: transparent !important;
  border: none !important;
  padding: 0.5rem 0 !important;
  max-width: 400px !important;
}
#success-message .sib-form-message-panel__text {
  display: flex !important;
  align-items: center !important;
  gap: 0.5rem !important;
}
#success-message .sib-form-message-panel__inner-text {
  font-family: 'Outfit', sans-serif !important;
  font-size: 0.8rem !important;
  font-weight: 600 !important;
  color: #BFFF00 !important;
}
#success-message .sib-notification__icon {
  fill: #BFFF00 !important;
  color: #BFFF00 !important;
}
/* Masquer le formulaire quand l'inscription est confirmée */
#success-message[style*="block"] ~ #sib-container {
  display: none !important;
}

#error-message {
  display: none;
  background-color: transparent !important;
  border: none !important;
  border-left: 2px solid rgba(255,80,80,0.6) !important;
  padding: 0.4rem 0.7rem !important;
  max-width: 400px !important;
}
#error-message .sib-form-message-panel__text {
  display: flex !important;
  align-items: center !important;
  gap: 0.5rem !important;
}
#error-message .sib-form-message-panel__inner-text {
  font-family: 'Outfit', sans-serif !important;
  font-size: 0.75rem !important;
  color: rgba(255,160,160,0.9) !important;
}
#error-message .sib-notification__icon {
  color: rgba(255,80,80,0.6) !important;
  fill: rgba(255,80,80,0.6) !important;
}

  /* Message d'erreur inline (champ requis / email invalide) */
  .entry__error {
    font-family: 'Outfit', sans-serif !important;
    font-size: 0.72rem !important;
    color: rgba(255,160,160,0.9) !important;
    background-color: transparent !important;
    border: none !important;
    border-color: transparent !important;
    padding: 0.3rem 0 !important;
    text-align: left !important;
    display: none !important;
  }
  .entry__error.entry__error--visible {
    display: block !important;
  }

  /* Note "Pas de spam" */
  .entry__specification {
    font-family: 'Outfit', sans-serif !important;
    font-size: 0.68rem !important;
    color: rgba(240,237,230,0.50) !important;
    letter-spacing: 0.04em !important;
  }

  /* Séparateur et bloc RGPD masqués */
  .sib-divider-form-block,
  .sib-form__declaration { display: none !important; }

  /* Icône info RGPD */
  .rgpd-toggle {
    cursor: pointer;
    opacity: 0.7;
    transition: opacity 0.2s;
    display: inline-flex;
    vertical-align: middle;
    margin-left: 0.15rem;
  }
  .rgpd-toggle:hover { opacity: 1; }
  .rgpd-toggle svg {
    max-width: none !important;
    max-height: none !important;
  }

  /* Popup RGPD */
  .rgpd-popup {
    display: none;
    grid-column: 1 / -1 !important;
  }
  .rgpd-popup.rgpd-visible {
    display: block;
  }
  .rgpd-popup__content {
    position: relative;
    background: rgba(14,42,30,0.95);
    border: 1px solid rgba(240,237,230,0.15);
    padding: 1rem 1.2rem;
    margin-top: 0.5rem;
    font-family: 'Outfit', sans-serif;
    font-size: 0.65rem;
    line-height: 1.5;
    color: rgba(240,237,230,0.6);
  }
  .rgpd-popup__content a {
    color: rgba(191,255,0,0.7);
    text-decoration: underline;
  }
  .rgpd-popup__content a:hover { color: #BFFF00; }
  .rgpd-popup__close {
    position: absolute;
    top: 0.4rem;
    right: 0.6rem;
    cursor: pointer;
    font-size: 1rem;
    color: rgba(240,237,230,0.4);
    line-height: 1;
  }
  .rgpd-popup__close:hover { color: #F0EDE6; }

  /* Espacement interne réduit */
  #sib-form > div { padding: 3px 0 !important; }
