/* ============================================
   NOIR & CO. v3 — Página pública
   ============================================ */

.site-header {
  position:fixed; top:0; left:0; right:0; z-index:100;
  display:flex; align-items:center; justify-content:space-between;
  padding:1.5rem 3rem;
  background:linear-gradient(to bottom, rgba(10,8,6,0.95) 0%, transparent 100%);
  backdrop-filter:blur(6px);
}

.site-nav { display:flex; align-items:center; gap:2.5rem; }
.site-nav__links { display:flex; gap:2rem; list-style:none; }
.site-nav__links a {
  font-family:var(--font-mono); font-size:0.72rem;
  text-transform:uppercase; letter-spacing:0.1em;
  color:var(--color-ivory-dim);
  transition:color var(--duration-base) var(--ease-out); position:relative;
}
.site-nav__links a:hover { color:var(--color-gold-bright); }
.site-nav__links a::after {
  content:''; position:absolute; bottom:-6px; left:0;
  width:0; height:1px; background:var(--color-gold);
  transition:width var(--duration-base) var(--ease-out);
}
.site-nav__links a:hover::after { width:100%; }

/* --- Hero --- */
.hero {
  position: relative;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 8rem 3rem 4rem;
  overflow: hidden;
  /* fallback caso o vídeo não carregue */
  background: url('/img/fundo.jpg') center center / cover no-repeat var(--color-black);
}

/* Vídeo de fundo — cobre todo o hero, centralizado, sem distorção */
.hero__video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  z-index: 0;
  pointer-events: none;
  /* sutil: começa com opacity 0 e sobe quando o vídeo carrega (via JS) */
  opacity: 0;
  transition: opacity 1.2s ease;
}
.hero__video.is-loaded {
  opacity: 1;
}

/* Overlay duplo: escurece + gradiente dourado à esquerda onde fica o texto */
.hero__overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    /* gradiente lateral — escurece mais à esquerda onde está o texto */
    linear-gradient(
      to right,
      rgba(10, 8, 6, 0.82) 0%,
      rgba(10, 8, 6, 0.55) 55%,
      rgba(10, 8, 6, 0.25) 100%
    ),
    /* escurecimento global para preservar o tom preto da paleta */
    rgba(10, 8, 6, 0.45);
  pointer-events: none;
}

/* Todo o conteúdo do hero fica acima do vídeo e do overlay */
.hero__eyebrow-row,
.hero__title,
.hero__subtitle,
.hero__actions {
  position: relative;
  z-index: 2;
}

.hero__curtain { position:fixed; top:0; left:0; width:100%; height:100%; z-index:200; display:flex; pointer-events:none; }
.hero__curtain-panel {
  flex:1;
  background:linear-gradient(135deg, var(--color-gold-dim) 0%, var(--color-black) 60%);
  transition:transform 1.4s var(--ease-out);
}
.hero__curtain-panel:first-child { transform-origin:left; }
.hero__curtain-panel:last-child  { transform-origin:right; }
.hero__curtain.is-open .hero__curtain-panel:first-child { transform:translateX(-100%); }
.hero__curtain.is-open .hero__curtain-panel:last-child  { transform:translateX(100%); }

.hero__eyebrow-row { display:flex; align-items:center; gap:1.5rem; margin-bottom:3rem; opacity:0; animation:fade-up 0.8s var(--ease-out) 1.2s forwards; }
.hero__eyebrow-divider { flex:1; max-width:220px; height:1px; background:linear-gradient(to right, var(--color-gold-dim), transparent); }
.hero__title { font-family:var(--font-display); font-size:clamp(2.6rem,6vw,5rem); font-weight:500; line-height:1.08; max-width:880px; color:var(--color-ivory); opacity:0; animation:fade-up 0.9s var(--ease-out) 1.4s forwards; }
.hero__title em { font-style:italic; font-weight:400; color:var(--color-gold-bright); }
.hero__subtitle { margin-top:2rem; max-width:540px; color:var(--color-ivory-dim); font-size:1.05rem; line-height:1.75; opacity:0; animation:fade-up 0.9s var(--ease-out) 1.65s forwards; }
.hero__actions { margin-top:2.75rem; display:flex; flex-wrap:wrap; align-items:center; gap:1rem; opacity:0; animation:fade-up 0.9s var(--ease-out) 1.85s forwards; }

/* ─── Badge de disponibilidade no header ──────────────────────────────────
   Fica inline no nav, ao lado esquerdo do botão Entrar.
   Compacto para não quebrar o cabeçalho — sem borda pesada, só o essencial.
   ──────────────────────────────────────────────────────────────────────── */
.status-header {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  padding: 0.5rem 1rem;
  border: var(--border-hairline-bright);
  background: rgba(10, 8, 6, 0.6);
  backdrop-filter: blur(8px);
  white-space: nowrap;
  position: relative;
  overflow: hidden;
}

/* linha dourada no topo — discreta, combina com o botão Entrar ao lado */
.status-header::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 1px;
  background: linear-gradient(to right,
    transparent,
    var(--color-gold-bright) 40%,
    var(--color-gold) 60%,
    transparent);
}

.status-header__dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--color-muted);
  flex-shrink: 0;
  position: relative;
}

.status-header[data-status="disponivel"] .status-header__dot {
  background: var(--color-success);
}
.status-header[data-status="disponivel"] .status-header__dot::after {
  content: '';
  position: absolute;
  inset: -3px;
  border-radius: 50%;
  background: var(--color-success);
  opacity: 0.35;
  animation: pulse 2s ease-out infinite;
}
.status-header[data-status="indisponivel"] .status-header__dot {
  background: var(--color-danger);
}

@keyframes pulse {
  0%   { transform: scale(1);   opacity: 0.35; }
  60%  { transform: scale(2.4); opacity: 0; }
  100% { transform: scale(2.4); opacity: 0; }
}

.status-header__word {
  font-family: var(--font-mono);
  font-size: 0.68rem;
  text-transform: uppercase;
  letter-spacing: 0.09em;
  font-weight: 500;
  line-height: 1;
  flex-shrink: 0;
}

/* palavra fica na cor do estado */
.status-header[data-status="disponivel"]   .status-header__word { color: var(--color-success); }
.status-header[data-status="indisponivel"] .status-header__word { color: var(--color-danger); }

.status-header__sep {
  font-family: var(--font-mono);
  font-size: 0.68rem;
  color: var(--color-gold-dim);
  flex-shrink: 0;
  line-height: 1;
}

.status-header__text {
  font-family: var(--font-mono);
  font-size: 0.68rem;
  text-transform: uppercase;
  letter-spacing: 0.09em;
  color: var(--color-ivory-dim);
  line-height: 1;
}

@keyframes fade-up { from { opacity:0; transform:translateY(18px); } to { opacity:1; transform:translateY(0); } }

/* --- Seções --- */
.section { padding:var(--space-xl) 3rem; }
.section--divided { border-top:var(--border-hairline); }
.section__heading { display:flex; align-items:baseline; gap:1.5rem; margin-bottom:var(--space-lg); }
.section__heading-number { font-family:var(--font-mono); font-size:0.78rem; color:var(--color-gold-dim); }
.section__heading-divider { flex:1; height:1px; background:rgba(201,164,92,0.18); }

/* --- Pilares --- */
.pillars { display:grid; grid-template-columns:repeat(4,1fr); gap:0; }
.pillar { padding:0 var(--space-md); border-left:var(--border-hairline); }
.pillar:first-child { border-left:none; padding-left:0; }
.pillar__icon { width:36px; height:36px; margin-bottom:1.25rem; color:var(--color-gold); }
.pillar__title { font-family:var(--font-display); font-size:1.3rem; margin-bottom:0.6rem; color:var(--color-ivory); }
.pillar__text  { font-size:0.92rem; color:var(--color-muted); line-height:1.65; }

/* --- Sobre --- */
.about { display:grid; grid-template-columns:1fr 1fr; gap:var(--space-lg); align-items:center; }
.about__visual { position:relative; aspect-ratio:4/5; background:linear-gradient(160deg, var(--color-charcoal) 0%, var(--color-black-soft) 100%); border:var(--border-hairline); display:flex; align-items:center; justify-content:center; overflow:hidden; }
.about__visual::before { content:''; position:absolute; inset:18px; border:1px solid rgba(201,164,92,0.3); z-index:1; pointer-events:none; }
.about__visual-mark { font-family:var(--font-display); font-size:5rem; color:var(--color-gold-dim); opacity:0.5; }
.about__visual-img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center; display:block; }
.about__copy h2 { font-family:var(--font-display); font-size:clamp(1.9rem,3.2vw,2.6rem); font-weight:500; margin-bottom:1.5rem; line-height:1.2; }
.about__copy p  { color:var(--color-ivory-dim); margin-bottom:1.25rem; line-height:1.75; }

/* --- Galeria --- */
.gallery { display:grid; grid-template-columns:repeat(6,1fr); grid-auto-rows:140px; gap:0.75rem; }
.gallery__item { position:relative; background:linear-gradient(150deg, var(--color-charcoal-light), var(--color-black-soft)); border:var(--border-hairline); overflow:hidden; display:flex; align-items:flex-end; padding:1.25rem; transition:border-color var(--duration-base) var(--ease-out); }
.gallery__item:hover { border-color:var(--color-gold-bright); }
.gallery__item--lg { grid-column:span 3; grid-row:span 3; }
.gallery__item--md { grid-column:span 2; grid-row:span 2; }
.gallery__item--sm { grid-column:span 1; grid-row:span 2; }
.gallery__item-label { font-family:var(--font-mono); font-size:0.65rem; text-transform:uppercase; letter-spacing:0.08em; color:var(--color-gold-bright); }

/* --- Acesso (CTA) --- */
.access-cta { text-align:center; max-width:720px; margin:0 auto; }
.access-cta h2 { font-family:var(--font-display); font-size:clamp(2rem,4vw,3rem); font-weight:500; margin-bottom:1.5rem; }
.access-cta p  { color:var(--color-ivory-dim); margin-bottom:2.5rem; font-size:1.05rem; line-height:1.7; }
.access-tiers { display:grid; grid-template-columns:1fr 1fr; gap:1.5rem; margin-top:var(--space-lg); text-align:left; }
.tier-card { border:var(--border-hairline); padding:2.25rem; transition:border-color var(--duration-base) var(--ease-out); }
.tier-card:hover { border-color:var(--color-gold-bright); }
.tier-card__name { font-family:var(--font-display); font-size:1.5rem; color:var(--color-gold-bright); margin-bottom:0.5rem; }
.tier-card__desc { color:var(--color-muted); font-size:0.9rem; margin-bottom:1.5rem; line-height:1.6; }
.tier-card__list { list-style:none; display:flex; flex-direction:column; gap:0.6rem; }
.tier-card__list li { font-size:0.88rem; color:var(--color-ivory-dim); display:flex; gap:0.6rem; }
.tier-card__list li::before { content:'—'; color:var(--color-gold-dim); }

/* --- Contato --- */
.contact { display:grid; grid-template-columns:1fr 1fr; gap:var(--space-lg); }
.contact__info h2 { font-family:var(--font-display); font-size:clamp(2rem,3.5vw,2.8rem); margin-bottom:1.25rem; }
.contact__info p  { color:var(--color-ivory-dim); margin-bottom:2rem; line-height:1.7; }
.contact__detail  { display:flex; flex-direction:column; gap:0.4rem; margin-bottom:1.5rem; }
.contact__detail-label { font-family:var(--font-mono); font-size:0.68rem; text-transform:uppercase; letter-spacing:0.1em; color:var(--color-gold-dim); }
.contact__detail-value { color:var(--color-ivory); }
.contact-form { display:flex; flex-direction:column; gap:1.25rem; }

/* --- Footer --- */
.site-footer { border-top:var(--border-hairline); padding:var(--space-md) 3rem; display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:1rem; }
.site-footer__copy { font-family:var(--font-mono); font-size:0.72rem; color:var(--color-muted); }
.site-footer__links { display:flex; gap:1.5rem; list-style:none; }
.site-footer__links a { font-family:var(--font-mono); font-size:0.72rem; color:var(--color-muted); transition:color var(--duration-base) var(--ease-out); }
.site-footer__links a:hover { color:var(--color-gold-bright); }

/* --- Reveal --- */
.reveal { opacity:0; transform:translateY(24px); transition:opacity 0.8s var(--ease-out), transform 0.8s var(--ease-out); }
.reveal.is-visible { opacity:1; transform:translateY(0); }

@media (max-width:1000px) {
  .pillars { grid-template-columns:repeat(2,1fr); gap:2rem; }
  .pillar { border-left:none; padding:0; }
  .about, .contact { grid-template-columns:1fr; }
  .access-tiers { grid-template-columns:1fr; }
  .gallery { grid-template-columns:repeat(2,1fr); }
  .gallery__item--lg { grid-column:span 2; }
  .gallery__item--md { grid-column:span 2; grid-row:span 1; }
  .gallery__item--sm { grid-column:span 1; grid-row:span 1; }
}
/* Badge mobile — só aparece em telas pequenas, abaixo do header */
.status-mobile {
  display: none; /* escondido por padrão no desktop */
}

@media (max-width:720px) {
  .site-header { padding:1rem 1.25rem; }
  .site-nav__links { display:none; }
  .status-header { display:none; } /* some do header no mobile */

  /* Badge aparece como faixa abaixo do header */
  .status-mobile {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    position: fixed;
    top: 72px; /* logo abaixo do header */
    left: 0;
    right: 0;
    z-index: 99;
    padding: 0.5rem 1.25rem;
    background: rgba(10, 8, 6, 0.88);
    backdrop-filter: blur(8px);
    border-bottom: 1px solid rgba(201,164,92,0.2);
    justify-content: center;
  }

  .status-mobile__dot {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--color-muted);
    flex-shrink: 0;
    position: relative;
  }
  .status-mobile[data-status="disponivel"] .status-mobile__dot {
    background: var(--color-success);
    box-shadow: 0 0 6px rgba(122,155,110,0.7);
  }
  .status-mobile[data-status="disponivel"] .status-mobile__dot::after {
    content: '';
    position: absolute;
    inset: -3px;
    border-radius: 50%;
    background: var(--color-success);
    opacity: 0.3;
    animation: pulse 2s ease-out infinite;
  }
  .status-mobile[data-status="indisponivel"] .status-mobile__dot {
    background: var(--color-danger);
  }

  .status-mobile__word {
    font-family: var(--font-mono);
    font-size: 0.65rem;
    text-transform: uppercase;
    letter-spacing: 0.09em;
    font-weight: 500;
  }
  .status-mobile[data-status="disponivel"]   .status-mobile__word { color: var(--color-success); }
  .status-mobile[data-status="indisponivel"] .status-mobile__word { color: var(--color-danger); }

  .status-mobile__sep {
    font-family: var(--font-mono);
    font-size: 0.65rem;
    color: var(--color-gold-dim);
  }

  .status-mobile__text {
    font-family: var(--font-mono);
    font-size: 0.65rem;
    text-transform: uppercase;
    letter-spacing: 0.07em;
    color: var(--color-ivory-dim);
  }

  /* hero começa mais abaixo para não ficar atrás do badge mobile */
  .hero { padding-top: 9rem; }
  .section { padding:var(--space-lg) 1.5rem; }
  .site-footer { flex-direction:column; align-items:flex-start; }
}
