@import url("https://fonts.googleapis.com/css2?family=Be+Vietnam+Pro:ital,wght@0,400;0,500;0,600;1,400;1,500&family=EB+Garamond:wght@500&display=swap");

:root {
  --green: #4c6546;
  --green-soft: #b2d3a7;
  --paper: #fbf9f6;
  --sand: #f1ebe3;
  --ink: #1b1c1a;
  --muted: #686257;
}

*,
::before,
::after {
  box-sizing: border-box;
}

html {
  background: var(--paper);
  color: var(--ink);
  font-family: "Be Vietnam Pro", Arial, sans-serif;
  letter-spacing: 0;
}

body {
  margin: 0;
}

a {
  color: inherit;
  text-decoration: none;
}

img {
  display: block;
  height: auto;
  max-width: 100%;
}

button,
input,
select,
textarea {
  font: inherit;
}

.font-brand {
  font-family: "EB Garamond", Georgia, serif;
}

.page-shell {
  margin: 0 auto;
  max-width: 1440px;
  overflow: hidden;
  background: linear-gradient(180deg, #fbf9f6 42%, #f3f5f1 93%);
}

.site-header {
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  z-index: 40;
  border-bottom: 0;
  background: rgba(246, 246, 246, 0.3);
  backdrop-filter: blur(8px);
}

.nav-link {
  border-bottom: 2px solid transparent;
  padding-bottom: 4px;
  color: #434840;
  font-size: 14px;
  font-weight: 600;
  line-height: 20px;
}

.nav-link.active,
.nav-link:hover {
  border-color: var(--green);
  color: var(--green);
}

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 9999px;
  padding: 14px 40px 15px;
  background: var(--green);
  color: white;
  font-size: 16px;
  line-height: 24px;
  box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -4px rgba(0, 0, 0, 0.1);
}

.btn-outline {
  border: 2px solid var(--green);
  background: rgba(255, 255, 255, 0.01);
  color: var(--green);
  box-shadow: none;
}

.hero-home,
.hero-services {
  min-height: 780px;
  background-position: center;
  background-size: cover;
}

.hero-home {
  background-image: linear-gradient(180deg, rgba(27, 28, 26, 0.08), rgba(27, 28, 26, 0.28) 58%, rgba(251, 249, 246, 0.98) 100%), url("../images/figma/home-hero.png");
}

.hero-services {
  background-image: linear-gradient(180deg, rgba(27, 28, 26, 0.06), rgba(27, 28, 26, 0.28) 58%, rgba(251, 249, 246, 0.98) 100%), url("../images/figma/services-hero.png");
}

.display-title {
  font-size: clamp(44px, 6vw, 76px);
  font-style: italic;
  font-weight: 500;
  line-height: 1.24;
}

.section-title {
  font-size: clamp(34px, 4vw, 44px);
  font-style: italic;
  font-weight: 500;
  line-height: 1.38;
}

.body-lg {
  font-size: clamp(18px, 2.4vw, 32px);
  line-height: 1.16;
}

.soft-card {
  border-radius: 24px;
  background: #f5f3f0;
  box-shadow: 0 10px 40px rgba(74, 93, 69, 0.08);
}

.project-card .project-overlay {
  opacity: 0;
  transition: opacity 180ms ease;
}

.project-card:hover .project-overlay {
  opacity: 1;
}

.field {
  width: 100%;
  border: 0;
  border-radius: 12px;
  background: rgba(232, 222, 209, 0.3);
  padding: 14px 16px;
  color: var(--ink);
  outline: none;
}

.field::placeholder {
  color: #6b7280;
}

.footer {
  background: var(--sand);
}

.home-page .hero-home {
  min-height: 1168px;
  align-items: flex-start;
  padding-top: 554px;
}

.home-page .home-philosophy {
  min-height: 902px;
  padding: 80px 132px 122px 144px;
}

.home-page .home-projects {
  min-height: 1073px;
  padding: 80px 144px;
}

.home-page .home-testimonials {
  min-height: 675px;
  padding: 80px 118px;
}

.home-page .home-news {
  min-height: 853px;
  padding: 80px 144px;
}

.home-page .footer {
  min-height: 429px;
  padding: 80px 40px;
}

@media (max-width: 900px) {
  .desktop-nav {
    display: none;
  }

  .site-header {
    overflow: visible;
  }

  .site-header > div {
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 72px;
    gap: 12px;
    width: 100%;
  }

  .site-header > div > a:first-child {
    min-width: 0;
    flex: 1 1 auto;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 22px;
    line-height: 1.1;
  }

  .mobile-menu-button {
    justify-self: end;
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    position: relative;
    width: 42px;
    height: 42px;
    padding: 0;
    font-size: 0;
    line-height: 0;
    white-space: nowrap;
  }

  .mobile-menu-button::before,
  .mobile-menu-button::after,
  .mobile-menu-button span {
    content: "";
    position: absolute;
    left: 11px;
    display: block;
    width: 18px;
    height: 2px;
    border-radius: 9999px;
    background: currentColor;
    transition: top 180ms ease, transform 180ms ease, opacity 180ms ease;
  }

  .mobile-menu-button::before { top: 14px; }
  .mobile-menu-button span { top: 20px; }
  .mobile-menu-button::after { top: 26px; }

  .mobile-menu-button.is-open::before {
    top: 20px;
    transform: rotate(45deg);
  }

  .mobile-menu-button.is-open span {
    opacity: 0;
  }

  .mobile-menu-button.is-open::after {
    top: 20px;
    transform: rotate(-45deg);
  }

  .mobile-panel {
    position: fixed;
    left: 0;
    right: 0;
    top: 72px;
    z-index: 50;
    display: none;
    flex-direction: column;
    width: 100%;
    background: rgba(251, 249, 246, 0.98);
    border-bottom: 1px solid var(--sand);
    box-shadow: 0 20px 40px rgba(27, 28, 26, 0.08);
    max-height: calc(100vh - 72px);
    overflow: auto;
  }

  .mobile-panel.open {
    display: flex;
  }

  .mobile-panel a {
    display: block;
    padding: 14px 24px;
    color: #434840;
    font-size: 15px;
    line-height: 20px;
  }

  .hero-home,
  .hero-services {
    min-height: 680px;
  }

  .home-page .site-header {
    position: sticky;
  }

  .home-page .hero-home {
    min-height: 760px;
    padding-top: 220px;
  }

  .home-page .home-philosophy,
  .home-page .home-projects,
  .home-page .home-testimonials,
  .home-page .home-news,
  .home-page .footer {
    min-height: 0;
    padding: 64px 24px;
  }

  .site-header {
    position: sticky;
  }
}

@media (min-width: 901px) {
  .mobile-menu-button,
  .mobile-panel {
    display: none;
  }
}
