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

html{
  scroll-behavior:smooth;
}

body{
  font-family:'Cormorant Garamond', Georgia, serif;
  background:#f5f2ed;
  color:#111;
  line-height:1.6;
  overflow-x:hidden;
}

.hero{
  background:#000;
  color:#fff;
}

.top-section{
  background:#000;
  text-align:center;
  padding:34px 18px 30px;
}

.brand{
  white-space:nowrap;
  font-size:24px;
  letter-spacing:4px;
  text-transform:uppercase;
  line-height:1;
  margin-bottom:22px;
}

.logo{
  width:min(330px,78vw);
  height:auto;
  display:block;
  margin:0 auto 28px;
}

.subheadline{
  max-width:720px;
  margin:0 auto;
  font-size:12px;
  letter-spacing:3px;
  line-height:1.8;
  text-transform:uppercase;
  opacity:.84;
}

.hero-photo{
  position:relative;
  min-height:calc(100svh - 300px);
  background-image:url('hero.jpg');
  background-size:112%;
  background-position:center center;
  background-repeat:no-repeat;
  overflow:hidden;
  animation:cinematicDrift 20s ease-in-out infinite alternate;
}

@keyframes cinematicDrift{
  from{
    background-size:108%;
    background-position:center 45%;
  }
  to{
    background-size:118%;
    background-position:center 55%;
  }
}

.hero-overlay{
  min-height:calc(100svh - 300px);
  background:linear-gradient(rgba(0,0,0,.26), rgba(0,0,0,.56));
  display:flex;
  align-items:center;
  justify-content:center;
  padding:70px 24px 90px;
  text-align:center;
}

.hero-content{
  max-width:790px;
  margin:0 auto;
}

.hero-content h1{
  font-size:clamp(46px, 8vw, 68px);
  line-height:1.05;
  font-weight:normal;
  margin-bottom:28px;
  text-shadow:0 3px 18px rgba(0,0,0,.55);
}

.hero-content p{
  font-size:clamp(19px, 3vw, 23px);
  line-height:1.55;
  max-width:710px;
  margin:0 auto 38px;
  opacity:.96;
  text-shadow:0 2px 12px rgba(0,0,0,.55);
}

.button{
  display:inline-block;
  text-decoration:none;
  padding:16px 36px;
  border-radius:999px;
  background:white;
  color:#111;
  font-size:18px;
  transition:.3s ease;
}

.button:hover{
  transform:translateY(-2px);
}

.container{
  width:min(1180px,92%);
  margin:auto;
}

.narrow{
  max-width:860px;
  text-align:center;
}

.intro{
  padding:85px 0 70px;
}

.intro h2{
  font-size:42px;
  margin-bottom:24px;
  font-weight:normal;
}

.intro p{
  font-size:22px;
  color:#333;
}

.simple-stats{
  display:flex;
  justify-content:center;
  gap:26px;
  flex-wrap:wrap;
  margin-top:42px;
  font-size:14px;
  letter-spacing:1px;
  text-transform:uppercase;
  color:#555;
}

.gallery{
  padding:20px 0 90px;
}

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

.hero-image{
  height:640px;
}

.hero-image img,
.side-images img,
.bottom-row img{
  width:100%;
  height:100%;
  object-fit:cover;
  border-radius:22px;
  display:block;
  transition:.35s ease;
}

.hero-image img:hover,
.side-images img:hover,
.bottom-row img:hover{
  transform:scale(1.02);
}

.side-images{
  display:grid;
  grid-template-rows:1fr 1fr;
  gap:20px;
}

.bottom-row{
  grid-column:1 / span 2;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:20px;
  height:260px;
}

.bottom-row.extra{
  grid-template-columns:1fr 1fr;
  height:360px;
}

.statement{
  background:#0d0d0d;
  color:white;
  padding:100px 20px;
  text-align:center;
}

.statement h2{
  font-size:54px;
  line-height:1.1;
  font-weight:normal;
  margin-bottom:40px;
}

.dark{
  background:white;
  color:#111;
}

.managed-by{
  margin-top:26px;
  font-size:13px;
  letter-spacing:1px;
  opacity:.7;
}

footer{
  background:#111;
  color:#888;
  text-align:center;
  padding:28px;
  font-size:14px;
}

@media(max-width:900px){

  .top-section{
    padding:34px 16px 26px;
  }

  .brand{
    font-size:18px;
    letter-spacing:3.5px;
    margin-bottom:22px;
  }

  .logo{
    width:min(255px,74vw);
    margin-bottom:26px;
  }

  .subheadline{
    font-size:10px;
    letter-spacing:2.6px;
    max-width:350px;
  }

  .hero-photo{
    min-height:600px;
    background-size:cover;
    background-position:center center;
    animation:cinematicDriftMobile 18s ease-in-out infinite alternate;
  }

  @keyframes cinematicDriftMobile{
    from{
      background-size:118%;
      background-position:center 44%;
    }
    to{
      background-size:130%;
      background-position:center 54%;
    }
  }

  .hero-overlay{
    min-height:600px;
    align-items:flex-start;
    padding:58px 22px 80px;
  }

  .hero-content h1{
    font-size:44px;
    line-height:1.08;
    margin-bottom:28px;
  }

  .hero-content p{
    font-size:19px;
    line-height:1.55;
    margin-bottom:36px;
  }

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

  .hero-image{
    height:340px;
  }

  .side-images{
    grid-template-columns:1fr 1fr;
    grid-template-rows:none;
  }

  .bottom-row,
  .bottom-row.extra{
    grid-column:auto;
    grid-template-columns:1fr;
    height:auto;
  }

  .bottom-row img,
  .bottom-row.extra img{
    height:240px;
  }

  .statement h2{
    font-size:38px;
  }
}

@media(max-width:430px){

  .top-section{
    padding:34px 14px 24px;
  }

  .brand{
    font-size:17px;
    letter-spacing:3px;
    margin-bottom:20px;
  }

  .logo{
    width:238px;
    margin-bottom:24px;
  }

  .subheadline{
    font-size:10px;
    letter-spacing:2.4px;
    line-height:1.8;
  }

  .hero-photo{
    min-height:610px;
  }

  .hero-overlay{
    min-height:610px;
    padding:54px 22px 82px;
  }

  .hero-content h1{
    font-size:42px;
  }

  .hero-content p{
    font-size:18px;
  }
}



/* FINAL HERO BOUNDARY FIX */
.hero-photo{
  min-height:760px !important;
  background-image:url('hero.jpg') !important;
  background-size:cover !important;
  background-position:center center !important;
  background-repeat:no-repeat !important;
  animation:cinematicDriftFinal 22s ease-in-out infinite alternate !important;
}

@keyframes cinematicDriftFinal{
  from{
    background-size:108%;
    background-position:center 44%;
  }
  to{
    background-size:116%;
    background-position:center 56%;
  }
}

.hero-overlay{
  min-height:760px !important;
  display:flex !important;
  align-items:flex-start !important;
  justify-content:center !important;
  padding:80px 24px 90px !important;
  background:linear-gradient(rgba(0,0,0,.28), rgba(0,0,0,.58)) !important;
}

.hero-content{
  margin:0 auto !important;
  max-width:790px !important;
  text-align:center !important;
}

.hero-content h1{
  margin-top:0 !important;
  margin-bottom:28px !important;
}

/* Mobile-specific correction */
@media(max-width:900px){

  .top-section{
    padding-bottom:26px !important;
  }

  .hero-photo{
    min-height:680px !important;
    background-size:cover !important;
    background-position:center center !important;
    animation:cinematicDriftMobileFinal 20s ease-in-out infinite alternate !important;
  }

  @keyframes cinematicDriftMobileFinal{
    from{
      background-size:118%;
      background-position:center 42%;
    }
    to{
      background-size:130%;
      background-position:center 56%;
    }
  }

  .hero-overlay{
    min-height:680px !important;
    align-items:flex-start !important;
    padding:62px 22px 86px !important;
  }

  .hero-content h1{
    font-size:42px !important;
    line-height:1.08 !important;
    margin-top:0 !important;
    margin-bottom:28px !important;
  }

  .hero-content p{
    font-size:18px !important;
    line-height:1.52 !important;
    margin-bottom:36px !important;
  }
}

@media(max-width:430px){

  .hero-photo{
    min-height:690px !important;
  }

  .hero-overlay{
    min-height:690px !important;
    padding-top:66px !important;
  }

  .hero-content h1{
    font-size:40px !important;
  }
}

@media(max-height:760px) and (max-width:430px){

  .hero-photo{
    min-height:620px !important;
  }

  .hero-overlay{
    min-height:620px !important;
    padding-top:48px !important;
  }

  .hero-content h1{
    font-size:36px !important;
  }

  .hero-content p{
    font-size:16px !important;
  }
}
