/* PRESTTIGE MAIN STYLESHEET — v2026-04-23 */

/* ============ TOPBAR ============ */
.topbar {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: var(--z-nav);
  padding: 0;
  background: transparent;
  border-bottom: 1px solid transparent;
  transition: background var(--transition-base), border-color var(--transition-base), backdrop-filter var(--transition-base);
}
.topbar.is-scrolled {
  background: rgba(10, 10, 10, 0.85);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border-bottom-color: rgba(139, 111, 58, 0.15);
}
.topbar-inner {
  max-width: var(--max-content-width);
  margin: 0 auto;
  padding: 0 var(--presttige-page-gutter);
  height: 64px;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  column-gap: var(--space-md);
}
@media (min-width: 768px) {
  .topbar-inner {
    height: 72px;
    padding: 0 var(--presttige-page-gutter);
    grid-template-columns: 1fr auto 1fr;
    column-gap: var(--space-xl);
  }
}
.topbar-logo {
  display: flex;
  align-items: center;
  width: 44px;
  height: 44px;
  flex-shrink: 0;
  margin-left: 0;
  grid-column: 1;
  justify-self: start;
}
@media (min-width: 768px) {
  .topbar-logo {
    width: 52px;
    height: 52px;
  }
}
.topbar-logo img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.topbar-nav {
  display: none;
  align-items: center;
  gap: var(--space-lg);
  grid-column: 2;
  min-width: 0;
}
@media (min-width: 768px) {
  .topbar-nav {
    display: flex;
    justify-content: center;
    justify-self: center;
  }
}
.topbar-link {
  font-family: var(--font-sans);
  font-size: var(--text-xs);
  font-weight: 400;
  letter-spacing: var(--tracking-widest);
  text-transform: uppercase;
  color: var(--whisper-grey);
  transition: color var(--transition-base);
}
.topbar-link:hover { color: var(--mercury-gold); opacity: 1; }
.topbar-cta {
  padding: 11px 22px;
  font-family: var(--font-sans);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--mercury-gold);
  background: transparent;
  border: 1px solid var(--mercury-gold);
  transition: all 600ms cubic-bezier(0.4, 0, 0.2, 1);
  cursor: pointer;
  white-space: nowrap;
  grid-column: 3;
  justify-self: end;
}
.topbar-cta:hover {
  background: var(--mercury-gold);
  color: var(--ink-black);
  opacity: 1;
}

/* ============ HERO ============ */
body {
  padding-top: 64px;
  background: var(--surface-cream);
}
@media (min-width: 768px) {
  body { padding-top: 72px; }
}

.hero {
  position: relative;
  min-height: 82vh;
  width: min(100%, calc(100% - var(--presttige-page-gutter) - var(--presttige-page-gutter)));
  max-width: none;
  margin: 0 auto;
  padding-top: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  background: transparent;
  border: none;
  outline: none;
  box-shadow: none;
  border-radius: 0;
}
@media (min-width: 768px) {
  .hero {
    min-height: 85vh;
  }
}
.hero-bg {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse at 30% 38%, rgba(201, 169, 97, 0.12), transparent 52%),
    radial-gradient(ellipse at 70% 56%, rgba(139, 111, 58, 0.08), transparent 60%),
    linear-gradient(
      180deg,
      rgba(10, 10, 10, 0.96) 0%,
      rgba(20, 20, 20, 0.82) 34%,
      rgba(18, 18, 18, 0.52) 68%,
      rgba(10, 10, 10, 0.14) 88%,
      rgba(10, 10, 10, 0) 100%
    );
  z-index: 0;
}
.hero-bg::after {
  content: '';
  position: absolute;
  inset: 0;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 400 400' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' /%3E%3CfeColorMatrix values='0 0 0 0 0.85 0 0 0 0 0.7 0 0 0 0 0.4 0 0 0 0.06 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  opacity: 0.34;
  pointer-events: none;
}
.hero-content {
  position: relative;
  z-index: 1;
  text-align: center;
  padding: 0 var(--presttige-page-gutter);
  max-width: 800px;
  transform: translateY(-2vh);
}
.hero-headline {
  font-family: var(--font-serif);
  font-size: clamp(46px, 9vw, 80px);
  font-weight: 400;
  line-height: 1.03;
  letter-spacing: -0.022em;
  color: var(--soft-gold);
  margin-bottom: var(--space-lg);
}
.hero-subheadline {
  font-family: var(--font-sans);
  font-size: clamp(16px, 2vw, 19px);
  font-weight: 300;
  line-height: var(--leading-relaxed);
  color: rgba(245, 242, 235, 0.7);
  letter-spacing: var(--tracking-wide);
  max-width: 520px;
  margin: 0 auto;
}

.title,
.card-title,
.verify-title,
.confirm-title {
  font-family: var(--font-serif);
}

/* ============ SECTIONS ============ */
.section {
  padding: var(--space-2xl) 0;
  background: transparent;
  position: relative;
  overflow: visible;
  isolation: isolate;
  min-height: calc(100svh - 64px);
  display: flex;
  align-items: center;
  scroll-margin-top: 64px;
}
.section::before {
  display: none;
}
.section-invitation {
  padding-bottom: var(--space-lg);
}
@media (max-width: 767px) {
  .section { padding: var(--space-xl) 0; }
  .section-invitation {
    padding-bottom: var(--space-md);
  }
}
.section-inner {
  max-width: var(--max-content-width);
  width: 100%;
  margin: 0 auto;
  padding: 0 var(--presttige-page-gutter);
  position: relative;
  z-index: 1;
}
.section-inner.narrow {
  max-width: 620px;
}
.section-title {
  font-family: var(--font-serif);
  font-size: clamp(32px, 5.5vw, 54px);
  font-weight: 400;
  line-height: 1.08;
  letter-spacing: -0.012em;
  color: var(--ink-black);
  margin-bottom: var(--space-xl);
  text-align: center;
}
.section-body p {
  font-family: var(--font-sans);
  font-size: var(--text-lg);
  font-weight: 300;
  line-height: 1.85;
  letter-spacing: 0;
  color: var(--ink-muted);
  margin-bottom: var(--space-lg);
}
.section-body p:last-child { margin-bottom: 0; }

@media (min-width: 768px) {
  .section {
    min-height: calc(100svh - 72px);
    scroll-margin-top: 72px;
  }
  .section-inner { padding: 0 var(--presttige-page-gutter); }
}

/* ============ HOW IT WORKS ============ */
.steps {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-2xl);
  max-width: 1000px;
  margin: 0 auto;
}
.step {
  text-align: center;
  padding: 0 var(--space-md);
}
.step-number {
  font-family: var(--font-mono);
  font-size: 10px;
  font-weight: 300;
  letter-spacing: 0.25em;
  color: var(--mercury-gold);
  margin-bottom: var(--space-md);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
}
.step-number::before,
.step-number::after {
  content: '';
  width: 12px;
  height: 1px;
  background: rgba(201, 169, 97, 0.25);
}
.step-title {
  font-family: var(--font-serif);
  font-size: 22px;
  font-weight: 400;
  color: var(--ink-black);
  margin-bottom: var(--space-md);
  letter-spacing: -0.01em;
}
.step-body {
  font-family: var(--font-sans);
  font-size: 15px;
  font-weight: 300;
  line-height: 1.75;
  color: var(--whisper-grey);
  max-width: 260px;
  margin: 0 auto;
}

@media (min-width: 768px) {
  .steps {
    grid-template-columns: repeat(3, 1fr);
    gap: var(--space-xl);
  }
}

/* ============ INVITATION CTA ============ */
.section-cta {
  margin-top: var(--space-2xl);
  text-align: center;
}
.btn-express-interest {
  display: inline-block;
  padding: 18px 48px;
  font-family: var(--font-sans);
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--ink-black);
  background: transparent;
  border: 1px solid var(--ink-black);
  transition: all 500ms ease;
  cursor: pointer;
}
.btn-express-interest:hover {
  background: var(--ink-black);
  color: var(--surface-cream);
  opacity: 1;
  transform: none;
}

/* ============ FOOTER ============ */
.footer {
  padding: 0;
  background: transparent;
  border-top: none;
  outline: none;
  box-shadow: none;
}
.footer-inner {
  max-width: var(--max-content-width);
  margin: 0 auto;
  padding: 0 var(--space-md);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-md);
  height: 64px;
}
.footer-links {
  display: flex;
  align-items: center;
  gap: var(--space-sm);
  font-family: var(--font-sans);
  font-size: 11px;
  font-weight: 300;
  letter-spacing: 0.05em;
  color: var(--whisper-grey);
  flex-wrap: nowrap;
  white-space: nowrap;
}
.footer-links a { transition: color var(--transition-base); }
.footer-links a:hover { color: var(--mercury-gold); opacity: 1; }
.footer-sep { color: var(--aged-bronze); opacity: 0.45; }
.footer-copyright {
  font-family: var(--font-sans);
  font-size: 11px;
  font-weight: 300;
  letter-spacing: 0.04em;
  color: var(--whisper-grey);
  opacity: 0.72;
  margin: 0;
}
@media (min-width: 768px) {
  .footer-inner {
    height: 72px;
  }
}
@media (max-width: 767px) {
  .footer-inner {
    gap: var(--space-sm);
  }
  .footer-links,
  .footer-copyright {
    font-size: 10px;
  }
}

/* ============ APPLY MODAL ============ */
.apply-modal {
  position: fixed;
  inset: 0;
  z-index: var(--z-modal);
  display: none;
  align-items: center;
  justify-content: center;
  padding: var(--space-md);
}
.apply-modal.is-open {
  display: flex;
}
.apply-modal-overlay {
  position: absolute;
  inset: 0;
  background: rgba(10, 10, 10, 0.92);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}
.apply-modal-content {
  position: relative;
  background: var(--ivory-white);
  color: var(--ink-black);
  max-width: 480px;
  width: 100%;
  padding: var(--space-xl) var(--space-lg);
  box-shadow: 0 40px 80px rgba(0,0,0,0.5);
}
@media (min-width: 768px) {
  .apply-modal-content { padding: var(--space-xl) var(--space-xl); }
}
.apply-modal-close {
  position: absolute;
  top: var(--space-md);
  right: var(--space-md);
  width: 24px;
  height: 24px;
  padding: 4px;
  color: var(--ink-black);
  opacity: 0.6;
  transition: opacity var(--transition-base);
}
.apply-modal-close:hover { opacity: 1; }

.apply-modal-title {
  font-family: var(--font-serif);
  font-size: 28px;
  font-weight: 400;
  color: var(--ink-black);
  margin-bottom: var(--space-md);
  letter-spacing: -0.01em;
  text-align: center;
}
.apply-modal-body {
  font-family: var(--font-sans);
  font-size: 13px;
  font-weight: 300;
  line-height: 1.75;
  color: var(--whisper-grey);
  margin-bottom: var(--space-xl);
  text-align: center;
}

.apply-form { display: flex; flex-direction: column; gap: 0; }
.apply-field {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin-bottom: var(--space-md);
}
.apply-field:last-of-type { margin-bottom: var(--space-lg); }
.apply-label {
  font-family: var(--font-mono);
  font-size: 10px;
  font-weight: 300;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--aged-bronze);
}
.apply-input {
  font-family: var(--font-serif);
  font-size: 18px;
  font-weight: 400;
  color: var(--ink-black);
  background: transparent;
  border: none;
  border-bottom: 1px solid rgba(138, 133, 128, 0.4);
  padding: 8px 0;
  transition: border-color var(--transition-base);
  outline: none;
  width: 100%;
}
.apply-input:focus {
  border-bottom-color: var(--mercury-gold);
}

.apply-submit {
  margin-top: var(--space-md);
  display: flex;
  justify-content: center;
}
.apply-btn-send {
  padding: 14px 48px;
  font-family: var(--font-sans);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: var(--ink-black);
  background: transparent;
  border: 1px solid var(--ink-black);
  transition: all 500ms ease;
  cursor: pointer;
}
.apply-btn-send:hover {
  background: var(--ink-black);
  color: var(--ivory-white);
  opacity: 1;
}

.apply-error {
  font-family: var(--font-sans);
  font-size: var(--text-sm);
  color: var(--oxblood);
  margin-top: var(--space-sm);
}

.apply-modal-success { text-align: center; padding: var(--space-lg) 0; }
.apply-success-title {
  font-family: var(--font-serif);
  font-size: var(--text-xl);
  font-weight: 400;
  color: var(--ink-black);
  margin-bottom: var(--space-md);
}
.apply-success-body {
  font-family: var(--font-sans);
  font-size: var(--text-sm);
  font-weight: 300;
  line-height: var(--leading-relaxed);
  color: var(--whisper-grey);
}

/* ============ COOKIE BANNER ALIGNMENT ============ */
.consent-banner, .consent-banner * {
  font-family: var(--font-sans) !important;
}
.consent-banner {
  background: var(--ink-black) !important;
  color: var(--ivory-white) !important;
  border-top: 1px solid rgba(139, 111, 58, 0.2) !important;
}

/* ============ SCROLL FADE-IN ============ */
.fade-in-on-scroll {
  opacity: 0;
  transform: translateY(16px);
  transition: opacity 600ms ease, transform 600ms ease;
}
.fade-in-on-scroll.is-visible {
  opacity: 1;
  transform: translateY(0);
}
@media (prefers-reduced-motion: reduce) {
  .fade-in-on-scroll {
    opacity: 1;
    transform: none;
    transition: none;
  }
}

/* ============ SECTION DIVIDERS ============ */
.section-divider {
  display: none;
}
.section-divider::before {
  content: '';
  display: block;
  width: 48px;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(201, 169, 97, 0.3), transparent);
}
.section-divider.on-charcoal {
  background: var(--deep-charcoal);
}

/* ============ HERO SCROLL HINT ============ */
.hero-scroll-hint {
  position: absolute;
  bottom: 32px;
  left: 50%;
  transform: translateX(-50%);
  pointer-events: none;
  opacity: 0.3;
  animation: hero-scroll-pulse 3s ease-in-out infinite;
}
.hero-scroll-line {
  display: block;
  width: 1px;
  height: 32px;
  background: linear-gradient(180deg, transparent, rgba(201, 169, 97, 0.4), transparent);
}
@keyframes hero-scroll-pulse {
  0%, 100% { opacity: 0.3; transform: translateX(-50%) translateY(0); }
  50% { opacity: 0.8; transform: translateX(-50%) translateY(6px); }
}
@media (prefers-reduced-motion: reduce) {
  .hero-scroll-hint { animation: none; opacity: 0.5; }
}

/* ============ LEGAL PAGES ============ */
.legal-page {
  color: var(--ivory-white);
  min-height: 100vh;
}
.legal-page .container {
  width: 100%;
  margin: 0 auto;
  padding-left: var(--presttige-page-gutter);
  padding-right: var(--presttige-page-gutter);
}
.legal-page .legal-back-row,
.legal-page .legal-header,
.legal-page .legal-content {
  max-width: calc(var(--max-text-width) + 32px);
}
.legal-page .legal-back-row {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  padding-top: var(--space-lg);
  padding-bottom: 0;
}
.legal-page .legal-header {
  padding-top: var(--space-sm);
  padding-bottom: var(--space-xl);
}
.legal-page .legal-content {
  padding-top: 0;
  padding-bottom: var(--space-2xl);
}
.legal-page .back {
  display: inline-block;
  font-family: var(--font-sans);
  font-size: var(--text-xs);
  font-weight: 300;
  letter-spacing: 0.08em;
  color: var(--whisper-grey);
  opacity: 0.78;
  text-decoration: none;
  border-bottom: none;
}
.legal-page .back::before,
.legal-page .back::after { content: none; display: none; }
.legal-page .back:hover {
  color: var(--mercury-gold);
  opacity: 1;
}
.legal-page .legal-container,
.legal-page .content {
  max-width: var(--max-text-width);
  margin: 0 auto;
}
.legal-page h1 {
  font-family: var(--font-serif);
  font-size: clamp(28px, 5vw, 48px);
  font-weight: 400;
  color: var(--soft-gold);
  margin-bottom: var(--space-xl);
  letter-spacing: var(--tracking-tight);
}
.legal-page h2 {
  font-family: var(--font-serif);
  font-size: var(--text-xl);
  font-weight: 400;
  color: var(--ivory-white);
  margin-top: var(--space-xl);
  margin-bottom: var(--space-md);
}
.legal-page h3 {
  font-family: var(--font-sans);
  font-size: var(--text-lg);
  font-weight: 500;
  color: var(--ivory-white);
  margin-top: var(--space-lg);
  margin-bottom: var(--space-sm);
}
.legal-page p, .legal-page li {
  font-family: var(--font-sans);
  font-size: var(--text-base);
  font-weight: 300;
  line-height: var(--leading-loose);
  color: var(--ivory-white);
  margin-bottom: var(--space-md);
}
.legal-page .footer-copyright {
  font-size: 11px;
}
.legal-page .footer-links a {
  color: var(--whisper-grey);
  border-bottom: none;
}
.legal-page .footer-links a:hover {
  color: var(--mercury-gold);
  opacity: 1;
}
.legal-page .legal-content a,
.legal-page .legal-container a,
.legal-page .content a {
  color: var(--mercury-gold);
  border-bottom: 1px solid rgba(201,169,97,0.3);
}
.legal-page ul, .legal-page ol { padding-left: var(--space-lg); margin-bottom: var(--space-md); }
@media (max-width: 767px) {
  .legal-page .footer-copyright {
    font-size: 10px;
  }
}
@media (min-width: 768px) {
  .legal-page .container {
    padding-left: var(--presttige-page-gutter);
    padding-right: var(--presttige-page-gutter);
  }
  .legal-page .legal-back-row,
  .legal-page .legal-header,
  .legal-page .legal-content {
    max-width: calc(var(--max-text-width) + 80px);
  }
}
