

@font-face {
/* Overrides de Bootstrap */
    font-family: 'Montserrat';
    src: url('https://bellmarresidences.com/wp-content/themes/bellmar/fonts/montserrat/static/Montserrat-Regular.ttf') format('truetype');
    font-weight: 400;
    font-style: Regular;
    font-display: swap;
}
@font-face {
/* Overrides de Bootstrap */
    font-family: 'Montserrat';
    src: url('https://bellmarresidences.com/wp-content/themes/bellmar/fonts/montserrat/static/Montserrat-Italic.ttf') format('truetype');
    font-weight: 400;
    font-style: italic;
    font-display: swap;
}
@font-face {
/* Overrides de Bootstrap */
    font-family: 'Montserrat';
    src: url('https://bellmarresidences.com/wp-content/themes/bellmar/fonts/montserrat/static/Montserrat-Medium.ttf') format('truetype');
    font-weight: 500;
    font-style: Regular;
    font-display: swap;
}

@font-face {
/* Overrides de Bootstrap */
    font-family: 'Montserrat';
    src: url('https://bellmarresidences.com/wp-content/themes/bellmar/fonts/montserrat/static/Montserrat-SemiBold.ttf') format('truetype');
    font-weight: 600;
    font-style: normal;
    font-display: swap;
}
@font-face {
/* Overrides de Bootstrap */
    font-family: 'Montserrat';
    src: url('https://bellmarresidences.com/wp-content/themes/bellmar/fonts/montserrat/static/Montserrat-Bold.ttf') format('truetype');
    font-weight: 700;
    font-style: normal;
    font-display: swap;
}

:root {
    --bs-primary: rgba(56, 99, 117, 1);
    --bs-primary-hover: rgb(47, 83, 98);
    --bs-primary-rgb: 56, 99, 117;
    --bs-body-bg: #ffffff;
    --bs-emphasis-color-rgb: 32, 68, 83;
    --bs-heading-color: var(--bs-primary);
    --bs-secondary: rgba(217, 204, 189, 0.8);
    --bs-dropdown-link-active-bg: var(--bs-primary-hover);
    --bs-tertiary: rgba(138, 156, 130, 1);
    --bs-tertiary-hover: rgba(112, 127, 104, 1);
    --bs-portal-4: #9BAF8A;
  }
  p b, p strong, b, strong {
    font-weight: 600;
  }

  .dropdown-menu {
    --bs-dropdown-link-active-bg: var(--bs-primary-hover);
  }
  .bg-primary {
    background-color: var(--bs-primary);
    color: #ffffff;
  }
  .container-sm {
    --bs-gutter-x: 3rem;
  }

  .btn-primary {
    --bs-btn-color: #fff;
    --bs-btn-bg: var(--bs-primary);
    --bs-btn-border-color: var(--bs-primary);
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: var(--bs-primary-hover);
    --bs-btn-hover-border-color: var(--bs-primary-hover);
    --bs-btn-focus-shadow-rgb: 49, 132, 253;
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: var(--bs-primary);
    --bs-btn-active-border-color: var(--bs-primary);
    --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
    --bs-btn-disabled-color: #fff;
    --bs-btn-disabled-bg: var(--bs-primary);
    --bs-btn-disabled-border-color: var(--bs-primary);
}
.btn-light {
  --bs-btn-color: var(--bs-primary);
  --bs-btn-hover-color: var(--bs-primary);
  --bs-btn-active-color: var(--bs-primary);
  --bs-btn-disabled-color: var(--bs-primary);
  --bs-btn-active-border-color:#dddddd;
}
.bg-light {
  --bs-light-rgb:217,204,189;
  --bs-bg-opacity: 0.8;
}

.modal {
  --bs-modal-border-radius: var(--bs-border-radius-sm);
}
.offcanvas, .offcanvas-lg, .offcanvas-md, .offcanvas-sm, .offcanvas-xl, .offcanvas-xxl {
  --bs-offcanvas-padding-y: .6rem;
}
.fw-bold {
  font-weight: 600!important;
}
  /* Tu layout */
  body {
    font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  }
  /* Estilo global para todos los párrafos */
p, .p {
font-family: Montserrat;
font-weight: 400;
font-size: 1.125rem;
line-height: calc(1.125rem * 1.4);
letter-spacing: 0%;
color: var(--bs-primary);
}
.h1, .h2, .h3, .h4, .h5, .h6, h1, h2, h3, h4, h5, h6 {
font-family: Montserrat;
font-weight: 400;
color: var(--bs-primary);
}
.h1, h1 {
  font-size: calc(1.475rem + 1.5vw);
}
.mobile {
  display: none!important;
}
  .bg-tertiary {
    background-color: var(--bs-tertiary);
  }

  .m-w-400 {
    max-width: 400px;
  }
  .m-w-450 {
    max-width: 450px;
  }
  .m-w-550 {
    max-width: 550px;
  }
  .m-w-600 {
    max-width: 600px;
  }
  .m-w-650 {
    max-width: 650px;
  }

  .m-w-850 {
    max-width: 850px;
  }

  .m-w-950 {
    max-width: 950px;
  }
  
  .verticalalign {
    vertical-align: middle;
    align-items: center;
    justify-content: center;
  }
  .align-flex-end {
    align-items: flex-end;
  }

  .marg-t-0 {
    margin-top: 0;
  }
  .padd-t-05 {
    padding-top: 0.5rem;
  }
  .padd-t-1 {
    padding-top: 1rem;
  }

  .padd-t-2 {
    padding-top: 2rem;
  }

  .padd-t-3 {
    padding-top: 3rem;
  }
  
  .padd-t-4 {
    padding-top: 4rem;
  }

  .padd-t-5 {
    padding-top: 5rem;
  }
  
  
  .padd-t-6 {
    padding-top: 6rem;
  }

  .padd-t-7 {
    padding-top: 7rem;
  }

  .padd-t-8 {
    padding-top: 8rem;
  }

  .padd-t-9 {
    padding-top: 9rem;
  }
  
  .padd-t-10 {
    padding-top: 10rem;
  }
  
  .padd-b-05 {
    padding-bottom: 0.5rem;
  }

.padd-b-1 {
    padding-bottom: 1rem;
  }

  .padd-b-2 {
    padding-bottom: 2rem;
  }

  .padd-b-3 {
    padding-bottom: 3rem;
  }
  
  .padd-b-4 {
    padding-bottom: 4rem;
  }

  .padd-b-5 {
    padding-bottom: 5rem;
  }
  
  
  .padd-b-6 {
    padding-bottom: 6rem;
  }

  .padd-b-7 {
    padding-bottom: 7rem;
  }

  .padd-b-8 {
    padding-bottom: 8rem;
  }
  
  .padd-b-9 {
    padding-bottom: 9rem;
  }

  .padd-b-10 {
    padding-bottom: 10rem;
  }
  .padd-b-11 {
    padding-bottom: 11rem;
  }
  .padd-b-12 {
    padding-bottom: 12rem;
  }



  /* Hace que la barra no tenga bordes ni sombras */
.navbar {
    border-bottom: 1px solid #e5e7eb;
    background: #ffffff;
    z-index: 1030; /* Asegurar que esté por encima del contenido con ScrollSmoother */
    padding: .65rem 0;
  }

  /* Compensar el espacio de la navbar fixed */
  #smooth-content {
    padding-top: 65px; /* Altura aproximada de la navbar (ajustar si es necesario) */
  }
  
  /* Links estilo elegante */
  .navbar-nav .nav-link {
    font-weight: 400;
    color: var(--bs-primary);
    font-size: 1rem;
    transition: opacity 0.3s ease;
  }
  
  .navbar-nav .nav-link:hover {
    color: var(--bs-primary);
    opacity: 0.6;
  }
  .navbar-nav .nav-link.active {
    font-weight: 600;
  }
  
  /* Espaciado entre items (Bootstrap ya da space, pero lo reforzamos) */
  .navbar-nav .nav-item {
    display: flex;
    align-items: center;
  }
  
  /* Logo */
  .navbar-brand img {
    display: block;
    height: 34px;
  }
  

  /* Hero full width */
.hero-full {
    width: 100%;
    overflow: hidden;
  }
  
  /* Imagen full responsiva */
  .hero-img {
    width: 100%;
    height: auto;
    display: block;
    object-fit: cover;
  }
  
  /* Ajuste para que el logo tenga separación del borde */
  .hero-overlay {
    pointer-events: none;
    position: absolute;
    bottom: 0;
    right: -50%;
    transform: translateX(-50%);
    width: 100%;  
}
  
  .hero-partner-logo {
    width: 90px; /* ajústalo según diseño */
    opacity: 0.95;
  }

  /* Sección video background */
  .section-video {
    min-height: calc(100vh - 65px);
    display: flex;
    align-items: center;
  }

  .section-video-bg-wrapper {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 1;
    overflow: hidden;
  }

  .section-video-bg {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 100vw;
    height: 100vh;
    min-width: 100%;
    min-height: 100%;
    transform: translate(-50%, -50%);
    object-fit: cover;
    border: none;
  }

  .section-video-fallback {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    z-index: 0;
    display: none;
  }

  .section-video-overlay {
    z-index: 2;
    pointer-events: none;
  }

  .section-video-overlay * {
    pointer-events: auto;
  }

  /* Sección tour virtual */
  .section-tour {
    min-height: calc(100vh - 65px);
    display: flex;
    align-items: center;
  }

  .section-tour-bg {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    z-index: 1;
  }

  .section-tour-overlay {
    /* background: linear-gradient(270deg, rgba(56, 99, 117, 0.3) 0%, rgba(217, 204, 189, 0.3) 48.34%); */
    z-index: 2;
  }

  .section-tour-content {
    z-index: 3;
  }

  /* Sección orientación */
  .section-orientacion {
    min-height: calc(100vh - 65px);
    display: flex;
    align-items: center;
  }

  .section-orientacion-bg {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    z-index: 1;
  }

  .section-orientacion-overlay {
    /* background: linear-gradient(270deg, rgba(56, 99, 117, 0.3) 0%, rgba(217, 204, 189, 0.3) 48.34%); */
    z-index: 2;
  }

  .section-orientacion-content {
    z-index: 3;
  }


  .viviendas-icon {
    width: 100px;
    height: 100px;
    display: flex;
    align-items: center;
    justify-content: center;
  }

  .viviendas-icon img {
    max-width: 100%;
    max-height: 100%;
  }

  /* Sección entorno cercano */
  .section-entorno-cercano {
    background-color: #ffffff;
  }

  .entorno-card-img.v2 {
    height: 200px;
  }

  .text-entorno-cercano-title {
    color: var(--bs-primary);
  }

  .text-entorno-cercano-card {
    color: var(--bs-primary);
  }

  .entorno-card-img {
    object-fit: cover;
    height: 380px;
  }

  /* Sección rutas y paisajes */
  .section-rutas-paisajes {
    background-color: var(--bs-secondary);
  }

  .text-rutas-paisajes-title {
    color: var(--bs-primary);
  }

  .text-rutas-paisajes-card {
    color: var(--bs-primary);
  }

  .rutas-card-img {
    object-fit: cover;
    height: 280px;
  }

  /* Footer Bellmar */
  .footer-bellmar {
    background-color: var(--bs-primary);
    padding-top: 4rem;
    padding-bottom: 4rem;
  }

  .footer-logo-img {
    max-width: 150px;
    height: auto;
    /* filter: brightness(0) saturate(100%) invert(85%) sepia(5%) saturate(500%) hue-rotate(10deg); */
    opacity: 1;
  }

  .footer-tagline {
    font-family: Montserrat;
    font-weight: 400;
    font-size: 0.9rem;
    color: var(--bs-secondary);
    letter-spacing: 0.05em;
  }

  .footer-nav-link,
  .footer-legal-link {
    font-family: Montserrat;
    font-weight: 400;
    font-size: 1rem;
    color: var(--bs-body-bg);
    text-decoration: none;
    transition: opacity 0.3s ease;
    display: inline-block;
  }

  .footer-nav-link:hover,
  .footer-legal-link:hover {
    color: var(--bs-body-bg);
    opacity: 0.6;
    text-decoration: none;
  }

  .footer-partner-img {
    max-width: 80px;
    height: auto;
    opacity: 1;
  }
  .logo-ohla {
    width: 110px;
    max-width: 110px;
    height: auto;
    opacity: 1;
  }
  .logo-savills {
    width: 70px;
    height: auto;
    opacity: 1;
  }


  .section-entorno-hero {
    min-height: 70vh; /* Altura mínima para el hero */
  }

  .section-entorno-hero-img {
    z-index: 1;
  }

  .section-entorno-hero-overlay {
    /* background: linear-gradient(270deg, rgba(56, 99, 117, 0.2) 0%, rgba(217, 204, 189, 0.2) 48.34%); */
    z-index: 2;
  }

  .section-entorno-hero-content {
    position: relative;
    z-index: 3;
  }

  .text-entorno-hero {
    font-family: Montserrat;
    font-weight: 400;
    line-height: 1.2;
  }

  /* Hero Proyecto */
  .section-proyecto-hero,
  .section-home-hero {
    min-height: calc(100vh - 65px);
  }

  .section-proyecto-hero-img {
    z-index: 1;
  }
  /* Hero Proyecto */
  .section-viviendas-hero {
    min-height: calc(100vh - 65px);
  }

  .section-viviendas-hero-img {
    z-index: 1;
  }
  /* Hero Proyecto */
  .section-contacto-hero {
    min-height: calc(100vh - 65px);
  }

  .section-contacto-hero-img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    z-index: 1;
  }

  .section-proyecto-hero-overlay,
  .section-viviendas-hero-overlay,
  .section-contacto-hero-overlay {
    /* background: linear-gradient(270deg, rgba(56, 99, 117, 0.2) 0%, rgba(217, 204, 189, 0.2) 48.34%); */
    z-index: 2;
  }

  .section-proyecto-hero-content,
  .section-viviendas-hero-content,
  .section-contacto-hero-content {
    position: relative;
    z-index: 3;
  }
  /* Sección materiales viviendas */
  .section-materiales-viviendas {
    min-height: calc(100vh - 65px);
  }

  .section-materiales-viviendas-bg {
    z-index: 1;
  }

  .section-materiales-viviendas-overlay {
    /* background: linear-gradient(270deg, rgba(56, 99, 117, 0.2) 0%, rgba(217, 204, 189, 0.2) 48.34%); */
    z-index: 2;
  }

  .section-materiales-viviendas-content {
    position: relative;
    z-index: 3;
  }

  .text-materiales-viviendas {
    font-family: Montserrat;
    font-weight: 400;
    line-height: 1.2;
  }


  /* Sección materiales entorno */
  .section-materiales-entorno {
    min-height: 70vh;
  }

  .section-materiales-entorno-bg {
    z-index: 1;
  }

  .section-materiales-entorno-overlay {
    background: linear-gradient(90deg, rgba(56, 99, 117, 0.3) 50.07%, rgba(217, 204, 189, 0.3) 84.9%);
    z-index: 2;
  }

  .section-materiales-entorno-content {
    position: relative;
    z-index: 3;
  }

  .text-materiales-entorno {
    font-family: Montserrat;
    font-weight: 400;
    line-height: 1.4;
  }

  .list-materiales-entorno {
    font-family: Montserrat;
  }

  .list-materiales-entorno-item {
    padding: 1rem 0 0;
  }

  /* Lista zonas comunes */
  .list-zonas-comunes {
    font-family: Montserrat;
  }

  .list-zonas-comunes-item {
    padding: 1rem 0;
  }

  .zona-icon {
    width: 45px;
    height: 45px;
    flex-shrink: 0;
    color: var(--bs-primary);
    display: flex;
    align-items: center;
    justify-content: center;
  }

  .zona-icon svg {
    width: 100%;
    height: 100%;
  }

  .list-materiales-entorno-item:last-child {
    border-bottom: none;
  }

  /* Sección actividades acuáticas */
  .section-actividades-acuaticas {
    background-color: #ffffff;
  }

  .section-actividades-img {
    object-fit: cover;
    display: block;
    height: 100%;
  }

  /* Background images para collage de actividades */
  .section-actividades-bg-img {
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    width: 100%;
    display: block;
  }

  .section-actividades-bg-img-large {
    min-height: 400px;
    flex: 1;
  }

  .section-actividades-bg-img-small {
    flex: 1;
    min-height: 200px;
  }

  @media (min-width: 992px) {
    .section-actividades-bg-img-small {
      min-height: 250px;
    }
  }

  .section-regular img {
    object-fit: cover;
    display: block;
    height: 100%;
  }

  /* Sección imágenes con scroll animado */
  .section-imagenes-scroll {
    padding-top: 4rem;
    padding-bottom: 4rem;
  }

  .section-scroll-row {
    overflow: hidden;
    margin-bottom: 1rem;
  }

  .section-scroll-images {
    will-change: transform;
    transition: transform 0.1s ease-out;
  }

  .section-scroll-img-wrapper {
    flex-shrink: 0;
    width: 37vw;
    aspect-ratio: 16 / 9;
    overflow: hidden;
  }

  .section-scroll-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
  }

  @media (max-width: 991.98px) {
    .section-scroll-img-wrapper {
      width: 50vw;
    }
  }

  /* Indicadores de scroll (invisibles) */
  .section-scroll-indicator {
    position: absolute;
    width: 1px;
    height: 1px;
    pointer-events: none;
    visibility: hidden;
  }

  .section-scroll-indicator-start {
    top: 0;
    left: 0;
  }

  .section-scroll-indicator-end {
    bottom: 0;
    right: 0;
  }

  /* Sección playas y calas */
  .section-playas-calas {
    background-color: #ffffff;
  }

  .list-playas-calas {
    font-family: Montserrat;
  }

  .list-playas-calas-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding:0 0 0.25rem 0;
    border-bottom: 1px solid rgba(56, 99, 117, 0.1);
  }

  .list-playas-calas-item:last-child {
    border-bottom: none;
  }

  /* Sección restaurantes */
  .section-restaurantes {
    background-color: #ffffff;
  }

  .list-restaurantes {
    font-family: Montserrat;
  }

  .list-restaurantes-item {
    padding: 0.75rem 0;
    border-bottom: 1px solid rgba(56, 99, 117, 0.1);
  }

  .list-restaurantes-item:last-child {
    border-bottom: none;
  }

  .restaurante-img {
    object-fit: cover;
    height: 100%;
    min-height: 300px;
  }

  @media (max-width: 767.98px) {
    .restaurante-img {
      min-height: 250px;
    }
  }

  /* Sección mapa entorno */
  .section-mapa-entorno {
    background-color: #ffffff;
  }

  .mapa-entorno-img {
    display: block;
    width: 100%;
    height: auto;
  }
  .plano-desarrollo-img {
    display: block;
    width: 100%;
    height: auto;
  }

  .leyenda-plano {
    font-family: Montserrat;
  }

  .list-leyenda {
    font-family: Montserrat;
  }

  .list-leyenda-item {
    display: flex;
    align-items: center;
  }

  .leyenda-icon {
    width: 24px;
    height: 24px;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
  }

  .leyenda-icon svg {
    width: 100%;
    height: 100%;
  }

  .leyenda-portal-123 {
    background-color: #3A6577;
    border-radius: 50%;
  }

  .leyenda-portal-4 {
    background-color: var(--bs-portal-4);
    border-radius: 50%;
  }

.bg-primary {
  background-color: var(--bs-primary);
  color: #ffffff;
}

  /* Tabla disponibilidad */


  /* Estilos para offcanvas de disponibilidad */
.offcanvas-disponibilidad {
  width: 65vw !important;
  max-width: 65vw !important;
  min-width: 675px !important;
  z-index: 1050 !important; /* Por encima de navbar (1030) y ScrollSmoother */
}

@media (max-width: 768px) {
  .offcanvas-disponibilidad {
    width: 100vw !important;
    max-width: 100vw !important;
    min-width: unset !important;
  }
}

/* Estilos para offcanvas de tour virtual */
.offcanvas-tour {
  width: 90vw !important;
  max-width: 90vw !important;
  z-index: 1050 !important; /* Por encima de navbar (1030) y ScrollSmoother */
}

.offcanvas-tour .offcanvas-body {
  padding: 0 !important;
  position: relative;
  height: calc(100vh - 57px); /* Altura total menos el header del offcanvas */
  overflow: hidden;
}

@media (max-width: 768px) {
  .offcanvas-tour {
    width: 100vw !important;
    max-width: 100vw !important;
  }
}

/* Contenedor de tabla con scroll vertical y sticky header */
.table-container-disponibilidad {
  width: 100%;
  overflow-x: auto;
  overflow-y: auto;
  max-height: calc(100vh - 120px); /* Altura máxima considerando header del offcanvas */
  position: relative;
}

@media (max-width: 768px) {
  .table-container-disponibilidad {
    max-height: calc(100vh - 100px); /* Ajuste para móviles */
  }
}

.table-container-disponibilidad .table {
  width: 100%;
  table-layout: auto;
  white-space: nowrap;
  margin-bottom: 0;
}

.table-container-disponibilidad .table th,
.table-container-disponibilidad .table td {
  white-space: nowrap;
  padding: 0.45rem;
  text-align: center;
}

  .table-disponibilidad {
    font-family: Montserrat;
  }

  .table-disponibilidad thead th {
    border-bottom: 0px solid rgba(56, 99, 117, 0.2);
    font-weight: 500;
    color: var(--bs-primary);
    background-color: #ffffff;
    position: sticky;
    top: 0;
    z-index: 10;
    box-shadow: 0 2px 2px -1px rgba(0, 0, 0, 0.1); /* Sombra sutil para separar del contenido */
    }

  .table-disponibilidad tbody td {
    border-bottom: 1px solid rgba(56, 99, 117, 0.1);
    padding: 1rem 0.75rem;
    vertical-align: middle;
  }

  .table-disponibilidad tbody tr:last-child td {
    border-bottom: none;
  }

  /* Estilos para viviendas agotadas (vendido) */
  .table-disponibilidad tbody tr.vivienda-agotada {
    opacity: 0.3;
  }

  /* Estilos para viviendas reservadas */
  .table-disponibilidad tbody tr.vivienda-reservada {
    opacity: 0.6;
    position: relative;
  }

  .table-disponibilidad tbody tr.vivienda-reservada td {
    font-style: italic;
  }

  .wpcf7-not-valid-tip {
    font-size: .87rem;
  }
  .wpcf7 * {
    font-family: 'Montserrat';
  }
  
  /* Ocultar mensajes predeterminados de CF7 - se muestran en modal Bootstrap */
  .wpcf7-response-output {
    display: none !important;
  }
  
  .wpcf7 form.invalid .wpcf7-response-output, .wpcf7 form.unaccepted .wpcf7-response-output, .wpcf7 form.payment-required .wpcf7-response-output {
    display: none !important;
  }
  
  .wpcf7 form.sent .wpcf7-response-output {
    display: none !important;
  }
  
  
  #cf7Modal .modal-header {
    border-bottom: 1px solid #e5e7eb;
  }
  
  #cf7Modal .modal-footer {
    border-top: 1px solid #e5e7eb;
  }
  
  #cf7Modal .modal-body {
    padding: 1.5rem;
  }
  
  #cf7Modal #cf7ModalMessage,
  #cf7Modal #cf7ModalContact {
    font-size: 1rem;
    line-height: 1.6;
    font-family: 'Montserrat';
  }
  
  /* Estilos para carousel con background-image */
  .section-carousel .carousel-item {
    width: 100%;
    height: calc(100vh - 70px);
    min-height: 400px;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
  }
  .section-carousel .carousel {
    width: 100%;
    height: calc(100vh - 70px);
    min-height: 400px;
  }
  
  .section-carousel .carousel-inner {
    height: 100%;
  }


.offcanvas-title-portal-123 {
  background-color: var(--bs-primary);
  color: #ffffff;
}

.offcanvas-title-portal-4 {
  background-color: var(--bs-portal-4);
  color: #ffffff;
}

.offcanvas-title-portal-4 h5,
.offcanvas-title-portal-123 h5 {
  color: #ffffff;

}

.section-legal ul {
font-family: Montserrat;
font-weight: 400;
font-size: 1.125rem;
line-height: calc(1.125rem * 1.4);
letter-spacing: 0%;
color: var(--bs-primary);
}

.carousel-indicators > button {
  height: 5px !important;
  border-radius: var(--bs-border-radius-sm);
}
.carousel-control-next, .carousel-control-prev {
  opacity: 1 !important;
}
.section-mapa-integrado {
  background: rgb(37 90 110);
  color: #ffffff;
}
.section-mt-negative {
  margin-top: -5.5rem;
  background: transparent!important;
}

/* Botón flotante de solicitar información */
.btn-floating-contacto {
  position: fixed;
  bottom: 50px;
  right: 0px;
  z-index: 1051; /* Por encima de offcanvas (1050) y navbar */
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
  transition: opacity 0.3s ease, transform 0.3s ease;
  opacity: 0;
  transform: translateY(20px);
  pointer-events: none;
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;

}

.btn-floating-contacto.show {
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
  background-color: #ffffff;
}

.btn-floating-contacto:hover {
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.2);
  transform: translateY(-2px);
}

@media (max-width: 768px) {
  .btn-floating-contacto {
    bottom: 20px;
    right: 0px;
    padding: 0.5rem 1rem;
    font-size: 0.875rem;
  }
}

/* Prevenir CLS (Cumulative Layout Shift) - Añadir aspect-ratio a imágenes principales */
.section-entorno-main-img,
.section-espacios-main-img {
  aspect-ratio: 16 / 9;
  object-fit: cover;
  width: 100%;
  height: auto;
}

.entorno-card-img {
  aspect-ratio: 4 / 3;
  object-fit: cover;
  width: 100%;
  height: auto;
}

.hero-img {
  aspect-ratio: 16 / 9;
  object-fit: cover;
  width: 100%;
  height: auto;
}

/* ============================================
   ESTILOS PERSONALIZADOS PARA COOKIECONSENT
   Compatible con colores corporativos Bellmar
   ============================================ */

/* Variables de colores corporativos para CookieConsent */
#cc-main {
  --cc-primary-color: var(--bs-primary);
  --cc-secondary-color: var(--bs-primary);
  
  /* Botón primario (Aceptar todas) */
  --cc-btn-primary-bg: var(--bs-primary);
  --cc-btn-primary-color: #ffffff;
  --cc-btn-primary-hover-bg: var(--bs-primary-hover);
  --cc-btn-primary-hover-color: #ffffff;
  
  /* Botón secundario (Solo necesarias / Gestionar preferencias) */
  --cc-btn-secondary-bg: var(--bs-secondary);
  --cc-btn-secondary-color: var(--bs-primary);
  --cc-btn-secondary-hover-bg: rgba(217, 204, 189, 1);
  --cc-btn-secondary-hover-color: var(--bs-primary-hover);
  
  /* Fondo del modal */
  --cc-bg: #ffffff;
  --cc-overlay-bg: rgba(0, 0, 0, 0.75);
  
  /* Categorías de cookies */
  --cc-cookie-category-block-bg: rgba(217, 204, 189, 0.3);
  --cc-cookie-category-block-border: var(--bs-secondary);
  --cc-cookie-category-block-hover-bg: rgba(217, 204, 189, 0.5);
  --cc-cookie-category-block-hover-border: var(--bs-secondary);
  --cc-cookie-category-expanded-block-bg: rgba(217, 204, 189, 0.2);
  --cc-cookie-category-expanded-block-hover-bg: rgba(217, 204, 189, 0.3);
  
  /* Toggle switches */
  --cc-toggle-on-bg: var(--bs-primary);
  --cc-toggle-off-bg: rgba(217, 204, 189, 0.8);
  --cc-toggle-on-knob-bg: #ffffff;
  --cc-toggle-off-knob-bg: #ffffff;
  --cc-toggle-readonly-bg: rgba(138, 156, 130, 0.5);
  --cc-toggle-readonly-knob-bg: #ffffff;
  
  /* Separadores y bordes */
  --cc-separator-border-color: var(--bs-secondary);
  --cc-footer-border-color: var(--bs-secondary);
  --cc-footer-bg: #ffffff;
  
  /* Bordes redondeados suaves */
  --cc-btn-border-radius: 0.375rem;
  --cc-modal-border-radius: 0.5rem;
  --cc-pm-toggle-border-radius: 1.5rem;
  
  /* Tipografía */
  font-family: 'Montserrat', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
}

/* Ajustes adicionales para mejor integración */
#cc-main .cm__title,
#cc-main .pm__title {
  color: var(--bs-primary);
  font-weight: 600;
}

#cc-main .cm__desc,
#cc-main .pm__section-title {
  color: var(--bs-primary);
}

#cc-main .cc-link {
  color: var(--bs-primary);
  text-decoration: underline;
}

#cc-main .cc-link:hover {
  color: var(--bs-primary-hover);
}

/* Asegurar que los botones usen la fuente corporativa */
#cc-main button {
  font-family: 'Montserrat', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  font-weight: 500;
}

/* Mejora de contraste para accesibilidad */
#cc-main .cm__btn--accept_all,
#cc-main .pm__btn--accept_all {
  font-weight: 600;
}

#cc-main .cm__btn--accept_necessary,
#cc-main .pm__btn--accept_necessary {
  font-weight: 500;
}

/* Ajustes para mobile */


@media (max-width: 991px) {
  .padd-m-y-0 {
    padding-top: 0rem!important;
    padding-bottom:  0rem!important;
  }
  .padd-m-y-1 {
    padding-top: 1rem!important;
    padding-bottom:  1rem!important;
  }
  .padd-m-y-2 {
    padding-top: 2rem!important;
    padding-bottom:  2rem!important;
  }
  .padd-m-y-3 {
    padding-top: 3rem!important;
    padding-bottom:  3rem!important;
  }
  .padd-m-y-4 {
    padding-top: 4rem!important;
    padding-bottom:  4rem!important;
  }
  .padd-m-y-5 {
    padding-top: 5rem!important;
    padding-bottom:  5rem!important;
  }
  .padd-m-t-0 {
    padding-top: 0rem!important;
  }
  .padd-m-t-1 {
    padding-top: 1rem!important;
  }
  .padd-m-t-2 {
    padding-top: 2rem!important;
  }
  .padd-m-t-3 {
    padding-top: 3rem!important;
  }
  .padd-m-t-4 {
    padding-top: 4rem!important;
  }
  .padd-m-t-5 {
    padding-top: 5rem!important;
  }
  .padd-m-b-0 {
    padding-bottom: 0rem!important;
  }
  .padd-m-b-1 {
    padding-bottom: 1rem!important;
  }
  .padd-m-b-2 {
    padding-bottom: 2rem!important;
  }
  .padd-m-b-3 {
    padding-bottom: 3rem!important;
  }
  .padd-m-b-4 {
    padding-bottom: 4rem!important;
  }
  .padd-m-b-5 {
    padding-bottom: 5rem!important;
  }
  .mobile {
    display: block!important;
  }
  .desktop {
    display: none!important;
  }
  .navbar-brand img {
    height: 32px;
  }
  .navbar-nav {
    padding-top: 1rem;
  }
  .container, .container-fluid, .container-lg, .container-md, .container-sm, .container-xl, .container-xxl, .m-container {
    --bs-gutter-x: 3rem;

  }
  .section-carousel .carousel-item,
  .section-carousel .carousel {
    max-height: calc(70vh)!important;
  }
  .m-center {
    text-align: center!important;
    justify-content: center!important;
  }
  .footer-logo-img {
    max-width: 120px;
  }
  .section-orientacion,
  .section-proyecto-hero,
  .section-viviendas-hero,
  .section-materiales-viviendas,
  .section-contacto-hero {
    min-height: calc(80vh - 65px);
  }
}
