body {
      box-sizing: border-box;
    }
    /* Base font setup – will be overridden via JS for font editing */
    body {
      margin: 0;
    }

    html, body {
      height: 100%;
      width: 100%;
    }

    /* Smooth scrolling */
    html {
      scroll-behavior: smooth;
    }

    /* Custom scroll animations */
    .fade-slide-up {
      opacity: 0;
      transform: translateY(16px);
      transition: opacity 0.7s ease, transform 0.7s ease;
    }
    .fade-slide-up.in-view {
      opacity: 1;
      transform: translateY(0);
    }

    .fade-scale {
      opacity: 0;
      transform: scale(0.96);
      transition: opacity 0.7s ease, transform 0.7s ease;
    }
    .fade-scale.in-view {
      opacity: 1;
      transform: scale(1);
    }

    /* Hero floating icons animation */
    .float-slow {
      animation: floatSlow 6s ease-in-out infinite;
    }
    .float-slow-delay {
      animation: floatSlow 7s ease-in-out infinite;
      animation-delay: 1.2s;
    }
    @keyframes floatSlow {
      0%, 100% {
        transform: translateY(0);
      }
      50% {
        transform: translateY(-10px);
      }
    }

    /* Custom shadow for luxury feel */
    .shadow-soft-gold {
      box-shadow: 0 18px 45px rgba(0, 0, 0, 0.18);
    }

    /* Sticky header background transition */
    .header-scrolled {
      background-color: rgba(249, 246, 240, 0.96);
      backdrop-filter: blur(10px);
      box-shadow: 0 12px 30px rgba(0, 0, 0, 0.12);
    }

    /* Focus visible outlines */
    :focus-visible {
      outline: 2px solid #D4AF37;
      outline-offset: 2px;
    }

    /* Carousel controls */
    .carousel-track {
      transition: transform 0.6s ease;
    }

    /* Map placeholder */
    .map-gradient {
      background-image: radial-gradient(circle at top left, rgba(212, 175, 55, 0.35), transparent 60%), radial-gradient(circle at bottom right, rgba(51, 51, 51, 0.25), transparent 55%);
    }
