/* ---------- TOKENS ---------- */
:root{
  --navy:#1a2e6c;
  --navy-deep:#0b1838;
  --navy-darker:#050e24;
  --rose:#d4838a;
  --rose-deep:#b66971;
  --cream:#fdfbf1;
  --linen:#f5ede0;
  --bone:#f8f9fb;
  --ice:#ebedf2;
  --blush:#f3eff1;
  --stone:#ede1cc;
  --white:#ffffff;

  --f-serif:'txc-pearl','TXC Pearl','Cormorant Garamond',Georgia,serif;
  --f-sans:'Inter',-apple-system,BlinkMacSystemFont,sans-serif;
}

/* ---------- RESET ---------- */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent;}
html{
  -webkit-text-size-adjust:100%;
  text-size-adjust:100%;
  scroll-behavior:smooth;
  -webkit-tap-highlight-color:transparent;
  overflow-x:clip;
}
body{
  font-family:var(--f-sans);
  font-weight:300;
  color:var(--navy);
  background:var(--white);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  overflow-x:clip;
  min-height:100svh;
  overscroll-behavior-y:none;
  padding-left:env(safe-area-inset-left);
  padding-right:env(safe-area-inset-right);
}
img,video{max-width:100%;display:block;height:auto;}
input,select,textarea,button{font:inherit;color:inherit;}
button{cursor:pointer;border:none;background:none;}
a{color:inherit;text-decoration:none;}
p{margin:0;}

/* ---------- HELPERS ---------- */
.eyebrow{
  font-family:var(--f-serif);
  font-weight:400;
  color:var(--rose);
  font-size:16px;
  letter-spacing:4px;
  text-transform:uppercase;
  line-height:1;
}
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:22.5px 45px;
  font-family:var(--f-serif);
  font-weight:400;
  font-size:20px;
  letter-spacing:3.75px;
  text-transform:uppercase;
  color:var(--navy);
  background:var(--white);
  transition:transform .3s ease, box-shadow .3s ease, background-color .3s ease, color .3s ease;
  border:none;
  cursor:pointer;
  text-decoration:none;
}
@media (hover:hover) and (pointer:fine){
  .btn:hover{transform:translateY(-3px);background:var(--navy);color:var(--white);box-shadow:0 0 0 1px var(--white) inset, 0 18px 38px rgba(0,0,0,.35);}
  .btn--navy:hover{background:var(--navy);color:var(--white);box-shadow:0 12px 28px rgba(0,0,0,.12);}
  .btn--rose:hover{background:var(--rose-deep);color:var(--white);box-shadow:0 12px 28px rgba(0,0,0,.12);}
}
.btn--navy{background:var(--navy);color:var(--white);}
.btn--rose{background:var(--rose-deep);color:var(--white);}

/* SVG quote mark helper */
.qmark{color:var(--rose);display:block;width:50px;height:38px;}

/* ---------- HERO ---------- */
.hero{
  position:relative;
  background:var(--navy);
  height:982px;
  overflow:hidden;
  color:var(--white);
  padding:max(env(safe-area-inset-top), 0px) 100px 0;
}
.hero__texture{
  position:absolute;
  inset:0;
  pointer-events:none;
}
.hero__texture::before{
  content:'';
  position:absolute;
  inset:0;
  background-image:
    radial-gradient(ellipse 70% 80% at 25% 65%, rgba(26,46,108,0) 0%, rgba(26,46,108,.75) 75%),
    url('../images/backgrounds/hero-map.webp');
  background-size:cover;
  background-position:center;
  transform-origin:center;
}
.hero__inner{
  position:relative;
  max-width:1328px;
  height:100%;
  margin:0 auto;
  display:flex;
  flex-direction:column;
  justify-content:center;
  z-index:2;
}
.hero__content{
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:55px;
  max-width:620px;
}
.hero__seal{
  position:absolute;
  right:clamp(60px, 12vw, 200px);
  bottom:clamp(80px, 14vh, 180px);
  width:clamp(220px, 22vw, 320px);
  height:auto;
  filter:drop-shadow(0 14px 40px rgba(0,0,0,.45));
  z-index:3;
  pointer-events:none;
}
.hero__logo-wrap{margin:0;padding:0;line-height:0;display:block;}
.hero__logo-main{
  width:min(640px, 100%);
  height:auto;
  object-fit:contain;
  filter:drop-shadow(0 10px 30px rgba(0,0,0,.25));
  display:block;
}
.hero__subtitle{
  font-size:clamp(1rem, .9rem + .3vw, 1.125rem);
  font-weight:300;
  line-height:1.8;
  color:var(--white);
  max-width:650px;
}

/* ---------- SECTION: STORY ---------- */
.story{
  background:var(--cream);
  padding:clamp(60px, 8vw + 20px, 150px) clamp(24px, 4vw + 8px, 100px);
  position:relative;
  overflow:hidden;
}
.story__row{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:80px;
  max-width:1328px;
  margin:0 auto 120px;
}
.story__headline{
  display:flex;
  flex-direction:column;
  gap:20px;
  flex-shrink:0;
  max-width:440px;
}
.story__title{
  font-family:var(--f-serif);
  font-weight:400;
  font-size:clamp(2.75rem, 1.8rem + 4vw, 6.25rem);
  line-height:.95;
  letter-spacing:-3px;
  color:var(--navy);
}
.story__right{
  display:flex;
  flex-direction:column;
  gap:60px;
  align-items:center;
  padding-top:60px;
  max-width:760px;
}
.story__glasses{
  width:100%;
  max-width:430px;
  height:auto;
  aspect-ratio:176/60;
  object-fit:contain;
  align-self:center;
  margin-bottom:16px;
}
.story__body{
  font-size:18px;
  line-height:1.6;
  color:var(--navy);
  font-weight:300;
}
.story__body p + p{margin-top:30px;}

/* Jacques Schneider editorial layout */
.artist{
  position:relative;
  max-width:1328px;
  margin:0 auto;
  min-height:820px;
  isolation:isolate;
}
.artist::before,
.artist::after{
  content:'';
  position:absolute;
  top:-120px;
  bottom:-120px;
  width:50vw;
  background-repeat:no-repeat;
  background-size:contain;
  pointer-events:none;
  z-index:-1;
}
.artist::before{
  right:calc(100% + 40px);
  background-image:url('../images/backgrounds/jacques-left.webp');
  background-position:right center;
}
.artist::after{
  left:calc(100% + 40px);
  background-image:url('../images/backgrounds/jacques-right.webp');
  background-position:left center;
}
.artist__media-main{
  width:604px;
  height:544px;
  object-fit:cover;
  border-radius:2px;
  background:#d4d4d4;
}
.artist__accent{
  position:absolute;
  top:377px;
  left:599px;
  width:167px;
  height:258px;
  background:var(--rose);
}
.artist__media-detail{
  position:absolute;
  top:397px;
  left:619px;
  width:647px;
  height:364px;
  object-fit:cover;
  border-radius:2px;
  box-shadow:0 25px 60px rgba(26,46,108,.25);
  background:#d4d4d4;
}
.artist__quote{
  position:absolute;
  top:70px;
  left:717px;
  width:595px;
  display:flex;
  flex-direction:column;
  gap:21px;
}
.artist__quote-text{
  font-family:var(--f-sans);
  font-style:italic;
  font-weight:300;
  font-size:20px;
  line-height:1.6;
  letter-spacing:-.2px;
  color:var(--navy);
}
.artist__attribution{
  position:absolute;
  top:620px;
  left:0;
  width:604px;
  text-align:center;
  display:flex;
  flex-direction:column;
  gap:9px;
  align-items:center;
}
.artist__name{
  font-family:var(--f-serif);
  font-weight:400;
  font-size:clamp(1.75rem, 1rem + 3vw, 2.625rem);
  color:var(--rose);
  line-height:1;
}
.artist__role{
  font-family:var(--f-serif);
  font-weight:400;
  font-size:18px;
  letter-spacing:3px;
  color:var(--navy);
  text-transform:uppercase;
}

/* ---------- SECTION: CUVÉES ---------- */
.cuvees{
  background:var(--white);
  padding:clamp(60px, 8vw + 20px, 150px) clamp(20px, 3vw + 8px, 50px);
  display:flex;
  flex-direction:column;
  gap:clamp(60px, 8vw + 20px, 150px);
  align-items:center;
}
.cuvees__inner{
  max-width:1312px;
  width:100%;
  display:flex;
  flex-direction:column;
  gap:120px;
  align-items:center;
}
.cuvees__head{
  display:flex;
  flex-direction:column;
  gap:30px;
  align-items:center;
  text-align:center;
}
.cuvees__title{
  font-family:var(--f-serif);
  font-weight:400;
  font-size:clamp(2.25rem, 1.5rem + 3.3vw, 5rem);
  line-height:.95;
  letter-spacing:-2.4px;
  color:var(--navy);
  max-width:650px;
}
.cuvees__title span,
.ambassadors__title span,
.form-card__title span{display:block;}
.cuvees__intro{
  font-family:var(--f-sans);
  font-weight:300;
  font-size:18px;
  line-height:1.6;
  color:var(--navy);
  max-width:560px;
}
.cuvees__intro p + p{margin-top:30px;font-weight:400;}

.bottles{
  position:relative;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:22px;
  width:100%;
  max-width:1310px;
}
.bottle{
  display:flex;
  flex-direction:column;
  align-items:center;
  padding:80px 40px;
  text-align:center;
}
.bottle--pinot{background:var(--ice);}
.bottle--cremant{background:var(--blush);}
.bottle__figure{
  position:relative;
  height:clamp(280px, 50vw, 500px);
  display:flex;
  align-items:flex-end;
  justify-content:center;
  width:100%;
}
.bottle__img{
  height:clamp(240px, 42vw, 426px);
  width:auto;
  max-width:100%;
  object-fit:contain;
  filter:drop-shadow(0 30px 30px rgba(26,46,108,.15));
  position:relative;
  z-index:2;
}
.bottle__figure::after{
  content:'';
  position:absolute;
  bottom:-8px;
  left:50%;
  transform:translateX(-50%);
  width:102px;
  height:16px;
  background:radial-gradient(ellipse, rgba(26,46,108,.35) 0%, rgba(26,46,108,0) 70%);
}
.bottle__name{
  font-family:var(--f-serif);
  font-weight:400;
  font-size:clamp(2.25rem, 1.8rem + 2vw, 4rem);
  line-height:1;
  letter-spacing:-1.28px;
  margin-top:clamp(24px, 5vw, 64px);
}
.bottle--pinot .bottle__name{color:var(--navy);}
.bottle--cremant .bottle__name{color:var(--rose-deep);}
.bottle__sub{
  font-family:var(--f-serif);
  font-weight:400;
  font-size:clamp(18px, 1.2rem + .5vw, 25px);
  margin-top:12px;
}
.bottle--pinot .bottle__sub{color:var(--navy);}
.bottle--cremant .bottle__sub{color:var(--rose-deep);}

.tags{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  justify-content:center;
  margin-top:32px;
  max-width:520px;
  list-style:none;
}
.tag{
  padding:6px 14px;
  border-radius:40px;
  font-family:var(--f-serif);
  font-weight:400;
  font-size:16px;
  letter-spacing:1.5px;
}
.bottle--pinot .tag{border:1px solid rgba(26,46,108,.3);color:var(--navy);}
.bottle--cremant .tag{border:1px solid var(--rose-deep);color:var(--rose-deep);background:rgba(255,255,255,.4);}

.bottle__desc{
  font-weight:300;
  font-size:16px;
  line-height:1.8;
  max-width:512px;
  margin-top:40px;
  font-family:var(--f-sans);
}
.bottle--pinot .bottle__desc{color:var(--navy);}
.bottle--cremant .bottle__desc{color:var(--rose-deep);}

.bottle__format{
  font-family:var(--f-serif);
  font-weight:400;
  font-size:18px;
  letter-spacing:3px;
  margin-top:40px;
  text-transform:uppercase;
}
.bottle--pinot .bottle__format{color:var(--navy);}
.bottle--cremant .bottle__format{color:var(--rose-deep);}

.bottle .btn{margin-top:32px;}
.hero__content .btn{padding:18px 34px;font-size:15px;letter-spacing:2.5px;align-self:flex-start;}

.bottles__seal{
  position:absolute;
  top:-65px;
  left:calc(50% - 90.5px);
  width:181px;
  height:181px;
  border-radius:50%;
  object-fit:cover;
  overflow:hidden;
  z-index:2;
  box-shadow:0 20px 40px rgba(26,46,108,.15);
}

/* ---------- BANNER: OFFRE ---------- */
.offer{
  position:relative;
  max-width:1312px;
  width:100%;
  background:var(--navy);
  display:grid;
  grid-template-columns:761px 1fr;
  overflow:hidden;
  color:var(--white);
  min-height:835px;
}
.offer__left{
  padding:50px;
  display:flex;
  flex-direction:column;
  gap:50px;
  justify-content:center;
  position:relative;
  z-index:1;
}
.offer__left::before{
  content:'';
  position:absolute;
  inset:0;
  background-image:
    linear-gradient(90deg, rgba(26,46,108,.85) 50%, rgba(26,46,108,.35) 100%),
    url('../images/backgrounds/offer.webp');
  background-size:cover;
  background-position:center;
  opacity:1;
  z-index:-1;
}
.offer__head{display:flex;flex-direction:column;gap:20px;position:relative;}
.offer__doodle{position:absolute;top:-8px;right:clamp(12px,4vw,60px);width:clamp(48px,5vw,72px);height:auto;transform:rotate(-6deg);pointer-events:none;}
.offer__title{
  font-family:var(--f-serif);
  font-weight:400;
  font-size:clamp(2.25rem, 1.5rem + 3vw, 4.5rem);
  line-height:1;
  letter-spacing:-2.1px;
  max-width:502px;
}
.offer__body{
  font-size:18px;
  line-height:1.8;
  font-weight:300;
  font-family:var(--f-sans);
}
.offer__body strong{font-weight:500;}
.offer__btn{align-self:flex-start;}
.offer__right{
  background-image:url('../images/backgrounds/offer-bottles.webp');
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
  background-color:var(--navy);
}

/* ---------- SECTION: CITATION MAÎTRE DE CHAI ---------- */
.maitre{
  position:relative;
  height:850px;
  background:var(--navy-deep);
  overflow:hidden;
  display:flex;
  align-items:flex-end;
  padding:100px;
  justify-content:center;
}
.maitre__bg{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  z-index:0;
}
.maitre__inner{
  position:relative;
  z-index:2;
  display:flex;
  flex-direction:column;
  gap:40px;
  max-width:1328px;
  width:100%;
  margin:0 auto;
}
.maitre__quote{
  max-width:1140px;
  font-family:var(--f-sans);
  font-style:italic;
  font-weight:300;
  font-size:clamp(1.375rem, 1rem + 1.5vw, 2.3rem);
  line-height:1.3;
  letter-spacing:-.37px;
  color:var(--white);
}
.maitre__attribution{
  font-family:var(--f-serif);
  font-weight:400;
  font-size:18px;
  letter-spacing:3px;
  color:var(--rose);
  text-transform:uppercase;
}

/* ---------- SECTION: VISION ---------- */
.vision{
  background:var(--cream);
  padding:clamp(60px, 8vw + 20px, 150px) clamp(24px, 4vw + 8px, 100px);
  position:relative;
  overflow:hidden;
  isolation:isolate;
}
.vision::before,
.vision::after{
  content:'';
  position:absolute;
  top:0;
  bottom:0;
  width:50vw;
  background-repeat:no-repeat;
  background-size:contain;
  pointer-events:none;
  z-index:-1;
}
.vision::before{
  left:0;
  background-image:url('../images/backgrounds/jacques-left.webp');
  background-position:left center;
}
.vision::after{
  right:0;
  background-image:url('../images/backgrounds/jacques-right.webp');
  background-position:right center;
}
.vision__inner{
  max-width:1328px;
  margin:0 auto;
  display:flex;
  flex-direction:column;
  gap:75px;
  align-items:center;
  position:relative;
}
.vision__head{
  display:flex;
  flex-direction:column;
  gap:20px;
  align-items:center;
  text-align:center;
}
.vision__title{
  font-family:var(--f-serif);
  font-weight:400;
  font-size:clamp(2.75rem, 1.8rem + 4vw, 6.25rem);
  line-height:.95;
  letter-spacing:-3px;
  color:var(--navy);
}
.vision__body{
  display:flex;
  gap:120px;
  align-items:center;
  width:100%;
  justify-content:center;
}
.vision__photo{
  width:529px;
  height:658px;
  object-fit:cover;
  border-radius:4px;
  flex-shrink:0;
  background:#d4d4d4;
}
.vision__right{
  display:flex;
  flex-direction:column;
  gap:75px;
  max-width:595px;
  flex-shrink:0;
}
.vision__quote-top{display:flex;flex-direction:column;gap:30px;}
.vision__quote-text{
  font-family:var(--f-sans);
  font-style:italic;
  font-weight:300;
  font-size:38px;
  line-height:1.25;
  letter-spacing:-.38px;
  color:var(--navy);
}
.vision__attr{display:flex;flex-direction:column;gap:9px;}
.vision__name{
  font-family:var(--f-serif);
  font-weight:400;
  font-size:clamp(1.75rem, 1rem + 3vw, 2.625rem);
  color:var(--rose);
  line-height:1;
}
.vision__role{
  font-family:var(--f-serif);
  font-weight:400;
  font-size:14px;
  letter-spacing:3px;
  color:var(--navy);
  text-transform:uppercase;
}

/* ---------- SECTION: AMBASSADEURS ---------- */
.ambassadors{
  background:var(--white);
  padding:clamp(60px, 8vw + 20px, 150px) clamp(24px, 4vw + 8px, 100px);
  display:flex;
  flex-direction:column;
  gap:60px;
  align-items:center;
}
.ambassadors__head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:60px;
  max-width:1312px;
  width:100%;
}
.ambassadors__title{
  font-family:var(--f-serif);
  font-weight:400;
  font-size:clamp(2.25rem, 1.5rem + 3.3vw, 5rem);
  line-height:1;
  letter-spacing:-2.4px;
  color:var(--navy);
  margin-top:20px;
}
.ambassadors__intro{
  max-width:581px;
  display:flex;
  flex-direction:column;
  gap:30px;
  font-weight:300;
  font-size:18px;
  line-height:1.8;
  color:var(--navy);
  font-family:var(--f-sans);
}
.ambassadors__intro .em{font-weight:500;}

.grid{
  display:grid;
  grid-template-columns:repeat(5, 1fr);
  gap:18px;
  max-width:1312px;
  width:100%;
}
.card{
  position:relative;
  background:var(--stone);
  height:350px;
  overflow:hidden;
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  padding:17px;
}
.card__img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
}
.card__scrim{
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  height:80px;
  background:linear-gradient(180deg, rgba(4,7,16,0) 0%, rgba(4,7,16,.85) 100%);
}
.card__name{
  position:relative;
  font-family:var(--f-serif);
  font-weight:400;
  font-size:16px;
  letter-spacing:1.7px;
  color:var(--linen);
  text-transform:uppercase;
  line-height:1.15;
}
.card__item{
  position:relative;
  font-family:var(--f-serif);
  font-weight:400;
  font-size:16px;
  letter-spacing:1.7px;
  color:var(--linen);
  text-transform:uppercase;
  line-height:1.15;
}

/* ---------- SECTION: COMMUNITY ---------- */
.community{
  background:var(--navy);
  padding:clamp(60px, 8vw + 20px, 150px) clamp(24px, 4vw + 8px, 100px);
  display:flex;
  justify-content:center;
  position:relative;
  overflow:hidden;
}
.community::before{
  content:'';
  position:absolute;
  inset:0;
  background-image:
    radial-gradient(ellipse 60% 60% at center, rgba(26,46,108,0) 20%, rgba(26,46,108,.7) 75%),
    url('../images/backgrounds/form.webp');
  background-size:cover;
  background-position:center;
  opacity:.85;
  pointer-events:none;
}
.form-card{
  position:relative;
  background:var(--cream);
  padding:clamp(40px, 6vw, 80px) clamp(24px, 4vw + 8px, 100px);
  display:flex;
  flex-direction:column;
  gap:35px;
  align-items:center;
  max-width:1068px;
  width:100%;
  overflow:hidden;
}
.form-card__watermark{
  position:absolute;
  top:20px;
  left:-80px;
  width:430px;
  height:auto;
  aspect-ratio:176/60;
  object-fit:contain;
  opacity:.35;
  transform:rotate(-15deg);
  pointer-events:none;
}
.form-card__head{display:flex;flex-direction:column;gap:20px;align-items:center;text-align:center;}
.form-card__title{
  font-family:var(--f-serif);
  font-weight:400;
  font-size:clamp(2.75rem, 1.8rem + 4vw, 6rem);
  line-height:1;
  color:var(--navy);
  text-align:center;
  letter-spacing:-2.4px;
}
.form-card__lead{
  font-family:var(--f-sans);
  font-weight:300;
  font-size:18px;
  line-height:1.8;
  text-align:center;
  color:var(--navy);
  max-width:568px;
}
.form-card__lead strong{font-weight:500;}

.form{
  width:100%;
  max-width:868px;
  display:flex;
  flex-direction:column;
  gap:28px;
}
.form__row{display:grid;grid-template-columns:1fr 1fr;gap:32px;}
.field{display:flex;flex-direction:column;gap:10px;}
.field__label{
  font-family:var(--f-serif);
  font-weight:400;
  font-size:14px;
  letter-spacing:3px;
  color:var(--rose);
  text-transform:uppercase;
}
.field input,.field select{
  border:none;
  border-bottom:1px solid rgba(33,52,112,.25);
  padding:14px 2px;
  background:transparent;
  font-family:var(--f-sans);
  font-weight:300;
  font-size:17px;
  color:var(--navy);
  outline:none;
  transition:border-color .2s;
  border-radius:0;
}
.field input::placeholder{color:rgba(33,52,112,.6);}
.field input:focus,.field select:focus{border-bottom-color:var(--navy);}
.field select{
  appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%23213470' stroke-width='1.2' fill='none'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right 12px center;
}
.check{display:flex;align-items:center;gap:14px;padding:8px 0;}
.check input{appearance:none;width:18px;height:18px;border:1px solid rgba(26,46,108,.5);background:transparent;cursor:pointer;flex-shrink:0;position:relative;}
.check input:checked{background:var(--navy);border-color:var(--navy);}
.check input:checked::after{content:'✓';position:absolute;inset:0;display:grid;place-items:center;color:var(--white);font-size:12px;}
.check label{font-weight:300;font-size:14px;color:var(--navy);opacity:.9;cursor:pointer;}
.form__submit{display:flex;justify-content:center;}
.merci__actions{display:flex;flex-wrap:wrap;justify-content:center;gap:16px;margin-top:8px;}
.merci__actions .btn{min-width:220px;}
@media (max-width:540px){
  .merci__actions{width:100%;flex-direction:column;}
  .merci__actions .btn{width:100%;min-width:0;}
}
.form__notice{
  font-weight:300;
  font-size:13px;
  line-height:1.8;
  text-align:center;
  color:var(--navy);
}
.form__status{
  font-size:14px;
  line-height:1.5;
  text-align:center;
  padding:14px 18px;
  border-radius:4px;
  font-weight:400;
  margin:0;
}
.form__status.is-loading{background:rgba(26,46,108,.08);color:var(--navy);}
.form__status.is-success{background:rgba(108,150,80,.12);color:#3c5e28;border:1px solid rgba(108,150,80,.3);}
.form__status.is-error{background:rgba(180,60,60,.1);color:#8a2a2a;border:1px solid rgba(180,60,60,.3);}

/* ---------- FOOTER ---------- */
.footer{
  background:var(--navy-deep);
  padding:60px 50px 30px;
  color:var(--linen);
}
.footer__inner{max-width:1412px;margin:0 auto;}
.footer__top{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(200px, 1fr));
  gap:clamp(32px, 4vw, 60px);
}
.footer__brand{display:flex;flex-direction:column;gap:24px;grid-column:span 2;min-width:240px;}
.footer__logo{
  width:190px;
  display:flex;
  align-items:center;
  justify-content:flex-start;
}
.footer__logo img{width:100%;height:auto;object-fit:contain;}
.footer__socials{display:flex;gap:16px;align-items:center;}
.footer__socials a{
  display:inline-flex;
  width:44px;
  height:44px;
  align-items:center;
  justify-content:center;
  color:var(--linen);
  transition:transform .2s, opacity .2s;
  opacity:.9;
}
@media (hover:hover) and (pointer:fine){
  .footer__socials a:hover{transform:translateY(-2px);opacity:1;}
}
.footer__socials img{width:100%;height:100%;object-fit:contain;}
.footer__col h4{
  font-family:var(--f-sans);
  font-weight:600;
  font-size:10px;
  letter-spacing:3px;
  color:var(--rose);
  text-transform:uppercase;
  margin-bottom:24px;
}
.footer__col ul{list-style:none;display:flex;flex-direction:column;gap:10px;}
.footer__col a{
  font-family:var(--f-sans);
  font-weight:400;
  font-size:14px;
  opacity:.8;
  transition:opacity .2s;
  display:inline-flex;
  align-items:center;
  min-height:32px;
  padding:4px 0;
}
@media (hover:hover) and (pointer:fine){
  .footer__col a:hover{opacity:1;}
}
.footer__logos{
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:60px 0;
  gap:clamp(24px, 4vw, 60px);
  opacity:.85;
  flex-wrap:wrap;
}
.footer__logos img{
  width:auto;
  max-width:100%;
  object-fit:contain;
  filter:brightness(0) invert(1);
  opacity:.9;
}
.footer__logos img:nth-child(1){height:clamp(52px, 5vw + 8px, 72px);}
.footer__logos img:nth-child(2){height:clamp(60px, 5.5vw + 12px, 84px);}
.footer__logos img:nth-child(3){height:clamp(52px, 5vw + 8px, 72px);}
.footer__logos img:nth-child(4){height:clamp(34px, 3vw + 8px, 50px);max-width:clamp(180px, 22vw, 240px);}
.footer__bottom{
  border-top:1px solid rgba(245,237,224,.08);
  padding-top:28px;
  padding-bottom:max(env(safe-area-inset-bottom), 0px);
  display:flex;
  justify-content:space-between;
  align-items:center;
  font-family:var(--f-sans);
  font-weight:500;
  font-size:11px;
  letter-spacing:1.5px;
  opacity:.6;
  text-transform:uppercase;
}
.footer__bottom a{transition:opacity .2s;}
@media (hover:hover) and (pointer:fine){
  .footer__bottom a:hover{opacity:.7;color:var(--rose);}
}

/* ---------- LOADER ---------- */
.loader{
  position:fixed;
  inset:0;
  z-index:9999;
  background:var(--navy-deep);
  display:grid;
  place-items:center;
  transition:transform 1s cubic-bezier(.7,0,.2,1), visibility 1s cubic-bezier(.7,0,.2,1);
  overflow:hidden;
  will-change:transform;
}
.loader::before{
  content:'';
  position:absolute;
  inset:0;
  background:
    radial-gradient(ellipse 80% 60% at 50% 45%, rgba(212,131,138,.18) 0%, transparent 60%),
    radial-gradient(ellipse 60% 80% at 80% 100%, rgba(217,177,90,.12) 0%, transparent 55%),
    linear-gradient(rgba(11,22,66,.78), rgba(11,22,66,.78)),
    url('../images/backgrounds/hero-map.webp') center/cover no-repeat;
  animation:loader-zoom 12s ease-in-out infinite alternate;
  transform-origin:center;
  pointer-events:none;
  z-index:0;
}
.loader.is-gone{visibility:hidden;pointer-events:none;transform:translateY(-100%);}
.loader__stage{
  position:relative;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:clamp(18px, 2.4vw, 28px);
  z-index:2;
}
.loader__halo{display:none;}
.loader__eyebrow{
  font-family:var(--f-serif);
  font-weight:400;
  font-size:12px;
  letter-spacing:6px;
  text-transform:uppercase;
  color:var(--rose);
  opacity:0;
  animation:loader-fade .7s ease .15s forwards;
}
.loader__year{
  font-family:var(--f-serif);
  font-weight:400;
  font-size:clamp(96px, 16vw, 200px);
  line-height:1;
  letter-spacing:2px;
  color:var(--white);
  font-variant-numeric:tabular-nums;
  font-feature-settings:'tnum' 1, 'lnum' 1;
  opacity:0;
  transform:translateY(18px);
  animation:loader-year-in 1s cubic-bezier(.2,.8,.2,1) .3s forwards;
  text-shadow:0 4px 40px rgba(11,22,66,.55);
  will-change:transform, text-shadow;
  display:inline-block;
}
.loader__year-inner{
  display:inline-block;
  transform-origin:center;
  will-change:transform, filter;
}
.loader__dust{
  position:absolute;
  inset:0;
  pointer-events:none;
  z-index:1;
}
.loader__dust span{
  position:absolute;
  width:4px;
  height:4px;
  border-radius:50%;
  background:rgba(253,251,241,.8);
  box-shadow:0 0 12px rgba(253,251,241,.6);
  opacity:0;
  animation:loader-dust 4s ease-in-out infinite;
}
.loader__dust span:nth-child(1){left:12%;top:68%;animation-delay:.2s;}
.loader__dust span:nth-child(2){left:22%;top:34%;animation-delay:1.1s;background:rgba(217,177,90,.9);box-shadow:0 0 14px rgba(217,177,90,.6);}
.loader__dust span:nth-child(3){left:84%;top:28%;animation-delay:.6s;}
.loader__dust span:nth-child(4){left:78%;top:72%;animation-delay:1.6s;background:rgba(212,131,138,.9);box-shadow:0 0 14px rgba(212,131,138,.6);}
.loader__dust span:nth-child(5){left:45%;top:18%;animation-delay:2.1s;}
.loader__dust span:nth-child(6){left:55%;top:82%;animation-delay:2.7s;background:rgba(217,177,90,.9);}
.loader__dust span:nth-child(7){left:8%;top:20%;animation-delay:3s;}
.loader__dust span:nth-child(8){left:92%;top:52%;animation-delay:.9s;}
@keyframes loader-pop{
  0%{opacity:0;transform:scale(.82) translateY(14px);}
  60%{opacity:1;transform:scale(1.03) translateY(-2px);}
  100%{opacity:1;transform:scale(1) translateY(0);}
}
@keyframes loader-halo{
  0%{opacity:0;transform:scale(.6);}
  60%{opacity:1;transform:scale(1.08);}
  100%{opacity:.85;transform:scale(1);}
}
@keyframes loader-fade{
  from{opacity:0;transform:translateY(6px);}
  to{opacity:1;transform:translateY(0);}
}
@keyframes loader-progress{
  from{width:0;}
  to{width:100%;}
}
@keyframes loader-marker-move{
  from{left:0;}
  to{left:100%;}
}
@keyframes loader-marker-in{
  from{opacity:0;transform:translate(-50%, -50%) scale(0);}
  to{opacity:1;transform:translate(-50%, -50%) scale(1);}
}
@keyframes loader-year-in{
  0%{opacity:0;transform:translateY(12px);}
  100%{opacity:1;transform:translateY(0);}
}
@keyframes loader-pulse{
  0%,100%{opacity:.9;transform:scale(1);}
  50%{opacity:.35;transform:scale(1.6);}
}
@keyframes loader-zoom{
  from{transform:scale(1);}
  to{transform:scale(1.08);}
}
@keyframes loader-dust{
  0%{opacity:0;transform:translateY(0) scale(.6);}
  25%{opacity:1;transform:translateY(-14px) scale(1);}
  75%{opacity:1;transform:translateY(-28px) scale(.9);}
  100%{opacity:0;transform:translateY(-40px) scale(.6);}
}
@media (prefers-reduced-motion: reduce){
  .loader::before,.loader::after,.loader__dust span,.loader__halo{animation:none;}
  .loader__bar::after{animation-duration:3s;}
}

/* ---------- REVEAL ON SCROLL ---------- */
[data-reveal]{
  opacity:0;
  transform:translateY(32px);
  transition:opacity .95s cubic-bezier(.2,.75,.25,1), transform .95s cubic-bezier(.2,.75,.25,1), filter .95s ease-out;
  will-change:opacity, transform;
}
[data-reveal="left"]{transform:translateX(-36px);}
[data-reveal="right"]{transform:translateX(36px);}
[data-reveal="fade"]{transform:none;}
[data-reveal="scale"]{transform:scale(.97) translateY(18px);transform-origin:center;}
[data-reveal="lift"]{transform:translateY(48px);}
[data-reveal].is-in{opacity:1;transform:translate(0,0) scale(1);filter:none;}
[data-reveal-delay="1"].is-in{transition-delay:.08s;}
[data-reveal-delay="2"].is-in{transition-delay:.16s;}
[data-reveal-delay="3"].is-in{transition-delay:.24s;}
[data-reveal-delay="4"].is-in{transition-delay:.32s;}
[data-reveal-delay="5"].is-in{transition-delay:.40s;}
[data-reveal-delay="6"].is-in{transition-delay:.48s;}
[data-reveal-delay="7"].is-in{transition-delay:.56s;}
[data-reveal-delay="8"].is-in{transition-delay:.64s;}
/* Letter-by-letter reveal */
[data-split] .word{display:inline-block;white-space:nowrap;}
[data-split] .char{
  display:inline-block;
  opacity:0;
  transform:translateY(.4em);
  transition:opacity .55s cubic-bezier(.2,.8,.2,1), transform .55s cubic-bezier(.2,.8,.2,1);
  transition-delay:calc(var(--i, 0) * .025s);
  will-change:opacity, transform;
}
[data-split].is-in .char{opacity:1;transform:translateY(0);}
/* Auto-stagger grid children */
.grid [data-reveal]:nth-child(1).is-in{transition-delay:.02s;}
.grid [data-reveal]:nth-child(2).is-in{transition-delay:.09s;}
.grid [data-reveal]:nth-child(3).is-in{transition-delay:.16s;}
.grid [data-reveal]:nth-child(4).is-in{transition-delay:.23s;}
.grid [data-reveal]:nth-child(5).is-in{transition-delay:.02s;}
.grid [data-reveal]:nth-child(6).is-in{transition-delay:.09s;}
.grid [data-reveal]:nth-child(7).is-in{transition-delay:.16s;}
.grid [data-reveal]:nth-child(8).is-in{transition-delay:.23s;}
.grid [data-reveal]:nth-child(9).is-in{transition-delay:.02s;}
.grid [data-reveal]:nth-child(10).is-in{transition-delay:.09s;}

/* ---------- FESTIVE ANIM ---------- */
@keyframes hero-bottle-in{
  0%{opacity:0;transform:translateX(40px) scale(.98);}
  100%{opacity:1;transform:translateX(0) scale(1);}
}
@keyframes seal-in{
  0%{opacity:0;transform:translateY(12px);}
  100%{opacity:1;transform:translateY(0);}
}
@keyframes seal-in-center{
  0%{opacity:0;transform:translateX(-50%) translateY(12px);}
  100%{opacity:1;transform:translateX(-50%) translateY(0);}
}
@keyframes hero-logo-in{
  0%{opacity:0;transform:translateY(20px);}
  100%{opacity:1;transform:translateY(0);}
}
@keyframes hero-texture-in{
  0%{opacity:0;transform:scale(1.18);filter:blur(12px) saturate(1.15);}
  100%{opacity:1;transform:scale(1);filter:blur(0) saturate(1);}
}
body.is-ready .hero__texture::before{animation:hero-texture-in 2.2s cubic-bezier(.2,.8,.2,1) both;}
body.is-ready .hero__seal{animation:seal-in 1s cubic-bezier(.2,.8,.2,1) .9s both;}
body.is-ready .hero__logo-main{animation:hero-logo-in 1.1s cubic-bezier(.2,.8,.2,1) .5s both;}
body.is-ready .hero__subtitle{animation:hero-logo-in 1s cubic-bezier(.2,.8,.2,1) .9s both;}
body.is-ready .hero__content .btn{animation:hero-logo-in 1s cubic-bezier(.2,.8,.2,1) 1.1s both;}

/* Bottle gentle float on hover group */
.bottle__img{transition:transform .8s cubic-bezier(.2,.8,.2,1), filter .4s ease;}

@media (hover:hover) and (pointer:fine){
  .bottle:hover .bottle__img{transform:translateY(-10px) rotate(-1deg);filter:drop-shadow(0 40px 30px rgba(26,46,108,.25));}
}

/* Shimmer on buttons */
.btn{position:relative;overflow:hidden;}
.btn::before{
  content:'';
  position:absolute;
  top:0;left:-120%;width:60%;height:100%;
  background:linear-gradient(100deg, transparent, rgba(255,255,255,.35) 40%, rgba(255,255,255,.55) 50%, rgba(255,255,255,.35) 60%, transparent);
  transform:skewX(-18deg);
  transition:left .8s ease;
  pointer-events:none;
}
@media (hover:hover) and (pointer:fine){
  .btn:hover::before{left:160%;}
}
.btn--navy::before,.btn--rose::before{background:linear-gradient(100deg, transparent, rgba(255,255,255,.2) 40%, rgba(255,255,255,.35) 50%, rgba(255,255,255,.2) 60%, transparent);}

@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *,*::before,*::after{
    animation-duration:.01ms!important;
    animation-iteration-count:1!important;
    transition-duration:.01ms!important;
    scroll-behavior:auto!important;
  }
  [data-reveal]{opacity:1!important;transform:none!important;}
  [data-split] .char{opacity:1!important;transform:none!important;transition:none!important;}
}

/* ---------- WARNING ---------- */
.warning{
  background:var(--navy-darker);
  padding:18px clamp(20px, 5vw, 50px);
  padding-bottom:max(env(safe-area-inset-bottom), 18px);
  text-align:center;
  font-family:var(--f-sans);
  font-weight:500;
  font-size:10px;
  letter-spacing:2px;
  color:var(--linen);
  opacity:.55;
  text-transform:uppercase;
}

/* ---------- RESPONSIVE ---------- */
@media (max-width:1280px){
  .hero{padding:max(env(safe-area-inset-top), 0px) clamp(40px, 5vw, 64px) 0;}
  .hero__content{gap:clamp(28px, 3vw, 48px);max-width:min(560px, 55%);}
  .hero__logo-main{width:100%;max-width:clamp(320px, 36vw, 480px);}
  .hero__seal{width:clamp(180px, 20vw, 280px);right:clamp(40px, 7vw, 120px);bottom:clamp(60px, 10vh, 140px);}
  .story__row{flex-direction:column;margin-bottom:80px;gap:clamp(24px, 5vw, 80px);}
  .story__right{padding-top:0;gap:clamp(24px, 5vw, 60px);}
  .artist{min-height:auto;display:grid;grid-template-columns:1fr 1fr;gap:40px;isolation:isolate;}
  .artist__media-main,.artist__media-detail,.artist__quote,.artist__attribution{position:static;width:100%;}
  .artist__media-main,.artist__media-detail{height:auto;aspect-ratio:604/543;}
  .artist__accent{display:none;}
  .cuvees__inner{gap:80px;}
  .offer{grid-template-columns:1fr;min-height:auto;}
  .offer__right{height:clamp(240px, 55vw, 400px);}
  .offer__left{padding:clamp(40px, 6vw, 60px) clamp(28px, 5vw, 60px);}
  .maitre{padding:clamp(40px, 6vw, 60px);height:auto;min-height:clamp(420px, 72vh, 620px);}
  .vision__body{flex-direction:column;gap:60px;}
  .vision__photo{width:100%;max-width:529px;height:auto;aspect-ratio:529/658;}
  .vision__quote-text{font-size:clamp(22px, 2.4vw, 30px);}
  .ambassadors__head{flex-direction:column;align-items:flex-start;gap:clamp(20px, 4vw, 60px);}
  .grid{grid-template-columns:repeat(4, 1fr);}
  .footer__logos{flex-wrap:wrap;justify-content:center;gap:32px;padding:40px 0;}
  .footer{padding:60px clamp(28px, 4vw, 50px) 30px;}
}
@media (max-width:1024px){
  .hero{height:auto;min-height:100svh;min-height:100dvh;padding:clamp(80px, 12vw, 120px) clamp(32px, 5vw, 60px) clamp(200px, 34vw, 300px);}
  .hero__inner{align-items:flex-start;}
  .hero__content{gap:40px;max-width:100%;align-items:flex-start;}
  .hero__logo-main{width:100%;max-width:460px;height:auto;}
  .hero__seal{
    width:clamp(180px, 36vw, 240px);
    left:50%;
    right:auto;
    bottom:clamp(60px, 10vw, 100px);
    transform:translateX(-50%);
    animation:seal-in-center 1s cubic-bezier(.2,.8,.2,1) .9s both !important;
  }
  .hero__content .btn{align-self:flex-start;padding:16px 28px;font-size:14px;letter-spacing:2px;white-space:nowrap;}
  .artist{display:flex;flex-direction:column;gap:32px;}
  .artist__quote{order:3;}
  .artist__attribution{order:4;text-align:center;}
  .bottles{grid-template-columns:1fr;gap:16px;display:flex;flex-direction:column;align-items:center;padding-top:20px;}
  .bottles__seal{position:static;transform:none;width:140px;height:140px;margin-bottom:8px;}
  .bottle{padding:60px clamp(24px, 4vw, 48px);}
  .grid{grid-template-columns:repeat(3, 1fr);}
  .footer__top{grid-template-columns:repeat(auto-fit, minmax(180px, 1fr));}
}
@media (max-width:900px){
  .form-card__watermark{position:static;width:min(60%, 240px);height:auto;margin:0 auto 8px;transform:none;opacity:.5;display:block;}
  .grid{grid-template-columns:repeat(2, 1fr);}
  .card{height:220px;}
  .form__row{grid-template-columns:1fr;}
  .footer__bottom{flex-direction:column;gap:12px;text-align:center;}
  .footer__brand{grid-column:auto;}
}
@media (max-width:540px){
  .story__title,.vision__title{letter-spacing:-1.5px;}
  .form-card__title,.offer__title{letter-spacing:-1.2px;}
  .btn{padding:16px 26px;font-size:13px;letter-spacing:1.6px;white-space:nowrap;}
}
@media (max-width:380px){
  .story__title,.vision__title{letter-spacing:-1.2px;}
  .cuvees__title,.ambassadors__title,.form-card__title,.offer__title{letter-spacing:-1px;}
  .btn{padding:16px 20px;font-size:12px;letter-spacing:1.4px;width:100%;text-align:center;white-space:normal;}
  .hero{padding:100px 24px 60px;}
  .grid{grid-template-columns:1fr;}
  .footer__inner{padding:60px 24px;}
  .footer__bottom{font-size:12px;}
}
@media (max-height:500px) and (orientation:landscape){
  .hero{height:auto;min-height:auto;padding:80px 40px;}
  .maitre{min-height:auto;height:auto;padding:60px 40px;}
}

/* ============================================================
   GRAVITY FORMS — Styles pour la section Community (form ID 5)
   Fait correspondre les classes GF au design de la landing page
   ============================================================ */

/* Wrapper GF — même largeur que .form */
.form-card .gform_wrapper,
.form-card .gravity-theme {
  width: 100%;
  max-width: 868px;
}

/* Titre et légende requis — masqués */
.form-card .gform_title,
.form-card .gform_required_legend { display: none; }

/* Reset liste des champs */
.form-card .gform_fields {
  display: flex;
  flex-direction: column;
  gap: 28px;
  list-style: none;
  padding: 0;
  margin: 0;
}

/* Grille 2 colonnes — champs demi-largeur GF2 */
.form-card .gform_fields {
  display: grid;
  grid-template-columns: 1fr;
  gap: 28px;
}

/* Champs pleine largeur et demi-largeur */
.form-card .gfield {
  margin: 0;
}

.form-card .gfield--width-half {
  grid-column: span 1;
}

/* Rangées de 2 — on force la grille 2 colonnes en desktop */
@media (min-width: 541px) {
  .form-card .gform_fields {
    grid-template-columns: 1fr 1fr;
  }
  /* Champs pleine largeur */
  .form-card .gfield--width-full,
  .form-card .gfield--type-checkbox,
  .form-card .gfield--type-consent,
  .form-card .gfield--type-html {
    grid-column: 1 / -1;
  }
}

/* Label → .field__label */
.form-card .gfield_label {
  display: block;
  font-family: var(--f-serif);
  font-weight: 400;
  font-size: 14px;
  letter-spacing: 3px;
  color: var(--rose);
  text-transform: uppercase;
  margin-bottom: 10px;
}

/* Indicateur requis — discret */
.form-card .gfield_required {
  color: var(--rose);
  margin-left: 2px;
}

/* Inputs et selects → .field input / .field select */
.form-card .ginput_container input[type="text"],
.form-card .ginput_container input[type="email"],
.form-card .ginput_container input[type="tel"],
.form-card .ginput_container input[type="date"],
.form-card .ginput_container input[type="number"],
.form-card .ginput_container select {
  width: 100%;
  border: none;
  border-bottom: 1px solid rgba(33, 52, 112, .25);
  padding: 14px 2px;
  background: transparent;
  font-family: var(--f-sans);
  font-weight: 300;
  font-size: 17px;
  color: var(--navy);
  outline: none;
  transition: border-color .2s;
  border-radius: 0;
  box-shadow: none;
}

html .gform_wrapper.gravity-theme .ginput_container_date input { width: 100% !important; }

.form-card .ginput_container input::placeholder {
  color: rgba(33, 52, 112, .6);
}

.form-card .ginput_container input:focus,
.form-card .ginput_container select:focus {
  border-bottom-color: var(--navy);
}

.form-card .ginput_container select {
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%23213470' stroke-width='1.2' fill='none'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 12px center;
  background-color: transparent;
  cursor: pointer;
}

/* Checkbox → .check */
.form-card .gfield--type-checkbox .gfield_checkbox,
.form-card .gfield--type-consent .ginput_container_consent {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.form-card .gchoice,
.form-card .ginput_container_consent {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 8px 0;
}

.form-card .gchoice input[type="checkbox"],
.form-card .ginput_container_consent input[type="checkbox"] {
  appearance: none;
  -webkit-appearance: none;
  width: 18px;
  height: 18px;
  min-width: 18px;
  border: 1px solid rgba(26, 46, 108, .5);
  background: transparent;
  cursor: pointer;
  flex-shrink: 0;
  position: relative;
  border-radius: 0;
  padding: 0;
}

.form-card .gchoice input[type="checkbox"]:checked,
.form-card .ginput_container_consent input[type="checkbox"]:checked {
  background: var(--navy);
  border-color: var(--navy);
}

.form-card .gchoice input[type="checkbox"]:checked::after,
.form-card .ginput_container_consent input[type="checkbox"]:checked::after {
  content: '✓';
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  color: var(--white);
  font-size: 12px;
}

.form-card .gchoice label,
.form-card .ginput_container_consent label {
  font-weight: 300;
  font-size: 14px;
  color: var(--navy);
  opacity: .9;
  cursor: pointer;
}

/* Submit → .btn btn--rose */
.form-card .gform_footer,
.form-card .gform_page_footer {
  display: flex;
  justify-content: center;
  margin-top: 0;
  padding: 0;
  border: none;
}

.form-card .gform_button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 18px 38px;
  font-family: var(--f-sans);
  font-size: 13px;
  font-weight: 400;
  letter-spacing: 2px;
  text-transform: uppercase;
  border-radius: 2px;
  background: var(--rose-deep);
  color: var(--white);
  border: none;
  cursor: pointer;
  transition: background .2s, box-shadow .2s, transform .2s;
  position: relative;
  overflow: hidden;
}

.form-card .gform_button:hover {
  background: var(--rose-deep);
  color: var(--white);
  transform: translateY(-3px);
  box-shadow: 0 12px 28px rgba(0, 0, 0, .12);
}

/* ── Erreurs champ ───────────────────────────────── */
html body .gform_wrapper.gravity-theme .gfield_validation_message,
html body .gform_wrapper.gravity-theme .validation_message {
  border: none !important;
  padding: 0 !important;
  background: transparent !important;
  font-size: 11px !important;
}

.form-card .gfield_validation_message,
.form-card .validation_message {
  background: transparent;
  border: none;
  padding: 0;
  margin: 6px 0 0;
  font-family: var(--f-sans);
  font-weight: 300;
  font-size: 12px;
  color: var(--rose-deep);
}

.form-card .gfield--error .ginput_container input,
.form-card .gfield--error .ginput_container select,
.form-card .gfield--error .ginput_container textarea {
  border-bottom-color: var(--rose-deep);
}

/* ── Bannière d'erreur globale ────────────────────── */
.form-card .gform_validation_errors {
  display: none;
}

.form-card .gform_validation_errors > h2,
.form-card .gform_validation_errors .gform_submission_error {
  font-family: var(--f-sans);
  font-weight: 300;
  font-size: 13px;
  color: var(--rose-deep);
  margin: 0;
}

.form-card .gform_validation_errors .gform_validation_errors__count {
  display: none;
}

/* ── Spinner AJAX ────────────────────────────────── */
.form-card .gform_ajax_spinner {
  display: none !important;
}

/* Spinner CSS sur le bouton pendant l'envoi */
@keyframes lp-spin {
  to { transform: rotate(360deg); }
}

.form-card .gform_footer .gform_button[disabled],
.form-card .gform_footer .gform_button:disabled {
  opacity: .7;
  cursor: not-allowed;
  pointer-events: none;
  position: relative;
  padding-right: 52px;
}

.form-card .gform_footer .gform_button[disabled]::after,
.form-card .gform_footer .gform_button:disabled::after {
  content: '';
  position: absolute;
  right: 18px;
  top: 50%;
  transform: translateY(-50%);
  width: 16px;
  height: 16px;
  border: 1.5px solid rgba(255, 255, 255, .35);
  border-top-color: #fff;
  border-radius: 50%;
  animation: lp-spin .7s linear infinite;
}

/* ── Confirmation ────────────────────────────────── */
.form-card .gform_confirmation_message {
  font-family: var(--f-serif);
  font-weight: 400;
  font-size: clamp(1.6rem, 1rem + 2vw, 2.4rem);
  line-height: 1.5;
  text-align: center;
  color: var(--navy);
  padding: 32px 0;
  letter-spacing: .2px;
}

/* Mobile — 1 colonne */
@media (max-width: 540px) {
  .form-card .gform_fields {
    grid-template-columns: 1fr;
  }
  .form-card .gfield--width-half {
    grid-column: 1 / -1;
  }
  .form-card .gform_button {
    width: 100%;
    text-align: center;
  }
}
