.header.slider-fade::after,
.banner-header::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 150px;
    background: linear-gradient(
        to bottom,
        rgba(0,0,0,0.9) 0%,
        rgba(0,0,0,0.75) 30%,
        rgba(0,0,0,0.55) 55%,
        rgba(0,0,0,0.25) 80%,
        rgba(0,0,0,0) 100%
    );
    z-index: 2;
    pointer-events: none;
}

.logo-wrapper .logo h2 {
    font-size: 32px;
    font-weight: 400;
}

.logo-wrapper .logo span {
    font-size: 14px;
}

.header .caption,
.banner-header .caption {
    position: relative;
    z-index: 4;
}

.slider-bottom-overlay {
    z-index: 5;
}

.banner-header::after {
    height: 160px;
}

.header.slider-fade::after {
    height: 220px;
}


.header.slider-fade {
    position: relative;
}

/* =========================================================
   iPad breakpoint: force navbar collapse at <= 1024px
   Works with Bootstrap-style navbar: .navbar-toggler + .navbar-collapse
   ========================================================= */

@media (max-width: 1024px) {

  /* Show hamburger */
  .navbar.navbar-expand-lg .navbar-toggler {
    display: block !important;
  }

  /* Hide menu by default */
  .navbar.navbar-expand-lg .navbar-collapse {
    display: none !important;
    width: 100%;
  }

  /* When toggled open (Bootstrap adds .show) */
  .navbar.navbar-expand-lg .navbar-collapse.show {
    display: block !important;
  }

  /* Stack nav items vertically */
  .navbar.navbar-expand-lg .navbar-nav {
    flex-direction: column !important;
    width: 100%;
  }

  /* Make dropdowns/menu align nicely */
  .navbar.navbar-expand-lg .nav-item {
    width: 100%;
  }
}

/* =========================================================
   Widen .container in the 992–1199 range (includes iPad 1024)
   ========================================================= */

@media (min-width: 992px) and (max-width: 1199.98px) {
  .container {
    max-width: 1040px !important; /* widen from 960 */
  }
}

@media (min-width: 992px) and (max-width: 1199.98px) {
  .container {
    max-width: 100% !important;
    padding-left: 24px !important;
    padding-right: 24px !important;
  }
}

/* =========================================================
   Widen container for 740px–923px range
   ========================================================= */

@media (min-width: 740px) and (max-width: 1024px) {
  .container {
    max-width: 97% !important;
    width: 97% !important;
  }
}


.slider-bottom-overlay {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 181px;
    background: url("../images/splash.png") no-repeat center bottom;
    background-size: cover;
    pointer-events: none;
    z-index: 5;
}

.bluebg {
	background-color: #ecf8ff;
}

.whitebg {
	background-color: #ffffff;
}

.sandbg {
	background-color: #f1eae1;
}

.link {
	color: #6485a9;
}

.link:hover {
	text-decortion: underline;
}

.white {
	color: #fff!important;
}

.gray {
	color: #a9a9a9!important;
}

.smalltxt {
	font-size: 13px;
}

.link:hover {
	color: #6485a9;
	text-decoration: underline;
}

.notice {
	font-size: 11px;
	margin-top: 20px;
	margin-bottom: -10px;
}

.smlprint {
	font-size: 12px;
	margin-top: 20px;
	margin-bottom: -10px;
}

.news-h2 {
    font-size: 60px;
}

.news-link {
	font-size: 15px;
	color: #6485A9;
}

/* Mobile */
@media (max-width: 767px) {
    .news-h2 {
        font-size: 42px;
    }
}

.video-wrapper .vid .vid-butn .icon {
    color: #6485a9;
    width: 100px;
    height: 100px;
    border: 1px solid rgba(255, 255, 255, 0.2);
    border-radius: 50%;
    font-size: 40px;
    position: relative;

    display: flex;
    align-items: center;
    justify-content: center;

    -webkit-transition: all .5s;
    -o-transition: all .5s;
    transition: all .5s;
}

.video-modal {
  position: fixed;
  inset: 0;
  z-index: 9999;

  /* CRITICAL: keep it hidden until opened */
  display: none;

  /* centering for when it becomes flex */
  align-items: center;
  justify-content: center;
}

.video-modal.is-open {
  display: flex;
}


.video-modal__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,0.85);
}

.video-modal__dialog {
  position: relative;
  z-index: 1; /* add this */
  width: min(1100px, 92vw);
  height: min(620px, 52vw);
  max-height: 82vh;
  margin: 0;
  border-radius: 14px;
  overflow: hidden;
  box-shadow: 0 25px 70px rgba(0,0,0,0.7);
}


.video-modal__video {
  width: 100%;
  height: 100%;
  display: block;
  background: #000;
  object-fit: cover;
  outline: none;
}

/* minimal close button */
.video-modal__close {
  position: absolute;
  top: 10px;
  right: 12px;
  width: 42px;
  height: 42px;
  border: 0;
  border-radius: 50%;
  background: rgba(0,0,0,0.45);
  color: #fff;
  font-size: 30px;
  line-height: 40px;
  cursor: pointer;
  z-index: 2;
}

.video-modal__close:hover {
  background: rgba(0,0,0,0.7);
}

.v-tour-trigger{
  background:none;
  border:0;
  padding:0;
  margin:0;
  display:block;
  width:100%;
  text-align:inherit;
}

/* =========================
   VIRTUAL TOUR MODAL
   ========================= */

.tour-modal{
  position: fixed;
  inset: 0;
  z-index: 9999;

  /* hidden by default */
  display: none;

  /* centers dialog when opened */
  align-items: center;
  justify-content: center;
}

.tour-modal.is-open{
  display: flex;
}

.tour-modal__backdrop{
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,0.85);
}

.tour-modal__dialog{
  position: relative;
  z-index: 1;
  width: min(1200px, 92vw);
  height: min(720px, 70vh);
  max-height: 88vh;
  margin: 0;
  border-radius: 14px;
  overflow: hidden;
  box-shadow: 0 25px 70px rgba(0,0,0,0.7);
  background: #000;
}

.tour-modal__frame{
  width: 100%;
  height: 100%;
  display: block;
  border: 0;
  background: #000;
}

/* close button (use your existing style if you prefer) */
.tour-modal__close{
  position: absolute;
  top: 10px;
  right: 12px;
  width: 42px;
  height: 42px;
  border: 0;
  border-radius: 50%;
  background: rgba(0,0,0,0.45);
  color: #fff;
  font-size: 30px;
  line-height: 40px;
  cursor: pointer;
  z-index: 2;
}

.tour-modal__close:hover{
  background: rgba(0,0,0,0.7);
}

/* stop page scroll while modal is open */
body.tour-modal-open{
  overflow: hidden;
}

.tour-trigger{ background:none;border:0;padding:0;margin:0;display:block;width:100%;text-align:inherit; }
.tour-status{
  position:absolute;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  padding:24px;
  color:#fff;
  background:#000;
  z-index:2; /* above iframe */
  font-size:16px;
}
.tour-status.is-hidden{ display:none; }


.v-tour-wrap {
  overflow: hidden;
  border-radius: 15px;
}

.v-tour {
  border: 3px solid #fff;
  border-radius: 15px;
  transition: transform 0.35s cubic-bezier(0.3, 0.1, 0.58, 1);
  will-change: transform;
}

.v-tour-wrap:hover .v-tour {
  transform: scale(1.06);
}

.testimonials .background {
  background-position: center center !important;
  background-repeat: no-repeat !important;
  background-size: cover !important;

  /* helps prevent “soft” compositing in some cases */
  transform: translateZ(0);
  backface-visibility: hidden;
}

.ctabg {
	background-color: #6485a9;
}

span[class^="flaticon-"]:before,
span[class*=" flaticon-"]:before {
    font-family: Flaticon;
    font-style: normal;
    line-height: 1;
}

.flatnew {
    font-size: 45px;
    color: #6485a9;
    line-height: 1;
    margin-bottom: 10px;
    display: inline-block;
}

flatbg {
	font-size: 140px;
    color: #222;
}

.f-17 {
	font-size: 17px!important;
}

.flatico {
	font-size: 20px;
    color: #6485A9;
}

.pent-quote {
	padding: 20px;
	background: #fff;
	font-size: 19px;
    font-family: 'Gilda Display', serif;
	font-style: italic;
	border-left: 10px solid #6485A9;
}

@media (max-width: 767.98px) {
    .banner-header.bg-img {
        background-position: center center !important;
        background-size: cover;
    }
}

/* ================================
   Lead Form - In-field labels (fixed)
   ================================ */

.lead-form .input1_wrapper {
  position: relative;
}

/* Force labels to show and sit above fields */
.lead-form .input1_wrapper > label {
  display: block !important;
  position: absolute;
  top: 50%;
  left: 20px;
  transform: translateY(-50%);
  font-size: 16px;
  color: #6485A9;
  pointer-events: none;
  z-index: 5;
  opacity: 1;
  transition: opacity 0.2s ease;
}

/* Make sure the field sits under the label */
.lead-form .input1_inner {
  position: relative;
  z-index: 1;
}

/* Hide label while typing (focus) */
.lead-form .input1_wrapper:focus-within > label {
  opacity: 0;
}

/* Hide label when field has content (modern browsers) */
.lead-form .input1_wrapper:has(input:not(:placeholder-shown)) > label,
.lead-form .input1_wrapper:has(textarea:not(:placeholder-shown)) > label {
  opacity: 0;
}

/* Enable :placeholder-shown without showing placeholder text */
.lead-form .input1_wrapper input::placeholder,
.lead-form .input1_wrapper textarea::placeholder {
  color: transparent;
}


/* Remove template icon/pseudo-element for this form */
.lead-form .input1_inner:after {
  content: none !important;
  display: none !important;
}

/* Inputs + textarea base styling */
.lead-form .input1_inner input,
.lead-form .input1_inner textarea {
  border: 1px solid #9abce1;
  background: #fff;
  width: 100%;
  font-family: inherit;
  font-size: 16px;
  box-shadow: none;
  outline: none;
}

/* Restore padding (and keep consistency) */
.lead-form .input1_inner input {
  padding-right: 20px;
}

/* Make textarea feel like inputs */
.lead-form .input1_inner textarea {
  padding: 12px 15px;
  resize: vertical;
  min-height: 110px;
}

/* Checkbox label must NOT behave like floating labels */
.lead-form .form-check-label {
  position: static !important;
  top: auto !important;
  left: auto !important;
  transform: none !important;
  opacity: 1 !important;
  pointer-events: auto !important;
  color: #3b3b3b !important;
}

/* Larger, refined checkbox */
.lead-form .form-check {
  display: flex;
  align-items: center;
  gap: 10px;
}

.lead-form .form-check-input {
  width: 20px;
  height: 20px;
  margin-top: 3px;
  border: 1px solid #9abce1;
  cursor: pointer;
}

.lead-form .form-check-input:checked {
  background-color: #6485A9;
  border-color: #9abce1;
}

.lead-form .form-check-input:focus {
  box-shadow: none;
}

/* Force checkbox text color no matter what */
.lead-form .lead-updates .updates-text {
  color: #3b3b3b !important;
  -webkit-text-fill-color: #3b3b3b !important;
  opacity: 1 !important;
  filter: none !important;
  mix-blend-mode: normal !important;
}

/* Hide Bootstrap feedback blocks (we use red borders instead) */
.lead-form .invalid-feedback {
  display: none !important;
}

/* Validation: clean red highlight */
.lead-form.was-validated .input1_inner input:invalid,
.lead-form.was-validated .input1_inner textarea:invalid,
.lead-form .input1_inner input.is-invalid,
.lead-form .input1_inner textarea.is-invalid {
  border: 2px solid #c0392b !important;
  background-color: #fff5f5 !important;
  box-shadow: none !important;
}

/* Keep valid fields neutral (no green success styling) */
.lead-form.was-validated .input1_inner input:valid,
.lead-form.was-validated .input1_inner textarea:valid,
.lead-form .input1_inner input.is-valid,
.lead-form .input1_inner textarea.is-valid {
  border: 1px solid #9abce1 !important;
  background-color: #fff !important;
  box-shadow: none !important;
}

/* Ensure property updates text is always visible */
.lead-form .lead-updates .form-check-label,
.lead-form .lead-updates .updates-text {
  display: inline !important;
  visibility: visible !important;
  opacity: 1 !important;
  color: #3b3b3b !important;
  -webkit-text-fill-color: #3b3b3b !important;
  position: static !important;
  transform: none !important;
  pointer-events: auto !important;
}

/* Textarea label positioned top-left instead of centered */
.lead-form .input1_wrapper:has(textarea) > label,
.lead-form .input1_wrapper textarea ~ label {
  top: 14px;
  transform: none;
}

.modal-ritz-md {
  max-width: 700px;
}

.modal-ritz-form {
  max-width: 650px;
}

.alert-success {
    background: #990000;
	font-size: 16px;
    color: #fff;
    border: 1px solid #6485a9;
    border-radius: 0px;
}

.ico-contact {
	font-size: 40px;
	color: #6485a9;
}

.legal h6 {
	font-size: 21px;
	margin-bottom: 5px;
	color: #6485A9;
}

.legal p {
	font-size: 15px;
}

/* =========================================================
   Footer contact: replace <br> with commas on full-width
   ========================================================= */

@media (max-width: 1199.98px) {

  /* Hide all line breaks */
  .col-lg-12 .footer-contact-text br,
  .col-md-12 .footer-contact-text br {
    display: none !important;
  }

  /* Insert comma where each <br> used to be */
  .col-lg-12 .footer-contact-text br::after,
  .col-md-12 .footer-contact-text br::after {
    content: ", ";
  }

  /* Keep the first break as an actual break (no comma after "Authorized...") */
  .col-lg-12 .footer-contact-text br:first-of-type,
  .col-md-12 .footer-contact-text br:first-of-type {
    display: inline !important;
  }

  .col-lg-12 .footer-contact-text br:first-of-type::after,
  .col-md-12 .footer-contact-text br:first-of-type::after {
    content: "";
  }

}

.news2 .post-img {
    position: relative;
    width: 100%;
    aspect-ratio: 16 / 9;   /* choose your ratio */
    overflow: hidden;
}

.news2 .post-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
/* Blog Cards */
.news2 .item {
    background: #ffffff;
    height: 100%;
    border-radius: 6px;
    overflow: hidden;
    transition: all .25s ease;
}

/* subtle luxury elevation */
.news2 .item {
    box-shadow: 0 8px 24px rgba(0,0,0,0.06);
}

/* hover refinement */
.news2 .item:hover {
    transform: translateY(-4px);
    box-shadow: 0 14px 36px rgba(0,0,0,0.10);
}

.news2 .post-cont
 {
    padding: 20px;
}

/* STOP any hover lift on news cards */
.news2 .item:hover {
  transform: none !important;
}

.news-article h2 {
	margin-bottom: -20px;
	font-size: 24px;
	color: #6485A9;
}

.photo-caption {
	text-align: center;
	font-size: 14px;
	color: #fff;
	line-height: 1.15em;
	padding: 5px;
	background: #171717;
	margin-bottom: 25px;
}

.news-side {
	border-bottom: 1px solid #bdbdbd;
}

.gallery-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.article-date {
    font-size: 14px;
    color: #6485A9;
    letter-spacing: 0.3px;
}

/* =========================================================
   NEWS: disable hover animations + sliding card behavior
   ========================================================= */

.news .item img,
.news .item .con {
  transition: none !important;
  -webkit-transition: none !important;
}

.news .item:hover img {
  transform: none !important;
  -webkit-transform: none !important;
  filter: none !important;
  -webkit-filter: none !important;
}

/* Stop the card from "popping up" on hover */
.news .item .con {
  bottom: 0 !important;         /* keep it stable */
  margin: -45px 20px 30px !important;  /* reduce the huge bottom gap if you want */
}

/* Ensure hover doesn't move it */
.news .item:hover .con {
  bottom: 0 !important;
}

.news .item .con .category a:hover,
.news .item .con h5:hover,
.news .item .con h5 a:hover {
  color: #6485A9 !important;
}

.news-sync-title {
	font-size: 28px;
}

.news-sync-subtitle span {
	color: #a9a9a9;
}

/* =========================================================
   OWL CAROUSEL NAV ARROWS – CLEAN OVERRIDE
   ========================================================= */

.news .owl-nav {
  position: absolute;
  top: -60px;           /* adjust placement */
  right: 0;
  display: flex;
  gap: 12px;
}

.news .owl-nav button.owl-prev,
.news .owl-nav button.owl-next {
  width: 42px;
  height: 42px;
  border: 1px solid rgba(255,255,255,0.4) !important;
  background: #fff !important;
  color: #6485A9 !important;
  border-radius: 0;
  font-size: 18px;
  transition: all 0.25s ease;
}

/* Remove any weird template transforms */
.news .owl-nav button.owl-prev:hover,
.news .owl-nav button.owl-next:hover {
  transform: none !important;
}

/* Subtle hover */
.news .owl-nav button.owl-prev:hover,
.news .owl-nav button.owl-next:hover {
  background: #6485A9 !important;
  border-color: #6485A9 !important;
  color: #fff !important;
}

/* Remove focus glow */
.news .owl-nav button:focus {
  outline: none !important;
  box-shadow: none !important;
}