:root {
  --hp-deep: #143028;
  --hp-mid: #1f4336;
  --hp-mist: #d7e0d8;
  --hp-foam: #f2f5f1;
  --hp-accent: #7ea38a;
}

.demo-harbor {
  margin: 0;
  background: var(--hp-foam);
  color: var(--hp-deep);
  font-family: Outfit, "Segoe UI", sans-serif;
}

.hp-nav {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 20px 6vw;
}

.hp-logo {
  font-family: Fraunces, Georgia, serif;
  font-size: 1.35rem;
  font-weight: 600;
}

.hp-nav nav {
  display: flex;
  gap: 22px;
  align-items: center;
}

.hp-nav a {
  color: rgba(20, 48, 40, 0.75);
  text-decoration: none;
  font-weight: 500;
}

.hp-nav-cta {
  padding: 10px 16px;
  background: var(--hp-deep);
  color: var(--hp-foam) !important;
}

.hp-hero {
  min-height: 86vh;
  display: grid;
  grid-template-columns: 1.05fr 0.95fr;
  gap: 0;
}

.hp-hero-visual {
  background:
    linear-gradient(180deg, rgba(20, 48, 40, 0.15), rgba(20, 48, 40, 0.55)),
    radial-gradient(circle at 30% 20%, rgba(255, 255, 255, 0.35), transparent 40%),
    linear-gradient(135deg, #2d5a48 0%, #143028 55%, #0d221b 100%);
  position: relative;
  animation: demo-rise 1s ease both;
}

.hp-hero-visual::before {
  content: "";
  position: absolute;
  inset: 12% 14%;
  border: 1px solid rgba(215, 224, 216, 0.28);
}

.hp-hero-visual::after {
  content: "";
  position: absolute;
  left: 18%;
  right: 18%;
  bottom: 18%;
  height: 42%;
  background:
    linear-gradient(180deg, transparent, rgba(242, 245, 241, 0.08)),
    repeating-linear-gradient(
      90deg,
      transparent 0 28px,
      rgba(215, 224, 216, 0.08) 28px 29px
    );
}

.hp-hero-copy {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 8vh 7vw;
  background:
    radial-gradient(ellipse at 80% 0%, rgba(126, 163, 138, 0.18), transparent 50%),
    var(--hp-foam);
  animation: demo-rise 0.85s ease 0.08s both;
}

.hp-brand {
  margin: 0 0 14px;
  font-family: Fraunces, Georgia, serif;
  font-size: clamp(2.4rem, 6vw, 4.2rem);
  line-height: 1.05;
  font-weight: 600;
}

.hp-hero h1 {
  margin: 0 0 16px;
  font-family: Fraunces, Georgia, serif;
  font-size: clamp(1.5rem, 3vw, 2.1rem);
  font-weight: 500;
  color: #2a4d3f;
}

.hp-lead {
  margin: 0 0 28px;
  max-width: 28em;
  color: rgba(20, 48, 40, 0.72);
  line-height: 1.7;
  font-size: 1.05rem;
}

.hp-actions {
  display: flex;
  gap: 18px;
  flex-wrap: wrap;
  align-items: center;
}

.hp-btn {
  display: inline-block;
  padding: 14px 22px;
  background: var(--hp-deep);
  color: var(--hp-foam);
  text-decoration: none;
  font-weight: 600;
}

.hp-link {
  color: var(--hp-deep);
  font-weight: 600;
  border-bottom: 1px solid rgba(20, 48, 40, 0.35);
  text-decoration: none;
  padding-bottom: 2px;
}

.hp-section {
  padding: 5rem 6vw;
}

.hp-eyebrow {
  margin: 0 0 10px;
  font-size: 0.72rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--hp-accent);
  font-weight: 700;
}

.hp-section h2,
.hp-split-copy h2 {
  margin: 0 0 28px;
  font-family: Fraunces, Georgia, serif;
  font-size: clamp(1.9rem, 3.5vw, 2.8rem);
  font-weight: 600;
}

.hp-rooms {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}

.hp-rooms article {
  padding: 26px 22px;
  background: #fff;
  border: 1px solid rgba(20, 48, 40, 0.1);
}

.hp-rooms h3 {
  margin: 0 0 10px;
  font-family: Fraunces, Georgia, serif;
  font-size: 1.35rem;
}

.hp-rooms p {
  margin: 0;
  color: rgba(20, 48, 40, 0.68);
  line-height: 1.6;
}

.hp-split {
  display: grid;
  grid-template-columns: 0.9fr 1.1fr;
  min-height: 420px;
}

.hp-split-panel {
  background:
    linear-gradient(160deg, rgba(20, 48, 40, 0.25), rgba(20, 48, 40, 0.75)),
    radial-gradient(circle at 60% 40%, #3d6b56, #143028 70%);
}

.hp-split-copy {
  padding: 4rem 6vw;
  background: var(--hp-deep);
  color: var(--hp-mist);
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.hp-split-copy .hp-eyebrow {
  color: var(--hp-accent);
}

.hp-split-copy p {
  margin: 0 0 24px;
  color: rgba(215, 224, 216, 0.78);
  line-height: 1.7;
  max-width: 32em;
}

.hp-split-copy .hp-btn {
  background: var(--hp-foam);
  color: var(--hp-deep);
  align-self: start;
}

.hp-foot {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
  padding: 22px 6vw;
  background: #fff;
  color: rgba(20, 48, 40, 0.6);
  font-size: 0.92rem;
}

.hp-foot a {
  color: var(--hp-deep);
  font-weight: 600;
}

@media (max-width: 900px) {
  .hp-hero,
  .hp-rooms,
  .hp-split {
    grid-template-columns: 1fr;
  }

  .hp-hero-visual {
    min-height: 42vh;
  }

  .hp-nav nav a:not(.hp-nav-cta) {
    display: none;
  }
}
