/*
Theme Name:   GSN Realty
Theme URI:    https://gsnrealty.in
Description:  Premium child theme for GSN Realty built on Proty
Author:       Xploro Technologies
Template:     proty
Version:      1.4.3
Text Domain:  gsn-realty
*/

/* ---- Google Font: Inter (body weight) ---- */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap');

/* ============================================================
   GSN REALTY — Clean Proty-style redesign
   ============================================================ */

/* ---- Color Variables ---- */
:root {
  --gsn-navy:      #1A1A2E;
  --gsn-orange:    #F1913D;
  --gsn-orange-dk: #d97c28;
  --gsn-white:     #FFFFFF;
  --gsn-light:     #F8F7F4;
  --gsn-grey:      #6B7280;
  --gsn-dark:      #2D2D2D;
  --gsn-border:    #E8E8E8;
  --gsn-shadow:    0 2px 12px rgba(0,0,0,0.08);
  --gsn-shadow-lg: 0 8px 32px rgba(0,0,0,0.12);
  --gsn-radius:    8px;
  --gsn-radius-lg: 12px;
  --gsn-transition:all 0.25s ease;
}

/* ---- Global Typography — match Proty demo's clean sans-serif ---- */
body {
  font-family: 'Lexend', 'Inter', 'Segoe UI', sans-serif;
  font-size: 15px;
  line-height: 1.7;
  color: var(--gsn-dark);
  background: var(--gsn-white);
  -webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4, h5, h6 {
  font-family: 'Lexend', 'Inter', 'Segoe UI', sans-serif;
  font-weight: 700;
  color: var(--gsn-navy);
  line-height: 1.3;
  letter-spacing: -0.01em;
}

a { transition: var(--gsn-transition); }

/* ---- Top Bar ---- */
.top-bar,
#top-bar,
.header-topbar {
  background: var(--gsn-navy) !important;
  color: rgba(255,255,255,0.8) !important;
  font-size: 13px;
}
.top-bar a,
#top-bar a {
  color: rgba(255,255,255,0.85) !important;
}
.top-bar a:hover,
#top-bar a:hover {
  color: var(--gsn-orange) !important;
}

/* ---- Header — clean white, no heavy border ---- */
#header,
.site-header,
header.header {
  background: var(--gsn-white) !important;
  box-shadow: 0 1px 8px rgba(0,0,0,0.08) !important;
  border-bottom: none !important;
}

.is-sticky #header,
.header-sticky #header {
  background: var(--gsn-white) !important;
  box-shadow: 0 2px 16px rgba(0,0,0,0.1) !important;
}

/* Nav links — match Proty demo (orange active, dark default) */
#primary-menu > li > a,
.primary-menu > li > a,
.nav-menu > li > a,
#mainnav ul > li > a {
  font-family: 'Lexend', 'Inter', sans-serif !important;
  font-size: 15px !important;
  font-weight: 500 !important;
  color: var(--gsn-dark) !important;
  letter-spacing: 0 !important;
  padding: 8px 14px !important;
  border-radius: 0 !important;
  transition: var(--gsn-transition) !important;
}
#primary-menu > li > a:hover,
.primary-menu > li > a:hover,
.nav-menu > li > a:hover,
#primary-menu > li.current-menu-item > a,
#primary-menu > li.current-menu-parent > a,
#primary-menu > li.current-menu-ancestor > a {
  color: var(--gsn-orange) !important;
  background: transparent !important;
}

/* Header Add Property button */
.btn-header-button,
.header-button a {
  background: transparent !important;
  color: var(--gsn-dark) !important;
  border: 1.5px solid var(--gsn-dark) !important;
  font-weight: 500 !important;
  border-radius: var(--gsn-radius) !important;
  padding: 8px 20px !important;
  font-size: 14px !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  transition: var(--gsn-transition) !important;
}
.btn-header-button:hover,
.header-button a:hover {
  background: var(--gsn-dark) !important;
  color: var(--gsn-white) !important;
}

/* ---- Mega / Sub Menu ---- */
.mega-menu,
.sub-menu {
  background: var(--gsn-white) !important;
  border-top: 2px solid var(--gsn-orange) !important;
  box-shadow: var(--gsn-shadow-lg) !important;
  border-radius: 0 0 var(--gsn-radius) var(--gsn-radius) !important;
}
.mega-menu .mega-menu-title,
.mega-menu-col-title {
  font-family: 'Lexend', 'Inter', sans-serif !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  color: var(--gsn-grey) !important;
  border-bottom: 1px solid var(--gsn-border) !important;
  padding-bottom: 8px !important;
  margin-bottom: 8px !important;
}
.mega-menu a,
.sub-menu a {
  color: var(--gsn-dark) !important;
  font-size: 14px !important;
  font-weight: 400 !important;
  padding: 5px 10px !important;
  transition: var(--gsn-transition) !important;
}
.mega-menu a:hover,
.sub-menu a:hover {
  color: var(--gsn-orange) !important;
  background: rgba(241,145,61,0.06) !important;
  padding-left: 14px !important;
}

/* Keep Buy/Rent mega menu fully on-screen */
#header,
#header .inner-header,
#header .header-wrap,
#header .container,
#mainnav,
#mainnav > ul {
  overflow: visible !important;
}
#mainnav > ul > li.tfcl-mega-menu {
  position: static !important;
}
#mainnav > ul > li.tfcl-mega-menu > ul.sub-menu {
  left: 50% !important;
  right: auto !important;
  transform: translateX(-50%) !important;
  width: min(1120px, calc(100vw - 48px)) !important;
  max-width: calc(100vw - 48px) !important;
  box-sizing: border-box !important;
}

/* ---- HOMEPAGE: Hide page-header (title + breadcrumbs) ---- */
.home .page-header,
.home .page-title,
.home .page-title.style2,
.home .breadcrumb-trail,
.home .breadcrumbs,
.home .tf-breadcrumb,
.home .page-title-breadcrumb { display: none !important; height: 0 !important; margin: 0 !important; padding: 0 !important; min-height: 0 !important; }

/* Remove the white gap between header and hero */
.home #main-content,
.home #themesflat-content,
.home .page-wrap,
.home .wrap-content-area,
.home #primary,
.home main#main,
.home article.page,
.home .entry-content {
  padding-top: 0 !important;
  margin-top: 0 !important;
}
.home .elementor-3923 > .e-con:first-child,
.home .elementor-3923 > .elementor-element:first-child {
  margin-top: 0 !important;
}

/* Soft-hidden homepage sections (Insight & Opinion, Brands) — restore by removing class */
.gsn-hide-section,
.elementor-element.gsn-hide-section {
  display: none !important;
}

/* After removing Insight/Brands, tighten space above footer */
.home .elementor-element-d93befa {
  padding-bottom: 40px !important;
  margin-bottom: 0 !important;
}
.home #footer {
  margin-top: 0 !important;
}

/* Header / footer logo — match footer clarity & size */
#header #logo,
#header .logo,
#header .logo-panel,
#logo-mobi.logo {
  max-width: none !important;
  width: auto !important;
}
#header .site-logo,
#header .logo img,
#header img.site-logo,
#logo-mobi .site-logo,
.logo-preload {
  height: 90px !important;
  max-height: 90px !important;
  width: auto !important;
  max-width: none !important;
  object-fit: contain !important;
}
#header #logo a,
#header .logo a {
  display: inline-flex !important;
  align-items: center !important;
  height: 90px !important;
}
#footer .logo-footer,
#footer .wrap-logo-footer img,
.logo-footer {
  height: 90px !important;
  max-height: 90px !important;
  width: auto !important;
  object-fit: contain !important;
}

/* Breathing room: hero → "Search Properties with Confidence" */
.home .elementor-element-e65e875 {
  padding-bottom: 0 !important;
  position: relative !important;
  overflow: hidden !important;
  /* Expand hero to a tall cinematic banner */
  min-height: 78vh !important;
  height: auto !important;
  /* Keep still image as fallback poster until video loads */
  background-size: cover !important;
  background-position: center center !important;
}
.home .elementor-element-e65e875 > .e-con-inner {
  min-height: 78vh !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
  padding-top: 48px !important;
  padding-bottom: 64px !important;
}
@media (max-width: 768px) {
  .home .elementor-element-e65e875,
  .home .elementor-element-e65e875 > .e-con-inner {
    min-height: 70vh !important;
  }
}
.home .elementor-element-e65e875 .gsn-hero-video {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center center !important;
  z-index: 0 !important;
  pointer-events: none !important;
  /* Slight scale crops edge watermarks outside the visible frame */
  transform: scale(1.08) !important;
  transform-origin: center center !important;
  /* Fade in after async load so hero never looks "stuck" loading */
  opacity: 0;
  transition: opacity 0.6s ease;
}
.home .elementor-element-e65e875 .gsn-hero-video.is-ready {
  opacity: 1;
}
/* Keep Elementor overlay + content above the video */
.home .elementor-element-e65e875::before,
.home .elementor-element-e65e875 > .elementor-background-overlay,
.home .elementor-element-e65e875 .elementor-background-overlay {
  z-index: 1 !important;
}
.home .elementor-element-e65e875 > .e-con-inner,
.home .elementor-element-e65e875 > .elementor-container {
  position: relative !important;
  z-index: 2 !important;
}
.home .elementor-element-96a1210 {
  padding-top: 100px !important;
  margin-top: 0 !important;
}
.home .elementor-element-96a1210 > .e-con-inner {
  padding-top: 20px !important;
}

/* ---- HOMEPAGE: Break out of Proty's boxed container
   so Elementor sections can be full-width ---- */
.home #themesflat-content > .container {
  max-width: 100% !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  width: 100% !important;
}
.home #themesflat-content > .container > .row {
  margin-left: 0 !important;
  margin-right: 0 !important;
}
.home #themesflat-content > .container > .row > .col-md-12 {
  padding-left: 0 !important;
  padding-right: 0 !important;
}
.home .wrap-content-area,
.home #primary.content-area,
.home main#main,
.home article#post-3923,
.home .entry-content,
.home .elementor-3923 {
  width: 100% !important;
  max-width: 100% !important;
}

/* ---- Hero / Banner sections ---- */
.section-hero,
.banner-hero,
.hero-slider {
  width: 100% !important;
  max-width: 100% !important;
}

/* Remove default page padding/margin that boxes the hero */
.home .page-content,
.home .site-content,
.home #content {
  padding-top: 0 !important;
  margin-top: 0 !important;
}

.hero-title,
.banner-title,
.section-hero h1,
.elementor-heading-title {
  font-family: 'Lexend', 'Inter', sans-serif !important;
  font-weight: 700 !important;
  color: var(--gsn-white) !important;
}

/* ---- Search Form ---- */
.advance-search-form,
.search-form-wrap,
.property-search-form,
.tfre-search-form {
  background: var(--gsn-white) !important;
  border-radius: var(--gsn-radius-lg) !important;
  box-shadow: var(--gsn-shadow-lg) !important;
  padding: 20px 24px !important;
}
.advance-search-form input,
.advance-search-form select,
.search-form-wrap input,
.search-form-wrap select,
.tfre-search-form input,
.tfre-search-form select {
  border: 1px solid var(--gsn-border) !important;
  border-radius: var(--gsn-radius) !important;
  font-size: 14px !important;
  padding: 10px 14px !important;
  background: var(--gsn-white) !important;
  color: var(--gsn-dark) !important;
}
.advance-search-form input:focus,
.advance-search-form select:focus,
.tfre-search-form input:focus {
  border-color: var(--gsn-orange) !important;
  outline: none !important;
  box-shadow: 0 0 0 3px rgba(241,145,61,0.12) !important;
}
.btn-search,
.search-submit,
.tfre-search-form button[type="submit"],
.btn-search-property {
  background: var(--gsn-orange) !important;
  color: var(--gsn-white) !important;
  font-weight: 600 !important;
  border: none !important;
  border-radius: var(--gsn-radius) !important;
  padding: 11px 24px !important;
  font-size: 14px !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  transition: var(--gsn-transition) !important;
}
.btn-search:hover,
.search-submit:hover {
  background: var(--gsn-orange-dk) !important;
}

/* ---- Section spacing — airy like the demo ---- */
.elementor-section,
.elementor-top-section {
  padding-top: 70px;
  padding-bottom: 70px;
}

/* ---- Section Headings — clean, no underline bar ---- */
.section-title,
.widget-title,
.block-title,
h2.elementor-heading-title {
  font-family: 'Lexend', 'Inter', sans-serif !important;
  font-size: clamp(1.6rem, 3vw, 2.2rem) !important;
  font-weight: 700 !important;
  color: var(--gsn-navy) !important;
}
/* Remove gold underline accent */
.section-title::after,
.block-title::after {
  display: none !important;
}
/* Section subtitle */
.section-subtitle,
.tf-title-section .sub-title {
  color: var(--gsn-grey) !important;
  font-size: 15px !important;
  font-weight: 400 !important;
  margin-top: 8px !important;
}

/* ---- Property Type Category Icons — light style ---- */
.tf-property-type-item,
.property-type-card {
  border: 1px solid var(--gsn-border) !important;
  border-radius: var(--gsn-radius-lg) !important;
  background: var(--gsn-white) !important;
  padding: 28px 16px !important;
  text-align: center;
  transition: var(--gsn-transition) !important;
  box-shadow: none !important;
}
.tf-property-type-item:hover,
.property-type-card:hover {
  border-color: var(--gsn-orange) !important;
  box-shadow: var(--gsn-shadow) !important;
  transform: translateY(-3px);
}
.tf-property-type-item h6,
.property-type-card h6,
.property-type-card .name {
  font-family: 'Lexend', 'Inter', sans-serif !important;
  font-weight: 600 !important;
  color: var(--gsn-navy) !important;
  margin-top: 12px !important;
}

/* ---- Property Cards — clean, light ---- */
.property-item,
.listing-item,
.item-property,
.item-article-property {
  border-radius: var(--gsn-radius-lg) !important;
  box-shadow: var(--gsn-shadow) !important;
  overflow: hidden;
  border: 1px solid var(--gsn-border) !important;
  transition: var(--gsn-transition) !important;
  background: var(--gsn-white) !important;
}
.property-item:hover,
.listing-item:hover,
.item-property:hover {
  box-shadow: var(--gsn-shadow-lg) !important;
  transform: translateY(-3px);
  border-color: var(--gsn-border) !important;
}
.property-item .property-image img,
.listing-item .property-image img {
  transition: transform 0.4s ease !important;
}
.property-item:hover .property-image img,
.listing-item:hover .property-image img {
  transform: scale(1.04) !important;
}
.property-item .property-content,
.listing-item .property-content,
.item-property .property-content {
  padding: 18px !important;
}
.property-item .property-title,
.property-item h3,
.listing-item h3,
.item-property h3,
.item-article-property .entry-title {
  font-family: 'Lexend', 'Inter', sans-serif !important;
  font-size: 16px !important;
  font-weight: 600 !important;
  color: var(--gsn-navy) !important;
  margin-bottom: 6px !important;
  line-height: 1.4 !important;
}
.property-item h3 a:hover,
.listing-item h3 a:hover {
  color: var(--gsn-orange) !important;
}
.property-price,
.item-price,
.property-price-value {
  font-size: 17px !important;
  font-weight: 700 !important;
  color: var(--gsn-orange) !important;
  font-family: 'Lexend', 'Inter', sans-serif !important;
}

/* Property status labels */
.property-label,
.label-sale,
.label-rent,
.listing-badge {
  border-radius: 50px !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  letter-spacing: 0.02em !important;
  text-transform: none !important;
  padding: 3px 10px !important;
}
.label-sale, .for-sale { background: var(--gsn-orange) !important; color: var(--gsn-white) !important; }
.label-rent, .for-rent { background: var(--gsn-navy) !important; color: var(--gsn-white) !important; }
.label-featured, .featured { background: #2ECC71 !important; color: var(--gsn-white) !important; }

/* ---- Buttons — match Proty demo ---- */
.tf-button,
.btn,
.button,
a.button {
  border-radius: var(--gsn-radius) !important;
  font-weight: 600 !important;
  letter-spacing: 0 !important;
  transition: var(--gsn-transition) !important;
}
.tf-button-primary,
.btn-primary,
.btn-details {
  background: transparent !important;
  color: var(--gsn-orange) !important;
  border: 1.5px solid var(--gsn-orange) !important;
}
.tf-button-primary:hover,
.btn-primary:hover,
.btn-details:hover {
  background: var(--gsn-orange) !important;
  color: var(--gsn-white) !important;
}

/* ---- Verified / Trust Badges ---- */
.gsn-verified-badge {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  background: rgba(46,204,113,0.1);
  color: #27ae60;
  border: 1px solid rgba(46,204,113,0.3);
  border-radius: 50px;
  font-size: 12px;
  font-weight: 600;
  padding: 3px 10px;
}
.gsn-rera-badge {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  background: rgba(26,26,46,0.06);
  color: var(--gsn-navy);
  border: 1px solid rgba(26,26,46,0.15);
  border-radius: 50px;
  font-size: 11px;
  font-weight: 600;
  padding: 3px 10px;
}

/* ---- Stats/Counters ---- */
.counter-box,
.stat-box {
  text-align: center;
  padding: 20px;
  border-radius: var(--gsn-radius);
  background: var(--gsn-white);
  transition: var(--gsn-transition);
}
.counter-number,
.stat-number {
  font-size: 2.5rem;
  font-weight: 700;
  color: var(--gsn-orange);
  font-family: 'Lexend', 'Inter', sans-serif;
  line-height: 1;
}
.counter-label,
.stat-label {
  font-size: 13px;
  font-weight: 500;
  color: var(--gsn-grey);
  margin-top: 6px;
}

/* ---- Neighbourhood / Location Cards ---- */
.neighborhood-card,
.location-card {
  border-radius: var(--gsn-radius-lg) !important;
  overflow: hidden;
  position: relative;
  transition: var(--gsn-transition) !important;
}
.neighborhood-card:hover,
.location-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--gsn-shadow-lg) !important;
}
.neighborhood-card .overlay,
.location-card .overlay {
  background: linear-gradient(180deg, transparent 30%, rgba(26,26,46,0.75) 100%) !important;
}
.neighborhood-card h4,
.location-card h4 {
  color: var(--gsn-white) !important;
  font-weight: 600 !important;
}

/* ---- Testimonials ---- */
.testimonial-item {
  background: var(--gsn-white) !important;
  border-radius: var(--gsn-radius-lg) !important;
  box-shadow: var(--gsn-shadow) !important;
  border: 1px solid var(--gsn-border) !important;
  border-left: none !important;
  padding: 28px !important;
}

/* ---- Single Property Page ---- */
.single-property-title,
.property-single-title {
  font-family: 'Lexend', 'Inter', sans-serif !important;
  font-size: clamp(1.4rem, 3vw, 2rem) !important;
  font-weight: 700 !important;
  color: var(--gsn-navy) !important;
}
.property-detail-box,
.single-property-box {
  background: var(--gsn-white) !important;
  border-radius: var(--gsn-radius-lg) !important;
  box-shadow: var(--gsn-shadow) !important;
  border: 1px solid var(--gsn-border) !important;
  padding: 24px !important;
  margin-bottom: 20px !important;
}

/* Floor plans */
.floors-plan-tab,
.floor-plan-item {
  border: 1px solid var(--gsn-border) !important;
  border-radius: var(--gsn-radius) !important;
  overflow: hidden;
  transition: var(--gsn-transition) !important;
}
.floors-plan-tab:hover,
.floor-plan-item:hover {
  border-color: var(--gsn-orange) !important;
}
.floor-plan-name {
  background: var(--gsn-light) !important;
  color: var(--gsn-navy) !important;
  font-weight: 600 !important;
  padding: 10px 16px !important;
  font-size: 14px !important;
}

/* ---- Per-unit image gallery ---- */
.gsn-unit-gallery { margin: 20px 0; }
.gsn-unit-gallery h4 {
  font-size: 16px;
  font-weight: 600;
  color: var(--gsn-navy);
  margin-bottom: 12px;
}
.gsn-unit-gallery-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: 10px;
}
.gsn-unit-gallery-grid a img {
  width: 100%;
  height: 150px;
  object-fit: cover;
  border-radius: var(--gsn-radius);
  transition: var(--gsn-transition);
  border: 1px solid var(--gsn-border);
}
.gsn-unit-gallery-grid a img:hover {
  transform: scale(1.03);
  border-color: var(--gsn-orange);
}

/* ---- Dashboard ---- */
.user-dashboard-wrap,
.dashboard-content {
  background: var(--gsn-light) !important;
}
.dashboard-sidebar {
  background: var(--gsn-navy) !important;
  color: var(--gsn-white) !important;
  border-radius: var(--gsn-radius-lg) !important;
}
.dashboard-sidebar a { color: rgba(255,255,255,0.8) !important; }
.dashboard-sidebar a:hover,
.dashboard-sidebar a.active {
  color: var(--gsn-orange) !important;
  background: rgba(241,145,61,0.1) !important;
  border-radius: var(--gsn-radius) !important;
}
.dashboard-card {
  background: var(--gsn-white) !important;
  border-radius: var(--gsn-radius-lg) !important;
  box-shadow: var(--gsn-shadow) !important;
  padding: 20px !important;
}

/* ---- Forms ---- */
.wpcf7 input,
.wpcf7 textarea,
.wpcf7 select {
  border: 1px solid var(--gsn-border) !important;
  border-radius: var(--gsn-radius) !important;
  padding: 10px 14px !important;
  font-size: 14px !important;
  width: 100% !important;
  transition: var(--gsn-transition) !important;
}
.wpcf7 input:focus,
.wpcf7 textarea:focus {
  border-color: var(--gsn-orange) !important;
  box-shadow: 0 0 0 3px rgba(241,145,61,0.1) !important;
  outline: none !important;
}
.wpcf7 input[type="submit"] {
  background: var(--gsn-orange) !important;
  color: var(--gsn-white) !important;
  font-weight: 600 !important;
  border: none !important;
  border-radius: var(--gsn-radius) !important;
  padding: 12px 28px !important;
  cursor: pointer !important;
  font-size: 14px !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  width: auto !important;
  transition: var(--gsn-transition) !important;
}
.wpcf7 input[type="submit"]:hover {
  background: var(--gsn-orange-dk) !important;
}

/* ---- Footer ---- */
.site-footer,
#footer {
  background: var(--gsn-navy) !important;
  color: rgba(255,255,255,0.75) !important;
}
.site-footer h4,
.site-footer .widget-title,
#footer h4,
#footer .widget-title {
  color: var(--gsn-white) !important;
  font-size: 15px !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  font-weight: 600 !important;
  margin-bottom: 16px !important;
}
.site-footer a,
#footer a {
  color: rgba(255,255,255,0.65) !important;
  transition: var(--gsn-transition) !important;
}
.site-footer a:hover,
#footer a:hover {
  color: var(--gsn-orange) !important;
}
/* Unify footer + copyright into one solid band (no darker strip / double lines) */
.footer_background,
.footer_background .overlay-footer {
  background: var(--gsn-navy) !important;
  background-color: var(--gsn-navy) !important;
}
#footer {
  background: transparent !important;
  position: relative;
  z-index: 1;
  padding-bottom: 12px !important;
}
#bottom,
#bottom.bottom,
.footer-bottom {
  background: transparent !important;
  background-color: transparent !important;
  color: rgba(255,255,255,0.55) !important;
  font-size: 13px !important;
  border: none !important;
  border-top: none !important;
  border-bottom: none !important;
  box-shadow: none !important;
  padding-top: 8px !important;
  padding-bottom: 24px !important;
  margin-top: 0 !important;
  min-height: 0 !important;
  height: auto !important;
  position: relative;
  z-index: 1;
}
#footer .copyright,
.copyright {
  background: transparent !important;
  border: none !important;
  color: rgba(255,255,255,0.55) !important;
}
#bottom .container-inside,
#bottom .content-left,
#bottom .row,
#bottom .col-md-12 {
  border: none !important;
  border-top: none !important;
  border-bottom: none !important;
  box-shadow: none !important;
  background: transparent !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  min-height: 0 !important;
}
#footer .devide,
#footer .divide,
footer .devide {
  border: none !important;
  border-top: none !important;
  border-bottom: none !important;
  height: 0 !important;
  min-height: 0 !important;
  padding: 0 !important;
  margin: 8px 0 24px !important;
  background: none !important;
}
/* One soft separator only between contact row and link columns */
#footer .footer-widgets {
  border-top: 1px solid rgba(255,255,255,0.08) !important;
  padding-top: 36px !important;
}
#bottom::before,
#bottom::after,
.bottom::before,
.bottom::after,
#footer .copyright::before,
#footer .copyright::after,
#bottom .container-inside::before,
#bottom .container-inside::after {
  display: none !important;
  content: none !important;
  border: none !important;
}

/* ---- Trust strip ---- */
.gsn-trust-strip {
  background: var(--gsn-light);
  padding: 12px 0;
  text-align: center;
  border-top: 1px solid var(--gsn-border);
  border-bottom: 1px solid var(--gsn-border);
}
.gsn-trust-strip span {
  color: var(--gsn-grey);
  font-size: 13px;
  font-weight: 500;
  margin: 0 20px;
}
.gsn-trust-strip span i { color: var(--gsn-orange); margin-right: 6px; }

/* ---- Enquire / CTA button ---- */
.enquire-now,
.btn-enquire,
.property-contact .btn {
  background: var(--gsn-orange) !important;
  color: var(--gsn-white) !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  padding: 12px 28px !important;
  border-radius: var(--gsn-radius) !important;
  width: 100% !important;
  text-align: center !important;
  display: block !important;
  border: none !important;
  transition: var(--gsn-transition) !important;
}
.enquire-now:hover { background: var(--gsn-orange-dk) !important; }

/* WhatsApp */
.whatsapp-btn,
.btn-whatsapp { background: #25D366 !important; color: var(--gsn-white) !important; border-color: #25D366 !important; }
.whatsapp-btn:hover { background: #1da851 !important; }

/* ---- Property details: Read More must stay visible (Bootstrap .hide often sets display:none) ---- */
.single-property-element.property-info-detail .tfre-property-info .button-show-hide,
.single-property-element.property-info-detail .tfre-property-info .button-show-hide.hide {
  display: inline-block !important;
  visibility: visible !important;
  opacity: 1 !important;
  cursor: pointer !important;
  color: var(--gsn-orange) !important;
  font-weight: 600 !important;
  margin-top: 12px !important;
  pointer-events: auto !important;
}
.single-property-element.property-info-detail .tfre-property-info .inner.hide-content {
  height: 88px !important;
  overflow: hidden !important;
}
.single-property-element.property-info-detail .tfre-property-info .inner.show-content {
  height: auto !important;
  overflow: visible !important;
}

/* OSM map fallback (when Mapbox API key is empty) */
.gsn-osm-map-wrap {
  position: relative;
}
.gsn-map-actions {
  margin: 12px 0 0;
}
.gsn-directions-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: var(--gsn-orange) !important;
  font-weight: 600;
  text-decoration: none !important;
}
.gsn-directions-link:hover {
  color: var(--gsn-orange-dk) !important;
  text-decoration: underline !important;
}
.gsn-map-missing {
  padding: 24px;
  color: var(--gsn-grey);
}

/* Floor plan expandable details */
.gsn-floor-details {
  padding: 16px 4px 8px;
}
.gsn-floor-specs {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px 20px;
}
.gsn-floor-specs li {
  margin: 0;
  font-size: 14px;
  color: var(--gsn-dark);
  line-height: 1.5;
}
.gsn-floor-specs li strong {
  color: var(--gsn-navy);
  margin-right: 4px;
}
.gsn-floor-desc {
  margin-top: 12px;
  color: var(--gsn-grey);
}

/* Ensure top gallery has height */
.tfre-property-gallery-single,
.property-gallery-wrap {
  min-height: 240px;
}

/* ============================================================
   CONTACT PAGE — GSN Contact template
   ============================================================ */
/* Hide theme page title + breadcrumb; our hero owns the top */
.page-template-page-contact .page-header,
.page-template-page-contact .page-title,
.page-template-page-contact .page-title.style2,
.page-template-page-contact .breadcrumb-trail,
.page-template-page-contact .breadcrumbs,
.page-template-page-contact .tf-breadcrumb,
.page-template-page-contact .page-title-breadcrumb {
  display: none !important;
  height: 0 !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  border: none !important;
}
/* Flush hero under header — remove white gap */
.page-template-page-contact #main-content,
.page-template-page-contact #themesflat-content,
.page-template-page-contact .page-wrap,
.page-template-page-contact .wrap-content-area,
.page-template-page-contact #primary,
.page-template-page-contact main#main,
.page-template-page-contact article.page,
.page-template-page-contact .entry-content,
.page-template-page-contact .content-area {
  padding-top: 0 !important;
  margin-top: 0 !important;
  padding-bottom: 0 !important;
  margin-bottom: 0 !important;
}
.page-template-page-contact .gsn-contact {
  margin: 0 !important;
  padding: 0 !important;
}
/* Kill header shadow fringe that reads as a white strip above the navy hero */
.page-template-page-contact #header,
.page-template-page-contact .header-boxed,
.page-template-page-contact .header.header-default {
  box-shadow: none !important;
  border-bottom: none !important;
  margin-bottom: 0 !important;
}
.page-template-page-contact .gsn-contact-hero {
  margin-top: 0 !important;
  /* Pull 1px under header so no subpixel white hairline shows */
  position: relative;
  top: 0;
  background:
    radial-gradient(ellipse 80% 70% at 12% 20%, rgba(241,145,61,0.18), transparent 55%),
    radial-gradient(ellipse 70% 60% at 88% 10%, rgba(26,26,46,0.55), transparent 50%),
    linear-gradient(160deg, #12121f 0%, #1A1A2E 48%, #24243a 100%);
}
/* Flush map to footer — remove white gap */
.page-template-page-contact .gsn-contact-map {
  margin-bottom: 0 !important;
  padding-bottom: 0 !important;
  /* Overlap footer by 1px to kill hairline seam */
  position: relative;
  z-index: 2;
  margin-bottom: -1px !important;
}
.page-template-page-contact #footer,
.page-template-page-contact .footer_background {
  margin-top: 0 !important;
  padding-top: 0 !important;
  border-top: none !important;
  box-shadow: none !important;
}
.page-template-page-contact .footer_background {
  position: relative;
  z-index: 1;
}
/* Remove internal white dividers under map in the footer band */
.page-template-page-contact .footer_background::before,
.page-template-page-contact .footer_background::after,
.page-template-page-contact #footer::before,
.page-template-page-contact #footer::after,
.page-template-page-contact #footer .devide,
.page-template-page-contact #footer .divide,
.page-template-page-contact .footer_background .overlay-footer {
  display: none !important;
  border: none !important;
  height: 0 !important;
  background: transparent !important;
}
.page-template-page-contact #footer .top-footer,
.page-template-page-contact #footer .footer-widgets,
.page-template-page-contact #footer .wrap-widgets,
.page-template-page-contact #bottom {
  border-top: none !important;
  margin-top: 0 !important;
  box-shadow: none !important;
}
.gsn-contact {
  background: var(--gsn-white);
  color: var(--gsn-dark);
}
.gsn-contact-wrap {
  width: min(1120px, calc(100% - 40px));
  margin: 0 auto;
}
.gsn-contact-hero {
  position: relative;
  isolation: isolate;
  padding: 88px 0 64px;
  overflow: hidden;
}
.gsn-contact-hero__bg {
  display: none; /* background now on .gsn-contact-hero itself */
}
.gsn-contact-brand {
  margin: 0 0 12px;
  font-size: clamp(1.75rem, 4vw, 2.75rem);
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--gsn-white);
  line-height: 1.15;
  opacity: 0;
  transform: translateY(12px);
  animation: gsnContactIn 0.7s ease forwards;
}
.gsn-contact-hero__title {
  margin: 0 0 14px;
  font-size: clamp(1.15rem, 2.2vw, 1.5rem);
  font-weight: 600;
  color: rgba(255,255,255,0.92);
  letter-spacing: 0.02em;
  opacity: 0;
  transform: translateY(12px);
  animation: gsnContactIn 0.7s ease 0.12s forwards;
}
.gsn-contact-hero__lead {
  margin: 0;
  max-width: 34em;
  font-size: 1rem;
  line-height: 1.65;
  color: rgba(255,255,255,0.72);
  opacity: 0;
  transform: translateY(12px);
  animation: gsnContactIn 0.7s ease 0.24s forwards;
}
@keyframes gsnContactIn {
  to { opacity: 1; transform: translateY(0); }
}

.gsn-contact-main {
  padding: 64px 0 72px;
  background:
    linear-gradient(180deg, var(--gsn-light) 0%, var(--gsn-white) 42%);
}
.gsn-contact-grid {
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
  gap: 56px;
  align-items: start;
}
.gsn-contact-section-title {
  margin: 0 0 8px;
  font-size: 1.35rem;
  color: var(--gsn-navy);
}
.gsn-contact-section-copy {
  margin: 0 0 28px;
  color: var(--gsn-grey);
  font-size: 0.98rem;
}
.gsn-contact-block {
  margin-bottom: 22px;
}
.gsn-contact-label {
  margin: 0 0 6px;
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--gsn-grey);
}
.gsn-contact-value {
  margin: 0;
  font-size: 1.05rem;
  font-weight: 600;
  color: var(--gsn-navy);
  line-height: 1.45;
}
.gsn-contact-value a {
  color: inherit;
  text-decoration: none;
}
.gsn-contact-value a:hover {
  color: var(--gsn-orange);
}
.gsn-contact-offices {
  margin: 0;
  padding: 0;
  list-style: none;
}
.gsn-contact-offices li {
  position: relative;
  padding: 6px 0 6px 16px;
  color: var(--gsn-dark);
  font-size: 0.98rem;
  line-height: 1.45;
}
.gsn-contact-offices li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.85em;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--gsn-orange);
}
.gsn-contact-whatsapp {
  display: inline-flex;
  align-items: center;
  margin-top: 8px;
  padding: 12px 22px;
  background: #25D366;
  color: #fff !important;
  font-weight: 600;
  font-size: 0.95rem;
  text-decoration: none !important;
  border-radius: var(--gsn-radius);
  transition: var(--gsn-transition);
}
.gsn-contact-whatsapp:hover {
  filter: brightness(0.95);
  transform: translateY(-1px);
}

.gsn-contact-form-panel {
  min-width: 0;
}
.gsn-contact-form .wpcf7 {
  margin: 0;
}
.gsn-contact-form .wpcf7-form {
  display: grid;
  gap: 14px;
}
.gsn-contact-form .gsn-cf7-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}
.gsn-contact-form .gsn-cf7-field label {
  display: block;
  margin-bottom: 6px;
  font-size: 0.82rem;
  font-weight: 600;
  color: var(--gsn-navy);
}
.gsn-contact-form .wpcf7 input,
.gsn-contact-form .wpcf7 textarea,
.gsn-contact-form .wpcf7 select {
  background: var(--gsn-white) !important;
  min-height: 48px;
  padding: 12px 14px !important;
  font-size: 15px !important;
}
.gsn-contact-form .wpcf7 textarea {
  min-height: 130px;
  resize: vertical;
}
.gsn-contact-form .wpcf7 input[type="submit"] {
  margin-top: 4px;
  min-height: 50px;
  padding: 14px 28px !important;
  width: 100% !important;
  font-size: 15px !important;
}
.gsn-contact-form .wpcf7-not-valid-tip,
.gsn-contact-form .wpcf7-response-output {
  margin: 8px 0 0 !important;
  font-size: 0.9rem;
}

.gsn-contact-map {
  margin: 0;
  padding: 0;
  background: var(--gsn-navy);
  line-height: 0;
}
.gsn-contact-map__frame {
  position: relative;
  width: 100%;
  height: min(420px, 55vh);
  overflow: hidden;
  margin: 0;
  padding: 0;
}
.gsn-contact-map__frame iframe {
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
  filter: grayscale(0.15) contrast(1.02);
}

@media (max-width: 900px) {
  .gsn-contact-grid {
    grid-template-columns: 1fr;
    gap: 40px;
  }
  .gsn-contact-hero {
    padding: 72px 0 52px;
  }
  .gsn-contact-main {
    padding: 48px 0 56px;
  }
  .gsn-contact-form .gsn-cf7-row {
    grid-template-columns: 1fr;
  }
}

/* ---- Responsive ---- */
@media (max-width: 768px) {
  .advance-search-form,
  .search-form-wrap { padding: 16px !important; }
  .property-detail-box { padding: 16px !important; }
  .gsn-unit-gallery-grid { grid-template-columns: repeat(2, 1fr); }
  .gsn-floor-specs { grid-template-columns: 1fr; }
  .elementor-section,
  .elementor-top-section { padding-top: 48px; padding-bottom: 48px; }
  .gsn-contact-wrap { width: min(1120px, calc(100% - 28px)); }
  .gsn-contact-map__frame { height: 320px; }
}
@media (max-width: 480px) {
  .gsn-unit-gallery-grid { grid-template-columns: 1fr; }
}
