.hero {
  position: relative;
  min-height: 100vh;
  display: flex;
  align-items: flex-end;
  padding: 140px 32px 56px;
  background-image: linear-gradient(to top, rgba(20,24,18,0.78) 0%, rgba(20,24,18,0.28) 46%, rgba(20,24,18,0.30) 100%), url('../images/gate.png');
  background-size: cover;
  background-position: center 34%;
}
.hero-inner { position: relative; max-width: 1180px; width: 100%; margin: 0 auto; display: flex; flex-direction: column; gap: 26px; color: var(--cream); }
.hero-kicker { font-size: 10px; letter-spacing: 0.3em; text-transform: uppercase; color: rgba(251,250,247,0.72); }
.hero-title { font-size: clamp(40px,6.2vw,82px); line-height: 1.03; letter-spacing: -0.01em; max-width: 17ch; text-wrap: pretty; }
.hero-lede { font-size: 16px; line-height: 1.7; color: rgba(251,250,247,0.86); max-width: 52ch; text-wrap: pretty; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 16px; align-items: center; margin-top: 6px; }
.btn-primary { display: inline-flex; align-items: center; background: var(--cream); color: var(--ink); padding: 15px 26px; font-size: 11px; letter-spacing: 0.22em; text-transform: uppercase; }
.btn-primary:hover { background: var(--stone-2); color: var(--ink); }
.btn-ghost-light { font-size: 11px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--cream); border-bottom: 1px solid rgba(251,250,247,0.5); padding-bottom: 3px; }
.btn-ghost-light:hover { color: var(--stone-2); }

.section { padding: 112px 32px; max-width: 1180px; margin: 0 auto; }
.section-kicker { font-size: 10px; letter-spacing: 0.3em; text-transform: uppercase; color: var(--ink-soft); }
.section-kicker.accent { color: var(--taupe-dark); }

#stay { display: grid; grid-template-columns: minmax(0,0.85fr) minmax(0,1fr); gap: 80px; align-items: start; }
.stay-copy { display: flex; flex-direction: column; gap: 20px; }
.stay-copy h2 { font-size: clamp(28px,3.4vw,42px); line-height: 1.14; text-wrap: pretty; }
.stay-copy p { font-size: 15px; line-height: 1.75; color: var(--ink-muted); max-width: 44ch; text-wrap: pretty; }

.stat-grid { display: grid; grid-template-columns: repeat(2,1fr); border-top: 1px solid var(--hairline); border-left: 1px solid var(--hairline); }
.stat { padding: 26px 24px; border-right: 1px solid var(--hairline); border-bottom: 1px solid var(--hairline); display: flex; flex-direction: column; gap: 8px; }
.stat.tint { background: var(--stone-2); }
.stat .num { font-family: 'Marcellus', serif; font-size: 30px; line-height: 1; }
.stat .num.small { font-size: 20px; line-height: 1.2; }
.stat .label { font-size: 10px; letter-spacing: 0.24em; text-transform: uppercase; color: var(--ink-soft); }

#gallery .section-head { display: flex; align-items: baseline; justify-content: space-between; gap: 24px; border-bottom: 1px solid var(--hairline); padding-bottom: 16px; margin-bottom: 26px; }
#gallery .section-head h2 { font-size: clamp(24px,2.6vw,32px); }
.gallery-grid { display: grid; grid-template-columns: repeat(4,1fr); grid-auto-rows: 210px; gap: 14px; }
.gallery-grid .big { grid-column: span 2; grid-row: span 2; background-size: cover; background-position: center; }
.gallery-grid .wide { grid-column: span 2; background-size: cover; background-position: center 40%; }
.gallery-grid .placeholder { background: repeating-linear-gradient(135deg, #E4DFD4 0 12px, var(--stone-2) 12px 24px); display: flex; align-items: center; justify-content: center; padding: 0 14px; }
.gallery-grid .placeholder span { font-family: ui-monospace, monospace; font-size: 11px; color: var(--ink-soft); text-align: center; line-height: 1.5; }

#location { background: var(--stone-2); padding: 112px 32px; }
.location-grid { max-width: 1180px; margin: 0 auto; display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 72px; align-items: center; }
.location-copy { display: flex; flex-direction: column; gap: 22px; }
.location-copy h2 { font-size: clamp(28px,3.4vw,42px); line-height: 1.14; text-wrap: pretty; }
.location-copy p { font-size: 15px; line-height: 1.75; color: var(--ink-muted); max-width: 46ch; text-wrap: pretty; }
.distance-list { list-style: none; display: flex; flex-direction: column; border-top: 1px solid var(--hairline); max-width: 420px; }
.distance-list li { display: flex; justify-content: space-between; gap: 16px; padding: 13px 0; border-bottom: 1px solid var(--hairline); font-size: 13px; color: var(--ink-muted); }
.distance-list li span:last-child { color: var(--ink); }
.location-photo { height: 520px; background-size: cover; background-position: center 42%; }

#waitlist { background: var(--ink); color: var(--cream); padding: 104px 32px; }
.waitlist-grid { max-width: 1180px; margin: 0 auto; display: grid; grid-template-columns: minmax(0,1fr) minmax(0,0.9fr); gap: 72px; align-items: start; }
.waitlist-copy { display: flex; flex-direction: column; gap: 20px; }
.waitlist-copy .section-kicker { color: rgba(251,250,247,0.6); }
.waitlist-copy h2 { font-size: clamp(28px,3.4vw,44px); line-height: 1.12; max-width: 22ch; text-wrap: pretty; }
.waitlist-copy p { font-size: 15px; line-height: 1.75; color: rgba(251,250,247,0.72); max-width: 46ch; text-wrap: pretty; }

.waitlist-form { display: flex; flex-direction: column; gap: 16px; border-top: 1px solid rgba(251,250,247,0.22); padding-top: 26px; }
.waitlist-form label { display: flex; flex-direction: column; gap: 8px; }
.waitlist-form label span { font-size: 10px; letter-spacing: 0.24em; text-transform: uppercase; color: rgba(251,250,247,0.6); }
.waitlist-form input {
  background: transparent; border: none; border-bottom: 1px solid rgba(251,250,247,0.3);
  color: var(--cream); font-family: 'Archivo', sans-serif; font-size: 15px; padding: 10px 0;
}
.waitlist-form input:focus { outline: none; border-bottom-color: var(--stone-2); }
.waitlist-form button {
  align-self: flex-start; margin-top: 10px; background: var(--cream); color: var(--ink); border: none; cursor: pointer;
  font-family: 'Archivo', sans-serif; padding: 15px 26px; font-size: 11px; letter-spacing: 0.22em; text-transform: uppercase;
}
.waitlist-form button:hover { background: var(--stone-2); }
.form-success { display: none; font-size: 13px; color: #B9C9AE; }
.form-success.is-visible { display: block; }

@media (max-width: 860px) {
  .hero { padding: 110px 20px 44px; min-height: 92vh; }
  .hero-title { max-width: none; }
  .section { padding: 72px 20px; }
  #stay { grid-template-columns: 1fr; gap: 40px; }
  .stat-grid { grid-template-columns: repeat(2,1fr); }
  .gallery-grid { grid-template-columns: repeat(2,1fr); grid-auto-rows: 160px; }
  .gallery-grid .big { grid-column: span 2; grid-row: span 2; }
  .gallery-grid .wide { grid-column: span 2; }
  #location { padding: 72px 20px; }
  .location-grid { grid-template-columns: 1fr; gap: 36px; }
  .location-photo { height: 320px; order: -1; }
  #waitlist { padding: 72px 20px; }
  .waitlist-grid { grid-template-columns: 1fr; gap: 36px; }
}

@media (max-width: 480px) {
  .stat-grid { grid-template-columns: 1fr 1fr; }
  .gallery-grid { grid-template-columns: 1fr; grid-auto-rows: 200px; }
  .gallery-grid .big, .gallery-grid .wide { grid-column: span 1; }
  .hero-actions { flex-direction: column; align-items: stretch; }
  .btn-primary, .btn-ghost-light { text-align: center; }
}
