/* Green Dragon Healer — shared design system.
   Extracted from the inline <style> in index.html so every page uses one
   source. This repo has no build step on purpose, so a shared stylesheet is
   the only thing that keeps four pages from drifting apart. */

@font-face {
      font-family: 'Brightwall';
      src: url('https://res.cloudinary.com/du2ecxzfi/raw/upload/v1770592003/Brightwall_Personal_Use_Only_npi1ai.ttf') format('truetype');
    }
    
    body {
      box-sizing: border-box;
    }
    
    .font-script {
      font-family: 'Brightwall', cursive;
      line-height: 1.8;
      padding-top: 0.4em;
      margin-top: 0;
    }
    
    h1.font-script,
    h2.font-script,
    h3.font-script,
    .font-script {
      line-height: 1.8;
    }
    
    .font-serif {
      font-family: 'Cormorant Garamond', Georgia, serif;
    }
    
    .font-body {
      font-family: 'Raleway', sans-serif;
    }
    
    .gold-gradient {
      background: linear-gradient(135deg, #D4AF37 0%, #F4E4A6 50%, #D4AF37 100%);
      -webkit-background-clip: text;
      -webkit-text-fill-color: transparent;
      background-clip: text;
    }
    
    .btn-gold {
      background: linear-gradient(135deg, #D4AF37 0%, #C5A028 100%);
      color: #1a1a1a;
      border-radius: 9999px;
      padding: 0.75rem 2rem;
      font-family: 'Raleway', sans-serif;
      font-weight: 500;
      letter-spacing: 0.05em;
      transition: all 0.3s ease;
      box-shadow: 0 2px 8px rgba(212, 175, 55, 0.3);
    }
    
    .btn-gold:hover {
      background: linear-gradient(135deg, #E5C048 0%, #D4AF37 100%);
      box-shadow: 0 4px 16px rgba(212, 175, 55, 0.4);
      transform: translateY(-1px);
    }
    
    .section-divider {
      height: 1px;
      background: linear-gradient(90deg, transparent, rgba(212, 175, 55, 0.3), transparent);
    }
    
    .testimonial-quote::before {
      content: '"';
      font-family: 'Great Vibes', cursive;
      font-size: 4rem;
      color: #D4AF37;
      opacity: 0.6;
      position: absolute;
      top: -0.5rem;
      left: 0.5rem;
      line-height: 1;
    }
    
    html {
      scroll-behavior: smooth;
    }
    
    .sage-bg {
      background: linear-gradient(180deg, #4a5548 0%, #3d453b 100%);
    }
    
    .dark-sage-bg {
      background: linear-gradient(180deg, #2d332b 0%, #252a24 100%);
    }
    
    .mist-overlay {
      background: linear-gradient(180deg, rgba(74, 85, 72, 0.85) 0%, rgba(61, 69, 59, 0.9) 100%);
    }
    
    @keyframes fadeIn {
      from {
        opacity: 0;
      }
      to {
        opacity: 1;
      }
    }
    
    .animate-fade-in {
      animation: fadeIn 0.8s ease-in forwards;
    }

    /* Scroll-triggered reveal animations */
    .reveal {
      opacity: 0;
      transform: translateY(30px);
      transition: opacity 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94),
                  transform 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94);
    }
    .reveal.revealed {
      opacity: 1;
      transform: translateY(0);
    }

    .reveal-left {
      opacity: 0;
      transform: translateX(-40px);
      transition: opacity 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94),
                  transform 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94);
    }
    .reveal-left.revealed {
      opacity: 1;
      transform: translateX(0);
    }

    .reveal-right {
      opacity: 0;
      transform: translateX(40px);
      transition: opacity 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94),
                  transform 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94);
    }
    .reveal-right.revealed {
      opacity: 1;
      transform: translateX(0);
    }

    .reveal-scale {
      opacity: 0;
      transform: scale(0.95);
      transition: opacity 0.6s ease, transform 0.6s ease;
    }
    .reveal-scale.revealed {
      opacity: 1;
      transform: scale(1);
    }

    .reveal-delay-1 { transition-delay: 0.1s; }
    .reveal-delay-2 { transition-delay: 0.2s; }
    .reveal-delay-3 { transition-delay: 0.3s; }
    .reveal-delay-4 { transition-delay: 0.4s; }
    .reveal-delay-5 { transition-delay: 0.5s; }

    /* Gold shimmer animation for headings */
    @keyframes goldShimmer {
      0% { background-position: -200% center; }
      100% { background-position: 200% center; }
    }

    .gold-gradient-shimmer {
      background: linear-gradient(
        135deg,
        #D4AF37 0%, #F4E4A6 25%, #D4AF37 50%, #F4E4A6 75%, #D4AF37 100%
      );
      background-size: 200% auto;
      -webkit-background-clip: text;
      -webkit-text-fill-color: transparent;
      background-clip: text;
      animation: goldShimmer 6s ease-in-out infinite;
    }

    /* Hero entrance animations */
    @keyframes heroTitleEntrance {
      0% { opacity: 0; transform: translateY(20px) scale(0.97); }
      100% { opacity: 1; transform: translateY(0) scale(1); }
    }
    @keyframes heroSubtitleEntrance {
      0% { opacity: 0; transform: translateY(15px); }
      100% { opacity: 1; transform: translateY(0); }
    }
    @keyframes heroCTAEntrance {
      0% { opacity: 0; transform: translateY(10px); }
      100% { opacity: 1; transform: translateY(0); }
    }

    .hero-title-animate {
      animation: heroTitleEntrance 1.2s cubic-bezier(0.25, 0.46, 0.45, 0.94) 0.2s both;
    }
    .hero-subtitle-animate {
      animation: heroSubtitleEntrance 1s cubic-bezier(0.25, 0.46, 0.45, 0.94) 0.6s both;
    }
    .hero-tagline-animate {
      animation: heroSubtitleEntrance 1s cubic-bezier(0.25, 0.46, 0.45, 0.94) 0.8s both;
    }
    .hero-cta-animate {
      animation: heroCTAEntrance 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94) 1.1s both;
    }

    /* SVG dragon drift */
    @keyframes dragonDrift {
      0%, 100% { transform: translate(0, 0) scale(1); opacity: 0.10; }
      50% { transform: translate(5px, -8px) scale(1.02); opacity: 0.14; }
    }
    .dragon-animate {
      animation: dragonDrift 8s ease-in-out infinite;
    }

    /* Service card hover effects */
    .service-card {
      transition: transform 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94),
                  box-shadow 0.4s ease,
                  border-color 0.4s ease;
    }
    .service-card:hover {
      transform: translateY(-6px);
      box-shadow: 0 12px 40px rgba(212, 175, 55, 0.15),
                  0 4px 12px rgba(0, 0, 0, 0.3);
      border-color: rgba(212, 175, 55, 0.4);
    }
    .service-card::after {
      content: '';
      position: absolute;
      inset: 0;
      border-radius: inherit;
      background: radial-gradient(ellipse at 50% 0%, rgba(212, 175, 55, 0.08) 0%, transparent 70%);
      opacity: 0;
      transition: opacity 0.4s ease;
      pointer-events: none;
    }
    .service-card:hover::after {
      opacity: 1;
    }

    /* Testimonial card hover */
    .testimonial-card {
      transition: transform 0.3s ease, box-shadow 0.3s ease;
    }
    .testimonial-card:hover {
      transform: translateY(-3px);
      box-shadow: 0 8px 30px rgba(0, 0, 0, 0.15);
    }

    /* Featured card image hover */
    .featured-card img {
      transition: transform 0.5s ease;
    }
    .featured-card:hover img {
      transform: scale(1.03);
    }

    /* Hero floating particles */
    @keyframes floatParticle {
      0%, 100% { transform: translateY(0) translateX(0); opacity: 0; }
      10% { opacity: 0.6; }
      90% { opacity: 0.6; }
      50% { transform: translateY(-100vh) translateX(20px); opacity: 0.3; }
    }
    .hero-particles {
      position: absolute;
      inset: 0;
      overflow: hidden;
      pointer-events: none;
    }
    .hero-particle {
      position: absolute;
      bottom: -10px;
      width: 2px;
      height: 2px;
      background: #D4AF37;
      border-radius: 50%;
      opacity: 0;
    }

    /* Mobile hamburger menu */
    .mobile-menu-btn {
      display: none;
      flex-direction: column;
      gap: 5px;
      cursor: pointer;
      z-index: 60;
      padding: 8px;
    }
    .mobile-menu-btn span {
      display: block;
      width: 24px;
      height: 2px;
      background: #D4AF37;
      transition: all 0.3s ease;
      border-radius: 2px;
    }
    .mobile-menu-btn.active span:nth-child(1) {
      transform: rotate(45deg) translate(5px, 5px);
    }
    .mobile-menu-btn.active span:nth-child(2) {
      opacity: 0;
    }
    .mobile-menu-btn.active span:nth-child(3) {
      transform: rotate(-45deg) translate(5px, -5px);
    }

    .mobile-nav-overlay {
      position: fixed;
      inset: 0;
      background: rgba(29, 33, 27, 0.97);
      z-index: 55;
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      gap: 2rem;
      opacity: 0;
      pointer-events: none;
      transition: opacity 0.3s ease;
    }
    .mobile-nav-overlay.active {
      opacity: 1;
      pointer-events: auto;
    }

    @media (max-width: 767px) {
      .mobile-menu-btn {
        display: flex;
      }
    }

    /* Accessibility: respect reduced motion */
    @media (prefers-reduced-motion: reduce) {
      .reveal, .reveal-left, .reveal-right, .reveal-scale {
        opacity: 1;
        transform: none;
        transition: none;
      }
      .gold-gradient-shimmer {
        animation: none;
      }
      .dragon-animate {
        animation: none;
      }
      .hero-title-animate,
      .hero-subtitle-animate,
      .hero-tagline-animate,
      .hero-cta-animate {
        animation: none;
      }
      .hero-particle {
        display: none;
      }
    }
