/* ============================================================
   MIDTOWN GROUP CHARLESTON — MAIN STYLESHEET

   SECTION GUIDE
   1. Brand variables and base typography
   2. Header and navigation
   3. Homepage hero and slideshow
   4. Search, content and property cards
   5. Communities, agents, contact and footer
   6. Interior pages
   7. Responsive/mobile corrections

   NOTE: Keep the mobile hero layer z-index values together. They prevent
   the slideshow from disappearing behind the page in iPhone Safari.
============================================================ */

/* 1. BRAND VARIABLES AND GLOBAL BASE STYLES */
:root{--navy:#071f33;--navy-2:#0b2c47;--blue:#173f68;--gold:#b79b63;--cream:#f5f2eb;--ink:#17202a;--white:#fff}*{box-sizing:border-box}html{scroll-behavior:smooth}body{font-family:"Montserrat",sans-serif;color:var(--ink);font-weight:300;overflow-x:hidden}h1,h2,h3,.signature,blockquote{font-family:"Cormorant Garamond",serif}h1{font-size:clamp(4rem,8vw,8.2rem);font-weight:500;line-height:.78;letter-spacing:-.035em}h2{font-size:clamp(3rem,5vw,5.3rem);line-height:.95;font-weight:500}h3{font-size:2rem}.section-pad{padding:120px 0}.eyebrow{font-size:.72rem;letter-spacing:.15em;font-weight:600}.text-accent{color:var(--gold)!important}/* 2. FIXED HEADER AND PRIMARY NAVIGATION */
.site-header{transition:.35s;background:linear-gradient(to bottom,rgba(0,0,0,.55),transparent)}.site-header.scrolled{background:rgba(7,31,51,.97);box-shadow:0 4px 25px rgba(0,0,0,.12)}.navbar .nav-link{color:#fff;font-size:.75rem;letter-spacing:.12em;text-transform:uppercase}.navbar .nav-link:hover{color:#d9c49e}.brand-lockup{display:flex;align-items:center;gap:.75rem;color:#fff;text-decoration:none}.brand-mark{width:48px;height:48px;border:1px solid rgba(255,255,255,.75);display:grid;place-items:center;font-family:"Cormorant Garamond",serif;font-size:1.45rem}.brand-copy{display:flex;flex-direction:column;line-height:1}.brand-copy strong{font-size:.85rem;letter-spacing:.17em}.brand-copy small{font-size:.66rem;letter-spacing:.42em;margin-top:.45rem}/* 3. HOMEPAGE HERO */
.hero{height:100vh;min-height:760px;background-position:center;background-size:cover;background-repeat:no-repeat;position:relative}.hero-overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(3,17,28,.78) 0%,rgba(3,17,28,.28) 60%,rgba(3,17,28,.12)),linear-gradient(0deg,rgba(3,17,28,.45),transparent 55%)}.hero-content{z-index:1}.hero-lead{max-width:690px;font-size:1.05rem;line-height:1.8}.scroll-cue{position:absolute;right:2rem;bottom:3rem;z-index:2;color:#fff;text-decoration:none;display:flex;flex-direction:column;align-items:center;gap:.7rem;font-size:.62rem;letter-spacing:.22em}/* 4. HOMEPAGE SEARCH PANEL */
.search-wrap{position:relative;z-index:3;margin-top:-45px}.property-search{background:#fff}.property-search>div>div{padding:1.1rem 1.3rem}.property-search label{font-size:.62rem;letter-spacing:.16em;font-weight:600;color:#68707a}.property-search .form-control,.property-search .form-select{border:0;border-radius:0;padding-left:0;box-shadow:none;font-family:"Cormorant Garamond",serif;font-size:1.25rem}.btn-search{background:var(--navy);color:#fff;height:100%;font-size:.7rem;letter-spacing:.16em}.btn-search:hover{background:var(--gold);color:#fff}.image-frame{position:relative;margin-right:40px}.image-frame:before{content:"";position:absolute;left:-28px;bottom:-28px;width:80%;height:80%;border:1px solid var(--gold);z-index:-1}.image-tall img{width:100%;height:650px;object-fit:cover}.experience-card{position:absolute;right:0;bottom:55px;background:var(--navy);color:#fff;padding:2rem 2.4rem;display:flex;flex-direction:column}.experience-card span,.experience-card small{font-size:.62rem;letter-spacing:.2em}.experience-card strong{font-family:"Cormorant Garamond",serif;font-size:2.25rem;font-weight:500}.lead-copy{font-family:"Cormorant Garamond",serif;font-size:1.55rem;line-height:1.5}.signature{font-size:2rem;font-style:italic;color:var(--blue)}.text-link{font-size:.7rem;letter-spacing:.17em;font-weight:600;color:var(--navy);text-decoration:none;border-bottom:1px solid var(--gold);padding-bottom:.5rem}.bg-soft{background:var(--cream)}/* FEATURED PROPERTY CARDS */
.property-card{background:#fff;height:100%;transition:.35s}.property-card:hover{transform:translateY(-8px);box-shadow:0 16px 40px rgba(15,29,45,.12)}.property-image{height:430px;position:relative;overflow:hidden}.property-image img{width:100%;height:100%;object-fit:cover;transition:.65s}.property-card:hover img{transform:scale(1.04)}.property-badge{position:absolute;top:1rem;left:1rem;background:#fff;color:var(--navy);font-size:.6rem;letter-spacing:.15em;padding:.55rem .8rem;font-weight:600}.property-body{padding:1.6rem}.property-price{font-family:"Cormorant Garamond",serif;font-size:1.55rem;color:var(--gold);margin-bottom:.3rem}.property-body h3{font-size:1.8rem;margin-bottom:.1rem}.property-body>p:not(.property-price){font-size:.78rem;color:#69717b}.property-meta{display:flex;gap:1.3rem;border-top:1px solid #e8e5df;padding-top:1rem;margin-top:1.2rem;font-size:.6rem;letter-spacing:.08em;font-weight:500}/* COMMUNITY IMAGE CARDS */
.community-card{height:520px;display:block;position:relative;overflow:hidden}.community-card:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(3,17,28,.82),transparent 62%);transition:.4s}.community-card:hover:after{background:rgba(7,31,51,.54)}.community-card img{width:100%;height:100%;object-fit:cover;transition:.7s}.community-card:hover img{transform:scale(1.06)}.community-card span{position:absolute;z-index:2;left:2rem;bottom:2.2rem;color:#fff;font-family:"Cormorant Garamond",serif;font-size:2rem;line-height:1}.community-card small{display:block;font-family:"Montserrat",sans-serif;font-size:.58rem;letter-spacing:.2em;margin-bottom:.65rem}.quote-section{min-height:600px;background-position:center;background-size:cover;background-attachment:fixed;background-repeat:no-repeat;display:flex;align-items:center;position:relative}.quote-overlay{position:absolute;inset:0;background:rgba(5,28,47,.72)}.quote-icon{font-size:3rem;color:var(--gold)}blockquote{font-size:clamp(2.3rem,4vw,4.6rem);line-height:1.1;max-width:1050px;margin:1rem auto 2.5rem}.team-section{background:#fff}/* AGENT PROFILE CARDS */
.agent-card{display:grid;grid-template-columns:44% 56%;background:var(--cream);min-height:380px}.agent-photo{display:grid;place-items:center;min-height:380px;background-position:center;background-size:cover;position:relative}.agent-photo span{position:relative;color:#fff;border:1px solid rgba(255,255,255,.6);width:105px;height:105px;display:grid;place-items:center;font-family:"Cormorant Garamond",serif;font-size:2.8rem}.agent-info{padding:3rem 2rem;display:flex;flex-direction:column;justify-content:center}.agent-info h3{font-size:2.5rem}.agent-info a{color:var(--navy);text-decoration:none;margin:.35rem 0;font-size:.8rem}.contact-image{min-height:720px;background-position:center;background-size:cover;background-repeat:no-repeat}.contact-panel{background:var(--navy);color:#fff;display:flex;align-items:center}.contact-inner{padding:7rem;max-width:800px}.contact-panel .form-control{border:0;border-bottom:1px solid rgba(255,255,255,.4);background:transparent;border-radius:0;color:#fff;padding:.9rem 0}.contact-panel .form-control::placeholder{color:rgba(255,255,255,.7)}.contact-panel .form-control:focus{box-shadow:none;border-color:var(--gold)}/* 5. SITE FOOTER */
.site-footer{background:#041522}.site-footer h3{font-family:"Montserrat",sans-serif;font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;margin-bottom:1.3rem;color:#d6c298}.site-footer a{display:block;color:rgba(255,255,255,.75);text-decoration:none;font-size:.8rem;margin:.7rem 0}.site-footer p{color:rgba(255,255,255,.68);font-size:.8rem;line-height:1.8}.footer-bottom p{font-size:.67rem}.floating-contact{position:fixed;right:1.4rem;bottom:1.4rem;width:54px;height:54px;background:var(--gold);color:#fff;border-radius:50%;display:grid;place-items:center;z-index:20;text-decoration:none;box-shadow:0 8px 25px rgba(0,0,0,.25)}.reveal{opacity:0;transform:translateY(25px);transition:.8s}.reveal.visible{opacity:1;transform:none}@media(min-width:768px){.border-end-md{border-right:1px solid #ddd}}@media(max-width:991.98px){.site-header{background:var(--navy)}.navbar-collapse{padding:1rem 0}.section-pad{padding:85px 0}.hero{min-height:700px}.image-tall img{height:520px}.experience-card{right:10px}.contact-inner{padding:5rem 2.5rem}.property-image{height:360px}}@media(max-width:767.98px){h1{font-size:4.2rem;line-height:.85}.hero{height:92vh;min-height:650px}.scroll-cue{display:none}.search-wrap{margin-top:0;background:var(--navy);padding:1rem 0}.property-search>div>div{border-bottom:1px solid #e7e7e7}.btn-search{min-height:70px}.image-frame{margin:0 0 25px 20px}.image-tall img{height:440px}.experience-card{position:relative;right:auto;bottom:auto;margin:-60px 10px 0 auto;width:max-content}.community-card{height:400px}.quote-section{background-attachment:scroll;min-height:520px}.agent-card{grid-template-columns:1fr}.agent-photo{min-height:320px}.contact-image{min-height:430px}.contact-inner{padding:4rem 1.5rem}.brand-copy strong{font-size:.72rem}.brand-copy small{font-size:.56rem}.brand-mark{width:42px;height:42px}}

/* Interior pages */
.inner-hero{min-height:560px;padding-top:120px;position:relative;display:flex;align-items:end;background-position:center;background-size:cover;color:#fff}
.inner-hero:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(3,17,28,.82),rgba(3,17,28,.25)),linear-gradient(0deg,rgba(3,17,28,.55),transparent 60%)}
.inner-hero .container{position:relative;z-index:1;padding-bottom:5rem}
.inner-hero h1{font-size:clamp(3.8rem,7vw,7rem);line-height:.88}





.page-intro{max-width:830px;margin:auto;text-align:center}
.content-card{background:#fff;padding:2.2rem;height:100%;box-shadow:0 10px 35px rgba(10,29,46,.08)}
.content-card i{font-size:2rem;color:var(--gold)}
.agent-detail{background:var(--cream);padding:2.5rem;height:100%}
.agent-detail h2{font-size:3.4rem}
.contact-info-card{background:var(--navy);color:#fff;padding:3rem;height:100%}
.contact-info-card a{color:#fff;text-decoration:none}
.navbar .nav-link.active{color:#d9c49e;border-bottom:1px solid #d9c49e}
@media(max-width:767.98px){.inner-hero{min-height:470px}.inner-hero .container{padding-bottom:3rem}.inner-hero h1{font-size:3.8rem}.agent-detail h2{font-size:2.8rem}}

/* Mobile overflow and responsive layout fixes */
html,
body {
  width: 100%;
  max-width: 100%;
  overflow-x: clip;
}

body {
  position: relative;
}

img,
svg,
video,
canvas,
iframe {
  display: block;
  max-width: 100%;
}

main,
header,
footer,
section,
nav,
.container,
.container-fluid,
.row,
[class*="col-"] {
  min-width: 0;
}

.navbar,
.navbar > .container,
.navbar-collapse,
.navbar-nav,
.brand-lockup,
.brand-copy {
  max-width: 100%;
  min-width: 0;
}

.brand-copy strong,
.brand-copy small,
.site-footer a,
.agent-info a,
.contact-panel p,
.property-body,
.community-card span {
  overflow-wrap: anywhere;
  word-break: normal;
}

.property-meta {
  flex-wrap: wrap;
}

.contact-inner {
  width: 100%;
}

.form-control,
.form-select,
.input-group {
  min-width: 0;
  max-width: 100%;
}

@supports not (overflow: clip) {
  html,
  body {
    overflow-x: hidden;
  }
}

@media (max-width: 767.98px) {
  .navbar > .container {
    flex-wrap: nowrap;
  }

  .navbar-brand {
    min-width: 0;
    max-width: calc(100% - 58px);
    margin-right: .5rem;
  }

  .brand-lockup {
    gap: .55rem;
  }

  .brand-copy {
    overflow: hidden;
  }

  .brand-copy strong,
  .brand-copy small {
    display: block;
    white-space: normal;
    line-height: 1.15;
  }

  .brand-copy strong {
    letter-spacing: .11em;
  }

  .brand-copy small {
    letter-spacing: .24em;
    margin-top: .25rem;
  }

  .navbar-toggler {
    flex: 0 0 auto;
  }

  .navbar-collapse {
    width: 100%;
  }

  h1,
  .inner-hero h1 {
    font-size: clamp(3rem, 16vw, 4.2rem);
    overflow-wrap: anywhere;
  }

  h2 {
    font-size: clamp(2.55rem, 12vw, 3.4rem);
    overflow-wrap: anywhere;
  }

  .hero-content,
  .inner-hero .container {
    width: 100%;
    max-width: 100%;
  }

  .image-frame {
    margin: 0 0 25px;
    padding-left: 18px;
  }

  .image-frame::before {
    left: 0;
    bottom: -18px;
    width: calc(100% - 18px);
  }

  .experience-card {
    width: min(100%, 270px);
    max-width: 100%;
    margin: -50px 0 0 auto;
    padding: 1.5rem;
  }

  .property-search > div > div {
    width: 100%;
  }

  .property-meta {
    gap: .65rem 1rem;
  }

  .community-card span {
    left: 1.25rem;
    right: 1.25rem;
    bottom: 1.5rem;
    font-size: 1.75rem;
  }

  .agent-info {
    padding: 2.25rem 1.25rem;
  }

  .contact-inner {
    padding-left: 1rem;
    padding-right: 1rem;
  }

  .site-footer .row > * {
    min-width: 0;
  }

  .site-footer .input-group {
    flex-wrap: nowrap;
  }

  .floating-contact {
    right: .85rem;
    bottom: .85rem;
  }
}

@media (max-width: 374.98px) {
  .brand-mark {
    width: 38px;
    height: 38px;
    flex: 0 0 38px;
  }

  .brand-copy strong {
    font-size: .63rem;
  }

  .brand-copy small {
    font-size: .5rem;
    letter-spacing: .16em;
  }

  .navbar-toggler {
    padding: .25rem .45rem;
  }

  .hero-lead {
    font-size: .92rem;
  }
}

/* Homepage hero image slideshow — mobile-safe layer stacking */
.hero {
  position: relative;
  background: #071f33;
  overflow: hidden;
  isolation: isolate;
}

.hero-slideshow,
.hero-slide {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.hero-slideshow {
  z-index: 0;
  overflow: hidden;
  pointer-events: none;
}

.hero-slide {
  background-position: center center;
  background-size: cover;
  background-repeat: no-repeat;
  opacity: 0;
  transform: scale(1.07);
  transition: opacity 1.45s ease-in-out, transform 7.5s ease-out;
  will-change: opacity, transform;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
}

.hero-slide.active {
  opacity: 1;
  transform: scale(1);
}

.hero-overlay {
  z-index: 1;
  pointer-events: none;
}

.hero-content,
.scroll-cue {
  position: relative;
  z-index: 2;
}

@media (max-width: 767.98px) {
  .hero {
    height: 100svh;
    min-height: 640px;
  }

  @supports (height: 100dvh) {
    .hero { height: 100dvh; }
  }

  .hero-slide {
    background-position: center center;
    transform: scale(1.045);
    transition: opacity 1.15s ease-in-out, transform 6.5s ease-out;
  }

  .hero-slide.active { transform: scale(1); }
}

@media (prefers-reduced-motion: reduce) {
  .hero-slide {
    transition: opacity .35s linear;
    transform: none !important;
  }
}

/* Animated Properties navigation submenu */
.properties-dropdown {
  position: relative;
}

.properties-dropdown .dropdown-toggle::after {
  margin-left: .45rem;
  vertical-align: .18em;
  transition: transform .3s ease;
}

.properties-dropdown .dropdown-toggle[aria-expanded="true"]::after {
  transform: rotate(180deg);
}

.animated-property-menu {
  --bs-dropdown-min-width: 13.5rem;
  --bs-dropdown-padding-y: .65rem;
  --bs-dropdown-border-radius: 0;
  --bs-dropdown-border-width: 0;
  --bs-dropdown-link-hover-bg: rgba(183, 155, 99, .14);
  --bs-dropdown-link-active-bg: var(--navy);
  margin-top: 0;
  padding: .65rem 0;
  background: rgba(255, 255, 255, .98);
  border-top: 3px solid var(--gold);
  box-shadow: 0 18px 45px rgba(4, 21, 34, .2);
  transform-origin: top center;
}

.animated-property-menu .dropdown-item {
  position: relative;
  padding: .75rem 1.35rem;
  color: var(--navy);
  font-size: .7rem;
  font-weight: 500;
  letter-spacing: .12em;
  text-transform: uppercase;
  transition: color .25s ease, background-color .25s ease, padding-left .25s ease;
}

.animated-property-menu .dropdown-item::before {
  content: "";
  position: absolute;
  left: 1rem;
  top: 50%;
  width: 0;
  height: 1px;
  background: var(--gold);
  transform: translateY(-50%);
  transition: width .25s ease;
}

.animated-property-menu .dropdown-item:hover,
.animated-property-menu .dropdown-item:focus {
  color: var(--navy);
  padding-left: 2.25rem;
}

.animated-property-menu .dropdown-item:hover::before,
.animated-property-menu .dropdown-item:focus::before {
  width: .8rem;
}

@media (min-width: 1200px) {
  /* Attach the submenu directly to the bottom of Properties—no dead hover gap. */
  .properties-dropdown .animated-property-menu {
    display: block;
    position: absolute;
    top: 100%;
    left: 0;
    margin: 0;
    visibility: hidden;
    opacity: 0;
    pointer-events: none;
    clip-path: inset(0 0 100% 0);
    transform: translateY(0);
    transition: opacity .24s ease, clip-path .34s cubic-bezier(.22, 1, .36, 1), visibility 0s linear .34s;
  }

  /* Keep a small overlap so even a one-pixel browser rounding gap cannot close it. */
  .properties-dropdown .animated-property-menu {
    top: calc(100% - 1px);
  }

  .properties-dropdown:hover .animated-property-menu,
  .properties-dropdown:focus-within .animated-property-menu,
  .properties-dropdown .animated-property-menu.show {
    visibility: visible;
    opacity: 1;
    pointer-events: auto;
    clip-path: inset(0 0 0 0);
    transition-delay: 0s;
  }

  .properties-dropdown:hover .dropdown-toggle::after,
  .properties-dropdown:focus-within .dropdown-toggle::after {
    transform: rotate(180deg);
  }
}

@media (max-width: 1199.98px) {
  .animated-property-menu {
    margin: .35rem 0 .65rem;
    padding: .25rem 0 .25rem 1rem;
    background: rgba(255, 255, 255, .06);
    border-top: 0;
    border-left: 1px solid rgba(217, 196, 158, .55);
    box-shadow: none;
  }

  .animated-property-menu .dropdown-item {
    color: rgba(255, 255, 255, .88);
    padding: .65rem 1rem;
  }

  .animated-property-menu .dropdown-item:hover,
  .animated-property-menu .dropdown-item:focus {
    color: #fff;
    background: rgba(255, 255, 255, .08);
    padding-left: 1.55rem;
  }

  .animated-property-menu .dropdown-item::before {
    left: .45rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .properties-dropdown .dropdown-toggle::after,
  .animated-property-menu,
  .animated-property-menu .dropdown-item,
  .animated-property-menu .dropdown-item::before {
    transition: none !important;
  }
}

/* Residential listing and property detail pages */

.residential-hero .breadcrumb,.residential-hero .breadcrumb a{color:rgba(255,255,255,.78)}
.residential-hero .breadcrumb-item.active{color:#fff}.residential-hero .breadcrumb-item+.breadcrumb-item::before{color:rgba(255,255,255,.55)}
.listing-filter{top:120px;background:#fff;padding:2rem;border-top:3px solid var(--gold);box-shadow:0 18px 45px rgba(4,21,34,.08)}
.listing-filter h2{font-size:2rem}.listing-filter .form-label,.inquiry-card .form-label{font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;font-weight:600}
.listing-filter hr{margin:2rem 0;border-color:rgba(5,22,35,.12)}.filter-title{font-size:1.3rem}.price-links{display:grid}.price-links a{color:var(--navy);padding:.65rem 0;border-bottom:1px solid rgba(5,22,35,.08);font-size:.82rem}.price-links a:hover{color:var(--gold)}
.listing-toolbar{display:flex;justify-content:space-between;align-items:end;gap:2rem;margin-bottom:2rem}.listing-toolbar h2{font-size:2.6rem}.listing-toolbar .form-select{min-width:220px}
.res-listing-grid{display:grid;gap:1.5rem}.res-listing-card{display:grid;grid-template-columns:minmax(280px,38%) 1fr;background:#fff;box-shadow:0 12px 34px rgba(4,21,34,.07);overflow:hidden;transition:transform .35s ease,box-shadow .35s ease}.res-listing-card:hover{transform:translateY(-4px);box-shadow:0 18px 44px rgba(4,21,34,.13)}
.res-listing-photo{position:relative;min-height:290px;overflow:hidden}.res-listing-photo img{width:100%;height:100%;object-fit:cover;transition:transform .7s ease}.res-listing-card:hover .res-listing-photo img{transform:scale(1.045)}.listing-status,.photo-count{position:absolute;color:#fff;font-size:.65rem;letter-spacing:.1em}.listing-status{top:1rem;left:1rem;background:var(--navy);padding:.5rem .75rem}.photo-count{right:1rem;bottom:1rem;background:rgba(0,0,0,.65);padding:.45rem .65rem}
.res-listing-content{padding:2rem;display:flex;flex-direction:column}.res-price{font-family:'Cormorant Garamond',serif;font-size:2rem;font-weight:600;color:var(--navy);margin:0}.res-listing-content h2{font-size:1.7rem;margin:.2rem 0}.res-listing-content h2 a{color:var(--navy)}.listing-location{color:#6a747c}.favorite-btn{border:1px solid rgba(5,22,35,.15);background:transparent;width:42px;height:42px;border-radius:50%;color:var(--navy);transition:.25s}.favorite-btn:hover{background:var(--navy);color:#fff}
.listing-facts{display:flex;gap:1.5rem;padding:1rem 0;margin:1rem 0;border-top:1px solid rgba(5,22,35,.08);border-bottom:1px solid rgba(5,22,35,.08);font-size:.75rem;text-transform:uppercase;letter-spacing:.06em}.listing-facts strong{font-size:1rem}.listing-bottom{margin-top:auto;display:flex;justify-content:space-between;gap:1rem;align-items:end}.listing-bottom small{color:#727b82}.listing-more{color:var(--navy);font-size:.7rem;font-weight:600;letter-spacing:.12em;white-space:nowrap}.listing-more:hover{color:var(--gold)}
.pagination{--bs-pagination-color:var(--navy);--bs-pagination-active-bg:var(--navy);--bs-pagination-active-border-color:var(--navy);--bs-pagination-border-radius:0}.idx-disclaimer{font-size:.68rem;line-height:1.7;color:#7a8288;border-top:1px solid rgba(5,22,35,.1);padding-top:1.5rem}
.property-title-section{padding:150px 0 2rem;background:#f5f3ef}.property-title-section h1{font-size:clamp(2.6rem,5vw,5rem)}.property-city{font-size:1.05rem;color:#69747b}.detail-price{font-family:'Cormorant Garamond',serif;font-size:clamp(2.2rem,4vw,3.6rem);font-weight:600;color:var(--navy);margin:0}.detail-actions{display:flex;gap:.5rem;justify-content:flex-end}
.property-gallery{background:#f5f3ef;padding-bottom:3rem}.gallery-grid{display:grid;grid-template-columns:2fr 1fr;gap:.75rem;height:min(640px,62vw)}.gallery-main,.gallery-thumb{border:0;padding:0;position:relative;overflow:hidden;background:#ddd}.gallery-main img,.gallery-thumb img{width:100%;height:100%;object-fit:cover;transition:transform .7s ease}.gallery-main:hover img,.gallery-thumb:hover img{transform:scale(1.035)}.gallery-thumbs{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.view-gallery{position:absolute;right:1.25rem;bottom:1.25rem;background:#fff;color:var(--navy);padding:.8rem 1rem;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase}.gallery-close{position:absolute;top:1.5rem;right:1.5rem;z-index:10;font-size:1.4rem}.carousel-item img{max-height:88vh;object-fit:contain}
.key-facts{display:grid;grid-template-columns:repeat(5,1fr);border:1px solid rgba(5,22,35,.12);margin-bottom:4rem}.key-facts div{text-align:center;padding:1.5rem .5rem;border-right:1px solid rgba(5,22,35,.12)}.key-facts div:last-child{border-right:0}.key-facts i{display:block;color:var(--gold);font-size:1.35rem;margin-bottom:.5rem}.key-facts strong{display:block;font-family:'Cormorant Garamond',serif;font-size:1.7rem}.key-facts span{font-size:.65rem;text-transform:uppercase;letter-spacing:.1em;color:#6d767d}
.detail-section{padding:0 0 3.5rem;margin-bottom:3.5rem;border-bottom:1px solid rgba(5,22,35,.1)}.detail-section h2{font-size:2.7rem}.detail-section p{line-height:1.9}.property-data-grid{display:grid;grid-template-columns:1fr 1fr}.property-data-grid div{display:flex;justify-content:space-between;gap:1rem;padding:1rem;border-bottom:1px solid rgba(5,22,35,.09)}.property-data-grid div:nth-child(4n+1),.property-data-grid div:nth-child(4n+2){background:#f6f4f0}.property-data-grid span{color:#707980}.property-data-grid strong{text-align:right}.feature-list{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.feature-list span{padding:1rem;background:#f6f4f0}.feature-list i{color:var(--gold);margin-right:.6rem}
.inquiry-card{top:120px;background:#f6f4f0;padding:2.25rem;border-top:3px solid var(--gold)}.inquiry-card h2{font-size:2.4rem}.agent-contact-mini{display:flex;align-items:center;gap:1rem;padding:1rem 0;border-top:1px solid rgba(5,22,35,.1)}.agent-contact-mini:last-of-type{border-bottom:1px solid rgba(5,22,35,.1)}.agent-initial{display:grid;place-items:center;width:46px;height:46px;border-radius:50%;background:var(--navy);color:#fff;font-family:'Cormorant Garamond',serif}.agent-contact-mini strong,.agent-contact-mini a{display:block}.agent-contact-mini a{color:var(--gold);font-size:.82rem}.map-placeholder{min-height:360px;background-position:center;background-size:cover;background-repeat:no-repeat;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#fff;text-align:center;padding:2rem}.map-placeholder i{font-size:2.5rem;color:var(--gold)}.map-placeholder strong{font-family:'Cormorant Garamond',serif;font-size:2rem}
@media(max-width:991.98px){.listing-filter,.inquiry-card{position:static!important}.res-listing-card{grid-template-columns:1fr}.res-listing-photo{min-height:360px}.gallery-grid{height:auto;grid-template-columns:1fr}.gallery-main{height:55vw;min-height:340px}.gallery-thumbs{height:42vw}.key-facts{grid-template-columns:repeat(3,1fr)}.key-facts div:nth-child(3){border-right:0}.key-facts div:nth-child(-n+3){border-bottom:1px solid rgba(5,22,35,.12)}.detail-actions{justify-content:flex-start}}
@media(max-width:767.98px){.listing-toolbar{align-items:stretch;flex-direction:column}.listing-toolbar .form-select{min-width:0}.res-listing-photo{min-height:260px}.listing-bottom{align-items:flex-start;flex-direction:column}.gallery-main{height:68vw;min-height:280px}.gallery-thumbs{grid-template-columns:1fr 1fr;height:auto}.gallery-thumb{height:30vw}.key-facts{grid-template-columns:1fr 1fr}.key-facts div,.key-facts div:nth-child(3){border-right:1px solid rgba(5,22,35,.12);border-bottom:1px solid rgba(5,22,35,.12)}.key-facts div:nth-child(even){border-right:0}.key-facts div:last-child{grid-column:1/-1}.property-data-grid,.feature-list{grid-template-columns:1fr}.property-data-grid div:nth-child(n){background:transparent}.property-data-grid div:nth-child(odd){background:#f6f4f0}.detail-actions{flex-wrap:wrap}}
@media(max-width:480px){.res-listing-content{padding:1.35rem}.listing-facts{gap:.75rem;justify-content:space-between}.listing-facts span{font-size:.61rem}.property-title-section{padding-top:125px}.gallery-grid{margin-left:-.75rem;margin-right:-.75rem}.gallery-thumbs{gap:.35rem}.detail-section h2{font-size:2.2rem}.inquiry-card{padding:1.35rem}}

/* ==========================================================
   HOMEPAGE TEAM HERO — 2026 redesign
   The image has open space on the left, so the marketing copy
   is intentionally positioned there and never overlaps faces.
========================================================== */
.team-home-hero{
  position:relative;
  min-height:680px;
  padding-top:110px;
  background-size:cover;
  background-position:center 42%;
  overflow:hidden;
}
.team-home-hero__shade{
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,rgba(255,255,255,.96) 0%,rgba(255,255,255,.84) 25%,rgba(255,255,255,.20) 48%,rgba(255,255,255,0) 68%);
}
.team-home-hero__inner{position:relative;z-index:1;min-height:570px;display:flex;align-items:center}
.team-home-hero__copy{max-width:560px;padding:3rem 0 7rem}
.team-home-hero h1{color:var(--navy);font-size:clamp(3.4rem,5.2vw,5.8rem);line-height:.9;letter-spacing:-.025em;margin:0}
.hero-gold-line{display:block;width:58px;height:3px;background:var(--gold);margin:1.7rem 0}
.team-home-hero__lead{color:#303944;font-size:1.15rem;line-height:1.65;margin:0}
.btn-hero-primary{background:var(--navy);border:1px solid var(--navy);color:#fff;font-size:.72rem;letter-spacing:.08em;font-weight:600;min-width:190px}
.btn-hero-primary:hover{background:var(--gold);border-color:var(--gold);color:#fff}
.btn-hero-outline{background:rgba(255,255,255,.78);border:1px solid var(--navy);color:var(--navy);font-size:.72rem;letter-spacing:.08em;font-weight:600;min-width:190px}
.btn-hero-outline:hover{background:var(--navy);color:#fff}

/* Search panel overlaps the bottom of the photograph on desktop. */
.home-search-section{position:relative;z-index:4;margin-top:-92px}
.home-search-panel{background:linear-gradient(135deg,#061a34,#002b5c);padding:1.25rem 1.5rem 1.5rem;border:1px solid rgba(201,146,47,.85);box-shadow:0 18px 50px rgba(3,17,28,.22)}
.home-search-title{font-family:"Montserrat",sans-serif;color:#fff;text-transform:uppercase;letter-spacing:.05em;font-size:1.1rem;margin:0 0 .9rem}
.home-search-panel .form-select{height:58px;border:0;padding-left:1rem;color:#172238;font-family:"Montserrat",sans-serif;font-size:.82rem;box-shadow:none}
.home-search-button{height:58px;background:linear-gradient(135deg,#b97825,#dda645);border:0;color:#fff;font-size:.8rem;letter-spacing:.08em;font-weight:600;min-width:160px}
.home-search-button:hover{background:linear-gradient(135deg,#dda645,#b97825);color:#fff}

.home-benefits{padding:2.1rem 0 2.4rem;background:#fff}
.home-benefit{display:flex;align-items:center;gap:1rem;padding:1rem 1.6rem;border-right:1px solid rgba(5,31,58,.18)}
.home-benefit:last-child{border-right:0}
.home-benefit i{font-size:2.35rem;color:var(--gold);line-height:1}
.home-benefit div{display:flex;flex-direction:column;gap:.3rem}
.home-benefit strong{font-size:.74rem;letter-spacing:.05em;color:var(--navy)}
.home-benefit span{font-size:.75rem;color:#59616a}

@media(max-width:1199.98px){
  .team-home-hero{background-position:58% center}
  .team-home-hero__shade{background:linear-gradient(90deg,rgba(255,255,255,.95) 0%,rgba(255,255,255,.78) 38%,rgba(255,255,255,.10) 67%,transparent 100%)}
  .home-search-section{margin-top:-70px}
  .home-benefit{border-bottom:1px solid rgba(5,31,58,.12)}
}

@media(max-width:767.98px){
  .team-home-hero{
    min-height:760px;
    padding-top:82px;
    background-size:auto 62%;
    background-repeat:no-repeat;
    background-position:62% top;
    background-color:#f5f2ed;
  }
  .team-home-hero__shade{
    background:linear-gradient(180deg,transparent 0%,rgba(245,242,237,.10) 35%,#f5f2ed 61%,#f5f2ed 100%);
  }
  .team-home-hero__inner{min-height:678px;align-items:flex-end}
  .team-home-hero__copy{max-width:none;text-align:center;padding:0 0 2.25rem}
  .team-home-hero h1{font-size:3.35rem;line-height:.92}
  .hero-gold-line{margin:1.1rem auto}
  .team-home-hero__lead{font-size:1rem;line-height:1.55}
  .team-home-hero__copy .d-flex{justify-content:center}
  .btn-hero-primary,.btn-hero-outline{min-width:0;flex:1 1 155px}
  .home-search-section{margin-top:0;background:var(--navy);padding:1rem 0}
  .home-search-panel{padding:1rem;border-radius:0}
  .home-search-title{text-align:center}
  .home-benefits{padding:1rem 0}
  .home-benefit{padding:1.2rem .75rem;border-right:0;text-align:center;flex-direction:column;gap:.65rem}
  .home-benefit i{font-size:2rem}
  .home-benefit span{font-size:.68rem}
}

/* ======================================================
   HOMEPAGE TEAM HERO OVERRIDES
   Keeps the original page design while using one team image.
   The copy is centered and lowered so it does not cover faces.
====================================================== */
.hero-single-image .hero-slide {
  background-position: center center;
  transform: none;
  transition: none;
}

.hero-single-image .hero-slide.active {
  transform: none;
}

.hero .hero-overlay {
  background:
    linear-gradient(to bottom,
      rgba(3,17,28,.10) 0%,
      rgba(3,17,28,.05) 38%,
      rgba(3,17,28,.42) 66%,
      rgba(3,17,28,.84) 100%);
}

.hero-content-centered {
  z-index: 3;
  width: 100%;
  padding-bottom: clamp(4.5rem, 8vh, 7.5rem);
}

.hero-content-centered h1 {
  text-shadow: 0 3px 24px rgba(0,0,0,.45);
}

.hero-content-centered .hero-lead {
  max-width: 760px;
  text-shadow: 0 2px 12px rgba(0,0,0,.55);
}

.hero-content-centered .eyebrow {
  text-shadow: 0 2px 10px rgba(0,0,0,.5);
}

@media (max-width: 767.98px) {
  .hero-single-image .hero-slide {
    background-position: 58% center;
  }

  .hero-content-centered {
    padding-bottom: 3.25rem;
  }

  .hero-content-centered h1 {
    font-size: clamp(2.85rem, 14vw, 4rem);
  }

  .hero-content-centered .hero-lead {
    font-size: .95rem;
    line-height: 1.65;
  }
}

/* ======================================================
   FINAL HOMEPAGE HERO POSITIONING
   The supplied photograph contains generous open space on the
   left. A slightly left-shifted background keeps both agents
   visible while reserving that space for the headline.
====================================================== */
.team-home-hero{
  min-height:750px;
  background-position:46% center;
}
.team-home-hero__shade{
  background:linear-gradient(90deg,rgba(255,255,255,.97) 0%,rgba(255,255,255,.90) 24%,rgba(255,255,255,.48) 40%,rgba(255,255,255,.05) 62%,rgba(255,255,255,0) 100%);
}
.team-home-hero__inner{min-height:640px}
.team-home-hero__copy{max-width:600px;padding:4rem 0 8rem 1rem}
.team-home-hero h1{font-size:clamp(3.8rem,5.6vw,6.25rem);line-height:.92}
.team-home-hero__lead{max-width:590px;color:#18263a;font-size:1.08rem}
.home-search-section{margin-top:-78px}
.home-search-panel{border-radius:.55rem}
.home-search-panel .form-select,.home-search-button{height:60px}

@media(max-width:1199.98px){
  .team-home-hero{background-position:54% center;min-height:700px}
  .team-home-hero__copy{padding-left:0;max-width:520px}
}

@media(max-width:767.98px){
  .team-home-hero{
    min-height:780px;
    background-size:auto 59%;
    background-position:62% top;
  }
  .team-home-hero__shade{background:linear-gradient(180deg,transparent 0%,rgba(245,242,237,.05) 34%,#f5f2ed 58%,#f5f2ed 100%)}
  .team-home-hero__copy{padding:0 0 2rem;max-width:none}
  .team-home-hero h1{font-size:clamp(3rem,14vw,4.2rem)}
  .team-home-hero__lead{font-size:.96rem}
  .home-search-section{margin-top:0}
  .home-search-panel{border-radius:0}
}


/* ======================================================
   OFFICIAL MIDTOWN GROUP LOGO
   SVG logo used consistently in the site header and footer.
====================================================== */
.site-logo-link{
  display:flex;
  align-items:center;
  flex:0 0 auto;
  padding:0;
  margin-right:1.5rem;
}
.site-logo{
  display:block;
  width:clamp(230px, 22vw, 360px);
  height:auto;
  max-height:78px;
  object-fit:contain;
  object-position:left center;
  transition:width .35s ease, max-height .35s ease, opacity .2s ease, transform .35s ease;
}
.site-logo.is-changing{opacity:0;transform:scale(.97)}
.site-header.scrolled .site-logo{
  width:clamp(215px, 20vw, 325px);
  max-height:68px;
  transform:scale(.98);
}
.footer-logo-link{
  display:block;
  width:min(100%, 390px);
  text-decoration:none;
}
.footer-logo{
  display:block;
  width:100%;
  height:auto;
}
@media (max-width:1199.98px){
  .site-logo{width:270px;max-height:66px}
  .site-header.scrolled .site-logo{width:250px;max-height:62px}
}
@media (max-width:575.98px){
  .site-logo{width:210px;max-height:54px}
  .site-header.scrolled .site-logo{width:195px;max-height:50px}
  .footer-logo-link{width:min(100%, 320px)}
}

/* ======================================================
   MOBILE / TABLET TRANSPARENT HEADER + VISIBLE TOGGLER
   - Header stays transparent at the top, matching desktop.
   - Header changes to navy after the visitor scrolls.
   - Hamburger button always has a navy background.
====================================================== */
@media (max-width:1199.98px){
  .site-header{
    background:transparent;
    box-shadow:none;
  }

  .site-header:not(.scrolled){
    background:transparent;
    box-shadow:none;
  }

  .site-header.scrolled{
    background:rgba(7,31,51,.97);
    box-shadow:0 4px 25px rgba(0,0,0,.18);
    -webkit-backdrop-filter:blur(12px);
    backdrop-filter:blur(12px);
  }

  /* Keep the hamburger visible against every hero/background. */
  .navbar-toggler{
    display:flex;
    align-items:center;
    justify-content:center;
    width:48px;
    height:44px;
    padding:0;
    background:#071f33 !important;
    border:1px solid rgba(255,255,255,.35) !important;
    border-radius:4px;
    box-shadow:0 5px 16px rgba(0,0,0,.2);
  }

  .navbar-toggler:hover,
  .navbar-toggler:focus,
  .navbar-toggler[aria-expanded="true"]{
    background:#071f33 !important;
    border-color:rgba(255,255,255,.65) !important;
    box-shadow:0 0 0 .2rem rgba(217,196,158,.2);
  }

  .navbar-toggler-icon{
    width:1.45rem;
    height:1.45rem;
    filter:none;
  }

  /* Give the opened mobile navigation a solid readable panel. */
  .navbar-collapse.show,
  .navbar-collapse.collapsing{
    margin-top:.75rem;
    padding:1rem 1.1rem 1.25rem;
    background:rgba(7,31,51,.98);
    border-top:1px solid rgba(255,255,255,.12);
    box-shadow:0 14px 25px rgba(0,0,0,.18);
  }
}

#footer h1 {
  font-size: 34px;
}
#footer h2 {
  font-size: 28px;
}
