/* ================================================================
   AVESTA TRAVEL — Core Variables & Reset
   Design System: Warm luxury travel brand
   Fonts: Playfair Display (display) + DM Sans (body)
================================================================ */

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

:root {
    /* Brand Colors */
    --primary:        #e85d04;
    --primary-dark:   #c2410c;
    --primary-light:  #fff3eb;
    --primary-glow:   rgba(232, 93, 4, 0.15);

    --navy:           #0b1426;
    --navy-mid:       #1a2744;
    --navy-soft:      #243356;

    --gold:           #f59e0b;
    --gold-light:     #fef3c7;

    /* Neutrals */
    --white:          #ffffff;
    --off-white:      #fafaf8;
    --gray-50:        #f8fafc;
    --gray-100:       #f1f5f9;
    --gray-200:       #e2e8f0;
    --gray-300:       #cbd5e1;
    --gray-400:       #94a3b8;
    --gray-500:       #64748b;
    --gray-600:       #475569;
    --gray-700:       #334155;
    --gray-800:       #1e293b;
    --gray-900:       #0f172a;

    /* Typography */
    --font-display: 'Playfair Display', Georgia, serif;
    --font-body:    'DM Sans', system-ui, -apple-system, sans-serif;

    /* Spacing */
    --container:    1280px;
    --section-gap:  40px;

    /* Shadows */
    --shadow-sm:    0 1px 3px rgba(0,0,0,0.06), 0 1px 2px rgba(0,0,0,0.04);
    --shadow-md:    0 4px 16px rgba(0,0,0,0.07), 0 2px 6px rgba(0,0,0,0.04);
    --shadow-lg:    0 10px 40px rgba(0,0,0,0.10), 0 4px 12px rgba(0,0,0,0.05);
    --shadow-xl:    0 24px 64px rgba(0,0,0,0.14);
    --shadow-card:  0 2px 8px rgba(0,0,0,0.06), 0 8px 32px rgba(0,0,0,0.08);

    /* Radii */
    --radius-sm:    8px;
    --radius-md:    14px;
    --radius-lg:    20px;
    --radius-xl:    28px;
    --radius-full:  9999px;

    /* Transitions */
    --ease:         cubic-bezier(0.4, 0, 0.2, 1);
    --ease-spring:  cubic-bezier(0.34, 1.56, 0.64, 1);
    --duration-fast: 150ms;
    --duration-base: 250ms;
    --duration-slow: 400ms;
}

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

html {
    scroll-behavior: smooth;
    -webkit-text-size-adjust: 100%;
    background: var(--off-white);
}

body {
    font-family: var(--font-body);
    background: var(--off-white);
    color: var(--gray-700);
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

a { text-decoration: none; color: inherit; }
img { display: block; max-width: 100%; }
button { font-family: var(--font-body); }
ul, ol { list-style: none; }

/* ── Container ── */
.container {
    max-width: var(--container);
    margin: 0 auto;
    padding: 0 24px;
}

@media (max-width: 768px) {
    .container { padding: 0 16px; }
}

/* ── Utility ── */
.sr-only {
    position: absolute; width: 1px; height: 1px;
    padding: 0; margin: -1px; overflow: hidden;
    clip: rect(0,0,0,0); white-space: nowrap; border: 0;
}
