/* Rose du Sahara — shell overrides
   Goal: prevent page-specific CSS (e.g. bouquet-composer / mon-compte) from breaking header/footer.
*/

/* Header buttons */
.rds-topbar .btn{
  display:inline-flex;align-items:center;justify-content:center;
  padding:14px 22px;border-radius:999px;
  border:2px solid rgba(255,230,181,.75);
  background:transparent;color:#fff;
  font-weight:600;
}
.rds-topbar .btn.primary{background:#000;color:#fff;border-color:rgba(255,230,181,.85)}
.rds-topbar .btn.small{padding:10px 16px;font-size:.95rem}
.rds-topbar .btn:hover{transform:translateY(-1px)}

/* Footer form controls */
.footer .input{
  width:100%;
  padding:14px 14px;
  border-radius: 12px;
  border:1px solid rgba(0,0,0,.15);
  outline:none;
  font-size:1rem;
  background:#fff;
  color:#000;
}
.footer .btn{
  display:inline-flex;align-items:center;justify-content:center;
  padding:14px 22px;border-radius:999px;
  border:2px solid rgba(255,230,181,.75);
  background:transparent;color:#fff;
  font-weight:600;
}
.footer .btn.primary{background:#000;color:#fff;border-color:rgba(255,230,181,.85)}
.footer .btn:hover{transform:translateY(-1px)}

/* ------------------------------------------------------------
   RDS Shop (panier / commande) — FIX LISIBILITÉ
   Problème observé: texte (inputs/select) hérite du blanc global sur fonds clairs.
   On force une couleur sombre uniquement dans les blocs à fond clair du shop.
------------------------------------------------------------- */

#rds-shop-root .bg-white,
#rds-shop-root .bg-white\/90,
#rds-shop-root .bg-white\/80,
#rds-shop-root .bg-blue-50,
#rds-shop-root .bg-amber-50,
#rds-shop-root .bg-orange-50{
  color:#111 !important;
}

#rds-shop-root .bg-white input,
#rds-shop-root .bg-white select,
#rds-shop-root .bg-white textarea,
#rds-shop-root .bg-blue-50 input,
#rds-shop-root .bg-blue-50 select,
#rds-shop-root .bg-blue-50 textarea,
#rds-shop-root .bg-amber-50 input,
#rds-shop-root .bg-amber-50 select,
#rds-shop-root .bg-amber-50 textarea,
#rds-shop-root .bg-orange-50 input,
#rds-shop-root .bg-orange-50 select,
#rds-shop-root .bg-orange-50 textarea{
  color:#111 !important;
}

#rds-shop-root .bg-white input::placeholder,
#rds-shop-root .bg-white textarea::placeholder,
#rds-shop-root .bg-blue-50 input::placeholder,
#rds-shop-root .bg-blue-50 textarea::placeholder,
#rds-shop-root .bg-amber-50 input::placeholder,
#rds-shop-root .bg-amber-50 textarea::placeholder,
#rds-shop-root .bg-orange-50 input::placeholder,
#rds-shop-root .bg-orange-50 textarea::placeholder{
  color: rgba(0,0,0,.45) !important;
}

/* Options dans les <select> */
#rds-shop-root select option{
  color:#111 !important;
  background:#fff;
}

/* ------------------------------------------------------------
   RDS Global button zoom
   Applique un effet de zoom à absolument tous les boutons du site
------------------------------------------------------------- */
:root{
  --rds-btn-zoom-scale: 1.026;
  --rds-btn-zoom-active: 0.995;
  --rds-btn-zoom-transition: .46s ease-in-out;
  --rds-btn-shadow-transition: .46s ease-in-out;
}

:is(
  button,
  input[type="button"],
  input[type="submit"],
  input[type="reset"],
  .btn,
  a.btn,
  a[class*="btn"],
  [role="button"],
  .tab,
  .acc-tab,
  .acc-btn,
  .acc-btn-sm,
  .rds-currency-select,
  .rdsna-more-btn,
  .rds-gcart-btn,
  .rds-gcart-qtybtn,
  #rds-gcart-close,
  #rds-stripe-close
){
  transition: transform var(--rds-btn-zoom-transition), box-shadow var(--rds-btn-shadow-transition) !important;
  transform: translateZ(0) scale(1);
  transform-origin: center center !important;
  will-change: transform;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
}

:is(
  button,
  input[type="button"],
  input[type="submit"],
  input[type="reset"],
  .btn,
  a.btn,
  a[class*="btn"],
  [role="button"],
  .tab,
  .acc-tab,
  .acc-btn,
  .acc-btn-sm,
  .rds-currency-select,
  .rdsna-more-btn,
  .rds-gcart-btn,
  .rds-gcart-qtybtn,
  #rds-gcart-close,
  #rds-stripe-close
):not(:disabled):not([aria-disabled="true"]):hover,
:is(
  button,
  input[type="button"],
  input[type="submit"],
  input[type="reset"],
  .btn,
  a.btn,
  a[class*="btn"],
  [role="button"],
  .tab,
  .acc-tab,
  .acc-btn,
  .acc-btn-sm,
  .rds-currency-select,
  .rdsna-more-btn,
  .rds-gcart-btn,
  .rds-gcart-qtybtn,
  #rds-gcart-close,
  #rds-stripe-close
):not(:disabled):not([aria-disabled="true"]):focus-visible{
  transform: translateZ(0) scale(var(--rds-btn-zoom-scale)) !important;
}

:is(
  button,
  input[type="button"],
  input[type="submit"],
  input[type="reset"],
  .btn,
  a.btn,
  a[class*="btn"],
  [role="button"],
  .tab,
  .acc-tab,
  .acc-btn,
  .acc-btn-sm,
  .rds-currency-select,
  .rdsna-more-btn,
  .rds-gcart-btn,
  .rds-gcart-qtybtn,
  #rds-gcart-close,
  #rds-stripe-close
):not(:disabled):not([aria-disabled="true"]):active{
  transform: translateZ(0) scale(var(--rds-btn-zoom-active)) !important;
}

@media (prefers-reduced-motion: reduce){
  :is(
    button,
    input[type="button"],
    input[type="submit"],
    input[type="reset"],
    .btn,
    a.btn,
    a[class*="btn"],
    [role="button"],
    .tab,
    .acc-tab,
    .acc-btn,
    .acc-btn-sm,
    .rds-currency-select,
    .rdsna-more-btn,
    .rds-gcart-btn,
    .rds-gcart-qtybtn,
    #rds-gcart-close,
    #rds-stripe-close
  ){
    transition: box-shadow .18s ease !important;
    transform: none !important;
  }

  :is(
    button,
    input[type="button"],
    input[type="submit"],
    input[type="reset"],
    .btn,
    a.btn,
    a[class*="btn"],
    [role="button"],
    .tab,
    .acc-tab,
    .acc-btn,
    .acc-btn-sm,
    .rds-currency-select,
    .rdsna-more-btn,
    .rds-gcart-btn,
    .rds-gcart-qtybtn,
    #rds-gcart-close,
    #rds-stripe-close
  ):hover,
  :is(
    button,
    input[type="button"],
    input[type="submit"],
    input[type="reset"],
    .btn,
    a.btn,
    a[class*="btn"],
    [role="button"],
    .tab,
    .acc-tab,
    .acc-btn,
    .acc-btn-sm,
    .rds-currency-select,
    .rdsna-more-btn,
    .rds-gcart-btn,
    .rds-gcart-qtybtn,
    #rds-gcart-close,
    #rds-stripe-close
  ):focus-visible,
  :is(
    button,
    input[type="button"],
    input[type="submit"],
    input[type="reset"],
    .btn,
    a.btn,
    a[class*="btn"],
    [role="button"],
    .tab,
    .acc-tab,
    .acc-btn,
    .acc-btn-sm,
    .rds-currency-select,
    .rdsna-more-btn,
    .rds-gcart-btn,
    .rds-gcart-qtybtn,
    #rds-gcart-close,
    #rds-stripe-close
  ):active{
    transform: none !important;
  }
}


/* ------------------------------------------------------------
   RDS Responsive hardening
   Goal: improve phone / tablet layout without changing business logic
------------------------------------------------------------- */
html, body, #rds-page{
  max-width:100%;
  overflow-x:hidden;
}
body{
  -webkit-text-size-adjust:100%;
}
img, svg, video, canvas{
  max-width:100%;
  height:auto;
}
iframe{
  max-width:100%;
}
table{
  display:block;
  width:100%;
  max-width:100%;
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
}

@media (max-width: 980px){
  .container{
    padding-left:14px !important;
    padding-right:14px !important;
  }

  .footer .cols{
    gap:18px !important;
  }

  .footer .social{
    flex-wrap:wrap;
  }

  .acc-order-head,
  .acc-addr-head,
  .acc-item{
    flex-direction:column !important;
    align-items:flex-start !important;
  }

  .acc-order-actions,
  .acc-top-right{
    justify-content:flex-start !important;
  }

  .acc-modal{
    padding:12px !important;
  }

  #rds-gcart-panel{
    width:min(100vw, 420px) !important;
  }

  #rds-stripe-modal{
    padding:12px !important;
  }

  #rds-stripe-sheet{
    width:min(100vw - 24px, 920px) !important;
  }
}

@media (max-width: 768px){
  .section{
    padding-top:20px !important;
    padding-bottom:20px !important;
  }

  .h2{
    font-size:clamp(28px, 9vw, 40px) !important;
    line-height:1.08 !important;
  }

  .sub{
    font-size:14px !important;
    line-height:1.55 !important;
  }

  .footer .cols{
    padding-left:14px !important;
    padding-right:14px !important;
  }

  .footer h4{
    font-size:clamp(24px, 10vw, 40px) !important;
  }

  .footer .bottom{
    font-size:.9rem !important;
  }

  .whatsapp{
    right:12px !important;
    bottom:12px !important;
    width:58px !important;
    height:58px !important;
  }

  .whatsapp svg{
    width:30px !important;
    height:30px !important;
  }

  #rds-gcart-panel .rds-gcart-head h2{
    font-size:18px !important;
  }

  #rds-gcart-panel .rds-gcart-item{
    align-items:flex-start !important;
  }

  #rds-gcart-panel .rds-gcart-right{
    min-width:0 !important;
  }

  #rds-stripe-sheet{
    height:min(92vh, 840px) !important;
    max-height:92vh !important;
    min-height:340px !important;
    border-radius:16px !important;
  }
}

@media (max-width: 640px){
  .container,
  .footer .cols,
  .notice{
    padding-left:12px !important;
    padding-right:12px !important;
  }

  .hero{
    padding:34px 0 26px !important;
  }

  .hero h1{
    font-size:clamp(30px, 10vw, 42px) !important;
  }

  .hero .tag{
    font-size:clamp(13px, 4vw, 16px) !important;
    white-space:normal !important;
  }

  .hero .orn{
    gap:10px !important;
  }

  .hero .orn .line{
    width:min(22vw, 92px) !important;
  }

  .florale{
    min-height:auto !important;
  }

  .florale .content{
    padding:28px 14px !important;
  }

  .florale h3{
    font-size:clamp(28px, 10vw, 42px) !important;
  }

  .florale p{
    font-size:14px !important;
    line-height:1.6 !important;
  }

  .florale .actions{
    gap:10px !important;
    flex-direction:column !important;
  }

  .florale .actions .btn{
    width:100% !important;
    max-width:360px !important;
  }

  #rds-incontournables-embed .rdsna-track,
  #rds-new-arrivals-embed .rdsna-track,
  #rds-promotions-embed .rdsna-track{
    gap:12px !important;
    min-height:unset !important;
  }

  #rds-incontournables-embed .rdsna-card,
  #rds-new-arrivals-embed .rdsna-card,
  #rds-promotions-embed .rdsna-card{
    width:min(74vw, 250px) !important;
  }

  #rds-incontournables-embed .rdsna-name,
  #rds-new-arrivals-embed .rdsna-name,
  #rds-promotions-embed .rdsna-name{
    font-size:16px !important;
    min-height:auto !important;
  }

  #rds-incontournables-embed .rdsna-more-btn,
  #rds-new-arrivals-embed .rdsna-more-btn,
  #rds-promotions-embed .rdsna-more-btn{
    min-width:0 !important;
    width:100% !important;
  }

  #rds-shop-root .shop-products-title{
    font-size:clamp(25px, 7vw, 38px) !important;
    line-height:1.06 !important;
  }

  #rds-shop-root aside.rds-sticky-sidebar{
    position:static !important;
    top:auto !important;
    border-radius:20px !important;
    padding:14px !important;
  }

  #rds-shop-root aside.rds-sticky-sidebar h2{
    margin-bottom:12px !important;
  }

  #rds-shop-root [class*="grid-cols-1"][class*="sm:grid-cols-2"][class*="md:grid-cols-3"][class*="lg:grid-cols-4"]{
    grid-template-columns:repeat(2, minmax(0, 1fr)) !important;
    gap:16px !important;
  }

  #rds-shop-root .group.cursor-pointer.select-none h3{
    font-size:1rem !important;
    min-height:auto !important;
  }

  #rds-shop-root .group.cursor-pointer.select-none .mt-4.text-center{
    margin-top:12px !important;
  }

  #rds-shop-root .rds-hover-reveal{
    padding:10px 14px !important;
    font-size:.9rem !important;
  }

  #rds-shop-root input[placeholder="Rechercher un produit..."],
  #rds-shop-root select{
    min-height:44px !important;
    font-size:16px !important;
  }

  #rds-shop-root [class*="justify-between"][class*="mb-4"]{
    align-items:stretch !important;
  }

  #rds-shop-root [class*="justify-between"][class*="mb-4"] > *{
    width:100% !important;
  }

  #rds-shop-root [class*="justify-between"][class*="mb-4"] [class*="flex items-center gap-3"]{
    justify-content:space-between !important;
  }

  .acc-card,
  .acc-hero,
  .acc-order,
  .acc-addr-card,
  .acc-modal-card{
    border-radius:18px !important;
  }

  .acc-actions .acc-btn,
  .acc-actions .acc-btn-primary,
  .acc-actions .acc-link,
  .acc-order-actions .acc-btn-sm,
  .acc-addr-actions .acc-btn-sm{
    width:100% !important;
    justify-content:center !important;
  }

  .acc-modal-card{
    max-height:calc(100vh - 20px) !important;
  }

  .acc-chat{
    height:280px !important;
  }

  .acc-bubble{
    max-width:88% !important;
  }

  #rds-gcart-panel{
    width:100vw !important;
  }

  #rds-gcart-panel .rds-gcart-item{
    flex-direction:column !important;
  }

  #rds-gcart-panel .rds-gcart-thumb{
    width:72px !important;
    height:72px !important;
  }

  #rds-gcart-panel .rds-gcart-right{
    width:100% !important;
    flex-direction:row !important;
    justify-content:space-between !important;
    align-items:center !important;
  }

  #rds-gcart-panel .rds-gcart-actions{
    flex-direction:column !important;
  }

  #rds-gcart-panel .rds-gcart-btn{
    width:100% !important;
  }

  #rds-gcart-panel .rds-gcart-custgrid{
    grid-template-columns:1fr !important;
  }
}

@media (max-width: 480px){
  #rds-incontournables-embed .rdsna-card,
  #rds-new-arrivals-embed .rdsna-card,
  #rds-promotions-embed .rdsna-card{
    width:min(82vw, 270px) !important;
  }

  #rds-shop-root [class*="grid-cols-1"][class*="sm:grid-cols-2"][class*="md:grid-cols-3"][class*="lg:grid-cols-4"]{
    grid-template-columns:1fr !important;
  }

  #rds-shop-root .group.cursor-pointer.select-none .absolute.inset-x-0.bottom-4{
    bottom:10px !important;
  }

  #rds-shop-root .rds-hover-reveal{
    width:calc(100% - 20px) !important;
    justify-content:center !important;
  }

  #rds-shop-root [class*="flex items-center gap-2"]{
    flex-wrap:wrap !important;
  }

  #rds-shop-root button[class*="Précédent"],
  #rds-shop-root button[class*="Suivant"]{
    width:100% !important;
  }

  .footer .social{
    justify-content:center !important;
  }

  .footer .bottom{
    font-size:.86rem !important;
    line-height:1.5 !important;
  }

  #rds-stripe-sheet{
    width:calc(100vw - 12px) !important;
    height:calc(100vh - 12px) !important;
    max-height:calc(100vh - 12px) !important;
    border-radius:14px !important;
  }
}

@media (hover:none), (pointer:coarse){
  #rds-shop-root .rds-hover-reveal{
    opacity:1 !important;
    transform:none !important;
  }
}


/* ===== Responsive pass 2 ===== */
input,
select,
textarea,
button{
  max-width:100%;
}

@media (max-width: 640px){
  .rds-topbar .btn,
  .footer .btn{
    min-width:0;
  }

  .footer .input{
    font-size:16px;
  }
}


/* ===== Responsive pass 3 ===== */
table{
  max-width:100%;
}

@media (max-width: 768px){
  .section{
    scroll-margin-top:82px;
  }

  #rds-stripe-modal{
    padding:8px !important;
  }

  #rds-stripe-sheet{
    width:min(calc(100vw - 16px), 920px) !important;
  }

  #rds-gcart-panel .rds-gcart-head{
    padding-right:8px !important;
  }

  #rds-gcart-panel .rds-gcart-right,
  #rds-gcart-panel .rds-gcart-right > *{
    min-width:0 !important;
  }
}

@media (max-width: 640px){
  #rds-shop-root [class*="justify-between"][class*="mb-4"] [class*="flex items-center gap-3"]{
    flex-wrap:wrap !important;
    gap:10px !important;
  }

  #rds-shop-root [class*="flex items-center gap-2"],
  #rds-shop-root [class*="flex items-center gap-3"]{
    min-width:0 !important;
  }

  #rds-gcart-panel .rds-gcart-right{
    flex-direction:column !important;
    align-items:stretch !important;
    gap:10px !important;
  }

  #rds-gcart-panel .rds-gcart-meta,
  #rds-gcart-panel .rds-gcart-actions,
  #rds-gcart-panel .rds-gcart-actions > *{
    width:100% !important;
  }

  #rds-gcart-panel .rds-gcart-custgrid > *{
    min-width:0 !important;
  }

  #rds-stripe-sheet{
    width:calc(100vw - 10px) !important;
    height:min(calc(100vh - 10px), 900px) !important;
    max-height:calc(100vh - 10px) !important;
    border-radius:14px !important;
  }

  #rds-stripe-sheet iframe{
    width:100% !important;
    max-width:100% !important;
  }
}

@media (max-width: 420px){
  .container,
  .section,
  .notice{
    min-width:0 !important;
  }

  #rds-shop-root aside.rds-sticky-sidebar{
    padding:12px !important;
    border-radius:18px !important;
  }

  #rds-gcart-panel{
    border-radius:0 !important;
  }

  #rds-gcart-panel .rds-gcart-thumb{
    width:64px !important;
    height:64px !important;
  }

  #rds-stripe-modal{
    padding:5px !important;
  }

  #rds-stripe-sheet{
    width:calc(100vw - 6px) !important;
    height:calc(100vh - 6px) !important;
    max-height:calc(100vh - 6px) !important;
    border-radius:12px !important;
  }
}

@media (max-height: 560px) and (orientation: landscape){
  #rds-stripe-sheet{
    height:calc(100vh - 8px) !important;
    max-height:calc(100vh - 8px) !important;
  }

  #rds-gcart-panel{
    height:100dvh !important;
    max-height:100dvh !important;
  }
}


/* ===== Responsive pass 4 : home hero Samsung A33 ===== */
@media (max-width: 430px){
  .hero .container{
    padding-left:4px !important;
    padding-right:4px !important;
  }

  .hero h1{
    white-space:nowrap !important;
    font-size:clamp(17px, 7.35vw, 17px) !important;
    line-height:.98 !important;
    letter-spacing:0 !important;
    margin:6px 0 8px !important;
  }

  .hero .tag{
    white-space:nowrap !important;
    font-size:clamp(9.5px, 2.95vw, 11.5px) !important;
    line-height:1 !important;
    letter-spacing:0 !important;
    margin:0 !important;
  }

  .hero .orn{
    gap:8px !important;
    margin:6px 0 10px !important;
  }

  .hero .orn .line{
    width:min(calc(18vw + 18px), 84px) !important;
  }
}
