.icon-custom {
    font-size: 22px;  /* Augmenter ou diminuer selon le besoin */
    color: #fff;      /* S'assurer qu'elles sont bien visibles */
    margin: 0 10px;   /* Ajouter un espacement homogène entre les icônes */
}

/* Style général des colonnes avec image */
.esbc_bg-image {
    position: relative;
    background-size: cover;
    background-position: center;
    color: white; /* Texte blanc pour une meilleure lisibilité */
    padding: 20px;
    border-radius: 8px; /* Coins arrondis */
}

/* Overlay sombre pour améliorer le contraste */
.esbc_bg-image .esbc_overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.6); /* Assombrir encore plus */
}

/* S'assurer que le texte est bien visible */
.esbc_bg-image .link-section {
    position: relative;
    z-index: 2;
}

/* Forcer la couleur du texte en blanc */
.esbc_bg-image a {
    color: white !important;
    text-shadow: 1px 1px 5px rgba(0, 0, 0, 0.7); /* Ombre légère pour plus de contraste */
    font-weight: bold;
}

/* Effet de survol : sous-ligné au lieu de changer de couleur */
.esbc_bg-image a:hover {
    text-decoration: underline;
}

/* Amélioration du titre */
.esbc_bg-image h5 {
    font-size: 20px;
    text-transform: uppercase;
    font-weight: bold;
    margin-bottom: 10px;
}

/* Espacement entre les éléments */
.esbc_bg-image ul.list {
    padding: 0;
    list-style: none;
}

.esbc_bg-image ul.list li {
    padding: 5px 0;
}

/* Animation pour un effet de mise en avant */
.esbc_bg-image {
    transition: transform 0.3s ease, opacity 0.3s ease;
}

.esbc_bg-image:hover {
    transform: scale(1.02);
}




/* --- Diaporama (hauteur fixe et crop) --- */
.layout-home4 .slider-image {
  height: 600px !important;    /* Hauteur fixe pour correspondre au crop */
  min-height: 300px;
  max-height: 80vh;
  overflow: hidden;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #000; /* Optionnel : fond noir autour si image trop étroite */
}

.layout-home4 .slider-image img.bg-img {
  height: 100% !important;
  width: auto !important;
  max-width: 100%;
  object-fit: cover;
  object-position: center;
  transition: all 0.4s cubic-bezier(.68,-0.55,.27,1.55);
  display: block;
  margin: 0 auto;
}

@media (max-width: 991px) {
  .layout-home4 .slider-image {
    height: 350px !important;  /* Par exemple, réduit à 350px sur mobile/tablette */
  }
}
@media (max-width: 575px) {
  .layout-home4 .slider-image {
    height: 220px !important;  /* Encore plus petit sur smartphone */
  }
}


.slider-link-fix {
  position: relative;
  z-index: 1000;
}




.esbc_charter-scroll-wrapper {
    position: relative;
}

.esbc_charter-scroll {
    display: flex;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    gap: 24px;
    padding-bottom: 10px;
    padding-inline-end: 40px; /* 🔥 Ajout essentiel pour ne pas couper la dernière carte */
    scrollbar-width: none;
}
.esbc_charter-scroll::-webkit-scrollbar {
    display: none;
}


.esbc_charter-card {
    flex: 0 0 auto;
    width: 270px;
    scroll-snap-align: start;
    background: #fff;
    border-radius: 4px;
    box-shadow: 0 4px 12px rgba(0,0,0,0.1);
    overflow: hidden;
}

.esbc_charter-arrow {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    background: #ffffff;
    border: 1px solid #ccc;
    border-radius: 50%;
    width: 44px;
    height: 44px;
    display: flex;
    justify-content: center;
    align-items: center;
    cursor: pointer;
    z-index: 10;
    box-shadow: 0 0 6px rgba(0,0,0,0.2);
}
.esbc_charter-arrow.left { left: -22px; }
.esbc_charter-arrow.right { right: -22px; }

.esbc_charter-card {
    height: 460px; /* hauteur identique pour toutes */
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}



/* [round7 2026-11-03] brand palette only (#005f73, #56cfe1, #001d3d, white) */
/* A4: carousel dots visible on every photo and at every breakpoint */
.property-section .property-box .property-image .property-slider .slick-dots { display: block; }
.property-section .property-box .property-image .property-slider .slick-dots li button::before,
.property-section .property-box .property-image .property-slider .slick-dots li button:before {
    color: #ffffff; opacity: .85; text-shadow: 0 0 3px rgba(0, 29, 61, .35); }
.property-section .property-box .property-image .property-slider .slick-dots li.slick-active button::before,
.property-section .property-box .property-image .property-slider .slick-dots li.slick-active button:before {
    color: #56cfe1; opacity: 1; font-size: 16px; text-shadow: 0 0 2px #ffffff, 0 0 4px rgba(0, 29, 61, .9); }
@media (max-width: 767px) {
    .property-section .property-box .property-image .property-slider .slick-dots li.slick-active button::before,
    .property-section .property-box .property-image .property-slider .slick-dots li.slick-active button:before { font-size: 13px; }
}
/* A3: "Prix sur demande" badge + "Demander un devis" on listing cards */
.yfs-quote-row { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.yfs-badge-request { display: inline-block; background: #005f73; color: #ffffff; font-size: 13px; font-weight: 600; line-height: 1.2;
    padding: 5px 10px; border-radius: 20px; letter-spacing: .2px; }
.property-box .property-details .yfs-quote-btn { padding: 5px 14px; font-size: 13px; line-height: 1.2; text-transform: none; }
/* A1: single option chosen automatically and locked */
.dropdown-toggle.yfs-locked { cursor: default; color: #005f73; font-weight: 600; }
.dropdown-toggle.yfs-locked::after, .dropdown-toggle.yfs-locked .fa-angle-down { display: none; }
.dropdown-toggle.yfs-locked > span::after { content: " \2713"; color: #005f73; }
/* A9: enquiry form labels */
.yfs-enquiry-form .form-label { font-size: 13px; font-weight: 600; color: #001d3d; margin-bottom: 4px; }

/* [phase2] News cards: equal height, clamped excerpt, CTA on its own row */
.yfs-news-grid .grid-item {
  display: flex;
}
.yfs-news-grid .blog-wrap.yfs-news-card {
  display: flex;
  flex-direction: column;
  width: 100%;
  height: 100%;
  min-height: 100%;
}
.yfs-news-grid .blog-wrap.yfs-news-card .blog-image img {
  width: 100%;
  height: 200px;
  object-fit: cover;
}
.yfs-news-grid .blog-wrap.yfs-news-card .blog-details {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  padding-bottom: 0.75rem !important;
  position: static !important;
}
.yfs-news-grid .blog-wrap.yfs-news-card .yfs-news-excerpt {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  line-clamp: 3;
  overflow: hidden;
  text-overflow: ellipsis;
  margin-bottom: 0.75rem;
  min-height: 4.5em;
}
.yfs-news-grid .blog-wrap.yfs-news-card .yfs-news-cta {
  margin-top: auto;
  align-self: flex-start;
  position: static !important;
  margin: 0 0 0.25rem 0 !important;
}
@media (max-width: 575.98px) {
  .yfs-news-grid .blog-wrap.yfs-news-card .blog-image img { height: 180px; }
  .yfs-news-grid .blog-wrap.yfs-news-card .yfs-news-excerpt { -webkit-line-clamp: 3; line-clamp: 3; }
}
@media (min-width: 576px) and (max-width: 991.98px) {
  .yfs-news-grid .blog-wrap.yfs-news-card .yfs-news-excerpt { -webkit-line-clamp: 3; line-clamp: 3; }
}

/* [phase2] H1 replaces breadcrumb/page title h2 — keep prior visual weight */
.breadcrumb-section .breadcrumb-content div h1 {
  color: #ffffff;
  font-size: calc(18px + (36 - 18) * ((100vw - 320px) / (1920 - 320)));
  line-height: 1.2;
  display: inline-block;
}
.breadcrumb-section .breadcrumb-content div.text-dark h1 {
  color: #1c2c3b;
}
/* Home hero: non-first slides use h2 but must match the h1 title look */
.layout-home3 .banner-3 h2,
.layout-home3 .banner-3 h2.yfs-h1-look {
  line-height: 1.5;
  color: #586167;
  margin: 20px 0;
  font-size: calc(26px + (42 - 26) * ((100vw - 320px) / (1920 - 320)));
}
@media (max-width: 767.98px) {
  .layout-home3 .banner-3 h2,
  .layout-home3 .banner-3 h2.yfs-h1-look {
    color: #ffffff;
  }
}
@media (min-width: 768px) {
  .layout-home3 .banner-3 h2,
  .layout-home3 .banner-3 h2.yfs-h1-look,
  .layout-home3 .banner-3 p {
    width: auto;
    max-width: none;
  }
}
/* Demoted CMS / breadcrumb titles keep the old H1 look */
.yfs-h1-look {
  /* inherits context; breadcrumb + CMS keep visual weight of h1 */
}
.breadcrumb-section .breadcrumb-content h2.yfs-h1-look {
  font-size: calc(18px + (36 - 18) * ((100vw - 320px) / (1920 - 320)));
  line-height: 1.2;
  display: inline-block;
}


/* [phone 2026-11-05] Public site mobile polish (390px) */

/* Back-to-top: clear of copyright/social + iOS Safari toolbar + safe-area (real iPhone follow-up 2) */
@media (max-width: 767.98px) {
  body .tap-top.top,
  .tap-top.top {
    /* Clear copyright/social + Safari toolbar + safe-area; stay on the far-right
       edge so scrolling thumbs (centre/lower content) are less likely to land on it. */
    bottom: calc(12.5rem + env(safe-area-inset-bottom, 0px)) !important;
    right: 12px !important;
    z-index: 40 !important;
  }
  body .tap-top,
  .tap-top {
    width: 44px !important;
    height: 44px !important;
    min-width: 44px;
    min-height: 44px;
    max-width: 44px;
    max-height: 44px;
    padding: 0 !important;
    margin: 0;
    display: flex !important;
    align-items: center;
    justify-content: center;
    overflow: hidden; /* clip decorative ::after to the visible 44px */
    box-sizing: border-box;
    touch-action: manipulation;
    -webkit-user-select: none;
    user-select: none;
    -webkit-tap-highlight-color: transparent;
  }
  .tap-top::after {
    pointer-events: none; /* shadow layer must not enlarge the hit target */
  }
  /* Keep it out of the open hamburger drawer (language/social cluster). */
  body.yfs-nav-open .tap-top {
    visibility: hidden !important;
    pointer-events: none !important;
  }
  .tap-top > div,
  .tap-top > div i {
    display: flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
    pointer-events: none; /* clicks land on .tap-top itself */
  }
  /* Sticky "See more info" / filter bar: clear Safari toolbar + home indicator */
  .mobile-fixed-filter {
    bottom: 0 !important;
    padding-bottom: calc(12px + env(safe-area-inset-bottom, 0px) + 3.25rem) !important;
    z-index: 1060;
  }
  /* Extra scroll room so copyright/last links clear that sticky bar when present.
     Targets the existing light footer, not a restyled footer. */
  body:has(.mobile-fixed-filter) footer.footer-light {
    padding-bottom: calc(3.75rem + env(safe-area-inset-bottom, 0px));
  }
}

/* News titles: underline only on real hover (not stuck after tap) */
.yfs-news-grid .blog-wrap .blog-details a::after,
.yfs-news-grid .blog-wrap .blog-details h5 a::after {
  width: 0 !important;
}
.yfs-news-grid .blog-wrap .blog-details h5 a {
  text-decoration: none;
}
@media (hover: hover) and (pointer: fine) {
  .yfs-news-grid .blog-wrap:hover .blog-details a::after,
  .yfs-news-grid .blog-wrap:hover .blog-details h5 a::after {
    width: 100% !important;
  }
  .yfs-news-grid .blog-wrap:hover .blog-details a,
  .yfs-news-grid .blog-wrap:hover .blog-details h5 a {
    color: var(--theme-default5, #005f73);
  }
}
.yfs-news-grid .blog-wrap .blog-details a:active,
.yfs-news-grid .blog-wrap .blog-details h5 a:active {
  opacity: 0.75;
}

/* Hamburger drawer: body-level fixed layer (iOS-safe). No transform/will-change/filter on the drawer.
   Root cause of blank menu: nested position:fixed under header.fixed (smoothScroll keeps transform
   on the header via animation-fill forwards) + translate3d/will-change on the drawer + body
   position:fixed scroll lock racing the open paint. Portal to body + visibility/opacity + overflow lock. */
@media (max-width: 1199.98px) {
  /* Kill header transform containing-block for any leftover nested case */
  header.fixed,
  header.fixed-header.fixed {
    -webkit-animation: none !important;
    animation: none !important;
    -webkit-transform: none !important;
    transform: none !important;
  }

  header .main-navbar .nav-menu,
  body > ul.nav-menu.yfs-public-drawer {
    position: fixed !important;
    inset: 0 !important;
    top: 0 !important;
    right: 0 !important;
    left: 0 !important;
    bottom: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    height: 100% !important;
    height: 100dvh !important;
    max-height: 100dvh !important;
    margin: 0 !important;
    padding: 0 0 calc(0.75rem + env(safe-area-inset-bottom, 0px) + 0.5rem) !important;
    box-sizing: border-box;
    display: flex !important;
    flex-direction: column;
    list-style: none;
    background: #fff !important;
    border: 0 !important;
    border-radius: 0 !important;
    z-index: 10050 !important;
    overflow-x: hidden;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain;
    touch-action: pan-y;
    /* Show/hide without transforms — avoids WebKit blank composited layers */
    -webkit-transform: none !important;
    transform: none !important;
    will-change: auto !important;
    -webkit-backface-visibility: visible !important;
    backface-visibility: visible !important;
    -webkit-transition: opacity 0.2s ease, visibility 0.2s ease;
    transition: opacity 0.2s ease, visibility 0.2s ease;
    visibility: hidden;
    opacity: 0;
    pointer-events: none;
  }
  header .main-navbar .nav-menu.open,
  header .main-navbar .nav-menu.opennav,
  body > ul.nav-menu.yfs-public-drawer.open,
  body > ul.nav-menu.yfs-public-drawer.opennav {
    visibility: visible;
    opacity: 1;
    pointer-events: auto;
  }

  /* Overflow lock only — no position:fixed on body (no scroll restore needed) */
  html.yfs-nav-open,
  body.yfs-nav-open {
    overflow: hidden !important;
    overscroll-behavior: none;
  }
  body.yfs-nav-open {
    position: static !important;
    top: auto !important;
    left: auto !important;
    right: auto !important;
    width: auto !important;
  }

  /* Drawer head: bigger dark logo (mask, not filter), X right */
  header .main-navbar .nav-menu .back-btn,
  body > ul.nav-menu.yfs-public-drawer .back-btn {
    flex-shrink: 0;
    margin: 0;
    padding: 0;
    width: 100%;
    float: none;
    display: block;
  }
  header .main-navbar .nav-menu .back-btn .mobile-back.yfs-drawer-head,
  body > ul.nav-menu.yfs-public-drawer .back-btn .mobile-back.yfs-drawer-head {
    min-height: 64px;
    padding: 12px 16px;
    display: flex !important;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    border-bottom: 1px solid #e8eef0;
    background: #fff;
  }
  /* Pre-coloured navy PNG — no CSS filter (filter on ancestors/descendants bites WebKit) */
  header .main-navbar .nav-menu .back-btn .yfs-drawer-logo,
  body > ul.nav-menu.yfs-public-drawer .back-btn .yfs-drawer-logo {
    display: block;
    flex-shrink: 0;
    height: 44px;
    width: auto;
    max-width: min(72vw, 200px);
    object-fit: contain;
    object-position: left center;
    filter: none !important;
    -webkit-filter: none !important;
  }
  header .main-navbar .nav-menu .back-btn .mobile-back .yfs-menu-close,
  body > ul.nav-menu.yfs-public-drawer .back-btn .mobile-back .yfs-menu-close {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    border-radius: 8px;
    border: 1px solid #dee2e6;
    background: #f8f9fa;
    font-size: 1.5rem;
    line-height: 1;
    color: #001d3d;
    flex-shrink: 0;
  }

  /* Links: darker, separators, 44px+ taps, current page (full-bleed, not clipped) */
  header .main-navbar .nav-menu > li:not(.back-btn):not(.esbc_social-mobile-wrap),
  body > ul.nav-menu.yfs-public-drawer > li:not(.back-btn):not(.esbc_social-mobile-wrap) {
    border-bottom: 1px solid #eef2f3;
    width: 100%;
    float: none;
    display: block;
    padding: 0;
    overflow: visible;
  }
  header .main-navbar .nav-menu > li > a,
  header .main-navbar .nav-menu > li > .nav-link,
  body > ul.nav-menu.yfs-public-drawer > li > a,
  body > ul.nav-menu.yfs-public-drawer > li > .nav-link {
    min-height: 48px;
    display: flex !important;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 12px 18px !important;
    margin: 0 !important;
    width: 100%;
    box-sizing: border-box;
    font-size: 1.05rem !important;
    font-weight: 600;
    line-height: 1.3;
    color: #001d3d !important;
    text-transform: uppercase;
    letter-spacing: 0.02em;
  }
  header .main-navbar .nav-menu > li > a.is-active,
  header .main-navbar .nav-menu > li > .nav-link.is-active,
  body > ul.nav-menu.yfs-public-drawer > li > a.is-active,
  body > ul.nav-menu.yfs-public-drawer > li > .nav-link.is-active {
    color: #005f73 !important;
    background: rgba(0, 95, 115, 0.08);
    box-shadow: inset 3px 0 0 #005f73;
    /* Full width highlight — avoid right-edge clip */
    border-radius: 0;
    width: 100%;
    max-width: 100%;
  }
  .yfs-nav-chevron {
    display: inline-block;
    width: 0.45em;
    height: 0.45em;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    transform: rotate(-45deg);
    flex-shrink: 0;
    opacity: 0.55;
    margin-left: auto;
  }
  header .main-navbar .nav-menu .nav-submenu li a,
  body > ul.nav-menu.yfs-public-drawer .nav-submenu li a {
    min-height: 44px;
    display: flex;
    align-items: center;
    padding: 10px 18px 10px 28px !important;
    color: #001d3d !important;
    text-transform: none;
    font-weight: 500;
  }
  header .main-navbar .nav-menu .nav-submenu li a.is-active,
  body > ul.nav-menu.yfs-public-drawer .nav-submenu li a.is-active {
    color: #005f73 !important;
    font-weight: 700;
  }
  .yfs-sub-back {
    list-style: none;
  }
  .yfs-sub-back-btn {
    display: flex;
    align-items: center;
    gap: 8px;
    width: 100%;
    min-height: 44px;
    padding: 10px 18px;
    border: 0;
    background: #f4f7f8;
    color: #005f73;
    font-weight: 600;
    font-size: 0.95rem;
    text-align: left;
    cursor: pointer;
  }
  .yfs-sub-back-btn::before {
    content: "";
    display: inline-block;
    width: 0.45em;
    height: 0.45em;
    border-left: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    transform: rotate(45deg);
  }

  .esbc_social-mobile-wrap,
  .esbc_social-mobile {
    margin-left: 0 !important;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
  }
  header .main-navbar .nav-menu > li.esbc_social-mobile-wrap,
  body > ul.nav-menu.yfs-public-drawer > li.esbc_social-mobile-wrap {
    margin-top: auto;
    flex-shrink: 0;
    width: 100%;
    padding-top: 0.5rem;
    border-bottom: 0;
  }
  .esbc_social-mobile {
    display: flex !important;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: flex-start;
    gap: 0.35rem 0.85rem;
    padding: 0.35rem 18px 0.5rem !important;
    box-sizing: border-box;
    overflow: visible !important;
  }
  .esbc_social-mobile > li.yfs-drawer-contact {
    margin: 0 0 0.35rem !important;
    flex: 1 1 100%;
    width: 100% !important;
    max-width: 100%;
  }
  .esbc_social-mobile > li.yfs-drawer-contact > a.yfs-drawer-contact-btn,
  .yfs-drawer-contact-btn {
    display: flex !important;
    align-items: center;
    justify-content: center;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    height: auto !important;
    min-height: 48px !important;
    padding: 12px 16px !important;
    margin: 0 !important;
    border-radius: 8px;
    background: #001d3d !important;
    background-image: none !important;
    color: #ffffff !important;
    font-weight: 700;
    font-size: 1rem !important;
    line-height: 1.25;
    text-transform: none !important;
    text-decoration: none !important;
    letter-spacing: 0.01em;
    box-shadow: none !important;
  }
  .esbc_social-mobile > li.yfs-drawer-contact > a.yfs-drawer-contact-btn::before,
  .esbc_social-mobile > li.yfs-drawer-contact > a.yfs-drawer-contact-btn::after,
  .yfs-drawer-contact-btn::before,
  .yfs-drawer-contact-btn::after {
    content: none !important;
    display: none !important;
  }
  .yfs-drawer-contact-btn:hover,
  .yfs-drawer-contact-btn:active {
    background: #005f73 !important;
    color: #fff !important;
  }
  .esbc_social-mobile > hr {
    flex-basis: 100%;
    width: 100%;
    margin: 0.35rem 0 0.45rem;
    align-self: stretch;
    border: 0;
    border-top: 1px solid #e8eef0;
    opacity: 1;
  }
  .esbc_social-mobile > li {
    display: inline-flex !important;
    margin: 0 !important;
    width: auto !important;
    justify-content: center;
  }
  .esbc_social-mobile > li:not(.yfs-drawer-contact):not(.language-mobile) > a {
    min-width: 48px;
    min-height: 48px;
    width: 48px;
    height: 48px;
    padding: 0 !important;
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    font-size: 1rem !important;
    color: #005f73 !important;
  }
  /* Language row: EN flush with social icons' left edge (same 0 inset inside 18px pad) */
  .esbc_social-mobile > li.language-mobile {
    flex: 1 1 100%;
    position: relative;
    display: flex !important;
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-start;
    width: 100% !important;
    max-width: 100%;
    margin: 0.1rem 0 0.25rem !important;
    padding: 0 !important;
    overflow: visible;
    z-index: 5;
  }
  .language-mobile > .esbc_toggle.yfs-lang-toggle,
  .language-mobile > .yfs-lang-toggle {
    display: inline-flex !important;
    align-items: center;
    justify-content: flex-start;
    gap: 0.45rem;
    min-width: 48px;
    min-height: 44px;
    width: auto !important;
    height: auto;
    padding: 6px 10px 6px 0 !important;
    margin: 0 !important;
    color: #005f73 !important;
    font-weight: 700;
  }
  .language-mobile > .esbc_toggle .fa-globe {
    font-size: 1.35rem;
    line-height: 1;
  }
  .yfs-lang-code {
    font-size: 0.95rem;
    letter-spacing: 0.04em;
    color: #001d3d;
  }
  .language-mobile > .esbc_submenu.nav-submenu,
  .language-mobile > .esbc_submenu {
    position: static !important;
    left: auto !important;
    top: auto !important;
    right: auto !important;
    transform: none !important;
    float: none !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    margin: 0.35rem 0 0.15rem !important;
    padding: 0.25rem 0.5rem !important;
    background: #fff !important;
    border: 1px solid rgba(0, 95, 115, 0.22);
    border-radius: 8px;
    box-shadow: 0 4px 14px rgba(0, 29, 61, 0.08);
    white-space: normal !important;
    z-index: 6;
  }
  .language-mobile > .esbc_submenu.esbc_show {
    display: flex !important;
    flex-direction: column;
    align-items: stretch;
    gap: 0.15rem;
  }
  .language-mobile > .esbc_submenu > li {
    display: block !important;
    width: 100% !important;
    margin: 0 !important;
    text-align: left;
  }
  .language-mobile > .esbc_submenu > li > a {
    display: flex !important;
    align-items: center;
    justify-content: flex-start;
    width: 100% !important;
    min-height: 44px !important;
    padding: 10px 14px !important;
    color: #005f73 !important;
    font-size: 1.05rem !important;
    font-weight: 600;
    line-height: 1.25;
    text-decoration: none !important;
  }
  .language-mobile > .esbc_submenu > li > a:active,
  .language-mobile > .esbc_submenu > li > a:hover {
    background: rgba(0, 95, 115, 0.08);
    border-radius: 6px;
  }

  .bg-overlay {
    z-index: 10040 !important;
  }
}



@media (max-width: 1199.98px) {
  header .main-navbar .nav-menu > li.esbc_social-mobile-wrap a.yfs-drawer-contact-btn,
  body > ul.nav-menu.yfs-public-drawer > li.esbc_social-mobile-wrap a.yfs-drawer-contact-btn {
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
    background: #001d3d !important;
    background-image: none !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    height: auto !important;
    min-height: 48px !important;
  }
}

/* [phone 2026-11-06] Page-banner / hero text readability on phones */
@media (max-width: 767.98px) {
  .breadcrumb-section {
    position: relative;
  }
  /* Darken photo behind white titles (skip text-dark banners e.g. About) */
  .breadcrumb-section:not(:has(.text-dark))::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    pointer-events: none;
    background: linear-gradient(
      to bottom,
      rgba(0, 29, 61, 0.22) 0%,
      rgba(0, 29, 61, 0.4) 45%,
      rgba(0, 29, 61, 0.38) 100%
    );
  }
  .breadcrumb-section > .container {
    position: relative;
    z-index: 2;
  }
  .breadcrumb-section .breadcrumb-content h1,
  .breadcrumb-section .breadcrumb-content h2 {
    text-shadow:
      0 1px 2px rgba(0, 0, 0, 0.55),
      0 2px 12px rgba(0, 0, 0, 0.4);
  }
  .breadcrumb-section .breadcrumb-content .breadcrumb,
  .breadcrumb-section .breadcrumb-content .breadcrumb-item,
  .breadcrumb-section .breadcrumb-content .breadcrumb-item a,
  .breadcrumb-section .breadcrumb-content .breadcrumb-item.active {
    text-shadow:
      0 1px 2px rgba(0, 0, 0, 0.5),
      0 1px 8px rgba(0, 0, 0, 0.35);
  }
  /* Dark-on-light banners: keep text crisp without a dark wash */
  .breadcrumb-section .breadcrumb-content div.text-dark h1,
  .breadcrumb-section .breadcrumb-content div.text-dark h2,
  .breadcrumb-section .breadcrumb-content div.text-dark .breadcrumb,
  .breadcrumb-section .breadcrumb-content div.text-dark .breadcrumb-item,
  .breadcrumb-section .breadcrumb-content div.text-dark .breadcrumb-item a {
    text-shadow: 0 1px 1px rgba(255, 255, 255, 0.55);
  }
}

/* [phone 2026-11-06] iOS scroll hygiene — kill smooth root scroll + header stick animation jitter */
@media (max-width: 1199.98px) {
  html {
    scroll-behavior: auto !important;
  }
  header.fixed,
  header.fixed-header.fixed {
    -webkit-animation: none !important;
    animation: none !important;
    -webkit-transform: none !important;
    transform: none !important;
  }
}


/* Offers listing: all interactive targets ≥44px on phones */
@media (max-width: 767.98px) {
  .property-section .property-box .property-details > a,
  .property-section .property-box .property-details h3 a,
  .property-section .property-box .property-details a[href],
  .property-section .property-box .yfs-quote-btn,
  .property-section .property-box .property-btn .btn,
  .property-section .property-box .btn {
    min-height: 44px !important;
    display: inline-flex !important;
    align-items: center;
    box-sizing: border-box;
  }
  .property-section .property-box .yfs-quote-btn {
    padding: 10px 16px !important;
    font-size: 14px !important;
    line-height: 1.2 !important;
  }
  .property-section .property-box .property-image .property-slider .slick-dots li button,
  .property-section .property-box .property-image .property-slider .slick-arrow {
    min-width: 44px !important;
    min-height: 44px !important;
  }
  .property-section .property-box .property-details ul li {
    min-height: 44px;
    display: flex;
    align-items: center;
  }
}


/* Offers filter bar buttons ≥44px (listing polish) */
@media (max-width: 767.98px) {
  .left-sidebar .btn,
  .left-sidebar button.btn,
  .property-section .left-sidebar .btn {
    min-height: 44px !important;
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
  }
}

/* Phone footer usability on the existing light footer.
   Stacked columns, no accordion chrome, copyright wraps, Safari safe-area.
   Does not change footer colours or logo. */
@media (max-width: 767.98px) {
  footer.footer-light .footer-links .footer-title {
    pointer-events: none;
    cursor: default;
    margin-bottom: 0.35rem;
  }
  footer.footer-light .footer-links .footer-title .according-menu,
  footer.footer-light .footer-links .footer-title span.according-menu,
  footer.footer-light .footer-links .footer-title span {
    display: none !important;
  }
  footer.footer-light .footer-links .footer-content {
    display: block !important;
    height: auto !important;
    margin-top: 0.5rem !important;
  }
  footer.footer-light .sub-footer .row > [class*="col-"] {
    flex: 0 0 100%;
    max-width: 100%;
    width: 100%;
  }
  footer.footer-light .sub-footer .copy-right,
  footer.footer-light .sub-footer .copy-right p {
    white-space: normal !important;
    overflow-wrap: anywhere;
    word-break: break-word;
    max-width: 100%;
    padding-left: 0.75rem;
    padding-right: 0.75rem;
    text-align: center;
    line-height: 1.45;
  }
  footer.footer-light .sub-footer {
    overflow: visible;
    padding-bottom: calc(0.75rem + env(safe-area-inset-bottom, 0px) + 3.25rem);
  }
  footer.footer-light .footer {
    padding-bottom: 1.25rem;
  }
}

/* Detail booking and request sidebars (charter, sale, tournament, news).
   On a short laptop the sticky panel used to run past the screen, so the
   request button was reachable only after the whole page scrolled.
   From the large breakpoint up, the panel stays under the header and
   scrolls on its own. Narrower screens keep normal page flow. */
@media (min-width: 992px) {
  .left-sidebar.sticky-cls,
  .blog-sidebar.sticky-cls {
    top: 112px;
    max-height: calc(100vh - 128px);
    max-height: calc(100dvh - 128px);
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    scroll-padding-top: 12px;
    scroll-padding-bottom: 88px;
  }
  .left-sidebar.sticky-cls form .form-group:last-of-type,
  .blog-sidebar.sticky-cls form .form-group:last-of-type {
    scroll-margin-bottom: 88px;
  }
  .left-sidebar.sticky-cls form button[type="submit"],
  .blog-sidebar.sticky-cls form button[type="submit"] {
    position: sticky;
    bottom: 0;
    z-index: 2;
    min-height: 48px;
    margin-top: 8px;
  }
}
@media (max-width: 991.98px) {
  .blog-sidebar.sticky-cls,
  .left-sidebar.sticky-cls {
    position: relative;
    top: auto;
    max-height: none;
    overflow: visible;
  }
}
