/* ============ FOND & TYPO ============ */
body {
    min-height: 100vh;
    background: linear-gradient(120deg, #4f51e6 0%, #17c6c6 55%, #ffe680 100%);
    color: #19213b;
    font-family: 'Segoe UI', 'Roboto', Arial, sans-serif;
}

/* ============ NAVBAR & HEADER ============ */
.bg-gradient-custom, .sticky-top {
    background: linear-gradient(90deg, #3b169c 65%, #41c7ef 100%) !important;
    color: #fff !important;
}
.navbar {
    box-shadow: 0 6px 40px #3b169c30;
    transition: all 0.22s;
    font-size: 1.09em;
}
.navbar-brand span, .navbar-nav .nav-link {
    color: #fff !important;
    font-weight: 800;
    letter-spacing: 1.3px;
    text-shadow: 0 1px 13px #35196a34;
}
.navbar-brand img {
    transition: width 0.18s, height 0.18s;
    background: #fff;
    border-radius: 18px;
    padding: 2px;
    box-shadow: 0 3px 20px #eee;
}
.navbar.shrink {
    padding-top: 2px !important;
    padding-bottom: 2px !important;
    box-shadow: 0 7px 30px #41c7ef44;
}
.navbar-brand img.logo-shrink {
    width: 30px !important;
    height: 30px !important;
}

/* ============ BANNIÈRE ACCUEIL ============ */
.banner-bognon {
    background: linear-gradient(110deg, #4832b2 70%, #00d1c1 100%);
    color: #fff;
    box-shadow: 0 10px 60px #1b036055;
    border-radius: 30px;
    margin-bottom: 38px;
    animation: fade-in-up 1.2s cubic-bezier(.28,.84,.42,1) both;
}
section, .container-section {
    background: rgba(255,255,255,0.95);
    border-radius: 22px;
    box-shadow: 0 2px 16px #41c7ef22;
    margin-bottom: 2.3rem;
    padding: 1.8rem 1.1rem;
}
.text-gradient-bognon {
    background: linear-gradient(90deg,#5642f7,#3ee5e5 70%, #ffe57c 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    font-weight: 900;
    letter-spacing: 1.2px;
}

/* ============ BOUTONS & BADGES ============ */
.btn-gradient-bognon, .bg-gradient-bognon, .badge.bg-gradient-bognon {
    background: linear-gradient(93deg, #6740f3 60%, #13d1c5 100%);
    color: #fff !important;
    border: none;
    font-weight: 700;
    border-radius: 15px;
    transition: background 0.13s, transform 0.13s, filter 0.13s;
    box-shadow: 0 2px 14px #6840f326;
    padding: 0.54em 1.3em;
    font-size: 1.07em;
}
.btn-gradient-bognon:hover, .badge.bg-gradient-bognon:hover {
    background: linear-gradient(90deg, #ffe256 70%, #6c46f7 100%);
    filter: brightness(1.11);
    transform: scale(1.09);
    animation: pulse-btn 1.4s infinite;
}
.btn-outline-bognon {
    border: 2px solid #13d1c5;
    color: #432fc4;
    background: #f5fdff99;
    border-radius: 15px;
    font-weight: 600;
    transition: background 0.12s, color 0.12s;
}
.btn-outline-bognon:hover {
    background: #13d1c5;
    color: #fff;
}
.badge-promo {
    background: linear-gradient(90deg,#ffb947,#ffe680 90%);
    color: #b67d00;
    font-weight: bold;
    border-radius: 14px;
    box-shadow: 0 3px 18px #ffe68080;
    animation: pulse-btn 1.5s infinite;
    padding: 0.4em 1em;
    font-size: 1em;
}
.alert {
    border-radius: 18px;
    box-shadow: 0 2px 14px #5642f744;
    font-weight: 500;
    font-size: 1.13em;
}

/* ============ ANIMATIONS ============ */
@keyframes pulse-btn {
  0% { box-shadow: 0 0 0 0 #ffe68077;}
  70% { box-shadow: 0 0 0 20px rgba(255,230,128,0);}
  100% { box-shadow: 0 0 0 0 rgba(255,230,128,0);}
}
@keyframes fade-in-up {
  from { opacity: 0; transform: translateY(32px);}
  to { opacity: 1; transform: none;}
}
.animated { opacity:0; }
.animated.visible { opacity:1; animation: fade-in-up 1s cubic-bezier(.28,.84,.42,1) both;}
.animated-delay-1 { animation-delay: 0.24s;}
.animated-delay-2 { animation-delay: 0.47s;}
.animated-delay-3 { animation-delay: 0.7s;}
.animated-delay-4 { animation-delay: 0.93s; }
.wave {
    display: inline-block;
    animation: wave 1.5s ease-in-out;
}
@keyframes wave {
  0% { transform: rotate(0deg);}
  15% { transform: rotate(6deg);}
  30% { transform: rotate(-7deg);}
  45% { transform: rotate(4deg);}
  60% { transform: rotate(-2deg);}
  75% { transform: rotate(1deg);}
  100% { transform: rotate(0deg);}
}

/* ============ CARTES PRODUITS ============ */
.card-bognon {
    background: rgba(255,255,255,0.98);
    border-radius: 26px;
    box-shadow: 0 9px 34px #17c6c622;
    border: none;
    transition: transform 0.18s, box-shadow 0.19s, background 0.18s;
}
.card-bognon:hover {
    background: #f7f5ff;
    box-shadow: 0 23px 80px #6740f326;
    transform: scale(1.025) translateY(-10px);
}
.card-img-top {
    border-radius: 20px 20px 0 0;
    background: #e7f6ff;
    padding: 20px;
    object-fit: contain;
    height: 210px;
    width: 100%;
    transition: filter 0.20s;
}
.card-bognon:hover .card-img-top {
    filter: brightness(1.10) drop-shadow(0 9px 30px #13d1c532);
}
.card-title a {
    text-decoration: none;
    font-weight: 700;
    font-size: 1.13em;
    letter-spacing: 0.8px;
}
.card-title a:hover {
    text-decoration: underline;
    color: #3b169c;
}

/* ============ EFFETS PRIX & DETAILS ============ */
.fs-4.text-success.fw-bold, .card-text.text-success.fw-bold.fs-5 {
    text-shadow: 0 2px 13px #e7ffe666, 0 1px 8px #ffe68066;
    color: #432fc4 !important;
}
.fiche-produit-bognon h2, .fiche-produit-bognon .fs-4 {
    font-weight: 800;
    letter-spacing: 1.1px;
}
.fiche-produit-bognon .btn {
    font-size: 1.11em;
}

/* ============ TABLES, FORMULAIRES, LOGIN ============ */
.table th, .table td {
    vertical-align: middle !important;
    background: #f7faff;
}
input.form-control, textarea.form-control {
    border-radius: 12px;
    border: 1.5px solid #c7cafd;
    box-shadow: 0 2px 9px #13d1c525;
}
input.form-control:focus, textarea.form-control:focus {
    border-color: #41c7ef;
    box-shadow: 0 0 0 2.1px #41c7ef44;
}
.login-box-bognon {
    border-radius: 24px;
    box-shadow: 0 9px 28px #c2e9fa66, 0 2px 12px #6740f366;
    background: #fff;
    padding: 2.1rem;
}

/* ============ FOOTER ============ */
footer {
    border-radius: 20px 20px 0 0;
    background: linear-gradient(90deg,#3b169c 70%, #41c7ef 100%);
    color: #fff;
    box-shadow: 0 -2px 22px #a3d1f522;
    font-size: 1.08em;
    font-weight: 800;
    letter-spacing: 1.1px;
    padding: 25px 0 10px 0;
}

/* ============ RESPONSIVE MOBILE ============ */
@media (max-width: 900px) {
    .banner-bognon, section, .container-section { padding: 1.08rem 0.3rem; }
    .navbar-brand span { font-size: 1rem; }
}
@media (max-width: 700px) {
    .col-md-4 { flex: 0 0 100%; max-width: 100%; }
    .card-img-top { height: 120px; padding: 9px; }
    .navbar-brand span { font-size: 1rem; }
    .banner-bognon { text-align: center; padding: 14px 7px; }
}

/* ============ 3D & JAUNE CAFE SPAN ============ */
.bognon-3d {
    display: inline-block;
    font-weight: 900;
    font-size: 1.14em;
    letter-spacing: 2.4px;
    background: linear-gradient(97deg, #ffe256 5%, #6c46f7 55%, #2dfde9 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    text-shadow:
      2px 4px 0 #3b169c,
      2px 4px 18px #fff6,
      0 0 2px #fff;
    filter: drop-shadow(0 8px 17px #13d1c580);
    transition: filter 0.19s, text-shadow 0.19s;
    animation: light-move 2.5s infinite alternate;
}
@keyframes light-move {
  0%,100% { filter: brightness(1.11);}
  50% { filter: brightness(1.17) drop-shadow(0 17px 32px #ffe68088);}
}
.bognon-3d:hover {
    filter: brightness(1.15) drop-shadow(0 15px 32px #ffe680a2);
    text-shadow:
      2px 4px 0 #2a22a9,
      2px 4px 24px #ffefb1aa,
      0 0 2px #fff;
}
.jaune-cafe {
    color: #FFD600 !important;
    font-weight: 900;
    text-shadow: 1px 1px 6px #ffb70090, 0 1px 0 #fff;
    filter: drop-shadow(0 0 12px #ffefb077);
    letter-spacing: 1.2px;
}

/* ============ WHATSAPP FLOATING BUTTON ============ */
.whatsapp-float {
  position: fixed;
  right: 25px;
  bottom: 25px;
  z-index: 9999;
  background: linear-gradient(135deg, #25d366, #128c7e 85%);
  border-radius: 50%;
  box-shadow: 0 9px 36px #25d36644;
  width: 62px;
  height: 62px;
  display: flex;
  align-items: center;
  justify-content: center;
  animation: pulse-ws 1.5s infinite alternate;
  border: 3px solid #fff;
  transition: filter 0.17s;
}
.whatsapp-float img {
  width: 36px;
  height: 36px;
  filter: drop-shadow(0 2px 7px #fff8);
}
.whatsapp-float:hover {
  filter: brightness(1.18) drop-shadow(0 13px 42px #25d36699);
  animation: none;
}
@keyframes pulse-ws {
  0% { box-shadow: 0 0 0 0 #25d36677;}
  60% { box-shadow: 0 0 0 22px #25d36633;}
  100% { box-shadow: 0 0 0 0 #25d36611;}
}

/* ============ WHATSAPP FLOATING BUTTON ============ */
.whatsapp-float {
  position: fixed;
  right: 25px;
  bottom: 25px;
  z-index: 9999;
  background: linear-gradient(135deg, #25d366, #128c7e 85%);
  border-radius: 50%;
  box-shadow: 0 9px 36px #25d36644;
  width: 62px;
  height: 62px;
  display: flex;
  align-items: center;
  justify-content: center;
  animation: pulse-ws 1.5s infinite alternate;
  border: 3px solid #fff;
  transition: filter 0.17s;
}
.whatsapp-float img {
  width: 36px;
  height: 36px;
  filter: drop-shadow(0 2px 7px #fff8);
}
.whatsapp-float:hover {
  filter: brightness(1.18) drop-shadow(0 13px 42px #25d36699);
  animation: none;
}
@keyframes pulse-ws {
  0% { box-shadow: 0 0 0 0 #25d36677;}
  60% { box-shadow: 0 0 0 22px #25d36633;}
  100% { box-shadow: 0 0 0 0 #25d36611;}
}

