/* 
Theme Name: Profila
Theme URI: https://profila.fr/
Description: Thème Profila
Author: Eteam
Author URI: https://eteam.fr
Template: hello-elementor
Version: 2.0.0
Text Domain: hello-elementor-child
License: GNU General Public License v3 or later.
License URI: https://www.gnu.org/licenses/gpl-3.0.html
*/

/* Add your custom styles here */

/* ============================================
   GLOBAL / RESET
   ============================================ */

body, html{
    overflow-x:hidden;
    margin: 0;
    /*overscroll-behavior-y: none;*/
}

button:focus,button:focus-visible{outline: 0!important;}
.elementor-icon{vertical-align:bottom!important;}

a, a:hover{color:inherit;}
b, strong{font-weight:bold;}

ul li{
    margin-bottom: 1em;
}

.elementor-popup-modal .dialog-message{
    overflow: visible!important;
}

/*animation des éléments*/
a, a:hover, button, a::after, button, button:hover, input, input:hover, header svg, header span.elementor-heading-title,
header .elementor-sticky--active, .scalehover, .scalehover:hover,
.elementor-button svg{
    -webkit-transition-property: all !important;
    -o-transition-property: all !important;
    transition-property: all !important;
    -webkit-transition-duration: 0.2s!important;
    -o-transition-duration: 0.2s!important;
    transition-duration: 0.2s!important;
    -webkit-transition-timing-function: ease-in-out !important;
    -o-transition-timing-function: ease-in-out !important;
    transition-timing-function: ease-in-out !important;
}

/*.reveal-blur*/
body.reveal-active .reveal-blur {
  filter: blur(10px);
  opacity: 0;
  transform: translate(0, 100px);
  transition: filter 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94),
              opacity 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94),
              transform 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

body.reveal-active .reveal-blur.is-visible {
  filter: none;
  opacity: 1;
  transform: none;
}

/* ============================================
   VARIABLES & COULEURS
   ============================================ */
.svgwhite svg *{
    fill:white
}

.txtrouge{
	color:var(--rouge);
}

.txtbleu{
	color:var(--bleu);
}

/* ============================================
   CLASSES & ELEMENTS RÉUTILISABLES
   ============================================ */

.nocursor {pointer-events: none;}
.hidden{display:none!important}
.pnomargin p{margin-top:0;}

.nostylelist ul {
    list-style: none;
    padding: 0;
    margin:0;
}

.inlinelist ul{
	list-style: none;
	padding:0;
	margin:0;
	display:flex;
	gap:1em;
}

.inlinelist ul li{
	padding:0;
	margin:0;
}

.txtbalanced {
  text-wrap: balance;
}

.visiblelink a{
	text-decoration:underline;
	color:var(--bleu);
}

.visiblelink a:hover{
	background-color:rgba(14,85,160,.2)
}

/*Overflow Visible Swiper*/
.swipernooverflow .swiper{
	overflow:visible;
}

.swipernooverflow .swiper-slide {
  transition: opacity 0.3s ease;
}

.swipernooverflow .swiper-slide-prev {
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s ease;
}

.icon-box-chiffre .elementor-icon-box-title{
	margin:0;
}

/*responsive rules*/
@media screen and (max-width:767px){.nomobile{display:none;}}
@media screen and (max-width:1023px){.notablet{display:none;}}
@media screen and (min-width:1024px){.nodesktop{display:none;}}

.scalehover:hover{
    -webkit-transform: scale(1.05);
        -ms-transform: scale(1.05);
            transform: scale(1.05);
}

/*Plugin Job Alert*/

.job-alert-form, .job-alert-field {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.job-alert-input,
.job-alert-select {
    padding: 0.75rem!important;
    border: 1px solid #ccc!important;
    border-radius: 5px!important;
    font-size: 1rem!important;
    color:var(--e-global-color-text);
}

@media (max-width:1024px){
   .ja-location-field{
    flex-direction: row!important;
    }
}

@media (max-width: 768px) {
    .ja-radius {
        min-width: auto;
        width: inherit!important;
    }
    
    .ja-location-wrapper{
        margin-bottom: 0!important;
    }
}


.ja-location-search{
    width:100%;
}

.job-alert-form *::placeholder{
    opacity: 1!important;
    color: var(--e-global-color-text)
}

.job-alert-input:focus,
.job-alert-select:focus {
    outline: none;
    border-color: var(--rouge)!important;
}

.job-alert-submit {
    padding: 1rem 2rem;
    background-color: var(--rouge)!important;
    color: white;
    border: none!important;
    font-size: 1rem;
    cursor: pointer;
    margin-top: 0.5rem;
    width: 100%;
}

.job-alert-submit:hover {
    background: var(--noir)!important;
}

.job-alert-response {
    margin-top:0.5em;
    padding: 0.5rem;
    border-radius: 10px;
}

.job-alert-response-success {
    text-align: center;
    background: var(--Vert);
    color: var(--Blanc);
}

.job-alert-response-error {
    background: var(--Rouge);
    color: var(--Blanc);
}

.job-alert-field-error {
    border-color: #dc3545 !important;
}


/* ============================================
   HEADER
   ============================================ */
.header-nav .sub-arrow svg{
	margin-top:5px;
}

.header-nav .sub-menu{
    padding: 10px!important;
}

.header-nav .sub-menu a{
    border-radius: 50px!important;
	position: relative;
	display: flex;
    align-items: center;
    gap: 2em;
}

/* ::before = le cercle, positionné en absolu à droite */
.elementor-nav-menu .sub-menu a::before {
    content: '';
    position: absolute;
    right: 11px;
    top: 50%;
    transform: translateY(-50%);
    width: 36px;
    height: 36px;
    border-radius: 50%;
    border: 1px solid currentColor;
    box-sizing: border-box;
    opacity: 0;
    transition: opacity 0.2s;
}

.elementor-nav-menu .sub-menu a:hover::before {
    opacity: 1;
}

/* ::after = la flèche SVG uniquement */
.elementor-nav-menu .sub-menu a::after {
    content: '';
    display: inline-flex;
    flex-shrink: 0;
    margin-left: auto;
    width: 18px;
    height: 16px;
    background-color: currentColor;
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg width='67' height='61' viewBox='0 0 67 61' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M32.8301 1.20332C34.4467 -0.401513 37.0681 -0.4007 38.6853 1.20332L65.0375 27.3634C66.654 28.9687 66.6543 31.5708 65.0375 33.1759L38.6853 59.336C37.0683 60.9393 34.4466 60.9401 32.8301 59.336C31.2136 57.7313 31.2148 55.1289 32.8301 53.5235L52.1141 34.3801H4.14066C1.85417 34.3801 0.000546237 32.5393 0 30.2696C0 27.9995 1.85384 26.1592 4.14066 26.1592H52.1141L32.8301 7.01578C31.2145 5.41061 31.214 2.80819 32.8301 1.20332Z' fill='currentColor'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg width='67' height='61' viewBox='0 0 67 61' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M32.8301 1.20332C34.4467 -0.401513 37.0681 -0.4007 38.6853 1.20332L65.0375 27.3634C66.654 28.9687 66.6543 31.5708 65.0375 33.1759L38.6853 59.336C37.0683 60.9393 34.4466 60.9401 32.8301 59.336C31.2136 57.7313 31.2148 55.1289 32.8301 53.5235L52.1141 34.3801H4.14066C1.85417 34.3801 0.000546237 32.5393 0 30.2696C0 27.9995 1.85384 26.1592 4.14066 26.1592H52.1141L32.8301 7.01578C31.2145 5.41061 31.214 2.80819 32.8301 1.20332Z' fill='currentColor'/%3E%3C/svg%3E");
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-size: contain;
    mask-size: contain;
    -webkit-mask-position: center;
    mask-position: center;
}

/* ============================================
   FOOTER
   ============================================ */

.footer-links h3{
	margin:0 0 1em 0;
}

.footer-links ul{
	margin:0;
	padding:0;
	list-style:none;
	display:flex;
	flex-direction:column;
	gap:0.7em;
}

.footer-links ul li{
	margin:0;
	padding:0;
}


/* ============================================
   HOME
   ============================================ */
.location_search_home .wpgb-geo-radius{
	display:none!important;
}

.location_search_home .wpgb-geolocation-input .wpgb-input[type="search"]{
	border-color:rgba(14, 81, 160, 0.2)!important;
}

.bout_search_home button{
	text-indent: -99999px;
    background: url('https://4e74dtcdrph.preview.infomaniak.website/wp-content/uploads/2026/07/icon_search.svg') no-repeat center center;
	background-size:40px;
	border-radius:100px!important;
    width: 70px;
    height: 70px!important;
}
@media (max-width:767px){
.bout_search_home button{
	text-indent: 0;
    background-image:none;
	border-radius:24px!important;
    width: 100%;
    height: 50px!important;
}
}


/* ============================================
   PAGE DES OFFRES
   ============================================ */

/* BOUTONS FAVORIS */

/* Cacher le texte */
.fj-favorite-button .fj-button-text {
    display: none;
}

/* Styles du bouton */
.fj-favorite-button {
    width: 45px;
    height: 45px;
    border-radius: 50%;
    border: none;
    background: var(--blanc)!important;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.15);
    cursor: pointer;
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    font-size: 25px!important; /* Taille du picto */
}

/* Cœur #D4D2CF - NON FAVORI */
.fj-favorite-button::before {
    content: '★';
    color: var(--gris);
    transition: all 0.3s ease;
}

/* État hover - non favori (optionnel) */
.fj-favorite-button:hover {
    transform: scale(1.1);
}

/* État ACTIF - En favori */
.fj-favorite-button.fj-is-favorite {
    background: var(--rouge)!important;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3)!important;
}

.fj-favorite-button.fj-is-favorite::before {
    color: var(--blanc)!important; /* Cœur blanc */
}

/* Animation au clic */
.fj-favorite-button:active {
    transform: scale(0.95);
}

/* État loading */
.fj-favorite-button.fj-loading {
    opacity: 0.6;
    pointer-events: none;
}

.fj-favorite-button.fj-loading::before {
    animation: pulse 1s ease-in-out infinite;
}

@keyframes pulse {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.5; }
}

/*Liste des favoris*/
.fj-favorites-list-inner{
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.fj-favorite-item{
    background: white;
    border-radius: 10px;
    padding: 1em;
    box-shadow: 0 10px 60px rgba(0,0,0,.3);
}

.fj-favorite-item .fj-favorite-title{
    margin: 0;
    font-size: 1rem;
}

.fj-favorite-item .fj-favorite-date{
    font-size: 0.8rem;
    color:var(--noir);
    font-style: italic;
}

.fj-favorite-item .fj-favorite-actions{
    margin-top:5px;
}

.fj-favorite-item .fj-favorite-link{
    padding: 0 10px;
    background: #CCC;
    border-radius: 50px;
    margin-right:5px;
    font-size: 0.9rem;
}

.fj-favorite-item .fj-favorite-link:hover{
    background: var(--bleu);
    color:white;
}

.fj-favorite-item .fj-remove-favorite{
    padding: 0 10px;
    font-weight: 400;
    font-size: 0.9rem;
	cursor:pointer;
}

.fj-favorite-item .fj-remove-favorite:hover{
    background-color:var(--rouge);
	color:var(--blanc);
}

.fj-clear-button{
    width: 100%!important;
	background-color:var(--rouge);
	color:var(--blanc);
    cursor: pointer;
}

.fj-clear-button:hover{
	background-color:var(--rouge-fonce);
	color:var(--blanc);
    cursor: pointer;
}

.fj-no-favorites{
	text-align:center;
}

/*LISTE DES OFFRES*/
.wpgb-wrapper{
    left:0!important;
    width: 100%!important;
}

.boucle_offre_card{
    background: white;
    border-radius: 24px;
    padding:1.2em!important;
    box-shadow: 0 20px 60px 0 rgba(0, 0, 0, 0.10)!important;
}

.boucle_offre_card:hover{
    box-shadow: 0 20px 80px 0 rgba(0, 0, 0, 0.20)!important;
}

.wp-grid-builder .wpgb-card:hover {
    z-index: 0!important;
}

.boucle_offre_date{
    font-size: 0.8rem!important;
    font-style: italic;
}

.boucle_offre_title{
    font-size: 1.2rem!important;
    font-weight: 400!important;
    margin-top:5px!important;
	color:var(--bleu)!important;
}

.boucle_offre_localisation,
.boucle_offre_contrat,
.boucle_offre_metier{
    font-size: 0.9rem!important;
    padding: 4px 12px 6px 12px!important;
    border-radius:50px;
    color: var(--bleu-fonce)!important;
}

.boucle_offre_localisation{
    background: var(--gris-clair);
}

.boucle_offre_contrat{
    background: rgba(14,81,160,.18);
}

.boucle_offre_apply{
    color: var(--rouge)!important;
    background-color: var(--blanc)!important;
    border-radius: 50px!important;
    padding:10px 24px!important;
	border:1px solid var(--rouge)!important;
}

.boucle_offre_apply:hover{
    background-color: var(--rouge)!important;
    transform: scale(1.1)!important;
	color: var(--blanc)!important;
}

.boucle_offre_favorite{
	display: flex!important;
	align-items: center;
	height: 100%;
}

/*Map des offres*/
.map_offres .wpgb-map-facet{
    height: calc(100dvh - 120px);
	border-radius:20px;
}

@media (max-width:767px){
   .map_offres .wpgb-map-facet{
    height: 300px;
    }
}

/* Halo en onde infinie au survol de la card dans la grille */
@keyframes wpgb-halo {
  0%   { transform: translate(-50%, -50%) scale(0.4); opacity: 0.6; }
  100% { transform: translate(-50%, -50%) scale(6); opacity: 0; }
}

.wpgb-marker-highlighted::before,
.wpgb-marker-highlighted::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: rgba(217, 113, 23, 0.7);
  transform: translate(-50%, -50%) scale(0.4);
  pointer-events: none;
  z-index: -1;
  animation: wpgb-halo 1.2s ease-out infinite;
}

/* Le second cercle, décalé dans le temps, crée l'effet d'ondes successives */
.wpgb-marker-highlighted::after {
  animation-delay: 0.6s;
}


/* ============================================
   TEMPLATE D'UNE OFFRE
   ============================================ */

/*Formualaire de candidature*/
.apply_form label:not(label[for="form-field-cv"], label[for="form-field-rgpd"]){
	display:none;
}

.apply_form .elementor-field-group-rgpd{
	margin-top:1em;
	margin-bottom:1em;
}

.apply_form label[for="form-field-rgpd"]{
	font-size:0.8rem;
}

.apply_form #form-field-cv{
    width: 100%;
    padding: 8px;
    background: url('/wp-content/uploads/2026/06/folder_white.svg') no-repeat right 15px center #FFFFFF33;
    background-size: 30px;
}

.apply_form #form-field-cv::file-selector-button {
  background-color: var(--rouge);
  color: white;
  border: none;
  padding: 8px 16px;
  border-radius: 50px;
  cursor: pointer;
  transition: background-color 0.2s ease;
}

.apply_form #form-field-cv::file-selector-button:hover {
  background-color: var(--rouge-fonce);
}