/*
Theme Name: Hello Elementor Child
Theme URI: https://elementor.com/hello-theme/?utm_source=wp-themes&utm_campaign=theme-uri&utm_medium=wp-dash
Template: hello-elementor
Author: Elementor Team
Author URI: https://elementor.com/?utm_source=wp-themes&utm_campaign=author-uri&utm_medium=wp-dash
Description: Hello Elementor is a lightweight and minimalist WordPress theme that was built specifically to work seamlessly with the Elementor site builder plugin. The theme is free, open-source, and designed for users who want a flexible, easy-to-use, and customizable website. The theme, which is optimized for performance, provides a solid foundation for users to build their own unique designs using the Elementor drag-and-drop site builder. Its simplicity and flexibility make it a great choice for both beginners and experienced Web Creators.
Tags: accessibility-ready,flexible-header,custom-colors,custom-menu,custom-logo,featured-images,rtl-language-support,threaded-comments,translation-ready
Version: 3.4.4.1759388514
Updated: 2025-10-02 09:01:54

/*** header sticky ***/
header.elementor-location-header {
  position: fixed !important;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 9999;
}
/* ----------------------------------------------------------
   Base : variables + stacking
---------------------------------------------------------- */
header.elementor-location-header {
  /* hauteur réelle de la bannière (ajuste si besoin) */
  --banner-h: 45px;

  /* fond "wipe" vertical */
  background-image: linear-gradient(#0E1236, #0E1236);
  background-repeat: no-repeat;
  background-position: top left;
  background-size: 100% 0%;            /* 0% au départ → invisible */
  transition: background-size 0.45s ease, box-shadow 0.3s ease;
  box-shadow: none;
}

/* Le conteneur parent du header : on lui met un padding-top
   égal à la hauteur de la bannière pour la pousser sous la bannière */
header.elementor-location-header .elementor-element-3db9ab7 {
  position: relative;
  
  transition: padding-top 0.45s ease;
}

/* ----------------------------------------------------------
   Bannière 
---------------------------------------------------------- */
.elementor-element-ef08e65 {
  position: absolute;     
  top: 0; left: 0; right: 0;
  height: var(--banner-h);
  transform: translateY(0);
  opacity: 1;
  transition: transform 0.45s ease, opacity 0.45s ease;
  will-change: transform, opacity;
}

/* Position initiale du bloc menu */
header.elementor-location-header .elementor-element-b6986e2 {
  margin-top: 0; 
  transition: margin-top 0.5s ease; 
}

/* Quand on scrolle */
header.elementor-location-header.scrolled .elementor-element-b6986e2 {
  margin-top: -45px; 
}

/* ----------------------------------------------------------
   État scrolled
   - la bannière remonte de 45px et s’estompe
   - le contenu (menu) remonte car le padding-top du parent passe à 0
   - le fond du header se "remplit" du haut vers le bas (background-size)
---------------------------------------------------------- */
header.elementor-location-header.scrolled .elementor-element-3db9ab7 {
  padding-top: 0;
}

header.elementor-location-header.scrolled .elementor-element-ef08e65 {
  transform: translateY(-45px);
  opacity: 0;
}

header.elementor-location-header.scrolled {
  background-size: 100% 100%;           /* remplissage vertical */
  box-shadow: 0 6px 20px rgba(0,0,0,0.08); /* optionnel */
}
/* Wrapper du logo : pas de contraintes bizarres */
header.elementor-location-header .elementor-element.elementor-element-ec967bd,
header.elementor-location-header .elementor-element.elementor-element-ec967bd .elementor-widget-container,
header.elementor-location-header .elementor-element.elementor-element-ec967bd a {
  display: inline-flex;
  align-items: center;
}
@media (max-width: 1024px) {
        header.elementor-location-header .elementor-element.elementor-element-ec967bd img {
			width: 200px!important ; 
		}
}
/* État initial : largeur de départ + transition */
header.elementor-location-header .elementor-element.elementor-element-ec967bd img {
  width:250px ;  /* mets ici la vraie largeur de départ */
  height: auto;
  max-width: none;          /* évite un max-width:100% qui bloque */
  transition: width 0.45s ease !important;
  display: block;
}

/* Au scroll : passe à 220px en douceur */
header.elementor-location-header.scrolled .elementor-element.elementor-element-ec967bd img {
  width: 170px !important;
}
header.elementor-location-header.scrolled .elementor-element.elementor-element-56aa776 .elementor-icon svg,
header.elementor-location-header.scrolled .elementor-element.elementor-element-2300de4 .elementor-icon svg {
  width: 20px !important;
  height: 30px !important;
  max-width: none !important;
  max-height: none !important;
  transition: all 0.4s ease;
}
.elementor-element.elementor-element-dbc78a2 {
  transition: height 0.4s ease, padding 0.4s ease;
}
.elementor-element.elementor-element-1e923f2 {
  transition: padding 0.3s ease;
}
.elementor-nav-menu--main.e--pointer-none {
  pointer-events: auto !important;
}
/* État au scroll */
header.elementor-location-header.scrolled 
.elementor-element.elementor-element-1e923f2 {
  padding: 0 !important;
}

/* État au scroll */
header.elementor-location-header.scrolled .elementor-element.elementor-element-dbc78a2 {
 min-height: 0 !important;
  height: 45px !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  transition: height 0.4s ease;
}
/* ------- État normal ------- */

/* Ceux qui ont seulement un padding-bottom */
header.elementor-location-header 
.elementor-element.elementor-element-1e923f2,
header.elementor-location-header 
.elementor-element.elementor-element-b6986e2 {
  padding-bottom: 10px;
  transition: padding 0.4s ease;
}

/* Ceux qui ont un padding complet */
header.elementor-location-header 
.elementor-element.elementor-element-89ab1a0,
header.elementor-location-header 
.elementor-element.elementor-element-3af8326 {
  padding: 10px;
  transition: padding 0.4s ease;
}

/* ------- État au scroll ------- */

/* On supprime le padding-bottom */
header.elementor-location-header.scrolled 
.elementor-element.elementor-element-1e923f2,
header.elementor-location-header.scrolled 
.elementor-element.elementor-element-b6986e2 {
  padding-bottom: 0;
}

/* On supprime le padding complet */
header.elementor-location-header.scrolled 
.elementor-element.elementor-element-89ab1a0,
header.elementor-location-header.scrolled 
.elementor-element.elementor-element-3af8326 {
  padding: 0;
}
/* Transition fluide */
.elementor-element.elementor-element-3af8326 {
  transition: 
    padding 0.4s ease,
    var(--e-search-input-padding-block-start) 0.4s ease,
    var(--e-search-input-padding-block-end) 0.4s ease;
}

/* État au scroll */
header.elementor-location-header.scrolled 
.elementor-element.elementor-element-3af8326 {
  --e-search-input-padding-block-start: 10px !important;
  --e-search-input-padding-block-end: 10px !important;
}
/* Transition fluide de la taille du texte */
.elementor-element.elementor-element-204b805 .elementor-nav-menu .elementor-item {
  transition: font-size 0.3s ease;
}

/* État au scroll */
header.elementor-location-header.scrolled 
.elementor-element.elementor-element-204b805 .elementor-nav-menu .elementor-item {
  font-size: 20px !important;
}

/* --------- BOX --------- */
/* État normal */
.elementor-102 .elementor-element.elementor-element-dbc78a2 {
  height: 65px !important;
  transition: min-height 0.4s ease;
}

/* État scrolled */
header.elementor-location-header.scrolled 
.elementor-102 .elementor-element.elementor-element-dbc78a2 {
  min-height: 50px !important;
}
.elementor-102 .elementor-element.elementor-element-1e923f2 {
  transition: height 0.4s ease;
}

/* Hauteur réduite au scroll */
header.elementor-location-header.scrolled 
.elementor-element.elementor-element-1e923f2 {
  height: 50px !important;
}
.help-box .help-header {
  transition: padding 0.3s ease;
}

/* Au scroll */
header.elementor-location-header.scrolled .help-box .help-header {
  padding-top: 10px !important;
}

.elementor-102 .elementor-element.elementor-element-56aa776 .elementor-icon svg,
.elementor-102 .elementor-element.elementor-element-2300de4 .elementor-icon svg {
  width: 30px !important;
  height: 30px !important;
  max-width: none !important;
  max-height: none !important;
  transition: all 0.4s ease;
}
.elementor-menu-cart__toggle_button{
	padding:0!important;
}
/* Réduit les icônes SVG au scroll dans le header */
header.elementor-location-header.scrolled 
.elementor-102 .elementor-element.elementor-element-56aa776 .elementor-icon svg,
header.elementor-location-header.scrolled 
.elementor-102 .elementor-element.elementor-element-a1d5e18 .elementor-menu-cart__toggle_button svg {
  width: 20px !important;
  height: 20px !important;
}
header.elementor-location-header.scrolled svg {
  width: 20px !important;
  height: 20px !important;
}
.svg-yellow svg rect{
	fill: #CEFF00!important;
}



/* Empêche des débordements visuels pendant l’anim */
header.elementor-location-header { overflow: visible; }

/* Si le menu burger s’ouvre, on force le fond plein pour la lisibilité  */
header.elementor-location-header:has(.elementor-menu-toggle[aria-expanded="true"]) {
  background-size: 100% 100%;
}

/***hover icone boutons***/
.elementor-button:hover .elementor-button-icon svg rect,
.elementor-button:hover .elementor-button-icon svg path{
  fill: #CEFF00!important; /* couleur au hover */
}
/*** enlever titre de page ***/
h1.entry-title {
  display: none !important;
}
/*** centre les élément du header ***/
.elementor-element-8e1dc2e{
	justify-content:center!important;
	align-items:center!important;
}
/*************************************/
/***custom input recherche ***/
.elementor-102 .elementor-element.elementor-element-3af8326 .e-search-submit{
	margin-left:0px!important;
}
.elementor-widget-search .e-search-input{
	border-color:white!important;
}

/*** Boutons besoin d'aide menu ***/

/* Style par défaut */
.help-box {
  width: 160px;
  height: 70px;
  background: #1a00ff;
  color: #fff;
  padding: 10px;
  border-radius: 5px;
  cursor: pointer;
  position: relative;
  text-align: center;
  font-family: 'Akzidenz-Grotesk Next', sans-serif !important;
  transition: all 0.4s ease;
  display: flex;
  flex-direction: column;
  justify-content: center;
}



/* Numéro avec transition douce */
.help-box .help-number {
  transition: opacity 0.3s ease, visibility 0.3s ease;
}

/* Flèche par défaut */
.help-box .arrow {
  display: inline-block;
  font-size: 12px;
  margin-top: 4px;
  transition: all 0.3s ease;
}

/* --- ÉTAT AU SCROLL --- */
header.elementor-location-header.scrolled .help-box {
  height: 45px !important;
  transition: all 0.4s ease;
}

/* Cache le numéro */
header.elementor-location-header.scrolled .help-box .help-number {
  opacity: 0;
  visibility: hidden;
  height: 0;
  margin: 0;
}
.help-header {
  font-size: 14px;
  line-height: 1.4;
}

.help-header .dashicons {
  color: #aaff00;
  margin-right: 5px;
}

.help-number {
  display: block;
  margin-top: 2px;
  font-size: 15px;
}

.arrow {
  display: block;
  margin-top: 5px;
  font-size: 14px;
  transition: transform 0.3s ease;
}

.help-content {
  position: absolute;
  left: 0;
  top: 100%; /* en dessous du bouton */
  width: 100%;
  background: #1a00ff;
  border-radius: 0 0 5px 5px;
  overflow: hidden;
  max-height: 0;
  transition: max-height 0.4s ease-in-out;
  text-align: center;
  z-index: 999;
}

.help-content a {
  display: block;
  color: #fff;
  text-decoration: none;
  padding: 8px 0;
  font-size: 14px;
}

/* Effet au survol */
.help-box:hover .help-content {
  max-height: 200px; /* déroulement fluide */
}

.help-box:hover .arrow {
  transform: rotate(180deg);
}
/* --- Base Hotspot --- */
.hotspot-container {
  position: relative;
  display: inline-block;
}

.hotspot-container img {
  max-width: 100%;
  height: auto;
  display: block;
}

.hotspot {
  position: absolute;
  width: 25px;
  height: 25px;
  background: #1c00ff;
  border-radius: 50%;
  cursor: pointer;
  transform: translate(-50%, -50%);
  box-shadow: 0 0 0 rgba(28, 0, 255, 0.6);
  animation: pulse 2s infinite;
  border: solid 2px white !important;
}

@keyframes pulse {
  0% { box-shadow: 0 0 0 0 rgba(28, 0, 255, 0.6); }
  70% { box-shadow: 0 0 0 20px rgba(28, 0, 255, 0); }
  100% { box-shadow: 0 0 0 0 rgba(28, 0, 255, 0); }
}

/* --- Popup --- */
.hotspot-popup {
  position: absolute;
  max-width: 360px !important;
  padding: 20px 25px;
  background: #1c00ff;
  color: #fff;
  border-radius: 8px;
  font-family: 'Akzidenz-Grotesk Next', sans-serif !important;
  font-size: 1.1em;
  line-height: 1.4;
  z-index: 1001;
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.25);
  opacity: 0;
  transform: translateY(10px);
  pointer-events: none;
  transition: opacity 0.35s ease, transform 0.35s ease;
}

/* Visible (activé par JS) */
.hotspot-popup.show {
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
}

/* --- Bouton de fermeture --- */
.hotspot-popup .close-popup {
  position: absolute;
  top: 8px;
  right: 10px;
  background: none;
  border: none;
  color: #fff;
  font-size: 22px;
  font-weight: 600;
  line-height: 1;
  cursor: pointer;
  z-index: 1002; /* pour qu'elle soit toujours au-dessus */
}
.hotspot-popup .close-popup:hover {
  opacity: 0.8;
  transform: scale(1.1);
  transition: 0.2s ease;
}
/* --- Responsive : mobile --- */
@media (max-width: 768px) {
 .hotspot-popup {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    max-width: 85%;
    width: 85%;
    z-index: 1001;
    opacity: 0;
    transition: opacity 0.35s ease;
	padding-top: 35px;
  }

  .hotspot-popup.show {
    opacity: 1;
  }

  /* Overlay (fond sombre derrière la popup) */
  .hotspot-overlay {
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.5);
    z-index: 1000;
  }

  .hotspot-overlay.active {
    display: block;
  }

  /* Option : ajoute un fond sombre derrière la popup */
  .hotspot-container::after {
    content: "";
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.5);
    z-index: 900;
  }

  .hotspot-container.popup-open::after {
    display: block;
  }
}

/*** arrow rotate and color ***/
.arrow-home:hover{
    transform: rotate(-30deg);
}
.arrow-blue svg path{
    fill:#0E1236!important;
}
/*** footer ***/
.elementor-element-945e991 .elementor-field-type-checkbox.elementor-field-group.elementor-column.elementor-field-group-checkboxnews.elementor-col-80{
	font-size:.6em!important;
}
.elementor-element-945e991 .elementor-field-type-checkbox.elementor-field-group.elementor-column.elementor-field-group-checkboxnews.elementor-col-80{
	width:85%!important;
}
.elementor-element-945e991 .elementor-field-group.elementor-column.elementor-field-type-submit.elementor-col-100.e-form__buttons{
	width:15%!important;
}
#rideal-logo-vertical {
  overflow: visible !important;
  overflow-clip-margin: unset !important;
  width: auto !important;
  height: auto !important;
  max-width: 100% !important;
}
footer .elementor-nav-menu--main .elementor-item{
	text-align:center;
}
footer a {
	color:white!important;
}
/*******************************************************************/

/* === Thème visuel global Rideal pour WooCommerce === */
body.woocommerce,
body.woocommerce-page,
body.woocommerce-cart,
body.woocommerce-checkout,
body.woocommerce-account,
body.single-product {
  --rideal-blue: #1C00FF;
  --rideal-blue-dark: #181E5A;
  --rideal-yellow: #CEFF00;

  color: #181E5A;
  background-color: #f8f8f8;
  font-family: 'Poppins', sans-serif;
}

/* Boutons */
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.single_add_to_cart_button {
  background: var(--rideal-blue);
  color: #fff;
  border-radius: 8px;
  padding: 0.9rem 1.8rem;
  font-weight: 600;
  border: none;
  transition: background 0.2s;
}

.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.single_add_to_cart_button:hover {
  background: var(--rideal-blue-dark);
}

/* Prix et textes */
.woocommerce div.product p.price,
.woocommerce div.product span.price {
  color: var(--rideal-blue-dark);
  font-size: 1.4rem;
  font-weight: 600;
}

/* Bordures et cartes */
.woocommerce div.product,
.woocommerce-cart table.shop_table,
.woocommerce-checkout form.checkout {
  background: #fff;
  border-radius: 1rem;
  box-shadow: 0 4px 20px rgba(0,0,0,0.05);
  padding: 2rem;
}


.page-id-444 header.elementor-location-header {
  background: #0E1236 !important;
  background-image: none !important;
}
.page-id-442 header.elementor-location-header{
  background: #0E1236 !important;
  background-image: none !important!
}
:root {
  --rideal-header-height: 120px;
}

/* Empêche le contenu WooCommerce de passer sous le header */
body.woocommerce,
body.woocommerce-page,
body.woocommerce-cart,
body.woocommerce-checkout,
body.woocommerce-account,
body.single-product {
  padding-top: 220px; /* ajuste selon la hauteur réelle de ton header */
}

@media (max-width: 900px) {
  body.woocommerce,
  body.woocommerce-page,
  body.woocommerce-cart,
  body.woocommerce-checkout,
  body.woocommerce-account,
  body.single-product {
    padding-top: 80px; /* version mobile */
  }
}
/* Appliquer un fond au header sur TOUTES les pages WooCommerce */
body.woocommerce header.elementor-location-header,
body.woocommerce-page header.elementor-location-header,
body.woocommerce-cart header.elementor-location-header,
body.woocommerce-checkout header.elementor-location-header,
body.woocommerce-account header.elementor-location-header,
body.single-product header.elementor-location-header {
  background: #0E1236 !important;
  background-image: none !important;

}
/* ---- Styles uniquement pour les pages produits ---- */
.single-product h1.entry-title {
    /* Ton style ici */
   display:block!important;
}
/* Bloc double prix (HT + TTC) */
.double-prix {
  display: flex;
  align-items: center;
  gap: 15px;
  margin: 15px 0;
}

/* Prix HT */
.double-prix .prix-ht {
  font-size: 40px;
  font-weight: 600;
  color: #000;
}

.double-prix .prix-ht .ht-label {
  font-size: 14px;
  color: #555;
  margin-left: 3px;
}

/* Prix TTC */
.double-prix .prix-ttc {
  background: #CEFF00; 
  color: #000;
  font-weight: 800;
  font-size: 60px;
  padding: 5px 15px;
  border-radius: 3px;
}

.double-prix .prix-ttc .ttc-label {
  font-size: 16px;
  font-weight: 600;
  margin-left: 4px;
  color: #000;
}

/* --- WRAPPER GLOBAL --- */
.single-product form.cart {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 15px;
}

/* --- CHAMP QUANTITÉ --- */
.single-product .quantity {
  display: flex;
  align-items: center;
  background: #E5E5E5!important;
  border-radius: 4px!important;
  overflow: hidden;
  padding:5px!important;
}

.single-product .quantity input.qty {
  width: 80px;
  text-align: center;
  border: none;
  background: transparent;
  font-size: 18px;
  font-weight: 600;
  color: #111;
  padding: 10px 0;
}

/* Supprimer flèches par défaut */
.single-product .quantity input.qty::-webkit-inner-spin-button,
.single-product .quantity input.qty::-webkit-outer-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

/* --- BOUTONS +/- --- */
.single-product .quantity button {
  background: transparent!important;
  border: none!important;
  font-size: 27px;
  color: #1C00FF!important;
  cursor: pointer;
  padding:10px!important;
  font-weight: bold;
  transition: 0.2s ease;
}



/* --- BOUTON AJOUTER AU PANIER --- */
.single-product button.single_add_to_cart_button {
  background: #1C00FF;
  color: #fff;
  border: none!important;
  font-size: 16px;
  font-weight: 600;
  padding: 14px 55px;
  border-radius: 4px;
  display: flex;
  align-items: center;
  gap: 8px;
  transition: background 0.3s ease;
}

.single-product button.single_add_to_cart_button:hover {
  background: #1C00FF;
}

/* Icône éventuelle dans le bouton */
.single-product button.single_add_to_cart_button::before {
  content: "";
  display: inline-block;
  width: 22px;
  height: 22px;
  background: url("https://preprod.ridealfermetures.fr/wp-content/uploads/2025/10/rideal-ajout-au-panier.svg") no-repeat center;
  background-size: contain;
}
.single_add_to_cart_button{
    flex-basis: auto;
    width: 60%;
    display: flex;
    flex-direction: row;
    justify-content: center;
}
@media screen and (min-width: 900px) and (max-width: 1280px) {
  /* Prix HT */
.double-prix .prix-ht {
  font-size: 20px!important;
}

/* Prix TTC */
.double-prix .prix-ttc {

  font-size: 40px!important;
}
}
@media screen and (max-width: 767px) {
	.double-prix{
		flex-direction:column!important;
		align-items:baseline!important;
	}
	  /* Prix HT */
.double-prix .prix-ht {
  font-size: 20px!important;
}

/* Prix TTC */
.double-prix .prix-ttc {

  font-size: 40px!important;
}
	body.single-product button.single_add_to_cart_button {
    position: relative;
    text-indent: -9999px; /* cache le texte */
    width: 60px;
    height: 53px;
    padding: 0;
    border-radius: 50%;
    justify-content: center;
  }

  body.single-product button.single_add_to_cart_button::before {
    text-indent: 0;
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    width: 28px;
    height: 28px;
  }
}