:root {
  --look-bg: #F8F7F1;
  --look-surface: #FFFDF7;
  --look-ink: #292A22;
  --look-muted: #64695D;
  --look-accent: #687C56;
  --look-soft: #EEF1E7;
  --look-hero: #C8D3B7;
  --look-hero-ink: #25311F;
  --look-heading: Lora, Georgia, serif;
  --look-body: "DM Sans", sans-serif;
  --look-image-radius: 56px;
  --green: var(--look-hero);
  --green-soft: var(--look-hero);
  --green-strong: var(--look-accent);
  --green-pale: var(--look-soft);
  --ink: var(--look-ink);
  --muted: var(--look-muted);
  --paper: var(--look-bg);
  --card: var(--look-surface);
  --line: var(--look-soft);
  --sans: var(--look-body);
  --page-title-size: clamp(43.2px, 4.644vw, 64.8px);
  --section-title-size: clamp(36.72px, 3.456vw, 51.84px);
  --card-title-size: clamp(32.4px, 2.7vw, 38.88px);
}

html,
body,
body > main { background: var(--look-bg); color: var(--look-ink); }
body { min-height: 100vh; font-family: var(--look-body); }

:is(.home-hero-heading h1, .map-copy h2, .page-banner h1, .rent-heading h1,
    .team-card h2, .contact-title-after h1, .contact-card h2, .booking-panel h1) {
  font-family: var(--look-heading);
  font-weight: 600;
  letter-spacing: 0;
  color: var(--look-ink);
}
.home-hero-heading h1 { font-size: clamp(36.72px, 3.348vw, 52.92px); }
:is(.team-card p, .contact-card p, .map-copy address, .map-preview-caption) {
  color: var(--look-muted);
  opacity: 1;
}

.site-header { background: var(--look-bg); border-color: var(--look-soft); }
.site-logo img { mix-blend-mode: multiply; }
.site-nav a { color: var(--look-ink); letter-spacing: .12em; }
.site-nav a::after { background: var(--look-accent); border-radius: 0; }

:is(.home-hero, .rent-intro, .team-page, .rent-page, .contact-page) {
  background: var(--look-bg);
}
.home-hero-heading {
  background: var(--look-hero);
  border-radius: 0 0 var(--look-image-radius) 0;
}
.home-hero-heading h1 { color: var(--look-hero-ink); text-shadow: none; }
.home-hero-copy {
  background: var(--look-surface);
  border-radius: 0 var(--look-image-radius) 0 0;
}
.home-hero-copy p,
.rent-text p { color: var(--look-ink); }
.home-hero-image {
  border-radius: var(--look-image-radius) 8px 8px var(--look-image-radius);
  border-color: var(--look-soft);
}

.map-section { background: linear-gradient(180deg, var(--look-soft), var(--look-bg) 78%); }
.map-copy::before,
.map-pulse { background: var(--look-accent); }
.eyebrow { color: var(--look-accent); letter-spacing: .12em; }
.map-frame {
  background: var(--look-soft);
  border-color: var(--look-surface);
  border-radius: 8px var(--look-image-radius) 8px var(--look-image-radius);
}
.map-location-badge {
  background: var(--look-surface);
  color: var(--look-ink);
  border-color: var(--look-accent);
}
.map-preview { background: var(--look-soft); }
.map-directions img { filter: none; }

:is(.page-banner, .rent-heading) {
  background: var(--look-hero);
  border-radius: 0 0 var(--look-image-radius) 0;
}
:is(.page-banner h1, .rent-heading h1) { color: var(--look-hero-ink); }
.rent-page::after { background: var(--look-soft); }
.suite-mosaic img,
.team-card > img,
.contact-photo-lead { border-radius: var(--look-image-radius); }
.contact-title-after { background: var(--look-soft); }
.contact-title-after::after { background: var(--look-accent); }

:is(.team-card, .contact-card) {
  background: var(--look-surface);
  border: 1px solid var(--look-soft);
  border-radius: 4px;
  color: var(--look-ink);
}
.contact-card:nth-child(4),
.contact-card:nth-child(5),
.contact-card:last-child { border-radius: 4px; }
.card-socials a {
  background: var(--look-bg);
  border-color: var(--look-accent);
  border-radius: 0;
}
.contact-icons a { background: #3A4C34; }
.contact-icons .contact-icon-unavailable { background: var(--look-soft); }

:is(.primary-button, .small-button, .book-online, .contact-pill, .map-directions) {
  min-width: 0;
  padding: 9px 2px;
  border: 1px solid transparent;
  border-radius: 0;
  background: transparent;
  color: #465A38;
  font-family: var(--look-body);
  text-decoration: underline;
  text-underline-offset: 5px;
  text-transform: none;
  letter-spacing: .12em;
  box-shadow: none;
}
.rent-text .contact-pill {
  display: inline-flex;
  width: auto;
  min-height: 48px;
  gap: 12px;
  padding: 8px 2px;
  justify-content: flex-start;
}
.rent-text .contact-pill img { width: 28px; height: 28px; flex: none; }
:is(.primary-button, .small-button, .book-online, .contact-pill, .map-directions):hover {
  border-color: var(--look-accent);
  color: var(--look-ink);
  background: var(--look-soft);
}

.site-footer {
  background: var(--look-hero);
  color: var(--look-hero-ink);
  border-color: var(--look-accent);
}
.site-footer :is(a, span) { color: var(--look-hero-ink); }
.site-footer .footer-contact a { border-color: var(--look-accent); border-radius: 0; }

@media (max-width: 980px) {
  :root { --card-title-size: 34.56px; }
}

@media (max-width: 640px) {
  :root {
    --page-title-size: clamp(34.56px, 8.64vw, 45.36px);
    --section-title-size: 36.72px;
    --card-title-size: 32.4px;
  }
  .home-hero-heading h1 { font-size: 32.4px; }
  .home-hero-image {
    border-radius: var(--look-image-radius) var(--look-image-radius) 22px 22px;
  }
}

@media (max-width: 360px) {
  .home-hero-heading h1 { font-size: 29.16px; }
  .site-nav a { font-size: 11px; letter-spacing: 0; }
}
