/* Fairdeal Assets - Theme & Typography Overrides (non-destructive) */
:root{
  --fd-blue:#003366;      /* Royal Blue */
  --fd-gold:#D4AF37;      /* Gold Accent */
  --fd-white:#FFFFFF;     /* White */
  --fd-gray:#333333;      /* Charcoal */
  --fd-amber:#F5C052;     /* Lighter Gold */
  --fd-indigo:#0b2a5b;    /* Deep Indigo */
}

/* Typography */
body{
  font-family:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,'Helvetica Neue',Arial,sans-serif;
  color:var(--fd-gray);
}
h1,h2,h3,h4,h5,h6,.section-title,.site-logo a{
  font-family:'Playfair Display', Georgia, 'Times New Roman', serif;
  color:var(--fd-blue);
  line-height:1.2;
}
.site-blocks-cover h1, .site-blocks-cover p{ color:#fff !important; }
.section-title{ letter-spacing:.2px; }

/* Links */
a{ color:var(--fd-blue); }
a:hover,a:focus{ color:var(--fd-gold); }

/* Brand utilities mapped to Bootstrap semantics */
.text-primary{ color:var(--fd-blue) !important; }
.bg-primary{ background-color:var(--fd-blue) !important; }
.border-primary{ border-color:var(--fd-blue) !important; }

/* Buttons */
.btn{ position:relative; overflow:hidden; transition: transform .12s ease, box-shadow .3s ease; border-radius: 999px; }
.btn:active{ transform: translateY(1px) scale(.99); }

.btn-primary{
  background: linear-gradient(135deg, var(--fd-gold), var(--fd-amber)) !important;
  border-color: var(--fd-amber) !important;
  color: var(--fd-indigo) !important;
  box-shadow: 0 8px 20px rgba(212, 175, 55, .25);
}
.btn-primary:hover,.btn-primary:focus{
  box-shadow: 0 12px 26px rgba(212, 175, 55, .35);
  filter: brightness(1.03);
}
.btn-primary::after{
  content:""; position:absolute; top:0; left:-150%; height:100%; width:50%;
  background: linear-gradient(120deg, rgba(255,255,255,0), rgba(255,255,255,.35), rgba(255,255,255,0));
  transform: skewX(-20deg);
  animation: fd-shine 4s linear infinite;
}

.btn-outline-primary{
  color: var(--fd-blue) !important;
  border-color: var(--fd-gold) !important;
  background: transparent !important;
}
.btn-outline-primary:hover,.btn-outline-primary:focus{
  color: var(--fd-indigo) !important;
  background: linear-gradient(135deg, var(--fd-gold), var(--fd-amber)) !important;
  box-shadow: 0 8px 20px rgba(212, 175, 55, .25);
}

/* Subtle continuous glow to invite clicks */
.btn.btn-primary{ animation: fd-pulse 3.5s ease-in-out infinite; }

/* Ripple effect element */
.btn .ripple{ position:absolute; border-radius:50%; transform:scale(0); opacity:.65; pointer-events:none; background:rgba(255,255,255,.45); animation: fd-ripple .6s ease-out; mix-blend-mode:screen; }

@keyframes fd-shine{ from{ left:-150%; } to{ left:150%; } }
@keyframes fd-pulse{
  0%,100%{ box-shadow: 0 8px 20px rgba(212,175,55,.20); }
  50%{ box-shadow: 0 10px 24px rgba(212,175,55,.35); }
}
@keyframes fd-ripple{ to{ transform:scale(10); opacity:0; } }

@media (prefers-reduced-motion: reduce){
  .btn.btn-primary{ animation: none; }
  .btn-primary::after{ animation: none; }
}

/* Navbar tweaks (keep structure/behavior) */
.site-logo a{ color:var(--fd-blue); }
.site-navbar .site-logo{ font-family:'Playfair Display', Georgia, 'Times New Roman', serif; }
.sticky-wrapper .site-navbar .site-logo a{ color:#fff !important; }
.sticky-wrapper.is-sticky .site-navbar .site-logo a{ color:var(--fd-blue) !important; }
.site-navbar .site-navigation .site-menu > li > a:hover{ color:var(--fd-gold) !important; }
.site-navbar .site-navigation .site-menu > li.active > a,
.site-navbar .site-navigation .site-menu > li > a.active{
  background: var(--fd-blue);
  color: #fff !important;
  border-radius: 999px;
  padding: 6px 12px;
  line-height: 1;
  display: inline-block;
}
.sticky-wrapper.is-sticky .site-navbar .site-navigation .site-menu > li.active > a,
.sticky-wrapper.is-sticky .site-navbar .site-navigation .site-menu > li > a.active{
  background: var(--fd-blue);
  color: #fff !important;
}
.site-navbar .site-navigation .site-menu .has-children .dropdown{ border-top-color:var(--fd-gold) !important; }
.site-navbar .site-navigation .site-menu .has-children .dropdown .active > a{ color:var(--fd-gold) !important; }
.sticky-wrapper.is-sticky .site-navbar ul li a.active{ color:var(--fd-gold) !important; }

/* Forms */
.form-control:active,.form-control:focus{ border-color:var(--fd-gold) !important; }
.form-control{ font-family:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,'Helvetica Neue',Arial,sans-serif !important; }

/* Hero background video */
.site-blocks-cover { position: relative; }
.site-blocks-cover .bg-video{
  position:absolute;
  top:0; left:0; width:100%; height:100%;
  object-fit:cover;
  z-index:-1;
  pointer-events:none;
  will-change: transform, opacity;
  backface-visibility: hidden;
  transform: translateZ(0);
}
/* Ensure overlay sits above video but below content */
.site-blocks-cover.overlay:before{ z-index:0; }
.site-blocks-cover > .container,
.site-blocks-cover .arrow-down{ position:relative; z-index:1; }

/* Lift and animate down-arrow; keep visible above fold */
.arrow-down{ bottom:60px !important; animation:bounceY 2s infinite; }
@keyframes bounceY{
  0%,20%,50%,80%,100%{ transform: translate(-50%, 0); }
  40%{ transform: translate(-50%, -8px); }
  60%{ transform: translate(-50%, -4px); }
}
@media (max-width: 575.98px){ .arrow-down{ bottom:34px !important; } }
@media (max-width: 575.98px){ .arrow-down{ bottom:56px !important; } }

/* Soft page load reveal (opacity-only to avoid jank) */
.site-wrap{ opacity:0; transition:opacity .5s ease; }
.site-wrap.is-loaded{ opacity:1; }

/* Stabilize hero height on mobile (addressbar-safe vh) */
.site-blocks-cover,
.site-blocks-cover > .container > .row{ height: calc(var(--vh, 1vh) * 100) !important; }

/* Respect reduced motion */
@media (prefers-reduced-motion: reduce){
  .arrow-down{ animation: none; }
}

/* Gallery grid */
.gallery-section { padding: 4rem 0; }
.gallery-grid{
  display:grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
  grid-auto-rows: 10px; grid-auto-flow: dense; gap:12px;
}
.gallery-item{ position:relative; overflow:hidden; border-radius:14px; background:#0e1a2b; }
.gallery-item.small{ grid-row: span 18; }
.gallery-item.tall{ grid-row: span 30; }
.gallery-item.wide{ grid-column: span 2; grid-row: span 18; }

/* Hero email link */
.hero-email{ color:var(--fd-gold); font-weight:600; }
.hero-email:hover,.hero-email:focus{ color:#fff; text-decoration:underline; }

/* Core value icons */
.core-value-icon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:54px; height:54px;
  border-radius:50%;
  border:2px solid rgba(255,255,255,.25);
  background:rgba(255,255,255,.2);
  font-size:28px;
  line-height:1;
  animation: core-pulse 3s ease-in-out infinite;
}

@keyframes core-pulse{
  0%,100%{ transform: scale(1); opacity:1; }
  50%{ transform: scale(1.08); opacity:.9; }
}

/* Vision & mission cards */
.vision-card{
  border-radius:16px;
  border:1px solid rgba(0,0,0,.05);
  box-shadow:0 12px 30px rgba(11,42,91,.08);
  transition:transform .2s ease, box-shadow .2s ease;
}
.vision-card:hover{
  transform:translateY(-4px);
  box-shadow:0 16px 36px rgba(11,42,91,.12);
}

/* Expertise list styling */
.expertise-grid .unit-4{
  position:relative;
  border-radius:18px;
  padding:28px;
  background:transparent;
  border:1px solid rgba(11,42,91,.08);
  box-shadow:0 10px 28px rgba(11,42,91,.06);
  transition:transform .24s ease, box-shadow .24s ease, border-color .24s ease;
  will-change:transform;
  transform:perspective(900px) rotateX(var(--tilt-x, 0deg)) rotateY(var(--tilt-y, 0deg));
  align-items:flex-start;
}
.expertise-grid .unit-4:hover{
  box-shadow:0 18px 42px rgba(11,42,91,.12);
  border-color:rgba(212,175,55,.35);
}
.expertise-grid .unit-4-icon{ flex-shrink:0; display:flex; align-items:center; justify-content:center; margin-right:22px !important; }
.expertise-grid .unit-4-icon span{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:64px;
  height:64px;
  border-radius:18px;
  font-size:2.8rem;
  color:var(--fd-indigo);
  /* background:linear-gradient(135deg, rgba(212,175,55,.2), rgba(11,42,91,.1)); */
  /* box-shadow:0 10px 26px rgba(11,42,91,.18); */
  transition:transform .24s ease, box-shadow .24s ease;
}
.expertise-grid .unit-4:hover .unit-4-icon span{
  transform:translate3d(0,-6px,12px) rotateX(6deg);
}
.expertise-grid .unit-4 h3{ margin-bottom:16px; font-size:1.25rem; color:var(--fd-indigo); }
.expertise-grid .unit-4 ul{ margin-bottom:0; }
.expertise-list li{ position:relative; padding-left:22px; margin-bottom:8px; }
.expertise-list li::before{
  content:"";
  position:absolute;
  top:8px; left:0;
  width:10px; height:10px;
  border-radius:50%;
  background:var(--fd-gold);
  
}

/* Advantage list */
.advantage-list{ list-style:none; padding:0; margin:0; }
.advantage-list li{ display:flex; align-items:flex-start; margin-bottom:18px; font-size:1.05rem; }
.advantage-check{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:32px; height:32px;
  margin-right:16px;
  border-radius:50%;
  background:rgba(212,175,55,.15);
  color:var(--fd-blue);
  font-weight:700;
  font-size:18px;
  line-height:1;
  transform-origin:center;
  animation: tick-pop 2.8s ease-in-out infinite;
}

@keyframes tick-pop{
  0%,100%{ transform:scale(1); box-shadow:0 0 0 rgba(212,175,55,0); }
  50%{ transform:scale(1.15); box-shadow:0 0 0 8px rgba(212,175,55,.1); }
}

/* Contact details box */
.contact-details{ border-radius:16px; box-shadow:0 12px 28px rgba(11,42,91,.08); }
.contact-details a{ font-weight:600; }

.fd-toast{
  position:fixed;
  left:50%;
  bottom:32px;
  transform:translateX(-50%) translateY(30px);
  background:rgba(11,42,91,.92);
  color:#fff;
  padding:14px 32px;
  border-radius:999px;
  box-shadow:0 14px 34px rgba(11,42,91,.25);
  opacity:0;
  pointer-events:none;
  transition:opacity .3s ease, transform .3s ease;
  z-index:1080;
  font-weight:600;
  letter-spacing:.3px;
}
.fd-toast.is-visible{
  opacity:1;
  transform:translateX(-50%) translateY(0);
}
.fd-toast.is-error{ background:#b02a37; }

@media (prefers-reduced-motion: reduce){
  .core-value-icon,
  .advantage-check{ animation:none; }
  .expertise-grid .unit-4{
    transform:none;
  }
  .expertise-grid .unit-4:hover{
    transform:none;
  }
}
.gallery-item.big{ grid-column: span 2; grid-row: span 30; }
.gallery-item:not(.small):not(.tall):not(.wide):not(.big){ grid-row: span 24; }
.gallery-item img{ width:100%; height:100%; object-fit:cover; display:block; filter:contrast(1.05) saturate(1.05); transition: transform .6s ease, filter .6s ease; }
.gallery-item:hover img{ transform: scale(1.07); filter: contrast(1.1) saturate(1.08); }
.gallery-item{ transition: transform .35s ease, box-shadow .35s ease; }
.gallery-item:hover{ transform: translateY(-4px) scale(1.01); box-shadow: 0 18px 40px rgba(0,0,0,.25); }
.gallery-item::after{ content:""; position:absolute; inset:0; background: radial-gradient( circle at 70% 30%, rgba(255,255,255,.25), rgba(255,255,255,0) 50% ); opacity:0; transition: opacity .35s ease; }
.gallery-item:hover::after{ opacity:.45; }
.gallery-link{ display:block; width:100%; height:100%; border:none; background:transparent; padding:0; cursor:pointer; }
.gallery-cta{ text-align:center; margin-top: 20px; }

/* Lightbox (Magnific) customizations */
.mfp-bg{ background: rgba(5,10,20,.92); }
.mfp-image-holder .mfp-content{ max-width: 92vw; max-height: 92vh; }
.mfp-figure{ border-radius: 14px; overflow: hidden; }
img.mfp-img{ border-radius: 14px; }
.mfp-close{
  background: var(--fd-blue);
  color:#fff !important; opacity: 1; text-shadow: none;
  border-radius: 999px; width: 38px; height: 38px; line-height: 38px;
  right: -14px; top: -14px; transition: transform .2s ease, background .2s ease;
  box-shadow: 0 8px 20px rgba(0,0,0,.35), 0 0 0 2px rgba(255,255,255,.15) inset;
}
.mfp-close:hover{ transform: scale(1.08) rotate(90deg); background: var(--fd-gold); color: var(--fd-indigo) !important; }
.mfp-counter{ right: 50px; opacity: .85; }

/* Contact form: reduce curve only for message */
#contact-section textarea#message{ border-radius: 4px !important; }

/* Fancybox customizations */
.fancybox-bg{ background: rgba(5,10,20,.92); }
.fancybox-content{ border-radius: 14px; overflow: hidden; }
.fancybox-button{ background: var(--fd-blue); color:#fff; border-radius: 999px; box-shadow: 0 8px 20px rgba(0,0,0,.25); }
.fancybox-button:hover{ background: var(--fd-gold); color: var(--fd-indigo); transform: translateY(-1px); }
.fancybox-button--close svg{ filter: drop-shadow(0 2px 3px rgba(0,0,0,.25)); }

/* Core value cards – center on small screens */
@media (max-width: 767.98px){
  #values-section .pr-5{ padding: 0 8px !important; margin: 0 auto; text-align:center; }
}

/* Hero content centering helpers */
.site-blocks-cover > .container > .row{ align-items:center !important; justify-content:center !important; }

/* Testimonials – mobile readability and interaction */
.testimonial-wrap-1 {
  display: flex;
  justify-content: center;
  padding: 10px;
  align-items: center;
}

.testimonial{ transition: transform .3s ease, box-shadow .3s ease; padding: 20px !important; margin: 10px !important; border-radius: 14px; background:#fff; border: 1px solid #0b2a5b}
.owl-carousel .owl-item.active .testimonial{ transform: translateY(-6px); padding: 10px; border-radius: 14px; background:#fff;}
@media (max-width: 575.98px){
  .testimonial blockquote p{ font-size: .95rem; line-height: 1.45; }
  .testimonial figure p{ font-size: .85rem; }
}

/* Gallery – responsive tweaks */
@media (max-width: 575.98px){
  .gallery-grid{ grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap:10px; }
}

/* Listing refinements */
.listing-filter .form-group{ margin-bottom:1.1rem; }
.listing-filter .select-wrap{ border:1px solid rgba(11,42,91,.12); border-radius:999px; overflow:hidden; }
.listing-filter select.form-control{ border:0; }
.listing-filter select.form-control:focus{ box-shadow:none; }
#slider-range{ border-radius:999px; height:6px; background:rgba(11,42,91,.2); }
#slider-range .ui-slider-range{ background:var(--fd-gold); }
#slider-range .ui-slider-handle{ width:18px; height:18px; top:-6px; border-radius:50%; background:var(--fd-blue); border:2px solid #fff; box-shadow:0 6px 14px rgba(11,42,91,.2); }
#amount{ font-weight:600; color:var(--fd-blue); background:transparent !important; }

/* Property detail enhancements */
.property-gallery img{ border-radius:16px; box-shadow:0 18px 36px rgba(11,42,91,.12); }
.hero-metrics{ font-size:.95rem; letter-spacing:.4px; }
.hero-metrics .list-inline-item{ color:#fff; margin:0 8px; position:relative; padding:0 6px; }
.hero-metrics .list-inline-item + .list-inline-item::before{
  content:'';
  position:absolute;
  left:-9px; top:50%;
  width:4px; height:4px;
  border-radius:50%;
  background:rgba(255,255,255,.7);
  transform:translateY(-50%);
}
.property-metrics li,
.property-summary li,
.property-commitments li{ margin-bottom:.55rem; font-size:.95rem; }
.property-summary li strong{ color:var(--fd-blue); }
.property-commitments li{ position:relative; padding-left:26px; }
.property-commitments li::before{
  content:'\2713';
  position:absolute;
  left:0; top:0;
  color:var(--fd-gold);
  font-weight:700;
}
.location-points{ margin-left:1.2rem; font-size:1rem; }
.location-points li{ margin-bottom:.55rem; }
.next-steps{ font-size:1rem; counter-reset:step; }
.next-steps li{ margin-bottom:.75rem; line-height:1.5; }
.card.shadow-sm{ box-shadow:0 16px 36px rgba(11,42,91,.08) !important; border-radius:18px; }

/* Utility tweaks */
.badge-light.text-dark{ background:rgba(255,255,255,.85); }
.hero-metrics .list-inline-item{ text-transform:uppercase; font-weight:600; font-size:.85rem; }

@media (max-width: 991.98px){
  .listing-filter .select-wrap{ border-radius:12px; }
  .hero-metrics .list-inline-item{ display:block; margin:6px 0; }
}
