.hero {
  min-height: 690px;
  display: grid;
  grid-template-columns: minmax(0, 1.04fr) minmax(440px, .96fr);
  background: var(--sand);
}

.hero-copy {
  padding: clamp(76px, 11vw, 156px) clamp(32px, 7vw, 116px);
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
}

.hero h1 {
  margin: 0;
  font: 500 clamp(58px, 6.5vw, 103px)/.84 var(--serif);
  letter-spacing: -.062em;
}

.hero h1 em { color: var(--gold); font-weight: 500; }

.hero .intro {
  max-width: 430px;
  margin: 31px 0 0;
  color: #6b5750;
  font-size: 16px;
}

.hero .button { margin-top: 28px; }

.microcopy {
  margin: 15px 0 0;
  color: #806c63;
  font-size: 12px;
}

.hero-photo {
  min-height: 690px;
  position: relative;
  overflow: hidden;
  background: #eaded5;
}

.hero-photo:before {
  content: "";
  position: absolute;
  z-index: 1;
  inset: 0;
  background: linear-gradient(90deg, var(--sand) 0%, rgba(241, 226, 215, .18) 27%, transparent 54%);
}

.hero-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 50% 4%;
  transform: scale(1.01);
}

.hero-stamp {
  position: absolute;
  z-index: 2;
  right: 31px;
  bottom: 30px;
  display: grid;
  place-items: center;
  width: 88px;
  height: 88px;
  border: 1px solid var(--gold);
  border-radius: 50%;
  background: #fbf6f133;
  color: var(--ivory);
  font: 500 15px/1.05 var(--serif);
  text-align: center;
}

.section { padding: clamp(86px, 11vw, 152px) 0; }

.section-paper { background: #fffdfb; }

.section-wine { background: #412a2b; color: #fff8f2; }

.heading {
  display: grid;
  grid-template-columns: 1fr minmax(260px, .75fr);
  align-items: end;
  gap: 50px;
}

.heading-text {
  color: #745f56;
  max-width: 440px;
  margin: 0 0 8px;
}

.section-wine .heading-text { color: #d8c6bd; }

.services {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  border: 1px solid var(--line);
  margin-top: 56px;
}

.service {
  min-height: 238px;
  padding: 31px;
  border-right: 1px solid var(--line);
}

.service:last-child { border: 0; }

.service-num { color: var(--gold); font: 500 26px var(--serif); }

.service h3 { margin: 20px 0 8px; font: 500 31px/1 var(--serif); }

.service p { max-width: 300px; margin: 0; color: #775f55; font-size: 13px; }

.section-wine .service p { color: #d7c3ba; }

.bento {
  display: grid;
  grid-template-columns: 1.15fr .9fr 1.05fr;
  grid-template-rows: 330px 255px;
  gap: 15px;
  margin-top: 56px;
}

.work {
  position: relative;
  overflow: hidden;
  background: #eadad1;
}

.bento .work:first-child { grid-row: span 2; }

.bento .work:nth-child(4) { grid-column: span 2; }

.work img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .65s cubic-bezier(.2, .7, .2, 1), filter .4s;
}

.work:hover img { transform: scale(1.065); filter: saturate(1.06); }

.work:after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 60%, #24141438);
}

.work-label {
  position: absolute;
  z-index: 1;
  left: 18px;
  bottom: 14px;
  color: #fff;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .16em;
  text-transform: uppercase;
}

.about {
  display: grid;
  grid-template-columns: .85fr 1.15fr;
  gap: clamp(48px, 8vw, 130px);
  align-items: center;
}

.about-photo {
  height: min(650px, 56vw);
  overflow: hidden;
}

.about-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
}

.about-copy .intro { max-width: 570px; color: #6d5750; font-size: 17px; }

.facts {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0;
  margin-top: 34px;
  border-top: 1px solid var(--line);
  border-left: 1px solid var(--line);
}

.fact {
  padding: 22px;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}

.fact strong { display: block; font: 500 26px/1 var(--serif); }

.fact span { font-size: 12px; color: #745f56; }

.location {
  display: grid;
  grid-template-columns: 1.05fr .95fr;
  min-height: 420px;
}

.location-copy {
  padding: clamp(38px, 5vw, 78px);
  background: #f1e3d8;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.location-copy h2 {
  margin: 0;
  font: 500 clamp(48px, 5vw, 70px)/.9 var(--serif);
  letter-spacing: -.04em;
}

.location-copy p { max-width: 400px; color: #6b5650; }

.location-visual { position: relative; overflow: hidden; }

.location-visual iframe {
  width: 100%;
  height: 100%;
  min-height: 420px;
  border: 0;
  display: block;
}

.vip-banner {
  display: grid;
  grid-template-columns: 1.1fr .9fr;
  align-items: center;
  gap: 48px;
  padding: 57px 0;
  border-top: 1px solid #835c56;
  border-bottom: 1px solid #835c56;
}

.vip-banner h2 {
  margin: 0;
  font: 500 clamp(44px, 4.6vw, 67px)/.88 var(--serif);
  letter-spacing: -.045em;
}

.vip-banner p { margin: 0; color: #e7d6cd; }

.vip-button {
  background: transparent;
  border-color: #c8a06a;
  color: #fff8f2;
}

.vip-button:hover,
.vip-button:focus-visible {
  background: #c8a06a;
  color: #332523;
}

.section-cta {
  margin-top: 28px;
  display: flex;
  justify-content: flex-start;
}

.vip-banner h2 em { color: var(--gold); }

@media (max-width: 900px) {
  .hero { grid-template-columns: 1fr; min-height: 0; }
  .hero-copy { min-height: 570px; }
  .hero-photo { min-height: 540px; }
  .hero-photo:before { background: linear-gradient(0deg, #f1e2d7 0%, transparent 40%); }
  .heading, .about, .location, .vip-banner { grid-template-columns: 1fr; }
  .about-photo { height: 620px; }
  .section-cta {
    justify-content: center;
  }
  .section-cta .button {
    width: 100%;
    max-width: 320px;
  }
  .vip-banner {
    text-align: center;
    gap: 28px;
  }
  .vip-banner > div:last-child {
    display: flex;
    flex-direction: column;
    align-items: center;
  }
  .vip-banner .vip-button {
    width: 100%;
    max-width: 320px;
  }
}

@media (max-width: 650px) {
  .hero-copy { padding: 84px 25px 62px; min-height: 530px; }
  .hero h1 { font-size: clamp(53px, 16vw, 75px); }
  .hero-photo { min-height: 440px; }
  .hero-stamp { right: 20px; bottom: 20px; width: 70px; height: 70px; font-size: 12px; }
  .section { padding: 78px 0; }
  .heading { gap: 22px; }
  .services, .bento { grid-template-columns: 1fr; }
  .service { min-height: 0; border-right: 0; border-bottom: 1px solid var(--line); }
  .service:last-child { border-bottom: 0; }
  .bento { grid-template-rows: 330px; gap: 10px; }
  .bento .work:first-child, .bento .work:nth-child(4) { grid-column: auto; grid-row: auto; }
  .work { min-height: 310px; }
  .about-photo { height: 500px; }
  .facts { grid-template-columns: 1fr; }
  .location-copy { padding: 58px 28px; }
  .location-visual { min-height: 300px; }
  .section-cta {
    justify-content: center;
  }
  .section-cta .button {
    width: 100%;
    max-width: 320px;
  }
  .vip-banner {
    text-align: center;
    gap: 28px;
  }
  .vip-banner > div:last-child {
    display: flex;
    flex-direction: column;
    align-items: center;
  }
  .vip-banner .vip-button {
    width: 100%;
    max-width: 320px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .work img { transition: none; }
}
