/*==========================================================
	MANDATE
==========================================================*/

.bp2-mandate-view {
    height: 500px;
    overflow-y: auto;

    background: #fdfcf9;
    padding: 30px;

    font-family: "Times New Roman", Georgia, serif;
    font-size: 15px;
    line-height: 1.8;

    color: #222;

    border: 1px solid #ddd;
}

/*==========================================================
	UM REGISTER
==========================================================*/

/* --- CHECKBOX : texte sur toute la largeur --- */
.um-register .um-field-checkbox,
.um-register .um-field-checkbox .um-field-area,
.um-register .um-field-checkbox .um-field-block {
    width: 100% !important;
}

.um-register .um-field-checkbox label {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    white-space: normal !important;
    line-height: 1.4 !important;
}

/* alignement vertical de la case */
.um-register .um-field-checkbox input[type="checkbox"] {
    margin-top: 4px !important;
}


/* --- BOUTON : style UI GREEN BUTTON --- */
.um-register .um-form input[type="submit"],
.um-register .um-button {
    background-color: #21ba45 !important;   /* vert UI */
    border: 1px solid #21ba45 !important;
    color: #ffffff !important;

    font-size: 1.2rem !important;           /* taille de police */
    font-weight: 700 !important;

    padding: 0.85em 1.6em !important;       /* hauteur bouton */
    border-radius: 0.28571429rem !important;

    box-shadow: none !important;
}

/* hover */
.um-register .um-form input[type="submit"]:hover,
.um-register .um-button:hover {
    background-color: #16ab39 !important;
    border-color: #16ab39 !important;
    color: #ffffff !important;
}

/* ==========================================================
	BP2 FAQ
==========================================================*/

.bp2-faq-ask-title{
  color:#ff5960 !important;
  margin-top:40px !important;
  margin-bottom:20px;
}

.bp2-faq-search-title{
  color:#ff5960 !important;
  margin-top:40px !important;
  margin-bottom:20px;
}

.bp2-faq-items-title{
  color:#ff5960 !important;
  margin-top:40px;
  margin-bottom:20px;
}


/* ==================================================
   BP2 — BASE (scopée) + SKINS (Elementor-friendly)
   Règles :
   - .bp2-scope = sandbox BP2 (jamais de pollution globale)
   - .bp2-skin-* = skins optionnels (aucun layout de page)
   - Un skin ne doit JAMAIS imposer un "cadre dans le cadre" si tu veux du 100% Elementor
================================================== */


/* ===============================
   1) BASE BP2 (neutre, scoped)
   → Sert partout, sans casser Elementor
================================ */

.bp2-scope .bp2-field { margin-bottom: 14px; }

.bp2-scope .bp2-label{
  display: block;
  font-weight: 600;
  margin-bottom: 6px;
}

.bp2-scope .bp2-req{ color: #ff5960; }

.bp2-scope .bp2-input{
  width: 100%;
  height: 44px;
  padding: 10px 12px;
  border-radius: 4px;
  border: 1px solid rgba(0,0,0,.15);
  background: #fff;
  outline: none;
}

.bp2-scope .bp2-input:focus{
  border-color: #6ec1e4;
  box-shadow: 0 0 0 1px rgba(110,193,228,.35);
}

.bp2-scope .bp2-actions{
  text-align: center;
  margin-top: 14px;
}

.bp2-scope .bp2-btn{
  min-width: 180px;
  border: none;
  border-radius: 4px;
  padding: 12px 18px;
  cursor: pointer;
}

.bp2-scope .bp2-honeypot{ display: none !important; }

.bp2-scope .bp2-help{
  margin-top: 10px;
  text-align: center;
  font-size: 12px;
  opacity: .85;
}

.bp2-scope .bp2-btn.loading{
  opacity: .75;
  pointer-events: none;
}


/* ===============================
   2) SKIN "SEMANTIC / UM"
   → Style labels/boutons/inputs comme UM
   → IMPORTANT : ne met PAS de cadre sur .bp2-component
     (le cadre doit venir d’Elementor si tu veux "exactement comme à gauche")
================================ */

.bp2-scope.bp2-skin-um .bp2-label{
  font-size: 14px;
  font-weight: 700;
  color: #6ec1e4;
}

.bp2-scope.bp2-skin-um .bp2-input{
  height: 42px;
  border-radius: 4px;
  font-size: 14px;
  padding: 8px 12px;
}

.bp2-scope.bp2-skin-um .bp2-btn{
  background: #6ec1e4;
  color: #fff;
  font-weight: 700;
  border-radius: 6px;
  padding: 12px 22px;
}

.bp2-scope.bp2-skin-um .bp2-btn:hover{
  background: #5bb6d8;
}

.bp2-scope.bp2-skin-um .bp2-help{
  font-size: 13px;
  color: #666;
  line-height: 1.4;
  opacity: 1;
}


/* ===============================
   3) OPTIONNEL : "COMPONENT CARD"
   → Si (et seulement si) tu veux une carte interne
   → À NE PAS utiliser sur la page Connexion si tu veux
     exactement le même rendu que la colonne gauche
================================ */

.bp2-scope.bp2-card .bp2-component{
  background: #fff;
  border-radius: 10px;
  padding: 20px;
  box-shadow: 0 1px 3px rgba(0,0,0,.06);
}


/* ===============================
   4) PAGE CONNEXION : BP2 "NU"
   → Empêche tout cadre interne (zéro "carte dans la carte")
   Usage : mets la classe bp2-login-right sur le widget Elementor du shortcode
================================ */

.bp2-login-right .bp2-component{
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  padding: 0 !important;
  border-radius: 0 !important;
}

/* =========================================
   Calendly wrapper (layout only)
========================================= */

.bp2-calendly-wrapper{
  display: flex;
  justify-content: center;
  width: 100%;
  padding: 16px 0;
}

/* =========================================
   Calendly widget container
   (NE PAS changer la classe)
========================================= */

.calendly-inline-widget{
  position: relative;
  width: 100%;
  max-width: 720px;
  min-height: 820px;
  background: #E8F8FF;
  border-radius: 10px;
  overflow: hidden;
}

/* Mobile */
@media (max-width: 768px){
  .calendly-inline-widget{
    max-width: 100%;
    min-height: 760px;
  }
}

/* =========================================
   Skeleton loader
========================================= */

.calendly-inline-widget::before{
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(
    90deg,
    #f4f6f8 25%,
    #e9eef2 37%,
    #f4f6f8 63%
  );
  background-size: 400% 100%;
  animation: bp2-skeleton 1.4s ease infinite;
  z-index: 1;
}

.calendly-inline-widget::after{
  content: "Chargement du calendrier…";
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.95rem;
  color: #9aa4ad;
  z-index: 2;
}

/* =========================================
   Iframe au-dessus du skeleton
========================================= */

.calendly-inline-widget iframe{
  position: relative;
  z-index: 3;
}

/* =========================================
   Stop skeleton (JS = source de vérité)
========================================= */

.calendly-inline-widget.is-loaded::before,
.calendly-inline-widget.is-loaded::after{
  display: none;
}

/* Optionnel : fallback CSS moderne */
.calendly-inline-widget:has(iframe)::before,
.calendly-inline-widget:has(iframe)::after{
  display: none;
}

/* =========================================
   Animation
========================================= */

@keyframes bp2-skeleton{
  0%   { background-position: 100% 50%; }
  100% { background-position:   0% 50%; }
}

/*==================================================

    SEASON CALENDAR

==================================================*/

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

.season-calendar.calendar {
    width: 100%;
}

.season-calendar.calendar * {
    box-sizing: border-box;
}

/* ===============================
    HORIZONTAL SCROLLER
=============================== */

.season-calendar.calendar .bp2-calendar-cards,
.season-calendar.calendar .ui.cards.bp2-calendar-cards {
    display: flex;
    flex-wrap: nowrap;
    gap: 1rem;
    margin: 0;
    padding: 0.25rem 0.25rem 1rem 0.25rem;
    overflow-x: auto;
    overflow-y: hidden;
    scroll-behavior: smooth;
    -webkit-overflow-scrolling: touch;
    align-items: stretch;
}

.season-calendar.calendar .bp2-calendar-cards::-webkit-scrollbar,
.season-calendar.calendar .ui.cards.bp2-calendar-cards::-webkit-scrollbar {
    height: 10px;
}

.season-calendar.calendar .bp2-calendar-cards::-webkit-scrollbar-thumb,
.season-calendar.calendar .ui.cards.bp2-calendar-cards::-webkit-scrollbar-thumb {
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.20);
}

.season-calendar.calendar .bp2-calendar-cards::-webkit-scrollbar-track,
.season-calendar.calendar .ui.cards.bp2-calendar-cards::-webkit-scrollbar-track {
    background: transparent;
}

/* ===============================
    MONTH CARDS
=============================== */

.season-calendar.calendar .bp2-calendar-cards > .ui.card,
.season-calendar.calendar .ui.cards.bp2-calendar-cards > .ui.card {
    flex: 0 0 360px;
    width: 360px;
    max-width: 360px;
    min-width: 360px;
    margin: 0;
    border-radius: 1rem;
    overflow: hidden;
}

.season-calendar.calendar .ui.card > .content {
    padding: 1rem;
}

.season-calendar.calendar .ui.card > .extra.content {
    padding: 0.9rem 1rem 1rem 1rem;
}

/* ===============================
    CARD HEADER / MONTH NAV
=============================== */

.season-calendar.calendar .header .ui.grid {
    align-items: center;
    margin: 0;
}

.season-calendar.calendar .header .column {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}

.season-calendar.calendar .header h2 {
    margin: 0;
    font-size: 1.2rem;
    line-height: 1.2;
    text-align: center;
}

.season-calendar.calendar .move-left,
.season-calendar.calendar .move-right {
    display: flex;
    align-items: center;
}

.season-calendar.calendar .move-left {
    justify-content: flex-start;
}

.season-calendar.calendar .move-right {
    justify-content: flex-end;
}

.season-calendar.calendar .move-left .button,
.season-calendar.calendar .move-right .button {
    min-width: 2rem;
    min-height: 2rem;
    border-radius: 999px;
}

/* ===============================
    TABLE
=============================== */

.season-calendar.calendar table.ui.table {
    width: 100%;
    margin: 0.75rem 0 0 0;
    table-layout: fixed;
    border-collapse: separate;
    border-spacing: 4px;
    background: transparent;
}

.season-calendar.calendar table.ui.table th,
.season-calendar.calendar table.ui.table td {
    text-align: center;
    vertical-align: middle;
}

.season-calendar.calendar table.ui.table th {
    padding: 0.45rem 0.2rem;
    font-size: 0.82rem;
    font-weight: 700;
    opacity: 0.95;
}

.season-calendar.calendar table.ui.table td {
    padding: 0;
    height: 2.8rem;
    border-radius: 0.6rem;
    transition: transform 0.12s ease, box-shadow 0.12s ease, opacity 0.12s ease;
}

/* ===============================
    DAY CELLS
=============================== */

.season-calendar.calendar td.day {
    cursor: pointer;
    user-select: none;
    -webkit-user-select: none;
    position: relative;
    font-size: 0.95rem;
}

.season-calendar.calendar td.day b {
    display: inline-block;
    line-height: 1;
    font-weight: 700;
}

.season-calendar.calendar td.day:hover {
    transform: translateY(-1px);
    box-shadow: 0 0 0 1px rgba(255,255,255,0.14) inset;
}

.season-calendar.calendar td.day.selected {
    box-shadow:
        0 0 0 2px rgba(255,255,255,0.95) inset,
        0 0 0 1px rgba(0,0,0,0.25);
}

.season-calendar.calendar td.day.blink {
    animation: bp2-season-calendar-blink 0.9s ease-in-out infinite alternate;
}

.season-calendar.calendar td.grey.colored {
    opacity: 0.35;
}

/* ===============================
    SEASON COLORS
=============================== */

.season-calendar.calendar td.day.violet {
    background: #6435c9;
    color: #fff;
}

.season-calendar.calendar td.day.blue {
    background: #2185d0;
    color: #fff;
}

.season-calendar.calendar td.day.green {
    background: #21ba45;
    color: #fff;
}

.season-calendar.calendar td.day.yellow {
    background: #fbbd08;
    color: #1b1c1d;
}

.season-calendar.calendar td.day.red {
    background: #db2828;
    color: #fff;
}

/* fallback empty cells */
.season-calendar.calendar td.grey.colored {
    background: rgba(255,255,255,0.08);
}

/* ===============================
    SELECTION BUTTONS
=============================== */

.season-calendar.calendar .extra.content .ui.buttons,
.season-calendar.calendar .extra.content .ui.tiny.buttons {
    display: flex;
    width: 100%;
    gap: 0.35rem;
    flex-wrap: nowrap;
}

.season-calendar.calendar .extra.content .ui.buttons .button,
.season-calendar.calendar .extra.content .ui.tiny.buttons .button {
    flex: 1 1 0;
    min-width: 0;
    padding-left: 0.45rem;
    padding-right: 0.45rem;
    font-weight: 700;
    border-radius: 0.55rem !important;
}

.season-calendar.calendar .selection.active {
    box-shadow:
        0 0 0 2px rgba(255,255,255,0.95) inset,
        0 0 0 1px rgba(0,0,0,0.25);
}

.season-calendar.calendar .selection.blink {
    animation: bp2-season-calendar-blink 0.9s ease-in-out infinite alternate;
}

/* ===============================
    ACTION BUTTONS ABOVE CALENDAR
=============================== */

.season-calendar-clean.ui.button,
.reset.ui.button {
    min-width: 12rem;
}

/* ===============================
    ANIMATION
=============================== */

@keyframes bp2-season-calendar-blink {
    from {
        filter: brightness(1);
    }
    to {
        filter: brightness(1.18);
    }
}

/* ===============================
    RESPONSIVE
=============================== */

@media screen and (max-width: 1100px) {
    .season-calendar.calendar .bp2-calendar-cards > .ui.card,
    .season-calendar.calendar .ui.cards.bp2-calendar-cards > .ui.card {
        flex: 0 0 340px;
        width: 340px;
        max-width: 340px;
        min-width: 340px;
    }
}

@media screen and (max-width: 768px) {
    .season-calendar.calendar .bp2-calendar-cards,
    .season-calendar.calendar .ui.cards.bp2-calendar-cards {
        gap: 0.75rem;
        padding-bottom: 0.75rem;
    }

    .season-calendar.calendar .bp2-calendar-cards > .ui.card,
    .season-calendar.calendar .ui.cards.bp2-calendar-cards > .ui.card {
        flex: 0 0 300px;
        width: 300px;
        max-width: 300px;
        min-width: 300px;
    }

    .season-calendar.calendar .header h2 {
        font-size: 1.05rem;
    }

    .season-calendar.calendar table.ui.table th {
        font-size: 0.75rem;
    }

    .season-calendar.calendar table.ui.table td {
        height: 2.45rem;
    }

    .season-calendar.calendar .extra.content .ui.buttons .button,
    .season-calendar.calendar .extra.content .ui.tiny.buttons .button {
        font-size: 0.78rem;
        padding-left: 0.3rem;
        padding-right: 0.3rem;
    }
}

@media screen and (max-width: 480px) {
    .season-calendar.calendar .bp2-calendar-cards > .ui.card,
    .season-calendar.calendar .ui.cards.bp2-calendar-cards > .ui.card {
        flex: 0 0 92vw;
        width: 92vw;
        max-width: 92vw;
        min-width: 92vw;
    }

    .season-calendar.calendar .ui.card > .content {
        padding: 0.8rem;
    }

    .season-calendar.calendar .ui.card > .extra.content {
        padding: 0.8rem;
    }

    .season-calendar.calendar table.ui.table {
        border-spacing: 3px;
    }

    .season-calendar.calendar table.ui.table td {
        height: 2.2rem;
    }

    .season-calendar.calendar td.day b {
        font-size: 0.9rem;
    }

    .season-calendar.calendar .move-left .button,
    .season-calendar.calendar .move-right .button {
        min-width: 1.8rem;
        min-height: 1.8rem;
        padding: 0.45rem;
    }
}

/* =========================================
   DIRECT RESERVATION CALENDAR
========================================= */

/* =========================
   GLOBAL SAFETY
========================= */

.dr-calendar,
.dr-calendar * {
  box-sizing: border-box;
}

.dr-calendar {
  width: 100%;
}

/* =========================
   BASE TABLE RESET
========================= */

.dr-calendar table,
.dr-calendar th,
.dr-calendar tr,
.dr-calendar td {
  text-align: center !important;
  border-width: 0 !important;
  font-size: 14px;
}

/* Make Fomantic tables a bit tighter / cleaner inside cards */
.dr-calendar .ui.compact.table {
  margin: 0 !important;
}
.dr-calendar .ui.compact.table th,
.dr-calendar .ui.compact.table td {
  padding: 6px 4px !important;
}

/* Header title spacing */
.dr-calendar .ui.card .header h2 {
  margin: 6px 0 10px 0 !important;
  text-align: center !important;
}

/* =========================
   HORIZONTAL SLIDER (CARDS)
========================= */

/* Neutralize Fomantic "cards" negative margins / inherited layout */
.dr-calendar > .ui.cards.bp2-calendar-cards {
  margin: 0 !important;
  padding: 6px 6px 14px 6px !important;

  display: flex !important;
  flex-wrap: nowrap !important;           /* NEVER stack */
  overflow-x: auto !important;
  overflow-y: hidden !important;

  gap: 18px;
  width: 100% !important;

  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;

  justify-content: flex-start !important;
  align-items: stretch;
}

/* Ensure only direct children behave as slides */
.dr-calendar > .ui.cards.bp2-calendar-cards > .ui.card {
  margin: 0 !important;                   /* kill Fomantic card margins */
  flex: 0 0 100% !important;              /* 1 visible by default */
  max-width: 100% !important;
  width: auto !important;

  scroll-snap-align: center;
  scroll-snap-stop: always;

  overflow: visible !important;           /* avoid label clipping */
}

/* 2 visible */
@media (min-width: 768px) {
  .dr-calendar > .ui.cards.bp2-calendar-cards > .ui.card {
    flex-basis: calc(50% - 18px) !important;
    max-width: calc(50% - 18px) !important;
    scroll-snap-align: start;
  }
}

/* 3 visible */
@media (min-width: 1024px) {
  .dr-calendar > .ui.cards.bp2-calendar-cards > .ui.card {
    flex-basis: calc(33.333% - 18px) !important;
    max-width: calc(33.333% - 18px) !important;
    scroll-snap-align: start;
  }
}

/* Mobile centering robustness (helps when parent has padding) */
.dr-calendar > .ui.cards.bp2-calendar-cards {
  scroll-padding-left: 6px;
  scroll-padding-right: 6px;
}

/* micro spacers (no JS, helps snap / visual centering) */
.dr-calendar > .ui.cards.bp2-calendar-cards::before,
.dr-calendar > .ui.cards.bp2-calendar-cards::after {
  content: "";
  flex: 0 0 0.01px;
}

/* Discreet scrollbar */
.dr-calendar > .ui.cards.bp2-calendar-cards::-webkit-scrollbar {
  height: 8px;
}
.dr-calendar > .ui.cards.bp2-calendar-cards::-webkit-scrollbar-thumb {
  border-radius: 10px;
}

/* Firefox */
.dr-calendar > .ui.cards.bp2-calendar-cards {
  scrollbar-width: thin;
}

/* =========================
   DAY CELLS
========================= */

/* Day cell spacing (compact) */
.dr-calendar td.day {
  width: auto !important;
  line-height: 0.8 !important;
  padding-left: 4px !important;
  padding-right: 4px !important;
  padding-top: 5px !important;
  padding-bottom: 5px !important;

  text-align: center;
  vertical-align: middle;
}

/* circular number label consistency */
.dr-calendar td.day .ui.circular.label {
  min-width: 28px;
  height: 28px;
  line-height: 28px;
  padding: 0 !important;
  border-radius: 999px !important;
}

/* =========================
   DAYS STATES
   td.day + classes:
   clickable / available / selected
   checkin-allowed / checkout-allowed
========================= */

.dr-calendar td.day {
  position: relative;
  overflow: hidden;
}

/* SELECTED */
.dr-calendar td.day.selected {
  background: #dbeafe;
}

.dr-calendar td.day.selected .ui.circular.label {
  background: #3b82f6;
  color: #fff;
}

/* CLICKABLE */
.dr-calendar td.day.clickable:not(.selected) {
  background: #f8fafc;
  cursor: pointer;
}

.dr-calendar td.day.clickable:not(.selected) .ui.circular.label {
  background: #fff;
  color: #111827;
  border: 1px solid #d1d5db;
}

/* AVAILABLE but not clickable */
.dr-calendar td.day.available:not(.clickable):not(.selected) {
  background: #f3f4f6;
}

.dr-calendar td.day.available:not(.clickable):not(.selected) .ui.circular.label {
  background: #e5e7eb;
  color: #6b7280;
}

/* INDISPO */
.dr-calendar td.day:not(.available):not(.clickable):not(.selected) {
  background: #fee2e2;
}

.dr-calendar td.day:not(.available):not(.clickable):not(.selected) .ui.circular.label {
  background: #ef4444;
  color: #fff;
}

/* =========================
   CHECK-IN / CHECK-OUT TRIANGLES (FINAL CLEAN)
========================= */

/* CHECK-IN
   uniquement si disponible ET cliquable */
.dr-calendar td.day.available.clickable.checkin-allowed::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  border-top: 10px solid #22c55e;
  border-right: 10px solid transparent;
  z-index: 2;
  opacity: 0.9;
}

/* CHECK-OUT
   uniquement si cliquable (corrige ton bug visuel) */
.dr-calendar td.day.clickable.checkout-allowed::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: 0;
  border-bottom: 10px solid #3b82f6;
  border-left: 10px solid transparent;
  z-index: 2;
  opacity: 0.9;
}

/* SELECTED (renforcé mais propre) */
.dr-calendar td.day.selected.available.clickable.checkin-allowed::before {
  border-top-color: #16a34a;
  opacity: 1;
}

.dr-calendar td.day.selected.clickable.checkout-allowed::after {
  border-bottom-color: #2563eb;
  opacity: 1;
}

/* HOVER (léger et propre) */
.dr-calendar td.day.clickable:not(.selected):hover {
  background: #eef2ff;
}

.dr-calendar td.day.clickable:not(.selected):hover .ui.circular.label {
  border-color: #93c5fd;
}
/* =========================
   SWEETALERT2 (DR)
   - JS uses: customClass.popup = 'bp2-dr-swal'
             customClass.title = 'bp2-dr-swal-title'
========================= */

/* Optional helper class if you still use it somewhere */
.dr-swal-min {
  width: min(520px, 92vw) !important;
  padding: 26px 22px !important;
}
.dr-swal-min .swal2-title {
  font-size: 34px !important;
  line-height: 1.1 !important;
  margin: 0 !important;
}

/* Main DR swal popup */
.bp2-dr-swal {
  width: min(560px, 92vw) !important;
  padding: 26px 26px !important;
  border-radius: 16px !important;
}

/* Big centered title only */
.bp2-dr-swal-title {
  font-size: 34px !important;
  font-weight: 800 !important;
  line-height: 1.12 !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* remove default swal content spacing if any */
.bp2-dr-swal .swal2-html-container {
  margin: 0 !important;
  padding: 0 !important;
}
.bp2-dr-swal .swal2-actions {
  margin: 0 !important;
  padding: 0 !important;
}

/*=====================================
   PROFILE PHOTO PREVIEW
   Rond 200x200 (150x150 mobile)
   Centrée, avec fade-in, hover et shake
=====================================*/

.bp2-profile-photo-preview {
    width: 200px;
    height: 200px;
    border-radius: 50%;          /* cercle parfait */
    object-fit: cover;           /* recadrage interne */
    object-position: center;     /* centre l'image */
    box-shadow: 0 0 5px rgba(0,0,0,0.2);
    display: block;
    margin: 0 auto;              /* centrage horizontal */
    cursor: pointer;
    opacity: 0;
    animation: bp2FadeIn 0.6s ease forwards;  /* fade-in au chargement */
    transition: transform 0.25s ease, box-shadow 0.25s ease;
}

/* Hover : zoom léger + ombre */
.bp2-profile-photo-preview:hover {
    transform: scale(1.05);
    box-shadow: 0 0 12px rgba(0,0,0,0.3);
}

/* Responsive mobile (<= 500px) */
@media (max-width: 500px) {
    .bp2-profile-photo-preview {
        width: 150px;
        height: 150px;
    }
}

/* Animation fade-in */
@keyframes bp2FadeIn {
    from { opacity: 0; transform: scale(0.95); }
    to   { opacity: 1; transform: scale(1); }
}

/* Animation shake (feedback erreur) */
@keyframes bp2Shake {
    0% { transform: translateX(0); }
    20% { transform: translateX(-8px); }
    40% { transform: translateX(8px); }
    60% { transform: translateX(-6px); }
    80% { transform: translateX(6px); }
    100% { transform: translateX(0); }
}

.bp2-shake {
    animation: bp2Shake 0.5s ease;
}

/*===============================================
   	MANDATE
================================================*/

.iframe-wrap,
iframe.mandate {
  display: block;
  width: 100%;
  border: none;
  min-height: 600px;
  will-change: transform;
  transform: translateZ(0);
  backface-visibility: hidden;
}

/*===============================================
   	PAYWALL
================================================*/
/* Overlay local appliqué à une div */
.bp2-paywall {
  position: relative; /* indispensable pour que l’overlay se positionne */
  overflow: hidden;   /* évite les débordements */
}

.bp2-paywall::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 10;
  background: rgba(255, 255, 255, 0.5);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  cursor: pointer;
}

/* On empêche l’interaction avec le contenu derrière */
.bp2-paywall > * {
  pointer-events: none;
}

.bp2-paywall::after {
  pointer-events: auto; /* clic seulement sur l’overlay */
}
/* Fallback si backdrop-filter n’est pas supporté :
   on floute le contenu avec une classe .bp2-blurred appliquée au wrapper */
.bp2-blurred {
  filter: blur(6px);
}

/*==================================================
    ONBOARDING
====================================================*/

.bp2-onboarding-content
{
	margin-top: 10px;
}

.bp2-onboarding-title
{
	margin-bottom: 20px;
	font-size: 28px;
	line-height: 1.2;
}

.bp2-onboarding-body
{
	margin-bottom: 25px;
}

.bp2-onboarding-body .ui.segment
{
	padding: 25px;
	border-radius: 10px;
}

.bp2-onboarding-body .ui.message
{
	border-radius: 8px;
}

.bp2-onboarding-nav
{
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 15px;
	margin-top: 10px;
}

.bp2-onboarding-nav .button
{
	min-width: 140px;
}

.bp2-onboarding-body .ui.stackable.grid > .column
{
	margin-bottom: 5px;
}

.bp2-onboarding-body .ui.huge.primary.button,
.bp2-onboarding-body .ui.huge.button
{
	margin-top: 10px;
}

@media only screen and (max-width: 767px)
{
	.bp2-onboarding-title
	{
		font-size: 24px;
	}

	.bp2-onboarding-nav
	{
		flex-direction: column;
		align-items: stretch;
	}

	.bp2-onboarding-nav .button
	{
		width: 100%;
		min-width: 0;
	}
}

/*===============================================
   	MAGIC LOGIN
================================================*/

.bp2-magic-form .bp2-honeypot { display: none !important; }
.bp2-magic-form .ui.button.loading { pointer-events: none; opacity: .75; }

/*===============================================
   	PHOTOS
================================================*/

.photos {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px;
  padding: 10px;
}

.photo-wrapper {
  position: relative;
  flex: 0 1 calc(25% - 20px); /* 4 par ligne */
  box-sizing: border-box;
}

.photo-wrapper img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 6px;
}

/* Mobile : 2 par ligne */
@media (max-width: 767px) {
  .photo-wrapper {
    flex: 0 1 calc(50% - 20px);
  }
}

/* Très petit écran : 1 par ligne */
@media (max-width: 480px) {
  .photo-wrapper {
    flex: 0 1 100%;
  }
}

/*===============================================
   	SORTABLE
================================================*/

.dragging {
  opacity: 0.6;
  transform: scale(1.05);
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.2);
  z-index: 1000;
}

/*===============================================
   	LIGHTGALLERY 
================================================*/

.lg-next,
.lg-prev {
    color: #ff5960 !important;
    font-weight: bold !important;
    opacity: 1 !important;
	font-size: 36px !important;
	width: 48px;
    height: 48px;
}

.lg-counter {
    position: absolute !important;
    top: 20px !important;
    left: 50% !important;
    transform: translateX(-50%) !important;
    z-index: 1080 !important;

    /* Texte */
    color: #ff5960;
    font-weight: bold !important;
    font-size: 30px !important;
    line-height: 1.2;

    /* Fond arrondi */
    background-color: #fff;
    border-radius: 50px;
    padding: 8px 20px 12px 20px !important;
    box-shadow: 0 2px 10px rgba(0,0,0,0.2);

    /* Apparence */
    opacity: 0.95 !important;
}

.lg-toolbar .lg-icon {
    color: #ff5960 !important;
    font-weight: bold !important;
    opacity: 1 !important;
	font-size: 36px !important;
	width: 48px;
    height: 48px;
}

/*===============================================
   	ADVISE
================================================*/

.bp2-advise-section-content .new-advise,
.bp2-advise-accordion .new-advise
{
	display: none !important;
}


/*===============================================
   	UM FIELD HONEYPOT
================================================*/

/* Masquer le champ honeypot Ultimate Member */
.um-field-honeypot,
.um-field-honeypot label,
.um-field-honeypot input {
    display: none !important;
    visibility: hidden !important;
    height: 0 !important;
    width: 0 !important;
    overflow: hidden !important;
    position: absolute !important;
    left: -9999px !important;
}

/*===============================================
   	BODY
================================================*/

body {
  overflow-x: hidden;
}

/*===============================================
   	SECTION MODAL
================================================*/

.bp2-section-modal .content { 
	background-color: #e4effc !important; 
}

/*===============================================
	BUTTONS
================================================*/

.bp2-advise-accordion .no-page,
.bp2-section-modal .no-modal
{
	display:none !important;
}

/*===============================================
   	MESSAGE TEXTAREA
================================================*/

textarea.message {
	padding: 1em 1.5em !important;
	background-color: rgb(244, 244, 244) !important;  
	font-size: 15px !important;
	font-style: italic !important;
	font-weight: bold !important;
	color: rgb(118, 118, 118) !important;
	line-height: 1.4285em !important;
	box-shadow: rgb(118, 118, 118) 0px 0px 0px 1px inset, transparent 0px 0px 0px 0px !important;
}

/*===============================================
   	CONTRACT
================================================*/

.contract {
	
	font-family: "Courier New";
	padding-left: 20px !important;
}

.contract .head {
	
	font-size: 20px !important;
	font-weight: bold !important;
	margin-top: 30px !important;
	margin-bottom: 30px !important;
	text-align: center !important;
}

.contract .title {
	
	font-size: 20px !important;
	font-weight: bold !important;
	margin-top: 30px !important;
	margin-bottom: 10px !important;
}

.contract .article {
	
	font-size: 14px !important;
}

/*===============================================
   	DEPOSIT
================================================*/

.deposit {
	
	font-family: "Courier New";
	padding-left: 20px !important;
}

.deposit .head {
	
	font-size: 20px !important;
	font-weight: bold !important;
	margin-top: 30px !important;
	margin-bottom: 30px !important;
	text-align: center !important;
}

.deposit .title {
	
	font-size: 20px !important;
	font-weight: bold !important;
	margin-top: 30px !important;
	margin-bottom: 10px !important;
}

.deposit .article {
	
	font-size: 14px !important;
}

/*===============================================
   	SECTION CONTENT
================================================*/

.bp2-fixed-section-content {
	
	position: fixed !important;
	top: 0px !important;
	left: 0px !important;
	width: 100%  !important;
	height: 100%  !important;
	margin: 0px !important;
	overflow-y: scroll !important;
	z-index: 900 !important;
}

.bp2-fixed-section-content .bp2-enlarge-section-content,
.bp2-fixed-section-content .bp2-reset-section-content {
	
	display: none !important;
}

.bp2-reduce-section-content {
	
	display: none !important;
}


.bp2-fixed-section-content > .bp2-section-content-buttons .bp2-reduce-section-content {
	 
	display: inline !important;
}

/*===============================================
   	International Telephone Input
================================================*/

.iti {
  --iti-path-flags-1x: url('https://www.bnbplanet.net/flags/flags.webp');
  --iti-path-flags-2x: url('https://www.bnbplanet.net/flags/flags@2x.webp');
  --iti-path-globe-1x: url('https://www.bnbplanet.net/flags/globe.webp');
  --iti-path-globe-2x: url('https://www.bnbplanet.net/flags/globe@2x.webp');
}

/*===============================================
   	Lightgallery
================================================*/

.lg-backdrop {
    background-color: #EEFEEE;
}

/* background of the thumbnail bar */
.lg-outer .lg-thumb-outer {
    background-color: #EEFEEE;
}
/* border of thumbnails */
.lg-outer .lg-thumb-item {
    border-color: #EEFEEE;
}

/*===============================================
   	SEMANTIC
================================================*/

.slice.sliced_payment_form #payment-form {  
	padding-left: 10px !important;  
	padding-right: 10px !important;  
} 

/*===============================================
   	SEMANTIC
================================================*/

.bp2-form.ui.loading.form::before  {
    background: transparent !important;
}

/*===============================================
   		OLD
================================================*/


/* loading overlay */

.lo {
    display: none;
    position: absolute;
    width: 100%;
    height: 100%;
    z-index: 10000;
}

.cursor-pointer {
    cursor: pointer !important;
}

/* PLATFORM ICONS */

.platform-icons {
    text-align: center !important;
}


/* UM */

.um-account-profile-link {
    display: none !important;
}

.um-field-label {
    color: #6ec1e4 !important;
    border-bottom: none !important;
}

/* FIELDS */

input.bp-field {
	background: white !important;
}

input.bp-field.title {
	color: red !important;
	font-size: 18px !important;
	font-weight: bold !important;
}

.no-select {
    user-select: none;
    -webkit-user-select: none;
    -ms-user-select: none;
    -webkit-touch-callout: none;
    -o-user-select: none;
    -moz-user-select: none;
}


select.bp-field,
input.bp-field[type=text],
input.bp-field[type=number] {
    height: 44px !important;
}

.bp-field-label {
    font-size: 14px !important;
    color: #6ec1e4 !important;
    font-weight: bold !important;
}

/* GMAP */

.map  {
    min-height: 500px !important;
    width: 100% !important;
    border-radius: 10px !important;
}

/* PLATEFORME ICONS */

div.bp-platform-icons {

}

a.bp-platform-icon {
	margin-left: 5px !important;
	margin-right: 5px !important;
	display:inline-block !important;
}

/* BP */

.bp-hidden {
    display: none;
}

.bp-display-inline {
    display: inline !important;
}

.bp-display-block {
    display: block !important;
}

.bp-red {
    color: #ff5960 !important;
}
.bp-green {
    color: #23A455 !important;
}
.bp-bold {
    font-weight: bold !important;
}
.bp-centered, .bp-center {
    text-align: center !important;
}

.bp-right {
    text-align: right !important;
}

.bp-border-null {
    border: none !important;
}

.bp-margin-null {
    margin: 0 !important;
}

.bp-margin-xxs {
    margin-top: 5px !important;
    margin-bottom: 5px !important;
}

.bp-margin-xs {
    margin-top: 10px !important;
    margin-bottom: 10px !important;
}

.bp-margin-s {
    margin-top: 20px !important;
    margin-bottom: 20px !important;
}

.bp-margin-l {
    margin-top: 30px !important;
    margin-bottom: 30px !important;
}

.bp-margin-xl {
    margin-top: 40px !important;
    margin-bottom: 40px !important;
}

.bp-margin-xxl {
    margin-top: 40px !important;
    margin-bottom: 40px !important;
}

.bp-margin-top-null {
    margin-top: 0px !important;
}

.bp-margin-top-xxs {
    margin-top: 5px !important;
}

.bp-margin-top-xs {
    margin-top: 10px !important;
}

.bp-margin-top-s {
    margin-top: 20px !important;
}

.bp-margin-top-l {
    margin-top: 30px !important;
}

.bp-margin-top-xl {
    margin-top: 40px !important;
}

.bp-margin-top-xxl {
    margin-top: 50px !important;
}

.bp-margin-bottom-null {
    margin-bottom: 0px !important;
}

.bp-margin-bottom-xxs {
    margin-bottom: 5px !important;
}

.bp-margin-bottom-xs {
    margin-bottom: 10px !important;
}

.bp-margin-bottom-s {
    margin-bottom: 20px !important;
}

.bp-margin-bottom-l {
    margin-bottom: 30px !important;
}

.bp-margin-bottom-xl {
    margin-bottom: 40px !important;
}

.bp-margin-bottom-xxl {
    margin-bottom: 50px !important;
}

.bp-padding-null {
    padding: 0 !important;
}

.bp-padding-xxs {
    padding-top: 5px !important;
    padding-bottom: 5px !important;
}

.bp-padding-xs {
    padding-top: 10px !important;
    padding-bottom: 10px !important;
}

.bp-padding-s {
    padding-top: 20px !important;
    padding-bottom: 20px !important;
}

.bp-padding-l {
    padding-top: 30px !important;
    padding-bottom: 30px !important;
}

.bp-padding-xl {
    padding-top: 40px !important;
    padding-bottom: 40px !important;
}

.bp-padding-xxl {
    padding-top: 40px !important;
    padding-bottom: 40px !important;
}

.bp-padding-top-null {
    padding-top: 0px !important;
}

.bp-padding-top-xxs {
    padding-top: 5px !important;
}

.bp-padding-top-xs {
    padding-top: 10px !important;
}

.bp-padding-top-s {
    padding-top: 20px !important;
}

.bp-padding-top-l {
    padding-top: 30px !important;
}

.bp-padding-top-xl {
    padding-top: 40px !important;
}

.bp-padding-top-xxl {
    padding-top: 50px !important;
}

.bp-padding-bottom-null {
    padding-bottom: 0px !important;
}

.bp-padding-bottom-xxs {
    padding-bottom: 5px !important;
}

.bp-padding-bottom-xs {
    padding-bottom: 10px !important;
}

.bp-padding-bottom-s {
    padding-bottom: 20px !important;
}

.bp-padding-bottom-l {
    padding-bottom: 30px !important;
}

.bp-padding-bottom-xl {
    padding-bottom: 40px !important;
}

.bp-padding-bottom-xxl {
    padding-bottom: 50px !important;
}


.bp-color-white {
    color: white !important;
}

.bp-color-red {
    color: #ff5960 !important;
}

.bp-background-blue {
    background-color: white !important;
    color: white !important;
    font-weight: bold !important;
}

.bp-background-lightblue {
    background-color: #E8F8FF !important;
}

.bp-background-lightgrey {
    background-color: #fafafa !important;
}

.bp-background-red {
    background-color: #ff5960 !important;
    color: white !important;
    font-weight: bold !important;
}

.bp-background-lightred {
    background-color: #F2E3E4 !important;
}

/* SEMANTIC */

.ui.tag.label, .ui.tag.labels .label {
    padding-left: 1em !important;
    padding-right: 1em !important;
}

.ui.blue.button, .ui.blue.label, .ui.blue.buttons .ui.button, .ui.blue.labels .ui.label {
    background: #6EC1E4 !important;
}

.ui.red.button, .ui.red.label, .ui.red.buttons .ui.button, .ui.red.labels .ui.label {
    background: #FF5960 !important;
}

.ui.orange.button, .ui.orange.label, .ui.orange.buttons .ui.button, .ui.orange.labels .ui.label {
    background: #ddb982 !important;
}


.ui.search {
    margin-bottom: 20px  !important;
}



/* CLIENTS PROSPECTS */

div.clients-cards, div.prospects-cards {
    text-align: center  !important;
}

a.client-card, a.prospect-card {
    display: inline-block !important;
    text-align: center  !important;
    margin-top: 20px  !important;
    margin-bottom: 0px  !important;
    margin-left: 20px  !important;
    margin-right: 20px  !important;
}

a.client-card img.avatar, a.prospect-card img.avatar {

    width: 150px  !important;
    height: 150px  !important;
    border-style: solid  !important;
    border-width: 4px  !important;
    border-color: #6ec1e4  !important;
    border-radius: 50%  !important;

}

a.client-card h5.display-name, a.prospect-card h5.display-name {
    margin-top: 5px  !important;

}

/* SWIPER */
.swiper-container {
  width: 100% !important;
  height: 100% !important;
  border: 5px solid;
  border-radius: 10px;
  border-color: white;
}

.swiper-slide {
  background-position: center !important;
  background-size: cover !important;
  text-align: center !important;
}

.swiper-slide img {
  display: inline !important;
}

.swiper-pagination {
    top: 20px !important;
    color: #ff5960 !important;
    font-size: 30px !important;
    font-weight: bold !important;
}

/* SWAL */
.swal-text {
    line-height: 30px !important;
}

.swal2-content {
    text-align: justify !important;
    text-justify: auto !important;
    padding-left: 10px !important;
    padding-right: 10px !important;
}

.swal2-html-container {
    font-weight: bold !important;
    line-height: 1.5 !important;
}

.swal2-html-container textarea {
    overflow-y: scroll !important;
}


.ui.search .results {
    background: #6EC1E4 !important;
}

.ui.search .results .result:hover {
    background: #ff5960 !important;
}
.ui.search .results .result .content .title {
    color: white !important;
}


.bp-fields-section-title {
    margin-top: 20px !important;
}

select {

  /* styling */
  background-color: white;
  border: thin solid blue;
  border-radius: 4px;
  display: inline-block;
  font: inherit;
  line-height: 1.5em;
  padding: 0.5em 3.5em 0.5em 1em;

  /* reset */

  margin: 0;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  -webkit-appearance: none;
  -moz-appearance: none;
}


/* arrows */

select.classic {
  background-image:
    linear-gradient(45deg, transparent 50%, blue 50%),
    linear-gradient(135deg, blue 50%, transparent 50%),
    linear-gradient(to right, skyblue, skyblue);
  background-position:
    calc(100% - 20px) calc(1em + 2px),
    calc(100% - 15px) calc(1em + 2px),
    100% 0;
  background-size:
    5px 5px,
    5px 5px,
    2.5em 2.5em;
  background-repeat: no-repeat;
}
/*
select.classic:focus {
  background-image:
    linear-gradient(45deg, white 50%, transparent 50%),
    linear-gradient(135deg, transparent 50%, white 50%),
    linear-gradient(to right, gray, gray);
  background-position:
    calc(100% - 15px) 1em,
    calc(100% - 20px) 1em,
    100% 0;
  background-size:
    5px 5px,
    5px 5px,
    2.5em 2.5em;
  background-repeat: no-repeat;
  border-color: grey;
  outline: 0;
}
*/


/*
SEMANTIC
*/

.ui.red.label, .ui.red.labels .label {
    background-color: #ff5960!important;
    border-color: #ff5960!important;
    color: #fff!important;
}

/* avatar */

.client-avatar,
.agent-avatar {
    text-align: center;
}

.client-avatar-left,
.agent-avatar-left {
    text-align: left;
}

.client-avatar-left .client-avatar-image,
.agent-avatar-left .agent-avatar-image,
.client-avatar .client-avatar-image,
.agent-avatar .agent-avatar-image {
    max-width: 100px;
    border-radius: 50%;
    border: solid 3px #6ec1e4;
}

.centered {
	text-align:center !important;
}

h1,h4 {
	color:#ff5960 !important;
	font-weight: bold;
}

h2,h3,h5,h6 {
	color:#6ec1e4 !important;
	font-weight: bold;
}

.entry-title {
	text-align:center !important;
}


/* UM */

.um-postmessage {
    font-size: 20px !important;
    font-weight:  bold !important;
    color:#6ec1e4 !important;
    line-height: 1.5 !important;
}

.um-terms-conditions-content {
	height:200px;
	overflow: auto;
	font-size: 12px;
	padding:5px;
	margin-bottom:10px;
	border: 2px solid #ff5960;
}

.um-faicon-caret-up {
	color: #ff5960
}

.um *, .um ::before, .um ::after {
    box-sizing: border-box !important;
}


.um-profile-nav {
	background: #6EC1E4 !important;
}

.um-profile-headericon {
	color:#6EC1E4;
}
.um-profile-headericon:hover {
	color:##ff5960;
}

.um-faicon-cog,.um-faicon-check {
	font-size: 60px !important;
	color: #6EC1E4 !important;
}

.um-profile-edit i.um-faicon-cog:hover {
	animation:none;
}

.elementor-message-success {
    color: #61ce70;;
}

.edit-sections-menu {
    text-align:center;
}

.edit-section-link {
    font-size: 14px;
    margin-left: 10px;
}


.annonce-tag {
    text-align: center;
    padding: 10px;
    color: white;
    font-weight: bold;
}

.annonce-tag-success {
    background: green;
}

.annonce-tag-warning {
    background: orange;
}

.annonce-tag-danger {
    background: #ff5960;
}

.blob {
  background: black;
  border-radius: 50%;
  box-shadow: 0 0 0 0 rgba(0, 0, 0, 1);
  padding: 5px !important;
  margin: 50x !important;
  transform: scale(1);
  animation: pulse-black 2s infinite;
}

.blob.white {
  background: white;
  color: red;
  font-weight: bold;
  box-shadow: 0 0 0 0 rgba(255, 255, 255, 1);
  animation: pulse-white 2s infinite;
}

@keyframes pulse-white {
  0% {
    transform: scale(0.95);
    box-shadow: 0 0 0 0 rgba(255, 255, 255, 0.7);
  }

  70% {
    transform: scale(1);
    box-shadow: 0 0 0 10px rgba(255, 255, 255, 0);
  }

  100% {
    transform: scale(0.95);
    box-shadow: 0 0 0 0 rgba(255, 255, 255, 0);
  }
}


.blink {
  animation: blinker 0.75s linear infinite;
}

.blink-fast {
  animation: blinker 0.50s linear infinite;
}

.blink-slow {
  animation: blinker 1s linear infinite;
}

@keyframes blinker {
  50% {
    opacity: 0.3;
  }
}

/*
.logged-in-as {
    display: none;
}
*/
.comment-content {
    border-color: #6ec1e4 !important;
    border-radius: 10px;
    border-width:2px !important;
}

/**
 * The CSS shown here will not be introduced in the Quickstart guide, but shows
 * how you can use CSS to style your Element's container.
 */
.StripeElement {
  box-sizing: border-box;

  height: 40px;

  padding: 10px 12px;

  border: 1px solid transparent;
  border-radius: 4px;
  background-color: white;

  box-shadow: 0 1px 3px 0 #e6ebf1;
  -webkit-transition: box-shadow 150ms ease;
  transition: box-shadow 150ms ease;
}

.StripeElement--focus {
  box-shadow: 0 1px 3px 0 #cfd7df;
}

.StripeElement--invalid {
  border-color: #fa755a;
}

.StripeElement--webkit-autofill {
  background-color: #fefde5 !important;
}

/**
 * Fields
 */

.bp-field-form {
    margin: 10px 0 10px 0 !important;
}

/**
 * Labels
 */

.bp-selection-labels {
    max-height:300px;
    border-radius: 10px;
    padding: 10px;
    overflow-y: scroll;
    background: #ddd;
}

/**
 * CALENDAR
 */


.calendar .card {
	overflow-x: scroll !important;
} 
 
.calendar table,
.calendar th,
.calendar tr,
.calendar td {
	text-align: center !important;
	border-width: 0 !important;
	font-size: 14px;
	
}

.calendar td.day {
	width:auto !important;
	line-height: 0.8 !important;
	padding-left: 4px !important;
	padding-right: 4px !important;
	padding-top: 5px !important;
	padding-bottom: 5px !important;
}


.calendar td span.availability,
.calendar td span.price,
.calendar td span.min-stay {
	font-size: 10px;
}

.calendar td.selected {
	
	background-color: lightgrey !important;
    color: 	white !important;
    cursor: not-allowed !important;
}


.day.inactive {
    background-color: lightgrey !important;
    color: 	#F5F5F5 !important;
    cursor: not-allowed !important;
}

/**
 * BOOKING CALENDAR
 */

.booking-calendar .day {
    position: relative;
    text-align: center;
    vertical-align: middle;
}

/* Couleurs */
.booking-calendar .day.available  { background-color: #c8f7c5; }
.booking-calendar .day.blocked    { background-color: #ffe7ad; }
.booking-calendar .day.booked     { background-color: #f5b5b5; }

/* Triangles */
.booking-calendar .day.checkin::before {
    content: '';
    position: absolute;
    top: 0; left: 0;
    width: 0; height: 0;
    border-top: 10px solid #1EAE5D; /* vert foncé */
    border-right: 10px solid transparent;
}

.booking-calendar .day.checkout::after {
    content: '';
    position: absolute;
    bottom: 0; right: 0;
    width: 0; height: 0;
    border-bottom: 10px solid #E87C24; /* orange */
    border-left: 10px solid transparent;
}


/**
 * Signature pad
 */

.signature-pad {
  position: relative;
  width: 404px;
  height: 204px;
  -moz-user-select: none;
  -webkit-user-select: none;
  -ms-user-select: none;
  user-select: none;
  padding-left: 0;
  padding-right: 0;
  margin-left: auto;
  margin-right: auto;
  display: block;
  border: 2px dashed red; 
}

.signature-pad canvas {
  position: absolute;
  left: 0;
  top: 0;
  width:400px;
  height:200px;
  background-color: lightgrey;
}

/* ==========================================================

   PROPERTY CALENDAR
 
========================================================== */

.property-calendar .ui.card .ui.stackable.grid {
  row-gap: 10px; /* iOS/Safari OK */
}
.property-calendar .ui.card .ui.stackable.grid > .row {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}
.property-calendar .ui.card .ui.stackable.grid > .row > .column {
  padding-top: 6px !important;
  padding-bottom: 6px !important;
}

.property-calendar .ui.card .field {
  margin: 0 !important;
}

.property-calendar select[data-selection]{
  width: 100% !important;
  height: 44px !important;

  padding: 0 44px 0 12px !important; /* place pour chevron */
  border-radius: 8px !important;

  border: 1px solid rgba(34,36,38,.25) !important;
  background-color: #fff !important;

  font-size: 14px !important;
  font-weight: 700 !important;
  color: rgba(0,0,0,.75) !important;

  outline: none !important;
  box-shadow: none !important;

  /* natif */
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;

  /* chevron (SVG inline) */
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 20 20'%3E%3Cpath fill='%2399A0A6' d='M5.3 7.3a1 1 0 0 1 1.4 0L10 10.6l3.3-3.3a1 1 0 1 1 1.4 1.4l-4 4a1 1 0 0 1-1.4 0l-4-4a1 1 0 0 1 0-1.4z'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 14px center;
  background-size: 14px 14px;
}
.property-calendar select[data-selection]:focus{
  border-color: rgba(33,133,208,.55) !important;
  box-shadow: 0 0 0 3px rgba(33,133,208,.12) !important;
}

.property-calendar select[data-selection]:disabled{
  opacity: .55 !important;
  cursor: not-allowed !important;
}

.property-calendar select[data-selection].is-empty{
  background-color: #fff !important;
  color: rgba(0,0,0,.65) !important;
}

.property-calendar select[data-selection].is-selected{
  border-color: rgba(33,186,69,.75) !important;
  box-shadow: 0 0 0 3px rgba(33,186,69,.15) !important;
}

.property-calendar select[data-selection] option[value=""],
.property-calendar select[data-selection] option[value="0"]{
  color: rgba(0,0,0,.45);
}

.property-calendar select[data-selection].blink{
  animation: bp2_select_blink 1.1s infinite;
}
@keyframes bp2_select_blink {
  0%,100% { box-shadow: 0 0 0 3px rgba(33,133,208,.10); }
  50%     { box-shadow: 0 0 0 6px rgba(33,133,208,.18); }
}

.property-calendar .ui.buttons {
  display: flex !important;
  justify-content: center !important;
  flex-wrap: wrap !important;
  width: 100%;
  gap: 6px;
}

.property-calendar .ui.buttons .button {
  flex: 0 0 auto;
}

.property-calendar.calendar .ui.cards {
  margin: 0 !important;
  padding: 8px 8px 14px 8px !important;

  display: flex !important;
  flex-wrap: nowrap !important;
  overflow-x: auto !important;
  overflow-y: hidden !important;

  gap: 18px;
  width: 100% !important;

  justify-content: flex-start !important;
  align-items: flex-start !important;

  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;

  scroll-padding-left: 8px;
  scroll-padding-right: 8px;

  scrollbar-width: thin;
}

.property-calendar.calendar .ui.cards::before,
.property-calendar.calendar .ui.cards::after {
  content: "";
  flex: 0 0 0.01px;
}

.property-calendar.calendar .ui.cards > .ui.card {
  margin: 0 !important;

  flex: 0 0 100% !important;
  max-width: 100% !important;
  width: auto !important;

  align-self: flex-start !important;
  height: auto !important;
  min-height: 0 !important;

  overflow-x: hidden !important;
  overflow-y: visible !important;

  border-radius: 10px;
  scroll-snap-align: center;
  scroll-snap-stop: always;
}

@media (min-width: 768px) and (max-width: 1023px) {
  .property-calendar.calendar .ui.cards > .ui.card {
    flex-basis: calc(50% - 18px) !important;
    max-width: calc(50% - 18px) !important;
    scroll-snap-align: start;
  }
}

@media (min-width: 1024px) {
  .property-calendar.calendar .ui.cards > .ui.card {
    flex-basis: calc(33.333% - 18px) !important;
    max-width: calc(33.333% - 18px) !important;
    scroll-snap-align: start;
  }
}

.property-calendar.calendar .ui.cards::-webkit-scrollbar {
  height: 8px;
}
.property-calendar.calendar .ui.cards::-webkit-scrollbar-thumb {
  border-radius: 10px;
}

/**
 * Gallery
*/
/*
.gallery .photo input.check-photo {
	display: none !important;
}

.gallery .photo input.check-photo:checked ~ img {
	opacity: 0.4 !important;
}

.gallery .photo input.check-photo:checked ~ i {
	display: none !important;
}

.gallery .photo input.check-photo:checked ~ a.label.photo-number {
	display: none !important;
}

.gallery .photo input.check-photo ~ a.label.move-message {
	display: none !important;
}

.gallery .photo input.check-photo:checked ~ a.label.move-message {
	display: block !important;
}

.gallery .photo a.label.move-message {
	display:none !important;
	z-index:100 !important;
	position:absolute !important;
	top:0 !important;
	left:0 !important;
	width:100% !important;
	height:100% !important;
	opacity:0.3 !important;
}

.gallery .photo i.delete-photo {
	position:absolute !important;
	top:5px !important;
	right:5px !important;
}

.gallery .photo i.enlarge-photo {
	position:absolute !important;
	top:5px !important;
	left:5px !important;
}

.gallery .photo a.photo-number {
	position:absolute !important;
	bottom:5px !important;
	left: 50%;
	transform: translate(-50%,0%) !important;
}
*/