/*
Theme Name: Astra Child
Template: astra
Version: 1.0.0
*/

@import url("assets/css/root-tokens.css");
@import url("assets/css/app-sticky-cta.css");
@import url("assets/css/product-app.css?v=20260821-ux1");
@import url("assets/css/mode-visibility.css");
@import url("assets/css/app-messages.css");

:root {
  /* Astra global color overrides → map to our tokens */
  --ast-global-color-0: var(--primary);
  --ast-global-color-1: var(--accent);
  --ast-global-color-2: var(--text);
  --ast-global-color-3: var(--text-soft);
  --ast-global-color-4: var(--border-subtle);
  --ast-global-color-5: var(--bg);
}

/* Boutons globaux (Astra, Gutenberg, Woo) */
a.button,
button,
input[type="button"],
input[type="submit"],
.wp-block-button__link,
.ast-button,
.ast-custom-button,
.ast-custom-button-link,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit {
  border-radius: var(--btn-radius);
  text-decoration: none;
  font-weight: 500;
  line-height: 1.2;
  transition: background .2s ease, transform .12s ease, box-shadow .2s ease;
}

a.button:hover,
button:hover,
input[type="button"]:hover,
input[type="submit"]:hover,
.wp-block-button__link:hover,
.ast-button:hover,
.ast-custom-button:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover {
  background:var(--action-primary-hover-bg);
  color:var(--action-primary-hover-text);
  transform:translateY(-1px);
}

a.button:active,
button:active,
input[type="button"]:active,
input[type="submit"]:active,
.wp-block-button__link:active,
.ast-button:active,
.ast-custom-button:active,
.woocommerce a.button:active,
.woocommerce button.button:active,
.woocommerce input.button:active,
.woocommerce #respond input#submit:active {
  transform: translateY(0);
}

a.button:focus-visible,
button:focus-visible,
input[type="button"]:focus-visible,
input[type="submit"]:focus-visible,
.wp-block-button__link:focus-visible,
.ast-button:focus-visible,
.ast-custom-button:focus-visible,
.woocommerce a.button:focus-visible,
.woocommerce button.button:focus-visible,
.woocommerce input.button:focus-visible,
.woocommerce #respond input#submit:focus-visible {
  outline:none;
  box-shadow:var(--focus-ring);
}

/* Désactivés */
button[disabled],
input[type="submit"][disabled],
.woocommerce button.button.disabled,
.woocommerce button.button:disabled {
  opacity: .6;
  cursor: not-allowed;
  transform: none;
}


/* ============================================================
   Header product cart overlay — mobile / tablette
   ============================================================ */

.bp-header-product-cart-wrap{
  display:none;
}

@media (max-width: 920px){
  body.single-product .bp-header-product-cart-wrap{
    position:fixed;
    top:14px;
    right:14px;
    z-index:9998;
    display:block;
  }

  body.single-product.admin-bar .bp-header-product-cart-wrap{
    top:60px;
  }

  body.single-product .bp-header-product-cart{
    position:relative;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:42px;
    height:42px;
    border:none;
    border-radius:999px;
    background:color-mix(in srgb, var(--bp-surface, #fff) 92%, transparent);
    color:var(--bp-text, #161a22);
    box-shadow:0 8px 20px rgba(0,0,0,.10);
    backdrop-filter:blur(10px);
    cursor:pointer;
  }

  body.single-product .bp-header-product-cart svg{
    width:18px;
    height:18px;
    display:block;
  }

  body.single-product .bp-header-product-cart__count{
    position:absolute;
    top:-4px;
    right:-4px;
    display:flex;
    align-items:center;
    justify-content:center;
    min-width:18px;
    height:18px;
    padding:0 5px;
    border-radius:999px;
    background:var(--bp-accent, #6A5CFF);
    color:#fff;
    font-size:10px;
    font-weight:700;
    line-height:1;
  }
}

body.single-product .bp-header-product-cart{
  transition:transform .16s ease, box-shadow .16s ease, opacity .16s ease;
}

body.single-product .bp-header-product-cart.is-pre-bump{
  transform:scale(1.08);
  box-shadow:0 12px 28px rgba(0,0,0,.18);
}

body.single-product .bp-header-product-cart__count{
  transition:transform .16s ease;
}

body.single-product .bp-header-product-cart__count.is-pre-bump{
  transform:scale(1.15);
}

/* Page Panier - Sans produit */ 

.bp-empty-cart-reco{
  width:100%;
  clear:both;
  padding:28px 16px 34px;
}

.bp-empty-cart-reco__inner{
  width:100%;
  max-width:1200px;
  margin:0 auto;
}

.bp-empty-cart-reco__head{
  text-align:left;
  margin:0 0 26px;
  max-width:760px;
}

.bp-empty-cart-reco__head h3{
  margin:0 0 12px;
  font-size:clamp(2rem, 4.6vw, 4.2rem);
  line-height:.95;
  letter-spacing:-.03em;
}

.bp-empty-cart-reco__head p{
  max-width:620px;
  margin:0;
  opacity:.74;
  font-size:1rem;
  line-height:1.55;
}

.bp-empty-cart-reco__slider{
  width:100%;
  overflow:visible;
}

.bp-empty-cart-reco__grid{
  width:100%;
  display:grid;
  grid-template-columns:repeat(4, minmax(0, 1fr));
  gap:18px;
  margin:0;
}

.bp-empty-cart-reco__card{
  position:relative;
  overflow:hidden;
  border-radius:var(--radius-card);
  background:var(--card-bg);
  border:0;
  box-shadow:var(--shadow-sm);
  transition:transform .18s ease, box-shadow .18s ease;
  min-width:0;
}

.bp-empty-cart-reco__card:hover{
  transform:translateY(-2px);
  box-shadow:0 10px 20px rgba(0,0,0,.08);
}

.bp-empty-cart-reco__media{
  display:block;
  aspect-ratio:1.35 / 1;
  overflow:hidden;
  background:var(--surface-2);
}

.bp-empty-cart-reco__media img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}

.bp-empty-cart-reco__ph{
  width:100%;
  height:100%;
  background:var(--surface-2);
}

.bp-empty-cart-reco__body{
  padding:14px;
  display:flex;
  flex-direction:column;
  gap:10px;
}

.bp-empty-cart-reco__title{
  display:block;
  margin:0;
  font-size:1rem;
  line-height:1.2;
  font-weight:800;
  color:inherit;
  text-decoration:none;
  word-break:break-word;
}

.bp-empty-cart-reco__title:hover{
  color:var(--link-color);
}

.bp-empty-cart-reco__price{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:fit-content;
  min-height:32px;
  padding:0 10px;
  border-radius:var(--radius-pill);
  background:color-mix(in srgb,var(--accent) 10%,transparent);
  color:var(--accent);
  font-weight:800;
}

.bp-empty-cart-reco__price del{
  margin-right:6px;
  opacity:.4;
  font-size:.85em;
}

.bp-empty-cart-reco__price ins{
  text-decoration:none;
  font-weight:800;
  color:var(--accent);
}

/* bloc panier vide Woo */
.woocommerce-cart .cart-empty,
.woocommerce .cart-empty{
  margin-top:24px;
  padding:22px;
  text-align:center;
  border:0;
  border-radius:var(--radius-panel);
  background:var(--card-bg);
  box-shadow:var(--shadow-sm);
}

/* bouton retour menu */
.return-to-shop,
.wc-empty-cart-message .return-to-shop{
  margin-top:18px;
}

.return-to-shop .button,
.wc-empty-cart-message .return-to-shop .button,
.ast-continue-shopping{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:52px;
  padding:0 20px;
  border:0;
  border-radius:var(--radius-button);
  text-decoration:none;
  font-weight:800;
  background:var(--action-primary-bg);
  color:var(--action-primary-text);
  box-shadow:none;
}

.return-to-shop .button:hover,
.wc-empty-cart-message .return-to-shop .button:hover,
.ast-continue-shopping:hover{
  background:var(--action-primary-hover-bg);
  color:var(--action-primary-hover-text);
}

/* tablette */
@media (max-width: 980px){
  .bp-empty-cart-reco__grid{
    grid-template-columns:repeat(2, minmax(0, 1fr));
  }
}

/* mobile */
@media (max-width: 800px){
  .bp-empty-cart-reco{
    padding:20px 12px 26px;
  }

  .bp-empty-cart-reco__head{
    margin-bottom:22px;
  }

  .bp-empty-cart-reco__head h3{
    font-size:clamp(2rem, 11vw, 3rem);
    line-height:.98;
  }

  .bp-empty-cart-reco__head p{
    font-size:.96rem;
    max-width:100%;
  }

  .bp-empty-cart-reco__slider{
    overflow-x:auto;
    overflow-y:hidden;
    margin-right:-12px;
    padding-right:12px;
    scroll-snap-type:x mandatory;
    -webkit-overflow-scrolling:touch;
  }

  .bp-empty-cart-reco__slider::-webkit-scrollbar{
    display:none;
  }

  .bp-empty-cart-reco__grid{
    display:flex;
    gap:14px;
    width:max-content;
    grid-template-columns:none;
  }

  .bp-empty-cart-reco__card{
    width:min(82vw, 320px);
    flex:0 0 auto;
    scroll-snap-align:start;
    border-radius:22px;
  }

  .bp-empty-cart-reco__body{
    padding:14px;
  }
}

/* ============================================================
   FIX desktop panier vide — reset layout Woo/Astra
   ============================================================ */
body.woocommerce-cart .woocommerce,
body.woocommerce-cart .entry-content .woocommerce,
body.woocommerce-cart .site-main .woocommerce{
  display:block !important;
  width:100% !important;
  max-width:none !important;
}

body.woocommerce-cart .wc-empty-cart-message {
  display:none;
}

body.woocommerce-cart .cart-empty,
body.woocommerce-cart .return-to-shop,
body.woocommerce-cart .bp-empty-cart-reco{
  float:none !important;
  clear:both !important;
  display:block !important;
  width:100% !important;
  max-width:none !important;
  margin-left:0 !important;
  margin-right:0 !important;
}

body.woocommerce-cart .bp-empty-cart-reco{
  position:relative;
  left:auto !important;
  right:auto !important;
}

body.woocommerce-cart .bp-empty-cart-reco__inner{
  width:100% !important;
  max-width:1200px !important;
  margin:0 auto !important;
}

body.woocommerce-cart .bp-empty-cart-reco__slider{
  width:100% !important;
}

body.woocommerce-cart .bp-empty-cart-reco__grid{
  width:100% !important;
  display:grid !important;
  grid-template-columns:repeat(4, minmax(0, 1fr)) !important;
  gap:18px !important;
  margin:0 !important;
}

@media (max-width: 1028px){
  body.woocommerce-cart .bp-empty-cart-reco__grid{
    grid-template-columns:repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 800px){
  body.woocommerce-cart .bp-empty-cart-reco__grid{
    display:flex !important;
    width:max-content !important;
    grid-template-columns:none !important;
  }
}
