/* =========================================================

   HomesForSaleNassau.com

   Century 21–style Black / White / Gold Palette

   ========================================================= */



/* ------------------------------

   Root Variables

------------------------------ */

:root {

  /* Backgrounds */

  --bg: #f4f4f4;

  --card: #ffffff;

  --card2: #f9f9f9;



  /* Text */

  --text: #111111;

  --muted: #555555;



  /* Lines / borders */

  --line: #dddddd;



  /* Accents (Century 21 gold style) */

  --accent: #bfa14a;

  --accent-hover: #9f8738;



  /* Effects */

  --shadow: 0 6px 18px rgba(0,0,0,0.08);



  /* Layout */

  --radius: 14px;

  --radius-lg: 20px;

  --max-width: 1120px;

}



/* ------------------------------

   Base Reset

------------------------------ */

* {

  box-sizing: border-box;

}



html,

body {

  margin: 0;

  padding: 0;

  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI",

               Roboto, Helvetica, Arial, sans-serif;

  background: var(--bg);

  color: var(--text);

  line-height: 1.6;

}



img {

  max-width: 100%;

  display: block;

}



a {

  color: var(--accent);

  text-decoration: none;

}



a:hover {

  color: var(--accent-hover);

  text-decoration: underline;

}



/* ------------------------------

   Layout Helpers

------------------------------ */

.container {

  max-width: var(--max-width);

  margin: 0 auto;

  padding: 0 18px;

}



.main {

  padding: 28px 0 60px;

}



/* ------------------------------

   Header / Navigation

------------------------------ */

.topbar {

  position: sticky;

  top: 0;

  z-index: 100;

  background: #1a1a1a;

  border-bottom: 1px solid #000;

}



.topbar-inner {

  height: 70px;

  display: flex;

  align-items: center;

  justify-content: space-between;

}



.brand {

  display: flex;

  align-items: center;

  gap: 10px;

  font-weight: 800;

  color: #ffffff;

}


.brand-logo {

  max-height: 54px;   /* desktop size */

  width: auto;

  display: block;

}

.brand-mark {

  width: 36px;

  height: 36px;

  border-radius: 10px;

  background: var(--accent);

  display: flex;

  align-items: center;

  justify-content: center;

  font-size: 18px;

}



.brand-text {

  font-size: 16px;

}



/* Navigation */

.nav {

  display: flex;

  align-items: center;

  gap: 18px;

}



.nav a,

.nav-dropbtn {

  color: #e0e0e0;

  font-weight: 600;

  padding: 10px 12px;

  border-radius: 10px;

  border: 1px solid transparent;

  background: transparent;

  cursor: pointer;

}



.nav a:hover,

.nav-dropbtn:hover {

  color: #ffffff;

  text-decoration: none;

}



.nav a.active,

.nav-dropbtn.active {

  color: var(--accent);

  border-color: var(--accent);

}



/* Dropdown */

.nav-dropdown {

  position: relative;

}



.nav-dropmenu {

  position: absolute;

  top: 44px;

  left: 0;

  min-width: 200px;

  background: #ffffff;

  border: 1px solid var(--line);

  border-radius: 12px;

  box-shadow: var(--shadow);

  padding: 8px;

  display: none;

}



.nav-dropmenu.open {

  display: block;

}



.nav-dropmenu a {

  display: block;

  padding: 10px;

  color: var(--text);

  border-radius: 8px;

}



.nav-dropmenu a:hover {

  background: #f1f1f1;

  text-decoration: none;

}



/* Mobile Nav */

.nav-toggle {

  display: none;

  background: transparent;

  color: #ffffff;

  border: 1px solid #333;

  border-radius: 10px;

  padding: 8px 12px;

  cursor: pointer;

}



/* ------------------------------

   Hero Section

------------------------------ */

.hero {

  background: #ffffff;

  border: 1px solid var(--line);

  border-radius: var(--radius-lg);

  box-shadow: var(--shadow);

  padding: 26px;

}


.hero-intro-wrap {

  overflow: hidden;

  margin-top: 0.5rem;

}



.hero-inline-image {

  float: left;

  width: 110px;                 /* slightly smaller = better balance */

  height: auto;

  margin: 0.35rem 1rem 0.75rem 0;

  border-radius: 8px;

  box-shadow: 0 6px 18px rgba(0,0,0,0.12);

}



.hero-intro {

  margin: 0;

  line-height: 1.65;

}

.hero-grid {

  display: grid;

  grid-template-columns: 1.2fr 0.8fr;

  gap: 22px;

  align-items: center;

}



.hero h1 {

  margin: 0 0 12px;

  font-size: 34px;

  line-height: 1.2;

}



.hero p {

  margin: 0 0 16px;

  color: var(--muted);

}



.kicker {

  font-size: 12px;

  font-weight: 700;

  letter-spacing: 0.08em;

  text-transform: uppercase;

  color: var(--accent);

  margin-bottom: 6px;

}



/* ------------------------------

   Buttons

------------------------------ */

.hero-actions {

  display: flex;

  flex-wrap: wrap;

  gap: 10px;

}



.btn {

  display: inline-flex;

  align-items: center;

  justify-content: center;

  padding: 12px 16px;

  font-weight: 700;

  border-radius: 12px;

  border: 1px solid transparent;

  cursor: pointer;

}



.btn-primary {

  background: var(--accent);

  color: #111111;

  border-color: var(--accent);

}



.btn-primary:hover {

  background: var(--accent-hover);

  color: #111111;

}



.btn-secondary {

  background: transparent;

  color: #111111;

  border-color: #111111;

}



.btn-secondary:hover {

  background: #111111;

  color: #ffffff;

}



/* ------------------------------

   Cards / Sections

------------------------------ */

.card {

  background: #ffffff;

  border: 1px solid var(--line);

  border-radius: var(--radius);

  box-shadow: var(--shadow);

  padding: 18px;

}



.section {

  margin-top: 24px;

}



.h2 {

  font-size: 22px;

  margin: 24px 0 12px;

}



.small {

  font-size: 14px;

  color: var(--muted);

}



.list {

  padding-left: 18px;

  margin: 10px 0;

  color: var(--muted);

}



/* Grid helpers */

.grid-2 {

  display: grid;

  grid-template-columns: repeat(2, 1fr);

  gap: 18px;

}



.grid-3 {

  display: grid;

  grid-template-columns: repeat(3, 1fr);

  gap: 18px;

}



/* ------------------------------

   Forms

------------------------------ */

.form {

  display: grid;

  gap: 14px;

}



.input,

.textarea {

  width: 100%;

  padding: 12px;

  border-radius: 12px;

  border: 1px solid var(--line);

  background: #ffffff;

  color: var(--text);

}



.input:focus,

.textarea:focus {

  outline: none;

  border-color: var(--accent);

  box-shadow: 0 0 0 3px rgba(191,161,74,0.25);

}



.textarea {

  min-height: 140px;

  resize: vertical;

}



/* Alerts */

.alert {

  background: #f7f7f7;

  border: 1px solid var(--line);

  border-radius: 12px;

  padding: 14px;

  color: var(--muted);

}



/* ------------------------------

   Footer

------------------------------ */

.footer {

  margin-top: 40px;

  background: #1a1a1a;

  border-top: 1px solid #000;

  color: #cccccc;

  padding: 24px 0;

}



.footer-inner {

  display: grid;

  grid-template-columns: 1.2fr 0.8fr 1fr;

  gap: 22px;

}



.footer-title {

  font-weight: 800;

  color: #ffffff;

}



.footer-sub {

  margin-top: 6px;

  font-size: 14px;

  color: #bdbdbd;

}



.footer-links {

  display: grid;

  gap: 8px;

}



.footer-links a {

  color: #cccccc;

}



.footer-links a:hover {

  color: var(--accent);

  text-decoration: none;

}



.footer-note {

  font-size: 13px;

  color: #bdbdbd;

}



/* ------------------------------

   Responsive

------------------------------ */

@media (max-width: 768px) {

  .brand-logo {

    max-height: 58px; /* mobile size */

  }

}

@media (max-width: 900px) {

  .hero-grid {

    grid-template-columns: 1fr;

  }



  .grid-2,

  .grid-3 {

    grid-template-columns: 1fr;

  }



  .footer-inner {

    grid-template-columns: 1fr;

  }



  .nav {

    display: none;

  }



  .nav-toggle {

    display: inline-block;

  }



  body.nav-open .nav {

    display: flex;

    flex-direction: column;

    position: absolute;

    top: 70px;

    right: 18px;

    background: #ffffff;

    border: 1px solid var(--line);

    border-radius: 14px;

    padding: 12px;

    box-shadow: var(--shadow);

    width: 240px;

  }



  body.nav-open .nav a,

  body.nav-open .nav-dropbtn {

    color: var(--text);

  }

}


