:root {
  --noir: #1D1D1B;
  --cream: #F5F3E9;
  --cream-soft: rgba(245, 243, 233, 0.85);
  --cream-dim: rgba(245, 243, 233, 0.6);
  --cream-very-dim: rgba(245, 243, 233, 0.32);
}

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

html, body {
  height: 100%;
  background: var(--noir);
  color: var(--cream);
  font-family: 'Inter', system-ui, sans-serif;
  font-weight: 400;
  overflow: hidden;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.hero-video {
  position: fixed;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: 0;
}

.overlay {
  position: fixed;
  inset: 0;
  background:
    linear-gradient(180deg, rgba(29,29,27,0.55) 0%, rgba(29,29,27,0.70) 55%, rgba(29,29,27,0.85) 100%);
  z-index: 1;
}

.stage {
  position: relative;
  z-index: 2;
  height: 100vh;
  min-height: 100dvh;
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-template-rows: auto 1fr auto;
  padding: clamp(20px, 3vw, 40px) clamp(20px, 3vw, 40px) clamp(24px, 3vw, 36px);
  column-gap: 16px;
}

.meta {
  font-family: 'Inter', sans-serif;
  font-size: 11px;
  font-weight: 400;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--cream-dim);
  line-height: 1.4;
}

.meta-top-left     { grid-column: 1; grid-row: 1; justify-self: start; align-self: start; }
.meta-top-right    { grid-column: 2; grid-row: 1; justify-self: end;   align-self: start; text-align: right; }
.meta-bottom-left  { grid-column: 1; grid-row: 3; justify-self: start; align-self: end; }
.meta-bottom-right { grid-column: 2; grid-row: 3; justify-self: end;   align-self: end; text-align: right; }

.center {
  grid-column: 1 / -1;
  grid-row: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  gap: clamp(22px, 3vh, 36px);
  padding: 20px;
}

.logo {
  width: clamp(180px, 26vw, 300px);
  height: auto;
  opacity: 0.98;
  user-select: none;
  -webkit-user-drag: none;
}

/* Logo con tagline HOTELS & RESORTS integrado — un poco más ancho */
.logo.logo-hr {
  width: clamp(220px, 32vw, 380px);
}

.sub-corp {
  font-family: 'Inter', sans-serif;
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.42em;
  text-transform: uppercase;
  color: var(--cream-soft);
  margin-top: -12px;
}

.pull-quote {
  font-family: 'Cormorant Garamond', serif;
  font-style: italic;
  font-weight: 300;
  font-size: clamp(26px, 4vw, 46px);
  line-height: 1.25;
  max-width: 24ch;
  color: var(--cream);
  letter-spacing: 0.003em;
  margin-top: clamp(8px, 2vh, 20px);
}

.kicker {
  font-family: 'Inter', sans-serif;
  font-weight: 500;
  font-size: 11px;
  letter-spacing: 0.42em;
  text-transform: uppercase;
  color: var(--cream-very-dim);
}

.signup {
  display: flex;
  align-items: center;
  border-bottom: 1px solid var(--cream-very-dim);
  padding-bottom: 6px;
  min-width: min(420px, 84vw);
  max-width: 480px;
  margin-top: 8px;
  transition: border-color .3s ease;
}

.signup:focus-within { border-color: var(--cream-soft); }

.signup input[type="email"] {
  flex: 1;
  background: transparent;
  border: none;
  outline: none;
  color: var(--cream);
  font-family: 'Inter', sans-serif;
  font-size: 14px;
  font-weight: 400;
  letter-spacing: 0.03em;
  padding: 10px 4px;
}

.signup input::placeholder {
  color: var(--cream-very-dim);
  font-weight: 300;
}

.signup button {
  background: transparent;
  border: none;
  color: var(--cream-soft);
  font-family: 'Inter', sans-serif;
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  padding: 10px 4px 10px 18px;
  cursor: pointer;
  white-space: nowrap;
  transition: color .25s ease;
}

.signup button:hover { color: var(--cream); }
.signup button:disabled { opacity: 0.5; cursor: default; }

.form-msg {
  font-family: 'Inter', sans-serif;
  font-size: 11px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--cream-dim);
  opacity: 0;
  transition: opacity .35s ease;
  margin-top: 4px;
  min-height: 16px;
}

.form-msg.show { opacity: 1; }

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0,0,0,0);
  white-space: nowrap;
}

@media (max-width: 640px) {
  .pull-quote { font-size: clamp(22px, 6.4vw, 30px); max-width: 18ch; }
  .logo { width: 58vw; max-width: 240px; }
  .center { gap: 22px; }
  .meta { font-size: 9px; letter-spacing: 0.18em; }
  .signup { min-width: 88vw; }
  .signup input[type="email"] { font-size: 15px; }
}

@media (prefers-reduced-motion: reduce) {
  .hero-video { display: none; }
  body { background: var(--noir) url('assets/poster.jpg') center / cover no-repeat; }
}
