/*
Theme Name: Hello Elementor Child
Template: hello-elementor
Version: 1.0.0
*/


@font-face { font-family: Aptos; src: url('/wp-content/themes/hello-elementor-child/fonts/Aptos.ttf'); font-weight: normal; }
@font-face { font-family: Aptos-Display; src: url('/wp-content/themes/hello-elementor-child/fonts/Aptos-Display.ttf'); font-weight: normal; }



/* --- Font family --- */


body, p, .woocommerce-loop-product__title, .db-card-desc, .price, .aptos > p, .aptos > a, .aptos > li, .cart-item-content, .cart-item-content * {
    font-family: 'Aptos', sans-serif !important;
}

h1, h2, h3, .font-display > p, .font-display a, .add_to_cart_button, .db-discover > a, #menu-menu-principal a {
    font-family: 'Aptos Display', sans-serif !important;
}

.elementor-element.elementor-element-c7b13f7,
.elementor-button {
	font-family: 'Aptos Display', sans-serif !important;
}



/* --- Slider wrapper (home) --- */
.db-slider{
  position:relative;
  margin-top:12px;
}

.db-slider .db-track{
  overflow:hidden; /* desktop: scroll piloté au click */
}

/* Liste WooCommerce */
.db-slider ul.products{
  display:flex !important;
  flex-wrap:nowrap;
  gap:16px;
  margin:0 !important;
  padding:0 !important;
  list-style:none !important;

  overflow-x:auto;                 /* mobile: scroll au doigt */
  -webkit-overflow-scrolling:touch;
  scroll-snap-type:x mandatory;
  scroll-padding-left: 0px;
}

/* scrollbar optionnelle (tu peux supprimer si tu veux) */
.db-slider ul.products::-webkit-scrollbar{ height:8px; }
.db-slider ul.products::-webkit-scrollbar-thumb{ background:rgba(0,0,0,.15); border-radius:999px; }

/* Cartes (mobile = 1 carte visible) */
.db-slider ul.products li.product{
  scroll-snap-align:start;
  margin:0 !important;

  flex:0 0 100%;          /* ✅ 1 seul produit visible */
  text-align:left;

  display:flex;           /* ✅ pour égaliser la hauteur */
  flex-direction:column;
}

/* Tablette : 2 cartes visibles */
@media (min-width:768px){
  .db-slider ul.products li.product{
    flex-basis: calc((100% - 16px)/2);
  }
}

/* Desktop : 4 cartes visibles + flèches */
@media (min-width:1024px){
  .db-slider ul.products{
    overflow:hidden;       /* on masque, et on scroll en JS */
    scroll-snap-type:none;
  }
  .db-slider ul.products li.product{
    flex:0 0 calc((100% - 16px*3)/4);
  }
}

/* --- Images : taille + rendu --- */
.db-slider ul.products li.product a img{
  width:100% !important;
  aspect-ratio: 1 / 1;
  height:auto;
  object-fit:cover;
  border-radius:14px;
  display:block;
  background:#D84E68;
}

/* --- Zone contenu : on la met en colonne --- */
/* Woo sort souvent: a (image), h2, price, etc. On force une structure "card" */
.db-slider ul.products li.product > *{
  /* rien ici par défaut */
}

.woocommerce-LoopProduct-link{
	color: #222222;
}

/* Titre produit : clamp pour hauteur constante */
.db-slider ul.products li.product .woocommerce-loop-product__title{
  margin:10px 0 6px !important;
  line-height:1.2;
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;   /* ✅ hauteur constante */
  overflow:hidden;
  min-height: calc(1.2em * 2); /* réserve 2 lignes */
}

/* Prix : réserve hauteur */
.db-slider ul.products li.product .price{
  margin:0 0 8px !important;
  min-height: 1.2em;
}

/* Unité éventuelle */
.db-unit{
  font-size:0.9em;
  opacity:.75;
}

/* Description (injectée par snippet PHP) : clamp */
.db-card-desc{
  margin:0 0 12px;
  font-size:12px;
  line-height:1.4;
  opacity:.85;

  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:3;
  overflow:hidden;

  min-height: calc(1.4em * 3);
}

.db-products-page .db-card-desc{
	-webkit-line-clamp: 4;
	min-height: calc(1.4em * 4);
}

@media (max-width:900px){
	.db-products-page .db-card-desc{
		-webkit-line-clamp: 5;
		min-height: calc(1.4em * 5);
	}
}


@media (max-width:1024px){
    .db-products-page ul.products.columns-4{
        grid-template-columns:repeat(2,1fr);
    }
}

@media (max-width:600px){
    .db-products-page ul.products.columns-4{
        grid-template-columns:1fr;
    }
}

/* --- Bouton "Ajouter au panier" : style maquette --- */
.db-slider ul.products li.product a.button,
.db-slider ul.products li.product .button{
  margin-top:auto !important;     /* ✅ pousse le bouton en bas */
  display:inline-flex !important;
  align-items:center;
  justify-content:center;

  width:100%;
  border-radius:999px !important;
  padding:10px 14px !important;

  border:0 !important;
  background:#d84b57 !important; 
  color:#fff !important;

  font-weight:600;
  line-height:1 !important;
  text-decoration:none !important;

  transition: filter .15s ease, transform .05s ease;
}

.db-slider ul.products li.product a.button:hover{
  background-color: #222222 !important;
}
.db-slider ul.products li.product a.button:active{
  transform: translateY(1px);
}

/* --- Flèches --- */
.db-arrow{
    position:absolute;
    top:30%;
    transform:translateY(-50%);

    height:100px;

    border:0;
    background:transparent;

    cursor:pointer;
    z-index:2;

    display:none; /* caché mobile */
    border: none !important;
}

.db-arrow-icon{
    width:100%;
    height:100%;

    stroke:#d84e68;
    stroke-width:2;
    fill:none;

    transition:transform .2s ease, stroke .2s ease;
}

.db-arrow:hover{
	background-color: transparent !important;
}
.db-arrow:focus{
	background-color: transparent !important;
}
.db-prev{ left:-7em; }
.db-next{ right:-7em; }

.db-track ul.products {
    scroll-snap-type: x mandatory;
}

.db-track li.product {
    scroll-snap-align: start;
}

@media (min-width:1024px){
  .db-arrow{ display:inline-flex; }
}

@media (max-width:900px){
  .db-arrow{ display:none !important; }
}

/* état disabled */
.db-arrow[disabled]{
  opacity:.35;
  cursor:not-allowed;
}

/* Lien "découvrir..." aligné à droite */
.db-discover{
  text-align:right;
  margin-top:20px;
}

.db-discover > a{
	text-decoration: underline !important;
}

a:active, a:hover{
	color: #222222 !important;
}

/* Donne de l'air à gauche/droite pour que la 1ère et la dernière card puissent être entièrement visibles */
.db-slider ul.products{
  padding: 0 16px 10px !important;   /* 16px = même valeur que ton gap */
  box-sizing: border-box;
  scroll-padding-left: 16px;
  scroll-padding-right: 16px;
}

/* Important : enlever les marges par défaut Woo sur les li (au cas où) */
.db-slider ul.products li.product{
  margin: 0 !important;
}

/* ====== PAGE NOS PRODUITS ====== */

@media (min-width:768px){
  .db-products-page ul.products{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}


/* Cartes : même hauteur */
.db-products-page ul.products li.product{
  display:flex;
  flex-direction:column;
  height:100%;
  text-align:left;
}

/* Image carrée + arrondis */
.db-products-page ul.products li.product a img{
  width:100% !important;
  aspect-ratio:1/1;
  object-fit:cover;
  height:auto;
  border-radius:14px;
  display:block;
  background:#fff;
}

/* Titre clamp (hauteur constante) */
.db-products-page .woocommerce-loop-product__title{
  margin:10px 0 6px !important;
  line-height:1.2;
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;   /* ✅ hauteur constante */
  overflow:hidden;
  min-height: calc(1.2em * 2); /* réserve 2 lignes */
}

/* Prix : réserve hauteur */
.db-products-page .price{
  margin:0 0 10px !important;
  min-height:1.2em;
}

/* Bouton pill rouge comme maquette */
.db-products-page a.button,
.db-products-page .add_to_cart_button{
  margin-top:auto !important;
  width:100%;
  display:inline-flex !important;
  align-items:center;
  justify-content:center;

  border-radius:999px !important;
  padding:10px 14px !important;

  border:0 !important;
  background:#d84b57 !important;
  color:#fff !important;

  font-weight:600;
  line-height:1 !important;
  text-decoration:none !important;
}

a.add_to_cart_button.added:after {
    display: none !important;
}

.db-products-page a.button:hover{
  background-color: #222222 !important;
}

/* Désactive le lien vers la page produit (image + titre) */
ul.products li.product a.woocommerce-LoopProduct-link{
  pointer-events: none;
  cursor: default;
}
/* =========================
   PANIER - rendu type maquette
   ========================= */

/* Cache l'entête de tableau */
.woocommerce-cart table.shop_table thead { display:none; }

/* On neutralise le look table, mais on garde la structure Woo */
.woocommerce-cart table.shop_table,
.woocommerce-cart table.shop_table tbody {
  display:block;
  width:100%;
}

/* Chaque produit = une carte */
.woocommerce-cart table.shop_table tr.cart_item{
  display:grid;
  grid-template-columns: 88px 1fr 110px;
  grid-template-areas:
    "thumb name qty"
    "thumb meta meta"
    "thumb price remove";
  gap: 10px 14px;
  border: 1px solid rgba(0,0,0,.12);
  border-radius: 8px;
  padding: 14px;
  margin: 0 0 14px 0;
  background:#fff;
}

/* On enlève les td “full width” qui créent les grands blancs */
.woocommerce-cart table.shop_table tr.cart_item td{
  border:0 !important;
  padding:0 !important;
  margin:0 !important;
  background: transparent !important;
}

/* Place les cellules dans la grille */
.woocommerce-cart td.product-thumbnail { grid-area: thumb; }
.woocommerce-cart td.product-name      { grid-area: name; }
.woocommerce-cart td.product-quantity  { grid-area: qty; justify-self:end; }
.woocommerce-cart td.product-subtotal  { grid-area: price; justify-self:end; font-weight:600; }
.woocommerce-cart td.product-remove    { grid-area: remove; justify-self:end; }

/* Image */
.woocommerce-cart td.product-thumbnail img{
  width:88px;
  height:auto;
  border-radius:8px;
  display:block;
}

/* Nom produit + lien (retire l’effet “barre”/fond éventuel) */
.woocommerce-cart td.product-name a{
  font-weight:600;
  text-decoration:none;
  background:none !important;
  box-shadow:none !important;
}

.product-name a{
  font-weight:600;
  text-decoration:none;
  background:none !important;
  box-shadow:none !important;
	pointer-events: none;
    cursor: default;
}

.order-again a{
		background-color: #d84c63 !important;
	color: white !important;

}

.order-again a:hover{
	background-color: #222222 !important;
	color: white !important;
}

/* Meta / variations : on les met sous le nom */
.woocommerce-cart td.product-name dl.variation,
.woocommerce-cart td.product-name .variation{
  grid-area: meta;
  font-size:13px;
  opacity:.75;
  margin:6px 0 0 0;
}

/* Si pas de variations, on évite un trou */
.woocommerce-cart td.product-name dl.variation:empty{
  display:none;
}

/* Cache le prix unitaire (optionnel, pour coller à la maquette) */
.woocommerce-cart td.product-price{ display:none !important; }

/* Quantité */
.woocommerce-cart input.qty{
  width:72px;
  padding:8px;
}

/* Bouton supprimer : discret */
.woocommerce-cart a.remove{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:28px;
  height:28px;
  line-height:1;
  border-radius:999px;
  border:1px solid rgba(0,0,0,.18);
  color:#b40000;
  text-decoration:none;
}
.woocommerce-cart a.remove:hover{
  border-color: rgba(0,0,0,.35);
}

/* Ligne “actions” (mettre à jour) : on garde simple */
.woocommerce-cart tr:not(.cart_item) { display:block; }
.woocommerce-cart button[name="update_cart"]{
  border-radius:6px;
  padding:12px 14px;
}

/* Mobile : on empile */
@media (max-width: 900px){
  .woocommerce-cart table.shop_table tr.cart_item{
    grid-template-columns: 72px 1fr;
    grid-template-areas:
      "thumb name"
      "thumb meta"
      "qty price"
      "remove remove";
  }
  .woocommerce-cart td.product-quantity{ justify-self:start; }
  .woocommerce-cart td.product-subtotal{ justify-self:end; }
  .woocommerce-cart td.product-remove{ justify-self:start; }
}

/* Masque livraison + adresse dans le bloc totaux (panier) */
.woocommerce-cart .cart_totals .shipping,
.woocommerce-cart .cart_totals .woocommerce-shipping-totals,
.woocommerce-cart .cart_totals .shipping-calculator-button,
.woocommerce-cart .cart_totals .shipping-calculator-form {
  display:none !important;
}

/* Optionnel : cache la ligne sous-total */
.woocommerce-cart .cart_totals tr.cart-subtotal { display:none; }







/* --- PANIER --- */

.custom-cart {
    display: grid;
    grid-template-columns: 1fr 340px;
    gap: 70px;
}

.cart-item {
    display: grid;
    grid-template-columns: 80px 1fr auto;
    gap: 24px;
    align-items: center;
    padding: 25px 0;
    border-bottom: 1px solid rgba(0,0,0,0.08);
}

.cart-item-image img {
    width: 75px;
    border-radius: 6px;
}

.cart-item-title {
    font-size: 18px;
    margin: 0;
}

.cart-item-price {
    font-size: 14px;
    opacity: 0.7;
}

.cart-item-quantity .quantity {
    display: flex;
    align-items: center;
}

.cart-item-remove {
    font-size: 13px;
    text-decoration: underline;
    margin-top: 6px;
    display: inline-block;
}

.cart-summary {
    position: sticky;
    top: 120px;
}

.checkout-btn-primary {
    display: block;
    width: 100%;
    background: #d84c63;
    color: white;
    text-align: center;
    padding: 14px;
    border-radius: 6px;
    text-decoration: none;
    margin-top: 20px;
}

@media (max-width: 768px) {

.cart-item-image{
    grid-area:image;
}

.cart-item-content{
    grid-area:content;
}

.cart-item-total{
    grid-area:total;
}
    .custom-cart {
        grid-template-columns: 1fr;
        gap: 40px;
    }

    .cart-item {
        grid-template-columns: 60px 1fr;
        grid-template-areas:
            "image content"
            "image total";
    }

    .cart-item-total {
        margin-top: 10px;
    }

}

.qty-wrapper {
    display:flex;
    align-items:center;
    gap:8px;
}

.qty-wrapper input.qty {
    width:50px;
    text-align:center;
}

.qty-plus,
.qty-minus {
    width:36px;
    height:36px;
    cursor:pointer;
}

.cart-item-weight {
    font-size: 14px;
    opacity: 0.7;
    margin-top: 4px;
}


/* --- CHECKOUT --- */
.checkout-grid {
    display:grid;
    grid-template-columns:1fr 350px;
    gap:60px;
}

.checkout-right {
    position:sticky;
    top:120px;
}

.woocommerce-checkout-review-order-table {
    border: none;
}

.woocommerce-checkout-review-order-table th,
.woocommerce-checkout-review-order-table td {
    border: none;
    padding: 12px 0;
}

.woocommerce-checkout-review-order-table tfoot th {
    font-weight: 600;
}

.woocommerce-checkout-review-order-table tr {
    border-bottom: 1px solid rgba(0,0,0,0.08);
}

.checkout-right {
    position: sticky;
    top: 120px;
}

.woocommerce-checkout .woocommerce {

    max-width: 1140px;
    margin-left: auto;
    margin-right: auto;
    padding-left: 20px;
    padding-right: 20px;
}

#place_order{
    background: #d84c63;
    color: white;
    text-align: center;
    padding: 14px;
    border-radius: 6px;
    text-decoration: none;
}

#place_order:hover{
	background-color: #222222;
}

/* Desktop layout */

.checkout-grid {
    display:flex;
    gap:30px;
}

.checkout-left {
    flex:1;
}

.checkout-right {
    width:400px;
}


/* MOBILE */

@media (max-width:767px){

    .checkout-grid {
        flex-direction:column;
    }

    .checkout-left {
        order:1;
    }

    .checkout-right {
        order:2;
        width:100%;
    }

}


/* --- HEADER --- */

.tahefobu-menu-item{
	font-family: 'Aptos Display', sans-serif !important;
}

.elementor-location-header {
    position:relative;
}

.db-header-cart-wrapper {
    position:fixed;
    right:5px;
    top:25px;
    transform:translateY(-50%);
    z-index:1000000;
	display: flex;
}

.db-header-cart, .db-header-account {
    width:36px;
    height:36px;

    display:flex;
    align-items:center;
    justify-content:center;

    background:#d84c63;
    color:#fff;

    border-radius:6px;
    text-decoration:none;

    transition:background .2s ease, transform .1s ease;
	margin-right: 10px;
}

.db-header-cart:hover, .db-header-account:hover {
    background:#c94357;
}

.db-header-cart:active, .db-header-account:active {
    transform:scale(.96);
}

.db-header-cart__count {
    position:absolute;
    top:-6px;
    right:-2px;

    min-width:18px;
    height:18px;

    padding:0 5px;

    display:flex;
    align-items:center;
    justify-content:center;

    font-size:11px;
    font-weight:600;

    background:#111;
    color:#fff;

    border-radius:999px;
}

body.shiftnav-open .db-header-cart,
body.shiftnav-open .db-header-account{
    display:none;
}

.db-header-cart__count.is-empty {
    display:none;
}

/* Tablet */
@media (min-width: 768px) and (max-width: 1024px) {
	.db-header-cart-wrapper {
		top:70px;
		right:16px;
		z-index: 1000000;
	}
}


/* Desktop : cacher si besoin */

@media (min-width:1024px){
    .db-header-cart-wrapper {
        display:none;
    }
}


/* --- Nous Contacter --- */
.ff_btn_no_style{
  background:#d84b57 !important; 
  color:#fff !important;

  font-weight:700 !important;
  line-height:1 !important;
  text-decoration:none !important;
}

.ff_btn_no_style:hover, .checkout-btn-primary:hover{
  background-color: #222222 !important;
  color: #fff !important;
  border: 1px solid #222222;
}

.checkout-btn-primary{
	font-family: 'Aptos Display', sans-serif !important
}

/* --- Bouton Commander --- */
.elementor-button-text::after{
    content:"";
    display:inline-block;
    width:22px;
    height:22px;
    margin-left:5px;
    background:url("/wp-content/uploads/2026/03/clic.png") no-repeat center;
    background-size:contain;
	vertical-align: bottom;
}

/* Header mobile ShiftNav */

.shiftnav-main-toggle-content{
	padding-left: 20px !important;
    padding-top: 5px !important;
}
.shiftnav-main-toggle-content img{
	height: 40px;
}

.shiftnav-toggle-burger{
	margin-top: 5px !important;
	background-color: #d84c63 !important;
}

/* =========================
   POPUP AJOUT PANIER
   ========================= */

#db-cart-popup{
    position:fixed;
    inset:0;

    background:rgba(0,0,0,.35);

    display:flex;
    align-items:center;
    justify-content:center;

    opacity:0;
    visibility:hidden;

    transition:.25s;

    z-index:999999;
}

#db-cart-popup.active{
    opacity:1;
    visibility:visible;
}

.db-cart-popup-box{
    position:relative;

    background:#fff;

    padding:55px 70px;

    border-radius:10px;

    text-align:center;

    max-width:320px;
}

/* bouton fermer */

.db-cart-popup-close{
    position:absolute;
    top:10px;
    right:12px;

    border:none;
    background:none;

    font-size:22px;
    cursor:pointer;
}

/* texte */

.db-cart-popup-text{
    font-size:16px;
    margin-bottom:18px;
}

/* bouton */

.db-cart-popup-btn{
    display:inline-block;

    padding:10px 18px;

    background:#d84c63;
    color:#fff;

    border-radius:6px;

    text-decoration:none;
    font-weight:600;
}

.db-cart-popup-btn:hover{
    background-color: #222222;
	color:#fff !important;
}


/* compteur panier desktop */

.elementor-element-326c196 .elementor-icon{
    position:relative;
}

.db-cart-count{
    position:absolute;

    top:-6px;
    right:-8px;

    min-width:18px;
    height:18px;

    padding:0 5px;

    display:flex;
    align-items:center;
    justify-content:center;

    font-size:11px;
    font-weight:600;

    background:#111;
    color:#fff;

    border-radius:999px;
}





.woocommerce-button, .woocommerce-Button{
	background-color: #d84c63 !important;
	color: white !important;
}

.woocommerce-button:hover, .woocommerce-Button:hover{
	background-color: #222222 !important;
	color: white !important;
}

.woocommerce-form-login{
	width: 40%;
    margin: 0 auto !important;
}

@media (max-width: 768px) {
	.woocommerce-form-login{
		width: 100%
	}
	.shiftnav-main-toggle-content img{
		height: 30px;
	}
}

#clickandcollect:hover{
	color:#fff !important;
}

.added_to_cart.wc-forward{
    display:none !important;
}