:root{
  --bg:#f3efe9;
  --white:#ffffff;
  --ink:#171512;
  --muted:#6f685f;
  --light:#9e968d;
  --accent:#8d7361;
  --border:#dfdad3;
  --serif:'Cormorant Garamond',serif;
  --sans:'Jost',sans-serif;
  --quote: #f9f7f4;
}

*{
  margin:0;
  padding:0;
  box-sizing:border-box;
}

html{
  scroll-behavior:smooth;
}

a { text-decoration:none; }

body{
  background:
    radial-gradient(circle at top left, rgba(141,115,97,0.08), transparent 30%),
    radial-gradient(circle at bottom right, rgba(141,115,97,0.05), transparent 25%),
    var(--bg);
  font-family:var(--sans);
  color:var(--ink);
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}

.site-shell{
  width:100%;
  max-width:1480px;
  margin:0 auto;
  background:rgba(255,255,255,0.95);
  border-left:1px solid rgba(223,218,211,0.6);
  border-right:1px solid rgba(223,218,211,0.6);
  position:relative;
  overflow:hidden;
}

.cursor-glow{
  position:fixed;
  width:420px;
  height:420px;
  border-radius:50%;
  background:radial-gradient(circle, rgba(141,115,97,0.09), transparent 70%);
  pointer-events:none;
  z-index:1;
  mix-blend-mode:multiply;
  transform:translate(-50%, -50%);
}

nav{
  position:fixed;
  left:50%;
  transform:translateX(-50%);
  width:100%;
  max-width:1480px;
  z-index:1000;
  padding:1.4rem 3rem;
  display:flex;
  align-items:center;
  justify-content:space-between;
  background:rgba(255,255,255,0.86);
  backdrop-filter:blur(18px);
  border-bottom:1px solid rgba(223,218,211,0.55);
}

.nav-logo{
  font-family:var(--serif);
  font-size:1rem;
  letter-spacing:0.12em;
  text-transform:uppercase;
}

.nav-links{
  display:flex;
  gap:2rem;
}

.nav-links a{
  text-decoration:none;
  color:var(--muted);
  text-transform:uppercase;
  font-size:0.7rem;
  letter-spacing:0.18em;
  position:relative;
}

.nav-links a::after{
  content:'';
  position:absolute;
  left:0;
  bottom:-6px;
  width:0%;
  height:1px;
  background:var(--accent);
  transition:width .4s ease;
}

.nav-links a:hover::after{
  width:100%;
}

.mobile-toggle{
  display:none;
}

.hero{
  min-height:100vh;
  display:grid;
  grid-template-columns:1.05fr 1fr;
  position:relative;
}

.hero-left{
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:8rem 6rem;
  position:relative;
  z-index:2;
}

.hero-label{
  font-size:0.72rem;
  text-transform:uppercase;
  letter-spacing:0.22em;
  color:var(--light);
  margin-bottom:2rem;
}

.hero-title{
  font-family:var(--serif);
  font-size:clamp(4rem,7vw,6rem);
  line-height:0.9;
  font-weight:300;
  letter-spacing:-0.05em;
  margin-bottom:2rem;
}

.hero-title em{
  font-style:italic;
  color:var(--accent);
}

.hero-text{
  max-width:44ch;
  color:var(--muted);
  line-height:1.9;
  font-size:0.96rem;
  margin-bottom:3rem;
}

.hero-actions{
  display:flex;
  gap:1rem;
  flex-wrap:wrap;
}

.hero-btn{
  text-decoration:none;
  padding:1rem 1.8rem;
  border-radius:999px;
  text-transform:uppercase;
  letter-spacing:0.16em;
  font-size:0.68rem;
  transition:all .4s cubic-bezier(.16,1,.3,1);
}

.hero-btn.primary{
  background:var(--ink);
  color:white;
}

.hero-btn.secondary{
  border:1px solid rgba(23,21,18,0.14);
  color:var(--ink);
  background:rgba(255,255,255,0.5);
  backdrop-filter:blur(10px);
}

.hero-btn:hover{
  transform:translateY(-2px);
}

.hero-right{
  position:relative;
  overflow:hidden;
  border-bottom-left-radius: 30px;
}

.hero-image{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  transform:scale(1.05);
  filter:saturate(0.92) contrast(1.02);
}

.hero-overlay{
  position:absolute;
  inset:0;
  background:
    linear-gradient(to left, rgba(23,21,18,0.12), rgba(23,21,18,0.48)),
    linear-gradient(to top, rgba(23,21,18,0.55), transparent 35%);
}

.editorial-card{
  position:absolute;
  left:3rem;
  bottom:3rem;
  width:320px;
  padding:2rem;
  background:rgba(255,255,255,0.14);
  backdrop-filter:blur(18px);
  border:1px solid rgba(255,255,255,0.18);
  color:white;
}

.editorial-meta{
  font-size:0.62rem;
  text-transform:uppercase;
  letter-spacing:0.18em;
  opacity:0.72;
  margin-bottom:1rem;
}

.editorial-title{
  font-family:var(--serif);
  font-size:1.3rem;
  line-height:1.1;
  margin-bottom:1rem;
}

.editorial-copy{
  font-size:0.88rem;
  line-height:1.8;
  opacity:0.82;
}

.floating-stat{
  position:absolute;
  right:3rem;
  top:7rem;
  background:rgba(255,255,255,0.85);
  backdrop-filter:blur(14px);
  padding:1.2rem 1.4rem;
  border-radius:22px;
  border:1px solid rgba(255,255,255,0.5);
}

.stat-number{
  font-family:var(--serif);
  font-size:2.4rem;
  line-height:1;
}

.stat-copy{
  font-size:0.65rem;
  text-transform:uppercase;
  letter-spacing:0.16em;
  color:var(--muted);
}

.section{
  padding:7rem 6rem;
}

.section-title{
  font-family:var(--serif);
  font-size:clamp(2.5rem,4vw,4.5rem);
  font-weight:300;
  line-height:1;
  margin-bottom:1.5rem;
}

.section-title-sm{
  font-family:var(--serif);
  font-size:clamp(1.6rem,4vw,1.6rem);
  font-weight:300;
  text-transform: italic;
  line-height:1;
}

.section-text{
  max-width:75ch;
  color:var(--muted);
  line-height:1.9;
}

.gallery{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1.5rem;
  margin-top:4rem;
}

.gallery-card{
  position:relative;
  overflow:hidden;
  border-bottom-left-radius: 30px;
  aspect-ratio:4/5;
}

.gallery-card img{
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform 1.2s cubic-bezier(.16,1,.3,1);
}

.gallery-card:hover img{
  transform:scale(1.08);
}

.gallery-card::after{
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(to top, rgba(23,21,18,0.7), transparent 50%);
}

.gallery-caption{
  position:absolute;
  left:2rem;
  bottom:2rem;
  z-index:2;
  color:white;
}

.gallery-label{
  text-transform:uppercase;
  font-size:0.62rem;
  letter-spacing:0.16em;
  opacity:0.72;
  margin-bottom:.6rem;
}

.gallery-title{
  font-family:var(--serif);
  font-size:1.8rem;
  line-height:1.1;
}

.gallery-footer {
  margin-top: 3rem;
  padding-top: 2rem;
  border-top: 0.5px solid var(--border);
  text-align: center;
}
.gallery-cta {
  font-size: 0.7rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ink);
  border-bottom: 0.5px solid var(--ink);
  padding-bottom: 0.25rem;
  transition: color 0.2s, border-color 0.2s;
}
.gallery-cta:hover { color: var(--accent); border-color: var(--accent); }

.collab {
  padding:3rem 6rem;
  border-top:1px solid rgba(223,218,211,0.5);
  background-color: var(--quote);
  margin-top: 3rem;
}

.testimonial{
  padding:7rem 6rem;
  border-top:1px solid rgba(223,218,211,0.5);
  background-color: var(--quote);
}

.testimonial-quote{
  max-width:1000px;
  font-family:var(--serif);
  font-size:clamp(2.4rem,4vw,3rem);
  line-height:1.15;
  font-weight:300;
  letter-spacing:-0.03em;
  margin-bottom:2rem;
}

.testimonial-meta{
  display:flex;
  align-items:center;
  gap:1rem;
}

.testimonial-line{
  width:60px;
  height:1px;
  background:var(--accent);
}

.testimonial-client{
  text-transform:uppercase;
  letter-spacing:0.18em;
  font-size:0.68rem;
  color:var(--light);
}

.contact{
  padding:7rem 6rem;
  display:grid;
  grid-template-columns:0.9fr 1.1fr;
  gap:5rem;
  border-top:1px solid rgba(223,218,211,0.5);
}

.contact-left{
  display:flex;
  flex-direction:column;
  justify-content:space-between;
}

.contact-kicker{
  text-transform:uppercase;
  letter-spacing:0.18em;
  font-size:0.68rem;
  color:var(--light);
  margin-bottom:2rem;
}

.contact-title{
  font-family:var(--serif);
  font-size:clamp(2.5rem,4vw,3rem);
  line-height:0.98;
  font-weight:300;
  letter-spacing:-0.04em;
  margin-bottom:2rem;
}

.contact-title em {
    font-style: italic;
    color: var(--accent);
}

.contact-copy{
  max-width:38ch;
  line-height:1.9;
  color:var(--muted);
}

.contact-form{
  display:flex;
  flex-direction:column;
}

.form-row{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:2rem;
}

.form-group{
  display:flex;
  flex-direction:column;
  margin-bottom:2rem;
}

.form-group label{
  font-size:0.68rem;
  text-transform:uppercase;
  letter-spacing:0.18em;
  color:var(--light);
  margin-bottom:1rem;
}

.form-group input,
.form-group textarea{
  border:none;
  border-bottom:1px solid rgba(23,21,18,0.12);
  background:transparent;
  padding:0 0 1rem;
  font-family:var(--sans);
  font-size:1rem;
  outline:none;
  transition:border-color .3s ease;
}

.form-group textarea{
  min-height:140px;
  resize:vertical;
}

.form-group input:focus,
.form-group textarea:focus{
  border-color:var(--accent);
}

.contact-submit{
  width:fit-content;
  border:none;
  background:none;
  padding:0;
  margin-top:1rem;
  font-size:0.72rem;
  text-transform:uppercase;
  letter-spacing:0.18em;
  cursor:pointer;
  color:var(--ink);
  border-bottom:1px solid var(--ink);
  padding-bottom:0.35rem;
}

footer{
  padding:2rem 3rem;
  border-top:1px solid rgba(223,218,211,0.6);
  display:flex;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:1rem;
  color:var(--light);
  font-size:0.72rem;
  text-transform:uppercase;
  letter-spacing:0.14em;
}

footer .company {
  font-family:var(--serif);
  color:var(--ink);
}

.footer-links a {
  font-size: 0.65rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--mid);
  transition: color 0.2s;
}
.footer-links a:hover { color: var(--ink); }

.reveal{
  opacity:0;
  transform:translateY(40px);
  transition:
    opacity 1s cubic-bezier(.16,1,.3,1),
    transform 1s cubic-bezier(.16,1,.3,1);
}

.reveal.visible{
  opacity:1;
  transform:translateY(0);
}

@media(max-width:980px){

  .cursor-glow{
    display:none;
  }

  nav{
    padding:1rem 1.5rem;
  }

  .mobile-toggle{
    display:flex;
    flex-direction:column;
    gap:5px;
    background:none;
    border:none;
  }

  .mobile-toggle span{
    width:24px;
    height:1px;
    background:var(--ink);
  }

  .nav-links{
    position:absolute;
    top:100%;
    left:0;
    right:0;
    background:white;
    padding:1.5rem;
    display:none;
    flex-direction:column;
    border-bottom:1px solid rgba(223,218,211,0.6);
  }

  .nav-links.active{
    display:flex;
  }

  .hero{
    grid-template-columns:1fr;
  }

  .hero-left{
    padding:7rem 1.5rem 4rem;
  }

  .hero-right{
    min-height:72vh;
  }

  .editorial-card{
    left:1.5rem;
    right:1.5rem;
    width:auto;
    bottom:1.5rem;
  }

  .floating-stat{
    right:1.5rem;
    top:1.5rem;
  }

  .section,
  .testimonial,
  .contact{
    padding:4rem 1.5rem;
  }

  .gallery{
    grid-template-columns:1fr;
  }

  .contact{
    grid-template-columns:1fr;
    gap:3rem;
  }

  .form-row{
    grid-template-columns:1fr;
    gap:0;
  }

  footer{
    padding:2rem 1.5rem;
    flex-direction:column;
  }
}