/*
Theme Name:   CamiBijoux
Theme URI:    https://camibijoux.fr
Description:  Thème enfant de Hello Elementor. Reçoit les personnalisations CSS et PHP du site, à l'abri des mises à jour du thème parent.
Author:       CamiBijoux
Template:     hello-elementor
Version:      1.2.0
Text Domain:  camibijoux
*/

/* ══════════════════════════════════════════════════════════════
   APPARENCE NATIVE DES BOUTONS

   Tout <button> qu'aucune règle n'habille reçoit l'habillage par
   défaut du navigateur : bordure grise, fond clair, coins arrondis.
   C'est ce qui dessinait un cadre autour de la croix de fermeture
   des popups.

   Ce bloc est volontairement écrit SANS !important et avec des
   sélecteurs d'éléments : sa spécificité est la plus basse
   possible. Dès qu'un bouton est habillé par une classe
   (.elementor-button, .single_add_to_cart_button, nos .cbic-*,
   .cbjs-*…), cette règle-là l'emporte automatiquement. Seuls les
   boutons que personne n'a stylés sont donc remis à plat.
   ══════════════════════════════════════════════════════════════ */

button,
[type="button"],
[type="reset"],
[type="submit"] {
    -webkit-appearance: none;
    appearance: none;
    background-color: transparent;
    background-image: none;
    border: 0;
    border-radius: 0;
    color: inherit;
    font: inherit;
    line-height: inherit;
    cursor: pointer;
}

/* Accessibilité : la navigation au clavier doit rester visible.
   :focus-visible ne se déclenche pas au clic à la souris. */
button:focus-visible,
[type="button"]:focus-visible,
[type="reset"]:focus-visible,
[type="submit"]:focus-visible {
    outline: 2px solid currentColor;
    outline-offset: 2px;
}


/* ══════════════════════════════════════════════════════════════
   CSS PERSONNALISÉ DU SITE

   Ajoute ici tes règles à venir plutôt que dans « Apparence →
   Personnaliser → CSS additionnel » : ce fichier est versionné,
   lisible, et survit à tout changement de réglage.
   ══════════════════════════════════════════════════════════════ */

/* ══════════════════════════════════════════════════════════════
   HOTSPOTS : UNE RÉFÉRENCE STABLE POUR LEURS COORDONNÉES

   Les points d'un Image Hotspot sont posés en pourcentages sur un
   élément en position absolue. Exclusive Addons ne déclare jamais
   « .exad-hotspot » positionné : le bloc conteneur est donc l'ancêtre
   positionné le plus proche, c'est-à-dire le WIDGET — dont la hauteur
   dépend de la mise en page du carrousel, et donc de la hauteur de la
   fenêtre quand celle-ci est réglée en vh.

   Un même pourcentage ne désigne alors pas le même endroit de la
   photo selon l'appareil. C'est ce qui rendait le placement
   impossible à figer.

   Cette règle fait de « .exad-hotspot » — dont la boîte épouse celle
   de l'image — la référence des coordonnées. Un point placé une fois
   reste au même endroit de la photo, quelle que soit la taille de
   l'écran.

   À SAVOIR : les pourcentages portent désormais sur l'IMAGE ENTIÈRE,
   partie masquée comprise. Si une hauteur fixe en cache le bas, les
   points ne sont plaçables que dans la portion visible — un point à
   « top: 90 % » existera, mais hors champ.

   S'applique aux carrousels portant la classe « carousel-hotspots ».
   ══════════════════════════════════════════════════════════════ */
.carousel-hotspots .exad-hotspot {
    position: relative !important;
}

/* ══════════════════════════════════════════════════════════════
   EFFETS AJOUTÉS PAR LE NAVIGATEUR

   Un bouton ou un lien reçoit, sur mobile, des styles que personne
   n'a demandés : un aplat gris au moment du toucher, un contour qui
   reste après le relâchement, un fond qui persiste. Ils viennent du
   navigateur — Safari sur iOS surtout — et pas des réglages Elementor,
   ce qui les rend introuvables quand on les cherche dans l'éditeur.

   On les neutralise ici, sans toucher à ce qui sert vraiment.
   ══════════════════════════════════════════════════════════════ */

/* Le voile gris au toucher. Purement décoratif : le retour visuel
   utile, c'est ce que fait le bouton, pas un rectangle de surbrillance. */
html {
    -webkit-tap-highlight-color: transparent;
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
}

/*
 * Le contour qui reste après un toucher.
 *
 * C'est le style de focus. Le supprimer d'un bloc priverait la
 * navigation au clavier de son seul repère — on ne l'enlève donc que
 * lorsque le navigateur juge lui-même qu'il n'a pas lieu d'être,
 * c'est-à-dire au doigt et à la souris. Au clavier, :focus-visible
 * reste vrai et le contour s'affiche.
 */
:focus:not(:focus-visible) {
    outline: none !important;
    box-shadow: none !important;
}

/* Safari sur iOS habille les boutons de son propre fond, de son propre
   arrondi et de sa propre bordure dès qu'aucune règle ne s'y oppose. */
button,
[type="button"],
[type="submit"],
[type="reset"] {
    -webkit-appearance: none;
    appearance: none;
}

/*
 * Le menu contextuel du appui long, et la sélection de texte sur les
 * commandes.
 *
 * Limité aux éléments qu'on actionne : sur un titre ou un paragraphe,
 * empêcher la sélection empêcherait de copier, ce qui est une perte
 * sèche. Les icônes de fermeture, les flèches de carrousel et les
 * puces de pagination, elles, n'ont rien à faire sélectionner.
 */
.elementor-icon,
.swiper-button-next,
.swiper-button-prev,
.elementor-swiper-button,
.swiper-pagination-bullet,
.e-off-canvas__close-button,
.cbmn-burger,
.cbmn-panel__close {
    -webkit-touch-callout: none;
    -webkit-user-select: none;
    user-select: none;
}

/*
 * Le survol qui colle.
 *
 * Sur un écran tactile il n'y a pas de survol : le navigateur applique
 * quand même :hover au toucher et le laisse en place jusqu'au toucher
 * suivant. Un fond de survol reste donc allumé sur le bouton qu'on
 * vient de quitter.
 *
 * Les transitions sont coupées là où l'appareil n'a pas de vrai
 * pointeur : l'état s'installe et s'efface sans traîner, au lieu de
 * fondre pendant une demi-seconde après que le doigt est parti.
 */
@media (hover: none) {
    .elementor-icon,
    .elementor-button,
    .cbmn-row {
        transition: none !important;
    }
}
