/* ── tsmchomes.com shared styles (nav, site-nav, footer, page-content pattern) ── */
:root {
  --ivory:#F4F0E8; --ivory2:#EDE8DC; --charcoal:#232323;
  --taupe:#B9A996; --clay:#B46A45; --sage:#7E846F;
  --white:#ffffff; --navy:#002339;
}
*{box-sizing:border-box;margin:0;padding:0;}
html,body{font-family:'Inter',system-ui,sans-serif;background:var(--ivory);color:var(--charcoal);}
a{text-decoration:none;}

/* ── NAV (top bar) — matches neighborhood-page nav exactly ── */
nav.topnav{
  background:var(--white);padding:0 32px;height:54px;
  display:flex;align-items:center;justify-content:space-between;
  border-bottom:1px solid var(--ivory2);
  position:sticky;top:0;z-index:1002;
  box-shadow:0 1px 6px rgba(0,0,0,0.06);
}
.nav-left{display:flex;align-items:center;gap:10px;min-width:0;}
.nav-brand{font-family:'Playfair Display',Georgia,serif;font-size:16px;color:var(--charcoal);white-space:nowrap;}
.nav-brand span{color:var(--clay);}
.nav-brand a{color:inherit;}
.nav-logo{height:28px;width:28px;border-radius:50%;object-fit:cover;flex-shrink:0;}
.nav-sep{color:var(--taupe);font-size:12px;flex-shrink:0;}
.nav-partner{font-size:11px;font-weight:600;color:#000;white-space:nowrap;}
.nav-links{display:flex;gap:4px;align-items:center;}
.nav-links a{
  font-size:11px;font-weight:500;color:#888;
  letter-spacing:0.05em;text-transform:uppercase;
  padding:6px 10px;border-radius:4px;
  transition:color 0.15s,background 0.15s;white-space:nowrap;
}
.nav-links a:hover{color:var(--charcoal);background:var(--ivory);}
.nav-cta{padding:7px 14px!important;background:var(--clay)!important;color:var(--white)!important;border-radius:4px!important;}
.nav-cta:hover{background:#c97a52!important;}
/* Hamburger */
.hamburger{display:none;flex-direction:column;gap:5px;cursor:pointer;padding:8px;background:none;border:none;}
.hamburger span{display:block;width:22px;height:2px;background:var(--charcoal);border-radius:1px;transition:all 0.25s;}
.hamburger.open span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.hamburger.open span:nth-child(2){opacity:0;}
.hamburger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
/* Mobile drawer */
.mobile-menu{
  display:none;position:fixed;top:54px;left:0;right:0;
  background:var(--white);border-bottom:1px solid var(--ivory2);
  box-shadow:0 4px 16px rgba(0,0,0,0.1);z-index:1001;
  padding:16px 24px 20px;flex-direction:column;gap:2px;
}
.mobile-menu.open{display:flex;}
.mobile-menu a{font-size:13px;font-weight:500;color:var(--charcoal);padding:10px 0;border-bottom:1px solid var(--ivory2);}
.mobile-menu a:last-child{border-bottom:none;}
.mobile-menu .mm-cta{color:var(--clay);font-weight:600;}

/* ── SITE NAV (page-to-page strip, formerly in-page tabs) ── */
.site-nav{
  display:flex;gap:0;
  background:var(--charcoal);
  overflow-x:auto;
}
.site-nav a{
  padding:11px 20px;
  font-size:11px;font-weight:600;letter-spacing:0.06em;text-transform:uppercase;
  color:rgba(244,240,232,0.5);
  border-bottom:2px solid transparent;
  cursor:pointer;white-space:nowrap;
  transition:color 0.15s,border-color 0.15s;
}
.site-nav a:hover{color:var(--ivory);}
.site-nav a.active{color:var(--ivory);border-bottom-color:var(--clay);}

/* ── SHARED CONTENT-PAGE HEADER PATTERN ── */
.panel-scroll{padding:40px 48px;max-width:1100px;margin:0 auto;}
.panel-header{margin-bottom:36px;}
.panel-eyebrow{font-size:10px;font-weight:600;letter-spacing:0.16em;text-transform:uppercase;color:var(--clay);margin-bottom:10px;}
.panel-title{font-family:'Playfair Display',Georgia,serif;font-size:32px;font-weight:600;color:var(--charcoal);margin-bottom:10px;line-height:1.2;}
.panel-sub{font-size:15px;color:#777;max-width:560px;line-height:1.7;font-weight:300;}
.panel-rule{width:36px;height:2px;background:var(--clay);margin:18px 0;}

/* ── FOOTER ── */
footer{
  background:var(--ivory2);
  padding:14px 24px;border-top:1px solid #ddd8cc;
  font-size:10px;color:#aaa;
  display:flex;justify-content:space-between;flex-wrap:wrap;gap:6px;
}
footer a{color:var(--clay);}
.footer-compliance{width:100%;margin-top:8px;padding-top:8px;border-top:1px solid rgba(0,0,0,0.07);font-size:9px;color:#999;line-height:1.6;}
.footer-build{width:100%;margin-top:4px;font-size:8px;color:#ccc;}

/* ── WEB3FORMS SUCCESS STATE (shared by every lead form) ── */
.w3f-success{text-align:center;padding:20px 12px;}
.w3f-success-check{
  width:38px;height:38px;border-radius:50%;background:var(--clay);color:var(--white);
  display:flex;align-items:center;justify-content:center;font-size:18px;margin:0 auto 12px;
}
.w3f-success-heading{font-family:'Playfair Display',Georgia,serif;font-size:16px;color:var(--charcoal);margin-bottom:6px;}
.w3f-success p{font-size:12px;color:#777;line-height:1.6;}
.w3f-success--dark .w3f-success-heading{color:var(--ivory);}
.w3f-success--dark p{color:rgba(244,240,232,0.6);}
.w3f-error{font-size:11px;color:#b3261e;margin-top:8px;text-align:center;}

/* ── LEAD-CAPTURE GATE (shared modal for compare/calculator/new-builds CTAs
   that don't otherwise collect a name/email) ── */
.gate-overlay{
  display:none;position:fixed;inset:0;z-index:2000;
  background:rgba(35,35,35,0.55);align-items:center;justify-content:center;padding:20px;
}
.gate-overlay.open{display:flex;}
.gate-card{
  background:var(--charcoal);border-radius:10px;padding:28px;
  max-width:400px;width:100%;
}
.gate-card h3{font-family:'Playfair Display',Georgia,serif;font-size:20px;color:var(--ivory);margin-bottom:8px;}
.gate-card p{font-size:13px;color:rgba(244,240,232,0.55);line-height:1.6;margin-bottom:18px;}
.gate-card input{
  width:100%;font-family:'Inter',sans-serif;font-size:13px;
  padding:11px 14px;background:rgba(255,255,255,0.07);
  border:1px solid rgba(255,255,255,0.15);border-radius:5px;
  color:var(--ivory);outline:none;margin-bottom:8px;
}
.gate-card input::placeholder{color:rgba(244,240,232,0.3);}
.gate-card input:focus{border-color:var(--clay);}
.gate-card-actions{display:flex;gap:8px;margin-top:4px;}
.gate-card button{
  font-family:'Inter',sans-serif;font-size:11px;
  font-weight:600;letter-spacing:0.07em;text-transform:uppercase;
  padding:12px;border:none;border-radius:5px;cursor:pointer;
}
.gate-card .gate-submit{flex:1;background:var(--clay);color:var(--white);}
.gate-card .gate-submit:hover{background:#c97a52;}
.gate-card .gate-cancel{background:transparent;color:rgba(244,240,232,0.5);}

/* ── LEAFLET OVERRIDES (used on homepage map) ── */
.leaflet-popup-content-wrapper{
  background:var(--white);border:1px solid var(--ivory2);
  border-radius:6px;color:var(--charcoal);
  font-family:'Inter',sans-serif;font-size:12px;
}
.leaflet-popup-tip{background:var(--white);}
.spin{display:inline-block;width:11px;height:11px;border:2px solid rgba(180,106,69,0.2);border-top-color:var(--clay);border-radius:50%;animation:sp 0.7s linear infinite;vertical-align:middle;margin-right:5px;}
@keyframes sp{to{transform:rotate(360deg);}}

/* ── MOBILE ── */
@media(max-width:768px){
  nav.topnav{padding:0 16px;}
  .nav-links{display:none;}
  .hamburger{display:flex;}
  .nav-left a.nav-brand:nth-of-type(2),.nav-left .nav-sep,.nav-left .nav-logo,.nav-left .nav-partner{display:none;}
  .site-nav a{padding:10px 14px;font-size:10px;}
  .panel-scroll{padding:24px 18px;}
}
