/* ========================================
   GUEST — Hotels & Lodging, New York
   Classic & Elegant | Burgundy + Blush
   ======================================== */

*, *::before, *::after {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
  scroll-padding-top: 80px;
}

body {
  margin: 0;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* ---- HERO GRADIENT ---- */
.hero-gradient {
  background: linear-gradient(
    135deg,
    #3A0F17 0%,
    #5C1F2B 20%,
    #7B2D3B 40%,
    #A82040 55%,
    #cc2d58 70%,
    #D06E52 85%,
    #F5D5C8 100%
  );
}

/* ---- HERO PATTERN ---- */
.hero-pattern {
  background-image: 
    radial-gradient(circle at 25% 25%, rgba(255,255,255,0.03) 0%, transparent 50%),
    radial-gradient(circle at 75% 75%, rgba(255,255,255,0.03) 0%, transparent 50%);
}

/* ---- NAV ---- */
.nav-link {
  position: relative;
}

.nav-link::after {
  content: '';
  position: absolute;
  bottom: -4px;
  left: 0;
  width: 0;
  height: 1px;
  background-color: currentColor;
  transition: width 0.3s ease;
}

.nav-link:hover::after {
  width: 100%;
}

/* ---- MOBILE MENU ---- */
.menu-line {
  transition: all 0.3s ease;
}

#menu-toggle.active .menu-line:nth-child(1) {
  transform: rotate(45deg) translate(5px, 5px);
}

#menu-toggle.active .menu-line:nth-child(2) {
  opacity: 0;
}

#menu-toggle.active .menu-line:nth-child(3) {
  width: 1.5rem;
  transform: rotate(-45deg) translate(5px, -5px);
}

#mobile-menu.open {
  opacity: 1;
  pointer-events: all;
}

.mobile-link {
  transition: all 0.3s ease;
}

.mobile-link:hover {
  letter-spacing: 0.1em;
}

/* ---- SCROLL REVEAL ---- */
.reveal {
  opacity: 1;
  transform: translateY(0);
  transition: opacity 0.8s ease, transform 0.8s ease;
}

.reveal.revealed {
  opacity: 1;
  transform: translateY(0);
}

/* ---- BUTTON HOVER EFFECTS ---- */
a[href="#rooms"],
a[href="#contact"] {
  position: relative;
  overflow: hidden;
}

/* ---- FORM INPUTS ---- */
input:focus,
textarea:focus {
  outline: none;
}

/* ---- IMAGE LOADING ---- */
img {
  image-rendering: -webkit-optimize-contrast;
  image-rendering: crisp-edges;
}

/* ---- REDUCED MOTION ---- */
@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
  
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
  
  .reveal {
    opacity: 1;
    transform: none;
  }
}

/* ---- MOBILE RESPONSIVE ---- */
@media (max-width: 768px) {
  .hero-gradient {
    background: linear-gradient(
      160deg,
      #3A0F17 0%,
      #5C1F2B 25%,
      #7B2D3B 45%,
      #A82040 60%,
      #cc2d58 75%,
      #D06E52 90%,
      #F5D5C8 100%
    );
  }
}

/* ---- ACCESSIBILITY ---- */
:focus-visible {
  outline: 2px solid #A82040;
  outline-offset: 2px;
}

/* ---- PRINT ---- */
@media print {
  #site-header,
  #mobile-menu {
    display: none;
  }
  
  .hero-gradient {
    background: #7B2D3B !important;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }
}
