@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400..900;1,400..900&family=Plus+Jakarta+Sans:wght@300;400;500;600;700;800&display=swap');

/* ==========================================================================
   DESIGN TOKENS (tokens.css)
   ========================================================================== */
:root {
    /* Color Palette */
    --color-midnight: #0A2430;      /* Main deep background (Firefly) */
    --color-midnight-card: #123340; /* Lighter container background for dark sections */
    --color-teal-dark: #164A56;     /* Radial gradient center */
    --color-teal-brand: #2C969B;    /* Brand teal button/icon */
    --color-teal-light: #EAF9F4;   /* Light section background (Aqua Spring) */
    --color-accent: #14B8A6;        /* Bright teal glow */
    --color-accent-glow: rgba(20, 184, 166, 0.3);
    --color-gold: #F59E0B;          /* Review stars, bulbs, warning badge */
    
    /* Text Colors */
    --text-white: #FFFFFF;
    --text-slate-100: #F1F5F9;
    --text-slate-300: #CBD5E1;
    --text-slate-400: #94A3B8;
    --text-slate-600: #475569;
    --text-slate-800: #1E293B;
    --text-slate-950: #0F172A;
    
    /* Typography */
    --font-heading: 'Playfair Display', Georgia, serif;
    --font-body: 'Plus Jakarta Sans', system-ui, -apple-system, sans-serif;
    
    /* Layout & Sizing spacing */
    --max-width: 1200px;
    --border-radius-sm: 8px;
    --border-radius-md: 16px;
    --border-radius-lg: 24px;
    --border-radius-full: 9999px;
    
    /* Transitions */
    --transition-smooth: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    --transition-bounce: all 0.5s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}

/* Base Reset */
*, *::before, *::after {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

html {
    scroll-behavior: smooth;
    font-size: 16px;
}

body {
    font-family: var(--font-body);
    font-weight: 400;
    line-height: 1.6;
    color: var(--text-slate-800);
    background-color: var(--text-slate-100);
    overflow-x: hidden;
    -webkit-font-smoothing: antialiased;
}

body.menu-open {
    overflow: hidden;
}

h1, h2, h3, h4, h5, h6 {
    font-family: var(--font-heading);
    color: var(--text-slate-950);
    font-weight: 700;
    line-height: 1.25;
}

a {
    text-decoration: none;
    color: inherit;
    transition: var(--transition-smooth);
}

img, svg {
    max-width: 100%;
    height: auto;
    display: block;
}

/* Scroll reveal helper tags */
.reveal-on-scroll {
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 0.8s cubic-bezier(0.16, 1, 0.3, 1), transform 0.8s cubic-bezier(0.16, 1, 0.3, 1);
}

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

.delay-100 { transition-delay: 100ms; }
.delay-200 { transition-delay: 200ms; }
.delay-300 { transition-delay: 300ms; }
.delay-400 { transition-delay: 400ms; }
