.elementor-kit-12{--e-global-color-primary:#BD9A48;--e-global-color-secondary:#54595F;--e-global-color-text:#7A7A7A;--e-global-color-accent:#61CE70;--e-global-color-01483cc:#14110B;--e-global-typography-primary-font-family:"Cormorant";--e-global-typography-primary-font-weight:600;--e-global-typography-secondary-font-family:"Jost";--e-global-typography-secondary-font-weight:400;--e-global-typography-text-font-family:"Jost";--e-global-typography-text-font-weight:400;--e-global-typography-accent-font-family:"Jost";--e-global-typography-accent-font-weight:500;}.elementor-kit-12 button,.elementor-kit-12 input[type="button"],.elementor-kit-12 input[type="submit"],.elementor-kit-12 .elementor-button{background-color:#BD9A48;color:#14110B;}.elementor-kit-12 button:hover,.elementor-kit-12 button:focus,.elementor-kit-12 input[type="button"]:hover,.elementor-kit-12 input[type="button"]:focus,.elementor-kit-12 input[type="submit"]:hover,.elementor-kit-12 input[type="submit"]:focus,.elementor-kit-12 .elementor-button:hover,.elementor-kit-12 .elementor-button:focus{background-color:#BD9A48;color:#FFFFFF;}.elementor-kit-12 e-page-transition{background-color:#FFBC7D;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1280px;}.e-con{--container-max-width:1280px;}.elementor-widget:not(:last-child){--kit-widget-spacing:20px;}.elementor-element{--widgets-spacing:20px 20px;--widgets-spacing-row:20px;--widgets-spacing-column:20px;}{}h1.entry-title{display:var(--page-title-display);}.site-header .site-branding{flex-direction:column;align-items:stretch;}.site-header{padding-inline-end:0px;padding-inline-start:0px;}.site-footer .site-branding{flex-direction:column;align-items:stretch;}@media(max-width:1024px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;--container-default-padding-top:10px;--container-default-padding-right:10px;--container-default-padding-bottom:10px;--container-default-padding-left:10px;}}/* Start custom CSS *//* ╔══════════════════════════════════════════════════════════════════════╗
   ║  VILLA ROMANA — CSS ANIMATIONS · SOURCE UNIQUE (lots 1 → 5)            ║
   ╚══════════════════════════════════════════════════════════════════════╝ */

/* ===== 0 · GLOBAL · défilement doux pour les ancres (#piscine, #jacuzzi…) ===== */
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* ===== 1 · REVEALS AU SCROLL (sections Prestations → CTA final) ===== */
html.vr-anim :is(
  .vra-presta-head > *, .vra-pband,
  .vra-g-intro > *, .vra-g-item,
  .vra-loca-txt > *, .vra-loca-map,
  .vra-avis-head > *, .vra-avis-rating, .vra-tcard,
  .vra-blog-head > *, .vra-post, .vra-blog-cta,
  .vra-tarifs-head > *, .vra-price-card, .vra-note, .vra-guarantee,
  .vra-final > *
){opacity:0;transform:translateY(34px);filter:blur(6px);
  transition:opacity .8s cubic-bezier(.22,.61,.18,1),transform .8s cubic-bezier(.22,.61,.18,1),filter .8s cubic-bezier(.22,.61,.18,1)}
html.vr-anim :is(
  .vra-presta-head > *, .vra-pband, .vra-g-intro > *, .vra-g-item,
  .vra-loca-txt > *, .vra-loca-map, .vra-avis-head > *, .vra-avis-rating, .vra-tcard,
  .vra-blog-head > *, .vra-post, .vra-blog-cta,
  .vra-tarifs-head > *, .vra-price-card, .vra-note, .vra-guarantee, .vra-final > *
).vra-in{opacity:1;transform:none;filter:blur(0)}
.vra-tcard:nth-child(2),.vra-post:nth-child(2){transition-delay:.08s}
.vra-tcard:nth-child(3),.vra-post:nth-child(3){transition-delay:.16s}
.vra-pband:nth-child(2){transition-delay:.06s}.vra-pband:nth-child(3){transition-delay:.12s}

/* halo pulse WhatsApp */
.vra-fab-wa{position:relative}
.vra-fab-wa::after{content:"";position:absolute;inset:0;border-radius:50%;pointer-events:none;animation:vra-pulse 2.6s infinite}
@keyframes vra-pulse{0%{box-shadow:0 0 0 0 rgba(37,211,102,.5)}100%{box-shadow:0 0 0 16px rgba(37,211,102,0)}}

/* reveal GÉNÉRIQUE .vra-rv (pages intérieures — même mécanique que §1) */
html.vr-anim .vra-rv{opacity:0;transform:translateY(34px);filter:blur(6px);transition:opacity .8s cubic-bezier(.22,.61,.18,1),transform .8s cubic-bezier(.22,.61,.18,1),filter .8s cubic-bezier(.22,.61,.18,1)}
html.vr-anim .vra-rv.vra-in{opacity:1;transform:none;filter:blur(0)}
body.elementor-editor-active .vra-rv{opacity:1 !important;transform:none !important;filter:none !important}

/* reveal SECTION « LA VILLA » (n'était couverte ni par §1 ni par .vra-rv) */
html.vr-anim :is(.vra-villa-txt > *,.vra-villa-img,.vra-villa-badge){opacity:0;transform:translateY(34px);filter:blur(6px);transition:opacity .8s cubic-bezier(.22,.61,.18,1),transform .8s cubic-bezier(.22,.61,.18,1),filter .8s cubic-bezier(.22,.61,.18,1)}
html.vr-anim :is(.vra-villa-txt > *,.vra-villa-img,.vra-villa-badge).vra-in{opacity:1;transform:none;filter:blur(0)}
.vra-villa-txt > *:nth-child(2){transition-delay:.08s}.vra-villa-txt > *:nth-child(3){transition-delay:.16s}
.vra-villa-txt > *:nth-child(4){transition-delay:.24s}.vra-villa-txt > *:nth-child(5){transition-delay:.32s}
.vra-villa-img{transition-delay:.12s}
body.elementor-editor-active :is(.vra-villa-txt > *,.vra-villa-img,.vra-villa-badge){opacity:1 !important;transform:none !important;filter:none !important}

/* FILET DE SÉCURITÉ — reveals SANS JS (si le snippet est retardé/bloqué, ex. cache mobile). */
@supports (animation-timeline: view()){
  html:not(.vr-anim) :is(
    .vra-presta-head > *, .vra-pband, .vra-g-intro > *, .vra-g-item,
    .vra-loca-txt > *, .vra-loca-map, .vra-avis-head > *, .vra-avis-rating, .vra-tcard,
    .vra-blog-head > *, .vra-post, .vra-blog-cta,
    .vra-tarifs-head > *, .vra-price-card, .vra-note, .vra-guarantee, .vra-final > *, .vra-rv
  ){animation:vra-reveal-css both linear;animation-timeline:view();animation-range:entry 8% entry 46%}
}
@keyframes vra-reveal-css{from{opacity:0;transform:translateY(34px);filter:blur(6px)}to{opacity:1;transform:none;filter:blur(0)}}
@media (prefers-reduced-motion:reduce){@keyframes vra-reveal-css{from{opacity:1}to{opacity:1}}}

/* ===== 2 · EN-TÊTE : RETIRÉ — géré par plugin sticky côté client ===== */

/* ===== 3 · COVER-SCROLL : La Villa recouvre le Hero épinglé ===== */
.vra-hero{position:sticky !important;top:0;z-index:0}
.vra-villa{position:relative;z-index:1}

/* cascade des reveals de section (têtes + colonnes texte) */
.vra-presta-head > *:nth-child(2),.vra-tarifs-head > *:nth-child(2),.vra-blog-head > *:nth-child(2),.vra-avis-head > *:nth-child(2),.vra-loca-txt > *:nth-child(2),.vra-final > *:nth-child(2),.vra-g-intro > *:nth-child(2){transition-delay:.09s}
.vra-presta-head > *:nth-child(3),.vra-tarifs-head > *:nth-child(3),.vra-blog-head > *:nth-child(3),.vra-loca-txt > *:nth-child(3),.vra-final > *:nth-child(3),.vra-g-intro > *:nth-child(3){transition-delay:.18s}
.vra-loca-txt > *:nth-child(4){transition-delay:.27s}

@media (prefers-reduced-motion:reduce){
  .vra-hero{animation:none}
  html.vr-anim .vra-hero .vra-eyebrow,html.vr-anim .vra-hero-inner > *,html.vr-anim .vra-clip .vra-line > span{opacity:1 !important;transform:none !important;filter:none !important;transition-duration:.001s !important}
  .vra-hero .vra-eyebrow .elementor-heading-title::before,.vra-hero .vra-cue .elementor-heading-title::after{animation:none}
}

/* ===== 3c · BARRE DE RÉSERVATION COLLANTE (mobile) ===== */
@media (min-width:768px){.vra-mbar{display:none !important}}
@media (max-width:767px){
  .vra-mbar{display:flex !important;align-items:center;position:fixed !important;left:0;right:0;bottom:0;z-index:190;
    background:rgba(251,246,236,.97);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
    border-top:1px solid rgba(20,17,11,.12);box-shadow:0 -10px 30px -16px rgba(20,17,11,.4)}
  .vra-floating{bottom:5.6rem !important}
  .vra-footer{padding-bottom:6.6rem !important}
}

/* ===== 4 · GALERIE — scroll-jack desktop / rail tactile mobile ===== */
.vra-gallery{overflow:visible !important}
.vra-gallery-pin{position:sticky !important;top:0;height:100vh;overflow:hidden;display:flex;align-items:center}
.vra-gallery-track{display:flex !important;flex-direction:row !important;flex-wrap:nowrap !important;
  width:max-content !important;overflow:visible !important;will-change:transform;gap:2rem;padding:0 clamp(1.4rem,6vw,6rem)}
.vra-g-intro{flex:0 0 auto !important;width:min(82vw,340px) !important;padding-right:1.5rem}
.vra-g-item{flex:0 0 auto !important;width:min(82vw,440px) !important}
.vra-g-item img{width:100% !important;height:60vh;object-fit:cover;border-radius:6px}
.vra-g-item-tall img{height:68vh}
.vra-gallery-progress{position:absolute;left:clamp(1.4rem,6vw,6rem);right:clamp(1.4rem,6vw,6rem);bottom:2.2rem;height:3px;background:rgba(255,255,255,.16);border-radius:3px;overflow:hidden;z-index:2}
.vra-gallery-progress-fill{height:100%;width:0;background:#D8BC74;transition:width .08s linear}
@media (max-width:767px){
  .vra-gallery{display:block !important;height:auto !important;overflow-x:auto !important;overflow-y:hidden !important;
    -webkit-overflow-scrolling:touch;scroll-snap-type:x proximity;scroll-padding-left:1.1rem}
  .vra-gallery > .e-con-inner{display:contents !important}
  .vra-gallery-pin{display:contents !important}
  .vra-gallery-track{transform:none !important;width:max-content !important;flex-wrap:nowrap !important;padding:0 1.1rem;gap:1rem}
  .vra-g-intro{width:min(76vw,280px) !important;scroll-snap-align:start}
  .vra-g-item{width:min(82vw,340px) !important;scroll-snap-align:start}
  .vra-g-item img,.vra-g-item-tall img{height:46vh !important}
  .vra-gallery-progress{display:none}
}

/* ===== 5 · MENU MOBILE — volet vert glissant ===== */
@media (max-width:1024px){
  .vra-header-nav .elementor-nav-menu--dropdown{
    position:fixed !important;top:0;right:0;bottom:0;left:auto !important;
    width:min(82vw,340px);height:100vh !important;max-height:100vh !important;
    background:#2B4A37;transform:translateX(100%);transition:transform .45s cubic-bezier(.22,.61,.18,1);
    display:block !important;padding:6rem 2rem 2rem;overflow-y:auto;z-index:990;box-shadow:-20px 0 60px -30px rgba(0,0,0,.55)}
  .vra-header-nav .elementor-menu-toggle[aria-expanded="true"] + .elementor-nav-menu--dropdown{transform:translateX(0)}
  .vra-header-nav .elementor-nav-menu--dropdown .elementor-item{
    color:#fff !important;font-size:1.1rem;letter-spacing:.04em;padding:.85rem 0 !important;border-bottom:1px solid rgba(255,255,255,.12) !important}
}

/* ===== 6 · MICRO-INTERACTIONS — survol desktop + appui mobile ===== */
.elementor-button{position:relative;overflow:hidden;z-index:0;transition:color .3s,transform .35s cubic-bezier(.22,.61,.18,1)}
.elementor-button::after{content:"";position:absolute;left:0;bottom:0;width:100%;height:0;background:#14110B;z-index:0;transition:height .45s cubic-bezier(.22,.61,.18,1)}
.elementor-button > *{position:relative;z-index:1}
@media (hover:hover){.elementor-button:hover::after{height:100%}.elementor-button:hover{color:#fff}
  .elementor-widget-button:not(.vra-more):not(.vra-altlink):not(.vra-post-more) .elementor-button:hover{transform:translateY(-2px)}}
.elementor-button:active::after{height:100%}.elementor-button:active{color:#fff}
.vra-more .elementor-button::after,.vra-altlink .elementor-button::after{display:none}
.vra-more .elementor-button .elementor-button-text,.vra-altlink .elementor-button .elementor-button-text{transition:letter-spacing .35s cubic-bezier(.22,.61,.18,1)}
@media (hover:hover){.vra-more .elementor-button:hover .elementor-button-text,.vra-altlink .elementor-button:hover .elementor-button-text{letter-spacing:.05em}}
.vra-altlink .elementor-button:hover{border-color:#D8BC74 !important}
.vra-more .elementor-button:hover,.vra-altlink .elementor-button:hover,
.vra-more .elementor-button:active,.vra-altlink .elementor-button:active,
.vra-post-more:hover .elementor-heading-title{color:#BD9A48 !important}

.vra-g-item .elementor-widget-image,.vra-villa-img .elementor-widget-image,.vra-pband-img .elementor-widget-image,.vra-post-ph .elementor-widget-image{overflow:hidden;border-radius:6px}
.vra-g-item img,.vra-villa-img img,.vra-pband-img img,.vra-post-ph img{transition:transform .6s cubic-bezier(.22,.61,.18,1)}
@media (hover:hover){.vra-g-item:hover img,.vra-villa-img:hover img,.vra-pband:hover .vra-pband-img img,.vra-post:hover .vra-post-ph img{transform:scale(1.06)}}
@media (hover:none){.vra-g-item:active img{transform:scale(1.04)}}

.vra-tcard,.vra-post{transition:transform .45s cubic-bezier(.22,.61,.18,1),box-shadow .45s}
@media (hover:hover){.vra-tcard:hover,.vra-post:hover{transform:translateY(-6px);box-shadow:0 34px 60px -40px rgba(20,17,11,.45)}}
@media (hover:none){.vra-tcard:active,.vra-post:active{transform:translateY(-3px)}}

@media (prefers-reduced-motion:reduce){.elementor-button::after{display:none}
  .vra-tcard,.vra-post,.vra-g-item img,.vra-villa-img img,.vra-pband-img img,.vra-post-ph img{transition:none !important}}

/* ===== 6b · GRAIN DE FILM (signature DA) ===== */
body::after{content:"";position:fixed;inset:0;z-index:9999;pointer-events:none;opacity:.04;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='150' height='150'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}

/* ===== 7 · ÉDITEUR ELEMENTOR — neutralise les effets de scroll ===== */
body.elementor-editor-active .vra-hero{position:relative !important;animation:none !important}
body.elementor-editor-active .vra-villa{position:relative !important;z-index:auto !important}
body.elementor-editor-active .vra-gallery{height:auto !important;overflow:visible !important}
body.elementor-editor-active .vra-gallery-pin{position:static !important;height:auto !important;display:block !important;overflow:visible !important}
body.elementor-editor-active .vra-gallery-track{width:auto !important;flex-wrap:wrap !important;transform:none !important}
body.elementor-editor-active :is(.vra-presta-head > *,.vra-pband,.vra-g-intro > *,.vra-g-item,.vra-loca-txt > *,.vra-loca-map,.vra-avis-head > *,.vra-avis-rating,.vra-tcard,.vra-blog-head > *,.vra-post,.vra-blog-cta,.vra-tarifs-head > *,.vra-price-card,.vra-note,.vra-guarantee,.vra-final > *){opacity:1 !important;transform:none !important;filter:none !important}


/* ╔══════════════════════════════════════════════════════════════════════╗
   ║  VILLA ROMANA — MOTOPRESS · intérieur des formulaires UNIQUEMENT       ║
   ║  (seule partie non réalisable en natif Elementor : HTML d'un plugin)  ║
   ║  Couvre : form de dispo /reservation/  +  checkout #2199.             ║
   ║  ⚠️ La mise en page du checkout est désormais 100 % NATIVE (JSON).     ║
   ╚══════════════════════════════════════════════════════════════════════╝ */
:root{
  --vr-cream:#F3EBDD; --vr-ink:#14110B; --vr-ink-soft:#4A4338;
  --vr-green:#2B4A37; --vr-gold:#BD9A48; --vr-gold-2:#D8BC74;
  --vr-line:rgba(20,17,11,.14);
}

/* — champs (inputs / select / textarea) — */
.mphb-booking-form input.mphb-datepick,
.mphb-booking-form input[type=text],
.mphb_sc_checkout-form input[type=text],
.mphb_sc_checkout-form input[type=email],
.mphb_sc_checkout-form input[type=tel],
.mphb_sc_checkout-form select,
.mphb_sc_checkout-form textarea{
  width:100%; box-sizing:border-box;
  font-family:"Jost",sans-serif; font-size:.98rem; color:var(--vr-ink);
  background:var(--vr-cream); border:1px solid var(--vr-line); border-radius:6px;
  padding:.8rem .95rem; line-height:1.3;
  transition:border-color .25s ease, box-shadow .25s ease;
}
.mphb-booking-form input.mphb-datepick:focus,
.mphb_sc_checkout-form input:focus,
.mphb_sc_checkout-form select:focus,
.mphb_sc_checkout-form textarea:focus{
  outline:none; border-color:var(--vr-gold); box-shadow:0 0 0 3px rgba(189,154,72,.18);
}
.mphb-booking-form label,
.mphb_sc_checkout-form label{
  display:inline-block; margin:0 0 .35rem;
  font-family:"Jost",sans-serif; font-size:.72rem; font-weight:500;
  letter-spacing:.12em; text-transform:uppercase; color:var(--vr-ink-soft);
}
.mphb-booking-form abbr,
.mphb_sc_checkout-form abbr{color:var(--vr-gold); text-decoration:none}
.mphb-required-fields-tip small{color:var(--vr-ink-soft); font-size:.8rem}

/* — boutons MotoPress (style « luxe ») — */
.mphb-booking-form .button,
.mphb_sc_checkout-form .button{
  display:inline-block; cursor:pointer; border:0; border-radius:6px;
  background:var(--vr-ink); color:var(--vr-cream);
  font-family:"Jost",sans-serif; font-size:.82rem; font-weight:500;
  letter-spacing:.14em; text-transform:uppercase; padding:.95rem 1.8rem; line-height:1;
  transition:background-color .35s ease, color .35s ease, transform .35s ease;
}
.mphb-booking-form .button:hover,
.mphb_sc_checkout-form .button:hover{background:var(--vr-gold); color:var(--vr-ink); transform:translateY(-2px)}
.mphb-reserve-btn, .mphb-confirm-reservation,
.mphb_sc_checkout-submit-wrapper .button{width:100%}

/* — FORM DE DISPONIBILITÉ (/reservation/) — */
.mphb_sc_booking_form-wrapper{font-family:"Jost",sans-serif}
.mphb-check-in-date-wrapper,.mphb-check-out-date-wrapper{margin:0 0 1rem}
@media(min-width:560px){
  .mphb-booking-form{display:grid; grid-template-columns:1fr 1fr; gap:0 1rem}
  .mphb-required-fields-tip,.mphb-reserve-room-section,.mphb-errors-wrapper,.mphb-reserve-btn-wrapper{grid-column:1 / -1}
}
.mphb-reserve-room-section{margin-top:.5rem; padding:1.1rem 1.2rem; background:var(--vr-cream); border:1px solid var(--vr-line); border-radius:8px}
.mphb-period-price strong, .mphb-period-price{color:var(--vr-ink)}

/* — CHECKOUT #2199 : intérieur du formulaire (la CARTE blanche est NATIVE) — */
.mphb_sc_checkout-wrapper{max-width:none; margin:0; padding:0; font-family:"Jost",sans-serif; color:var(--vr-ink)}
.mphb-login-form-wrap{display:none}      /* notice « Bonjour … » (admin connecté) */
.mphb-guest-name-wrapper{display:none}    /* « Nom complet du client » : facultatif, redondant */
.mphb-checkout-section{background:transparent; border:0; padding:0; margin:0 0 1.6rem}   /* pas de carte-dans-la-carte */
.mphb-booking-details-title,
.mphb-price-breakdown-title,
.mphb-customer-details-title{
  font-family:"Cormorant Garamond",serif; font-weight:600; color:var(--vr-ink);
  font-size:1.3rem; margin:0 0 .8rem; padding-bottom:.5rem; border-bottom:1px solid var(--vr-line);
}
.mphb-room-number{font-family:"Cormorant Garamond",serif; font-size:1.15rem; margin:.4rem 0}
.mphb-check-in-date, .mphb-check-out-date, .mphb-room-type-title{font-size:.95rem; color:var(--vr-ink-soft)}
.mphb-check-in-date strong, .mphb-check-out-date strong, .mphb-room-type-title a{color:var(--vr-ink)}

/* coordonnées sur 2 colonnes (desktop) */
@media(min-width:640px){
  .mphb-customer-details{display:grid; grid-template-columns:1fr 1fr; gap:.1rem 1.2rem}
  .mphb-customer-details-title,.mphb-required-fields-tip,.mphb-customer-country,.mphb-customer-note{grid-column:1 / -1}
}
.mphb-customer-details p{margin:.4rem 0 .9rem}

/* tableau récap prix */
.mphb-price-breakdown{width:100%; border-collapse:collapse; font-size:.95rem}
.mphb-price-breakdown td,.mphb-price-breakdown th{padding:.55rem .2rem; text-align:left}
.mphb-table-price-column{text-align:right; white-space:nowrap}
.mphb-price-breakdown-expand{color:var(--vr-ink); font-weight:500; text-decoration:none}
.mphb-price-breakdown-total th{border-top:2px solid var(--vr-line); padding-top:1rem; font-size:1.05rem}
.mphb-price-breakdown-total .mphb-price{font-family:"Cormorant Garamond",serif; font-size:1.5rem; color:var(--vr-gold)}

/* prix total final */
.mphb-total-price{text-align:right; margin:1.2rem 0; font-size:1rem; color:var(--vr-ink)}
.mphb-total-price .mphb-total-price-field .mphb-price{font-family:"Cormorant Garamond",serif; font-size:1.7rem; color:var(--vr-gold)}

/* erreurs */
.mphb-errors-wrapper{color:#8a1f1f; background:#fbeaea; border:1px solid #e7c3c3; border-radius:6px; padding:.7rem .9rem; font-size:.9rem}/* End custom CSS */