@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@400&family=DM+Sans:wght@300;400&display=swap');

/* ─── RESET ─────────────────────────────────────────────────────── */

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

:root {
  --nav-height: 67px;
}

html {
  scrollbar-gutter: stable;
}

html, body {
  background: #eae9e8;
  color: #111111;
  font-family: 'DM Sans', sans-serif;
  font-weight: 300;
  font-size: 14px;
  line-height: 1.9;
}

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

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

/* ─── HEADER / NAV ─────────────────────────────────────────────── */

header {
  background: #eae9e8;
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 100;
  transform: translateY(0);
  transition: transform 0.35s ease;
}

header.nav-hidden {
  transform: translateY(-100%);
}

/* compensate fixed header on all subpages */
body:not(.home) {
  padding-top: 112px;
}

.nav-inner {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 32px;
  padding: 32px;
  max-width: 1400px;
  margin: 0 auto;
}

.nav-left {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 32px;
  justify-content: flex-end;
}

.nav-right {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 32px;
  justify-content: flex-start;
}

.nav-left a,
.nav-right a {
  font-family: 'DM Sans', sans-serif;
  font-weight: 400;
  font-size: 12px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #6B6560;
  text-decoration: none;
}

.nav-left a.active,
.nav-right a.active {
  color: #111111;
}

.logo-img-link {
  flex-shrink: 0;
}

.logo-img-dark {
  height: 48px;
  width: auto;
  display: block;
}

.nav-lang {
  display: flex;
  align-items: center;
  gap: 6px;
}

.nav-lang-link {
  font-family: 'DM Sans', sans-serif;
  font-weight: 400;
  font-size: 12px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #B0ABA5;
  text-decoration: none;
}

.nav-lang-active {
  color: #111111;
}

.nav-lang-sep {
  font-family: 'DM Sans', sans-serif;
  font-size: 12px;
  color: #C8C5C1;
}

/* legacy — keep for mobile toggle fallback */
.nav-toggle {
  display: none;
}

.hamburger {
  display: none;
}

/* ─── FOOTER ────────────────────────────────────────────────────── */

footer {
  min-height: 112px;
  padding: 0 80px;
  display: flex;
  justify-content: center;
  align-items: center;
}

footer span,
footer a {
  font-family: 'DM Sans', sans-serif;
  font-weight: 300;
  font-size: 12px;
  color: #6B6560;
  text-decoration: none;
}

/* ─── PAGE LABEL ────────────────────────────────────────────────── */

.page-label {
  font-family: 'DM Sans', sans-serif;
  font-weight: 400;
  font-size: 12px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #6B6560;
  padding: 40px 32px;
  display: block;
}

/* ─── INDEX — FULL-SCREEN HERO ──────────────────────────────────── */

body.home {
  overflow: hidden;
  height: 100vh;
}

.home-hero {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  z-index: 0;
}

.home-hero img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* ─── HOME NAV — white text overlay on hero ─────────────────────── */

body.home header {
  background: transparent;
  border-bottom: none;
}


.home-hero::after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 320px;
  background: linear-gradient(to bottom, rgba(10,10,10,0.45) 0%, transparent 100%);
  pointer-events: none;
}

body.home .nav-left a,
body.home .nav-right a {
  color: rgba(255,255,255,0.8);
}

body.home .nav-lang-link {
  color: rgba(255,255,255,0.6);
}

body.home .nav-lang-active {
  color: #ffffff;
}

body.home .nav-lang-sep {
  color: rgba(255,255,255,0.4);
}

body.home .hamburger-btn .bar1,
body.home .hamburger-btn .bar2,
body.home .hamburger-btn .bar3 {
  background: #ffffff;
}

/* when mobile menu opens on home */
body.home header.nav-open {
  background: #eae9e8;
  border-bottom: 1px solid #C8C4BF;
}

body.home header.nav-open .logo-img-dark {
  content: url('../images/logo_aure.png');
}

body.home header.nav-open .nav-left a,
body.home header.nav-open .nav-right a {
  color: #6B6560;
}

body.home header.nav-open .nav-lang-link {
  color: #B0ABA5;
}

body.home header.nav-open .nav-lang-active {
  color: #111111;
}

body.home header.nav-open .nav-lang-sep {
  color: #C8C5C1;
}

body.home header.nav-open .hamburger-btn .bar1,
body.home header.nav-open .hamburger-btn .bar2,
body.home header.nav-open .hamburger-btn .bar3 {
  background: #111111;
}

.logo-img-link {
  display: block;
  line-height: 0;
}

/* ─── PROJECTS ──────────────────────────────────────────────────── */

.projects-list {
  padding: 8px 160px 0;
  max-width: 1400px;
  margin: 0 auto;
}

.project {
  margin-bottom: 60px;
}

.project:last-child {
  margin-bottom: 0;
}

.project-image-wrapper {
  position: relative;
  overflow: hidden;
}

.project-image-wrapper img {
  width: 100%;
  display: block;
  aspect-ratio: 3 / 2;
  object-fit: cover;
}

.project-image-wrapper::after {
  content: attr(data-name);
  position: absolute;
  inset: 0;
  background: rgba(17, 17, 17, 0.4);
  color: #ffffff;
  font-family: 'DM Sans', sans-serif;
  font-weight: 400;
  font-size: 13px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
}

.project-image-wrapper:hover::after {
  opacity: 1;
}

.project-meta {
  display: flex;
  justify-content: space-between;
  margin-top: 10px;
}

.project-meta span {
  font-family: 'DM Sans', sans-serif;
  font-weight: 300;
  font-size: 12px;
  color: #6B6560;
}

/* ─── SERVICES HERO ─────────────────────────────────────────────── */

.services-hero {
  display: flex;
  gap: 20px;
  padding: 8px 160px 0;
  max-width: 1400px;
  margin: 0 auto;
}

.services-hero-panel {
  flex: 1;
  aspect-ratio: 2 / 3;
  position: relative;
  overflow: hidden;
  display: block;
  text-decoration: none;
}

.services-hero-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  background: #E8E5E1;
}

.services-hero-overlay {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  padding: 40px;
  background: linear-gradient(to bottom, rgba(10,10,10,0.55) 0%, transparent 100%);
}

.services-hero-title {
  font-family: 'DM Sans', sans-serif;
  font-weight: 400;
  font-size: 12px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #ffffff;
  margin-bottom: 10px;
}

.services-hero-desc {
  font-family: 'DM Sans', sans-serif;
  font-weight: 300;
  font-size: 14px;
  line-height: 1.7;
  color: rgba(255,255,255,0.85);
}

#commercial,
#private {
  scroll-margin-top: 120px;
}

/* ─── SERVICES ──────────────────────────────────────────────────── */

/* shared page grid — mirrors nav grid so text aligns with PROJECTS */
.page-grid {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  padding: 0 32px;
}

.page-grid-content {
  grid-column: 1 / -1;
  padding-left: 0;
}

/* For text-heavy pages: content occupies left+center columns, leaves right empty */
.page-grid-wide {
  grid-column: 1 / 3;
}

.content-block {
  max-width: 920px;
  padding: 0 80px 0 160px;
}

.section-label {
  font-family: 'DM Sans', sans-serif;
  font-weight: 400;
  font-size: 12px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #6B6560;
  margin-bottom: 40px;
  display: block;
}

.section-intro {
  font-family: 'DM Sans', sans-serif;
  font-weight: 300;
  font-size: 14px;
  line-height: 1.9;
  color: #111111;
  margin-bottom: 40px;
}

.service-item {
  padding: 32px 0;
}

.service-item:last-child {
  padding-bottom: 0;
}


.service-title {
  font-family: 'DM Sans', sans-serif;
  font-weight: 400;
  font-size: 12px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #6B6560;
  margin-bottom: 16px;
}

.service-text {
  font-family: 'DM Sans', sans-serif;
  font-weight: 300;
  font-size: 14px;
  line-height: 1.9;
  color: #111111;
}

.testimonial-carousel {
  padding: 48px 0 0;
  margin-top: 0;
}

.testimonial-item {
  display: block;
}

.testimonial-item.testimonial-hidden {
  display: none;
}

.testimonial-item p {
  font-style: italic;
  color: #6B6560;
  font-size: 14px;
  line-height: 1.9;
  margin-bottom: 12px;
}

.testimonial-item cite {
  font-style: normal;
  font-family: 'DM Sans', sans-serif;
  font-weight: 300;
  font-size: 12px;
  color: #6B6560;
}

.section-divider {
  border: none;
  border-top: 1px solid #C8C4BF;
  margin: 48px 0;
}

.contact-content .section-divider {
  width: 600px;
  max-width: 100%;
}

.careers-content .section-divider {
  width: 380px;
  max-width: 100%;
}

/* ─── STUDIO ────────────────────────────────────────────────────── */

.studio-hero-wrap {
  padding: 8px 160px 0;
  max-width: 1400px;
  margin: 0 auto;
}

.studio-hero-img {
  width: 100%;
  display: block;
  aspect-ratio: 3 / 2;
  object-fit: cover;
}

.full-width-image {
  width: 100%;
  display: block;
  object-fit: cover;
  max-height: 72vh;
}

.studio-content {
  max-width: 920px;
  padding: 32px 80px 0 160px;
}

.studio-content p {
  margin-bottom: 24px;
}

.studio-content h2 {
  font-family: 'DM Sans', sans-serif;
  font-weight: 400;
  font-size: 12px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #6B6560;
  margin-top: 0;
  margin-bottom: 20px;
}

.studio-content .section-label {
  margin-top: 0;
  display: block;
}

.publications-list {
  list-style: none;
  padding: 0;
}

.publications-list li {
  font-family: 'DM Sans', sans-serif;
  font-weight: 300;
  font-size: 14px;
  color: #111111;
  line-height: 1.9;
}

.pub-link {
  color: #111111;
  text-decoration: underline;
  text-decoration-color: #C8C4BF;
  text-underline-offset: 3px;
}

.contact-info-group a.pub-link {
  text-decoration: underline;
  text-decoration-color: #C8C4BF;
  text-underline-offset: 3px;
}

/* ─── CAREERS ───────────────────────────────────────────────────── */

.careers-content {
  max-width: 920px;
  padding: 0 80px 0 160px;
}

.careers-intro {
  margin-bottom: 48px;
  font-family: 'DM Sans', sans-serif;
  font-weight: 300;
  font-size: 14px;
  line-height: 1.9;
  color: #6B6560;
}

.job-listing {
  border-top: 1px solid #C8C4BF;
  padding: 40px 0;
}

.job-listing:last-child {
  padding-bottom: 0;
}

.job-title {
  font-family: 'DM Sans', sans-serif;
  font-weight: 400;
  font-size: 12px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #111111;
  margin-bottom: 24px;
}

.job-text {
  font-family: 'DM Sans', sans-serif;
  font-weight: 300;
  font-size: 14px;
  line-height: 1.9;
  color: #111111;
  margin-bottom: 20px;
}

.job-requirements-label {
  font-family: 'DM Sans', sans-serif;
  font-weight: 400;
  font-size: 12px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #6B6560;
  margin-bottom: 12px;
  display: block;
}

.job-list {
  list-style: none;
  padding: 0;
  margin-bottom: 20px;
}

.job-list li {
  font-family: 'DM Sans', sans-serif;
  font-weight: 300;
  font-size: 14px;
  line-height: 1.9;
  color: #111111;
  padding-left: 20px;
  position: relative;
}

.job-list li::before {
  content: "—";
  position: absolute;
  left: 0;
  color: #6B6560;
}

/* ─── CONTACT ───────────────────────────────────────────────────── */

.contact-heading {
  font-family: 'DM Sans', sans-serif;
  font-weight: 300;
  font-size: 14px;
  line-height: 1.9;
  color: #6B6560;
  margin-bottom: 48px;
}

.contact-content {
  max-width: 1400px;
  padding: 0 160px;
  margin: 0 auto;
  box-sizing: border-box;
}

.contact-grid {
  display: grid;
  grid-template-columns: 1fr 2fr;
  gap: 80px;
}

.contact-info-group {
  margin-bottom: 32px;
}

.contact-info-group .label {
  font-family: 'DM Sans', sans-serif;
  font-weight: 400;
  font-size: 12px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #6B6560;
  display: block;
  margin-bottom: 8px;
}

.contact-info-group p,
.contact-info-group a {
  font-family: 'DM Sans', sans-serif;
  font-weight: 300;
  font-size: 14px;
  line-height: 1.9;
  color: #111111;
  display: block;
  text-decoration: none;
}

/* ─── CONTACT FORM ──────────────────────────────────────────────── */

.contact-form {
  display: flex;
  flex-direction: column;
  gap: 28px;
  max-width: 720px;
}

.form-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
}

.form-field {
  display: flex;
  flex-direction: column;
}

.form-field label {
  font-family: 'DM Sans', sans-serif;
  font-weight: 400;
  font-size: 12px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #6B6560;
  margin-bottom: 8px;
}

.form-field input,
.form-field textarea {
  background: none;
  border: none;
  border-bottom: 1px solid #C8C4BF;
  padding: 8px 0;
  width: 100%;
  font-family: 'DM Sans', sans-serif;
  font-weight: 300;
  font-size: 14px;
  color: #111111;
  outline: none;
  resize: none;
  -webkit-appearance: none;
  appearance: none;
  border-radius: 0;
}

.form-field textarea {
  min-height: 140px;
}

.form-submit {
  background: none;
  border: none;
  font-family: 'DM Sans', sans-serif;
  font-weight: 400;
  font-size: 12px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #111111;
  cursor: pointer;
  padding: 0;
  text-align: left;
  align-self: flex-start;
}

/* ─── HAMBURGER BUTTON ──────────────────────────────────────────── */

.hamburger-btn {
  display: none;
  flex-direction: column;
  gap: 5px;
  background: none;
  border: none;
  cursor: pointer;
  padding: 4px;
  position: absolute;
  right: 32px;
  top: 50%;
  transform: translateY(-50%);
}

.hamburger-btn .bar1,
.hamburger-btn .bar2,
.hamburger-btn .bar3 {
  display: block;
  width: 22px;
  height: 1px;
  background: #111111;
  transition: transform 0.2s ease, opacity 0.2s ease;
}

/* ─── MOBILE NAV ────────────────────────────────────────────────── */

.mobile-nav {
  display: none;
  flex-direction: column;
  padding: 20px 32px 28px;
  border-top: 1px solid #C8C4BF;
  gap: 0;
}

.mobile-nav a {
  font-family: 'DM Sans', sans-serif;
  font-weight: 400;
  font-size: 12px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #6B6560;
  text-decoration: none;
  padding: 12px 0;
  border-bottom: 1px solid #C8C4BF;
}

.mobile-nav a.active {
  color: #111111;
}

.mobile-nav-lang {
  display: flex;
  gap: 6px;
  align-items: center;
  padding-top: 16px;
}

header.nav-open .mobile-nav {
  display: flex;
}

/* ─── PROJECT PAGE ──────────────────────────────────────────────── */

.project-page-intro {
  padding: 0 160px;
  margin-bottom: 48px;
  display: flex;
  justify-content: space-between;
  align-items: baseline;
}

.project-page-title {
  font-family: 'DM Sans', sans-serif;
  font-weight: 400;
  font-size: 12px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #111111;
}

.project-page-location {
  font-family: 'DM Sans', sans-serif;
  font-weight: 300;
  font-size: 12px;
  color: #6B6560;
}

.project-gallery {
  padding: 8px 160px 0;
  max-width: 1400px;
  margin: 0 auto;
}

.project-gallery-main {
  width: 100%;
  aspect-ratio: 3 / 2;
  object-fit: cover;
  display: block;
  margin-bottom: 20px;
}

.project-page-meta {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  padding: 10px 0 0;
  margin-bottom: 48px;
}

.project-gallery-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
  margin-bottom: 20px;
}

.project-gallery-grid img {
  width: 100%;
  aspect-ratio: 3 / 2;
  object-fit: cover;
  display: block;
}

.project-concept {
  max-width: 920px;
  padding: 48px 80px 0 160px;
}

.project-awards {
  font-family: 'DM Sans', sans-serif;
  font-weight: 300;
  font-size: 12px;
  line-height: 1.9;
  color: #6B6560;
  margin-bottom: 32px;
}

.project-concept-label {
  font-family: 'DM Sans', sans-serif;
  font-weight: 400;
  font-size: 12px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #6B6560;
  display: block;
  margin-bottom: 24px;
}

.project-concept p {
  font-family: 'DM Sans', sans-serif;
  font-weight: 300;
  font-size: 14px;
  line-height: 1.9;
  color: #111111;
}

/* ─── PROJECT DETAIL GALLERY ────────────────────────────────────── */

.project-detail-gallery {
  padding: 48px 160px 0;
  display: flex;
  flex-direction: column;
  gap: 20px;
  max-width: 1400px;
  margin: 0 auto;
}

.gallery-row-duo {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
}

.gallery-row-duo img {
  width: 100%;
  aspect-ratio: 2 / 3;
  object-fit: cover;
  display: block;
  background: #E8E5E1;
}

/* right image smaller: left full, right = 2/3 size, centered */
.gallery-row-duo--offset {
  align-items: center;
}

.gallery-row-duo--offset img:first-child {
  aspect-ratio: 2 / 3;
}

.gallery-row-duo--offset img:last-child {
  aspect-ratio: 2 / 3;
  width: 66.67%;
  justify-self: center;
}

/* left image smaller: right full, left = 2/3 size, centered */
.gallery-row-duo--offset-left {
  align-items: center;
}

.gallery-row-duo--offset-left img:first-child {
  aspect-ratio: 2 / 3;
  width: 66.67%;
  justify-self: center;
}

.gallery-row-duo--offset-left img:last-child {
  aspect-ratio: 2 / 3;
}

.gallery-row-single img {
  width: 100%;
  height: auto;
  display: block;
}

.project-back {
  font-family: 'DM Sans', sans-serif;
  font-weight: 400;
  font-size: 12px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #6B6560;
  text-decoration: none;
  padding: 8px 160px 48px;
  display: block;
}

.project-back:hover {
  color: #111111;
}

.project-link {
  display: block;
  text-decoration: none;
  color: inherit;
}

/* ─── RESPONSIVE ────────────────────────────────────────────────── */

@media (max-width: 768px) {
  body:not(.home) {
    padding-top: 72px;
  }

  .nav-inner {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px 32px;
    position: relative;
  }

  .nav-left,
  .nav-right {
    display: none;
  }

  .hamburger-btn {
    display: flex;
  }

  .projects-list {
    padding: 24px 24px 0;
  }

  .content-block,
  .careers-content {
    padding: 24px 24px 0;
  }

  .studio-content {
    padding: 24px 24px 40px;
  }

  .contact-content {
    padding: 24px 24px 48px;
  }

  .studio-hero-wrap {
    padding: 24px 24px;
  }

  footer {
    padding: 24px;
    flex-direction: column;
    gap: 6px;
    align-items: flex-start;
  }

  .contact-grid {
    grid-template-columns: 1fr;
    gap: 48px;
  }

  .form-row {
    grid-template-columns: 1fr;
    gap: 28px;
  }

  .services-hero {
    flex-direction: column;
    padding: 24px 24px 0;
    gap: 16px;
  }

  .services-hero-panel {
    aspect-ratio: 3 / 2;
  }

  .testimonial-carousel {
    border-top: none;
  }

  .project-gallery {
    padding: 8px 24px 0;
  }

  .project-gallery-main {
    margin-bottom: 12px;
  }

  .project-page-meta {
    flex-direction: column;
    gap: 4px;
    margin-bottom: 24px;
  }

  .project-gallery-grid {
    grid-template-columns: 1fr;
  }

  .project-concept {
    padding: 24px 24px 0;
  }

  .project-back {
    padding: 8px 24px 40px;
  }

  .project-detail-gallery {
    padding: 24px 24px 0;
    gap: 16px;
  }

  .gallery-row-duo,
  .gallery-row-duo--offset,
  .gallery-row-duo--offset-left {
    grid-template-columns: 1fr;
    align-items: start;
  }

  .gallery-row-duo--offset img:last-child,
  .gallery-row-duo--offset-left img:first-child {
    width: 100%;
    justify-self: auto;
  }

}

@media (min-width: 1400px) {
  .studio-content,
  .careers-content,
  .project-concept,
  .content-block {
    margin-left: calc((100vw - 1400px) / 2);
  }
}
