/* Brand variables — "Alpine Stream" palette */
:root {
  --brand-primary: #2e5339;        /* Pine */
  --brand-primary-hover: #1f3a27;  /* Pine, darker */
  --brand-secondary: #5fa8c7;      /* Stream blue */
  --brand-secondary-hover: #2a5f7e;
  --brand-mist: #eef4f3;           /* Mist */
  --brand-mist-alt: #dce8e6;       /* Mist, deeper */
  --brand-dark: #1e2a24;
}

body {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
}

main {
  flex: 1;
}

/* Bootstrap primary color override */
.btn-primary {
  background-color: var(--brand-primary);
  border-color: var(--brand-primary);
}

.btn-primary:hover,
.btn-primary:focus {
  background-color: var(--brand-primary-hover);
  border-color: var(--brand-primary-hover);
}

.btn-outline-primary {
  color: var(--brand-primary);
  border-color: var(--brand-primary);
}

.btn-outline-primary:hover,
.btn-outline-primary:focus {
  background-color: var(--brand-primary);
  border-color: var(--brand-primary);
}

.navbar-nav .nav-link.active {
  color: var(--brand-primary) !important;
  font-weight: 600;
}

.navbar-nav .nav-link:hover {
  color: var(--brand-secondary-hover);
}

a {
  color: var(--brand-primary);
}

a:hover,
a:focus {
  color: var(--brand-secondary-hover);
}

/* Logo placeholder (top-left, links to home) */
.logo-placeholder {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border: 2px dashed var(--brand-secondary);
  border-radius: 6px;
  font-size: 0.65rem;
  font-weight: 700;
  color: var(--brand-secondary-hover);
  letter-spacing: 0.05em;
}

.brand-text {
  font-weight: 700;
  font-size: 1.1rem;
  color: var(--brand-dark);
}

/* Hero */
.hero {
  padding: 4rem 0 3rem;
  background-color: var(--brand-mist);
}

/* Cards (property cards, Quick Facts, Get in Touch, etc.) get a soft mist border */
.card {
  border-color: var(--brand-mist-alt);
}

/* Placeholder image box (photo gallery, property cards) */
.property-photo-placeholder {
  height: 140px;
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: var(--brand-mist);
  border: 2px dashed var(--brand-secondary);
  border-radius: 0.375rem;
  color: var(--brand-secondary-hover);
  font-weight: 700;
  font-size: 0.85rem;
  letter-spacing: 0.05em;
}

.property-photo-placeholder-lg {
  height: 100%;
  min-height: 300px;
}

/* Review star rating text */
.review-stars {
  color: var(--brand-secondary-hover);
  font-size: 1.1rem;
  letter-spacing: 0.1em;
}

footer.bg-dark {
  background-color: var(--brand-dark) !important;
}

/* Skip-to-content link: hidden until keyboard-focused */
.skip-link {
  position: absolute;
  top: -3rem;
  left: 0.5rem;
  z-index: 1080;
  padding: 0.5rem 1rem;
  background-color: var(--brand-dark);
  color: #fff;
  text-decoration: none;
  border-radius: 0 0 6px 6px;
  transition: top 0.2s ease-in-out;
}

.skip-link:focus {
  top: 0;
  color: #fff;
}

/* Landmark focused via skip link doesn't need a visible outline */
#main-content:focus {
  outline: none;
}

/* Muted text on dark backgrounds (e.g. footer) needs higher contrast
   than Bootstrap's .text-muted, which is tuned for light backgrounds */
.footer-muted {
  color: #ced4da;
}

/* Keep tap targets comfortably sized on touch devices */
@media (max-width: 991.98px) {
  .navbar-nav .nav-link {
    padding-top: 0.6rem;
    padding-bottom: 0.6rem;
  }
}
