/*
	Theme Name: Hello Elementor Child
	Theme URI: https://elementor.com/hello-theme/
	Description: Thème enfant pour Datasure.net.
	Author: Datasure
	Template: hello-elementor
	Version: 1.0.1
	Requires at least: 6.0
	Tested up to: 6.7
	Requires PHP: 7.4
	Text Domain: hello-elementor-child
	License: GNU General Public License v3 or later.
	License URI: https://www.gnu.org/licenses/gpl-3.0.html
*/

/* Personnalisations CSS Datasure */

/* Recentrage du bloc panier WooCommerce.
   Hello Elementor (3.2.1 comme 3.4.9) applique .alignwide{margin-inline:-80px}
   et n'active sa compensation que si le <body> ne porte pas de classe
   elementor-page-*. La page panier étant en mode Elementor, cette compensation
   est désactivée et le bloc déborde de 80px à gauche : on la rétablit ici. */
.woocommerce-cart .wp-block-woocommerce-cart.alignwide {
    margin-inline: auto;
    max-width: var(--wp--style--global--wide-size, 1200px);
}

/* ============================================================================
   Mini-panier latéral — widget Elementor Pro « Menu Cart »
   ============================================================================
   Symptôme : le tiroir latéral est illisible, le méta-article est rogné.

   Cause : Elementor Pro pose ces trois règles dans
   plugins/elementor-pro/assets/css/widget-woocommerce-menu-cart.min.css
       .elementor-menu-cart__main    { width: 350px; padding: 20px 30px }
       .elementor-menu-cart__product { display: grid; grid-template-columns: 28% auto }
       .variation                    { display: grid; grid-template-columns: max-content auto }

   Avec les champs Gravity Forms remontés en méta-article, le libellé le plus
   long (« Signatory's mobile phone: ») fixe la 1re colonne du <dl> à 159px et
   la valeur en ajoute 140px, soit un min-content de ~325px pour 275px utiles.
   Les éléments de grille ont min-width:auto par défaut : les pistes refusent
   de rétrécir, et le dépassement est coupé net par le overflow:hidden du
   tiroir. Plus le produit a de champs GF, plus c'est illisible.

   Ni le thème parent 3.4.9 (reset.css / theme.css / header-footer.css, aucune
   règle .variation) ni le CSS additionnel du Customizer ne sont en cause : ce
   n'est pas une régression de la bascule 3.2.1 -> 3.4.9.

   Choix retenu : garder le tiroir à 350px et récupérer la place sur les
   paddings, la vignette et le corps de police. L'alternative — élargir le
   panneau à 480px — recouvrait la colonne « Total » de la page Panier.
   Repère de cohérence : la page Panier affiche son propre méta-article à
   11,375px et le nom du produit à 13px, donc 12px ici n'est pas un point bas.

   Vérifié en 1920x1080 et en 390x844 (iPhone 14, DPR 3) : scrollWidth ==
   clientWidth sur tous les articles, plus aucun débordement.
   ------------------------------------------------------------------------- */

/* Paddings du tiroir : 30px -> 18px, soit 24px de largeur récupérés. */
.elementor-menu-cart__main {
    --cart-padding: 20px 18px;
}

/* Laisse les pistes de grille descendre sous leur min-content. C'est la
   correction de fond : sans ça, tout le reste est cosmétique. */
.elementor-menu-cart__product,
.elementor-menu-cart__product > * {
    min-width: 0;
}

/* Vignette 28% (~83px) -> 48px, et padding du bouton supprimer 30px -> 22px. */
.elementor-menu-cart__product {
    grid-template-columns: 48px auto;
    padding-inline-end: 22px;
}

.elementor-menu-cart__product-name,
.elementor-menu-cart__product-price {
    padding-inline-start: 10px;
}

/* Méta-article : on abandonne la grille 2 colonnes pour un « libellé : valeur »
   qui se replie. overflow-wrap reste volontairement à `normal` : le flottement
   du libellé renvoie une valeur trop longue à la ligne suivante, là où
   `break-word` la couperait en plein milieu (« remi@datas / ure.eu »). */
.elementor-menu-cart__product .variation {
    display: block;
    font-size: 12px;
    line-height: 1.45;
    overflow-wrap: normal;
}

.elementor-menu-cart__product .variation dt {
    float: inline-start;
    clear: inline-start;
    margin-inline-end: .3em;
    font-weight: 600;
}

.elementor-menu-cart__product .variation dd {
    margin-inline-start: 0;
}

/* Le champ « document » rend une <ul> : on la passe sous son libellé. Ici
   `anywhere` est justifié, un nom de fichier peut dépasser la largeur dispo. */
.elementor-menu-cart__product .variation dd ul {
    clear: inline-start;
    margin: 0;
    padding-inline-start: 1.1em;
    list-style: disc outside;
    overflow-wrap: anywhere;
}

/* La typographie globale des liens (18px / Jost / 500, réglée dans Elementor
   Site Settings) écrase le 12px du méta-article : on la fait hériter. */
.elementor-menu-cart__product .variation a {
    font-size: inherit;
    font-family: inherit;
    font-weight: inherit;
    line-height: inherit;
}

/* Gravity Forms transforme l'e-mail du signataire en lien mailto:. Dans un
   mini-panier c'est une donnée à relire, pas une action : on le rend inerte.
   Effet de bord assumé : ce texte n'est plus sélectionnable à la souris. */
.elementor-menu-cart__product .variation a[href^="mailto:"] {
    color: inherit;
    text-decoration: none;
    pointer-events: none;
}

/* Course de z-index entre deux plugins, sans lien avec la bascule du thème :
   WooCommerce Blocks pose .wc-block-cart__submit-container--sticky en
   position:fixed / z-index:9999, Elementor Pro pose son tiroir en 9998. Sur
   mobile, page Panier, la barre collante « Valider la commande » recouvre donc
   les boutons du tiroir et les rend non cliquables (vérifié par
   document.elementsFromPoint). On repasse le tiroir au-dessus. */
.elementor-menu-cart__container {
    z-index: 10000;
}

/* ============================================================================
   Page Panier — méta-article sur une seule ligne séparé par des « / »
   ============================================================================
   WooCommerce Blocks rend .wc-block-components-product-details ainsi :

       <span class="…__votre-document-non-sign">
           <span class="…__name">Your unsigned document:</span>
           <span class="…__value"><a …>tmate-signed1.pdf</a></span>
           <span aria-hidden="true"> / </span>
       </span>

   Chaque champ est un <span> inline, et le séparateur est un vrai nœud du DOM
   (pas un ::after), déjà porteur de aria-hidden="true" : le masquer ne retire
   donc rien aux lecteurs d'écran, qui l'ignoraient déjà.
   ------------------------------------------------------------------------- */
.wc-block-components-product-details > span {
    display: block;
}

.wc-block-components-product-details > span > span[aria-hidden="true"] {
    display: none;
}
