/* ============================================
   BOLD INTERNATIONAL — Premium Luxury CSS
   ============================================ */

@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,500;0,600;0,700;1,400;1,500&family=Cormorant+Garamond:wght@300;400;500;600&family=Poppins:wght@200;300;400;500;600;700&display=swap');

:root {
  /* Primary */
  --white: #FFFFFF;
  --soft-ivory: #F8F6F3;
  --warm-stone: #E8E4DE;
  --matte-black: #1A1A1A;
  --charcoal-grey: #2C2C2C;

  /* Accent */
  --champagne-gold: #D4AF64;
  --champagne-light: #E8D5A3;
  --frost-blue: #D6E4ED;
  --silver-chrome: #C0C0C0;
  --glass: rgba(255, 255, 255, 0.15);

  /* Functional */
  --text-primary: #1A1A1A;
  --text-secondary: #5A5A5A;
  --text-light: #8A8A8A;
  --text-on-dark: #F5F5F5;
  --border-light: rgba(0, 0, 0, 0.06);
  --border-glass: rgba(255, 255, 255, 0.25);
  --shadow-soft: 0 10px 40px rgba(0, 0, 0, 0.06);
  --shadow-medium: 0 20px 60px rgba(0, 0, 0, 0.1);
  --shadow-glass: 0 8px 32px rgba(0, 0, 0, 0.08);
  --shadow-gold: 0 4px 20px rgba(212, 175, 100, 0.2);

  /* Typography */
  --font-serif: 'Cormorant Garamond', Georgia, serif;
  --font-sans: 'Poppins', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;

  /* Spacing */
  --section-padding: 100px 0;
  --container-max: 1440px;
  --container-wide: 1680px;

  /* Transitions */
  --ease-out-expo: cubic-bezier(0.19, 1, 0.22, 1);
  --ease-smooth: cubic-bezier(0.25, 0.46, 0.45, 0.94);
  --transition-premium: 0.6s var(--ease-out-expo);
  --transition-fast: 0.3s var(--ease-out-expo);

  /* Glass */
  --glass-bg: rgba(255, 255, 255, 0.08);
  --glass-border: rgba(255, 255, 255, 0.15);
  --glass-blur: 20px;
}

/* ============================================
   RESET & BASE
   ============================================ */

*, *::before, *::after {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

body {
  font-family: var(--font-sans);
  font-weight: 300;
  color: var(--text-primary);
  background: var(--white);
  overflow-x: hidden;
  line-height: 1.6;
  cursor: none;
}

::selection {
  background: var(--champagne-gold);
  color: var(--white);
}

img {
  max-width: 100%;
  height: auto;
  display: block;
}

a {
  text-decoration: none;
  color: inherit;
  transition: var(--transition-fast);
}

ul { list-style: none; }

/* ============================================
   CUSTOM CURSOR
   ============================================ */

.cursor-dot {
  width: 10px;
  height: 10px;
  background: radial-gradient(circle at 35% 35%, rgba(212,175,100,0.9), rgba(212,175,100,0.4));
  border-radius: 50%;
  position: fixed;
  pointer-events: none;
  z-index: 99999;
  transform: translate(-50%, -50%);
  transition: width 0.3s, height 0.3s, background 0.3s;
  box-shadow: 0 0 12px rgba(212,175,100,0.3), inset 0 2px 4px rgba(255,255,255,0.3);
}

.cursor-dot::after {
  content: '';
  position: absolute;
  top: 2px;
  left: 3px;
  width: 3px;
  height: 3px;
  background: rgba(255,255,255,0.5);
  border-radius: 50%;
}

.cursor-ring {
  width: 44px;
  height: 44px;
  border: 2px solid rgba(212, 175, 100, 0.35);
  border-radius: 50%;
  position: fixed;
  pointer-events: none;
  z-index: 99998;
  transform: translate(-50%, -50%);
  transition: width 0.5s var(--ease-out-expo), height 0.5s var(--ease-out-expo), border-color 0.3s, border-radius 0.3s;
  box-shadow: 
    0 0 20px rgba(212,175,100,0.08),
    inset 0 0 15px rgba(212,175,100,0.04);
}

/* Pipe-like segments on cursor ring */
.cursor-ring::before {
  content: '';
  position: absolute;
  top: -3px;
  left: -3px;
  right: -3px;
  bottom: -3px;
  border: 1px dashed rgba(212, 175, 100, 0.15);
  border-radius: 50%;
  animation: ringSpin 8s linear infinite;
}

@keyframes ringSpin {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}

.cursor-ring.hover {
  width: 80px;
  height: 80px;
  border-color: var(--champagne-gold);
  background: rgba(212, 175, 100, 0.06);
  border-radius: 50%;
  box-shadow: 0 0 40px rgba(212,175,100,0.15), inset 0 0 25px rgba(212,175,100,0.06);
}

.cursor-ring.hover::before {
  border-color: rgba(212, 175, 100, 0.3);
  animation-duration: 4s;
}

.cursor-ring .ripple-ring {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 100%;
  height: 100%;
  border: 1px solid rgba(212,175,100,0.15);
  border-radius: inherit;
  transform: translate(-50%, -50%) scale(1);
  animation: cursorRipple 2s ease-out infinite;
  pointer-events: none;
}

@keyframes cursorRipple {
  0% { transform: translate(-50%, -50%) scale(1); opacity: 0.5; }
  100% { transform: translate(-50%, -50%) scale(2.5); opacity: 0; }
}

.cursor-ring.hover .ripple-ring {
  animation-duration: 1.2s;
}

/* Water drop cursor trail */
.cursor-droplet {
  position: fixed;
  pointer-events: none;
  z-index: 99996;
  border-radius: 50% 50% 50% 50% / 40% 40% 60% 60%;
  background: radial-gradient(circle at 30% 30%, rgba(212,175,100,0.3), transparent);
  opacity: 0;
  animation: dropletFade 1.2s ease-out forwards;
}

@keyframes dropletFade {
  0% { opacity: 0.5; transform: translateY(0) scale(0.8); }
  50% { opacity: 0.2; }
  100% { opacity: 0; transform: translateY(30px) scale(0.4); }
}

/* Water splash on product hover */
.product-card:hover .cursor-ring {
  --splash-active: 1;
}

/* ============================================
   TYPOGRAPHY
   ============================================ */

h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-serif);
  font-weight: 400;
  line-height: 1.15;
  letter-spacing: -0.02em;
}

.display-heading {
  font-size: clamp(2.8rem, 7vw, 7rem);
  font-weight: 300;
  line-height: 1.15;
  letter-spacing: -0.02em;
  text-align: center;
}

.heading-line {
  display: block;
}

.heading-xl {
  font-size: clamp(2.5rem, 5vw, 5.5rem);
  font-weight: 400;
  line-height: 1.1;
  letter-spacing: -0.02em;
}

.heading-lg {
  font-size: clamp(2rem, 3.5vw, 4rem);
  font-weight: 400;
  line-height: 1.15;
}

.heading-md {
  font-size: clamp(1.5rem, 2.5vw, 2.5rem);
  font-weight: 400;
  line-height: 1.2;
}

.heading-sm {
  font-size: clamp(1.125rem, 1.5vw, 1.5rem);
  font-weight: 500;
  line-height: 1.3;
}

.body-large {
  font-size: clamp(1.125rem, 1.2vw, 1.25rem);
  font-weight: 300;
  line-height: 1.7;
  color: var(--text-secondary);
}

.body-regular {
  font-size: clamp(0.9375rem, 1vw, 1rem);
  font-weight: 300;
  line-height: 1.7;
  color: var(--text-secondary);
}

.text-gold {
  color: var(--champagne-gold);
}

.text-uppercase {
  text-transform: uppercase;
  letter-spacing: 0.15em;
  font-weight: 400;
  font-size: 0.75rem;
}

.section-label {
  display: inline-block;
  font-family: var(--font-sans);
  font-size: 0.7rem;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.2em;
  color: var(--champagne-gold);
  margin-bottom: 1rem;
  position: relative;
}

.section-label::before {
  content: '';
  display: inline-block;
  width: 30px;
  height: 1px;
  background: var(--champagne-gold);
  margin-right: 12px;
  vertical-align: middle;
}

/* ============================================
   CONTAINERS
   ============================================ */

.container-premium {
  width: 100%;
  max-width: var(--container-max);
  margin: 0 auto;
  padding: 0 40px;
}

.container-wide {
  width: 100%;
  max-width: var(--container-wide);
  margin: 0 auto;
  padding: 0 120px;
}

.section {
  padding: var(--section-padding);
  position: relative;
}

.section-dark {
  background: var(--matte-black);
  color: var(--text-on-dark);
}

.section-dark .body-large,
.section-dark .body-regular {
  color: rgba(255, 255, 255, 0.7);
}

.section-ivory {
  background: var(--soft-ivory);
}

/* ============================================
   BUTTONS
   ============================================ */

.btn-premium {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  padding: 16px 36px;
  font-family: var(--font-sans);
  font-size: 0.8rem;
  font-weight: 400;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  border: none;
  cursor: pointer;
  border-radius: 0;
  transition: all 0.5s var(--ease-out-expo);
  position: relative;
  overflow: hidden;
}

.btn-premium::before {
  content: '';
  position: absolute;
  top: 0;
  left: -100%;
  width: 100%;
  height: 100%;
  background: rgba(255, 255, 255, 0.1);
  transition: left 0.6s var(--ease-out-expo);
}

.btn-premium:hover::before {
  left: 100%;
}

.btn-primary {
  background: var(--matte-black);
  color: var(--white);
}

.btn-primary:hover {
  background: var(--charcoal-grey);
  transform: translateY(-2px);
  box-shadow: var(--shadow-medium);
  color: var(--white);
}

.btn-outline {
  background: transparent;
  color: var(--matte-black);
  border: 1px solid var(--matte-black);
}

.btn-outline:hover {
  background: var(--matte-black);
  color: var(--white);
  transform: translateY(-2px);
}

.btn-outline-light {
  background: transparent;
  color: var(--white);
  border: 1px solid rgba(255, 255, 255, 0.3);
}

.btn-outline-light:hover {
  background: var(--white);
  color: var(--matte-black);
  border-color: var(--white);
  transform: translateY(-2px);
}

.btn-gold {
  background: var(--champagne-gold);
  color: var(--white);
}

.btn-gold:hover {
  background: #C4A054;
  transform: translateY(-2px);
  box-shadow: var(--shadow-gold);
  color: var(--white);
}

.btn-text {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: var(--font-sans);
  font-size: 0.8rem;
  font-weight: 400;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  color: var(--matte-black);
  background: none;
  border: none;
  cursor: pointer;
  padding: 0;
  position: relative;
  transition: var(--transition-fast);
}

.btn-text::after {
  content: '';
  position: absolute;
  bottom: -2px;
  left: 0;
  width: 100%;
  height: 1px;
  background: var(--matte-black);
  transform: scaleX(0);
  transform-origin: right;
  transition: transform 0.4s var(--ease-out-expo);
}

.btn-text:hover::after {
  transform: scaleX(1);
  transform-origin: left;
}

.btn-text:hover {
  gap: 16px;
}

.btn-text-light {
  color: var(--white);
}

.btn-text-light::after {
  background: var(--white);
}

.btn-premium:disabled {
  opacity: 0.4;
  cursor: not-allowed;
}

/* ============================================
   TOP ANNOUNCEMENT BAR
   ============================================ */

.announcement-bar {
  position: relative;
  background: var(--matte-black);
  color: rgba(255,255,255,0.7);
  font-family: var(--font-sans);
  font-size: 0.65rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  transition: height 0.4s var(--ease-out-expo), opacity 0.4s var(--ease-out-expo);
  z-index: 1;
}

.announcement-bar.hidden {
  height: 0;
  opacity: 0;
}

.announcement-track {
  display: flex;
  white-space: nowrap;
  animation: marquee 30s linear infinite;
}

.announcement-track span {
  padding: 0 40px;
  font-weight: 300;
}

.announcement-track span strong {
  color: var(--champagne-gold);
  font-weight: 500;
}

@keyframes marquee {
  0% { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}

/* ============================================
   NAVIGATION
   ============================================ */

.navbar {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 9999;
  padding: 18px 0;
  transition: all 0.3s var(--ease-out-expo);
  background: rgba(0,0,0,0.2);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  border-bottom: 1px solid transparent;
}

.navbar.scrolled {
  background: rgba(255, 255, 255, 0.95);
  backdrop-filter: blur(24px);
  -webkit-backdrop-filter: blur(24px);
  padding: 10px 0;
  box-shadow: 0 4px 30px rgba(0,0,0,0.04), 0 1px 0 rgba(0,0,0,0.04);
  border-bottom: 1px solid rgba(0,0,0,0.03);
}

.navbar.scrolled .navbar-brand,
.navbar.scrolled .nav-links > li > a,
.navbar.scrolled .nav-actions button,
.navbar.scrolled .nav-actions a {
  color: var(--text-primary);
}

.navbar.scrolled .nav-links > li > a:hover,
.navbar.scrolled .nav-links > li > a.active {
  color: var(--matte-black);
}

/* Subtle dark overlay behind header when over hero */
.navbar::after {
  content: '';
  position: absolute;
  bottom: -60px;
  left: 0;
  right: 0;
  height: 60px;
  background: linear-gradient(to bottom, rgba(0,0,0,0.08), transparent);
  pointer-events: none;
  opacity: 0;
  transition: opacity 0.3s;
}

.navbar:not(.scrolled)::after {
  opacity: 1;
}

.navbar-inner {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  position: relative;
}

.nav-left {
  display: flex;
  align-items: center;
}

.nav-right {
  display: flex;
  align-items: center;
  justify-content: flex-end;
}

.navbar-brand {
  font-family: var(--font-serif);
  font-size: 1.6rem;
  font-weight: 400;
  letter-spacing: -0.03em;
  color: var(--white);
  transition: var(--transition-fast);
  text-decoration: none;
  position: relative;
  z-index: 2;
  display: block;
}

.navbar.scrolled .navbar-brand {
  color: var(--matte-black);
}

.navbar-brand span {
  color: var(--champagne-gold);
}

.nav-links {
  display: flex;
  align-items: center;
  gap: 32px;
  justify-self: center;
  margin: 0;
  padding: 0;
  list-style: none;
}

.nav-links > li {
  position: relative;
  list-style: none;
  margin: 0;
  padding: 0;
}

.nav-links > li > a {
  font-family: var(--font-sans);
  font-size: 0.7rem;
  font-weight: 400;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  color: rgba(255,255,255,0.95);
  padding: 6px 0;
  position: relative;
  transition: color 0.3s var(--ease-out-expo);
  text-decoration: none;
}

.navbar.scrolled .nav-links > li > a {
  color: var(--text-secondary);
}

.nav-links > li > a::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 1px;
  background: var(--champagne-gold);
  transform: scaleX(0);
  transform-origin: right;
  transition: transform 0.4s var(--ease-out-expo);
}

.nav-links > li > a:hover::after,
.nav-links > li > a.active::after {
  transform: scaleX(1);
  transform-origin: left;
}

.nav-links > li > a:hover,
.nav-links > li > a.active {
  color: var(--champagne-gold);
}

.navbar.scrolled .nav-links > li > a:hover,
.navbar.scrolled .nav-links > li > a.active {
  color: var(--matte-black);
}

/* Mega Menu */
.mega-menu {
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%) translateY(12px);
  background: rgba(255,255,255,0.98);
  backdrop-filter: blur(24px);
  border: 1px solid var(--border-light);
  padding: 40px;
  min-width: 600px;
  opacity: 0;
  visibility: hidden;
  transition: all 0.4s var(--ease-out-expo);
  pointer-events: none;
}

.nav-links > li:hover .mega-menu {
  opacity: 1;
  visibility: visible;
  transform: translateX(-50%) translateY(0);
  pointer-events: all;
}

.mega-menu-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 32px;
}

.mega-menu-grid .col-span-2 {
  grid-column: span 2;
}

.mega-menu-sub {
  margin-top: 12px;
  padding-left: 12px;
  border-left: 1px solid var(--border-light);
}

.mega-menu-sub a {
  font-size: 0.78rem;
  padding: 4px 0;
  display: flex;
  align-items: center;
  gap: 6px;
}

.mega-menu-sub a::before {
  content: '—';
  color: var(--champagne-gold);
  font-size: 0.6rem;
  opacity: 0.5;
}

.mega-menu-col .count {
  font-size: 0.6rem;
  color: var(--text-light);
  font-weight: 300;
  margin-left: 4px;
}

.mega-menu-col h4 {
  font-family: var(--font-sans);
  font-size: 0.6rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  color: var(--champagne-gold);
  margin-bottom: 16px;
}

.mega-menu-col a {
  display: block;
  font-family: var(--font-sans);
  font-size: 0.85rem;
  color: var(--text-secondary);
  padding: 6px 0;
  transition: var(--transition-fast);
  text-decoration: none;
}

.mega-menu-col a:hover {
  color: var(--matte-black);
  padding-left: 4px;
}

.mega-menu-featured {
  margin-top: 24px;
  padding-top: 24px;
  border-top: 1px solid var(--border-light);
  display: flex;
  gap: 16px;
  align-items: center;
}

.mega-menu-featured img {
  width: 60px;
  height: 60px;
  object-fit: cover;
}

.mega-menu-featured div {
  font-size: 0.8rem;
  color: var(--text-secondary);
}

.mega-menu-featured strong {
  display: block;
  font-family: var(--font-serif);
  font-size: 1rem;
  color: var(--matte-black);
  margin-bottom: 2px;
}

/* Nav Actions */
.nav-actions {
  display: flex;
  align-items: center;
  gap: 16px;
}

.nav-actions button,
.nav-actions a {
  background: none;
  border: none;
  cursor: pointer;
  color: rgba(255,255,255,0.95);
  font-size: 1.05rem;
  padding: 6px;
  transition: var(--transition-fast);
  position: relative;
  text-decoration: none;
  display: flex;
  align-items: center;
  justify-content: center;
}

.navbar.scrolled .nav-actions button,
.navbar.scrolled .nav-actions a {
  color: var(--text-secondary);
}

.nav-actions button:hover,
.nav-actions a:hover {
  color: var(--champagne-gold);
}

.cart-badge {
  position: absolute;
  top: 0;
  right: 0;
  width: 15px;
  height: 15px;
  background: var(--champagne-gold);
  color: var(--white);
  font-size: 0.55rem;
  font-weight: 600;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* Hamburger */
.hamburger {
  display: none;
  flex-direction: column;
  gap: 5px;
  cursor: pointer;
  padding: 4px;
  background: none;
  border: none;
  z-index: 1002;
}

.hamburger span {
  width: 24px;
  height: 1.5px;
  background: var(--white);
  transition: all 0.3s var(--ease-out-expo);
  display: block;
}

.navbar.scrolled .hamburger span {
  background: var(--matte-black);
}

.hamburger.active span:nth-child(1) {
  transform: rotate(45deg) translate(5px, 5px);
}

.hamburger.active span:nth-child(2) {
  opacity: 0;
}

.hamburger.active span:nth-child(3) {
  transform: rotate(-45deg) translate(5px, -5px);
}

/* ============================================
   SEARCH OVERLAY
   ============================================ */

.search-overlay {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(0,0,0,0.85);
  backdrop-filter: blur(30px);
  -webkit-backdrop-filter: blur(30px);
  z-index: 5000;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  padding: 160px 40px 40px;
  opacity: 0;
  visibility: hidden;
  transition: all 0.5s var(--ease-out-expo);
}

.search-overlay.open {
  opacity: 1;
  visibility: visible;
}

.search-overlay-inner {
  max-width: 680px;
  width: 100%;
}

.search-overlay-input-wrap {
  position: relative;
  border-bottom: 1px solid rgba(255,255,255,0.15);
  padding-bottom: 16px;
  margin-bottom: 32px;
}

.search-overlay-input {
  width: 100%;
  background: none;
  border: none;
  font-family: var(--font-serif);
  font-size: 2.5rem;
  color: var(--white);
  outline: none;
  font-weight: 300;
  letter-spacing: -0.02em;
}

.search-overlay-input::placeholder {
  color: rgba(255,255,255,0.2);
}

.search-overlay-close {
  position: absolute;
  top: 40px;
  right: 40px;
  background: none;
  border: none;
  color: rgba(255,255,255,0.5);
  font-size: 1.8rem;
  cursor: pointer;
  transition: var(--transition-fast);
}

.search-overlay-close:hover {
  color: var(--white);
}

.search-suggestions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.search-suggestions span {
  font-size: 0.7rem;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: rgba(255,255,255,0.3);
  margin-right: 8px;
  padding-top: 4px;
}

.search-suggestions a {
  padding: 8px 18px;
  border: 1px solid rgba(255,255,255,0.12);
  font-family: var(--font-sans);
  font-size: 0.75rem;
  color: rgba(255,255,255,0.6);
  text-decoration: none;
  transition: var(--transition-fast);
}

.search-suggestions a:hover {
  border-color: var(--champagne-gold);
  color: var(--champagne-gold);
}

/* ============================================
   MOBILE OVERLAY MENU
   ============================================ */

.mobile-overlay {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: var(--matte-black);
  z-index: 999;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 100px 40px 60px;
  opacity: 0;
  visibility: hidden;
  transition: all 0.5s var(--ease-out-expo);
}

.mobile-overlay.open {
  opacity: 1;
  visibility: visible;
}

.mobile-nav-links {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.mobile-nav-links a {
  font-family: var(--font-serif);
  font-size: 2.5rem;
  font-weight: 300;
  color: rgba(255,255,255,0.3);
  text-decoration: none;
  transition: all 0.4s var(--ease-out-expo);
  line-height: 1.2;
}

.mobile-nav-links a:hover,
.mobile-nav-links a.active {
  color: var(--white);
  padding-left: 20px;
}

.mobile-nav-links a small {
  font-family: var(--font-sans);
  font-size: 0.6rem;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  color: var(--champagne-gold);
  display: block;
  margin-bottom: 2px;
  opacity: 0;
  transition: var(--transition-fast);
}

.mobile-nav-links a:hover small {
  opacity: 1;
}

.mobile-nav-bottom {
  margin-top: 60px;
  padding-top: 32px;
  border-top: 1px solid rgba(255,255,255,0.08);
  display: flex;
  gap: 24px;
}

.mobile-nav-bottom a {
  color: rgba(255,255,255,0.4);
  font-size: 0.8rem;
  text-decoration: none;
  transition: var(--transition-fast);
}

.mobile-nav-bottom a:hover {
  color: var(--champagne-gold);
}

/* ============================================
   HERO SECTION
   ============================================ */

/* ============================================
   HERO SECTION
   ============================================ */

.hero {
  position: relative;
  height: 100vh;
  min-height: 700px;
  overflow: hidden;
  display: flex;
  align-items: center;
  will-change: transform;
}

.hero-slider {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 0;
}

.hero-slide {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  transition: opacity 1.5s var(--ease-out-expo);
  z-index: 0;
}

.hero-slide.active {
  opacity: 1;
  z-index: 1;
}

.hero-slide video,
.hero-slide img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.hero-slide video {
  transform: scale(1.1);
  transition: transform 6s var(--ease-out-expo);
}

.hero-slide.active video {
  transform: scale(1);
}

.hero-indicators {
  position: absolute;
  bottom: 90px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 3;
  display: flex;
  gap: 10px;
}

.hero-indicator {
  width: 40px;
  height: 2px;
  background: rgba(255, 255, 255, 0.25);
  border: none;
  cursor: pointer;
  transition: all 0.6s var(--ease-out-expo);
  position: relative;
  overflow: hidden;
  border-radius: 0;
  padding: 0;
}

.hero-indicator .fill {
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  width: 0%;
  background: var(--champagne-gold);
  transition: none;
}

.hero-indicator.active .fill {
  width: 100%;
  transition: width 6s linear;
}

.hero-indicator:hover {
  background: rgba(255, 255, 255, 0.5);
}

.hero-overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(
    135deg,
    rgba(0, 0, 0, 0.5) 0%,
    rgba(0, 0, 0, 0.15) 40%,
    rgba(0, 0, 0, 0.35) 100%
  );
  z-index: 1;
}

/* Floating gold particles */
.hero-particles {
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
  overflow: hidden;
}

.hero-particles span {
  position: absolute;
  width: 3px;
  height: 3px;
  background: radial-gradient(circle, rgba(212,175,100,0.3), transparent);
  border-radius: 50%;
  animation: heroParticleFloat 8s ease-in-out infinite;
  opacity: 0;
}

@keyframes heroParticleFloat {
  0%, 100% { opacity: 0; transform: translateY(0) scale(0.5); }
  20% { opacity: 0.4; }
  50% { transform: translateY(-60px) scale(1); opacity: 0.15; }
}

.hero-content {
  position: relative;
  z-index: 2;
  max-width: 900px;
  padding: 0 40px;
  text-align: center;
}

/* Gold label */
.hero-label-wrap {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
  margin-bottom: 20px;
  opacity: 0;
  animation: heroFadeIn 1s var(--ease-out-expo) 0.2s forwards;
}

.hero-gold-label {
  font-family: var(--font-sans);
  font-size: 0.55rem;
  font-weight: 600;
  letter-spacing: 0.25em;
  color: var(--champagne-gold);
  text-transform: uppercase;
}

.hero-label-line {
  width: 30px;
  height: 1.5px;
  background: var(--champagne-gold);
  opacity: 0.5;
}

.hero-content .display-heading {
  color: var(--white);
  margin: 0 auto 24px;
  max-width: 90%;
  opacity: 0;
  transform: translateY(40px);
  animation: heroFadeIn 1.2s var(--ease-out-expo) 0.35s forwards;
  text-shadow: 0 4px 40px rgba(0,0,0,0.25), 0 2px 8px rgba(0,0,0,0.15);
}

.hero-content .heading-line:first-child {
  font-weight: 300;
  letter-spacing: 0.04em;
}

.hero-content .heading-line:last-child {
  font-weight: 400;
  letter-spacing: 0.12em;
  color: var(--champagne-gold);
  text-shadow: 0 4px 50px rgba(212,175,100,0.15), 0 2px 20px rgba(0,0,0,0.3);
}

.hero-gold-divider {
  margin-bottom: 20px;
  opacity: 0;
  animation: heroFadeIn 1s var(--ease-out-expo) 0.5s forwards;
  display: flex;
  justify-content: center;
}

.hero-gold-divider span {
  display: block;
  width: 50px;
  height: 1.5px;
  background: linear-gradient(90deg, var(--champagne-gold), rgba(212,175,100,0.3));
}

.hero-content .body-large {
  color: rgba(255, 255, 255, 0.85);
  margin: 0 auto 40px;
  max-width: 520px;
  opacity: 0;
  transform: translateY(30px);
  animation: heroFadeIn 1.2s var(--ease-out-expo) 0.6s forwards;
  font-weight: 300;
  line-height: 1.7;
}

.hero-cta {
  display: flex;
  gap: 14px;
  flex-wrap: wrap;
  justify-content: center;
  opacity: 0;
  transform: translateY(30px);
  animation: heroFadeIn 1.2s var(--ease-out-expo) 0.8s forwards;
}

@keyframes heroFadeIn {
  to { opacity: 1; transform: translateY(0); }
}

/* Premium hero buttons */
.hero-btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 14px 32px;
  font-family: var(--font-sans);
  font-size: 0.7rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  border-radius: 50px;
  cursor: pointer;
  transition: all 0.5s var(--ease-out-expo);
  text-decoration: none;
}

.hero-btn-primary {
  background: var(--champagne-gold);
  color: var(--matte-black);
  box-shadow: 0 4px 24px rgba(212,175,100,0.25);
}

.hero-btn-primary:hover {
  background: var(--white);
  color: var(--matte-black);
  gap: 14px;
  box-shadow: 0 8px 30px rgba(255,255,255,0.15);
  transform: translateY(-2px);
}

.hero-btn-primary i {
  font-size: 0.6rem;
  transition: transform 0.4s;
}

.hero-btn-primary:hover i { transform: translateX(4px); }

.hero-btn-glass {
  background: rgba(255,255,255,0.12);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  color: var(--white);
  border: 1.5px solid rgba(255,255,255,0.2);
}

.hero-btn-glass:hover {
  background: rgba(255,255,255,0.2);
  border-color: rgba(255,255,255,0.4);
  transform: translateY(-2px);
  box-shadow: 0 8px 30px rgba(255,255,255,0.06);
}

.hero-btn-glass i { font-size: 0.6rem; }

/* Scroll indicator */
.hero-scroll-indicator {
  position: absolute;
  bottom: 40px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  color: rgba(255, 255, 255, 0.5);
  font-size: 0.55rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
}

.hero-scroll-icon {
  width: 22px;
  height: 30px;
  border: 1.5px solid rgba(255,255,255,0.2);
  border-radius: 11px;
  display: flex;
  justify-content: center;
  padding-top: 4px;
  animation: heroScrollBounce 2.5s ease-in-out infinite;
}

.hero-scroll-icon i {
  font-size: 0.35rem;
  color: var(--champagne-gold);
  animation: heroDropBounce 2.5s ease-in-out infinite;
}

@keyframes heroDropBounce {
  0%, 100% { transform: translateY(0); opacity: 0.3; }
  50% { transform: translateY(5px); opacity: 1; }
}

@keyframes heroScrollBounce {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(5px); }
}

.scroll-line {
  width: 1px;
  height: 30px;
  background: linear-gradient(to bottom, rgba(255,255,255,0.4), transparent);
  margin-top: 4px;
}

/* ============================================
   CATEGORIES SECTION
   ============================================ */

/* ============================================
   LUXURY CATEGORY SHOWCASE
   ============================================ */

.lux-categories {
  position: relative;
  padding: 140px 0;
  overflow: hidden;
  background: var(--white);
}

/* Marble background */
.lux-bg-marble {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse at 20% 30%, rgba(248,246,243,0.6) 0%, transparent 60%),
    radial-gradient(ellipse at 80% 70%, rgba(232,228,222,0.4) 0%, transparent 50%),
    repeating-linear-gradient(90deg, transparent, transparent 60px, rgba(0,0,0,0.008) 60px, rgba(0,0,0,0.008) 61px),
    repeating-linear-gradient(0deg, transparent, transparent 60px, rgba(0,0,0,0.005) 60px, rgba(0,0,0,0.005) 61px);
  z-index: 0;
}

/* Soft glowing orbs */
.lux-bg-glow {
  position: absolute;
  border-radius: 50%;
  filter: blur(80px);
  pointer-events: none;
  z-index: 0;
}
.lux-glow-1 {
  width: 500px; height: 500px;
  top: -100px; left: -100px;
  background: radial-gradient(circle, rgba(212,175,100,0.08), transparent 70%);
  animation: luxGlowFloat 12s ease-in-out infinite;
}
.lux-glow-2 {
  width: 400px; height: 400px;
  bottom: -80px; right: -80px;
  background: radial-gradient(circle, rgba(232,228,222,0.12), transparent 70%);
  animation: luxGlowFloat 15s ease-in-out infinite reverse;
}
.lux-glow-3 {
  width: 300px; height: 300px;
  top: 50%; left: 50%;
  transform: translate(-50%,-50%);
  background: radial-gradient(circle, rgba(212,175,100,0.05), transparent 70%);
  animation: luxGlowFloat 18s ease-in-out infinite 2s;
}

@keyframes luxGlowFloat {
  0%, 100% { transform: translate(0,0) scale(1); }
  33% { transform: translate(30px,-30px) scale(1.1); }
  66% { transform: translate(-20px,20px) scale(0.95); }
}

/* Moving light rays */
.lux-ray {
  position: absolute;
  width: 200%;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(212,175,100,0.06), transparent);
  z-index: 0;
  animation: luxRayMove 8s linear infinite;
}
.lux-ray-1 { top: 20%; transform: rotate(-5deg); animation-delay: 0s; }
.lux-ray-2 { top: 70%; transform: rotate(3deg); animation-delay: 4s; }

@keyframes luxRayMove {
  0% { transform: translateX(-30%) rotate(-5deg); opacity: 0; }
  10% { opacity: 1; }
  90% { opacity: 1; }
  100% { transform: translateX(30%) rotate(-5deg); opacity: 0; }
}
.lux-ray-2 { animation-name: luxRayMove2; }
@keyframes luxRayMove2 {
  0% { transform: translateX(30%) rotate(3deg); opacity: 0; }
  10% { opacity: 1; }
  90% { opacity: 1; }
  100% { transform: translateX(-30%) rotate(3deg); opacity: 0; }
}

.lux-container {
  position: relative;
  z-index: 1;
}

/* Header */
.lux-header {
  text-align: center;
  max-width: 640px;
  margin: 0 auto 80px;
}

.lux-label {
  display: inline-block;
  font-family: var(--font-sans);
  font-size: 0.6rem;
  font-weight: 600;
  letter-spacing: 0.25em;
  color: var(--champagne-gold);
  margin-bottom: 20px;
  padding: 6px 20px;
  border: 1px solid rgba(212,175,100,0.2);
  border-radius: 50px;
  background: rgba(212,175,100,0.04);
}

.lux-heading {
  font-family: var(--font-serif);
  font-size: clamp(2.8rem, 5vw, 5rem);
  font-weight: 400;
  letter-spacing: -0.03em;
  color: var(--matte-black);
  line-height: 1.08;
  margin-bottom: 20px;
}

.lux-desc {
  font-size: 0.95rem;
  color: var(--text-secondary);
  line-height: 1.7;
  max-width: 500px;
  margin: 0 auto 28px;
  font-weight: 300;
}

.lux-divider {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
}

.lux-divider span {
  display: block;
  width: 60px;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--champagne-gold), transparent);
}

.lux-divider i {
  font-size: 0.7rem;
  color: var(--champagne-gold);
  opacity: 0.5;
}

/* Card grid — asymmetrical floating */
.lux-cards {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 30px;
  align-items: start;
}

.lux-card {
  position: relative;
  border-radius: 36px;
  overflow: hidden;
  cursor: pointer;
  background: var(--soft-ivory);
  box-shadow: 0 15px 50px rgba(0,0,0,0.05), 0 5px 20px rgba(0,0,0,0.03);
  transition: all 0.8s var(--ease-out-expo);
  will-change: transform;
  transform-style: preserve-3d;
  perspective: 1000px;
}

.lux-card-1 { transform: translateY(0); aspect-ratio: 3/4; }
.lux-card-2 { transform: translateY(40px); aspect-ratio: 3/4.5; }
.lux-card-3 { transform: translateY(20px); aspect-ratio: 3/4.2; }

.lux-card:hover {
  transform: translateY(-12px) scale(1.02);
  box-shadow: 0 30px 80px rgba(212,175,100,0.12), 0 10px 30px rgba(0,0,0,0.06);
}
.lux-card-1:hover { transform: translateY(-12px) scale(1.02); }
.lux-card-2:hover { transform: translateY(28px) scale(1.02); }
.lux-card-3:hover { transform: translateY(8px) scale(1.02); }

/* Background image */
.lux-card-bg {
  position: absolute;
  inset: 0;
}

.lux-card-bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 1.4s var(--ease-out-expo);
}

.lux-card:hover .lux-card-bg img {
  transform: scale(1.08);
}

/* Soft gradient overlay */
.lux-card-gradient {
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(255,255,255,0.92) 0%, rgba(255,255,255,0.4) 40%, rgba(255,255,255,0.1) 70%, rgba(255,255,255,0) 100%);
  z-index: 1;
  transition: opacity 0.6s var(--ease-out-expo);
}

.lux-card:hover .lux-card-gradient {
  opacity: 0.85;
}

/* Gold border on hover */
.lux-card-gold-border {
  position: absolute;
  inset: 0;
  border-radius: 36px;
  border: 1.5px solid transparent;
  background: linear-gradient(135deg, var(--champagne-gold), var(--champagne-light), var(--champagne-gold)) border-box;
  -webkit-mask: linear-gradient(#fff 0 0) padding-box, linear-gradient(#fff 0 0);
  mask: linear-gradient(#fff 0 0) padding-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  opacity: 0;
  transition: opacity 0.5s var(--ease-out-expo), box-shadow 0.5s;
  z-index: 3;
  pointer-events: none;
}

.lux-card:hover .lux-card-gold-border {
  opacity: 1;
  box-shadow: 0 0 30px rgba(212,175,100,0.15), inset 0 0 30px rgba(212,175,100,0.05);
}

/* Floating particles */
.lux-card-particles {
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
  overflow: hidden;
}

.lux-card-particles span {
  position: absolute;
  width: 5px;
  height: 5px;
  background: radial-gradient(circle, rgba(212,175,100,0.3), transparent);
  border-radius: 50%;
  animation: luxParticleFloat 5s ease-in-out infinite;
  opacity: 0;
}

@keyframes luxParticleFloat {
  0%, 100% { transform: translateY(0) scale(0.6); opacity: 0; }
  15% { opacity: 0.3; }
  50% { transform: translateY(-50px) scale(1.2); opacity: 0.15; }
  85% { opacity: 0.2; }
}

/* Glass panel */
.lux-card-glass {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 2;
  padding: 32px 28px 28px;
  background: linear-gradient(to top, rgba(255,255,255,0.95) 0%, rgba(255,255,255,0.7) 60%, transparent 100%);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  transform: translateY(30%);
  transition: transform 0.8s var(--ease-out-expo);
  border-radius: 0 0 36px 36px;
}

.lux-card:hover .lux-card-glass {
  transform: translateY(0);
}

.lux-card-glass-inner {
  position: relative;
}

.lux-card-tag {
  display: inline-block;
  font-family: var(--font-sans);
  font-size: 0.5rem;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--champagne-gold);
  margin-bottom: 8px;
  padding: 4px 14px;
  border-radius: 50px;
  border: 1px solid rgba(212,175,100,0.2);
  background: rgba(212,175,100,0.06);
}

.lux-card-glass-inner h3 {
  font-family: var(--font-serif);
  font-size: 1.3rem;
  font-weight: 400;
  color: var(--matte-black);
  margin-bottom: 8px;
  letter-spacing: -0.01em;
  line-height: 1.25;
}

.lux-card-glass-inner p {
  font-size: 0.8rem;
  color: var(--text-secondary);
  line-height: 1.6;
  margin-bottom: 16px;
  font-weight: 300;
  opacity: 0;
  transform: translateY(8px);
  transition: all 0.6s var(--ease-out-expo) 0.1s;
}

.lux-card:hover .lux-card-glass-inner p {
  opacity: 1;
  transform: translateY(0);
}

.lux-card-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: var(--font-sans);
  font-size: 0.7rem;
  font-weight: 500;
  letter-spacing: 0.05em;
  color: var(--champagne-gold);
  text-transform: uppercase;
  transition: all 0.4s var(--ease-out-expo);
  opacity: 0;
  transform: translateY(8px);
  transition: all 0.6s var(--ease-out-expo) 0.15s;
}

.lux-card:hover .lux-card-btn {
  opacity: 1;
  transform: translateY(0);
}

.lux-card-btn i {
  font-size: 0.6rem;
  transition: transform 0.4s var(--ease-out-expo);
}

.lux-card-btn:hover {
  gap: 12px;
}

.lux-card-btn:hover i {
  transform: translateX(4px);
}

/* Responsive */
@media (max-width: 1024px) {
  .lux-cards {
    grid-template-columns: 1fr 1fr;
  }
  .lux-card-2 { transform: translateY(0); }
  .lux-card-3 { transform: translateY(0); }
  .lux-card-2:hover { transform: translateY(-12px) scale(1.02); }
  .lux-card-3:hover { transform: translateY(-12px) scale(1.02); }
}
@media (max-width: 768px) {
  .lux-cards {
    grid-template-columns: 1fr;
    max-width: 400px;
    margin: 0 auto;
  }
  .lux-card-1, .lux-card-2, .lux-card-3 {
    aspect-ratio: auto;
    min-height: 400px;
  }
  .lux-card-2 { transform: translateY(0); }
  .lux-card-3 { transform: translateY(0); }
  .lux-categories { padding: 60px 0; }
  .lux-header { margin-bottom: 40px; }
}

/* ============================================
   BEST SELLERS — APPLE-STYLE SHOWCASE
   ============================================ */

.bs-section {
  position: relative;
  padding: 120px 0;
  background: var(--soft-ivory);
  overflow: hidden;
}

/* Shower waterfall effect */
.bs-waterfall {
  position: absolute;
  top: -10px;
  left: 0;
  right: 0;
  height: 200px;
  z-index: 1;
  pointer-events: none;
  overflow: hidden;
}

.bs-waterfall::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 80px;
  background: linear-gradient(180deg, rgba(212,175,100,0.06) 0%, transparent 100%);
  opacity: 0.5;
  animation: bsWaterGlow 4s ease-in-out infinite;
}

@keyframes bsWaterGlow {
  0%, 100% { opacity: 0.3; }
  50% { opacity: 0.7; }
}

.bs-waterfall-stream {
  position: absolute;
  top: -30px;
  width: 2px;
  height: 0;
  background: linear-gradient(180deg, 
    rgba(212,175,100,0) 0%, 
    rgba(212,175,100,0.15) 20%, 
    rgba(212,175,100,0.1) 50%, 
    rgba(212,175,100,0.05) 80%, 
    rgba(212,175,100,0) 100%
  );
  animation: bsWaterFall 4s ease-in infinite;
  border-radius: 0;
  filter: blur(0.5px);
}

@keyframes bsWaterFall {
  0% { height: 0; opacity: 0; top: -20px; }
  10% { opacity: 0.8; }
  60% { opacity: 0.5; }
  100% { height: 220px; opacity: 0; top: 0; }
}

.bs-waterfall-stream:nth-child(odd) {
  animation-duration: 5s;
  width: 1.5px;
}

.bs-waterfall-stream:nth-child(3n) {
  animation-duration: 6s;
  width: 1px;
  filter: blur(1px);
}

.bs-waterfall-mist {
  position: absolute;
  top: 10px;
  width: 80px;
  height: 50px;
  background: radial-gradient(ellipse at 50% 0%, rgba(212,175,100,0.05) 0%, transparent 70%);
  animation: bsWaterMist 5s ease-in-out infinite;
  border-radius: 50%;
  filter: blur(4px);
}

@keyframes bsWaterMist {
  0%, 100% { opacity: 0; transform: scaleX(0.4) translateY(0); }
  30% { opacity: 0.6; transform: scaleX(1) translateY(5px); }
  60% { opacity: 0.3; transform: scaleX(0.8) translateY(10px); }
}

/* Extra floating droplets */
.bs-waterfall-droplet {
  position: absolute;
  top: -10px;
  width: 4px;
  height: 6px;
  background: radial-gradient(circle at 30% 30%, rgba(212,175,100,0.2), transparent);
  border-radius: 50% 50% 50% 50% / 40% 40% 60% 60%;
  animation: bsDropFall 7s ease-in infinite;
}

@keyframes bsDropFall {
  0% { transform: translateY(-10px) scale(0.6); opacity: 0; }
  10% { opacity: 0.5; }
  80% { opacity: 0.2; }
  100% { transform: translateY(200px) scale(0.8); opacity: 0; }
}

/* Marble pattern */
.bs-bg-pattern {
  position: absolute;
  inset: 0;
  background:
    repeating-linear-gradient(90deg, transparent, transparent 50px, rgba(0,0,0,0.012) 50px, rgba(0,0,0,0.012) 51px),
    repeating-linear-gradient(0deg, transparent, transparent 50px, rgba(0,0,0,0.008) 50px, rgba(0,0,0,0.008) 51px);
  z-index: 0;
}

/* Floating orbs */
.bs-bg-orbs { position: absolute; inset: 0; z-index: 0; pointer-events: none; }
.bs-orb {
  position: absolute;
  border-radius: 50%;
  filter: blur(70px);
  animation: bsOrbFloat 14s ease-in-out infinite;
}
.bs-orb-1 { width: 400px; height: 400px; top: -100px; left: 10%; background: rgba(212,175,100,0.06); }
.bs-orb-2 { width: 350px; height: 350px; bottom: -80px; right: 15%; background: rgba(232,228,222,0.1); animation-delay: -5s; }
.bs-orb-3 { width: 250px; height: 250px; top: 40%; left: 60%; background: rgba(212,175,100,0.04); animation-delay: -9s; }

@keyframes bsOrbFloat {
  0%, 100% { transform: translate(0,0) scale(1); }
  33% { transform: translate(20px,-20px) scale(1.08); }
  66% { transform: translate(-15px,10px) scale(0.95); }
}

.bs-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  margin-bottom: 60px;
  position: relative;
  z-index: 1;
}

.bs-label {
  display: inline-block;
  font-family: var(--font-sans);
  font-size: 0.55rem;
  font-weight: 600;
  letter-spacing: 0.25em;
  color: var(--champagne-gold);
  margin-bottom: 12px;
  padding: 5px 16px;
  border: 1px solid rgba(212,175,100,0.15);
  border-radius: 50px;
  background: rgba(212,175,100,0.04);
}

.bs-heading {
  font-family: var(--font-serif);
  font-size: clamp(2.5rem, 4.5vw, 4.5rem);
  font-weight: 400;
  letter-spacing: -0.03em;
  color: var(--matte-black);
  line-height: 1.08;
}

.bs-header-right {
  text-align: right;
}

.bs-sub {
  font-size: 0.85rem;
  color: var(--text-light);
  margin-bottom: 12px;
  font-weight: 300;
}

.bs-view-all {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-family: var(--font-sans);
  font-size: 0.7rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--text-primary);
  padding: 10px 24px;
  border: 1.5px solid rgba(0,0,0,0.08);
  border-radius: 50px;
  transition: all 0.5s var(--ease-out-expo);
  background: var(--white);
}

.bs-view-all:hover {
  border-color: var(--champagne-gold);
  color: var(--champagne-gold);
  gap: 14px;
  box-shadow: 0 4px 20px rgba(212,175,100,0.12);
}

.bs-view-all i { font-size: 0.6rem; transition: transform 0.4s; }
.bs-view-all:hover i { transform: translateX(4px); }

/* Horizontal track */
.bs-track {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
  position: relative;
  z-index: 1;
}

.bs-card {
  position: relative;
  border-radius: 30px;
  background: var(--white);
  box-shadow: 0 12px 40px rgba(0,0,0,0.04), 0 4px 16px rgba(0,0,0,0.02);
  transition: all 0.7s var(--ease-out-expo);
  transform: translateY(0);
  perspective: 1200px;
}

.bs-card:hover {
  transform: translateY(-10px);
  box-shadow: 0 25px 60px rgba(0,0,0,0.07), 0 8px 24px rgba(0,0,0,0.03);
}

.bs-card-inner {
  position: relative;
  border-radius: 30px;
  overflow: hidden;
}

/* Light tracking */
.bs-card-light {
  position: absolute;
  inset: 0;
  border-radius: 30px;
  background: radial-gradient(circle at var(--mx, 50%) var(--my, 50%), rgba(212,175,100,0.04), transparent 60%);
  pointer-events: none;
  z-index: 5;
  opacity: 0;
  transition: opacity 0.4s;
}

.bs-card:hover .bs-card-light { opacity: 1; }

/* Image area */
.bs-card-image {
  position: relative;
  aspect-ratio: 4/5;
  overflow: hidden;
  background: var(--soft-ivory);
}

.bs-card-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 1s var(--ease-out-expo), rotate 0.8s var(--ease-out-expo);
}

.bs-card:hover .bs-card-image img {
  transform: scale(1.08);
  rotate: 3deg;
}

/* Glow behind image */
.bs-card-glow {
  position: absolute;
  bottom: -30%;
  left: 50%;
  transform: translateX(-50%);
  width: 200%;
  height: 80%;
  background: radial-gradient(ellipse, rgba(212,175,100,0.08), transparent 70%);
  opacity: 0;
  transition: opacity 0.6s;
  pointer-events: none;
}

.bs-card:hover .bs-card-glow { opacity: 1; }

/* Floating reflection */
.bs-card-reflect {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 50%;
  background: linear-gradient(180deg, rgba(255,255,255,0.15) 0%, transparent 100%);
  z-index: 2;
  pointer-events: none;
}

/* Action buttons */
.bs-card-actions {
  position: absolute;
  top: 12px;
  right: 12px;
  display: flex;
  flex-direction: column;
  gap: 6px;
  z-index: 4;
  opacity: 0;
  transform: translateX(8px);
  transition: all 0.4s var(--ease-out-expo);
}

.bs-card:hover .bs-card-actions {
  opacity: 1;
  transform: translateX(0);
}

.bs-card-actions button {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  border: none;
  background: rgba(255,255,255,0.85);
  backdrop-filter: blur(8px);
  color: var(--text-secondary);
  font-size: 0.75rem;
  cursor: pointer;
  transition: all 0.4s var(--ease-out-expo);
  display: flex;
  align-items: center;
  justify-content: center;
}

.bs-card-actions button:hover {
  background: var(--champagne-gold);
  color: var(--white);
  transform: scale(1.1);
}

.bs-wishlist.active { color: #D4AF64; }
.bs-wishlist.active i { font-weight: 900; }

/* Badge */
.bs-card-badge {
  position: absolute;
  top: 14px;
  left: 14px;
  padding: 5px 14px;
  font-size: 0.5rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  background: linear-gradient(135deg, var(--champagne-gold), var(--champagne-light));
  color: var(--matte-black);
  border-radius: 50px;
  z-index: 4;
  box-shadow: 0 2px 12px rgba(212,175,100,0.25);
}

.bs-card-ribbon {
  position: absolute;
  top: 14px;
  right: 14px;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: var(--matte-black);
  color: var(--white);
  font-size: 0.5rem;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 4;
  box-shadow: 0 2px 12px rgba(0,0,0,0.15);
}

/* Quick Add */
.bs-quick-add {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 4;
  transform: translateY(100%);
  transition: transform 0.5s var(--ease-out-expo);
}

.bs-card:hover .bs-quick-add {
  transform: translateY(0);
}

.bs-atc {
  width: 100%;
  padding: 14px 20px;
  border: none;
  background: rgba(26,26,26,0.85);
  backdrop-filter: blur(12px);
  color: var(--white);
  font-family: var(--font-sans);
  font-size: 0.7rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  transition: all 0.4s var(--ease-out-expo);
}

.bs-atc:hover {
  background: var(--matte-black);
  gap: 12px;
}

.bs-atc i { font-size: 0.65rem; }

/* Color variants */
.bs-color-variants {
  position: absolute;
  bottom: 12px;
  left: 14px;
  display: flex;
  gap: 5px;
  z-index: 4;
}

.bs-color-variants span {
  width: 14px;
  height: 14px;
  border-radius: 50%;
  border: 1.5px solid rgba(255,255,255,0.6);
  cursor: pointer;
  transition: all 0.3s;
  box-shadow: 0 1px 4px rgba(0,0,0,0.1);
}

.bs-color-variants span.active {
  border-color: var(--champagne-gold);
  box-shadow: 0 0 0 2px var(--champagne-gold);
}

.bs-color-variants span:hover {
  transform: scale(1.2);
}

/* Info */
.bs-card-info {
  padding: 18px 20px 22px;
}

.bs-card-cat {
  font-size: 0.55rem;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  color: var(--champagne-gold);
  font-weight: 500;
}

.bs-card-info h3 {
  font-family: var(--font-serif);
  font-size: 1.05rem;
  font-weight: 400;
  color: var(--matte-black);
  margin: 6px 0 8px;
  letter-spacing: -0.01em;
}

.bs-card-price-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.bs-card-price {
  font-family: var(--font-sans);
  font-size: 1.1rem;
  font-weight: 500;
  color: var(--matte-black);
}

.bs-card-rating {
  display: flex;
  align-items: center;
  gap: 3px;
  font-size: 0.5rem;
  color: var(--champagne-gold);
}

.bs-card-rating span {
  font-size: 0.6rem;
  color: var(--text-light);
  margin-left: 2px;
}

.bs-card-eco {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 0.55rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--text-light);
  margin-top: 8px;
  padding: 3px 10px;
  border-radius: 50px;
  border: 1px solid rgba(0,0,0,0.06);
  background: rgba(212,175,100,0.04);
}

.bs-card-eco i {
  font-size: 0.5rem;
  color: var(--champagne-gold);
}

/* Responsive */
@media (max-width: 1024px) {
  .bs-track { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 640px) {
  .bs-track { grid-template-columns: 1fr; max-width: 380px; margin: 0 auto; }
  .bs-header { flex-direction: column; align-items: flex-start; gap: 16px; }
  .bs-header-right { text-align: left; }
  .bs-section { padding: 80px 0; }
}

/* ============================================
   FEATURED COLLECTION
   ============================================ */

/* ============================================
   SPLIT-SCREEN HERO — FEATURED COLLECTION
   ============================================ */

.fc-section {
  position: relative;
  padding: 100px 0;
  background: var(--white);
  overflow: hidden;
}

.fc-bg-gradient {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, #F8F6F2 0%, var(--white) 50%, #F8F6F2 100%);
  animation: fcBgShift 8s ease-in-out infinite alternate;
  z-index: 0;
}

@keyframes fcBgShift {
  0% { opacity: 0.6; }
  100% { opacity: 1; }
}

.fc-container {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 70px;
  align-items: center;
  max-width: var(--container-max);
  margin: 0 auto;
  padding: 0 40px;
}

/* ===== LEFT ===== */
.fc-visual {
  position: relative;
}

.fc-visual-bg {
  position: absolute;
  inset: -30px;
  background: #F8F6F2;
  border-radius: 50px;
  z-index: 0;
  box-shadow: 0 40px 100px rgba(0,0,0,0.04);
}

.fc-visual-frame {
  position: relative;
  border-radius: 36px;
  overflow: hidden;
  box-shadow: 0 30px 80px rgba(0,0,0,0.08), 0 10px 30px rgba(0,0,0,0.04);
  aspect-ratio: 3/4;
  transform-style: preserve-3d;
  perspective: 1200px;
  z-index: 1;
}

.fc-frame-glow {
  position: absolute;
  inset: -30%;
  background: radial-gradient(ellipse at 50% 40%, rgba(212,175,100,0.06) 0%, transparent 60%);
  z-index: 2;
  pointer-events: none;
  animation: fcGlowPulse 5s ease-in-out infinite;
}

@keyframes fcGlowPulse {
  0%, 100% { opacity: 0.4; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.1); }
}

.fc-frame-inner {
  position: relative;
  width: 100%;
  height: 100%;
  overflow: hidden;
}

.fc-frame-inner img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 8s var(--ease-out-expo);
  animation: fcKenBurns 12s ease-in-out infinite alternate;
}

@keyframes fcKenBurns {
  0% { transform: scale(1); }
  100% { transform: scale(1.08); }
}

.fc-visual:hover .fc-frame-inner img {
  transform: scale(1.12);
  animation-play-state: paused;
}

/* Waterfall streams overlay */
.fc-waterfall {
  position: absolute;
  inset: 0;
  z-index: 3;
  pointer-events: none;
  overflow: hidden;
}

.fc-waterfall span {
  position: absolute;
  top: -20px;
  height: 0;
  background: linear-gradient(180deg, rgba(255,255,255,0.4) 0%, rgba(255,255,255,0.15) 40%, rgba(255,255,255,0.05) 70%, transparent 100%);
  border-radius: 0 0 4px 4px;
  animation: fcWaterStream 3s ease-in infinite;
  filter: blur(0.8px);
}

@keyframes fcWaterStream {
  0% { height: 0; opacity: 0; top: -10px; }
  15% { opacity: 0.5; }
  70% { opacity: 0.2; }
  100% { height: 100%; opacity: 0; top: 10px; }
}

/* Drifting mist */
.fc-mist {
  position: absolute;
  border-radius: 50%;
  background: radial-gradient(ellipse, rgba(255,255,255,0.15) 0%, transparent 70%);
  z-index: 2;
  pointer-events: none;
  animation: fcMistDrift 8s ease-in-out infinite;
}

.fc-mist-1 {
  width: 120px;
  height: 60px;
  top: 30%;
  left: 10%;
  filter: blur(20px);
}

.fc-mist-2 {
  width: 180px;
  height: 40px;
  bottom: 20%;
  right: 5%;
  filter: blur(30px);
  animation-delay: 4s;
}

@keyframes fcMistDrift {
  0%, 100% { transform: translateX(0) scaleX(1); opacity: 0.3; }
  50% { transform: translateX(20px) scaleX(1.3); opacity: 0.6; }
}

/* Sparkle particles */
.fc-sparkles {
  position: absolute;
  inset: 0;
  z-index: 4;
  pointer-events: none;
}

.fc-sparkles span {
  position: absolute;
  width: 3px;
  height: 3px;
  background: radial-gradient(circle, rgba(255,255,255,0.6), transparent);
  border-radius: 50%;
  animation: fcSparkle 6s ease-in-out infinite;
  opacity: 0;
}

@keyframes fcSparkle {
  0%, 100% { opacity: 0; transform: translateY(0) scale(0.5); }
  25% { opacity: 0.6; transform: translateY(-15px) scale(1); }
  50% { opacity: 0.2; transform: translateY(-30px) scale(0.8); }
}

/* Water droplets */
.fc-droplets {
  position: absolute;
  inset: 0;
  z-index: 4;
  pointer-events: none;
}

.fc-droplets span {
  position: absolute;
  top: -8px;
  width: 4px;
  height: 6px;
  background: radial-gradient(circle at 30% 30%, rgba(255,255,255,0.5), rgba(255,255,255,0.1));
  border-radius: 50% 50% 50% 50% / 40% 40% 60% 60%;
  animation: fcDropFall 5s ease-in infinite;
  opacity: 0;
}

@keyframes fcDropFall {
  0% { transform: translateY(-10px); opacity: 0; }
  15% { opacity: 0.4; }
  80% { opacity: 0.15; }
  100% { transform: translateY(400px); opacity: 0; }
}

/* Ripple extending from image */
.fc-ripple-extend {
  position: absolute;
  top: 50%;
  left: 100%;
  width: 200px;
  height: 200px;
  border-radius: 50%;
  border: 1px solid rgba(212,175,100,0.06);
  animation: fcRippleExtend 4s ease-out infinite;
  pointer-events: none;
  z-index: 1;
}

@keyframes fcRippleExtend {
  0% { width: 20px; height: 20px; opacity: 0.4; left: 90%; top: 50%; }
  100% { width: 300px; height: 300px; opacity: 0; left: 110%; top: 30%; }
}

/* ===== RIGHT ===== */
.fc-content {
  display: flex;
  align-items: center;
  padding: 40px 0;
}

.fc-content-inner {
  max-width: 520px;
}

.fc-label-line {
  width: 30px;
  height: 2px;
  background: var(--champagne-gold);
  margin-bottom: 16px;
  animation: fcLineGrow 1.5s var(--ease-out-expo) forwards;
}

@keyframes fcLineGrow {
  0% { width: 0; }
  100% { width: 30px; }
}

.fc-label {
  display: inline-block;
  font-family: var(--font-sans);
  font-size: 0.55rem;
  font-weight: 600;
  letter-spacing: 0.25em;
  color: var(--champagne-gold);
  margin-bottom: 20px;
  opacity: 0;
  animation: fcFadeUp 0.8s var(--ease-out-expo) 0.2s forwards;
}

.fc-heading {
  font-family: var(--font-serif);
  font-size: clamp(2.8rem, 5vw, 5rem);
  font-weight: 400;
  letter-spacing: -0.03em;
  color: var(--matte-black);
  line-height: 1.05;
  margin-bottom: 20px;
  opacity: 0;
  animation: fcFadeUp 0.8s var(--ease-out-expo) 0.4s forwards;
}

.fc-gold-divider {
  margin-bottom: 20px;
  opacity: 0;
  animation: fcFadeUp 0.8s var(--ease-out-expo) 0.5s forwards;
}

.fc-gold-divider span {
  display: block;
  width: 50px;
  height: 1px;
  background: linear-gradient(90deg, var(--champagne-gold), transparent);
}

.fc-desc {
  font-size: 0.95rem;
  color: var(--text-secondary);
  line-height: 1.7;
  margin-bottom: 36px;
  font-weight: 300;
  opacity: 0;
  animation: fcFadeUp 0.8s var(--ease-out-expo) 0.6s forwards;
}

@keyframes fcFadeUp {
  to { opacity: 1; transform: translateY(0); }
  from { opacity: 0; transform: translateY(20px); }
}

/* Buttons */
.fc-cta {
  display: flex;
  gap: 16px;
  flex-wrap: wrap;
  opacity: 0;
  animation: fcFadeUp 0.8s var(--ease-out-expo) 0.8s forwards;
}

.fc-btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 14px 32px;
  font-family: var(--font-sans);
  font-size: 0.7rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  border-radius: 50px;
  cursor: pointer;
  transition: all 0.5s var(--ease-out-expo);
  text-decoration: none;
}

.fc-btn-primary {
  background: var(--matte-black);
  color: var(--white);
  box-shadow: 0 4px 20px rgba(26,26,26,0.1);
}

.fc-btn-primary:hover {
  background: var(--champagne-gold);
  color: var(--matte-black);
  gap: 14px;
  box-shadow: 0 8px 30px rgba(212,175,100,0.2);
  transform: translateY(-2px);
}

.fc-btn-primary i {
  font-size: 0.6rem;
  transition: transform 0.4s;
}

.fc-btn-primary:hover i {
  transform: translateX(4px);
}

.fc-btn-glass {
  background: rgba(255,255,255,0.7);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  color: var(--text-secondary);
  border: 1.5px solid rgba(0,0,0,0.06);
}

.fc-btn-glass:hover {
  border-color: var(--champagne-gold);
  color: var(--matte-black);
  background: rgba(212,175,100,0.06);
  transform: translateY(-2px);
  box-shadow: 0 4px 20px rgba(212,175,100,0.08);
}

/* Scroll indicator */
.fc-scroll {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 60px;
  opacity: 0;
  animation: fcFadeUp 0.8s var(--ease-out-expo) 1s forwards;
}

.fc-scroll-drop {
  width: 20px;
  height: 28px;
  border: 1.5px solid rgba(0,0,0,0.08);
  border-radius: 10px;
  display: flex;
  justify-content: center;
  padding-top: 4px;
  animation: fcScrollBounce 2s ease-in-out infinite;
}

.fc-scroll-drop i {
  font-size: 0.4rem;
  color: var(--champagne-gold);
  animation: fcDropBounce 2s ease-in-out infinite;
}

@keyframes fcDropBounce {
  0%, 100% { transform: translateY(0); opacity: 0.3; }
  50% { transform: translateY(6px); opacity: 1; }
}

@keyframes fcScrollBounce {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(4px); }
}

.fc-scroll-text {
  font-size: 0.55rem;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  color: var(--text-light);
}

/* Responsive */
@media (max-width: 1024px) {
  .fc-container { grid-template-columns: 1fr; gap: 50px; max-width: 600px; }
  .fc-section { padding: 70px 0; }
  .fc-ripple-extend { display: none; }
}
@media (max-width: 640px) {
  .fc-container { padding: 0 20px; }
  .fc-section { padding: 50px 0; }
  .fc-cta { flex-direction: column; }
  .fc-btn { justify-content: center; }
}

.particle {
  position: absolute;
  width: 4px;
  height: 4px;
  background: rgba(212, 175, 100, 0.3);
  border-radius: 50%;
  animation: floatParticle 8s infinite;
}

@keyframes floatParticle {
  0%, 100% { transform: translateY(0) translateX(0); opacity: 0; }
  10% { opacity: 1; }
  90% { opacity: 1; }
  100% { transform: translateY(-400px) translateX(100px); opacity: 0; }
}

/* ============================================
   SHOP — EDITORIAL PRODUCT COLLECTION
   ============================================ */

.sp-section {
  position: relative;
  padding: 100px 0 80px;
  background: #FAF8F5;
  overflow: hidden;
}

.sp-bg-gradient {
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 30% 10%, rgba(248,246,242,0.6) 0%, transparent 60%),
              radial-gradient(ellipse at 70% 90%, rgba(232,228,222,0.3) 0%, transparent 50%);
  z-index: 0;
}

/* Floating gold particles */
.sp-particles {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
}

.sp-particles span {
  position: absolute;
  width: 3px;
  height: 3px;
  background: radial-gradient(circle, rgba(212,175,100,0.2), transparent);
  border-radius: 50%;
  animation: spParticleFloat 10s ease-in-out infinite;
  opacity: 0;
}

@keyframes spParticleFloat {
  0%, 100% { opacity: 0; transform: translateY(0) scale(0.5); }
  20% { opacity: 0.4; }
  50% { transform: translateY(-60px) scale(1); opacity: 0.15; }
}

.sp-container {
  position: relative;
  z-index: 1;
  max-width: var(--container-max);
  margin: 0 auto;
  padding: 0 40px;
}

/* Header */
.sp-header {
  text-align: center;
  margin-bottom: 60px;
  padding: 60px 40px;
  background: linear-gradient(rgba(0,0,0,0.35), rgba(0,0,0,0.35)),
    url('../assets/images/Gold_hand_shower_overlooking_pool_202607190034.jpeg') center/cover;
  border-radius: 24px;
  position: relative;
  overflow: hidden;
}

.sp-header > * {
  position: relative;
  z-index: 1;
}

.sp-label {
  display: inline-block;
  font-family: var(--font-sans);
  font-size: 0.5rem;
  font-weight: 600;
  letter-spacing: 0.3em;
  color: var(--champagne-gold);
  margin-bottom: 16px;
  padding: 5px 16px;
  border: 1px solid rgba(212,175,100,0.12);
  border-radius: 50px;
  background: rgba(212,175,100,0.03);
}

.sp-heading {
  font-family: var(--font-serif);
  font-size: clamp(2rem, 3.5vw, 3.5rem);
  font-weight: 400;
  letter-spacing: -0.02em;
  color: var(--white);
  line-height: 1.15;
  margin-bottom: 20px;
}

.sp-divider {
  display: flex;
  justify-content: center;
}

.sp-divider span {
  display: block;
  width: 40px;
  height: 1.5px;
  background: var(--champagne-gold);
  opacity: 0.4;
}

/* Glass filter navigation */
.sp-filter-wrap {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  margin-bottom: 50px;
  padding: 8px 12px 8px 24px;
  background: rgba(255,255,255,0.7);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border-radius: 60px;
  border: 1px solid rgba(0,0,0,0.04);
  box-shadow: 0 8px 40px rgba(0,0,0,0.04);
  position: sticky;
  top: 90px;
  z-index: 10;
}

.sp-filter-nav {
  flex: 1;
}

.sp-filter-inner {
  display: flex;
  gap: 4px;
  position: relative;
}

.sp-filter-btn {
  padding: 10px 22px;
  border: none;
  background: transparent;
  font-family: var(--font-sans);
  font-size: 0.65rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--text-secondary);
  cursor: pointer;
  transition: all 0.4s var(--ease-out-expo);
  border-radius: 50px;
  position: relative;
  display: flex;
  align-items: center;
  gap: 8px;
  white-space: nowrap;
}

.sp-filter-btn i {
  font-size: 0.6rem;
  opacity: 0.5;
  transition: opacity 0.3s;
}

.sp-filter-btn:hover { color: var(--matte-black); }
.sp-filter-btn:hover i { opacity: 0.8; }

.sp-filter-btn.active {
  background: var(--matte-black);
  color: var(--white);
  box-shadow: 0 4px 16px rgba(26,26,26,0.12);
}

.sp-filter-btn.active i { opacity: 1; color: var(--champagne-gold); }

.sp-filter-side {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-shrink: 0;
}

.sp-filter-side label {
  font-size: 0.6rem;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--text-light);
}

.sp-filter-side select {
  padding: 8px 12px;
  border: 1px solid rgba(0,0,0,0.06);
  border-radius: 30px;
  font-family: var(--font-sans);
  font-size: 0.7rem;
  background: var(--white);
  cursor: pointer;
  outline: none;
  color: var(--text-primary);
  min-width: 120px;
}

/* Product grid */
.sp-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
}

/* Product card */
.sp-card {
  border-radius: 28px;
  background: var(--white);
  box-shadow: 0 10px 40px rgba(0,0,0,0.03), 0 2px 12px rgba(0,0,0,0.02);
  transition: all 0.7s var(--ease-out-expo);
  transform: translateY(0);
  opacity: 0;
  animation: spCardIn 0.8s var(--ease-out-expo) forwards;
  cursor: pointer;
}

.sp-card:nth-child(1) { animation-delay: 0.05s; }
.sp-card:nth-child(2) { animation-delay: 0.1s; }
.sp-card:nth-child(3) { animation-delay: 0.15s; }
.sp-card:nth-child(4) { animation-delay: 0.2s; }
.sp-card:nth-child(5) { animation-delay: 0.25s; }
.sp-card:nth-child(6) { animation-delay: 0.3s; }
.sp-card:nth-child(7) { animation-delay: 0.35s; }
.sp-card:nth-child(8) { animation-delay: 0.4s; }
.sp-card:nth-child(9) { animation-delay: 0.45s; }
.sp-card:nth-child(10) { animation-delay: 0.5s; }
.sp-card:nth-child(11) { animation-delay: 0.55s; }
.sp-card:nth-child(12) { animation-delay: 0.6s; }
.sp-card:nth-child(13) { animation-delay: 0.65s; }
.sp-card:nth-child(14) { animation-delay: 0.7s; }
.sp-card:nth-child(15) { animation-delay: 0.75s; }

@keyframes spCardIn {
  from { opacity: 0; transform: translateY(30px); }
  to { opacity: 1; transform: translateY(0); }
}

.sp-card:hover {
  transform: translateY(-8px);
  box-shadow: 0 25px 60px rgba(0,0,0,0.06), 0 8px 24px rgba(0,0,0,0.03);
}

.sp-card-inner {
  border-radius: 28px;
  overflow: hidden;
}

/* Card image */
.sp-card-image {
  position: relative;
  aspect-ratio: 4/5;
  overflow: hidden;
  background: var(--soft-ivory);
}

.sp-card-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 1s var(--ease-out-expo);
}

.sp-card:hover .sp-card-image img {
  transform: scale(1.08);
}

/* Glow behind image */
.sp-card-glow {
  position: absolute;
  bottom: -30%;
  left: 50%;
  transform: translateX(-50%);
  width: 200%;
  height: 80%;
  background: radial-gradient(ellipse, rgba(212,175,100,0.06), transparent 70%);
  opacity: 0;
  transition: opacity 0.6s;
  pointer-events: none;
  z-index: 1;
}

.sp-card:hover .sp-card-glow { opacity: 1; }

/* Water ripple on hover */
.sp-card-ripple {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 0;
  height: 0;
  border-radius: 50%;
  border: 1px solid rgba(212,175,100,0.08);
  transform: translate(-50%, -50%);
  pointer-events: none;
  z-index: 1;
  transition: none;
}

.sp-card:hover .sp-card-ripple {
  width: 300px;
  height: 300px;
  opacity: 0;
  transition: all 0.8s ease-out;
}

/* Wishlist button */
.sp-wishlist {
  position: absolute;
  top: 14px;
  right: 14px;
  width: 38px;
  height: 38px;
  border-radius: 50%;
  border: none;
  background: rgba(255,255,255,0.8);
  backdrop-filter: blur(8px);
  color: var(--text-secondary);
  font-size: 0.8rem;
  cursor: pointer;
  z-index: 3;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.4s var(--ease-out-expo);
  opacity: 0;
  transform: translateY(-6px);
}

.sp-card:hover .sp-wishlist {
  opacity: 1;
  transform: translateY(0);
}

.sp-wishlist:hover {
  background: var(--champagne-gold);
  color: var(--white);
  transform: scale(1.1) rotate(-8deg);
}

.sp-wishlist.active { color: var(--champagne-gold); }
.sp-wishlist.active i { font-weight: 900; }

/* Badge */
.sp-badge {
  position: absolute;
  top: 14px;
  left: 14px;
  padding: 4px 14px;
  font-size: 0.48rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  background: rgba(255,255,255,0.85);
  backdrop-filter: blur(8px);
  color: var(--matte-black);
  border-radius: 50px;
  z-index: 3;
  border: 1px solid rgba(0,0,0,0.04);
}

.sp-badge.gold {
  background: linear-gradient(135deg, var(--champagne-gold), var(--champagne-light));
  color: var(--matte-black);
  border: none;
}

/* Overlay buttons */
.sp-card-overlay {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 12px;
  z-index: 3;
  transform: translateY(100%);
  transition: transform 0.5s var(--ease-out-expo);
}

.sp-card:hover .sp-card-overlay {
  transform: translateY(0);
}

.sp-quickview {
  padding: 10px;
  border: none;
  border-radius: 12px;
  background: rgba(255,255,255,0.85);
  backdrop-filter: blur(12px);
  color: var(--text-secondary);
  font-family: var(--font-sans);
  font-size: 0.65rem;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.3s;
}

.sp-quickview:hover {
  background: var(--white);
  color: var(--matte-black);
}

.sp-atc {
  padding: 12px;
  border: none;
  border-radius: 12px;
  background: var(--matte-black);
  color: var(--white);
  font-family: var(--font-sans);
  font-size: 0.65rem;
  font-weight: 500;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  transition: all 0.4s var(--ease-out-expo);
}

.sp-atc:hover {
  background: var(--champagne-gold);
  color: var(--matte-black);
  gap: 12px;
}

.sp-atc i { font-size: 0.6rem; }

/* Card info */
.sp-card-info {
  padding: 14px 16px 18px;
}

.sp-cat {
  font-size: 0.5rem;
  text-transform: uppercase;
  letter-spacing: 0.18em;
  color: var(--champagne-gold);
  font-weight: 500;
}

.sp-card-info h3 {
  font-family: var(--font-serif);
  font-size: 1.05rem;
  font-weight: 400;
  color: var(--matte-black);
  margin: 6px 0 8px;
  letter-spacing: -0.01em;
  line-height: 1.25;
}

.sp-card-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 8px;
}

.sp-price {
  font-family: var(--font-sans);
  font-size: 1.05rem;
  font-weight: 500;
  color: var(--matte-black);
}

.sp-rating {
  display: flex;
  align-items: center;
  gap: 2px;
  font-size: 0.45rem;
  color: var(--champagne-gold);
}

.sp-rating span { margin-left: 2px; }

.sp-eco {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 0.5rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--text-light);
  padding: 3px 10px;
  border-radius: 50px;
  border: 1px solid rgba(0,0,0,0.04);
  background: rgba(212,175,100,0.03);
}

.sp-eco i { font-size: 0.45rem; color: var(--champagne-gold); }

/* Load more */
.sp-loadmore {
  text-align: center;
  margin-top: 50px;
}

.sp-load-btn {
  padding: 14px 36px;
  border: 1.5px solid rgba(0,0,0,0.06);
  background: var(--white);
  font-family: var(--font-sans);
  font-size: 0.7rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--text-secondary);
  border-radius: 50px;
  cursor: pointer;
  transition: all 0.5s var(--ease-out-expo);
  display: inline-flex;
  align-items: center;
  gap: 10px;
}

.sp-load-btn:hover {
  border-color: var(--champagne-gold);
  color: var(--matte-black);
  gap: 14px;
  box-shadow: 0 4px 20px rgba(212,175,100,0.08);
}

.sp-load-btn i { font-size: 0.6rem; }

/* Responsive */
@media (max-width: 1024px) {
  .sp-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 768px) {
  .sp-grid { grid-template-columns: 1fr; max-width: 500px; margin: 0 auto; }
  .sp-filter-wrap { flex-direction: column; align-items: stretch; border-radius: 20px; padding: 12px; }
  .sp-filter-inner { flex-wrap: wrap; justify-content: center; }
  .sp-filter-side { justify-content: center; }
  .sp-section { padding: 60px 0; }
  .sp-container { padding: 0 20px; }
}

/* ============================================
   BRAND STORY
   ============================================ */

/* ============================================
   PHILOSOPHY — LUXURY EDITORIAL
   ============================================ */

.ph-section {
  position: relative;
  padding: 120px 0;
  overflow: hidden;
  background: #FAF8F5;
}

/* Immersive background environment */
.ph-bg {
  position: absolute;
  inset: 0;
  z-index: 0;
}

.ph-bg-marble {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse at 60% 20%, rgba(248,246,242,0.9) 0%, transparent 60%),
    radial-gradient(ellipse at 30% 80%, rgba(232,228,222,0.5) 0%, transparent 50%),
    repeating-linear-gradient(90deg, transparent, transparent 80px, rgba(0,0,0,0.008) 80px, rgba(0,0,0,0.008) 81px),
    repeating-linear-gradient(0deg, transparent, transparent 80px, rgba(0,0,0,0.005) 80px, rgba(0,0,0,0.005) 81px),
    url('https://images.unsplash.com/photo-1600566753086-00f18f6b0352?w=1920&q=30') center/cover;
  filter: blur(2px) brightness(1.1);
}

/* Floating mist */
.ph-bg-mist {
  position: absolute;
  border-radius: 50%;
  filter: blur(50px);
  pointer-events: none;
}
.ph-mist-1 {
  width: 500px; height: 300px;
  top: 10%; left: 5%;
  background: radial-gradient(ellipse, rgba(255,255,255,0.15) 0%, transparent 70%);
  animation: phMistFloat 12s ease-in-out infinite;
}
.ph-mist-2 {
  width: 400px; height: 250px;
  bottom: 15%; right: 10%;
  background: radial-gradient(ellipse, rgba(232,228,222,0.12) 0%, transparent 70%);
  animation: phMistFloat 15s ease-in-out infinite reverse;
}

@keyframes phMistFloat {
  0%, 100% { transform: translateX(0) translateY(0); }
  50% { transform: translateX(40px) translateY(-20px); }
}

/* Moving light rays */
.ph-bg-ray {
  position: absolute;
  height: 2px;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,0.2), transparent);
  pointer-events: none;
}
.ph-ray-1 { width: 60%; top: 25%; left: -10%; transform: rotate(-3deg); animation: phRayMove 10s linear infinite; }
.ph-ray-2 { width: 40%; top: 65%; right: -10%; transform: rotate(2deg); animation: phRayMove 8s linear infinite reverse; }

@keyframes phRayMove {
  0% { transform: translateX(-30%) rotate(-3deg); opacity: 0; }
  20% { opacity: 0.6; }
  80% { opacity: 0.6; }
  100% { transform: translateX(30%) rotate(-3deg); opacity: 0; }
}

/* Botanical shadow */
.ph-bg-plant {
  position: absolute;
  bottom: 0;
  right: 5%;
  width: 300px;
  height: 400px;
  background: radial-gradient(ellipse at 50% 100%, rgba(100,120,90,0.04) 0%, transparent 70%);
  pointer-events: none;
}

/* Floating glass panel */
.ph-container {
  position: relative;
  z-index: 1;
  max-width: var(--container-max);
  margin: 0 auto;
  padding: 0 40px;
}

.ph-panel {
  position: relative;
  border-radius: 32px;
  padding: 60px;
  overflow: hidden;
}

.ph-panel-bg {
  position: absolute;
  inset: 0;
  background: rgba(255,255,255,0.75);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border-radius: 32px;
  border: 1px solid rgba(255,255,255,0.5);
  box-shadow: 0 30px 80px rgba(0,0,0,0.06), 0 10px 30px rgba(0,0,0,0.03);
}

.ph-panel-glow {
  position: absolute;
  top: -50%;
  right: -20%;
  width: 400px;
  height: 400px;
  background: radial-gradient(circle, rgba(212,175,100,0.04) 0%, transparent 70%);
  pointer-events: none;
}

/* Grid layout */
.ph-grid {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 60px;
  align-items: center;
}

/* ===== LEFT — VISUAL ===== */
.ph-visual {
  position: relative;
}

.ph-visual-frame {
  position: relative;
  border-radius: 24px;
  overflow: hidden;
  aspect-ratio: 3/4;
  box-shadow: 0 20px 60px rgba(0,0,0,0.08);
  transform-style: preserve-3d;
  perspective: 1000px;
}

.ph-visual-inner {
  position: relative;
  width: 100%;
  height: 100%;
  overflow: hidden;
}

.ph-visual-inner img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  animation: phKenBurns 15s ease-in-out infinite alternate;
  transition: transform 1s var(--ease-out-expo);
}

@keyframes phKenBurns {
  0% { transform: scale(1); }
  100% { transform: scale(1.08); }
}

.ph-visual:hover .ph-visual-inner img {
  animation-play-state: paused;
}

/* Flowing water overlay */
.ph-water-flow {
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
}

.ph-water-flow span {
  position: absolute;
  top: -10px;
  width: 2px;
  height: 0;
  background: linear-gradient(180deg, rgba(255,255,255,0.3), rgba(255,255,255,0.05));
  animation: phWaterStream 3s ease-in infinite;
  border-radius: 0 0 2px 2px;
}

@keyframes phWaterStream {
  0% { height: 0; opacity: 0; }
  20% { opacity: 0.4; }
  80% { opacity: 0.15; }
  100% { height: 100%; opacity: 0; }
}

/* Steam */
.ph-steam {
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
}

.ph-steam span {
  position: absolute;
  width: 60px;
  height: 40px;
  background: radial-gradient(ellipse, rgba(255,255,255,0.08), transparent);
  border-radius: 50%;
  filter: blur(12px);
  animation: phSteamRise 6s ease-in-out infinite;
}

@keyframes phSteamRise {
  0%, 100% { transform: translateY(0) scaleX(0.6); opacity: 0; }
  30% { opacity: 0.5; transform: translateY(-20px) scaleX(1); }
  70% { opacity: 0.2; transform: translateY(-40px) scaleX(0.8); }
}

/* Dust particles */
.ph-dust {
  position: absolute;
  inset: 0;
  z-index: 3;
  pointer-events: none;
}

.ph-dust span {
  position: absolute;
  width: 2px;
  height: 2px;
  background: radial-gradient(circle, rgba(255,255,255,0.4), transparent);
  border-radius: 50%;
  animation: phDustFloat 8s ease-in-out infinite;
  opacity: 0;
}

@keyframes phDustFloat {
  0%, 100% { opacity: 0; transform: translateY(0) scale(0.5); }
  25% { opacity: 0.4; transform: translateY(-20px) scale(1); }
  50% { opacity: 0.15; transform: translateY(-40px) scale(0.7); }
}

.ph-visual-glow {
  position: absolute;
  inset: -20%;
  background: radial-gradient(ellipse at 50% 30%, rgba(212,175,100,0.04), transparent 60%);
  z-index: 1;
  pointer-events: none;
}

/* ===== RIGHT — CONTENT ===== */
.ph-content {
  padding: 20px 0;
}

.ph-content-inner {
  max-width: 480px;
}

.ph-label {
  display: inline-block;
  font-family: var(--font-sans);
  font-size: 0.5rem;
  font-weight: 600;
  letter-spacing: 0.3em;
  color: var(--champagne-gold);
  margin-bottom: 16px;
  padding: 5px 16px;
  border: 1px solid rgba(212,175,100,0.12);
  border-radius: 50px;
  background: rgba(212,175,100,0.03);
}

.ph-gold-line {
  width: 40px;
  height: 1.5px;
  background: var(--champagne-gold);
  margin-bottom: 24px;
  opacity: 0.5;
}

.ph-heading {
  font-family: var(--font-serif);
  font-size: clamp(2.5rem, 4vw, 4rem);
  font-weight: 400;
  letter-spacing: -0.03em;
  color: var(--matte-black);
  line-height: 1.08;
  margin-bottom: 20px;
  position: relative;
}

.ph-radial-glow {
  position: absolute;
  top: -30px;
  left: -30px;
  width: 200px;
  height: 200px;
  background: radial-gradient(circle, rgba(212,175,100,0.04), transparent 70%);
  pointer-events: none;
}

.ph-desc {
  font-size: 0.9rem;
  color: var(--text-secondary);
  line-height: 1.7;
  margin-bottom: 32px;
  font-weight: 300;
}

/* CTA Button */
.ph-btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 12px 28px;
  font-family: var(--font-sans);
  font-size: 0.65rem;
  font-weight: 500;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--text-primary);
  border: 1.5px solid rgba(212,175,100,0.2);
  border-radius: 50px;
  transition: all 0.5s var(--ease-out-expo);
  text-decoration: none;
  position: relative;
  overflow: hidden;
}

.ph-btn::before {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(212,175,100,0.06);
  opacity: 0;
  transition: opacity 0.5s var(--ease-out-expo);
  border-radius: 50px;
}

.ph-btn:hover::before { opacity: 1; }

.ph-btn:hover {
  border-color: var(--champagne-gold);
  gap: 14px;
  box-shadow: 0 4px 20px rgba(212,175,100,0.08);
}

.ph-btn i {
  font-size: 0.55rem;
  transition: transform 0.4s;
}

.ph-btn:hover i { transform: translateX(4px); }

.ph-btn span, .ph-btn i {
  position: relative;
  z-index: 1;
}

/* Metric Cards */
.ph-metrics {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
  margin-top: 40px;
}

.ph-metric {
  background: rgba(255,255,255,0.5);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  border-radius: 16px;
  padding: 20px 16px;
  text-align: center;
  border: 1px solid rgba(255,255,255,0.3);
  transition: all 0.5s var(--ease-out-expo);
  box-shadow: 0 2px 12px rgba(0,0,0,0.02);
}

.ph-metric:hover {
  transform: translateY(-4px);
  box-shadow: 0 12px 40px rgba(0,0,0,0.04);
  background: rgba(255,255,255,0.7);
}

.ph-metric-line {
  width: 24px;
  height: 1.5px;
  background: var(--champagne-gold);
  margin: 0 auto 10px;
  opacity: 0.4;
}

.ph-metric-number {
  font-family: var(--font-serif);
  font-size: 2rem;
  color: var(--champagne-gold);
  margin-bottom: 4px;
  line-height: 1.1;
}

.ph-metric-label {
  font-size: 0.6rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--text-light);
  line-height: 1.3;
}

/* Responsive */
@media (max-width: 1024px) {
  .ph-grid { grid-template-columns: 1fr; gap: 40px; }
  .ph-panel { padding: 40px; }
  .ph-metrics { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 640px) {
  .ph-section { padding: 60px 0; }
  .ph-container { padding: 0 20px; }
  .ph-panel { padding: 24px; border-radius: 24px; }
  .ph-metrics { grid-template-columns: 1fr; }
}

/* Old brand-story media queries removed — section renamed */

/* ============================================
   PRODUCT HIGHLIGHTS
   ============================================ */

.section-highlights {
  position: relative;
  background: linear-gradient(rgba(255,255,255,0.92), rgba(255,255,255,0.92)),
    url('https://images.unsplash.com/photo-1620626011761-e35e718c10ef?w=1920&q=80') center/cover fixed;
}

.section-highlights .container-premium {
  position: relative;
  z-index: 1;
}

.highlights-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 32px;
}

.highlight-card {
  text-align: center;
  padding: 48px 32px;
  transition: all 0.6s var(--ease-out-expo);
  border-radius: 20px;
  position: relative;
  overflow: hidden;
  background: rgba(255,255,255,0.85);
  backdrop-filter: blur(4px);
  border: 1px solid rgba(255,255,255,0.3);
}

.highlight-card::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0; bottom: 0;
  background: url('https://images.unsplash.com/photo-1600566753086-00f18f6b0352?w=600&q=60') center/cover;
  opacity: 0.08;
  z-index: 0;
  transition: opacity 0.5s var(--ease-out-expo);
}

.highlight-card:hover::before {
  opacity: 0.15;
}

.highlight-card > * {
  position: relative;
  z-index: 1;
}

.highlight-card:hover {
  background: rgba(255,255,255,0.92);
  transform: translateY(-8px);
  box-shadow: var(--shadow-medium);
}

.highlight-icon {
  width: 64px;
  height: 64px;
  margin: 0 auto 24px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 2rem;
  color: var(--champagne-gold);
}

.highlight-icon svg {
  width: 48px;
  height: 48px;
  stroke: var(--champagne-gold);
  fill: none;
  stroke-width: 1.5;
}

.highlight-card h3 {
  font-family: var(--font-serif);
  font-size: 1.25rem;
  margin-bottom: 12px;
}

.highlight-card p {
  font-size: 0.9rem;
  color: var(--text-light);
  line-height: 1.6;
}

/* ============================================
   TESTIMONIALS
   ============================================ */

.testimonials-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}

.testimonial-card {
  padding: 40px;
  background: var(--white);
  border: 1px solid var(--border-light);
  transition: all 0.6s var(--ease-out-expo);
}

.testimonial-card:hover {
  box-shadow: var(--shadow-soft);
  transform: translateY(-4px);
}

.testimonial-stars {
  color: var(--champagne-gold);
  font-size: 0.9rem;
  margin-bottom: 16px;
  letter-spacing: 2px;
}

.testimonial-text {
  font-family: var(--font-serif);
  font-style: italic;
  font-size: 1rem;
  line-height: 1.7;
  color: var(--text-secondary);
  margin-bottom: 24px;
}

.testimonial-author {
  display: flex;
  align-items: center;
  gap: 12px;
}

.testimonial-avatar {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  object-fit: cover;
}

.testimonial-name {
  font-size: 0.85rem;
  font-weight: 500;
}

.testimonial-role {
  font-size: 0.75rem;
  color: var(--text-light);
}

/* ============================================
   INSTAGRAM GALLERY
   ============================================ */

.instagram-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 8px;
  padding: 0 24px;
}

.instagram-item {
  position: relative;
  aspect-ratio: 1;
  overflow: hidden;
  cursor: pointer;
  border-radius: 16px;
  box-shadow: 0 4px 20px rgba(0,0,0,0.06);
  transition: all 0.5s var(--ease-out-expo);
}

.instagram-item:nth-child(2) {
  aspect-ratio: 3/4;
  margin-top: -20px;
}

.instagram-item:nth-child(4) {
  aspect-ratio: 4/3;
  margin-bottom: -20px;
}

.instagram-item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.8s var(--ease-out-expo);
}

.instagram-item:hover {
  transform: translateY(-6px);
  box-shadow: 0 12px 40px rgba(212,175,100,0.15);
}

.instagram-item:hover img {
  transform: scale(1.1);
}

/* Gold rim on hover */
.instagram-item::after {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: 16px;
  border: 2px solid transparent;
  background: linear-gradient(135deg, var(--champagne-gold), var(--champagne-light)) border-box;
  -webkit-mask: linear-gradient(#fff 0 0) padding-box, linear-gradient(#fff 0 0);
  mask: linear-gradient(#fff 0 0) padding-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  opacity: 0;
  transition: opacity 0.4s var(--ease-out-expo);
  pointer-events: none;
}

.instagram-item:hover::after {
  opacity: 1;
}

.instagram-overlay {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: linear-gradient(135deg, rgba(212,175,100,0.85), rgba(0,0,0,0.4));
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  transition: all 0.4s var(--ease-out-expo);
  border-radius: 16px;
  backdrop-filter: blur(2px);
}

.instagram-item:hover .instagram-overlay {
  opacity: 1;
}

.instagram-overlay span {
  color: var(--white);
  font-size: 1.5rem;
  width: 56px;
  height: 56px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: rgba(255,255,255,0.15);
  backdrop-filter: blur(8px);
  border: 1.5px solid rgba(255,255,255,0.25);
  transform: scale(0.8);
  transition: transform 0.5s var(--ease-out-expo);
}

.instagram-item:hover .instagram-overlay span {
  transform: scale(1);
}

/* ============================================
   NEWSLETTER
   ============================================ */

.newsletter {
  text-align: center;
  padding: 120px 0;
}

.newsletter h2 {
  margin-bottom: 16px;
}

.newsletter .body-large {
  margin-bottom: 48px;
  max-width: 420px;
  margin-left: auto;
  margin-right: auto;
}

.newsletter-form {
  display: flex;
  gap: 0;
  max-width: 480px;
  margin: 0 auto;
  position: relative;
}

.newsletter-form input {
  flex: 1;
  padding: 18px 24px;
  border: 1px solid var(--border-light);
  font-family: var(--font-sans);
  font-size: 0.9rem;
  font-weight: 300;
  background: transparent;
  outline: none;
  transition: var(--transition-fast);
}

.newsletter-form input:focus {
  border-color: var(--matte-black);
}

.newsletter-form input::placeholder {
  color: var(--text-light);
  font-weight: 300;
}

.newsletter-form button {
  padding: 18px 36px;
  background: var(--matte-black);
  color: var(--white);
  border: none;
  font-family: var(--font-sans);
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  cursor: pointer;
  transition: var(--transition-fast);
}

.newsletter-form button:hover {
  background: var(--charcoal-grey);
}

/* Glass input variant */
.newsletter-form.glass input {
  background: var(--glass-bg);
  backdrop-filter: blur(10px);
  border: 1px solid var(--glass-border);
  color: var(--white);
}

.newsletter-form.glass input::placeholder {
  color: rgba(255, 255, 255, 0.5);
}

/* ============================================
   ABOUT PAGE — Luxury About Sections
   ============================================ */

/* === Hero Section === */
.ab-hero {
  position: relative;
  height: 100vh;
  min-height: 700px;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--matte-black);
}

.ab-hero-bg {
  position: absolute;
  inset: 0;
  overflow: hidden;
}

.ab-hero-bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  animation: abKenBurns 12s ease-in-out infinite alternate;
}

@keyframes abKenBurns {
  0% { transform: scale(1); }
  100% { transform: scale(1.08); }
}

.ab-hero-overlay {
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,0.35);
  z-index: 1;
}

/* Floating water particles */
.ab-particles {
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
}

.ab-particles span {
  position: absolute;
  width: 6px;
  height: 6px;
  background: radial-gradient(circle at 30% 30%, rgba(212,175,100,0.5), transparent);
  border-radius: 50%;
  animation: abParticleFloat 6s ease-in-out infinite;
  opacity: 0;
}

@keyframes abParticleFloat {
  0%, 100% { transform: translateY(0) scale(0.6); opacity: 0; }
  15% { opacity: 0.4; }
  50% { transform: translateY(-80px) scale(1.2); opacity: 0.2; }
  85% { opacity: 0.3; }
}

.ab-hero-content {
  position: relative;
  z-index: 3;
  text-align: center;
  max-width: 800px;
  padding: 0 40px;
}

.ab-label {
  display: inline-block;
  font-family: var(--font-sans);
  font-size: 0.65rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.25em;
  color: var(--champagne-gold);
  margin-bottom: 24px;
  padding: 6px 20px;
  border: 1px solid rgba(212,175,100,0.25);
  border-radius: 50px;
  background: rgba(212,175,100,0.06);
  opacity: 0;
  animation: abFadeDown 1s var(--ease-out-expo) 0.3s forwards;
}

.ab-heading {
  font-family: var(--font-serif);
  font-size: clamp(2.8rem, 6vw, 6rem);
  font-weight: 400;
  letter-spacing: -0.03em;
  line-height: 1.05;
  color: var(--white);
  margin-bottom: 24px;
  opacity: 0;
  animation: abFadeUp 1s var(--ease-out-expo) 0.5s forwards;
}

.ab-desc {
  font-size: clamp(0.95rem, 1.1vw, 1.1rem);
  color: rgba(255,255,255,0.7);
  line-height: 1.7;
  max-width: 560px;
  margin: 0 auto 40px;
  font-weight: 300;
  opacity: 0;
  animation: abFadeUp 1s var(--ease-out-expo) 0.7s forwards;
}

.ab-cta {
  display: flex;
  gap: 16px;
  justify-content: center;
  flex-wrap: wrap;
  opacity: 0;
  animation: abFadeUp 1s var(--ease-out-expo) 0.9s forwards;
}

.ab-btn {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  padding: 16px 36px;
  font-family: var(--font-sans);
  font-size: 0.75rem;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  border: none;
  cursor: pointer;
  border-radius: 0;
  transition: all 0.5s var(--ease-out-expo);
  position: relative;
  overflow: hidden;
  text-decoration: none;
}

.ab-btn::before {
  content: '';
  position: absolute;
  top: 0;
  left: -100%;
  width: 100%;
  height: 100%;
  background: rgba(255,255,255,0.1);
  transition: left 0.6s var(--ease-out-expo);
}

.ab-btn:hover::before {
  left: 100%;
}

.ab-btn-primary {
  background: var(--matte-black);
  color: var(--white);
  border: 1px solid var(--matte-black);
}

.ab-btn-primary:hover {
  background: var(--charcoal-grey);
  transform: translateY(-3px);
  box-shadow: 0 15px 40px rgba(0,0,0,0.2);
  color: var(--white);
}

.ab-btn-outline {
  background: transparent;
  color: var(--white);
  border: 1px solid rgba(255,255,255,0.4);
}

.ab-btn-outline:hover {
  background: var(--white);
  color: var(--matte-black);
  transform: translateY(-3px);
}

.ab-btn-outline-light {
  background: transparent;
  color: var(--white);
  border: 1px solid rgba(255,255,255,0.4);
}

.ab-btn-outline-light:hover {
  background: var(--white);
  color: var(--matte-black);
  transform: translateY(-3px);
}

.ab-btn i {
  font-size: 0.65rem;
  transition: transform 0.4s;
}

.ab-btn:hover i {
  transform: translateX(4px);
}

/* Scroll indicator */
.ab-scroll {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  margin-top: 60px;
  opacity: 0;
  animation: abFadeUp 1s var(--ease-out-expo) 1.1s forwards;
}

.ab-scroll-drop {
  width: 22px;
  height: 30px;
  border: 1.5px solid rgba(255,255,255,0.3);
  border-radius: 11px;
  display: flex;
  justify-content: center;
  padding-top: 5px;
  animation: abScrollBounce 2.5s ease-in-out infinite;
}

.ab-scroll-drop i {
  font-size: 0.4rem;
  color: var(--champagne-gold);
  animation: abDropBounce 2.5s ease-in-out infinite;
}

@keyframes abDropBounce {
  0%, 100% { transform: translateY(0); opacity: 0.3; }
  50% { transform: translateY(6px); opacity: 1; }
}

@keyframes abScrollBounce {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(5px); }
}

.ab-scroll span {
  font-size: 0.55rem;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  color: rgba(255,255,255,0.4);
}

@keyframes abFadeUp {
  from { opacity: 0; transform: translateY(30px); }
  to { opacity: 1; transform: translateY(0); }
}

@keyframes abFadeDown {
  from { opacity: 0; transform: translateY(-20px); }
  to { opacity: 1; transform: translateY(0); }
}

/* === Philosophy Section === */
.ab-phil {
  padding: 140px 0;
  background: var(--white);
  position: relative;
}

.ab-phil-container {
  max-width: var(--container-max);
  margin: 0 auto;
  padding: 0 40px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: center;
}

.ab-phil-image {
  position: relative;
  border-radius: 36px;
  overflow: hidden;
  aspect-ratio: 3/4;
  box-shadow: 0 30px 80px rgba(0,0,0,0.08);
  transform: translateY(0);
  transition: transform 0.8s var(--ease-out-expo);
}

.ab-phil-image:hover {
  transform: translateY(-8px);
}

.ab-phil-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 1.2s var(--ease-out-expo);
}

.ab-phil-image:hover img {
  transform: scale(1.06);
}

.ab-phil-image-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(212,175,100,0.06), transparent 50%);
}

.ab-phil-image-ornament {
  position: absolute;
  top: -20px;
  right: -20px;
  width: 100px;
  height: 100px;
  border: 1px solid rgba(212,175,100,0.15);
  border-radius: 50%;
  pointer-events: none;
}

.ab-phil-content {
  padding: 20px 0;
}

.ab-phil-content .ab-label {
  margin-bottom: 20px;
}

.ab-phil-heading {
  font-family: var(--font-serif);
  font-size: clamp(2.5rem, 4vw, 4.5rem);
  font-weight: 400;
  letter-spacing: -0.03em;
  line-height: 1.08;
  color: var(--matte-black);
  margin-bottom: 24px;
}

.ab-phil-divider {
  width: 60px;
  height: 2px;
  background: linear-gradient(90deg, var(--champagne-gold), transparent);
  margin-bottom: 28px;
}

.ab-phil-text {
  font-size: 0.95rem;
  color: var(--text-secondary);
  line-height: 1.8;
  font-weight: 300;
  margin-bottom: 20px;
}

.ab-phil-stats {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  margin-top: 40px;
  padding-top: 40px;
  border-top: 1px solid var(--border-light);
}

.ab-phil-stat {
  text-align: center;
}

.ab-phil-stat-num {
  display: block;
  font-family: var(--font-serif);
  font-size: 2.2rem;
  color: var(--champagne-gold);
  font-weight: 400;
  line-height: 1;
  margin-bottom: 6px;
}

.ab-phil-stat-label {
  font-size: 0.65rem;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--text-light);
  font-weight: 500;
}

/* === Timeline Section === */
.ab-timeline {
  padding: 120px 0;
  background: linear-gradient(rgba(0,0,0,0.35), rgba(0,0,0,0.35)),
    url('../assets/images/Washbasin_premium_level_image_2K_202607191152.jpeg') center/cover;
  position: relative;
  overflow: hidden;
}

.ab-timeline-container {
  max-width: var(--container-max);
  margin: 0 auto;
  padding: 0 40px;
}

.ab-timeline-header {
  text-align: center;
  margin-bottom: 80px;
}

.ab-timeline-heading {
  font-family: var(--font-serif);
  font-size: clamp(2.5rem, 4vw, 4.2rem);
  font-weight: 400;
  letter-spacing: -0.03em;
  color: var(--matte-black);
  line-height: 1.08;
  color: var(--white);
}

.ab-timeline-track {
  position: relative;
  display: flex;
  justify-content: space-between;
  padding: 40px 0;
}

.ab-timeline-track::before {
  content: '';
  position: absolute;
  top: 50%;
  left: 0;
  right: 0;
  height: 2px;
  background: rgba(0,0,0,0.08);
  transform: translateY(-50%);
}

.ab-timeline-progress {
  position: absolute;
  top: 50%;
  left: 0;
  height: 2px;
  background: linear-gradient(90deg, var(--champagne-gold), var(--champagne-light));
  transform: translateY(-50%);
  transition: width 0.1s linear;
  z-index: 1;
  width: 0;
}

.ab-timeline-item {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  flex: 1;
}

.ab-timeline-dot {
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: var(--white);
  border: 2px solid rgba(0,0,0,0.12);
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.5s var(--ease-out-expo);
  position: relative;
  z-index: 2;
}

.ab-timeline-dot span {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--champagne-gold);
  opacity: 0;
  transition: opacity 0.5s;
}

.ab-timeline-item.active .ab-timeline-dot {
  border-color: var(--champagne-gold);
  box-shadow: 0 0 20px rgba(212,175,100,0.2);
}

.ab-timeline-item.active .ab-timeline-dot span {
  opacity: 1;
}

.ab-timeline-info {
  position: absolute;
  top: calc(100% + 30px);
  text-align: center;
  width: 180px;
  opacity: 0;
  transform: translateY(10px);
  transition: all 0.6s var(--ease-out-expo);
}

.ab-timeline-item.active .ab-timeline-info {
  opacity: 1;
  transform: translateY(0);
}

.ab-timeline-info strong {
  display: block;
  font-family: var(--font-serif);
  font-size: 1.3rem;
  color: var(--champagne-gold);
  font-weight: 400;
  margin-bottom: 4px;
}

.ab-timeline-info p {
  font-family: var(--font-sans);
  font-size: 0.8rem;
  font-weight: 500;
  color: var(--matte-black);
  margin-bottom: 6px;
}

.ab-timeline-info span {
  font-size: 0.75rem;
  color: var(--text-light);
  font-weight: 300;
  line-height: 1.5;
  display: block;
}

/* === Values Section === */
.ab-values {
  padding: 120px 0;
  background: var(--white);
  position: relative;
}

.ab-values-container {
  max-width: var(--container-max);
  margin: 0 auto;
  padding: 0 40px;
}

.ab-values-header {
  text-align: center;
  margin-bottom: 60px;
}

.ab-values-heading {
  font-family: var(--font-serif);
  font-size: clamp(2.5rem, 4vw, 4rem);
  font-weight: 400;
  letter-spacing: -0.03em;
  color: var(--matte-black);
  line-height: 1.08;
}

.ab-values-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
}

.ab-value-card {
  padding: 48px 32px 40px;
  background: rgba(255,255,255,0.6);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border: 1px solid rgba(0,0,0,0.04);
  border-radius: 28px;
  text-align: center;
  transition: all 0.6s var(--ease-out-expo);
  box-shadow: 0 10px 40px rgba(0,0,0,0.03);
}

.ab-value-card:hover {
  transform: translateY(-12px);
  box-shadow: 0 25px 60px rgba(0,0,0,0.06), 0 0 30px rgba(212,175,100,0.06);
  border-color: rgba(212,175,100,0.12);
  background: rgba(255,255,255,0.9);
}

.ab-value-icon {
  width: 64px;
  height: 64px;
  border-radius: 50%;
  background: linear-gradient(135deg, rgba(212,175,100,0.1), rgba(212,175,100,0.04));
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 20px;
  font-size: 1.3rem;
  color: var(--champagne-gold);
  transition: all 0.5s var(--ease-out-expo);
}

.ab-value-card:hover .ab-value-icon {
  background: linear-gradient(135deg, var(--champagne-gold), var(--champagne-light));
  color: var(--white);
  transform: scale(1.05);
  box-shadow: 0 8px 30px rgba(212,175,100,0.2);
}

.ab-value-card h3 {
  font-family: var(--font-serif);
  font-size: 1.3rem;
  font-weight: 400;
  color: var(--matte-black);
  margin-bottom: 12px;
  letter-spacing: -0.01em;
}

.ab-value-card p {
  font-size: 0.85rem;
  color: var(--text-secondary);
  line-height: 1.6;
  font-weight: 300;
}

/* === Sustainability Section === */
.ab-sustainability {
  position: relative;
  padding: 140px 0;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 600px;
}

.ab-sus-bg {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(135deg, rgba(0,0,0,0.5), rgba(0,0,0,0.2)),
    url('https://images.unsplash.com/photo-1545205597-3d9d02c29597?w=1920&h=1080&fit=crop') center/cover fixed;
  transform: scale(1.05);
  animation: abSusBgZoom 20s ease-in-out infinite alternate;
}

@keyframes abSusBgZoom {
  0% { transform: scale(1.05); }
  100% { transform: scale(1.12); }
}

.ab-sus-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,0.3) 0%, rgba(0,0,0,0.5) 50%, rgba(0,0,0,0.6) 100%);
  z-index: 1;
}

.ab-sus-content {
  position: relative;
  z-index: 2;
  text-align: center;
  max-width: 800px;
  padding: 0 40px;
}

.ab-sus-content .ab-label {
  border-color: rgba(212,175,100,0.3);
}

.ab-sus-heading {
  font-family: var(--font-serif);
  font-size: clamp(2.2rem, 4vw, 4rem);
  font-weight: 400;
  letter-spacing: -0.03em;
  color: var(--white);
  line-height: 1.15;
  margin-bottom: 20px;
}

.ab-sus-desc {
  font-size: 1rem;
  color: rgba(255,255,255,0.65);
  line-height: 1.7;
  font-weight: 300;
  margin-bottom: 50px;
  max-width: 520px;
  margin-left: auto;
  margin-right: auto;
}

.ab-sus-icons {
  display: flex;
  justify-content: center;
  gap: 40px;
  flex-wrap: wrap;
}

.ab-sus-icon-item {
  text-align: center;
  transition: transform 0.5s var(--ease-out-expo);
}

.ab-sus-icon-item:hover {
  transform: translateY(-8px);
}

.ab-sus-icon-wrap {
  width: 72px;
  height: 72px;
  border-radius: 50%;
  background: rgba(255,255,255,0.08);
  backdrop-filter: blur(12px);
  border: 1px solid rgba(255,255,255,0.15);
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 16px;
  font-size: 1.4rem;
  color: var(--champagne-gold);
  transition: all 0.5s var(--ease-out-expo);
}

.ab-sus-icon-item:hover .ab-sus-icon-wrap {
  background: rgba(212,175,100,0.15);
  border-color: var(--champagne-gold);
  box-shadow: 0 0 30px rgba(212,175,100,0.15);
}

.ab-sus-icon-item strong {
  display: block;
  font-family: var(--font-sans);
  font-size: 0.65rem;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: rgba(255,255,255,0.8);
  font-weight: 500;
}

/* === Statistics Section === */
.ab-stats {
  padding: 100px 0;
  background: var(--soft-ivory);
  position: relative;
}

.ab-stats-container {
  max-width: var(--container-max);
  margin: 0 auto;
  padding: 0 40px;
}

.ab-stats-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
}

.ab-stat-card {
  text-align: center;
  padding: 48px 20px;
  background: var(--white);
  border-radius: 24px;
  box-shadow: 0 10px 40px rgba(0,0,0,0.03);
  position: relative;
  transition: all 0.5s var(--ease-out-expo);
}

.ab-stat-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 20px 50px rgba(0,0,0,0.06);
}

.ab-stat-num {
  display: block;
  font-family: var(--font-serif);
  font-size: clamp(2.5rem, 3.5vw, 3.8rem);
  font-weight: 400;
  color: var(--champagne-gold);
  line-height: 1;
  margin-bottom: 4px;
}

.ab-stat-plus {
  display: block;
  font-family: var(--font-serif);
  font-size: 1.5rem;
  color: var(--champagne-gold);
  font-weight: 300;
  margin-bottom: 12px;
  opacity: 0.6;
}

.ab-stat-label {
  display: block;
  font-family: var(--font-sans);
  font-size: 0.7rem;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  color: var(--text-light);
  font-weight: 500;
}

/* === Team Section === */
.ab-team {
  padding: 120px 0;
  background: var(--white);
  position: relative;
}

.ab-team-container {
  max-width: var(--container-max);
  margin: 0 auto;
  padding: 0 40px;
}

.ab-team-header {
  text-align: center;
  margin-bottom: 60px;
}

.ab-team-heading {
  font-family: var(--font-serif);
  font-size: clamp(2.5rem, 4vw, 4rem);
  font-weight: 400;
  letter-spacing: -0.03em;
  color: var(--matte-black);
  line-height: 1.08;
}

.ab-team-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 40px;
}

.ab-team-card {
  text-align: center;
  transition: all 0.6s var(--ease-out-expo);
}

.ab-team-card:hover {
  transform: translateY(-8px);
}

.ab-team-image {
  position: relative;
  border-radius: 28px;
  overflow: hidden;
  aspect-ratio: 4/5;
  margin-bottom: 24px;
  box-shadow: 0 15px 50px rgba(0,0,0,0.04);
}

.ab-team-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 1s var(--ease-out-expo);
}

.ab-team-card:hover .ab-team-image img {
  transform: scale(1.06);
}

.ab-team-image-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(0,0,0,0.3) 0%, transparent 50%);
  opacity: 0;
  transition: opacity 0.5s;
}

.ab-team-card:hover .ab-team-image-overlay {
  opacity: 1;
}

.ab-team-info strong {
  display: block;
  font-family: var(--font-serif);
  font-size: 1.2rem;
  font-weight: 400;
  color: var(--matte-black);
  margin-bottom: 4px;
}

.ab-team-info span {
  font-family: var(--font-sans);
  font-size: 0.7rem;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  color: var(--champagne-gold);
  font-weight: 500;
  display: block;
  margin-bottom: 12px;
}

.ab-team-info p {
  font-size: 0.85rem;
  color: var(--text-secondary);
  font-weight: 300;
  font-style: italic;
  line-height: 1.6;
  max-width: 280px;
  margin: 0 auto;
}

/* === Final CTA Section === */
.ab-cta-final {
  position: relative;
  height: 80vh;
  min-height: 550px;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

.ab-cta-bg {
  position: absolute;
  inset: 0;
}

.ab-cta-bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  animation: abCtaZoom 15s ease-in-out infinite alternate;
}

@keyframes abCtaZoom {
  0% { transform: scale(1); }
  100% { transform: scale(1.1); }
}

.ab-cta-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(0,0,0,0.4) 0%, rgba(0,0,0,0.2) 50%, rgba(0,0,0,0.35) 100%);
  z-index: 1;
}

.ab-cta-content {
  position: relative;
  z-index: 2;
  text-align: center;
  max-width: 700px;
  padding: 0 40px;
}

.ab-cta-heading {
  font-family: var(--font-serif);
  font-size: clamp(2.8rem, 5.5vw, 5.5rem);
  font-weight: 400;
  letter-spacing: -0.03em;
  color: var(--white);
  line-height: 1.05;
  margin-bottom: 20px;
}

.ab-cta-desc {
  font-size: 1.05rem;
  color: rgba(255,255,255,0.7);
  line-height: 1.7;
  font-weight: 300;
  margin-bottom: 40px;
}

.ab-cta-buttons {
  display: flex;
  gap: 16px;
  justify-content: center;
  flex-wrap: wrap;
}

/* === Responsive === */
@media (max-width: 1024px) {
  .ab-phil-container {
    grid-template-columns: 1fr;
    gap: 50px;
    max-width: 600px;
  }
  .ab-phil-stats {
    grid-template-columns: repeat(3, 1fr);
  }
  .ab-values-grid {
    grid-template-columns: repeat(2, 1fr);
  }
  .ab-stats-grid {
    grid-template-columns: repeat(2, 1fr);
    max-width: 500px;
    margin: 0 auto;
  }
  .ab-team-grid {
    grid-template-columns: repeat(2, 1fr);
    max-width: 550px;
    margin: 0 auto;
  }
  .ab-timeline-item:nth-child(n+4) .ab-timeline-info {
    top: auto;
    bottom: calc(100% + 30px);
  }
}

@media (max-width: 768px) {\n  .ab-hero { min-height: 600px; }
  .ab-heading { font-size: clamp(2rem, 8vw, 3.2rem); }
  .ab-cta { flex-direction: column; align-items: center; }
  .ab-phil { padding: 80px 0; }
  .ab-phil-stats { grid-template-columns: 1fr; gap: 16px; }
  .ab-timeline { padding: 80px 0; }
  .ab-timeline-track { flex-direction: column; align-items: flex-start; gap: 40px; padding: 0; }
  .ab-timeline-track::before { top: 0; bottom: 0; left: 8px; right: auto; width: 2px; height: 100%; transform: none; }
  .ab-timeline-progress { top: 0; left: 8px; width: 2px !important; height: 0; transform: none; }
  .ab-timeline-item { flex-direction: row; width: 100%; gap: 24px; padding-left: 30px; }
  .ab-timeline-dot { position: absolute; left: 0; top: 4px; }
  .ab-timeline-info { position: relative; top: auto; bottom: auto; width: auto; text-align: left; opacity: 1; transform: none; }
  .ab-timeline-item.active .ab-timeline-info { opacity: 1; transform: none; }
  .ab-values { padding: 80px 0; }
  .ab-values-grid { grid-template-columns: 1fr; max-width: 400px; margin: 0 auto; }
  .ab-sustainability { padding: 100px 0; min-height: 450px; }
  .ab-sus-icons { gap: 24px; }
  .ab-stats { padding: 70px 0; }
  .ab-stats-grid { grid-template-columns: repeat(2, 1fr); gap: 16px; }
  .ab-team { padding: 80px 0; }
  .ab-team-grid { grid-template-columns: 1fr; max-width: 380px; }
  .ab-cta-final { height: 70vh; min-height: 450px; }
  .ab-cta-buttons { flex-direction: column; align-items: center; }
  .ab-btn { padding: 14px 28px; font-size: 0.7rem; }
}

@media (max-width: 480px) {
  .lux-cards { max-width: 100%; }
  .lux-card-1, .lux-card-2, .lux-card-3 { min-height: 320px; }
  .ab-stats-grid { grid-template-columns: 1fr; max-width: 280px; }
}

/* ============================================
   FOOTER
   ============================================ */

.footer {
  background: var(--matte-black);
  color: var(--text-on-dark);
  padding: 100px 0 40px;
}

.footer-grid {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1fr 1fr;
  gap: 48px;
  margin-bottom: 60px;
}

.footer-brand {
  font-family: var(--font-serif);
  font-size: 1.5rem;
  margin-bottom: 16px;
}

.footer-desc {
  font-size: 0.85rem;
  color: rgba(255, 255, 255, 0.5);
  line-height: 1.7;
  max-width: 300px;
}

.footer h4 {
  font-family: var(--font-sans);
  font-size: 0.75rem;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  margin-bottom: 24px;
  color: rgba(255, 255, 255, 0.4);
}

.footer-links a {
  display: block;
  font-size: 0.85rem;
  color: rgba(255, 255, 255, 0.7);
  padding: 6px 0;
  transition: var(--transition-fast);
}

.footer-links a:hover {
  color: var(--champagne-gold);
  padding-left: 4px;
}

.footer-bottom {
  padding-top: 40px;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 16px;
}

.footer-bottom p {
  font-size: 0.75rem;
  color: rgba(255, 255, 255, 0.3);
}

.footer-social {
  display: flex;
  gap: 20px;
}

.footer-social a {
  color: rgba(255, 255, 255, 0.4);
  font-size: 1.1rem;
  transition: var(--transition-fast);
}

.footer-social a:hover {
  color: var(--champagne-gold);
}

.footer-selectors {
  display: flex;
  gap: 16px;
}

.footer-selectors select {
  padding: 8px 16px;
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.1);
  color: rgba(255, 255, 255, 0.7);
  font-family: var(--font-sans);
  font-size: 0.75rem;
  cursor: pointer;
  outline: none;
}

/* ============================================
   SHOP PAGE
   ============================================ */

.page-header {
  padding: 180px 0 80px;
  text-align: center;
  background: linear-gradient(rgba(0,0,0,0.3), rgba(0,0,0,0.3)),
    url('../assets/images/Gold_hand_shower_overlooking_pool_202607190034.jpeg') center/cover;
  color: var(--white);
}

.page-header {
  position: relative;
}

.page-header-nav {
  position: absolute;
  top: 140px;
  left: 40px;
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: rgba(255,255,255,0.7);
  z-index: 2;
}

.page-header-nav a {
  color: rgba(255,255,255,0.9);
  transition: color 0.3s;
}

.page-header-nav a:hover {
  color: var(--champagne-gold);
}

.page-header-nav .separator {
  color: rgba(255,255,255,0.4);
}

.page-header .body-large {
  color: rgba(255,255,255,0.85);
}

.page-header h1 {
  margin-bottom: 16px;
}

.page-header .body-large {
  max-width: 500px;
  margin: 0 auto;
}

.shop-controls {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 48px;
  flex-wrap: wrap;
  gap: 16px;
  padding: 20px 24px;
  background: rgba(255,255,255,0.6);
  backdrop-filter: blur(10px);
  border-radius: 16px;
  border: 1px solid rgba(212,175,100,0.1);
  box-shadow: 0 4px 24px rgba(0,0,0,0.04);
}

.shop-filters {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
}

.filter-btn {
  padding: 10px 22px;
  border: 1.5px solid rgba(0,0,0,0.06);
  background: var(--white);
  font-family: var(--font-sans);
  font-size: 0.7rem;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  cursor: pointer;
  transition: all 0.4s var(--ease-out-expo);
  color: var(--text-secondary);
  border-radius: 50px;
  position: relative;
  overflow: hidden;
}

.filter-btn::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0; bottom: 0;
  background: linear-gradient(135deg, var(--champagne-gold), var(--champagne-light));
  opacity: 0;
  transition: opacity 0.4s var(--ease-out-expo);
  border-radius: 50px;
}

.filter-btn:hover,
.filter-btn.active {
  border-color: var(--champagne-gold);
  color: var(--matte-black);
}

.filter-btn:hover::before,
.filter-btn.active::before {
  opacity: 1;
}

.filter-btn:hover i,
.filter-btn.active i {
  color: var(--matte-black);
}

.filter-btn span,
.filter-btn i {
  position: relative;
  z-index: 1;
}

.filter-btn.active {
  box-shadow: 0 4px 16px rgba(212,175,100,0.25);
}

.shop-sort {
  display: flex;
  align-items: center;
  gap: 12px;
  background: var(--white);
  padding: 4px 16px 4px 20px;
  border-radius: 50px;
  border: 1.5px solid rgba(0,0,0,0.06);
}

.shop-sort label {
  font-size: 0.65rem;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--text-light);
  font-weight: 500;
}

.shop-sort select {
  padding: 8px 12px;
  border: none;
  font-family: var(--font-sans);
  font-size: 0.8rem;
  background: transparent;
  cursor: pointer;
  outline: none;
  color: var(--text-primary);
  min-width: 140px;
}

.product-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
}

.product-card {
  position: relative;
  background: var(--white);
  transition: all 0.5s var(--ease-out-expo);
  cursor: pointer;
  border-radius: 10px;
  overflow: hidden;
}

.product-card:hover {
  box-shadow: var(--shadow-soft);
}

.product-card-image {
  position: relative;
  aspect-ratio: 4/5;
  overflow: hidden;
  background: var(--soft-ivory);
  border-radius: 10px 10px 0 0;
}

.product-card-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 1s var(--ease-out-expo);
}

.product-card:hover .product-card-image img {
  transform: scale(1.06);
}

.product-card-actions {
  position: absolute;
  top: 10px;
  right: 10px;
  display: flex;
  flex-direction: column;
  gap: 6px;
  opacity: 0;
  transform: translateX(8px);
  transition: all 0.4s var(--ease-out-expo);
}

.product-card:hover .product-card-actions {
  opacity: 1;
  transform: translateX(0);
}

.product-card-actions button {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  border: none;
  background: var(--white);
  box-shadow: 0 4px 12px rgba(0,0,0,0.06);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.85rem;
  transition: var(--transition-fast);
  color: var(--text-secondary);
}

.product-card-actions button:hover {
  background: var(--matte-black);
  color: var(--white);
}

.product-card-info {
  padding: 14px 0;
  text-align: center;
}

.product-card-info .product-category {
  font-size: 0.6rem;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--text-light);
  margin-bottom: 4px;
}

.product-card-info h3 {
  font-family: var(--font-sans);
  font-size: 0.9rem;
  font-weight: 500;
  margin-bottom: 2px;
  line-height: 1.3;
}

.product-card-info .product-price {
  text-align: center;
}

.product-card-info .product-price {
  font-family: var(--font-sans);
  font-size: 0.95rem;
  font-weight: 400;
  color: var(--text-secondary);
}

.product-card-info .product-price .original {
  text-decoration: line-through;
  color: var(--text-light);
  font-size: 0.8rem;
  margin-right: 6px;
}

.product-card-info .product-price .sale {
  color: #c0392b;
}

.product-badge {
  position: absolute;
  top: 10px;
  left: 10px;
  padding: 3px 10px;
  font-size: 0.6rem;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  background: var(--matte-black);
  color: var(--white);
  z-index: 2;
}

.product-badge.gold {
  background: var(--champagne-gold);
}

.product-card-quick-add {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  padding: 12px;
  background: rgba(255,255,255,0.95);
  backdrop-filter: blur(10px);
  transform: translateY(100%);
  transition: transform 0.4s var(--ease-out-expo);
  z-index: 2;
}

.product-card:hover .product-card-quick-add {
  transform: translateY(0);
}

.product-card-quick-add button {
  width: 100%;
  padding: 10px;
  background: var(--matte-black);
  color: var(--white);
  border: none;
  font-family: var(--font-sans);
  font-size: 0.7rem;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  cursor: pointer;
  transition: var(--transition-fast);
}

.product-card-quick-add button:hover {
  background: var(--champagne-gold);
}

/* ============================================
   PRODUCT DETAIL PAGE
   ============================================ */

.product-detail {
  padding: 140px 0 80px;
}

.product-detail-grid {
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  gap: 60px;
}

.product-gallery {
  position: relative;
}

.product-gallery-main {
  position: relative;
  aspect-ratio: 4/5;
  background: var(--soft-ivory);
  overflow: hidden;
  cursor: crosshair;
}

.product-gallery-main img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.8s var(--ease-out-expo);
}

.product-gallery-main:hover img {
  transform: scale(1.1);
}

.product-gallery-thumbs {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 8px;
  margin-top: 16px;
}

.gallery-thumb {
  aspect-ratio: 1;
  background: var(--soft-ivory);
  cursor: pointer;
  overflow: hidden;
  border: 1px solid transparent;
  transition: var(--transition-fast);
}

.gallery-thumb.active {
  border-color: var(--matte-black);
}

.gallery-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.4s var(--ease-out-expo);
}

.gallery-thumb:hover img {
  transform: scale(1.05);
}

.product-info {
  padding-top: 20px;
}

.product-info .product-category {
  font-size: 0.7rem;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  color: var(--text-light);
  margin-bottom: 12px;
}

.product-info h1 {
  margin-bottom: 16px;
}

.product-info .product-price-lg {
  font-family: var(--font-serif);
  font-size: 2rem;
  color: var(--champagne-gold);
  margin-bottom: 32px;
}

.product-description {
  font-size: 0.95rem;
  line-height: 1.8;
  color: var(--text-secondary);
  margin-bottom: 32px;
}

.product-variants {
  margin-bottom: 32px;
}

.variant-label {
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  margin-bottom: 12px;
  color: var(--text-light);
}

.variant-options {
  display: flex;
  gap: 8px;
}

.variant-btn {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  border: 2px solid var(--border-light);
  cursor: pointer;
  transition: var(--transition-fast);
}

.variant-btn.active {
  border-color: var(--matte-black);
}

.variant-btn.size {
  width: auto;
  height: auto;
  padding: 8px 16px;
  border-radius: 0;
  font-family: var(--font-sans);
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  background: transparent;
}

.variant-btn.size.active {
  background: var(--matte-black);
  color: var(--white);
  border-color: var(--matte-black);
}

.product-quantity {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-bottom: 32px;
}

.qty-btn {
  width: 40px;
  height: 40px;
  border: 1px solid var(--border-light);
  background: transparent;
  font-size: 1.2rem;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: var(--transition-fast);
}

.qty-btn:hover {
  border-color: var(--matte-black);
}

.qty-value {
  font-size: 1rem;
  min-width: 30px;
  text-align: center;
}

.product-actions-detail {
  display: flex;
  gap: 12px;
  margin-bottom: 32px;
}

.product-actions-detail .btn-premium {
  flex: 1;
  justify-content: center;
}

.product-meta {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  padding-top: 32px;
  border-top: 1px solid var(--border-light);
}

.meta-item {
  font-size: 0.8rem;
  color: var(--text-light);
}

.meta-item strong {
  color: var(--text-primary);
  font-weight: 500;
  display: block;
  margin-bottom: 2px;
}

/* ============================================
   ABOUT PAGE
   ============================================ */

.about-hero {
  position: relative;
  height: 80vh;
  min-height: 500px;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  overflow: hidden;
}

.about-hero img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.about-hero-content {
  position: relative;
  z-index: 2;
  color: var(--white);
  max-width: 700px;
  padding: 0 40px;
}

.about-hero-content h1 {
  margin-bottom: 24px;
}

.about-story {
  padding: 120px 0;
}

.about-story-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 60px;
  align-items: center;
}

.about-story-text h2 {
  margin-bottom: 24px;
}

.about-story-text p {
  margin-bottom: 16px;
}

.timeline {
  position: relative;
  padding: 80px 0;
}

.timeline::before {
  content: '';
  position: absolute;
  left: 50%;
  top: 0;
  bottom: 0;
  width: 1px;
  background: var(--border-light);
  transform: translateX(-50%);
}

.timeline-item {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 60px;
  margin-bottom: 60px;
  position: relative;
}

.timeline-item:nth-child(even) .timeline-content {
  order: -1;
  text-align: right;
}

.timeline-dot {
  position: absolute;
  left: 50%;
  top: 20px;
  width: 12px;
  height: 12px;
  background: var(--champagne-gold);
  border-radius: 50%;
  transform: translateX(-50%);
}

.timeline-year {
  font-family: var(--font-serif);
  font-size: 3rem;
  color: var(--champagne-gold);
  margin-bottom: 8px;
}

.timeline-content h3 {
  margin-bottom: 12px;
}

/* ============================================
   BLOG PAGE
   ============================================ */

.blog-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 32px;
}

.blog-card {
  cursor: pointer;
  transition: all 0.6s var(--ease-out-expo);
}

.blog-card-image {
  aspect-ratio: 4/3;
  overflow: hidden;
  margin-bottom: 20px;
}

.blog-card-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.8s var(--ease-out-expo);
}

.blog-card:hover .blog-card-image img {
  transform: scale(1.05);
}

.blog-card .blog-category {
  font-size: 0.65rem;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  color: var(--champagne-gold);
  margin-bottom: 8px;
}

.blog-card h3 {
  font-family: var(--font-serif);
  font-size: 1.25rem;
  font-weight: 400;
  margin-bottom: 12px;
  transition: color 0.3s;
}

.blog-card:hover h3 {
  color: var(--champagne-gold);
}

.blog-card p {
  font-size: 0.85rem;
  color: var(--text-light);
  line-height: 1.6;
}

.blog-card .blog-meta {
  font-size: 0.7rem;
  color: var(--text-light);
  margin-top: 16px;
}

/* ============================================
   CONTACT PAGE
   ============================================ */

.contact-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 60px;
}

.contact-info h2 {
  margin-bottom: 24px;
}

.contact-info .body-regular {
  margin-bottom: 48px;
  max-width: 400px;
}

.contact-details {
  display: grid;
  gap: 32px;
}

.contact-item {
  display: flex;
  gap: 16px;
}

.contact-item-icon {
  width: 48px;
  height: 48px;
  background: var(--soft-ivory);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.2rem;
}

.contact-item h4 {
  font-family: var(--font-sans);
  font-size: 0.85rem;
  font-weight: 500;
  margin-bottom: 4px;
}

.contact-item p {
  font-size: 0.85rem;
  color: var(--text-light);
}

.contact-form {
  padding: 48px;
  background: var(--soft-ivory);
}

.contact-form h3 {
  margin-bottom: 32px;
}

.form-group {
  margin-bottom: 24px;
}

.form-group label {
  display: block;
  font-size: 0.7rem;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  margin-bottom: 8px;
  color: var(--text-light);
}

.form-group input,
.form-group textarea,
.form-group select {
  width: 100%;
  padding: 14px 16px;
  border: 1px solid var(--border-light);
  background: var(--white);
  font-family: var(--font-sans);
  font-size: 0.9rem;
  font-weight: 300;
  outline: none;
  transition: var(--transition-fast);
}

.form-group input:focus,
.form-group textarea:focus {
  border-color: var(--matte-black);
}

.form-group textarea {
  min-height: 120px;
  resize: vertical;
}

/* ============================================
   AUTH PAGES
   ============================================ */

.auth-section {
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 120px 40px;
}

.auth-container {
  max-width: 440px;
  width: 100%;
}

.auth-header {
  text-align: center;
  margin-bottom: 48px;
}

.auth-header h1 {
  margin-bottom: 12px;
}

.auth-header p {
  color: var(--text-light);
}

.auth-form .form-group {
  margin-bottom: 20px;
}

.auth-form .btn-premium {
  width: 100%;
  justify-content: center;
  margin-top: 8px;
}

.auth-footer {
  text-align: center;
  margin-top: 24px;
  font-size: 0.85rem;
  color: var(--text-light);
}

.auth-footer a {
  color: var(--matte-black);
  text-decoration: underline;
}

.password-toggle {
  position: relative;
}

.password-toggle input {
  padding-right: 44px;
}

.password-toggle .toggle-btn {
  position: absolute;
  right: 12px;
  top: 50%;
  transform: translateY(-50%);
  background: none;
  border: none;
  cursor: pointer;
  color: var(--text-light);
}

/* ============================================
   SCROLL ANIMATIONS
   ============================================ */

.reveal {
  opacity: 0;
  transform: translateY(40px);
  transition: all 1s var(--ease-out-expo);
}

.reveal.revealed {
  opacity: 1;
  transform: translateY(0);
}

.reveal-left {
  opacity: 0;
  transform: translateX(-60px);
  transition: all 1s var(--ease-out-expo);
}

.reveal-left.revealed {
  opacity: 1;
  transform: translateX(0);
}

.reveal-right {
  opacity: 0;
  transform: translateX(60px);
  transition: all 1s var(--ease-out-expo);
}

.reveal-right.revealed {
  opacity: 1;
  transform: translateX(0);
}

.reveal-scale {
  opacity: 0;
  transform: scale(0.95);
  transition: all 1s var(--ease-out-expo);
}

.reveal-scale.revealed {
  opacity: 1;
  transform: scale(1);
}

/* ============================================
   GLASSMORPHISM
   ============================================ */

.glass {
  background: var(--glass-bg);
  backdrop-filter: blur(var(--glass-blur));
  -webkit-backdrop-filter: blur(var(--glass-blur));
  border: 1px solid var(--glass-border);
}

.glass-card {
  background: rgba(255, 255, 255, 0.08);
  backdrop-filter: blur(24px);
  -webkit-backdrop-filter: blur(24px);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 0;
  padding: 32px;
  transition: all 0.6s var(--ease-out-expo);
}

.glass-card:hover {
  background: rgba(255, 255, 255, 0.12);
  transform: translateY(-4px);
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.08);
}

/* ============================================
   MAGNETIC HOVER
   ============================================ */

.magnetic {
  transition: transform 0.2s var(--ease-out-expo);
}

/* ============================================
   BACK TO TOP
   ============================================ */

.back-to-top {
  position: fixed;
  bottom: 40px;
  right: 40px;
  width: 48px;
  height: 48px;
  background: var(--matte-black);
  color: var(--white);
  border: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.2rem;
  z-index: 99;
  opacity: 0;
  transform: translateY(20px);
  transition: all 0.6s var(--ease-out-expo);
  pointer-events: none;
}

.back-to-top.visible {
  opacity: 1;
  transform: translateY(0);
  pointer-events: all;
}

.back-to-top:hover {
  background: var(--champagne-gold);
  transform: translateY(-4px);
}

/* ============================================
   BREADCRUMBS
   ============================================ */

.breadcrumbs {
  display: flex;
  gap: 8px;
  align-items: center;
  margin-bottom: 32px;
  font-size: 0.75rem;
  color: var(--text-light);
}

.breadcrumbs a {
  color: var(--text-light);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  transition: var(--transition-fast);
}

.breadcrumbs a:hover {
  color: var(--matte-black);
}

.breadcrumbs .separator {
  color: var(--border-light);
}

/* ============================================
   LOADING ANIMATION
   ============================================ */

.page-loader {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: var(--white);
  z-index: 99999;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: opacity 0.8s var(--ease-out-expo), visibility 0.8s;
}

.page-loader.hidden {
  opacity: 0;
  visibility: hidden;
}

.loader-logo {
  font-family: var(--font-serif);
  font-size: 2rem;
  color: var(--matte-black);
  letter-spacing: -0.02em;
  animation: loaderPulse 1.5s ease-in-out infinite;
  position: relative;
}

@keyframes loaderPulse {
  0%, 100% { opacity: 0.3; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.05); }
}

.loader-logo::after {
  content: '';
  position: absolute;
  bottom: -8px;
  left: 50%;
  transform: translateX(-50%);
  width: 0;
  height: 1.5px;
  background: linear-gradient(90deg, transparent, var(--champagne-gold), transparent);
  animation: loaderLineGrow 1.5s ease-in-out infinite;
}

@keyframes loaderLineGrow {
  0% { width: 0; opacity: 0; }
  50% { width: 100%; opacity: 0.6; }
  100% { width: 0; opacity: 0; }
}

/* ============================================
   DRAWER / SIDEBAR
   ============================================ */

.drawer-overlay {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(0, 0, 0, 0.3);
  z-index: 2000;
  opacity: 0;
  visibility: hidden;
  transition: all 0.4s var(--ease-out-expo);
}

.drawer-overlay.open {
  opacity: 1;
  visibility: visible;
}

.drawer {
  position: fixed;
  top: 0;
  right: -480px;
  width: 480px;
  max-width: 100vw;
  height: 100%;
  background: var(--white);
  z-index: 2001;
  padding: 0;
  transition: right 0.6s var(--ease-out-expo);
  overflow-y: auto;
  display: flex;
  flex-direction: column;
}

.drawer.open {
  right: 0;
}

.drawer-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 28px 32px;
  border-bottom: 1px solid var(--border-light);
  flex-shrink: 0;
}

.drawer-header h3 {
  font-family: var(--font-serif);
  font-size: 1.25rem;
  display: flex;
  align-items: center;
  gap: 10px;
}

.drawer-header h3 span {
  font-family: var(--font-sans);
  font-size: 0.7rem;
  font-weight: 400;
  color: var(--text-light);
  background: var(--soft-ivory);
  padding: 2px 10px;
}

.drawer-close {
  background: none;
  border: none;
  font-size: 1.5rem;
  cursor: pointer;
  color: var(--text-secondary);
  transition: var(--transition-fast);
  width: 40px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
}

.drawer-close:hover {
  background: var(--soft-ivory);
  color: var(--matte-black);
}

.drawer-body {
  flex: 1;
  padding: 24px 32px;
  overflow-y: auto;
}

.drawer-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 80px 0;
  color: var(--text-light);
  text-align: center;
}

.drawer-empty i {
  font-size: 3rem;
  margin-bottom: 16px;
  opacity: 0.2;
}

.drawer-empty p {
  font-size: 0.9rem;
  margin-bottom: 6px;
}

.drawer-empty .empty-sub {
  font-size: 0.8rem;
  color: var(--text-light);
}

.drawer-footer {
  padding: 20px 32px;
  border-top: 1px solid var(--border-light);
  flex-shrink: 0;
  background: var(--white);
}

.drawer-subtotal {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 16px;
}

.drawer-subtotal span:first-child {
  font-size: 0.8rem;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--text-light);
}

.drawer-subtotal .subtotal-amount {
  font-family: var(--font-serif);
  font-size: 1.3rem;
  color: var(--matte-black);
}

.drawer-checkout {
  width: 100%;
  justify-content: center;
}

.drawer-note {
  text-align: center;
  font-size: 0.7rem;
  color: var(--text-light);
  margin-top: 12px;
}

/* Cart Item */
.cart-item {
  display: flex;
  gap: 16px;
  padding: 16px 0;
  border-bottom: 1px solid var(--border-light);
  animation: cartItemIn 0.4s var(--ease-out-expo) both;
}

@keyframes cartItemIn {
  from { opacity: 0; transform: translateX(30px); }
  to { opacity: 1; transform: translateX(0); }
}

.cart-item-image {
  width: 80px;
  height: 100px;
  flex-shrink: 0;
  background: var(--soft-ivory);
  overflow: hidden;
}

.cart-item-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.cart-item-info {
  flex: 1;
  min-width: 0;
}

.cart-item-info h4 {
  font-family: var(--font-sans);
  font-size: 0.85rem;
  font-weight: 500;
  margin-bottom: 2px;
}

.cart-item-info .cart-item-variant {
  font-size: 0.7rem;
  color: var(--text-light);
  margin-bottom: 8px;
}

.cart-item-info .cart-item-price {
  font-family: var(--font-serif);
  font-size: 1rem;
  color: var(--champagne-gold);
}

.cart-item-actions {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-top: 8px;
}

.cart-item-qty {
  display: flex;
  align-items: center;
  border: 1px solid var(--border-light);
}

.cart-item-qty button {
  width: 28px;
  height: 28px;
  border: none;
  background: none;
  cursor: pointer;
  font-size: 0.8rem;
  color: var(--text-secondary);
  display: flex;
  align-items: center;
  justify-content: center;
  transition: var(--transition-fast);
}

.cart-item-qty button:hover {
  background: var(--soft-ivory);
}

.cart-item-qty span {
  width: 28px;
  text-align: center;
  font-size: 0.8rem;
  font-weight: 500;
}

.cart-item-remove {
  background: none;
  border: none;
  font-size: 0.85rem;
  color: var(--text-light);
  cursor: pointer;
  transition: var(--transition-fast);
  padding: 4px;
}

.cart-item-remove:hover {
  color: #c0392b;
}

/* ============================================
   RESPONSIVE
   ============================================ */

@media (max-width: 1400px) {
  .product-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

@media (max-width: 1200px) {
  .footer-grid {
    grid-template-columns: 1fr 1fr 1fr;
  }

  .product-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .blog-grid {
    grid-template-columns: repeat(2, 1fr);
  }

}

@media (max-width: 992px) {
  .container-premium,
  .container-wide {
    padding: 0 20px;
  }

  .section {
    padding: 80px 0;
  }

  .highlights-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .testimonials-grid {
    grid-template-columns: 1fr;
  }

  .contact-grid {
    grid-template-columns: 1fr;
  }

  .product-detail-grid {
    grid-template-columns: 1fr;
  }

  .about-story-grid {
    grid-template-columns: 1fr;
  }

  .nav-links {
    display: none;
  }

  .hamburger {
    display: flex;
  }

  .instagram-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .search-overlay-input {
    font-size: 1.6rem;
  }
}

@media (max-width: 768px) {
  .bj-featured, .bj-latest, .bj-categories, .bj-trending, .bj-newsletter, .bj-instagram { padding: 60px 0; }
  .product-grid {\n    grid-template-columns: 1fr;
  }

  .blog-grid {
    grid-template-columns: 1fr;
  }

  .footer-grid {
    grid-template-columns: 1fr 1fr;
  }

  .highlights-grid {
    grid-template-columns: 1fr;
  }

  .hero-content {
    padding: 0 24px;
  }

  .hero-content .display-heading {
    font-size: clamp(2.2rem, 10vw, 3.5rem);
    max-width: 100%;
  }

  .hero-content .heading-line:last-child {
    letter-spacing: 0.08em;
  }

  .hero-indicators {
    bottom: 70px;
  }

  .hero-indicator {
    width: 28px;
  }

  .contact-form {
    padding: 32px 24px;
  }

  .footer-bottom {
    flex-direction: column;
    text-align: center;
  }

  .back-to-top {
    bottom: 20px;
    right: 20px;
    width: 40px;
    height: 40px;
  }

  .cursor-dot,
  .cursor-ring {
    display: none;
  }

  body {
    cursor: auto;
  }

  .mobile-nav-links a {
    font-size: 1.8rem;
  }

  .search-overlay {
    padding: 120px 24px 40px;
  }
}

@media (max-width: 480px) {
  .container-premium,
  .container-wide {
    padding: 0 20px;
  }

  .section {
    padding: 60px 0;
  }

  .hero {
    min-height: 500px;
  }

  .auth-section {
    padding: 80px 20px;
    min-height: 90vh;
  }

  .hero-cta {
    flex-direction: column;
  }

  .hero-cta .btn-premium {
    width: 100%;
    justify-content: center;
  }

  .product-actions-detail {
    flex-direction: column;
  }

  .newsletter-form {
    flex-direction: column;
  }

  .newsletter-form button {
    width: 100%;
  }

  .timeline::before {
    left: 20px;
  }

  .timeline-item {
    grid-template-columns: 1fr;
    gap: 16px;
    padding-left: 48px;
  }

  .timeline-item:nth-child(even) .timeline-content {
    text-align: left;
  }

  .timeline-dot {
    left: 20px;
  }

  .timeline-year {
    font-size: 2rem;
  }

  .shop-controls {
    flex-direction: column;
    align-items: flex-start;
  }
}

/* ============================================
   WATER SPLASH SCROLL EFFECT
   ============================================ */

.water-splash-container {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  z-index: 9998;
  overflow: hidden;
}

.water-drop {
  position: absolute;
  width: 6px;
  height: 6px;
  background: radial-gradient(circle, rgba(212,175,100,0.6) 0%, rgba(212,175,100,0) 100%);
  border-radius: 50%;
  opacity: 0;
  animation: dropFloat none ease-out forwards;
}

@keyframes dropFloat {
  0% { opacity: 0; transform: translateY(0) scale(0.5); }
  15% { opacity: 0.6; }
  85% { opacity: 0.4; }
  100% { opacity: 0; transform: translateY(-250px) scale(1.2); }
}

.water-splash {
  position: fixed;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  border: 1.5px solid rgba(212,175,100,0.15);
  pointer-events: none;
  z-index: 9998;
  animation: splashOut 1.8s var(--ease-out-expo) forwards;
}

@keyframes splashOut {
  0% { width: 0; height: 0; opacity: 0.6; }
  100% { width: 300px; height: 300px; opacity: 0; }
}

/* ============================================
   PRODUCT ALIGNMENT FIXES
   ============================================ */

.product-grid {
  align-items: start;
}

.product-card {
  display: flex;
  flex-direction: column;
  width: 100%;
}

.product-card-image {
  width: 100%;
  border-radius: 10px 10px 0 0;
}

.product-card-info {
  width: 100%;
}

.product-grid .product-card:nth-child(4n+1) {
  clear: none;
}

/* ============================================
   LOVE PRODUCTS — WATER PIPE THEME
   ============================================ */

.product-card .wishlist-btn .fas.fa-heart {
  color: #D4AF64;
  filter: drop-shadow(0 0 4px rgba(212,175,100,0.4));
}

.product-card-image:hover .product-card-actions {
  opacity: 1;
  transform: translateY(0);
}

.product-badge.gold[class*="Love"],
.product-badge.gold[class*="love"] {
  background: linear-gradient(135deg, #D4AF64, #E8D5A3);
  animation: lovePulse 2s ease-in-out infinite;
}

@keyframes lovePulse {
  0%, 100% { box-shadow: 0 0 8px rgba(212,175,100,0.2); }
  50% { box-shadow: 0 0 20px rgba(212,175,100,0.4); }
}

/* Water pipe decorative elements */
.section-ivory .heading-lg::after {
  content: '─── ● ───';
  display: block;
  font-size: 0.5rem;
  letter-spacing: 0.3em;
  color: var(--champagne-gold);
  margin-top: 8px;
  opacity: 0.6;
  font-family: var(--font-sans);
  font-weight: 300;
}

/* Small pipe divider for love section */
#featuredProducts {
  position: relative;
}

#featuredProducts::before {
  content: '';
  position: absolute;
  top: -30px;
  left: 50%;
  transform: translateX(-50%);
  width: 120px;
  height: 2px;
  background: linear-gradient(90deg, transparent, var(--champagne-gold), transparent);
  opacity: 0.3;
}

/* Water drops on product badge */
.product-badge {
  position: relative;
  overflow: hidden;
}

.product-badge::before {
  content: '';
  position: absolute;
  top: -50%;
  left: -50%;
  width: 200%;
  height: 200%;
  background: radial-gradient(circle at 30% 30%, rgba(255,255,255,0.1), transparent 60%);
  animation: badgeShimmer 3s ease-in-out infinite;
  pointer-events: none;
}

@keyframes badgeShimmer {
  0%, 100% { transform: translate(-30%, -30%); }
  50% { transform: translate(30%, 30%); }
}

/* Product card water rim */
.product-card-image {
  position: relative;
  overflow: hidden;
}

.product-card-image::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: linear-gradient(90deg, transparent, var(--champagne-gold), transparent);
  opacity: 0;
  transition: opacity 0.5s var(--ease-out-expo);
}

.product-card:hover .product-card-image::after {
  opacity: 0.4;
}

/* ============================================
   THREE.JS CONTAINER
   ============================================ */

#three-container {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  z-index: 1;
}

/* ============================================
   WATER RIPPLE
   ============================================ */

.section-newsletter {
  position: relative;
  background: linear-gradient(rgba(26,26,26,0.85), rgba(26,26,26,0.85)),
    url('../assets/images/sec-img.jpeg') center/cover fixed;
}

.section-newsletter .container-premium {
  position: relative;
  z-index: 1;
}

.ripple-container {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
  pointer-events: none;
  z-index: 1;
}

.ripple {
  position: absolute;
  border-radius: 50%;
  border: 1px solid rgba(255, 255, 255, 0.15);
  animation: rippleExpand 4s var(--ease-out-expo) infinite;
}

@keyframes rippleExpand {
  0% { width: 0; height: 0; opacity: 0; }
  10% { opacity: 1; }
  100% { width: 800px; height: 800px; opacity: 0; }
}

/* ============================================
   TOAST / NOTIFICATION
   ============================================ */

.toast-container {
  position: fixed;
  top: 100px;
  right: 40px;
  z-index: 10000;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.toast {
  padding: 16px 24px;
  background: var(--matte-black);
  color: var(--white);
  font-size: 0.85rem;
  min-width: 280px;
  transform: translateX(120%);
  transition: transform 0.6s var(--ease-out-expo);
  display: flex;
  align-items: center;
  gap: 12px;
}

.toast.show {
  transform: translateX(0);
}

.toast-icon {
  font-size: 1.2rem;
}

.toast.success .toast-icon { color: #4CAF50; }
.toast.error .toast-icon { color: #f44336; }

/* ============================================
   QUICK VIEW MODAL
   ============================================ */

.modal-overlay {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(0, 0, 0, 0.45);
  z-index: 5000;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  visibility: hidden;
  transition: all 0.5s var(--ease-out-expo);
  padding: 40px;
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
}

.modal-overlay.open {
  opacity: 1;
  visibility: visible;
}

.modal-content {
  max-width: 820px;
  width: 100%;
  max-height: 90vh;
  background: none;
  overflow-y: auto;
  transform: translateY(30px) scale(0.97);
  transition: transform 0.6s var(--ease-out-expo), opacity 0.6s var(--ease-out-expo);
  position: relative;
  opacity: 0;
  border-radius: 20px;
  box-shadow: 0 40px 100px rgba(0,0,0,0.15);
}

.modal-overlay.open .modal-content {
  transform: translateY(0) scale(1);
  opacity: 1;
}

.modal-close {
  position: absolute;
  top: 16px;
  right: 16px;
  z-index: 10;
  width: 38px;
  height: 38px;
  border-radius: 50%;
  border: none;
  background: rgba(255,255,255,0.9);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  font-size: 1rem;
  cursor: pointer;
  color: #222;
  transition: all 0.3s var(--ease-out-expo);
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 2px 12px rgba(0,0,0,0.06);
}

.modal-close:hover {
  background: #222;
  color: #fff;
  transform: rotate(90deg);
}

.qv-layout {
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  gap: 0;
  align-items: start;
  background: #fff;
  border-radius: 20px;
  overflow: hidden;
}

.qv-image {
  position: relative;
  height: 100%;
  min-height: 420px;
  overflow: hidden;
  background: #FAF9F7;
}

.qv-image-bg {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, #F8F5F0 0%, #F0EBE3 100%);
  z-index: 0;
}

.qv-image img {
  position: relative;
  z-index: 1;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.8s var(--ease-out-expo);
}

.qv-layout:hover .qv-image img {
  transform: scale(1.03);
}

.qv-details {
  padding: 48px 44px 44px;
  display: flex;
  align-items: center;
}

.qv-details-inner {
  width: 100%;
}

.qv-brand {
  font-size: 0.6rem;
  font-weight: 600;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: #C9A86A;
  display: block;
  margin-bottom: 8px;
}

.qv-cat {
  font-size: 0.65rem;
  text-transform: uppercase;
  letter-spacing: 0.2em;
  color: #999;
  font-weight: 500;
  display: block;
  margin-bottom: 12px;
}

.qv-details h2 {
  font-family: var(--font-serif);
  font-size: clamp(1.4rem, 2.5vw, 2rem);
  font-weight: 400;
  color: #222;
  margin: 0 0 12px;
  line-height: 1.2;
  letter-spacing: -0.01em;
}

.qv-rating {
  display: flex;
  align-items: center;
  gap: 6px;
  color: #C9A86A;
  font-size: 0.8rem;
  margin-bottom: 8px;
}

.qv-rating span {
  color: #aaa;
  margin-left: 4px;
  font-size: 0.75rem;
}

.qv-price {
  font-size: 1.5rem;
  font-weight: 500;
  color: #222;
  margin-bottom: 12px;
  font-family: var(--font-sans);
}

.qv-divider {
  display: flex;
  margin-bottom: 16px;
}

.qv-divider span {
  display: block;
  width: 36px;
  height: 1.5px;
  background: #C9A86A;
  opacity: 0.4;
}

.qv-desc {
  font-size: 0.88rem;
  color: #777;
  line-height: 1.7;
  margin: 0 0 24px;
  font-weight: 300;
}

.qv-qty label {
  font-size: 0.7rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: #222;
  display: block;
  margin-bottom: 10px;
}

.qv-qty-selector {
  display: inline-flex;
  align-items: center;
  border: 1px solid rgba(0,0,0,0.08);
  border-radius: 50px;
  overflow: hidden;
}

.qv-qty-btn {
  width: 44px;
  height: 44px;
  border: none;
  background: none;
  font-size: 1.1rem;
  cursor: pointer;
  transition: all 0.3s;
  color: #222;
  display: flex;
  align-items: center;
  justify-content: center;
}

.qv-qty-btn:hover {
  background: #F8F5F0;
  color: #C9A86A;
}

.qv-qty-selector .qty-value {
  min-width: 36px;
  text-align: center;
  font-size: 0.95rem;
  font-weight: 500;
  color: #222;
}

.qv-actions {
  margin-top: 24px;
}

.qv-atc-btn {
  width: 100%;
  padding: 16px 32px;
  border: none;
  border-radius: 50px;
  background: #C9A86A;
  color: #fff;
  font-size: 0.75rem;
  font-weight: 500;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  cursor: pointer;
  transition: all 0.5s var(--ease-out-expo);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  box-shadow: 0 4px 20px rgba(201,168,106,0.25);
}

.qv-atc-btn:hover {
  background: #222;
  gap: 16px;
  box-shadow: 0 8px 30px rgba(0,0,0,0.1);
  transform: translateY(-2px);
}

.qv-footnote {
  text-align: center;
  margin-top: 14px;
  font-size: 0.7rem;
  color: #bbb;
  letter-spacing: 0.05em;
}

@media (max-width: 768px) {\n  .qv-layout { grid-template-columns: 1fr; }
  .qv-image { min-height: 280px; }
  .qv-details { padding: 32px 24px; }
  .modal-overlay { padding: 16px; }
  .modal-content { padding: 0; }
}

/* ============================================
   FLOATING AMBIENT PARTICLES
   ============================================ */

.floating-particles {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  z-index: 1;
  overflow: hidden;
}

.floating-particle {
  position: absolute;
  width: 4px;
  height: 4px;
  background: radial-gradient(circle at 50% 50%, rgba(212,175,100,0.4), transparent);
  border-radius: 50%;
  animation: floatParticle var(--duration, 8s) ease-in-out infinite;
  animation-delay: var(--delay, 0s);
  opacity: 0;
}

@keyframes floatParticle {
  0% { transform: translateY(100vh) translateX(0) scale(0); opacity: 0; }
  10% { opacity: 0.6; }
  50% { opacity: 0.3; transform: translateY(50vh) translateX(var(--drift, 30px)) scale(1); }
  90% { opacity: 0.4; }
  100% { transform: translateY(-10vh) translateX(var(--drift-reverse, -20px)) scale(0); opacity: 0; }
}

/* ============================================
   GOLD SHIMMER EFFECT
   ============================================ */

.gold-shimmer {
  position: relative;
  overflow: hidden;
}

.gold-shimmer::after {
  content: '';
  position: absolute;
  top: -50%;
  left: -50%;
  width: 200%;
  height: 200%;
  background: linear-gradient(
    45deg,
    transparent 30%,
    rgba(212,175,100,0.08) 50%,
    transparent 70%
  );
  animation: shimmerSlide 3s ease-in-out infinite;
  pointer-events: none;
}

@keyframes shimmerSlide {
  0% { transform: translateX(-100%) translateY(-100%) rotate(45deg); }
  100% { transform: translateX(100%) translateY(100%) rotate(45deg); }
}

/* ============================================
   WATER RIPPLE CARD EFFECT
   ============================================ */

.ripple-card {
  position: relative;
  overflow: hidden;
}

.ripple-card::before {
  content: '';
  position: absolute;
  top: var(--ripple-y, 50%);
  left: var(--ripple-x, 50%);
  width: 0;
  height: 0;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(212,175,100,0.08), transparent);
  transform: translate(-50%, -50%);
  transition: none;
  pointer-events: none;
}

.ripple-card:hover::before {
  width: 600px;
  height: 600px;
  transition: width 0.8s var(--ease-out-expo), height 0.8s var(--ease-out-expo);
}

/* ============================================
   TEXT REVEAL ANIMATION
   ============================================ */

.text-reveal {
  overflow: hidden;
}

.text-reveal span {
  display: block;
  animation: textRevealIn 0.8s var(--ease-out-expo) forwards;
  transform: translateY(100%);
  opacity: 0;
}

@keyframes textRevealIn {
  to { transform: translateY(0); opacity: 1; }
}

/* ============================================
   AMBIENT GRADIENT ANIMATION
   ============================================ */

.ambient-bg {
  position: relative;
}

.ambient-bg::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(
    135deg,
    rgba(212,175,100,0.03) 0%,
    rgba(248,246,243,0.3) 25%,
    rgba(212,175,100,0.02) 50%,
    rgba(232,228,222,0.2) 75%,
    rgba(212,175,100,0.03) 100%
  );
  background-size: 400% 400%;
  animation: ambientShift 15s ease-in-out infinite;
  pointer-events: none;
}

@keyframes ambientShift {
  0% { background-position: 0% 50%; }
  50% { background-position: 100% 50%; }
  100% { background-position: 0% 50%; }
}

/* ============================================
   FLOATING WATER DROPLETS (Background)
   ============================================ */

.bg-droplets {
  position: absolute;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
  z-index: 0;
}

.bg-droplet {
  position: absolute;
  width: 6px;
  height: 8px;
  background: radial-gradient(circle at 30% 30%, rgba(212,175,100,0.08), transparent);
  border-radius: 50% 50% 50% 50% / 40% 40% 60% 60%;
  animation: bgDropletFall var(--duration, 12s) ease-in infinite;
  animation-delay: var(--delay, 0s);
  opacity: 0;
}

@keyframes bgDropletFall {
  0% { transform: translateY(-20px) scale(0.4); opacity: 0; }
  10% { opacity: 0.3; }
  40% { opacity: 0.15; }
  100% { transform: translateY(calc(100vh + 20px)) scale(0.8); opacity: 0; }
}

/* ============================================
   CARD GLOW BORDER ANIMATION
   ============================================ */

.glow-border {
  position: relative;
}

.glow-border::after {
  content: '';
  position: absolute;
  inset: -1px;
  border-radius: inherit;
  background: linear-gradient(
    135deg,
    transparent,
    rgba(212,175,100,0.15),
    transparent,
    rgba(212,175,100,0.1),
    transparent
  );
  background-size: 400% 400%;
  animation: glowBorderShift 4s ease-in-out infinite;
  z-index: -1;
  opacity: 0;
  transition: opacity 0.4s;
}

.glow-border:hover::after {
  opacity: 1;
}

@keyframes glowBorderShift {
  0% { background-position: 0% 50%; }
  50% { background-position: 100% 50%; }
  100% { background-position: 0% 50%; }
}

/* ============================================
   NUMBER COUNTER ANIMATION
   ============================================ */

.counter-number {
  display: inline-block;
  font-variant-numeric: tabular-nums;
}

/* ============================================
   MISC UTILITIES
   ============================================ */

.overflow-hidden { overflow: hidden; }
.position-relative { position: relative; }
.z-1 { z-index: 1; }
.z-2 { z-index: 2; }

.text-center { text-align: center; }
.mb-1 { margin-bottom: 8px; }
.mb-2 { margin-bottom: 16px; }
.mb-3 { margin-bottom: 24px; }
.mb-4 { margin-bottom: 32px; }
.mb-5 { margin-bottom: 48px; }
.mt-1 { margin-top: 8px; }
.mt-2 { margin-top: 16px; }
.mt-3 { margin-top: 24px; }
.mt-4 { margin-top: 32px; }
.mt-5 { margin-top: 48px; }

.d-flex { display: flex; }
.align-center { align-items: center; }
.justify-center { justify-content: center; }
.justify-between { justify-content: space-between; }
.gap-1 { gap: 8px; }
.gap-2 { gap: 16px; }
.gap-3 { gap: 24px; }
.flex-wrap { flex-wrap: wrap; }
.flex-column { flex-direction: column; }

.w-100 { width: 100%; }

/* ============================================
   PRODUCT LUXURY — APPLE-LEVEL PDP
   ============================================ */

.pl-breadcrumb {
  background: #FAFAF8;
  padding: 20px 0 0;
  font-size: 0.75rem;
  color: #7A7A7A;
  letter-spacing: 0.05em;
}

.pl-breadcrumb a { color: #7A7A7A; text-decoration: none; transition: color 0.3s; }
.pl-breadcrumb a:hover { color: #C9A45C; }
.pl-breadcrumb span { color: #C9A45C; }

.pl-container-wide { max-width: 1440px; margin: 0 auto; padding: 0 40px; }

.pl-product {
  background: #FAFAF8;
  padding: 80px 0;
}

/* Gallery */
.pl-gallery { position: relative; }

.pl-gallery-main {
  position: relative;
  border-radius: 24px;
  overflow: hidden;
  background: #fff;
  box-shadow: 0 20px 60px rgba(0,0,0,0.04);
  cursor: crosshair;
}

.pl-gallery-glow {
  position: absolute;
  top: -30%; right: -20%;
  width: 80%; height: 120%;
  background: radial-gradient(ellipse, rgba(201,164,92,0.08), transparent 70%);
  pointer-events: none;
  z-index: 0;
}

.pl-gallery-main img {
  width: 100%;
  height: auto;
  display: block;
  transition: transform 0.8s var(--ease-out-expo);
}

.pl-gallery-main:hover img { transform: scale(1.04); }

.pl-gallery-zoom {
  position: absolute;
  top: 20px; right: 20px;
  z-index: 2;
  width: 44px; height: 44px;
  border-radius: 50%;
  border: none;
  background: rgba(255,255,255,0.85);
  backdrop-filter: blur(12px);
  color: #1C1C1C;
  font-size: 1rem;
  cursor: pointer;
  transition: all 0.3s;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 2px 12px rgba(0,0,0,0.04);
}

.pl-gallery-zoom:hover { background: #1C1C1C; color: #fff; transform: scale(1.05); }

.pl-gallery-view {
  position: absolute;
  bottom: 20px; left: 20px;
  z-index: 2;
  padding: 10px 20px;
  border-radius: 50px;
  border: none;
  background: rgba(255,255,255,0.85);
  backdrop-filter: blur(12px);
  color: #1C1C1C;
  font-size: 0.72rem;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.3s;
  display: flex;
  align-items: center;
  gap: 8px;
}

.pl-gallery-view:hover { background: #1C1C1C; color: #fff; }

.pl-thumbs {
  display: flex;
  gap: 14px;
  margin-top: 20px;
}

.pl-thumb {
  flex: 1;
  min-height: 120px;
  max-height: 140px;
  border-radius: 16px;
  overflow: hidden;
  cursor: pointer;
  border: 2px solid transparent;
  transition: all 0.3s;
  background: #fff;
}

.pl-thumb.active { border-color: #C9A45C; box-shadow: 0 0 0 1px #C9A45C; }
.pl-thumb:hover:not(.active) { border-color: #ddd; }

.pl-thumb img { width: 100%; height: 100%; object-fit: cover; }

/* Info Panel */
.pl-info { position: relative; }

.pl-info-sticky {
  position: sticky;
  top: 30px;
}

.pl-category {
  font-size: 0.65rem;
  font-weight: 600;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: #C9A45C;
  display: block;
  margin-bottom: 12px;
}

.pl-title {
  font-family: var(--font-serif);
  font-size: clamp(1.8rem, 3vw, 2.8rem);
  font-weight: 400;
  color: #1C1C1C;
  line-height: 1.15;
  margin-bottom: 16px;
  letter-spacing: -0.02em;
}

.pl-rating {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 16px;
}

.pl-stars { color: #C9A45C; font-size: 0.9rem; letter-spacing: 2px; }
.pl-reviews { font-size: 0.8rem; color: #7A7A7A; }

.pl-price {
  font-size: 2rem;
  font-weight: 500;
  color: #C9A45C;
  margin-bottom: 20px;
  font-family: var(--font-sans);
}

.pl-desc {
  font-size: 0.9rem;
  color: #5A5A5A;
  line-height: 1.7;
  margin-bottom: 20px;
  font-weight: 300;
}

.pl-avail {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 0.8rem;
  color: #2E7D32;
  margin-bottom: 28px;
}

.pl-avail-dot {
  width: 8px; height: 8px;
  border-radius: 50%;
  background: #2E7D32;
  display: inline-block;
}

.pl-option { margin-bottom: 24px; }

.pl-option label {
  font-size: 0.7rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: #1C1C1C;
  display: block;
  margin-bottom: 12px;
}

.pl-swatches { display: flex; gap: 10px; }

.pl-swatch {
  width: 40px; height: 40px;
  border-radius: 50%;
  border: 2px solid transparent;
  cursor: pointer;
  transition: all 0.3s;
  position: relative;
}

.pl-swatch.active { border-color: #C9A45C; box-shadow: 0 0 0 3px #fff, 0 0 0 5px #C9A45C; }
.pl-swatch:hover:not(.active) { transform: scale(1.1); }

.pl-sizes { display: flex; gap: 10px; }

.pl-size {
  min-width: 52px; height: 44px;
  border-radius: 12px;
  border: 1.5px solid #EAEAEA;
  background: #fff;
  font-size: 0.8rem;
  font-weight: 500;
  color: #1C1C1C;
  cursor: pointer;
  transition: all 0.3s;
  padding: 0 16px;
}

.pl-size.active { border-color: #1C1C1C; background: #1C1C1C; color: #fff; }
.pl-size:hover:not(.active) { border-color: #C9A45C; color: #C9A45C; }

/* Purchase */
.pl-purchase {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: 24px;
}

.pl-qty {
  display: flex;
  align-items: center;
  border: 1.5px solid #EAEAEA;
  border-radius: 14px;
  overflow: hidden;
}

.pl-qty-btn {
  width: 44px; height: 48px;
  border: none;
  background: none;
  font-size: 1.1rem;
  cursor: pointer;
  transition: all 0.3s;
  color: #1C1C1C;
}

.pl-qty-btn:hover { background: #FAFAF8; color: #C9A45C; }
.pl-qty span { min-width: 32px; text-align: center; font-size: 0.9rem; font-weight: 500; }

.pl-atc {
  flex: 1;
  min-width: 160px;
  height: 48px;
  border: none;
  border-radius: 14px;
  background: #1C1C1C;
  color: #fff;
  font-size: 0.75rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  cursor: pointer;
  transition: all 0.5s var(--ease-out-expo);
}

.pl-atc:hover { background: #C9A45C; transform: translateY(-2px); box-shadow: 0 8px 24px rgba(201,164,92,0.3); }

.pl-buy {
  flex: 1;
  min-width: 160px;
  height: 48px;
  border: 1.5px solid #C9A45C;
  border-radius: 14px;
  background: transparent;
  color: #C9A45C;
  font-size: 0.75rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  cursor: pointer;
  transition: all 0.5s var(--ease-out-expo);
}

.pl-buy:hover { background: #C9A45C; color: #fff; transform: translateY(-2px); }

.pl-actions {
  display: flex;
  gap: 8px;
  width: 100%;
  margin-top: 4px;
}

.pl-action-btn {
  width: 44px; height: 44px;
  border-radius: 12px;
  border: 1.5px solid #EAEAEA;
  background: #fff;
  color: #7A7A7A;
  cursor: pointer;
  transition: all 0.3s;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.9rem;
}

.pl-action-btn:hover { border-color: #C9A45C; color: #C9A45C; transform: translateY(-2px); }

/* Trust */
.pl-trust {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 10px;
  padding: 20px;
  background: rgba(255,255,255,0.6);
  backdrop-filter: blur(12px);
  border-radius: 16px;
  border: 1px solid rgba(255,255,255,0.8);
}

.pl-trust-item {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 0.7rem;
  color: #5A5A5A;
}

.pl-trust-item i { color: #C9A45C; font-size: 0.8rem; width: 16px; }

/* Highlights */
.pl-highlights {
  padding: 80px 0;
  background: #FAFAF8;
}

.pl-h-grid {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 16px;
}

.pl-h-card {
  background: #fff;
  border-radius: 18px;
  padding: 32px 20px;
  text-align: center;
  transition: transform 0.5s var(--ease-out-expo), box-shadow 0.5s var(--ease-out-expo);
  box-shadow: 0 4px 20px rgba(0,0,0,0.02);
}

.pl-h-card:hover { transform: translateY(-6px); box-shadow: 0 16px 40px rgba(0,0,0,0.04); }

.pl-h-icon {
  width: 48px; height: 48px;
  margin: 0 auto 14px;
  border-radius: 50%;
  background: #FAFAF8;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #C9A45C;
  font-size: 1rem;
}

.pl-h-card h4 { font-size: 0.78rem; font-weight: 600; color: #1C1C1C; margin-bottom: 6px; }
.pl-h-card p { font-size: 0.72rem; color: #7A7A7A; line-height: 1.5; margin: 0; }

/* Specs */
.pl-specs {
  padding: 0 0 80px;
  background: #FAFAF8;
}

.pl-specs-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}

.pl-spec-card {
  background: #fff;
  border-radius: 18px;
  padding: 36px 28px;
  box-shadow: 0 4px 20px rgba(0,0,0,0.02);
  transition: transform 0.5s var(--ease-out-expo);
}

.pl-spec-card:hover { transform: translateY(-4px); }

.pl-spec-card h3 {
  font-family: var(--font-serif);
  font-size: 1.1rem;
  font-weight: 400;
  color: #1C1C1C;
  margin-bottom: 10px;
}

.pl-spec-card p { font-size: 0.85rem; color: #7A7A7A; line-height: 1.7; margin: 0; }

/* Related */
.pl-related {
  padding: 80px 0;
  background: #FAFAF8;
}

.pl-section-label {
  font-size: 0.65rem;
  font-weight: 600;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: #C9A45C;
  display: block;
  margin-bottom: 8px;
}

.pl-related-head { text-align: center; margin-bottom: 48px; }
.pl-related-head h2 { font-family: var(--font-serif); font-size: clamp(1.6rem, 3vw, 2.4rem); font-weight: 300; color: #1C1C1C; margin: 0; }

.pl-related-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
}

.pl-related-card {
  background: #fff;
  border-radius: 18px;
  overflow: hidden;
  transition: transform 0.5s var(--ease-out-expo), box-shadow 0.5s var(--ease-out-expo);
  box-shadow: 0 4px 20px rgba(0,0,0,0.02);
  cursor: pointer;
}

.pl-related-card:hover { transform: translateY(-6px); box-shadow: 0 16px 40px rgba(0,0,0,0.04); }

.pl-related-img {
  aspect-ratio: 4/5;
  overflow: hidden;
}

.pl-related-img img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.7s var(--ease-out-expo); }

.pl-related-card:hover .pl-related-img img { transform: scale(1.05); }

.pl-related-card { padding-bottom: 20px; }
.pl-related-cat { font-size: 0.6rem; font-weight: 600; letter-spacing: 0.15em; text-transform: uppercase; color: #C9A45C; display: block; padding: 16px 20px 4px; }
.pl-related-card h4 { font-size: 0.95rem; font-weight: 500; color: #1C1C1C; padding: 0 20px; margin: 0 0 4px; }
.pl-related-price { font-size: 0.9rem; font-weight: 500; color: #1C1C1C; padding: 0 20px; }

/* Reviews */
.pl-reviews {
  padding: 0 0 80px;
  background: #FAFAF8;
}

.pl-rev-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}

.pl-rev-card {
  background: #fff;
  border-radius: 18px;
  padding: 32px;
  box-shadow: 0 4px 20px rgba(0,0,0,0.02);
}

.pl-rev-stars { color: #C9A45C; font-size: 0.9rem; margin-bottom: 14px; letter-spacing: 2px; }
.pl-rev-card p { font-size: 0.85rem; color: #5A5A5A; line-height: 1.7; margin-bottom: 20px; font-style: italic; }

.pl-rev-author {
  display: flex;
  align-items: center;
  gap: 12px;
}

.pl-rev-author img { width: 40px; height: 40px; border-radius: 50%; object-fit: cover; }
.pl-rev-author strong { font-size: 0.8rem; color: #1C1C1C; display: block; }
.pl-rev-author span { font-size: 0.7rem; color: #7A7A7A; }

/* Responsive */
@media (max-width: 1200px) {
  .pl-h-grid { grid-template-columns: repeat(3, 1fr); }
}

@media (max-width: 1024px) {
  .pl-info-sticky { position: static; }
  .pl-related-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 768px) {
  .pl-container-wide { padding: 0 20px; }
  .pl-product, .pl-highlights, .pl-related, .pl-specs, .pl-reviews { padding: 60px 0; }
  .pl-thumbs { gap: 10px; margin-top: 14px; }
  .pl-thumb { border-radius: 12px; min-height: 80px; max-height: 100px; }
  .pl-purchase { flex-direction: column; }
  .pl-atc, .pl-buy { min-width: auto; }
  .pl-trust { grid-template-columns: 1fr 1fr; }
  .pl-h-grid { grid-template-columns: repeat(2, 1fr); }
  .pl-specs-grid { grid-template-columns: 1fr; }
  .pl-rev-grid { grid-template-columns: 1fr; }
  .pl-related-grid { grid-template-columns: 1fr; }
}

@media (max-width: 480px) {
  .pl-container-wide { padding: 0 20px; }
  .pl-gallery-view { display: none; }
  .pl-swatches { gap: 8px; }
  .pl-swatch { width: 34px; height: 34px; }
  .pl-h-grid { grid-template-columns: 1fr; }
}

/* Contact page */
.bj-hero-contact { height: 60vh; min-height: 450px; }
.bj-contact-section { padding-top: 80px; }
.bj-featured-card-contact { grid-template-columns: 1fr 1.2fr; }
.bj-contact-body { padding: 60px !important; }
.bj-contact-list { display: flex; flex-direction: column; gap: 24px; margin-top: 36px; }
.bj-contact-item { display: flex; align-items: center; gap: 16px; }
.bj-contact-icon { width: 44px; height: 44px; border-radius: 50%; background: #F5F2EC; display: flex; align-items: center; justify-content: center; color: #C8A96A; font-size: 1rem; flex-shrink: 0; }
.bj-contact-item h4 { font-size: 0.85rem; font-weight: 600; color: #222; margin-bottom: 2px; }
.bj-contact-item p { font-size: 0.85rem; color: #777; margin: 0; }
.bj-contact-form-wrap { background: #fff; padding: 60px; }
.bj-contact-form-title { font-family: var(--font-serif); font-size: 1.4rem; font-weight: 400; color: #222; margin-bottom: 6px; }
.bj-contact-form-sub { font-size: 0.85rem; color: #777; margin-bottom: 32px; }
.bj-contact-form-wrap input, 
.bj-contact-form-wrap select, 
.bj-contact-form-wrap textarea { width: 100%; padding: 14px 18px; border: 1px solid rgba(0,0,0,0.08); border-radius: 12px; font-size: 0.85rem; background: #FAF9F7; outline: none; transition: border-color 0.3s; }
.bj-contact-form-wrap input:focus,
.bj-contact-form-wrap select:focus,
.bj-contact-form-wrap textarea:focus { border-color: #C8A96A; }
.bj-contact-field { margin-bottom: 20px; }
.bj-contact-field label { font-size: 0.72rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.1em; color: #222; display: block; margin-bottom: 8px; }
.bj-contact-field textarea { resize: vertical; }
.bj-contact-submit { width: 100%; justify-content: center; }
.bj-contact-map { width: 100%; height: 400px; filter: grayscale(0.3); overflow: hidden; }
.bj-contact-map iframe { width: 100%; height: 100%; border: 0; }

@media (max-width: 768px) {
  .bj-contact-map { height: 280px; }
}

@media (max-width: 768px) {
  .bj-hero-contact { height: 50vh; min-height: 350px; }
  .bj-featured-card-contact { grid-template-columns: 1fr; }
  .bj-contact-section { padding-top: 40px !important; }
  .bj-contact-body { padding: 32px 24px !important; }
  .bj-contact-form-wrap { padding: 32px 24px; }
  .bj-contact-item { gap: 12px; }
  .bj-contact-icon { width: 36px; height: 36px; font-size: 0.85rem; }
}

@media (max-width: 480px) {
  .bj-contact-body { padding: 24px 16px !important; }
  .bj-contact-form-wrap { padding: 24px 16px; }
  .bj-contact-list { gap: 16px; margin-top: 24px; }
}

/* ============================================
   BLOG JOURNAL — LUXURY EDITORIAL
   ============================================ */

/* Hero */
.bj-hero {
  position: relative;
  height: 85vh;
  min-height: 600px;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

.bj-hero-bg {
  position: absolute;
  inset: 0;
  z-index: 0;
}

.bj-hero-bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.bj-hero-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(0,0,0,0.6) 0%, rgba(0,0,0,0.2) 50%, rgba(0,0,0,0.4) 100%);
}

.bj-hero-content {
  position: relative;
  z-index: 2;
  width: 100%;
  text-align: center;
}

.bj-hero-label {
  font-family: var(--font-serif);
  font-size: clamp(3rem, 6vw, 5.5rem);
  font-weight: 300;
  color: #fff;
  display: block;
  margin-bottom: 8px;
  letter-spacing: 0.06em;
}

.bj-hero-title {
  font-size: clamp(1rem, 2vw, 1.3rem);
  font-weight: 300;
  color: rgba(255,255,255,0.8);
  letter-spacing: 0.3em;
  text-transform: uppercase;
  margin-bottom: 20px;
}

.bj-hero-desc {
  font-size: clamp(0.85rem, 1.2vw, 1rem);
  color: rgba(255,255,255,0.6);
  max-width: 560px;
  margin: 0 auto;
  line-height: 1.7;
  font-weight: 300;
}

/* Featured Article */
.bj-featured {
  padding: 80px 0;
  background: #FAF9F7;
}

.bj-featured-card {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 60px;
  align-items: center;
  background: #fff;
  border-radius: 20px;
  overflow: hidden;
  box-shadow: 0 20px 60px rgba(0,0,0,0.04);
}

.bj-featured-image {
  height: 100%;
  min-height: 400px;
  overflow: hidden;
}

.bj-featured-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.8s var(--ease-out-expo);
}

.bj-featured-card:hover .bj-featured-image img {
  transform: scale(1.04);
}

.bj-featured-body {
  padding: 60px 60px 60px 0;
}

@media (max-width: 768px) {
  .bj-featured-body {
    padding: 40px 24px;
  }
  .bj-featured-card {
    gap: 0;
  }
}

.bj-featured-cat {
  font-size: 0.7rem;
  text-transform: uppercase;
  letter-spacing: 0.2em;
  color: #C8A96A;
  font-weight: 600;
  margin-bottom: 16px;
  display: block;
}

.bj-featured-title {
  font-family: var(--font-serif);
  font-size: clamp(1.8rem, 3vw, 2.6rem);
  font-weight: 400;
  color: #222;
  line-height: 1.2;
  margin-bottom: 16px;
}

.bj-featured-meta {
  display: flex;
  gap: 20px;
  font-size: 0.8rem;
  color: #777;
  margin-bottom: 20px;
}

.bj-featured-desc {
  font-size: 0.95rem;
  color: #555;
  line-height: 1.7;
  margin-bottom: 28px;
}

.bj-featured-author {
  color: #C8A96A;
  font-weight: 500;
}

/* Buttons */
.bj-btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 14px 32px;
  font-size: 0.75rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  border-radius: 50px;
  cursor: pointer;
  transition: all 0.5s var(--ease-out-expo);
  text-decoration: none;
  border: none;
}

.bj-btn-primary {
  background: #C8A96A;
  color: #fff;
}

.bj-btn-primary:hover {
  background: #222;
  color: #fff;
  gap: 14px;
}

.bj-btn-outline {
  background: none;
  color: #222;
  border: 1.5px solid #ddd;
}

.bj-btn-outline:hover {
  border-color: #C8A96A;
  background: #C8A96A;
  color: #fff;
}

/* Section Header */
.bj-section-header {
  text-align: center;
  margin-bottom: 60px;
}

.bj-section-title {
  font-family: var(--font-serif);
  font-size: clamp(2rem, 3.5vw, 3rem);
  font-weight: 300;
  color: #222;
  margin-bottom: 16px;
}

.bj-section-line {
  width: 40px;
  height: 2px;
  background: #C8A96A;
  margin: 0 auto;
}

/* Latest Articles Grid */
.bj-latest {
  padding: 80px 0;
  background: #FAF9F7;
}

.bj-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 30px;
  margin-bottom: 60px;
}

.bj-card {
  background: #fff;
  border-radius: 16px;
  overflow: hidden;
  transition: transform 0.5s var(--ease-out-expo), box-shadow 0.5s var(--ease-out-expo);
  box-shadow: 0 4px 20px rgba(0,0,0,0.03);
}

.bj-card:hover {
  transform: translateY(-8px);
  box-shadow: 0 20px 50px rgba(0,0,0,0.06);
}

.bj-card-image {
  position: relative;
  overflow: hidden;
  aspect-ratio: 4/3;
}

.bj-card-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.7s var(--ease-out-expo);
}

.bj-card:hover .bj-card-image img {
  transform: scale(1.06);
}

.bj-card-badge {
  position: absolute;
  top: 16px;
  left: 16px;
  background: rgba(255,255,255,0.95);
  backdrop-filter: blur(8px);
  padding: 6px 16px;
  border-radius: 20px;
  font-size: 0.65rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: #222;
}

.bj-card-body {
  padding: 24px;
}

.bj-card-title {
  font-family: var(--font-serif);
  font-size: 1.3rem;
  font-weight: 400;
  color: #222;
  line-height: 1.3;
  margin-bottom: 10px;
}

.bj-card-desc {
  font-size: 0.85rem;
  color: #777;
  line-height: 1.6;
  margin-bottom: 16px;
}

.bj-card-meta {
  display: flex;
  justify-content: space-between;
  font-size: 0.72rem;
  color: #aaa;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.bj-loadmore {
  text-align: center;
}

/* Categories */
.bj-categories {
  padding: 80px 0;
  background: #F5F2EC;
}

.bj-cat-grid {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 16px;
}

.bj-cat-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  padding: 32px 16px;
  border: 1px solid rgba(0,0,0,0.06);
  border-radius: 16px;
  text-decoration: none;
  transition: all 0.4s var(--ease-out-expo);
  background: transparent;
}

.bj-cat-card:hover {
  background: #fff;
  border-color: #fff;
  box-shadow: 0 8px 30px rgba(0,0,0,0.04);
  transform: translateY(-4px);
}

.bj-cat-icon {
  width: 48px;
  height: 48px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: #FAF9F7;
  color: #C8A96A;
  font-size: 1.1rem;
  transition: all 0.4s var(--ease-out-expo);
}

.bj-cat-card:hover .bj-cat-icon {
  background: #C8A96A;
  color: #fff;
}

.bj-cat-label {
  font-size: 0.72rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: #222;
  text-align: center;
}

/* Trending */
.bj-trending {
  padding: 80px 0;
  background: #FAF9F7;
}

.bj-trending-layout {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 60px;
  align-items: start;
}

.bj-trending-featured {
  border-radius: 16px;
  overflow: hidden;
}

.bj-trending-featured img {
  width: 100%;
  height: 500px;
  object-fit: cover;
  display: block;
}

.bj-trending-list {
  display: flex;
  flex-direction: column;
  gap: 0;
}

.bj-trending-item {
  display: flex;
  gap: 20px;
  padding: 24px 0;
  text-decoration: none;
  border-bottom: 1px solid rgba(0,0,0,0.04);
  transition: all 0.3s var(--ease-out-expo);
}

.bj-trending-item:last-child {
  border-bottom: none;
}

.bj-trending-item:hover {
  padding-left: 12px;
}

.bj-trending-num {
  font-family: var(--font-serif);
  font-size: 2rem;
  font-weight: 300;
  color: #C8A96A;
  line-height: 1;
  min-width: 48px;
}

.bj-trending-info h4 {
  font-size: 1rem;
  font-weight: 400;
  color: #222;
  margin-bottom: 6px;
  line-height: 1.4;
}

.bj-trending-meta {
  font-size: 0.72rem;
  color: #aaa;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

/* Newsletter */
.bj-newsletter {
  padding: 80px 0;
  background: #F5F2EC;
}

.bj-newsletter-inner {
  max-width: 620px;
  margin: 0 auto;
  text-align: center;
}

.bj-newsletter-label {
  font-family: var(--font-serif);
  font-size: clamp(2.2rem, 4vw, 3.5rem);
  font-weight: 300;
  color: #222;
  display: block;
  margin-bottom: 16px;
}

.bj-newsletter-title {
  font-size: 0.95rem;
  font-weight: 300;
  color: #777;
  line-height: 1.7;
  margin-bottom: 36px;
}

.bj-newsletter-form {
  display: flex;
  gap: 12px;
  max-width: 480px;
  margin: 0 auto;
}

.bj-newsletter-input {
  flex: 1;
  padding: 16px 24px;
  border: 1px solid rgba(0,0,0,0.08);
  border-radius: 50px;
  font-size: 0.85rem;
  background: #fff;
  outline: none;
  transition: border-color 0.3s;
}

.bj-newsletter-input:focus {
  border-color: #C8A96A;
}

/* Instagram */
.bj-instagram {
  padding: 80px 0 0;
  background: #FAF9F7;
}

.bj-insta-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  margin-top: 60px;
}

.bj-insta-item {
  position: relative;
  overflow: hidden;
  aspect-ratio: 1;
  display: block;
}

.bj-insta-item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.7s var(--ease-out-expo);
}

.bj-insta-item:hover img {
  transform: scale(1.08);
}

.bj-insta-overlay {
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,0.3);
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  transition: opacity 0.4s var(--ease-out-expo);
  color: #fff;
  font-size: 1.8rem;
}

.bj-insta-item:hover .bj-insta-overlay {
  opacity: 1;
}

/* Responsive */
@media (max-width: 1024px) {
  .bj-grid {
    grid-template-columns: repeat(2, 1fr);
  }
  .bj-cat-grid {
    grid-template-columns: repeat(3, 1fr);
  }
  .bj-trending-layout {
    grid-template-columns: 1fr;
    gap: 40px;
  }
  .bj-trending-featured img {
    height: 350px;
  }
  .bj-insta-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 768px) {
  .bj-hero {
    height: 70vh;
    min-height: 500px;
  }
  .bj-hero-content {
    padding: 0;
  }
  .bj-featured-card {
    grid-template-columns: 1fr;
  }
  .bj-featured-body {
    padding: 40px 24px;
  }
  .bj-featured-image {
    min-height: 280px;
  }
  .bj-grid {
    grid-template-columns: 1fr;
    gap: 24px;
  }
  .bj-cat-grid {
    grid-template-columns: repeat(2, 1fr);
  }
  .bj-trending-layout {
    grid-template-columns: 1fr;
  }
  .bj-trending-featured {
    display: none;
  }
  .bj-insta-grid {
    grid-template-columns: repeat(2, 1fr);
  }
  .bj-newsletter-form {
    flex-direction: column;
  }
  .bj-newsletter-input {
    width: 100%;
  }
}

@media (max-width: 480px) {
  .bj-hero {
    height: 60vh;
    min-height: 400px;
  }
  .bj-cat-grid {
    grid-template-columns: 1fr 1fr;
  }
  .bj-featured-meta {
    flex-wrap: wrap;
    gap: 8px;
  }
  .bj-insta-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}










