/* ===== Charte Villa Victoria — navy / blanc ===== */
:root{
 --primary-color:#0F1F34; --primary-color-rgb:15,31,52;
 --secondary-color:#162C4A; --secondary-color-rgb:22,44,74;
 --third-color:#0F1F34; --third-color-rgb:15,31,52;
 --fourth-color:#DBE3EE; --fourth-color-rgb:219,227,238;
 --body-bg-color:#FFFFFF; --body-bg-color-rgb:255,255,255;
 --body-text-color:#5A6676; --body-text-color-rgb:90,102,118;
 --vv-navy:#0F1F34; --vv-navy-2:#162C4A; --vv-mist:#F5F7FA; --vv-line:#DBE3EE;
}
body{background-color:#FFFFFF;color:#5A6676;}
h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{color:#0F1F34;}
.pxl-heading .pxl-item--subtitle,.pxl-item--subtext{color:#A85B16;}
a{color:#0F1F34;} a:hover{color:#162C4A;}

/* boutons */
.pxl-button .pxl--text-wrap,.btn-default .pxl--text-wrap{background-color:#0F1F34;color:#fff;}
.pxl-button:hover .pxl--text-wrap,.btn-default:hover .pxl--text-wrap{background-color:#162C4A;}
.btn-outline .pxl--text-wrap{border-color:#0F1F34;color:#0F1F34;}
.btn-outline:hover .pxl--text-wrap{background-color:#0F1F34;color:#fff;}
input[type=submit],button[type=submit],.button{background-color:#0F1F34;border-color:#0F1F34;color:#fff;}
input[type=submit]:hover,button[type=submit]:hover,.button:hover{background-color:#162C4A;border-color:#162C4A;}

/* accents */
.pxl-icon-box .pxl-item--icon svg path[fill]{fill:#0F1F34;}
.pxl-icon-box .pxl-item--icon svg path[stroke]{stroke:#0F1F34;}
.pxl-swiper-arrow,.pxl-swiper-dots span{border-color:rgba(15,31,52,.25);color:rgba(15,31,52,.6);}
.pxl-swiper-dots span.swiper-pagination-bullet-active{background-color:#0F1F34;}
.pxl-accordion .accordion-title{color:#0F1F34;}
.pxl-accordion .accordion-item.active .accordion-title{color:#162C4A;}

/* =========================================================
 HEADER — fond navy, contenu blanc
 ========================================================= */
.pxl-header-elementor-main,
.pxl-header-elementor-main .pxl-header-content,
.pxl-header-elementor-main .elementor-section,
.pxl-header-elementor-main .e-con,
.pxl-header-elementor-sticky,
.pxl-header-elementor-sticky .pxl-header-content,
.pxl-header-elementor-sticky .e-con,
.pxl-header-main{
 background-color:#0F1F34 !important;
}
.pxl-header-elementor-main,.pxl-header-elementor-sticky{border-bottom:1px solid rgba(255,255,255,.12);}

/* textes et liens du header */
.pxl-header-elementor-main, .pxl-header-elementor-sticky,
.pxl-header-elementor-main .pxl-text-editor, .pxl-header-elementor-sticky .pxl-text-editor,
.pxl-header-elementor-main .elementor-widget-text-editor, .pxl-header-elementor-sticky .elementor-widget-text-editor{
 color:#FFFFFF;
}
.pxl-header-elementor-main a, .pxl-header-elementor-sticky a,
.pxl-header-menu .pxl-menu-primary li a,
.pxl-header-menu-scroll a{ color:#FFFFFF !important; }
.pxl-header-menu .pxl-menu-primary li a:hover,
.pxl-header-elementor-main a:hover, .pxl-header-elementor-sticky a:hover{ color:#DBE3EE !important; }

/* sous-menus */
.pxl-menu-primary .sub-menu{background-color:#0F1F34;border:1px solid rgba(255,255,255,.14);}
.pxl-menu-primary .sub-menu li a{color:rgba(255,255,255,.85) !important;}
.pxl-menu-primary .sub-menu li a:hover{color:#FFFFFF !important;background-color:rgba(255,255,255,.07);}

/* icônes, burger, recherche, panier */
.pxl-header-elementor-main svg path[fill]:not([fill="none"]),
.pxl-header-elementor-sticky svg path[fill]:not([fill="none"]){fill:#FFFFFF;}
.pxl-header-elementor-main svg path[stroke]:not([stroke="none"]),
.pxl-header-elementor-sticky svg path[stroke]:not([stroke="none"]){stroke:#FFFFFF;}
.pxl-header-elementor-main .pxl-icon i,.pxl-header-elementor-sticky .pxl-icon i,
.pxl-header-elementor-main [class^="caseicon-"],.pxl-header-elementor-main [class*=" caseicon-"],
.pxl-header-elementor-sticky [class^="caseicon-"],.pxl-header-elementor-sticky [class*=" caseicon-"]{color:#FFFFFF;}
.pxl-header-elementor-main .pxl-menu-toggle span,
.pxl-header-elementor-sticky .pxl-menu-toggle span{background-color:#FFFFFF;}

/* boutons du header : inversés (blanc sur navy) */
.pxl-header-elementor-main .pxl-button .pxl--text-wrap,
.pxl-header-elementor-sticky .pxl-button .pxl--text-wrap{background-color:#FFFFFF;color:#0F1F34;}
.pxl-header-elementor-main .pxl-button:hover .pxl--text-wrap,
.pxl-header-elementor-sticky .pxl-button:hover .pxl--text-wrap{background-color:#DBE3EE;color:#0F1F34;}

/* logo : rendu blanc sur fond navy */
.pxl-header-branding img,.pxl-header-elementor-main .pxl-logo img,
.pxl-header-elementor-sticky .pxl-logo img{filter:brightness(0) invert(1);}

/* panneau latéral (menu burger) */
.pxl-header-menu-backdrop{background-color:rgba(15,31,52,.6);}
.pxl-hidden-panel,.pxl-header-menu-scroll{background-color:#0F1F34;}
.pxl-hidden-panel a,.pxl-hidden-panel,.pxl-hidden-panel p{color:#FFFFFF;}
.pxl-hidden-panel img{filter:brightness(0) invert(1);}

/* =========================================================
 FOOTER — fond navy, contenu blanc
 ========================================================= */
.pxl-footer-show,.footer-elementor-inner,
.pxl-footer-show .elementor-section,.pxl-footer-show .e-con{background-color:transparent !important;}
#pxl-footer-elementor{background-color:#0F1F34 !important;}
/* second ton, plus pâle : il coiffe le pied de page, le bleu nuit reste en dessous */
#pxl-footer-elementor .elementor-element.elementor-element-318e046{background-color:#17324F !important;}
.pxl-footer-show,.pxl-footer-show p,.pxl-footer-show .pxl-text-editor,
.pxl-footer-show li,.pxl-footer-show span{color:rgba(255,255,255,.78);}
.pxl-footer-show h1,.pxl-footer-show h2,.pxl-footer-show h3,
.pxl-footer-show h4,.pxl-footer-show h5,.pxl-footer-show h6,
.pxl-footer-show .pxl-item--title{color:#FFFFFF;}
.pxl-footer-show a{color:rgba(255,255,255,.78);}
.pxl-footer-show a:hover{color:#FFFFFF;}
.pxl-footer-show img{filter:brightness(0) invert(1);}
.pxl-footer-show svg path[fill]:not([fill="none"]){fill:#FFFFFF;}
.pxl-footer-show svg path[stroke]:not([stroke="none"]){stroke:#FFFFFF;}
.pxl-footer-show hr,.pxl-footer-show .elementor-divider-separator{border-color:rgba(255,255,255,.18);}
.pxl-footer-show input[type=email],.pxl-footer-show input[type=text]{
 background-color:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.2);color:#FFFFFF;}
.pxl-footer-show input::placeholder{color:rgba(255,255,255,.55);}
.pxl-footer-show input[type=submit],.pxl-footer-show button[type=submit]{
 background-color:#FFFFFF;color:#0F1F34;border-color:#FFFFFF;}
.pxl-footer-show input[type=submit]:hover,.pxl-footer-show button[type=submit]:hover{
 background-color:#DBE3EE;color:#0F1F34;}
/* ===== Logo typographique Villa Victoria Spa ===== */
.vv-logo{
 display:inline-block;font-family:"Melodrama",Georgia,"Times New Roman",serif;
 font-size:27px;line-height:1.1;font-weight:500;letter-spacing:3.2px;
 text-transform:uppercase;color:#FFFFFF !important;white-space:nowrap;text-decoration:none;
}
.vv-logo em{font-style:normal;font-weight:500;letter-spacing:4.5px;opacity:1;}
.vv-logo:hover{color:#DBE3EE !important;}
@media (max-width:1024px){ .vv-logo{font-size:22px;letter-spacing:2.4px;} }
@media (max-width:575px){ .vv-logo{font-size:18px;letter-spacing:1.8px;} }
/* le logo est du texte : neutralise le filtre prévu pour une image */
.pxl-header-branding .vv-logo,.pxl-footer-show .vv-logo{filter:none !important;}
/* ===== Lisibilité header/footer (ciblage par template) ===== */
.elementor-4431, .elementor-6082, .elementor-278,
.elementor-4431 p, .elementor-6082 p, .elementor-278 p,
.elementor-4431 span, .elementor-6082 span, .elementor-278 span,
.elementor-4431 li, .elementor-6082 li, .elementor-278 li,
.elementor-4431 .pxl-text-editor, .elementor-6082 .pxl-text-editor, .elementor-278 .pxl-text-editor{color:#FFFFFF;}
.elementor-4431 a, .elementor-6082 a, .elementor-278 a{color:#FFFFFF !important;}
.elementor-4431 a:hover, .elementor-6082 a:hover, .elementor-278 a:hover{color:#DBE3EE !important;}
.elementor-4431 h1,.elementor-4431 h2,.elementor-4431 h3,.elementor-4431 h4,.elementor-4431 h5,.elementor-4431 h6,
.elementor-6082 h1,.elementor-6082 h2,.elementor-6082 h3,.elementor-6082 h4,.elementor-6082 h5,.elementor-6082 h6,
.elementor-278 h1,.elementor-278 h2,.elementor-278 h3,.elementor-278 h4,.elementor-278 h5,.elementor-278 h6,
.elementor-4431 .pxl-item--title,.elementor-6082 .pxl-item--title,.elementor-278 .pxl-item--title{color:#FFFFFF;}
.pxl-anchor-text span,.pxl-anchor-text-1,.pxl-anchor-text-2{color:#FFFFFF !important;}
.pxl-icon-line,.pxl-anchor-divider span{background-color:#FFFFFF !important;}
.pxl-anchor-button-inner{border-color:rgba(255,255,255,.35) !important;}
.elementor-4431 svg path:not([fill="none"]),.elementor-6082 svg path:not([fill="none"]){fill:#FFFFFF;}
.elementor-4431 i,.elementor-6082 i{color:#FFFFFF;}
.elementor-4431 .pxl-button .pxl--text-wrap,.elementor-6082 .pxl-button .pxl--text-wrap{background-color:#FFFFFF !important;color:#0F1F34 !important;}
.elementor-4431 .pxl-button:hover .pxl--text-wrap,.elementor-6082 .pxl-button:hover .pxl--text-wrap{background-color:#DBE3EE !important;}
.elementor-4431 .vv-logo,.elementor-6082 .vv-logo,.elementor-278 .vv-logo{filter:none !important;}
.elementor-278 input[type=email],.elementor-278 input[type=text]{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.22);color:#fff;}
.elementor-278 input::placeholder{color:rgba(255,255,255,.55);}

/* ===== Correctifs de lisibilité ===== */
.pxl-text-editor br{display:inline !important;}
.pxl-text-editor p{margin-bottom:1em;}
.elementor-4431 .pxl-button .pxl--text-wrap,.elementor-4431 .pxl-button .pxl--text-wrap *,
.elementor-6082 .pxl-button .pxl--text-wrap,.elementor-6082 .pxl-button .pxl--text-wrap *,
.elementor-278 .pxl-button .pxl--text-wrap,.elementor-278 .pxl-button .pxl--text-wrap *{color:#0F1F34 !important;}
.elementor-4431 .pxl-button .pxl--text-wrap,.elementor-6082 .pxl-button .pxl--text-wrap,
.elementor-278 .pxl-button .pxl--text-wrap{background-color:#FFFFFF !important;}
.elementor-4431 .pxl-button:hover .pxl--text-wrap,.elementor-6082 .pxl-button:hover .pxl--text-wrap,
.elementor-278 .pxl-button:hover .pxl--text-wrap{background-color:#DBE3EE !important;}
.elementor-278 input[type=submit],.elementor-278 button[type=submit]{background:#FFFFFF !important;color:#0F1F34 !important;border-color:#FFFFFF !important;}
.elementor-7838 .pxl-button .pxl--text-wrap,.elementor-7833 .pxl-button .pxl--text-wrap,
.elementor-7834 .pxl-button .pxl--text-wrap,.elementor-7835 .pxl-button .pxl--text-wrap,
.elementor-7836 .pxl-button .pxl--text-wrap,.elementor-7837 .pxl-button .pxl--text-wrap,
.elementor-7829 .pxl-button .pxl--text-wrap{background-color:#0F1F34;color:#FFFFFF;}
.wpcf7 input[type=email],.wpcf7 input[type=text],.wpcf7 textarea{background:#FFFFFF;border:1px solid #DBE3EE;color:#0F1F34;}
.wpcf7 input::placeholder,.wpcf7 textarea::placeholder{color:#8A97A8;}


/* ===== Footer défilant · retour-haut · panneau latéral ===== */
.elementor-element-75658dc{overflow:hidden !important;width:100% !important;position:relative !important;transform:none !important;left:auto !important;top:auto !important;}
.elementor-element-75658dc .pxl-item--title{white-space:nowrap !important;display:inline-block !important;will-change:transform;animation:vvMarquee 26s linear infinite;}
.elementor-element-75658dc:hover .pxl-item--title{animation-play-state:paused;}
@keyframes vvMarquee{from{transform:translateX(0);}to{transform:translateX(-33.3333%);}}
@media (prefers-reduced-motion:reduce){.elementor-element-75658dc .pxl-item--title{animation:none;}}
.pxl-scroll-top,.pxl-scroll-top.show,a.pxl-scroll-top{background-color:#0F1F34 !important;border-color:#0F1F34 !important;color:#FFFFFF !important;}
.pxl-scroll-top:hover{background-color:#162C4A !important;border-color:#162C4A !important;}
.pxl-scroll-top i,.pxl-scroll-top svg path{color:#FFFFFF !important;fill:#FFFFFF !important;stroke:#FFFFFF !important;}
.pxl-scroll-top svg circle,.pxl-scroll-top .pxl-progress-circle path{stroke:#FFFFFF !important;}
/* le fond blanc est porte par le rideau et le contenu, jamais par la couche
   plein ecran : l'effet slide la garde en opacity:1 et retarde sa visibility
   de 0,3 s a la fermeture, ce qui faisait flasher un ecran blanc */
.pxl-hidden-panel-popup{background-color:transparent !important;}
.pxl-hidden-panel-popup .pxl-panel-bg,
.pxl-hidden-panel-popup .pxl-popup--conent,
.pxl-hidden-panel-popup .pxl-hidden-panel-inner,
.pxl-hidden-panel-popup .e-con,.pxl-hidden-panel-popup .elementor-section,
.pxl-hidden-panel,.pxl-header-menu-scroll{background-color:#FFFFFF !important;}
.pxl-hidden-panel-popup,.pxl-hidden-panel-popup p,.pxl-hidden-panel-popup span,
.pxl-hidden-panel-popup li,.pxl-hidden-panel-popup .pxl-text-editor,
.pxl-hidden-panel-popup h1,.pxl-hidden-panel-popup h2,.pxl-hidden-panel-popup h3,
.pxl-hidden-panel-popup h4,.pxl-hidden-panel-popup h5,.pxl-hidden-panel-popup h6,
.pxl-hidden-panel-popup .pxl-item--title{color:#0F1F34 !important;}
.pxl-hidden-panel-popup a,.pxl-hidden-panel-popup .pxl-menu-primary li a{color:#0F1F34 !important;}
.pxl-hidden-panel-popup a:hover,.pxl-hidden-panel-popup .pxl-menu-primary li a:hover{color:#162C4A !important;}
.pxl-hidden-panel-popup .vv-logo{color:#0F1F34 !important;filter:none !important;}
.pxl-hidden-panel-popup img{filter:none !important;}
.pxl-hidden-panel-popup svg path:not([fill="none"]){fill:#0F1F34 !important;}
.pxl-hidden-panel-popup .pxl-close,.pxl-hidden-panel-popup .pxl-close span{color:#0F1F34 !important;background-color:#0F1F34 !important;}
.pxl-hidden-panel-popup .btn{background-color:#0F1F34 !important;border-color:#0F1F34 !important;}
.pxl-hidden-panel-popup .btn .pxl--btn-text{color:#FFFFFF !important;}

/* ===== Nav mobile (barre fixe bas d'ecran) ===== */
.vv-mobile-nav{display:none;}
@media screen and (max-width:1024px){
 .vv-mobile-nav{
 display:block;
 position:fixed;
 left:0;right:0;bottom:0;
 z-index:99999;
 margin:0;
 padding:8px 8px calc(env(safe-area-inset-bottom, 0px) + 6px);
 background-color:rgba(255,255,255,0.96);
 -webkit-backdrop-filter:saturate(180%) blur(14px);
 backdrop-filter:saturate(180%) blur(14px);
 border-top:1px solid #DBE3EE;
 box-shadow:0 -12px 40px rgba(15,31,52,0.08);
 font-family:"Jost",Helvetica,Arial,sans-serif;
 }
 .vv-mobile-nav__list{
 display:grid;
 grid-template-columns:repeat(5,1fr);
 gap:4px;
 margin:0;padding:0;list-style:none;
 }
 .vv-mobile-nav__item{margin:0;padding:0;list-style:none;}
 .vv-mobile-nav__link{
 display:flex;
 flex-direction:column;
 align-items:center;
 justify-content:center;
 gap:5px;
 min-height:58px;
 padding:8px 2px;
 border-radius:16px;
 text-align:center;
 text-decoration:none;
 color:rgba(15,31,52,0.55);
 background-color:transparent;
 transition:color .2s ease, background-color .2s ease;
 -webkit-tap-highlight-color:transparent;
 }
 .vv-mobile-nav__link:hover,
 .vv-mobile-nav__link:focus,
 .vv-mobile-nav__link:focus-visible{
 color:#0F1F34;
 background-color:#F5F7FA;
 text-decoration:none;
 }
 .vv-mobile-nav__link.is-active{
 color:#0F1F34;
 background-color:#F5F7FA;
 font-weight:600;
 }
 .vv-mobile-nav__link:active{background-color:#DBE3EE;}
 .vv-mobile-nav__icon{
 display:flex;align-items:center;justify-content:center;
 width:18px;height:18px;flex:0 0 auto;
 }
 .vv-mobile-nav__svg{width:18px;height:18px;display:block;}
 .vv-mobile-nav__label{
 display:block;
 font-size:10px;
 line-height:1.15;
 letter-spacing:.01em;
 font-weight:500;
 white-space:nowrap;
 }
 .vv-mobile-nav__link.is-active .vv-mobile-nav__label{font-weight:600;}

 /* on libere la place en bas : contenu, footer et bouton retour-haut */
 body{padding-bottom:calc(74px + env(safe-area-inset-bottom, 0px)) !important;}
 .pxl-scroll-top,
 .pxl-scroll-top.pxl-on{
 bottom:calc(88px + env(safe-area-inset-bottom, 0px)) !important;
 }
 .pxl-footer-fixed #pxl-footer-elementor{position:relative !important;}
}
@media screen and (max-width:360px){
 .vv-mobile-nav__label{font-size:9px;}
}
@media (prefers-reduced-motion:reduce){
 .vv-mobile-nav__link{transition:none;}
}
/* ===== Fin nav mobile ===== */

/* ===== Boutons (v2 : suffixe appliqué à chaque sélecteur) ===== */
.elementor-4431 .pxl-button .btn,.elementor-6082 .pxl-button .btn,.elementor-278 .pxl-button .btn,.elementor-3536 .pxl-button .btn{background-color:#FFFFFF !important;border-color:#FFFFFF !important;}
.elementor-4431 .pxl-button .btn,.elementor-6082 .pxl-button .btn,.elementor-278 .pxl-button .btn,.elementor-3536 .pxl-button .btn,.elementor-4431 .pxl-button .btn .pxl--btn-text,.elementor-6082 .pxl-button .btn .pxl--btn-text,.elementor-278 .pxl-button .btn .pxl--btn-text,.elementor-3536 .pxl-button .btn .pxl--btn-text,.elementor-4431 .pxl-button .btn span,.elementor-6082 .pxl-button .btn span,.elementor-278 .pxl-button .btn span,.elementor-3536 .pxl-button .btn span{color:#0F1F34 !important;}
.elementor-4431 .pxl-button .btn:hover,.elementor-6082 .pxl-button .btn:hover,.elementor-278 .pxl-button .btn:hover,.elementor-3536 .pxl-button .btn:hover{background-color:#DBE3EE !important;border-color:#DBE3EE !important;}
.elementor-4431 .pxl-button .btn:before,.elementor-6082 .pxl-button .btn:before,.elementor-278 .pxl-button .btn:before,.elementor-3536 .pxl-button .btn:before,.elementor-4431 .pxl-button .btn:after,.elementor-6082 .pxl-button .btn:after,.elementor-278 .pxl-button .btn:after,.elementor-3536 .pxl-button .btn:after{background-color:#DBE3EE !important;}

/* ===== Boutons des pages Villa Victoria ===== */
.elementor-7829 .pxl-button .btn,.elementor-7833 .pxl-button .btn,.elementor-7834 .pxl-button .btn,.elementor-7835 .pxl-button .btn,.elementor-7836 .pxl-button .btn,.elementor-7837 .pxl-button .btn,.elementor-7838 .pxl-button .btn{background-color:#0F1F34 !important;border-color:#0F1F34 !important;}
.elementor-7829 .pxl-button .btn .pxl--btn-text,.elementor-7833 .pxl-button .btn .pxl--btn-text,.elementor-7834 .pxl-button .btn .pxl--btn-text,.elementor-7835 .pxl-button .btn .pxl--btn-text,.elementor-7836 .pxl-button .btn .pxl--btn-text,.elementor-7837 .pxl-button .btn .pxl--btn-text,.elementor-7838 .pxl-button .btn .pxl--btn-text,.elementor-7829 .pxl-button .btn span,.elementor-7833 .pxl-button .btn span,.elementor-7834 .pxl-button .btn span,.elementor-7835 .pxl-button .btn span,.elementor-7836 .pxl-button .btn span,.elementor-7837 .pxl-button .btn span,.elementor-7838 .pxl-button .btn span{color:#FFFFFF !important;}
.elementor-7829 .pxl-button .btn:hover,.elementor-7833 .pxl-button .btn:hover,.elementor-7834 .pxl-button .btn:hover,.elementor-7835 .pxl-button .btn:hover,.elementor-7836 .pxl-button .btn:hover,.elementor-7837 .pxl-button .btn:hover,.elementor-7838 .pxl-button .btn:hover{background-color:#162C4A !important;border-color:#162C4A !important;}
.elementor-7829 .pxl-button .btn-outline,.elementor-7833 .pxl-button .btn-outline,.elementor-7834 .pxl-button .btn-outline,.elementor-7835 .pxl-button .btn-outline,.elementor-7836 .pxl-button .btn-outline,.elementor-7837 .pxl-button .btn-outline,.elementor-7838 .pxl-button .btn-outline,.elementor-7829 .pxl-button .btn-outline-2,.elementor-7833 .pxl-button .btn-outline-2,.elementor-7834 .pxl-button .btn-outline-2,.elementor-7835 .pxl-button .btn-outline-2,.elementor-7836 .pxl-button .btn-outline-2,.elementor-7837 .pxl-button .btn-outline-2,.elementor-7838 .pxl-button .btn-outline-2,.elementor-7829 .pxl-button .btn-outline-3,.elementor-7833 .pxl-button .btn-outline-3,.elementor-7834 .pxl-button .btn-outline-3,.elementor-7835 .pxl-button .btn-outline-3,.elementor-7836 .pxl-button .btn-outline-3,.elementor-7837 .pxl-button .btn-outline-3,.elementor-7838 .pxl-button .btn-outline-3{background-color:transparent !important;border-color:#FFFFFF !important;}
.elementor-7829 .pxl-button .btn-outline .pxl--btn-text,.elementor-7833 .pxl-button .btn-outline .pxl--btn-text,.elementor-7834 .pxl-button .btn-outline .pxl--btn-text,.elementor-7835 .pxl-button .btn-outline .pxl--btn-text,.elementor-7836 .pxl-button .btn-outline .pxl--btn-text,.elementor-7837 .pxl-button .btn-outline .pxl--btn-text,.elementor-7838 .pxl-button .btn-outline .pxl--btn-text,.elementor-7829 .pxl-button .btn-outline-2 .pxl--btn-text,.elementor-7833 .pxl-button .btn-outline-2 .pxl--btn-text,.elementor-7834 .pxl-button .btn-outline-2 .pxl--btn-text,.elementor-7835 .pxl-button .btn-outline-2 .pxl--btn-text,.elementor-7836 .pxl-button .btn-outline-2 .pxl--btn-text,.elementor-7837 .pxl-button .btn-outline-2 .pxl--btn-text,.elementor-7838 .pxl-button .btn-outline-2 .pxl--btn-text,.elementor-7829 .pxl-button .btn-outline-3 .pxl--btn-text,.elementor-7833 .pxl-button .btn-outline-3 .pxl--btn-text,.elementor-7834 .pxl-button .btn-outline-3 .pxl--btn-text,.elementor-7835 .pxl-button .btn-outline-3 .pxl--btn-text,.elementor-7836 .pxl-button .btn-outline-3 .pxl--btn-text,.elementor-7837 .pxl-button .btn-outline-3 .pxl--btn-text,.elementor-7838 .pxl-button .btn-outline-3 .pxl--btn-text{color:#FFFFFF !important;}
.elementor-7829 .pxl-button .btn-outline:hover,.elementor-7833 .pxl-button .btn-outline:hover,.elementor-7834 .pxl-button .btn-outline:hover,.elementor-7835 .pxl-button .btn-outline:hover,.elementor-7836 .pxl-button .btn-outline:hover,.elementor-7837 .pxl-button .btn-outline:hover,.elementor-7838 .pxl-button .btn-outline:hover,.elementor-7829 .pxl-button .btn-outline-2:hover,.elementor-7833 .pxl-button .btn-outline-2:hover,.elementor-7834 .pxl-button .btn-outline-2:hover,.elementor-7835 .pxl-button .btn-outline-2:hover,.elementor-7836 .pxl-button .btn-outline-2:hover,.elementor-7837 .pxl-button .btn-outline-2:hover,.elementor-7838 .pxl-button .btn-outline-2:hover{background-color:#FFFFFF !important;border-color:#FFFFFF !important;}
.elementor-7829 .pxl-button .btn-outline:hover .pxl--btn-text,.elementor-7833 .pxl-button .btn-outline:hover .pxl--btn-text,.elementor-7834 .pxl-button .btn-outline:hover .pxl--btn-text,.elementor-7835 .pxl-button .btn-outline:hover .pxl--btn-text,.elementor-7836 .pxl-button .btn-outline:hover .pxl--btn-text,.elementor-7837 .pxl-button .btn-outline:hover .pxl--btn-text,.elementor-7838 .pxl-button .btn-outline:hover .pxl--btn-text,.elementor-7829 .pxl-button .btn-outline-2:hover .pxl--btn-text,.elementor-7833 .pxl-button .btn-outline-2:hover .pxl--btn-text,.elementor-7834 .pxl-button .btn-outline-2:hover .pxl--btn-text,.elementor-7835 .pxl-button .btn-outline-2:hover .pxl--btn-text,.elementor-7836 .pxl-button .btn-outline-2:hover .pxl--btn-text,.elementor-7837 .pxl-button .btn-outline-2:hover .pxl--btn-text,.elementor-7838 .pxl-button .btn-outline-2:hover .pxl--btn-text{color:#0F1F34 !important;}
.elementor-7829 .pxl-button .btn,.elementor-7833 .pxl-button .btn,.elementor-7834 .pxl-button .btn,.elementor-7835 .pxl-button .btn,.elementor-7836 .pxl-button .btn,.elementor-7837 .pxl-button .btn,.elementor-7838 .pxl-button .btn{opacity:1 !important;}

/* ===== Ajustements mobile (grille de la barre + logo) ===== */
\@media (max-width:1024px){
 .vv-mobile-nav{width:100% !important;max-width:100vw !important;left:0 !important;right:0 !important;box-sizing:border-box !important;overflow:hidden !important;}
 .vv-mobile-nav__list{display:grid !important;grid-template-columns:repeat(5,minmax(0,1fr)) !important;width:100% !important;gap:0 !important;margin:0 !important;padding:0 !important;box-sizing:border-box !important;}
 .vv-mobile-nav__item{min-width:0 !important;}
 .vv-mobile-nav__link{min-width:0 !important;width:100% !important;padding-left:2px !important;padding-right:2px !important;box-sizing:border-box !important;}
 .vv-mobile-nav__label{max-width:100% !important;overflow:hidden !important;text-overflow:ellipsis !important;white-space:nowrap !important;font-size:9px !important;letter-spacing:0 !important;}
 .pxl-logo-mobile img,.pxl-item--logo img{height:26px !important;width:auto !important;max-width:62vw !important;object-fit:contain !important;}
 .pxl-logo-mobile .vv-logo{font-size:17px !important;letter-spacing:1.6px !important;}
}
.pxl-hidden-panel-popup .pxl-item--logo img,.pxl-hidden-panel-popup .pxl-logo-mobile img{filter:none !important;}


/* ===== Popup de recherche ===== */
#pxl-search-popup{background-color:#0F1F34 !important;}
#pxl-search-popup .pxl-item--overlay{background-color:#0F1F34 !important;opacity:1 !important;}
#pxl-search-popup .pxl-item--content,
#pxl-search-popup .pxl-item--content form,
#pxl-search-popup .pxl-item--content *{background-color:transparent !important;}
#pxl-search-popup .pxl-item--content{color:#FFFFFF !important;}
#pxl-search-popup .pxl-item--logo{background-color:transparent !important;}
#pxl-search-popup .pxl-item--logo img{filter:brightness(0) invert(1) !important;height:44px !important;width:auto !important;max-width:70vw !important;}
#pxl-search-popup .search-field{background-color:transparent !important;color:#FFFFFF !important;border:0 !important;border-bottom:1px solid rgba(255,255,255,.35) !important;font-family:"Jost",sans-serif !important;}
#pxl-search-popup .search-field::placeholder{color:rgba(255,255,255,.6) !important;}
#pxl-search-popup .pxl--search-divider{background-color:rgba(255,255,255,.35) !important;border-color:rgba(255,255,255,.35) !important;}
#pxl-search-popup .search-submit{background-color:transparent !important;border:0 !important;}
#pxl-search-popup .search-submit svg path{stroke:#FFFFFF !important;}
#pxl-search-popup .search-submit:hover svg path{stroke:#DBE3EE !important;}
#pxl-search-popup .pxl-item--close,#pxl-search-popup .pxl-close-popup{color:#FFFFFF !important;background-color:transparent !important;}
#pxl-search-popup .pxl-item--close:before,#pxl-search-popup .pxl-item--close:after,
#pxl-search-popup .pxl-close-popup:before,#pxl-search-popup .pxl-close-popup:after{background-color:#FFFFFF !important;}

/* ===== Header mobile (burger blanc + logo centre/agrandi) ===== */
/* #pxl-header-mobile est display:none au-dessus du breakpoint : zero impact desktop */
#pxl-header-mobile .pxl-nav-mobile-button:before,
#pxl-header-mobile .pxl-nav-mobile-button:after,
#pxl-header-mobile .pxl-nav-mobile-button span,
#pxl-nav-mobile .pxl-nav-mobile-button:before,
#pxl-nav-mobile .pxl-nav-mobile-button:after,
#pxl-nav-mobile .pxl-nav-mobile-button span{background-color:#FFFFFF !important;}
#pxl-header-mobile .pxl-nav-mobile-button i,
#pxl-header-mobile .pxl-nav-mobile-button [class^="caseicon-"],
#pxl-header-mobile .pxl-nav-mobile-button [class*=" caseicon-"]{color:#FFFFFF !important;}
#pxl-header-mobile .pxl-nav-mobile-button svg path[fill]:not([fill="none"]){fill:#FFFFFF !important;}
#pxl-header-mobile .pxl-nav-mobile-button svg path[stroke]:not([stroke="none"]){stroke:#FFFFFF !important;}
#pxl-header-mobile .pxl-mobile-meta-item a,
#pxl-header-mobile .pxl-mobile-meta-item i{color:#FFFFFF !important;}

/* logo centre dans la barre : le burger est en position:absolute, il ne decale rien */
#pxl-header-mobile .pxl-header-branding{flex:1 1 auto !important;justify-content:center !important;align-items:center !important;padding-left:44px !important;padding-right:44px !important;box-sizing:border-box !important;}
#pxl-header-mobile .pxl-header-branding a{display:flex !important;align-items:center !important;justify-content:center !important;max-width:100% !important;}

/* logo legerement agrandi (de 30px a 36px ; la source PNG fait 76px de haut, aucun flou) */
#pxl-header-mobile .pxl-header-branding img{height:36px !important;width:auto !important;max-width:100% !important;object-fit:contain !important;}

/* forme texte du logo : "SPA" aussi gras et aussi opaque que "VILLA VICTORIA" */
#pxl-header-mobile .vv-logo,#pxl-header-mobile .pxl-logo-mobile .vv-logo{display:block !important;width:100% !important;text-align:center !important;font-size:21px !important;letter-spacing:2px !important;}
#pxl-header-mobile .vv-logo em,#pxl-header-mobile .pxl-logo-mobile .vv-logo em{font-weight:500 !important;opacity:1 !important;color:inherit !important;letter-spacing:2px !important;}

/* BONUS (hors demande, supprimable) : le panneau du burger avait ses liens
   blancs sur fond blanc, donc invisibles. On les repasse en navy. */
#pxl-header-mobile .pxl-header-nav a,
#pxl-header-mobile .pxl-header-nav a span,
#pxl-header-mobile .pxl-header-nav li a,
#pxl-header-mobile .pxl-header-nav li a span{color:#0F1F34 !important;}
#pxl-header-mobile .pxl-header-nav a:hover,
#pxl-header-mobile .pxl-header-nav a:hover span,
#pxl-header-mobile .pxl-header-nav li.current-menu-item a,
#pxl-header-mobile .pxl-header-nav li.current-menu-item a span{color:#162C4A !important;}
#pxl-header-mobile .pxl-header-nav .sub-menu{background-color:transparent !important;border:0 !important;}
#pxl-header-mobile .pxl-header-nav .sub-menu li a,
#pxl-header-mobile .pxl-header-nav .sub-menu li a span{color:#0F1F34 !important;}
#pxl-header-mobile .pxl-header-nav .pxl-menu-toggle span{background-color:#0F1F34 !important;}

/* panneau lateral gauche du burger : fond blanc, texte navy */
#pxl-header-mobile .pxl-header-menu,
#pxl-header-mobile .pxl-header-menu-scroll{background-color:#FFFFFF !important;}
#pxl-header-mobile .pxl-header-menu,
#pxl-header-mobile .pxl-header-menu p,
#pxl-header-mobile .pxl-header-menu span,
#pxl-header-mobile .pxl-header-menu li,
#pxl-header-mobile .pxl-header-menu a,
#pxl-header-mobile .pxl-header-menu a span{color:#0F1F34 !important;}
#pxl-header-mobile .pxl-header-menu .pxl-menu-close:before,
#pxl-header-mobile .pxl-header-menu .pxl-menu-close:after{background-color:#0F1F34 !important;}
#pxl-header-mobile .pxl-header-menu .pxl-menu-toggle{color:#0F1F34 !important;}
#pxl-header-mobile .pxl-header-mobile-search .search-field{background-color:#FFFFFF !important;color:#0F1F34 !important;border:1px solid #DBE3EE !important;}
#pxl-header-mobile .pxl-header-mobile-search .search-field::placeholder{color:#8A97A8 !important;}
#pxl-header-mobile .pxl-header-mobile-search .search-submit{color:#0F1F34 !important;background:none !important;}
#pxl-header-mobile .pxl-header-mobile-search .search-submit svg path{stroke:#0F1F34 !important;}
/* logo du panneau : pas d'inversion, le fond n'est plus sombre */
#pxl-header-mobile .pxl-header-menu .pxl-logo-mobile img{filter:none !important;}
/* -- fin header mobile -- */

/* ===== Pied de page — vue mobile ===== */
/* le nom de la marque doit dominer le haut du footer, pas se perdre en 18px */
#pxl-footer-elementor .vv-logo{white-space:normal !important;}
@media (max-width:767px){
 #pxl-footer-elementor .vv-logo{font-size:min(8.5vw,36px) !important;letter-spacing:2.4px !important;}
}
/* le copyright passe en dernier, sous le bloc newsletter */
@media (max-width:575px){
 .elementor-3536 .elementor-element.elementor-element-c53625a > .e-con-inner{flex-direction:column;}
 .elementor-3536 .elementor-element.elementor-element-12a0c92{display:contents;}
 .elementor-3536 .elementor-element.elementor-element-f18f6b8{order:1;}
 .elementor-3536 .elementor-element.elementor-element-2909348{order:2;}
 .elementor-3536 .elementor-element.elementor-element-109d5cc{order:3;}
 .elementor-3536 .elementor-element.elementor-element-de3d05d{order:4;width:100%;margin-top:45px;}
 /* horaires et e-mail passent en colonne : le séparateur n'a plus de sens */
 .elementor-3536 .elementor-element.elementor-element-8ac099d{display:none;}
}
/* -- fin pied de page -- */

/* ===== Newsletter du pied de page : champ souligné, bouton contour ===== */
#pxl-footer-elementor .wpcf7 input[type=email],#pxl-footer-elementor .wpcf7 input[type=text]{
 background:transparent !important;border:0 !important;border-bottom:1px solid rgba(255,255,255,.35) !important;
 border-radius:0 !important;color:#FFFFFF !important;padding-left:0 !important;}
#pxl-footer-elementor .wpcf7 input::placeholder{color:rgba(255,255,255,.6) !important;}
#pxl-footer-elementor input[type=submit],#pxl-footer-elementor button[type=submit]{
 background:transparent !important;color:#FFFFFF !important;
 border:1px solid rgba(255,255,255,.45) !important;border-radius:999px !important;}
#pxl-footer-elementor input[type=submit]:hover,#pxl-footer-elementor button[type=submit]:hover{
 background:#FFFFFF !important;color:#0F1F34 !important;border-color:#FFFFFF !important;}

/* ===== Hero d'accueil (page 7829, section f018965) — disposition inspirée de la home Serava ===== */
/* 2026-09-18 — hero remis dans son état antérieur à la demande de l'éditeur du site.
   Les règles ci-dessous visent un enfant direct (« > »). Elles n'ont jamais agi tant que
   le CSS stockait « &gt; » ; une publication du Customizer les a réécrites en « > » le
   18/09 à 9 h 29, ce qui les a activées d'un bloc : voile assombri, centrage vertical et
   cercle « Me laisser surprendre » en absolu par-dessus le titre, hero écrasé en hauteur.
   Elles sont neutralisées ici ; à réactiver sciemment si la refonte du hero est reprise. */

/* Texte en haut à gauche · cercle orbital « Me laisser surprendre » au centre · CTA en bas à droite */

/* -- socle : la section sert de repère pour le cercle en absolu -- */
.elementor-7829 .elementor-element-f018965{position:relative;overflow:hidden;}

/* /* voile dégradé : lisibilité à gauche, respiration au centre, ancrage en bas */
.elementor-7829 .elementor-element-f018965 > .elementor-background-overlay{
 opacity:1 !important;background-color:transparent !important;
 background-image:
  linear-gradient(101deg,rgba(9,17,26,.90) 0%,rgba(9,17,26,.74) 30%,rgba(9,17,26,.44) 58%,rgba(9,17,26,.58) 100%),
  linear-gradient(to top,rgba(9,17,26,.66) 0%,rgba(9,17,26,0) 46%) !important;
} */

/* -- ossature : le bloc borné occupe toute la hauteur, haut / bas séparés -- */
/* .elementor-7829 .elementor-element-f018965 > .e-con-inner{display:flex;flex-direction:column;align-items:stretch;justify-content:center;} */
.elementor-7829 .elementor-element-77d13e5{flex:1 1 auto;position:relative;z-index:2;}
/* .elementor-7829 .elementor-element-77d13e5 > .e-con-inner{
 position:relative;height:100%;display:flex;flex-direction:column;
 justify-content:space-between;align-items:stretch;} */

/* -- colonne de texte, haut à gauche -- */
.elementor-7829 .elementor-element-f018965 .elementor-element-b3e07a1{position:relative;z-index:3;}
.elementor-7829 .elementor-element-f018965 .elementor-element-7dcaec0 .pxl-text-editor{
 -webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);}
.elementor-7829 .elementor-element-f018965 .elementor-element-7dcaec0 p{margin:0;}
.elementor-7829 .elementor-element-f018965 .elementor-element-e6a0982 .pxl-heading{
 text-shadow:0 2px 34px rgba(4,10,16,.55);}
/* filet d'accent au-dessus du titre : rythme et point de départ du regard */
.elementor-7829 .elementor-element-f018965 .elementor-element-e6a0982 .pxl-heading--inner{position:relative;}
.elementor-7829 .elementor-element-f018965 .elementor-element-d76bee8 .pxl-item--inner{
 position:relative;padding-left:20px;}
.elementor-7829 .elementor-element-f018965 .elementor-element-d76bee8 .pxl-item--inner:before{
 content:"";position:absolute;left:0;top:.45em;bottom:.45em;width:1px;
 background:linear-gradient(to bottom,rgba(255,255,255,.55),rgba(255,255,255,0));}

/* -- le cercle orbital : centré dans la section, hors flux -- */
@media (min-width:1201px){
/*  .elementor-7829 .elementor-element-77d13e5 > .e-con-inner > .elementor-element-c04fb0d{
  position:absolute;inset:0;margin:0 !important;z-index:4;
  display:flex;align-items:center;justify-content:center;pointer-events:none;}
 .elementor-7829 .elementor-element-77d13e5 > .e-con-inner > .elementor-element-c04fb0d > *{pointer-events:auto;} */
}
@media (max-width:1200px){
 .elementor-7829 .elementor-element-f018965 .elementor-element-c04fb0d{
  display:flex;justify-content:center;width:100%;}
}
/* entrée en fondu (pas de transform : il reste libre pour le survol) */
.elementor-7829 .elementor-element-f018965 .elementor-element-c04fb0d{animation:vvHeroFadeIn 1s cubic-bezier(.22,.7,.3,1) .35s both;}
@keyframes vvHeroFadeIn{from{opacity:0}to{opacity:1}}

/* habillage du cercle : on neutralise le fond navy imposé plus haut dans ce fichier */
.elementor-7829 .elementor-element-f018965 .elementor-element-c04fb0d .btn.style-circle-orbit{
 background-color:transparent !important;border-color:var(--border-color) !important;
 flex-direction:column !important;gap:12px;padding:0 !important;height:var(--circle-size) !important;
 line-height:1.4 !important;text-align:center;
 -webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);
 transition:transform .7s cubic-bezier(.22,.7,.3,1),border-color .4s ease,box-shadow .7s ease;}
.elementor-7829 .elementor-element-f018965 .elementor-element-c04fb0d .btn.style-circle-orbit i{
 font-size:21px;color:#FFFFFF;opacity:.7;transition:opacity .4s ease,transform .6s cubic-bezier(.22,.7,.3,1);}
.elementor-7829 .elementor-element-f018965 .elementor-element-c04fb0d .btn.style-circle-orbit .pxl--btn-text{
 color:#FFFFFF !important;font-size:13px;letter-spacing:.22em;text-transform:uppercase;
 max-width:72%;line-height:1.7;transition:letter-spacing .5s ease;}
/* le point qui orbite passe devant le trait */
.elementor-7829 .elementor-element-f018965 .elementor-element-c04fb0d .btn.style-circle-orbit:after{
 z-index:2;box-shadow:0 0 14px 2px rgba(255,255,255,.55);}
/* halo : une onde lente qui se dilate, très discrète */
.elementor-7829 .elementor-element-f018965 .elementor-element-c04fb0d .btn.style-circle-orbit:before{
 content:"";position:absolute;inset:-1px;border-radius:50%;border:1px solid rgba(255,255,255,.20);
 background:none;clip-path:none;transform-origin:center;pointer-events:none;
 animation:vvHeroHalo 6s cubic-bezier(.2,.6,.3,1) infinite;}
@keyframes vvHeroHalo{
 0%{transform:scale(1);opacity:.6}
 60%{transform:scale(1.14);opacity:0}
 100%{transform:scale(1.14);opacity:0}}
.elementor-7829 .elementor-element-f018965 .elementor-element-c04fb0d .btn.style-circle-orbit:hover{
 border-color:#FFFFFF !important;transform:scale(1.035);
 box-shadow:0 0 0 1px rgba(255,255,255,.10),0 40px 90px -50px rgba(0,0,0,.9);}
.elementor-7829 .elementor-element-f018965 .elementor-element-c04fb0d .btn.style-circle-orbit:hover i{opacity:1;transform:rotate(-14deg);}
.elementor-7829 .elementor-element-f018965 .elementor-element-c04fb0d .btn.style-circle-orbit:hover .pxl--btn-text{letter-spacing:.26em;}

/* -- rangée de CTA, en bas à droite -- */
.elementor-7829 .elementor-element-f018965 .elementor-element-82a698f{position:relative;z-index:5;}
/* action principale : pastille blanche, seul aplat plein du hero */
.elementor-7829 .elementor-element-f018965 .elementor-element-3080f54 .btn{
 background-color:#FFFFFF !important;border:1px solid #FFFFFF !important;border-radius:0 !important;
 height:56px !important;line-height:56px !important;padding:0 34px !important;
 font-size:13px;letter-spacing:.16em;text-transform:uppercase;
 transition:background-color .35s ease,color .35s ease,transform .45s cubic-bezier(.22,.7,.3,1);}
.elementor-7829 .elementor-element-f018965 .elementor-element-3080f54 .btn .pxl--btn-text,
.elementor-7829 .elementor-element-f018965 .elementor-element-3080f54 .btn span{color:#0F1F34 !important;}
.elementor-7829 .elementor-element-f018965 .elementor-element-3080f54 .btn:hover{
 background-color:transparent !important;border-color:rgba(255,255,255,.75) !important;transform:translateY(-2px);}
.elementor-7829 .elementor-element-f018965 .elementor-element-3080f54 .btn:hover .pxl--btn-text,
.elementor-7829 .elementor-element-f018965 .elementor-element-3080f54 .btn:hover span{color:#FFFFFF !important;}
/* action secondaire : lien souligné, il ne concurrence plus la pastille */
.elementor-7829 .elementor-element-f018965 .elementor-element-5be19b6 .btn{
 background-color:transparent !important;border:0 !important;border-radius:0 !important;
 height:auto !important;line-height:1.4 !important;padding:0 !important;overflow:visible !important;}
.elementor-7829 .elementor-element-f018965 .elementor-element-5be19b6 .btn:before{display:none !important;}
.elementor-7829 .elementor-element-f018965 .elementor-element-5be19b6 .btn .pxl--btn-text{
 position:relative;color:rgba(255,255,255,.80) !important;font-size:13px;letter-spacing:.16em;
 text-transform:uppercase;padding-bottom:6px;transition:color .35s ease;}
.elementor-7829 .elementor-element-f018965 .elementor-element-5be19b6 .btn .pxl--btn-text:after{
 content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:currentColor;
 transform:scaleX(0);transform-origin:right center;transition:transform .45s cubic-bezier(.22,.7,.3,1);}
.elementor-7829 .elementor-element-f018965 .elementor-element-5be19b6 .btn:hover .pxl--btn-text{color:#FFFFFF !important;}
.elementor-7829 .elementor-element-f018965 .elementor-element-5be19b6 .btn:hover .pxl--btn-text:after{transform:scaleX(1);transform-origin:left center;}

/* -- filet vertical en bas à gauche : repère de descente, purement décoratif -- */
@media (min-width:1201px){
/*  .elementor-7829 .elementor-element-77d13e5 > .e-con-inner:after{
  content:"";position:absolute;left:0;bottom:2px;width:1px;height:86px;z-index:3;
  background:linear-gradient(to bottom,rgba(255,255,255,0) 0%,rgba(255,255,255,.7) 50%,rgba(255,255,255,0) 100%);
  background-size:100% 220%;animation:vvHeroFilet 3.6s ease-in-out infinite;} */
 @keyframes vvHeroFilet{0%{background-position:0 -110%}100%{background-position:0 110%}}
}

/* -- empilement sous 1200px : texte, cercle, CTA -- */
@media (max-width:1200px){
/*  .elementor-7829 .elementor-element-77d13e5 > .e-con-inner{justify-content:flex-start;gap:54px;}
 .elementor-7829 .elementor-element-f018965 > .elementor-background-overlay{
  background-image:
   linear-gradient(180deg,rgba(9,17,26,.84) 0%,rgba(9,17,26,.58) 45%,rgba(9,17,26,.78) 100%) !important;} */
}
@media (max-width:575px){
/*  .elementor-7829 .elementor-element-77d13e5 > .e-con-inner{gap:42px;} */
 .elementor-7829 .elementor-element-f018965 .elementor-element-7dcaec0 .pxl-text-editor p{font-size:11px;letter-spacing:2.6px;}
 .elementor-7829 .elementor-element-f018965 .elementor-element-c04fb0d .btn.style-circle-orbit .pxl--btn-text{font-size:12px;letter-spacing:.18em;}
 .elementor-7829 .elementor-element-f018965 .elementor-element-82a698f{flex-direction:column;align-items:stretch;}
 .elementor-7829 .elementor-element-f018965 .elementor-element-3080f54 .btn{width:100%;}
 .elementor-7829 .elementor-element-f018965 .elementor-element-5be19b6{text-align:center;}
}

/* -- accessibilité : plus aucune boucle si l'utilisateur refuse le mouvement -- */
@media (prefers-reduced-motion:reduce){
 .elementor-7829 .elementor-element-f018965 .elementor-element-c04fb0d,
 .elementor-7829 .elementor-element-f018965 .elementor-element-c04fb0d .btn.style-circle-orbit:before,
 .elementor-7829 .elementor-element-f018965 .elementor-element-c04fb0d .btn.style-circle-orbit:after,
 .elementor-7829 .elementor-element-77d13e5 > .e-con-inner:after{
  animation:none !important;opacity:1;}
 .elementor-7829 .elementor-element-f018965 .elementor-element-c04fb0d .btn.style-circle-orbit:before{opacity:.35;}
 .elementor-7829 .elementor-element-f018965 *{transition-duration:.01ms !important;}
}
/* -- fin hero d'accueil -- */

/* ===== Offres du moment : la carte creme du theme passe en rouge pale ===== */
.pxl-pricing.pxl-pricing3.style-2{background-color:#F5E4E1 !important;}
.pxl-pricing.pxl-pricing3.style-2 .btn,
.pxl-pricing.pxl-pricing3.style-2 .pxl--btn-text{border-color:#D9B8B1 !important;}

/* ===== Conclusion du parcours : visible une fois l'experience composee ===== */
/* la classe is-unlocked est posee par vv-parcours.js des que state.journey existe */
#conclusion-parcours:not(.is-unlocked){display:none !important;}

/* ===== Recapitulatif du parcours : visible une fois des prestations retenues ===== */
/* la classe is-unlocked est posee par vv-parcours.js quand configuration.treatments n'est pas vide */
.elementor-element-vvqct01:not(.is-unlocked){display:none !important;}

/* ===== Configurateur, options premium et visualisation : visibles une fois l'experience composee ===== */
/* la classe is-unlocked est posee par vv-parcours.js des que state.journey existe */
#configurateur:not(.is-unlocked),
#options-premium:not(.is-unlocked),
#visualisation:not(.is-unlocked){display:none !important;}

/* ===== Encart infos pratiques (accueil) : signature editoriale, sans cadre ===== */
#infos-pratiques{
	margin-top:52px;padding-top:34px;
	border-top:1px solid #DDE4EE;
	background:none;box-shadow:none;border-radius:0;
	align-items:flex-start;
}
#infos-pratiques > .e-con{flex:1 1 0;width:auto;min-width:0;}
#infos-pratiques > .e-con + .e-con{border-left:1px solid #E6EBF2;padding-left:36px;}

/* intitules : petites capitales precedees d'un filet, pas de pictogramme */
#infos-pratiques .pxl-item--title{
	display:flex;align-items:center;gap:10px;
	margin:0 0 14px;
	font-size:11px;font-weight:600;letter-spacing:2.6px;text-transform:uppercase;color:#8A97A8;
}
#infos-pratiques .pxl-item--title:before{
	content:"";width:22px;height:1px;flex:0 0 22px;background:#C3CEDD;
}

/* l'horaire porte la police display du theme */
#infos-pratiques .vvi-heure{
	margin:0 0 6px;
	font-family:"Melodrama","Jost",serif;
	font-size:38px;line-height:1.05;font-weight:500;letter-spacing:.5px;color:#0F1F34;
}
#infos-pratiques .vvi-adresse{margin:0;font-size:17px;line-height:1.6;color:#0F1F34;}
#infos-pratiques .vvi-jours{margin:0;font-size:14px;line-height:1.6;color:#8A97A8;}
#infos-pratiques .vvi-action{margin:18px 0 0;}

/* actions : soulignement fin qui se revele au survol */
#infos-pratiques .vvi-lien{
	display:inline-flex;align-items:center;gap:8px;
	padding-bottom:4px;
	font-size:15px;font-weight:500;letter-spacing:.3px;color:#17324F;
	background-image:linear-gradient(#17324F,#17324F);
	background-size:0 1px;background-repeat:no-repeat;background-position:0 100%;
	transition:background-size .35s ease,gap .3s ease,color .3s ease;
}
#infos-pratiques .vvi-lien:after{
	content:"";width:14px;height:14px;flex:0 0 14px;background-color:currentColor;
	-webkit-mask:center/contain no-repeat;mask:center/contain no-repeat;
	-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%3E%3Cpath%20d%3D%22M13.2%205.6%2011.8%207l4%204H4v2h11.8l-4%204%201.4%201.4L19.6%2012z%22%2F%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%3E%3Cpath%20d%3D%22M13.2%205.6%2011.8%207l4%204H4v2h11.8l-4%204%201.4%201.4L19.6%2012z%22%2F%3E%3C%2Fsvg%3E");
}
#infos-pratiques .vvi-lien--tel:after{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%3E%3Cpath%20d%3D%22M6.6%2010.8a15%2015%200%200%200%206.6%206.6l2.2-2.2a1%201%200%200%201%201-.2%2011%2011%200%200%200%203.5.6%201%201%200%200%201%201%201V20a1%201%200%200%201-1%201A17%2017%200%200%201%203%204a1%201%200%200%201%201-1h3.4a1%201%200%200%201%201%201c0%201.2.2%202.4.6%203.5a1%201%200%200%201-.3%201z%22%2F%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%3E%3Cpath%20d%3D%22M6.6%2010.8a15%2015%200%200%200%206.6%206.6l2.2-2.2a1%201%200%200%201%201-.2%2011%2011%200%200%200%203.5.6%201%201%200%200%201%201%201V20a1%201%200%200%201-1%201A17%2017%200%200%201%203%204a1%201%200%200%201%201-1h3.4a1%201%200%200%201%201%201c0%201.2.2%202.4.6%203.5a1%201%200%200%201-.3%201z%22%2F%3E%3C%2Fsvg%3E");}
#infos-pratiques .vvi-lien:hover{color:#0F1F34;gap:12px;background-size:100% 1px;}
#infos-pratiques .vvi-lien:focus-visible{outline:2px solid #17324F;outline-offset:3px;}

/* empilement sous 768px : le filet vertical devient horizontal */
@media (max-width:767px){
	#infos-pratiques > .e-con + .e-con{border-left:0;border-top:1px solid #E6EBF2;padding-left:0;padding-top:26px;}
	#infos-pratiques .vvi-heure{font-size:32px;}
}

/* ===== Special Offers : cartes de hauteur egale ===== */
.elementor-element-c87bc88 .pxl-swiper-wrapper{align-items:stretch;}
.elementor-element-c87bc88 .pxl-swiper-slide{height:auto;display:flex;}
.elementor-element-c87bc88 .pxl-pricing{display:flex;flex-direction:column;width:100%;height:100%;}
/* le bouton reste colle en bas quelle que soit la longueur du texte */
.elementor-element-c87bc88 .pxl-pricing .pxl-item--button{margin-top:auto;}

/* ===== FAQ (page Évènementiel) ===== */
.vv-faq .pxl-accordion .pxl-item--title{font-size:20px;line-height:1.35;}
.vv-faq .pxl-accordion .pxl-item--desc,.vv-faq .pxl-accordion .pxl-item--content{max-width:900px;}

/* ===== Fiches service (vv-services) ===== */
/* Le H1 de la bannière est dimensionné pour un libellé court (« Service details ») :
   sur les fiches service il porte le nom réel de la prestation, donc on le laisse
   passer à la ligne et on borne sa taille. */
.single-service #pxl-page-title-default .pxl-page-title{font-size:clamp(38px,5.2vw,84px);line-height:1.05;white-space:normal;word-break:normal;overflow-wrap:anywhere;padding:0 16px;}
.single-service #pxl-page-title-default .pxl-breadcrumb,.single-service #pxl-page-title-default .pxl-breadcrumb *{text-transform:none;}
.single-service .pxl-list .pxl-item--text,.single-service .pxl-list li{color:#DBE3EE;}
@media (max-width:767px){.single-service #pxl-page-title-default .pxl-page-title{font-size:34px;}}


/* ===== Hero : contenu centré verticalement (autant d'espace au-dessus du H1 que sous le CTA).
   L'ancienne marge basse (72 / 48 px) du conteneur du CTA 82a698f est retirée : l'espace est porté par le
   padding symétrique du conteneur f018965 (réglages Elementor, cf. mu-plugins/vv-accueil-hero). ===== */

/* ===== Accueil, « Massages & soins » : l'image a exactement la hauteur de la fiche ===== */
#prestations .pxl-service-carousel1 .pxl-item--inner{align-items:stretch;}
#prestations .pxl-service-carousel1 .pxl-item--thumbnail{
 align-self:stretch;position:relative;height:auto;min-height:715px;max-height:none;}
#prestations .pxl-service-carousel1 .pxl-item--thumbnail a{
 position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;}
#prestations .pxl-service-carousel1 .pxl-item--thumbnail img{
 width:100%;height:100%;min-height:0;object-fit:cover;}
@media (max-width:1024px){
 #prestations .pxl-service-carousel1 .pxl-item--thumbnail{min-height:0;height:400px;}
}
/* toutes les fiches du carrousel prennent la hauteur de la plus haute : sans cela
   chaque slide gardait la hauteur de son propre texte (descriptif + caractéristiques) */
#prestations .pxl-service-carousel1 .pxl-swiper-wrapper{align-items:stretch;}
#prestations .pxl-service-carousel1 .pxl-swiper-slide{height:auto;display:flex;align-items:stretch;}
#prestations .pxl-service-carousel1 .pxl-item--inner{flex:1 1 auto;min-width:0;}
#prestations .pxl-service-carousel1 .pxl-item--content{height:auto;}
@media (max-width:1024px){
 /* fiche empilée : l'image garde ses 400 px de haut (sans quoi son flex-basis de 100 %
    prenait toute la hauteur étirée et rejetait le texte hors de la fiche) */
 #prestations .pxl-service-carousel1 .pxl-item--thumbnail{flex:0 0 auto;}
}



/* ===== « Nos formules best-sellers » : le bouton était blanc sur fond clair ===== */
.elementor-7829 .elementor-element-9e31f3d .btn-outline{
 background-color:transparent !important;border-color:#0F1F34 !important;}
.elementor-7829 .elementor-element-9e31f3d .btn-outline .pxl--btn-text,
.elementor-7829 .elementor-element-9e31f3d .btn-outline span{color:#0F1F34 !important;}
.elementor-7829 .elementor-element-9e31f3d .btn-outline:hover{
 background-color:#0F1F34 !important;border-color:#0F1F34 !important;}
.elementor-7829 .elementor-element-9e31f3d .btn-outline:hover .pxl--btn-text,
.elementor-7829 .elementor-element-9e31f3d .btn-outline:hover span{color:#FFFFFF !important;}
/* les cartes sont désormais contenues dans leur colonne : prix et titres suivent leur largeur */
.elementor-7829 .elementor-element-c87bc88 .pxl-pricing3 .pxl-item--price{
 font-size:clamp(34px,2.6vw,55px);line-height:1.12;}
.elementor-7829 .elementor-element-c87bc88 .pxl-pricing3 .pxl-item--title{
 font-size:clamp(22px,1.6vw,30px);line-height:1.2;}
/* les cartes occupent 72 % de la rangée (au lieu de 66 %) et leurs marges internes sont
   resserrées : le texte des offres dispose d'environ un quart de largeur en plus */
.elementor-7829 .elementor-element-c87bc88 .pxl-pricing3{padding:120px 34px 70px 36px;}
@media (max-width:1024px){
 .elementor-7829 .elementor-element-c87bc88 .pxl-pricing3{padding:120px 26px 64px 28px;}
}
/* le titre suit la largeur de sa colonne, resserrée pour se rapprocher des cartes */
@media (min-width:1025px){
 .elementor-7829 .elementor-element-5cb21d5 .pxl-item--title{font-size:clamp(42px,3.4vw,65px) !important;line-height:1.06;}
}
/* la fleur se cale sur la première ligne du libellé : le thème la centrait sur toute
   la hauteur de la puce (top:50%), elle glissait donc entre les deux lignes des
   libellés longs. 16px x 1.666 = la hauteur d'une ligne de texte de la liste. */
.pxl-pricing3 .pxl-item--list li:before{
 top:0;transform:none;line-height:calc(16px * 1.666);}



/* ===== FAQ Évènementiel — reprise de la démo (vv-faq) ===== */
/* questions : Melodrama du thème, sans capitalisation forcée */
.vv-faq .pxl-accordion3 .pxl-title--text{text-transform:none;font-size:clamp(21px,1.7vw,26px);line-height:1.2;letter-spacing:-0.2px;color:#13253A;}
.vv-faq .pxl-accordion3 .pxl-item--content{color:#607083;font-size:17px;line-height:1.72;padding-right:60px;}
/* carte « Une question ? » : navy Villa, libellés non capitalisés */
.vv-faq .vv-faq-card .pxl-item--title{text-transform:none;letter-spacing:0;max-width:250px;}
.vv-faq .vv-faq-card .pxl-item--button{text-transform:none;letter-spacing:.3px;}
/* sous 1024px les deux colonnes s'empilent : la carte reprend le flux */
@media (max-width:1024px){
 .vv-faq .vv-faq-card{position:static !important;width:100% !important;max-width:420px !important;margin:22px auto 0 !important;}
 .vv-faq .vv-faq-card .pxl-item--title{max-width:none;}
 .vv-faq .pxl-accordion3 .pxl-item--content{padding-right:0;}
}
/* mobile : de l'air avant le +, et une carte moins large aux marges resserrées
   pour que « Une question ? » tienne sur une ligne */
@media (max-width:767px){
 .vv-faq .pxl-accordion3 .pxl-item--title{padding-right:0;gap:18px;}
 .vv-faq .vv-faq-card .pxl-item--inner{padding:30px 28px;}
 .vv-faq .vv-faq-card .pxl-item--title{font-size:26px;line-height:1.25;margin-bottom:38px;}
}
/* ===== fin FAQ Évènementiel ===== */

/* ===== Formulaire de contact — reprise de la démo (page Contact) ===== */
/* Plus haut, « .wpcf7 input{background:#FFF;border:1px solid #DBE3EE} » encadre les champs
   de tout le site ; la démo, elle, ne garde qu'un filet sous chaque champ. On neutralise
   cette règle pour ce seul formulaire : newsletter et FAQ gardent leur cadre. */
.pxl-ctf7-contact-us label{display:block;margin:0 0 34px;}
.pxl-ctf7-contact-us .wpcf7-form-control-wrap{display:block;}
.pxl-ctf7-contact-us input[type=text],
.pxl-ctf7-contact-us input[type=email],
.pxl-ctf7-contact-us input[type=tel],
.pxl-ctf7-contact-us textarea{
 background:transparent;border:0;border-bottom:1px solid rgba(15,31,52,.35);border-radius:0;
 padding:0;margin:0;color:#0F1F34;}
.pxl-ctf7-contact-us input[type=text],
.pxl-ctf7-contact-us input[type=email],
.pxl-ctf7-contact-us input[type=tel]{height:46px;}
.pxl-ctf7-contact-us textarea{height:120px;resize:none;}
.pxl-ctf7-contact-us input::placeholder,
.pxl-ctf7-contact-us textarea::placeholder{color:#8A97A8;opacity:1;}
/* le filet se fait plein dès que le champ est actif : seul retour visuel de la démo */
.pxl-ctf7-contact-us input:focus,
.pxl-ctf7-contact-us textarea:focus{border-bottom-color:#0F1F34;}
/* intitulés lus par les lecteurs d'écran, invisibles à l'œil : la démo n'affiche que les
   indications de saisie, or un champ sans étiquette n'est pas annonçable */
.pxl-ctf7-contact-us .vv-field-label{
 position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;
 clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0;}
/* consentement : entre le message et le bouton, en retrait typographique */
.pxl-ctf7-contact-us .vv-form-consent{margin:0 0 28px;font-size:14px;line-height:1.6;color:#5A6676;}
.pxl-ctf7-contact-us .vv-form-consent .wpcf7-list-item{margin:0;}
.pxl-ctf7-contact-us .vv-form-consent label{display:flex;align-items:flex-start;gap:10px;margin:0;cursor:pointer;}
.pxl-ctf7-contact-us .vv-form-consent input[type=checkbox]{
 width:16px;height:16px;flex:0 0 16px;margin:3px 0 0;accent-color:#0F1F34;}
/* bouton : le rectangle plein de la démo, calé sous le consentement */
.pxl-ctf7-contact-us input[type=submit]{
 margin-top:0;width:auto;min-width:220px;height:54px;padding:0 34px;border-radius:0;
 background-color:#0F1F34;border:1px solid #0F1F34;color:#FFFFFF;font-size:15px;letter-spacing:.4px;}
.pxl-ctf7-contact-us input[type=submit]:hover{background-color:#162C4A;border-color:#162C4A;}
/* meme capitalisation parasite que sur les encarts : « Envoyer Ma Demande » */
.pxl-ctf7-contact-us input[type=submit]{text-transform:none;}
/* champ en erreur : le filet vire au rouge, le message se glisse sous le champ */
.pxl-ctf7-contact-us .wpcf7-not-valid{border-bottom-color:#C0392B;}
.pxl-ctf7-contact-us .wpcf7-not-valid-tip{margin-top:8px;font-size:13px;color:#C0392B;}
.pxl-ctf7-contact-us .wpcf7-response-output{margin:28px 0 0;padding:14px 18px;font-size:14px;}
/* ===== fin formulaire de contact ===== */

/* ===== Encarts d'information de la page Contact (page Contact) ===== */
/* Le thème met « text-transform:capitalize » sur ces titres : correct en anglais
   (« Opening Hours »), fautif en français, où « Horaires D'ouverture » prend une
   majuscule parasite. On rend la casse au texte saisi. */
.elementor-7838 .pxl-icon-box8 .pxl-item--title{
 text-transform:none;font-size:19px;letter-spacing:.2px;padding:18px 0 10px;}
/* le thème passe la description en navy plein : trop dense pour trois lignes serrées,
   on reprend le gris de lecture du reste de la page */
.elementor-7838 .pxl-icon-box8 .pxl-item--description{color:#5A6676;line-height:1.85;font-size:15px;}
.elementor-7838 .pxl-icon-box8 .pxl-item--description p{margin:0;}
.elementor-7838 .pxl-icon-box8 .pxl-item--description a{color:#0F1F34;}
.elementor-7838 .pxl-icon-box8 .pxl-item--description a:hover{color:#162C4A;text-decoration:underline;}
/* sous 1024px les trois encarts s'empilent : on leur rend de l'air vertical */
@media (max-width:1024px){
 .elementor-7838 .pxl-icon-box8{margin-bottom:6px;}
}
/* ===== fin encarts d'information ===== */

/* ===== Réseaux sociaux de la page Contact ===== */
/* Elementor colore ces pastilles avec la couleur de chaque marque : trop bruyant à côté
   des encarts au trait. On reprend le cercle fin navy des icônes voisines. */
.elementor-7838 .elementor-widget-social-icons .elementor-social-icon{
 background-color:transparent;border:1px solid rgba(15,31,52,.3);width:44px;height:44px;
 transition:background-color .25s,border-color .25s;}
.elementor-7838 .elementor-widget-social-icons .elementor-social-icon i{color:#0F1F34;font-size:16px;}
.elementor-7838 .elementor-widget-social-icons .elementor-social-icon:hover{background-color:#0F1F34;border-color:#0F1F34;}
.elementor-7838 .elementor-widget-social-icons .elementor-social-icon:hover i{color:#FFFFFF;}
/* le widget est une grille à 6 colonnes : sous 480px elle déborderait, on la laisse passer à la ligne */
.elementor-7838 .elementor-widget-social-icons .elementor-grid{display:flex;flex-wrap:wrap;gap:12px;}
.elementor-7838 .elementor-widget-social-icons .elementor-grid-item{margin:0;}

/* barre « Suivez la villa » sous le texte de la colonne « Nous trouver » : libellé,
   six pastilles. Dans un conteneur Elementor chaque enfant réclame 100 % :
   on rend au groupe sa largeur naturelle.
   (Sans combinateur enfant : l'enregistrement du CSS additionnel encode le chevron.) */
.elementor-7838 .elementor-element-vvaction .elementor-element-vvsocial{--container-widget-width:auto;--width:auto;width:auto;flex:0 0 auto;max-width:100%;}
.elementor-7838 .elementor-element-vvsocial{--padding-top:0;--padding-right:0;--padding-bottom:0;--padding-left:0;padding:0;}
.elementor-7838 .elementor-element-vvsocial .elementor-widget{--container-widget-width:auto;width:auto;margin-bottom:0;}
.elementor-7838 .elementor-element-vvaction .elementor-widget-social-icons .elementor-grid{gap:10px;flex-wrap:nowrap;}
/* sous 768 px les pastilles peuvent passer à la ligne */
@media (max-width:767px){
 .elementor-7838 .elementor-element-vvaction .elementor-element-vvsocial{--width:100%;width:100%;}
 .elementor-7838 .elementor-element-vvaction .elementor-widget-social-icons .elementor-grid{flex-wrap:wrap;}
}
/* ===== Carte pleine largeur, juste avant le pied de page ===== */
/* le thème réserve une marge sous le contenu : la carte doit affleurer le pied de page */
.elementor-7838 .elementor-element-vvmapwrp,
.elementor-7838 .elementor-element-vvmapwrp .elementor-widget-google_maps{margin-bottom:0;}
.elementor-7838 .elementor-element-vvmapwrp iframe{display:block;width:100%;filter:grayscale(.25);}
/* ===== fin ===== */

/* ===== Réseaux sociaux du menu latéral (panneau 4459) ===== */
/* six pastilles au lieu de trois : le libellé passe au-dessus (comme sur la page
   Contact) et les cercles sont resserrés pour tenir dans la colonne de droite,
   qui ne fait que 32 % de la rangée. */
.pxl-hidden-panel-popup .elementor-element-c24a5db{row-gap:18px;}
.pxl-hidden-panel-popup .pxl-icon1.style-box1{--width-box:44px;gap:10px;flex-wrap:wrap;}
/* les glyphes Font Awesome des trois réseaux ajoutés sont calés sur la taille des
   SVG historiques (12 – 14 px) : à la taille par défaut du thème (20 px) ils
   paraissent deux fois plus gros que Facebook ou Instagram. */
.pxl-hidden-panel-popup .pxl-icon1.style-box1 a{font-size:15px;}
/* le panneau s'affiche à partir de 1201 px ; entre 1201 et 1400 px la colonne
   tombe à 270 px et la sixième pastille passait à la ligne toute seule. */
@media screen and (max-width:1400px){
 .pxl-hidden-panel-popup .pxl-icon1.style-box1{--width-box:38px;gap:6px;}
 .pxl-hidden-panel-popup .pxl-icon1.style-box1 a{font-size:13px;}
}
/* ===== fin réseaux sociaux du menu latéral ===== */

/* ===== Accueil en petite largeur : correctifs de mise en page (mu-plugins/vv-accueil-responsive) ===== */
/* « Une approche pensée pour vous » : les trois pictogrammes sont des SVG dont les largeurs
   intrinsèques vont de 32 à 293 px. Sous 400 px de large la carte tombe à 246 px et celui du
   milieu débordait ; on borne la largeur en gardant le rapport hauteur/largeur. */
.elementor-7829 .elementor-element-70f62da .pxl-icon-box .pxl-item--icon svg{max-width:100%;height:auto;}
/* « Massages & soins » : les quatre filtres se répartissaient sur deux à quatre colonnes selon
   la largeur, avec des libellés coupés en deux ou trois lignes collées au bord droit. Deux
   colonnes jusqu'à 1024 px, une seule en dessous de 768 px : chaque libellé tient sur sa ligne
   et la zone tactile occupe toute la largeur. */
@media screen and (max-width:1024px){
 #prestations .pxl--filter-inner .filter-item{flex:1 0 calc(50% - 1px);}
}
@media screen and (max-width:767px){
 #prestations .pxl--filter-inner .filter-item{flex:1 0 100%;}
}
/* « Une approche pensée pour vous », vue mobile seulement : les trois pictogrammes sont mis à la
   même hauteur et centrés, et chaque bloc est centré dans la hauteur de sa carte. Auparavant leurs
   hauteurs natives allaient de 32 à 108 px, celui du milieu débordait de sa zone par le haut, et la
   marge basse de la description laissait 54 px sous le texte contre 39 px au-dessus du pictogramme. */
@media screen and (max-width:767px){
 .elementor-7829 .elementor-element-70f62da .pxl-icon-box .pxl-item--icon{
  display:flex;align-items:center;justify-content:center;height:auto;min-height:0;}
 .elementor-7829 .elementor-element-70f62da .pxl-icon-box .pxl-item--icon svg{
  display:block;height:56px;width:auto;max-width:100%;}
 .elementor-7829 .elementor-element-70f62da .pxl-icon-box .pxl-item--description{margin-bottom:0;}
 /* Le pictogramme est centré depuis la règle ci-dessus, mais le titre et la description
    restaient alignés à gauche : sur une colonne unique la carte paraissait bancale. Les
    deux sont centrés à leur tour, en vue mobile seulement. */
 .elementor-7829 .elementor-element-70f62da .pxl-icon-box .pxl-item--inner,
 .elementor-7829 .elementor-element-70f62da .pxl-icon-box .pxl-item--title,
 .elementor-7829 .elementor-element-70f62da .pxl-icon-box .pxl-item--description{text-align:center;}
}
/* ===== fin des correctifs de largeur de l'accueil ===== */

/* ===== Page Massages (7833) — cohérence chromatique =====
   Les couleurs sont dans les réglages Elementor (mu-plugins/vv-massages/harmoniser.php) :
   fond foncé → bouton blanc à texte navy ; fond clair → bouton navy à texte blanc ;
   secondaire → transparent, bordé et écrit dans la couleur dominante. Le doré #C39A6B
   n'est plus un aplat au repos, il est le survol des boutons principaux. Ce bloc-ci ne
   porte que le mouvement : transitions, survol des fiches, allègement du voile. ===== */
.elementor-7833 .elementor-button{transition:background-color .35s ease,border-color .35s ease,color .35s ease;}
.elementor-7833 .elementor-button:focus-visible{outline:2px solid #C39A6B;outline-offset:3px;}

/* fiches : au survol le filet sable se réchauffe et la carte se soulève */
.elementor-7833 .elementor-element-62ed3ae,.elementor-7833 .elementor-element-b83ff69,.elementor-7833 .elementor-element-dc1dfe8,.elementor-7833 .elementor-element-e616c27,.elementor-7833 .elementor-element-1d04265,.elementor-7833 .elementor-element-77f963b,.elementor-7833 .elementor-element-f870963,.elementor-7833 .elementor-element-c2df4b8{transition:border-color .4s ease,box-shadow .4s ease,transform .4s ease;}
.elementor-7833 .elementor-element-62ed3ae:hover,.elementor-7833 .elementor-element-b83ff69:hover,.elementor-7833 .elementor-element-dc1dfe8:hover,.elementor-7833 .elementor-element-e616c27:hover,.elementor-7833 .elementor-element-1d04265:hover,.elementor-7833 .elementor-element-77f963b:hover,.elementor-7833 .elementor-element-f870963:hover,.elementor-7833 .elementor-element-c2df4b8:hover{border-color:#C39A6B;box-shadow:0 18px 38px -26px rgba(15,31,52,.45);transform:translateY(-3px);}

/* fiches photo : le voile s'allège au survol, la photo reprend la main */
.elementor-7833 .elementor-element-9cfcad5::before,.elementor-7833 .elementor-element-52a488e::before,.elementor-7833 .elementor-element-ed318ed::before{transition:opacity .55s ease;}
.elementor-7833 .elementor-element-9cfcad5:hover,.elementor-7833 .elementor-element-52a488e:hover,.elementor-7833 .elementor-element-ed318ed:hover{--overlay-opacity:.82;}

/* les trois durées du modelage : rangée à part, jamais collées les unes aux autres */
.elementor-7833 .elementor-element-b7c1d40{margin-top:6px;}

/* sous 768 px, les actions des fiches prennent toute la largeur : cible tactile pleine */
@media (max-width:767px){
 .elementor-7833 .elementor-element-62ed3ae .elementor-widget-button .elementor-button,.elementor-7833 .elementor-element-b83ff69 .elementor-widget-button .elementor-button,.elementor-7833 .elementor-element-dc1dfe8 .elementor-widget-button .elementor-button,.elementor-7833 .elementor-element-e616c27 .elementor-widget-button .elementor-button,.elementor-7833 .elementor-element-1d04265 .elementor-widget-button .elementor-button,.elementor-7833 .elementor-element-77f963b .elementor-widget-button .elementor-button,.elementor-7833 .elementor-element-f870963 .elementor-widget-button .elementor-button,.elementor-7833 .elementor-element-c2df4b8 .elementor-widget-button .elementor-button,.elementor-7833 .elementor-element-9cfcad5 .elementor-widget-button .elementor-button,.elementor-7833 .elementor-element-52a488e .elementor-widget-button .elementor-button,.elementor-7833 .elementor-element-ed318ed .elementor-widget-button .elementor-button{display:flex;width:100%;justify-content:center;}
}
/* ===== fin page Massages ===== */

/* ===== Bouton du menu latéral : le second libellé n'est plus rogné (mu-plugins/vv-header-menu) =====
   Le thème superpose « Menu » et « Ouvrir » dans une boîte à overflow caché, le second mot étant en
   position absolue : la boîte se calait sur la largeur du premier et coupait la dernière lettre du
   second. Les deux mots partagent désormais la même cellule de grille, qui prend la largeur du plus
   long. Le glissement vertical au survol est inchangé. */
.pxl-anchor-button .pxl-anchor-text{display:grid;align-items:center;}
.pxl-anchor-button .pxl-anchor-text .pxl-anchor-text-1,
.pxl-anchor-button .pxl-anchor-text .pxl-anchor-text-2{grid-area:1/1;position:relative;left:auto;white-space:nowrap;}
/* ===== fin du libellé du bouton de menu ===== */

/* ===== Page Offres du mois (7836) — structure reprise de la démonstration /offer/ ===== */
/* Les couleurs sont dans les réglages Elementor (mu-plugins/vv-offres-du-mois/refondre-page.php).
   Ce bloc ne porte que ce qu'aucun contrôle du thème n'expose : le cadre des fiches pxl_offer
   (le thème le dessine en olive #585E48, couleur de la démonstration), les puces de la liste des
   prestations, les trois lignes durée / tarif / disponibilité, l'alternance gauche-droite des
   fiches, les capitales que le thème force sur les titres et les boutons, et les boutons posés
   sur fond navy. */

/* -- fiche d'offre : cadre navy pâle, photo et texte de même hauteur -- */
.elementor-7836 .pxl-offer1 .pxl-item--content{border-color:#DBE3EE;background-color:#FFFFFF;padding:58px 62px 62px 60px;}
.elementor-7836 .pxl-offer1 .pxl-item--inner{transition:box-shadow .45s ease,transform .45s ease;}
.elementor-7836 .pxl-offer1:hover .pxl-item--inner{box-shadow:0 20px 48px rgba(15,31,52,.13);transform:translateY(-4px);}
.elementor-7836 .pxl-offer1 .pxl-item--image{flex:0 0 44%;max-width:44%;max-height:none;}
.elementor-7836 .elementor-widget-pxl_offer + .elementor-widget-pxl_offer{margin-top:34px;}

/* -- alternance : une fiche sur deux présente sa photo à gauche -- */
.elementor-7836 .vv-offre--inverse .pxl-item--inner{flex-direction:row-reverse;}
.elementor-7836 .vv-offre--inverse .pxl-item--content{border-right:1px solid #DBE3EE;border-left:none;}

/* -- liste des prestations : losange doré au lieu de la puce du navigateur -- */
.elementor-7836 .pxl-offer1 .pxl-item--list{list-style:none;padding-left:0;margin-bottom:26px;row-gap:9px;column-gap:38px;}
.elementor-7836 .pxl-offer1 .pxl-item--list-item{position:relative;padding-left:21px;color:#5A6676;font-size:15px;line-height:1.55;}
.elementor-7836 .pxl-offer1 .pxl-item--list-item:before{content:"";position:absolute;left:0;top:.52em;width:7px;height:7px;background-color:#C39A6B;transform:rotate(45deg);}

/* -- durée / tarif / disponibilité : libellé discret à gauche, valeur navy à droite -- */
.elementor-7836 .pxl-offer1 .pxl-item--duration,
.elementor-7836 .pxl-offer1 .pxl-item--special-price,
.elementor-7836 .pxl-offer1 .pxl-item--availability{border-bottom-color:#DBE3EE;color:#5A6676;font-size:15px;gap:18px;margin-top:0;padding:11px 0;}
.elementor-7836 .pxl-offer1 .pxl-item--duration-value,
.elementor-7836 .pxl-offer1 .pxl-item--special-price-value,
.elementor-7836 .pxl-offer1 .pxl-item--availability-value{color:#0F1F34;font-weight:500;text-align:right;}
.elementor-7836 .pxl-offer1 .pxl-item--special-price-value{font-size:18px;}

/* -- action de la fiche : le thème la borde en #DBE3EE, trop pâle pour l'action principale.
      Ce bouton n'est pas dans un .pxl-button : la règle blanche des pages VV ne l'atteint pas. -- */
.elementor-7836 .pxl-offer1 .pxl-item--button.btn.btn-outline{border-color:#0F1F34;margin-top:30px;letter-spacing:.2px;}
.elementor-7836 .pxl-offer1 .pxl-item--button.btn.btn-outline:before{background-color:#0F1F34;}
.elementor-7836 .pxl-offer1 .pxl-item--button.btn.btn-outline:hover{border-color:#0F1F34;}
.elementor-7836 .pxl-offer1 .pxl-item--button.btn:focus-visible{outline:2px solid #C39A6B;outline-offset:3px;}

/* -- capitales : le thème applique « text-transform:capitalize » aux titres d'étape, aux titres
      de fiche et aux boutons. Correct en anglais, faux en français (« La Villa Entière, Rien Que
      Pour Vous »). Même correctif que sur les encarts de la page Contact. -- */
.elementor-7836 .pxl-process1 .pxl-item--title,
.elementor-7836 .pxl-offer1 .pxl-item--title,
.elementor-7836 .btn,
.elementor-7836 .btn .pxl--btn-text{text-transform:none;}

/* -- bande navy : titres d'étape un peu plus serrés que le réglage du thème -- */
.elementor-7836 .elementor-element-d4e5f6a .pxl-process1 .pxl-item--title,
.elementor-7836 .elementor-element-f8a9b0c .pxl-process1 .pxl-item--title{font-size:25px;line-height:1.28;margin-bottom:14px;}
.elementor-7836 .elementor-element-d4e5f6a .pxl-process1 .pxl-item--description,
.elementor-7836 .elementor-element-f8a9b0c .pxl-process1 .pxl-item--description{font-size:16px;line-height:1.72;}

/* -- boutons posés sur navy : blanc à texte navy, doré au survol (système de boutons VV).
      Le .btn-default est visé nommément pour laisser le secondaire .btn-outline en contour blanc. -- */
.elementor-7836 .elementor-element-d4e5f6a .pxl-button .btn-default,
.elementor-7836 .elementor-element-f8a9b0c .pxl-button .btn-default{background-color:#FFFFFF !important;border-color:#FFFFFF !important;}
.elementor-7836 .elementor-element-d4e5f6a .pxl-button .btn-default .pxl--btn-text,
.elementor-7836 .elementor-element-d4e5f6a .pxl-button .btn-default span,
.elementor-7836 .elementor-element-f8a9b0c .pxl-button .btn-default .pxl--btn-text,
.elementor-7836 .elementor-element-f8a9b0c .pxl-button .btn-default span{color:#0F1F34 !important;}
.elementor-7836 .elementor-element-d4e5f6a .pxl-button .btn-default:hover,
.elementor-7836 .elementor-element-f8a9b0c .pxl-button .btn-default:hover{background-color:#C39A6B !important;border-color:#C39A6B !important;}
.elementor-7836 .elementor-element-d4e5f6a .pxl-button .btn-default:hover .pxl--btn-text,
.elementor-7836 .elementor-element-d4e5f6a .pxl-button .btn-default:hover span,
.elementor-7836 .elementor-element-f8a9b0c .pxl-button .btn-default:hover .pxl--btn-text,
.elementor-7836 .elementor-element-f8a9b0c .pxl-button .btn-default:hover span{color:#0F1F34 !important;}
.elementor-7836 .pxl-button .btn{transition:background-color .35s ease,border-color .35s ease,color .35s ease;}
.elementor-7836 .pxl-button .btn:focus-visible{outline:2px solid #C39A6B;outline-offset:3px;}

/* -- sous 1024 px la bande navy passe en colonne : les étapes reprennent toute la largeur -- */
@media (max-width:1024px){
.elementor-7836 .elementor-element-d4e5f6a .pxl-process1,
.elementor-7836 .elementor-element-f8a9b0c .pxl-process1{min-width:0;}
}

/* -- sous 768 px : la fiche s'empile, photo en haut, et la liste passe sur une colonne -- */
@media (max-width:767px){
 .elementor-7836 .pxl-offer1 .pxl-item--image{flex:0 0 auto;max-width:100%;max-height:320px;}
 .elementor-7836 .pxl-offer1 .pxl-item--content{padding:34px 22px 38px 22px;border-right:1px solid #DBE3EE;border-left:1px solid #DBE3EE;border-top:none;}
 .elementor-7836 .vv-offre--inverse .pxl-item--inner{flex-direction:column-reverse;}
 .elementor-7836 .pxl-offer1 .pxl-item--list{grid-template-columns:1fr;}
 .elementor-7836 .pxl-offer1 .pxl-item--duration,
 .elementor-7836 .pxl-offer1 .pxl-item--special-price,
 .elementor-7836 .pxl-offer1 .pxl-item--availability{font-size:14px;}
 .elementor-7836 .pxl-offer1 .pxl-item--button.btn.btn-outline{width:100%;}
.elementor-7836 .elementor-element-f8a9b0c .pxl-button,
.elementor-7836 .elementor-element-f8a9b0c .pxl-button .btn{width:100%;}
}
/* ===== fin page Offres du mois ===== */

/* ===== Page Massages (7833) — CTA « Prendre rendez-vous » (reprise de la démo About Us) =====
   Le reste est dans les réglages Elementor (mu-plugins/vv-massages/cta-wellness.php).
   Ce bloc ne règle que ce qu'Elementor ne sait pas exprimer : l'empilement des trois
   couches de fond, et l'échappatoire du bouton de verre au CSS de page. ===== */

/* photo en parallaxe au fond, voile navy par-dessus, contenu au-dessus : sans cela le
   calque .pxl-section-bg-parallax, positionné et posé après le ::before du conteneur,
   recouvrirait le voile et le texte blanc passerait sur la terrasse en plein soleil. */
.elementor-7833 .elementor-element-769e192 > .pxl-section-bg-parallax{z-index:0;}
.elementor-7833 .elementor-element-769e192::before{z-index:1;}
.elementor-7833 .elementor-element-769e192 > .e-con-inner{position:relative;z-index:2;}

/* plus haut dans ce fichier, « .elementor-7833 .pxl-button .btn » impose un aplat navy
   à tous les boutons du thème : la pastille de verre doit y échapper. */
.elementor-7833 .pxl-button .btn.style-blur{background:rgba(255,255,255,.08) !important;border-color:rgba(255,255,255,.10) !important;}
.elementor-7833 .pxl-button .btn.style-blur:hover{background:rgba(255,255,255,.16) !important;border-color:rgba(255,255,255,.30) !important;}

/* « Prendre rendez-vous » fait 19 signes contre 11 à « Appointment » : le libellé tient
   sur deux lignes centrées et la pastille gagne 20 px. */
.elementor-7833 .elementor-element-d5b6f21 .btn.style-blur{--width-button-blur:278px;}
.elementor-7833 .elementor-element-d5b6f21 .btn.style-blur .pxl--btn-text{max-width:196px;text-align:center;line-height:1.12;}
/* ===== fin CTA Massages ===== */

/* ===== Page Blog — voile du bandeau de titre ===== */
/* Le H1 blanc du bandeau se pose directement sur la photo. Un dégradé navy dans le
   bas de l'image rend le titre lisible quelle que soit la photo choisie ensuite.
   Le voile est un ::after positionné, écrit après le titre : les deux z-index le
   remettent sous lui. Ne pas positionner le .container intermédiaire : le titre est
   en absolute bottom:0 et prendrait ce conteneur vide comme référence, donc sortirait
   par le haut du bandeau. Limité à la page des articles (body.blog). */
body.blog #pxl-page-title-default .pxl-page-title-bg::after{content:"";position:absolute;left:0;right:0;top:0;bottom:0;z-index:0;background:linear-gradient(180deg,rgba(15,31,52,0) 28%,rgba(15,31,52,.62) 100%);pointer-events:none;}
body.blog #pxl-page-title-default .pxl-page-title{z-index:1;}
/* ===== fin Page Blog ===== */

/* ===== Page Massages (7833) — liste « Un soin vraiment personnel » (patron de la démo Career) =====
   Le widget pxl_text_list est prévu pour un fond clair : ses icônes sont remplies en
   --primary-color (le navy de la charte) et ses filets en --fourth-color. Sur l'aplat
   navy de la section, icônes et texte disparaissent : on les repasse ici. ===== */
.elementor-7833 .elementor-element-eb78846 .pxl-text-list1 .pxl-item--icon svg path{fill:#E8C89F;}
.elementor-7833 .elementor-element-eb78846 .pxl-text-list1 .pxl-item + .pxl-item{border-top-color:rgba(255,255,255,.18);}
.elementor-7833 .elementor-element-eb78846 .pxl-text-list1 .pxl-item--text{color:rgba(255,255,255,.85);}
.elementor-7833 .elementor-element-eb78846 .pxl-text-list1 .pxl-item--text strong{color:#FFFFFF;font-weight:500;}
/* ===== fin liste soin personnel ===== */


/* ===== Page 404 — typographie française ===== */
/* Le thème met les deux titres de la page d'erreur et le libellé du bouton en
   « text-transform:capitalize » : correct en anglais (« Page Not Found », « Back To
   Home »), faux en français où il donne « Page Introuvable » et « Retour À
   L'accueil ». Les libellés eux-mêmes viennent de mu-plugins/vv-traductions.php. */
.error404 .pxl-error--title{text-transform:none;}
.error404 .pxl-error--inner .btn.btn-outline{text-transform:none;}
/* ===== fin Page 404 ===== */

/* ===== Pastilles de réseaux sociaux ===== */
/* Le thème pose width et height sur des liens placés dans une boîte flex sans
   retour à la ligne : sous 1025 px la ligne manque de place et les pastilles se
   compriment en largeur seulement (46 x 52 px mesurés à 900 px), ce qui change
   leur cercle en ellipse. On interdit la compression : la largeur posée par le
   thème, ou par le correctif mobile qui descend à 44 px, est alors respectée, et
   la ligne se replie au lieu de s'écraser. Vaut pour les quatre pieds de page et
   pour le panneau latéral du menu. */
.pxl-icon1.style-box1{flex-wrap:wrap;}
.pxl-icon1.style-box1 a{flex:0 0 auto;}
/* Entre 768 et 1024 px, la colonne du pied de page (268 à 361 px) ne loge pas six
   pastilles de 52 px : plutôt qu'une pastille orpheline à la ligne, deux rangées de
   trois. */
@media (min-width:768px) and (max-width:1024px){#pxl-footer-elementor .pxl-icon1.style-box1{max-width:calc(3 * var(--width-box) + 16px);}}
/* ===== fin pastilles de réseaux sociaux ===== */

/* ===== Ligne d'eau du header (mu-plugins/vv-header-souffle) ===== */
/* les barres ne portent aucun fond : seuls les pseudo-éléments sont navy ; la barre principale devient
   le référent des pseudo-éléments */
.pxl-header-elementor-main{position:relative;}
.pxl-header-elementor-main,.pxl-header-elementor-sticky{background-color:transparent !important;border-bottom-color:transparent;}
.pxl-header-elementor-main .pxl-header-content,.pxl-header-elementor-main .e-con,.pxl-header-elementor-main .elementor-section,
.pxl-header-elementor-sticky .pxl-header-content,.pxl-header-elementor-sticky .e-con,.pxl-header-elementor-sticky .elementor-section{background-color:transparent !important;}
.pxl-header-elementor-main .pxl-header-content,.pxl-header-elementor-sticky .pxl-header-content{position:relative;z-index:1;}
/* géométrie commune au tissu et à son ombre */
.pxl-header-elementor-main::before,.pxl-header-elementor-sticky::before,
.pxl-header-elementor-main::after,.pxl-header-elementor-sticky::after{
 content:"";position:absolute;left:-120px;right:auto;top:-16px;bottom:-16px;width:calc(100% + 240px);height:auto;pointer-events:none;
 transform:skewX(0deg) scaleY(1) rotate(0deg);transform-origin:50% 16px;will-change:transform;
 animation:vvRideauVent 52s ease-in-out infinite,vvRideauOurlet 52s ease-in-out infinite;
}
/* le tissu */
.pxl-header-elementor-main::before,.pxl-header-elementor-sticky::before{
 z-index:0;background-color:#0F1F34;
 background-image:
  url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 720 32' preserveAspectRatio='none'%3E%3Cpath d='M0 25.1 C41.6667 20.6 83.3333 20.6 125 25.1 S208.333 29.6 250 25.1 S326.667 21.5 365 25.1 S441.667 28.7 480 25.1 S560 20.78 600 25.1 S680 29.42 720 25.1' fill='none' stroke='%23F7F4EE' stroke-opacity='.7' stroke-width='1.6' stroke-linecap='round' vector-effect='non-scaling-stroke'/%3E%3C/svg%3E"),
  url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='g' x='0' y='0' width='100%25' height='100%25'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' seed='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .07 0'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23g)'/%3E%3C/svg%3E"),
  linear-gradient(180deg,rgba(255,255,255,.025) 0,rgba(255,255,255,0) 40%,rgba(0,0,0,.14) 100%),
  linear-gradient(90deg,rgba(0,0,0,.07) 0,rgba(0,0,0,0) 22%,rgba(0,0,0,0) 78%,rgba(0,0,0,.07) 100%),
  linear-gradient(90deg,#0F1F34 0%,#0C1A2D 4.34%,#091423 8.681%,#0C1A2D 13.02%,#0F1F34 17.36%,#10223A 21.7%,#11243D 26.04%,#10223A 30.38%,#0F1F34 34.72%,#0D1C30 38.72%,#0C1A2D 42.71%,#0D1C30 46.7%,#0F1F34 50.69%,#10223A 54.69%,#11243D 58.68%,#10223A 62.67%,#0F1F34 66.67%,#0C1A2D 70.83%,#0A1626 75%,#0C1A2D 79.17%,#0F1F34 83.33%,#10223A 87.5%,#11243D 91.67%,#10223A 95.83%,#0F1F34 100%);
 background-repeat:repeat-x,repeat,no-repeat,no-repeat,repeat-x;
 background-size:720px 24px,160px 160px,100% 100%,100% 100%,720px 100%;
 background-position:0 100%,0 0,0 0,0 0,0 0;
 -webkit-mask-image:linear-gradient(#000,#000),url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 720 32' preserveAspectRatio='none'%3E%3Cpath d='M0 26 C41.6667 21.5 83.3333 21.5 125 26 S208.333 30.5 250 26 S326.667 22.4 365 26 S441.667 29.6 480 26 S560 21.68 600 26 S680 30.32 720 26V8H0Z' fill='%23000'/%3E%3C/svg%3E");mask-image:linear-gradient(#000,#000),url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 720 32' preserveAspectRatio='none'%3E%3Cpath d='M0 26 C41.6667 21.5 83.3333 21.5 125 26 S208.333 30.5 250 26 S326.667 22.4 365 26 S441.667 29.6 480 26 S560 21.68 600 26 S680 30.32 720 26V8H0Z' fill='%23000'/%3E%3C/svg%3E");
 -webkit-mask-repeat:no-repeat,repeat-x;mask-repeat:no-repeat,repeat-x;
 -webkit-mask-size:100% calc(100% - 16px),720px 24px;mask-size:100% calc(100% - 16px),720px 24px;
 -webkit-mask-position:0 0,0 100%;mask-position:0 0,0 100%;
 animation:vvRideauVent 52s ease-in-out infinite,vvRideauOurlet 52s ease-in-out infinite,vvRideauPlis 23s ease-in-out infinite;
}
/* l'ombre portée : même silhouette, derrière le tissu ; la tuile pleine est ancrée au bas, l'aplat est
   limité à la zone de contenu (padding-bottom de 16 px) pour s'arrêter au-dessus de l'ourlet */
.pxl-header-elementor-main::after,.pxl-header-elementor-sticky::after{
 z-index:-1;padding-bottom:16px;box-sizing:border-box;
 background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 720 32' preserveAspectRatio='none'%3E%3Cpath d='M0 26 C41.6667 21.5 83.3333 21.5 125 26 S208.333 30.5 250 26 S326.667 22.4 365 26 S441.667 29.6 480 26 S560 21.68 600 26 S680 30.32 720 26V8H0Z' fill='%23000'/%3E%3C/svg%3E"),linear-gradient(#0F1F34,#0F1F34);
 background-repeat:repeat-x,repeat;background-size:720px 24px,160px 160px;background-position:0 100%,0 0;
 background-origin:border-box,border-box;background-clip:border-box,content-box;
}
@media (min-width:1025px){
 .pxl-header-elementor-main::after,.pxl-header-elementor-sticky::after{filter:drop-shadow(0 3px 4px rgba(9,17,26,.32));}
}
/* le vent (52 s) : le tissu pend de la tringle, skewX balance le bas, scaleY soulève l'ourlet */
@keyframes vvRideauVent{
 0%{transform:skewX(0deg) scaleY(1) rotate(0deg);}
 7.7%{transform:skewX(0.15deg) scaleY(0.996) rotate(0deg);}
 15.4%{transform:skewX(-0.1deg) scaleY(1) rotate(0deg);}
 21.2%{transform:skewX(-2.5deg) scaleY(0.965) rotate(-0.03deg);}
 26.9%{transform:skewX(-1deg) scaleY(0.982) rotate(-0.01deg);}
 32.7%{transform:skewX(0.3deg) scaleY(0.994) rotate(0deg);}
 42.3%{transform:skewX(0.1deg) scaleY(0.999) rotate(0deg);}
 48.1%{transform:skewX(0.8deg) scaleY(0.992) rotate(0.02deg);}
 53.8%{transform:skewX(-5deg) scaleY(0.905) rotate(-0.1deg);}
 57.7%{transform:skewX(-3.2deg) scaleY(0.93) rotate(-0.06deg);}
 61.5%{transform:skewX(-4.2deg) scaleY(0.945) rotate(-0.08deg);}
 67.3%{transform:skewX(-1.2deg) scaleY(0.976) rotate(-0.02deg);}
 73.1%{transform:skewX(0.5deg) scaleY(0.99) rotate(0.01deg);}
 80.8%{transform:skewX(0.1deg) scaleY(0.997) rotate(0deg);}
 88.5%{transform:skewX(-1.8deg) scaleY(0.98) rotate(-0.02deg);}
 94.2%{transform:skewX(-0.3deg) scaleY(0.994) rotate(0deg);}
 100%{transform:skewX(0deg) scaleY(1) rotate(0deg);}
}
@keyframes vvRideauOurlet{
 0%{background-size:720px 24px,160px 160px,100% 100%,100% 100%,720px 100%;-webkit-mask-size:100% calc(100% - 16px),720px 24px;mask-size:100% calc(100% - 16px),720px 24px;}
 7.7%{background-size:721px 24.8px,160px 160px,100% 100%,100% 100%,721px 100%;-webkit-mask-size:100% calc(100% - 16px),721px 24.8px;mask-size:100% calc(100% - 16px),721px 24.8px;}
 15.4%{background-size:720px 24px,160px 160px,100% 100%,100% 100%,720px 100%;-webkit-mask-size:100% calc(100% - 16px),720px 24px;mask-size:100% calc(100% - 16px),720px 24px;}
 21.2%{background-size:728px 30.67px,160px 160px,100% 100%,100% 100%,728px 100%;-webkit-mask-size:100% calc(100% - 16px),728px 30.67px;mask-size:100% calc(100% - 16px),728px 30.67px;}
 26.9%{background-size:724px 27.47px,160px 160px,100% 100%,100% 100%,724px 100%;-webkit-mask-size:100% calc(100% - 16px),724px 27.47px;mask-size:100% calc(100% - 16px),724px 27.47px;}
 32.7%{background-size:721px 25.07px,160px 160px,100% 100%,100% 100%,721px 100%;-webkit-mask-size:100% calc(100% - 16px),721px 25.07px;mask-size:100% calc(100% - 16px),721px 25.07px;}
 42.3%{background-size:720px 24px,160px 160px,100% 100%,100% 100%,720px 100%;-webkit-mask-size:100% calc(100% - 16px),720px 24px;mask-size:100% calc(100% - 16px),720px 24px;}
 48.1%{background-size:722px 25.6px,160px 160px,100% 100%,100% 100%,722px 100%;-webkit-mask-size:100% calc(100% - 16px),722px 25.6px;mask-size:100% calc(100% - 16px),722px 25.6px;}
 53.8%{background-size:740px 40px,160px 160px,100% 100%,100% 100%,740px 100%;-webkit-mask-size:100% calc(100% - 16px),740px 40px;mask-size:100% calc(100% - 16px),740px 40px;}
 57.7%{background-size:734px 36px,160px 160px,100% 100%,100% 100%,734px 100%;-webkit-mask-size:100% calc(100% - 16px),734px 36px;mask-size:100% calc(100% - 16px),734px 36px;}
 61.5%{background-size:732px 33.33px,160px 160px,100% 100%,100% 100%,732px 100%;-webkit-mask-size:100% calc(100% - 16px),732px 33.33px;mask-size:100% calc(100% - 16px),732px 33.33px;}
 67.3%{background-size:725px 28.27px,160px 160px,100% 100%,100% 100%,725px 100%;-webkit-mask-size:100% calc(100% - 16px),725px 28.27px;mask-size:100% calc(100% - 16px),725px 28.27px;}
 73.1%{background-size:722px 25.6px,160px 160px,100% 100%,100% 100%,722px 100%;-webkit-mask-size:100% calc(100% - 16px),722px 25.6px;mask-size:100% calc(100% - 16px),722px 25.6px;}
 80.8%{background-size:720px 24.27px,160px 160px,100% 100%,100% 100%,720px 100%;-webkit-mask-size:100% calc(100% - 16px),720px 24.27px;mask-size:100% calc(100% - 16px),720px 24.27px;}
 88.5%{background-size:724px 28px,160px 160px,100% 100%,100% 100%,724px 100%;-webkit-mask-size:100% calc(100% - 16px),724px 28px;mask-size:100% calc(100% - 16px),724px 28px;}
 94.2%{background-size:721px 24.8px,160px 160px,100% 100%,100% 100%,721px 100%;-webkit-mask-size:100% calc(100% - 16px),721px 24.8px;mask-size:100% calc(100% - 16px),721px 24.8px;}
 100%{background-size:720px 24px,160px 160px,100% 100%,100% 100%,720px 100%;-webkit-mask-size:100% calc(100% - 16px),720px 24px;mask-size:100% calc(100% - 16px),720px 24px;}
}
@keyframes vvRideauPlis{
 0%,100%{background-position:0 100%,0 0,0 0,0 0,0 0;}
 50%{background-position:0 100%,0 0,0 0,0 0,8px 0;}
}
@media (prefers-reduced-motion:reduce){
 .pxl-header-elementor-main::before,.pxl-header-elementor-sticky::before,
 .pxl-header-elementor-main::after,.pxl-header-elementor-sticky::after{animation:none;}
}
/* ===== fin ligne d'eau ===== */

/* ===== Page Massages (7833) — le rituel, composition « Discover » (démo Home 289, conteneur 7bf9b58) =====
   Le thème dessine le compteur layout 2 pour la démo : chiffre en clamp(50px,10vw,70px),
   filet #e6e6dc, libellé 18 px noir. Ici : chiffre navy borné à 58 px, filet de la charte,
   libellé en petites capitales grises ; le suffixe (« h 30 », « € ») est un second <h2>
   dans une boîte flex, il lui faut un demi-cadratin d'écart. ===== */
.elementor-7833 .elementor-element-vvrit20 .pxl-counter2 .pxl-item--inner{gap:14px;}
/* text-transform:none — le thème capitalise le chiffre, ce qui écrirait « 1H 30 » */
.elementor-7833 .elementor-element-vvrit20 .pxl-counter2 .pxl-item--number{font-size:clamp(40px,4.2vw,58px);color:#0F1F34;text-transform:none;white-space:nowrap;}
.elementor-7833 .elementor-element-vvrit20 .pxl-counter2 .pxl-item--number h2{font-size:inherit;line-height:inherit;color:inherit;margin:0;}
/* h2.pxl-item--suffix : plus spécifique que la règle h2 ci-dessus, sinon son margin:0 gagne */
.elementor-7833 .elementor-element-vvrit20 .pxl-counter2 .pxl-item--number h2.pxl-item--suffix{margin-left:.22em;}
.elementor-7833 .elementor-element-vvrit20 .pxl-counter2 .pxl-item--divider{background-color:#DBE3EE;}
.elementor-7833 .elementor-element-vvrit20 .pxl-counter2 .pxl-item--title{font-family:"Jost",sans-serif;font-size:12px;font-weight:600;letter-spacing:2px;color:#5A6676;line-height:1.3;}
/* deux boutons de même largeur (le libellé Solo fait 9 px de plus que Duo), alignés à gauche comme le bouton de la démo */
.elementor-7833 .elementor-element-e4b3c73 .elementor-button{min-width:268px;}
/* sous 1025 px les colonnes s'empilent (réglage tablette de la démo) : la colonne photos est
   bornée à 640 px et centrée, sinon le portrait file à droite et le paysage à gauche sans se
   chevaucher, et le collage se défait */
@media (max-width:1024px){
 .elementor-7833 .elementor-element-vvrit30{--width:640px;max-width:640px;margin-left:auto !important;margin-right:auto !important;}
}
@media (max-width:767px){
 .elementor-7833 .elementor-element-vvrit20 .pxl-counter2 .pxl-item--number{font-size:34px;}
 .elementor-7833 .elementor-element-vvrit20 .pxl-counter2 .pxl-item--inner{gap:10px;}
 .elementor-7833 .elementor-element-vvrit20 .pxl-counter2 .pxl-item--title{font-size:11px;letter-spacing:1.6px;}
 .elementor-7833 .elementor-element-e4b3c73 .elementor-widget-button,.elementor-7833 .elementor-element-e4b3c73 .elementor-widget-button .elementor-button{width:100%;min-width:0;}
}
/* ===== fin composition du rituel ===== */

/* ===== Sur-titres sur fond foncé — vv-surtitres ===== */
/* Sur un aplat navy, l'orange brûlé du fond clair manquerait de contraste :
   ces sur-titres prennent l'orange doré. Liste relevée dans les pages
   Elementor par vv-surtitres/couleur.php — la relancer après une refonte. */
.elementor-7829 .elementor-element-feac642 .pxl-item--subtitle,.elementor-7829 .elementor-element-feac642 .pxl-item--subtext,
.elementor-7836 .elementor-element-749d55f .pxl-item--subtitle,.elementor-7836 .elementor-element-749d55f .pxl-item--subtext,
.elementor-7836 .elementor-element-e5f6a1b .pxl-item--subtitle,.elementor-7836 .elementor-element-e5f6a1b .pxl-item--subtext,
.elementor-7836 .elementor-element-a9b0c1d .pxl-item--subtitle,.elementor-7836 .elementor-element-a9b0c1d .pxl-item--subtext,
.elementor-8075 .elementor-element-vvofh1 .pxl-item--subtitle,.elementor-8075 .elementor-element-vvofh1 .pxl-item--subtext,
.elementor-8075 .elementor-element-vvofsurh .pxl-item--subtitle,.elementor-8075 .elementor-element-vvofsurh .pxl-item--subtext{color:#E3A15A;}
/* ===== fin sur-titres ===== */

/* ===== En-tête glissant : logo à gauche, navigation centrée (mu-plugins/vv-header-menu) =====
   Le gabarit 6082 est découpé en trois zones. Les deux zones latérales se partagent à parts
   égales la place laissée libre par le menu, donc la navigation tombe au milieu de la barre
   sans dépendre de la largeur du logo ni de celle du bloc d'actions. Une zone dont le contenu
   déborderait de sa moitié garde sa largeur naturelle plutôt que d'être rognée.
   La liste du menu est un conteneur flex à gouttière de 30 px et porte la classe « clearfix » du
   thème : son ::after de largeur nulle compte comme un élément flex et ajoutait une gouttière
   morte de 30 px après « Contact », qui décalait le texte du menu d'une quinzaine de pixels vers
   la gauche. Il est retiré ici, où il ne sert à rien. */
.pxl-header-elementor-sticky .vv-sticky-zone{--width:auto;width:auto;}
.pxl-header-elementor-sticky .vv-sticky-zone--cote{flex:1 1 0;min-width:max-content;}
.pxl-header-elementor-sticky .vv-sticky-zone--centre{flex:0 0 auto;}
.pxl-header-elementor-sticky .vv-sticky-zone--centre .pxl-menu-primary{flex-wrap:nowrap;}
.pxl-header-elementor-sticky .vv-sticky-zone--centre .pxl-menu-primary::after{display:none;}
/*   Sous 1300 px la barre est à saturation : ses trois zones réclament plus de place qu'il n'y en a,
     le logo venait toucher « ACCUEIL » et le panier passait sous le bouton « Offrir ». De 1300 px à
     1201 px — largeur minimale de la barre desktop, le bandeau mobile prend le relais en dessous —
     la gouttière du menu passe de 30 à 22 px et le corps du logo de 27 à 23 px, ce qui rend une
     trentaine de pixels de part et d'autre du menu. L'interpolation est continue et retombe
     exactement sur les valeurs du thème à 1300 px, donc aucun saut au redimensionnement ; la
     gouttière demande !important parce que la règle d'Elementor compte cinq classes.
     Les deux zones latérales faisant la même largeur, le vide qui borde le menu est d'autant plus
     mince que la zone est chargée : le bloc d'actions étant plus large que le logo, c'est lui qui
     serrait le menu. Le séparateur et le bouton y rendent quelques pixels de marge intérieure. */
@media (min-width:1201px) and (max-width:1300px){
 .pxl-header-elementor-sticky .vv-sticky-zone--centre .pxl-menu-primary{
  column-gap:clamp(22px,calc(22px + (100vw - 1201px) * 0.0808),30px) !important;}
 .pxl-header-elementor-sticky .vv-sticky-zone--gauche .vv-logo{
  font-size:clamp(23px,calc(23px + (100vw - 1201px) * 0.0404),27px);
  letter-spacing:clamp(2.6px,calc(2.6px + (100vw - 1201px) * 0.00606),3.2px);}
 .pxl-header-elementor-sticky .vv-sticky-zone--gauche .vv-logo em{
  letter-spacing:clamp(3.7px,calc(3.7px + (100vw - 1201px) * 0.00808),4.5px);}
 .pxl-header-elementor-sticky .vv-sticky-zone--droite .elementor-widget-pxl_text_editor
  .elementor-widget-container{padding-left:var(--vv-marge-action) !important;
  padding-right:var(--vv-marge-action) !important;}
 .pxl-header-elementor-sticky .vv-sticky-zone--droite .elementor-widget-pxl_button
  .elementor-widget-container{padding-left:var(--vv-marge-action) !important;}
 .pxl-header-elementor-sticky .vv-sticky-zone--droite{
  --vv-marge-action:clamp(9px,calc(9px + (100vw - 1201px) * 0.0606),15px);}
}
/* ===== fin de l'en-tête glissant ===== */

/* ===== Sur-titre de page centré en mobile — vv-surtitres ===== */
/* Sur un téléphone, « Villa Victoria Spa · Fort-de-France » passe sur deux lignes :
   il est centré au-dessus du titre, qui reste aligné à gauche. Liste relevée dans
   les pages Elementor par vv-surtitres/centrer-mobile.php — la relancer après une refonte. */
@media (max-width:767px){
.elementor-7838 .elementor-element-b2d4f19 .pxl-item--subtitle,
.elementor-8063 .elementor-element-vvmlh1 .pxl-item--subtitle,
.elementor-8078 .elementor-element-vvvph1 .pxl-item--subtitle{text-align:center;}
}
/* ===== fin sur-titre centré ===== */

/* ===== Hero remonté sous la barre du haut (mu-plugins/vv-accueil-hero/remonter-sous-header.php) =====
   La barre du haut n'a plus de fond propre : derrière le rideau il y a le blanc du body. Quand le vent
   soulève le tissu, son bord remonte au-dessus du bas de la barre (96 px) et ce blanc se voyait entre
   la barre et le hero. Le hero passe donc 18 px sous la barre ; la zone découverte tombe sur l'image.
   Desktop seulement : sous 1201 px la barre mobile a gardé son fond navy. */
@media screen and (min-width:1201px){
 .elementor-7829 .elementor-element-f018965{margin-top:-18px;}
}
/* ===== fin du hero remonté sous la barre du haut ===== */

/* ===== Expériences, cartes « Votre parcours » : boutons alignés (mu-plugins/vv-experiences-cine/cartes-parcours.php) =====
   Les cartes ont la même hauteur, mais leurs descriptions font une ou deux lignes : le bouton suivait
   le texte. Marge haute automatique, il se cale donc au bas de chaque carte. */
.elementor-7835 .elementor-element-94629c6 > .e-con > .elementor-widget-button{margin-top:auto;}
/* ===== fin des cartes « Votre parcours » ===== */

/* ===== Expériences, section « Réservez, ou offrez ce moment » : photo voilée (mu-plugins/vv-experiences-cine/fond-cta.php) =====
   Le calque d'Elementor n'est pas rendu par ce thème (il n'écrit qu'une variable --overlay-opacity) :
   le voile navy est posé ici, superposé à l'image dans la même déclaration. */
.elementor-7835 .elementor-element-3cddde2{
 background-image:linear-gradient(rgba(15,31,52,0.8),rgba(15,31,52,0.8)),url('https://www.villavictoriaspa.com/wp-content/uploads/2026/09/vv-villa-exclusive.webp') !important;
 background-position:center center !important;background-size:cover !important;background-repeat:no-repeat !important;}
/* ===== fin du fond de la section « Réservez, ou offrez ce moment » ===== */
