/* ============================================
   NAVBAR.CSS — Navigation Bar Styles
   Interior Design Website | Black & Gold Theme
   ============================================ */

/* ── BASE NAVBAR ── */
.navbar {
  position: fixed;
  top: 0; left: 0; right: 0;
  z-index: var(--z-nav);
  height: var(--nav-height);
  display: flex;
  align-items: center;
  transition: background var(--trans-base),
              height var(--trans-base),
              box-shadow var(--trans-base),
              backdrop-filter var(--trans-base);
  animation: navbarSlideDown 0.7s var(--ease-out) forwards;
}

/* Transparent on top of hero */
.navbar.nav-transparent {
  background: linear-gradient(to bottom, rgba(20,10,5,0.75) 0%, rgba(20,10,5,0) 100%);
  border-bottom: none;
}

/* Solid after scroll */
.navbar.nav-scrolled {
  height: var(--nav-height-scrolled);
  background: rgba(30,18,12,0.97);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
  border-bottom: 1px solid var(--black-border);
  box-shadow: 0 4px 32px rgba(192,57,43,0.12);
}

/* ── INNER WRAPPER ── */
.navbar-inner {
  width: 100%;
  max-width: var(--container-max);
  margin-inline: auto;
  padding-inline: var(--section-px);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--sp-8);
}

/* ── LOGO IMAGE ── */
.navbar-logo-img {
  height: 80px;
  width: auto;
  object-fit: contain;
  display: block;
  transition: opacity var(--trans-fast);
  background: transparent;
  /* Transparent PNG — no background bleed */
  image-rendering: -webkit-optimize-contrast;
}

.navbar-logo:hover .navbar-logo-img { opacity: 0.85; }

/* Hide old text logo elements when image is used */
.navbar-logo-mark,
.navbar-logo-text { display: none; }

/* ── LOGO ── */
.navbar-logo {
  display: flex;
  align-items: center;
  gap: 0;
  flex-shrink: 0;
  text-decoration: none;
  transition: opacity var(--trans-fast);
  background: transparent;
  line-height: 0;
}

.navbar-logo:hover { opacity: 0.85; }

.navbar-logo-mark {
  width: 40px;
  height: 40px;
  border: 1.5px solid var(--gold-primary);
  border-radius: var(--radius-sm);
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  overflow: hidden;
  flex-shrink: 0;
}

.navbar-logo-mark::before {
  content: '';
  position: absolute;
  inset: 3px;
  border: 1px solid var(--gold-dim);
  border-radius: 2px;
}

.navbar-logo-letter {
  font-family: var(--font-display);
  font-size: 1.2rem;
  font-weight: 700;
  background: var(--grad-gold);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  position: relative;
  z-index: 1;
}

.navbar-logo-text {
  display: flex;
  flex-direction: column;
  line-height: 1;
}

.navbar-logo-name {
  font-family: var(--font-display);
  font-size: 1.1rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  color: var(--text-primary);
}

.navbar-logo-name span {
  color: var(--gold-primary);
}

.navbar-logo-sub {
  font-size: var(--text-xs);
  color: var(--text-muted);
  letter-spacing: var(--tracking-widest);
  text-transform: uppercase;
  margin-top: 2px;
}

/* ── NAV LINKS ── */
.navbar-links {
  display: flex;
  align-items: center;
  gap: var(--sp-1);
  list-style: none;
}

.navbar-links a {
  display: block;
  padding: 0.45rem 1rem;
  font-size: var(--text-base);
  font-weight: var(--weight-semi);
  letter-spacing: var(--tracking-wide);
  color: var(--text-secondary);
  text-decoration: none;
  position: relative;
  transition: color var(--trans-base);
  white-space: nowrap;
}

.navbar-links a::after {
  content: '';
  position: absolute;
  bottom: 0; left: 50%; right: 50%;
  height: 1px;
  background: var(--grad-gold);
  transition: left var(--trans-base), right var(--trans-base);
}

.navbar-links a:hover,
.navbar-links a.active {
  color: var(--gold-bright);
}

.navbar-links a:hover::after,
.navbar-links a.active::after {
  left: 0.85rem;
  right: 0.85rem;
}

/* ── NAVBAR CTA ── */
.navbar-cta {
  display: flex;
  align-items: center;
  gap: var(--sp-3);
  flex-shrink: 0;
}

.navbar-cta .btn {
  padding: 0.55rem 1.4rem;
  font-size: var(--text-xs);
}

/* ── HAMBURGER ── */
.navbar-toggle {
  display: none;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  width: 42px;
  height: 42px;
  border-radius: var(--radius-md);
  border: var(--border-gold);
  background: transparent;
  cursor: pointer;
  gap: 5px;
  transition: background var(--trans-fast);
  flex-shrink: 0;
}

.navbar-toggle:hover {
  background: var(--gold-glow);
}

.navbar-toggle span {
  display: block;
  width: 20px;
  height: 1.5px;
  background: var(--gold-primary);
  border-radius: 2px;
  transition: transform var(--trans-base), opacity var(--trans-base), width var(--trans-base);
  transform-origin: center;
}

/* Hamburger → X animation */
.navbar-toggle.open span:nth-child(1) {
  transform: translateY(6.5px) rotate(45deg);
}
.navbar-toggle.open span:nth-child(2) {
  opacity: 0;
  width: 0;
}
.navbar-toggle.open span:nth-child(3) {
  transform: translateY(-6.5px) rotate(-45deg);
}

/* ── MOBILE MENU ── */
.navbar-mobile {
  position: fixed;
  top: var(--nav-height);
  left: 0; right: 0;
  background: rgba(30,18,12,0.99);
  backdrop-filter: blur(24px);
  -webkit-backdrop-filter: blur(24px);
  border-bottom: var(--border-gold);
  padding: var(--sp-6) var(--section-px) var(--sp-8);
  transform: translateY(-110%);
  opacity: 0;
  transition: transform 0.45s var(--ease-inout),
              opacity 0.3s var(--ease-out);
  z-index: calc(var(--z-nav) - 1);
  max-height: calc(100vh - var(--nav-height));
  overflow-y: auto;
}

.navbar-mobile.open {
  transform: translateY(0);
  opacity: 1;
}

.navbar-mobile-links {
  list-style: none;
  margin-bottom: var(--sp-6);
}

.navbar-mobile-links li {
  border-bottom: 1px solid var(--black-border);
}

.navbar-mobile-links a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--sp-4) 0;
  font-size: var(--text-lg);
  font-family: var(--font-display);
  font-weight: var(--weight-bold);
  color: var(--text-primary);
  text-decoration: none;
  transition: color var(--trans-fast);
}

.navbar-mobile-links a::after {
  content: '→';
  color: var(--gold-dim);
  transition: color var(--trans-fast), transform var(--trans-fast);
}

.navbar-mobile-links a:hover {
  color: var(--gold-primary);
}
.navbar-mobile-links a:hover::after {
  color: var(--gold-primary);
  transform: translateX(4px);
}

.navbar-mobile-links a.active {
  color: var(--gold-bright);
}

.navbar-mobile-cta {
  display: flex;
  flex-direction: column;
  gap: var(--sp-3);
}

.navbar-mobile-cta .btn {
  width: 100%;
  justify-content: center;
  padding: 0.85rem;
  font-size: var(--text-sm);
}

.navbar-mobile-info {
  margin-top: var(--sp-6);
  padding-top: var(--sp-6);
  border-top: var(--border-thin);
  display: flex;
  gap: var(--sp-6);
  flex-wrap: wrap;
}

.navbar-mobile-info-item {
  font-size: var(--text-xs);
  color: var(--text-muted);
  letter-spacing: var(--tracking-wide);
}

.navbar-mobile-info-item span {
  display: block;
  color: var(--gold-primary);
  font-weight: var(--weight-medium);
  margin-top: var(--sp-1);
}

/* ── MENU OVERLAY ── */
.navbar-overlay {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(10,5,3,0.75);
  z-index: calc(var(--z-nav) - 2);
  opacity: 0;
  transition: opacity var(--trans-base);
}

.navbar-overlay.open {
  display: block;
  opacity: 1;
}

/* ── RESPONSIVE ── */
@media (max-width: 1024px) {
  .navbar-links { display: none; }
  .navbar-toggle { display: flex; }
  .navbar-cta { display: none; }
}

@media (max-width: 480px) {
  .navbar-logo-sub { display: none; }
  .navbar-logo-name { font-size: 1rem; }
}

/* ══ MOBILE FIX: 360px – 430px ══ */
@media (max-width: 430px) {
  .navbar { height: 62px; }
  .navbar-inner { padding-inline: 0.875rem; gap: 0; }
  .navbar-logo-img {
    height: 70px;
    margin-top:  1px;      /* ← space above logo */
  }
  .navbar-mobile { top: 62px; padding: 1.25rem 1rem 1.75rem; }
  .navbar-mobile-links a { font-size: 1.2rem; padding: 0.875rem 0; }
  .navbar-mobile-cta .btn { font-size: 0.82rem; padding: 0.75rem; }
  .navbar-mobile-info { gap: 1rem; margin-top: 1rem; padding-top: 1rem; }
}

/* ══ FIX: Force GPU compositing on navbar to fix mobile repaint bug ══ */
.navbar {
  will-change: transform;
  -webkit-transform: translateZ(0);
  transform: translateZ(0);
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
}

/* Fix nav-scrolled on pages that start scrolled */
.navbar.nav-scrolled {
  -webkit-transform: translate3d(0,0,0);
  transform: translate3d(0,0,0);
}

/* Fix contact-hero and all inner page heroes padding */
.contact-hero,
.services-hero,
.portfolio-hero,
.policy-hero,
.about-story,
.page-hero,
.sd-hero {
  padding-top: calc(var(--nav-height-scrolled) + 2.5rem) !important;
}
