/* ============================================
   OZ CYCLING TOURS - TYPOGRAPHY & STYLING
   ============================================ */

/* Base Typography System */
:root {
    --font-primary: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    --font-heading: 'Raleway', 'Inter', sans-serif;
    --font-accent: 'Poppins', sans-serif;

    /* Typography Scale */
    --text-xs: 0.75rem;
    /* 12px */
    --text-sm: 0.875rem;
    /* 14px */
    --text-base: 1rem;
    /* 16px */
    --text-lg: 1.125rem;
    /* 18px */
    --text-xl: 1.25rem;
    /* 20px */
    --text-2xl: 1.5rem;
    /* 24px */
    --text-3xl: 1.875rem;
    /* 30px */
    --text-4xl: 2.25rem;
    /* 36px */
    --text-5xl: 3rem;
    /* 48px */
    --text-6xl: 3.75rem;
    /* 60px */
    --text-7xl: 4.5rem;
    /* 72px */

    /* Line Heights */
    --leading-tight: 1.25;
    --leading-snug: 1.375;
    --leading-normal: 1.5;
    --leading-relaxed: 1.625;
    --leading-loose: 2;

    /* Letter Spacing */
    --tracking-tighter: -0.05em;
    --tracking-tight: -0.025em;
    --tracking-normal: 0;
    --tracking-wide: 0.025em;
    --tracking-wider: 0.05em;
    --tracking-widest: 0.1em;

    /* Brand Colors - Blended Teal & Orange Theme (REFINED) */
    --color-teal-primary: #292923;
    /* Dark olive gray - primary brand color */
    --color-teal-light: #3d3d34;
    /* Lighter shade accent */
    --color-teal-dark: #1a1a16;
    /* Darker shade for borders */
    --color-teal-bg: #292923;
    /* Main background color for dark sections */
    --color-teal-bg-dark: #292923;
    /* Darker shade for cards/sections */
    --color-teal-bg-darker: #1a1a16;
    /* Darkest shade for borders */
    --color-teal-bg-light: #3d3d34;
    /* Lighter shade for hover states */
    --color-teal-accent: #FABD80;
    /* Orange accent for links/buttons on dark */

    /* Body Background & Text */
    --color-body-bg: #ffffff;
    --color-text-main: #292923;

    /* Orange Colors - Single Tone Enforced */
    --color-orange-primary: #FABD80;
    /* Primary orange */
    --color-orange-dark: #FABD80;
    /* Forced to same shade for consistency */
    --color-orange-light: #FABD80;
    /* Forced to same shade */
    --color-orange-accent: #FABD80;
    /* Forced to same shade */

    /* Blended Colors - Harmonious Combinations */
    --color-blend-1: #292923;
    /* Dark base */
    --color-blend-2: #3d3d34;
    /* Light Dark */
    --color-blend-3: #FABD80;
    /* Orange */
    --color-blend-4: #FABD80;
    /* Orange */

    /* Gradient Combinations */
    --gradient-primary: linear-gradient(135deg, #292923 0%, #1a1a16 100%);
    --gradient-accent: linear-gradient(135deg, #FABD80 0%, #FABD80 100%);
    /* Solid gradient */
    --gradient-blend: linear-gradient(135deg, #292923 0%, #FABD80 100%);
    --gradient-subtle: linear-gradient(135deg, #1a1a16 0%, #292923 50%, #1a1a16 100%);

    /* Shadow Colors - Blended */
    --shadow-teal: rgba(41, 41, 35, 0.3);
    --shadow-orange: rgba(250, 189, 128, 0.3);
    --shadow-blend: rgba(41, 41, 35, 0.2), rgba(250, 189, 128, 0.1);
}

/* Global Typography Reset */
* {
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

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

body {
    font-family: var(--font-primary);
    font-size: var(--text-base);
    line-height: var(--leading-relaxed);
    color: var(--color-text-main);
    letter-spacing: var(--tracking-normal);
    background-color: var(--color-body-bg);
}

/* Typography Classes */
.font-heading {
    font-family: var(--font-heading);
    font-weight: 700;
    letter-spacing: var(--tracking-tight);
}

.font-accent {
    font-family: var(--font-accent);
}

/* Heading Styles */
h1,
.h1 {
    font-family: var(--font-heading);
    font-size: var(--text-5xl);
    font-weight: 800;
    line-height: var(--leading-tight);
    letter-spacing: var(--tracking-tight);
    color: var(--color-text-main);
}

.text-white h1,
.text-white .h1 {
    color: #ffffff;
}

h2,
.h2 {
    font-family: var(--font-heading);
    font-size: var(--text-4xl);
    font-weight: 700;
    line-height: var(--leading-tight);
    letter-spacing: var(--tracking-tight);
    color: var(--color-text-main);
}

.text-white h2,
.text-white .h2 {
    color: #ffffff;
}

h3,
.h3 {
    font-family: var(--font-heading);
    font-size: var(--text-3xl);
    font-weight: 600;
    line-height: var(--leading-snug);
    letter-spacing: var(--tracking-normal);
    color: var(--color-text-main);
}

.text-white h3,
.text-white .h3 {
    color: #ffffff;
}

h4,
.h4 {
    font-family: var(--font-heading);
    font-size: var(--text-2xl);
    font-weight: 600;
    line-height: var(--leading-snug);
    color: var(--color-text-main);
}

.text-white h4,
.text-white .h4 {
    color: #ffffff;
}

h5,
.h5 {
    font-family: var(--font-heading);
    font-size: var(--text-xl);
    font-weight: 600;
    line-height: var(--leading-normal);
    color: var(--color-text-main);
}

.text-white h5,
.text-white .h5 {
    color: #ffffff;
}

h6,
.h6 {
    font-family: var(--font-heading);
    font-size: var(--text-lg);
    font-weight: 600;
    line-height: var(--leading-normal);
    color: var(--color-text-main);
}

.text-white h6,
.text-white .h6 {
    color: #ffffff;
}

/* Responsive Typography */
@media (max-width: 768px) {

    h1,
    .h1 {
        font-size: var(--text-4xl);
    }

    h2,
    .h2 {
        font-size: var(--text-3xl);
    }

    h3,
    .h3 {
        font-size: var(--text-2xl);
    }

    h4,
    .h4 {
        font-size: var(--text-xl);
    }
}

/* Paragraph Styles */
p {
    font-size: var(--text-base);
    line-height: var(--leading-relaxed);
    color: var(--color-text-main);
    margin-bottom: 1rem;
}

.text-white p {
    color: #d1d5db;
}

.lead {
    font-size: var(--text-lg);
    line-height: var(--leading-relaxed);
    font-weight: 400;
    color: #e5e7eb;
}

.text-muted {
    color: #9ca3af;
    font-size: var(--text-sm);
}

/* Link Styles - Blended Theme */
a {
    color: var(--color-orange-primary);
    text-decoration: none;
    transition: all 0.3s ease;
    font-weight: 500;
}

a:hover {
    color: var(--color-teal-accent);
    text-decoration: underline;
}

a:focus {
    outline: 2px solid var(--color-orange-primary);
    outline-offset: 2px;
    border-radius: 2px;
    box-shadow: 0 0 0 4px rgba(249, 115, 22, 0.2);
}

/* Button Typography */
button,
.btn {
    font-family: var(--font-heading);
    font-weight: 600;
    letter-spacing: var(--tracking-wide);
    text-transform: uppercase;
    font-size: var(--text-sm);
}

/* Section Headings - Blended Theme */
.section-title {
    font-family: var(--font-heading);
    font-size: var(--text-5xl);
    font-weight: 800;
    text-align: center;
    margin-bottom: 1.5rem;
    background: linear-gradient(135deg, #ffffff 0%, var(--color-orange-light) 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    letter-spacing: var(--tracking-tight);
    text-shadow: 0 2px 4px rgba(249, 115, 22, 0.2);
}

.section-subtitle {
    font-size: var(--text-lg);
    color: rgba(255, 255, 255, 0.8);
    text-align: center;
    margin-bottom: 3rem;
    max-width: 700px;
    margin-left: auto;
    margin-right: auto;
}

/* Footer Typography */
.footer {
    font-family: var(--font-primary);
    font-size: var(--text-sm);
    line-height: var(--leading-relaxed);
}

/* Review Typography */
.review {
    font-family: var(--font-accent);
    font-size: var(--text-base);
    line-height: var(--leading-relaxed);
    font-style: italic;
}

/* Modal Styles */
.modal {
    display: none;
    position: fixed;
    z-index: 50;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    overflow: auto;
    background-color: rgba(0, 0, 0, 0.8);
    backdrop-filter: blur(4px);
}

.modal-content {
    margin: 15% auto;
    padding: 2rem;
    width: 80%;
    max-width: 600px;
    font-family: var(--font-primary);
}

/* Gallery Styles */
.gallery img {
    height: 300px;
    width: 400px;
    object-fit: cover;
    border-radius: 0.5rem;
    transition: transform 0.3s ease;
}

.gallery img:hover {
    transform: scale(1.05);
}

/* Utility Classes */
.hidden {
    display: none;
}

.active-tab {
    border-bottom: 4px solid var(--color-orange-primary);
    font-weight: 600;
    background: linear-gradient(to bottom, transparent 0%, rgba(249, 115, 22, 0.1) 100%);
}

.fade-in {
    animation: fadeIn 0.5s ease-in-out;
}

@keyframes fadeIn {
    from {
        opacity: 0;
        transform: translateY(10px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes slideIn {
    from {
        transform: translateY(20px);
        opacity: 0;
    }

    to {
        transform: translateY(0);
        opacity: 1;
    }
}

.slide-in {
    animation: slideIn 0.6s ease-out;
}

/* Scrollbar Styles - Default Background */
::-webkit-scrollbar {
    width: 12px;
    height: 12px;
}

::-webkit-scrollbar-track {
    background: #f1f1f1;
    border-radius: 10px;
}

::-webkit-scrollbar-thumb {
    background-color: #888;
    border-radius: 10px;
    border: 2px solid #f1f1f1;
}

::-webkit-scrollbar-thumb:hover {
    background-color: #555;
}

/* Hide scrollbar for Chrome, Safari and Opera */
.scrollbar-hide::-webkit-scrollbar {
    display: none;
}

/* Hide scrollbar for IE, Edge and Firefox */
.scrollbar-hide {
    -ms-overflow-style: none;
    /* IE and Edge */
    scrollbar-width: none;
    /* Firefox */
}

/* Text Utilities */
.text-balance {
    text-wrap: balance;
}

.text-pretty {
    text-wrap: pretty;
}

/* Focus Styles - Blended */
*:focus-visible {
    outline: 2px solid var(--color-orange-primary);
    outline-offset: 2px;
    border-radius: 4px;
    box-shadow: 0 0 0 4px rgba(249, 115, 22, 0.2);
}

/* Selection Styles - Blended */
::selection {
    background: var(--gradient-accent);
    color: #ffffff;
}

::-moz-selection {
    background: var(--gradient-accent);
    color: #ffffff;
}

/* Custom Teal Background Classes - Replacing gray-800 */
.bg-teal-main {
    background-color: var(--color-teal-bg-dark) !important;
}

.bg-teal-card {
    background-color: var(--color-teal-bg-dark) !important;
}

.bg-teal-section {
    background-color: var(--color-teal-bg-dark) !important;
}

.bg-teal-light {
    background-color: var(--color-teal-bg-light) !important;
}

.bg-teal-darker {
    background-color: var(--color-teal-bg-darker) !important;
}

/* Border colors matching teal theme */
.border-teal {
    border-color: var(--color-teal-light) !important;
}

.border-teal-dark {
    border-color: var(--color-teal-bg-dark) !important;
}

/* Global override for bg-gray-800 to use teal color */
.bg-gray-800 {
    background-color: var(--color-teal-bg-dark) !important;
}

.bg-gray-800\/90,
.bg-gray-800\/95 {
    background-color: rgba(30, 77, 92, 0.9) !important;
}

.bg-gray-800\/50 {
    background-color: rgba(30, 77, 92, 0.5) !important;
}

.bg-gray-800\/60 {
    background-color: rgba(30, 77, 92, 0.6) !important;
}

/* Update gray-700 shades to teal */
.bg-gray-700 {
    background-color: var(--color-teal-bg-dark) !important;
}

.bg-gray-700\/50 {
    background-color: rgba(30, 77, 92, 0.5) !important;
}

.bg-gray-700\/60 {
    background-color: rgba(30, 77, 92, 0.6) !important;
}

/* Update border colors - Blended Theme */
.border-gray-700 {
    border-color: rgba(45, 122, 143, 0.5) !important;
    box-shadow: 0 0 0 1px rgba(249, 115, 22, 0.1) inset !important;
}

.border-gray-700\/50 {
    border-color: rgba(45, 122, 143, 0.4) !important;
    box-shadow: 0 0 0 1px rgba(249, 115, 22, 0.08) inset !important;
}

.border-gray-600 {
    border-color: rgba(45, 122, 143, 0.4) !important;
    box-shadow: 0 0 0 1px rgba(249, 115, 22, 0.1) inset !important;
}

.border-gray-600\/30 {
    border-color: rgba(45, 122, 143, 0.3) !important;
    box-shadow: 0 0 0 1px rgba(249, 115, 22, 0.05) inset !important;
}

/* Update input backgrounds */
.bg-gray-700 {
    background-color: rgba(30, 77, 92, 0.8) !important;
}

/* Update hover states */
.hover\:bg-gray-700:hover,
.hover\:bg-gray-700\/90:hover {
    background-color: rgba(30, 77, 92, 0.9) !important;
}

/* Update from-gray-800 gradients */
.from-gray-800 {
    --tw-gradient-from: var(--color-teal-bg-dark) !important;
}

.to-gray-800 {
    --tw-gradient-to: var(--color-teal-bg-dark) !important;
}

.to-gray-800\/50 {
    --tw-gradient-to: rgba(30, 77, 92, 0.5) !important;
}

.to-gray-800\/90 {
    --tw-gradient-to: rgba(30, 77, 92, 0.9) !important;
}

.from-gray-700 {
    --tw-gradient-from: var(--color-teal-bg-dark) !important;
}

.to-gray-700\/60 {
    --tw-gradient-to: rgba(30, 77, 92, 0.6) !important;
}

/* Update bg-gray-900 to teal */
.bg-gray-900 {
    background-color: var(--color-teal-bg-dark) !important;
}

.bg-gray-900\/80 {
    background-color: rgba(30, 77, 92, 0.8) !important;
}

.bg-gray-900\/50 {
    background-color: rgba(30, 77, 92, 0.5) !important;
}

/* Update any hardcoded dark colors */
[style*="#1f2937"],
[style*="#1F2937"] {
    background-color: var(--color-teal-bg-dark) !important;
}

/* Blended Theme Utilities */
.bg-blended-gradient {
    background: var(--gradient-blend) !important;
}

.bg-teal-orange-gradient {
    background: linear-gradient(135deg, var(--color-teal-light) 0%, var(--color-orange-primary) 100%) !important;
}

.shadow-blended {
    box-shadow: 0 4px 6px var(--shadow-teal), 0 2px 4px var(--shadow-orange) !important;
}

.border-blended {
    border: 2px solid;
    border-image: linear-gradient(135deg, var(--color-teal-light), var(--color-orange-primary)) 1 !important;
}

/* Button Styles - Blended Theme */
.btn-primary {
    background: var(--gradient-accent) !important;
    color: white !important;
    border: none !important;
    box-shadow: 0 4px 15px var(--shadow-orange) !important;
    transition: all 0.3s ease !important;
}

.btn-primary:hover {
    background: linear-gradient(135deg, var(--color-orange-dark) 0%, var(--color-orange-primary) 100%) !important;
    box-shadow: 0 6px 20px var(--shadow-orange) !important;
    transform: translateY(-2px) !important;
}

.btn-secondary {
    background: var(--gradient-primary) !important;
    color: white !important;
    border: 2px solid var(--color-orange-primary) !important;
    box-shadow: 0 4px 15px var(--shadow-teal) !important;
    transition: all 0.3s ease !important;
}

.btn-secondary:hover {
    background: var(--gradient-blend) !important;
    border-color: var(--color-orange-light) !important;
    box-shadow: 0 6px 20px var(--shadow-blend) !important;
    transform: translateY(-2px) !important;
}

/* Card Hover Effects - Blended Theme */
.card-hover-blend {
    transition: all 0.3s ease !important;
    border: 1px solid rgba(45, 122, 143, 0.3) !important;
}

.card-hover-blend:hover {
    border-color: var(--color-orange-primary) !important;
    box-shadow: 0 8px 25px var(--shadow-teal), 0 4px 12px var(--shadow-orange) !important;
    transform: translateY(-4px) !important;
    background: linear-gradient(135deg, rgba(30, 77, 92, 0.95) 0%, rgba(45, 122, 143, 0.95) 50%, rgba(30, 77, 92, 0.95) 100%) !important;
}

/* Input Focus - Blended Theme */
input:focus,
textarea:focus,
select:focus {
    border-color: var(--color-orange-primary) !important;
    box-shadow: 0 0 0 3px rgba(249, 115, 22, 0.2), 0 0 0 1px rgba(45, 122, 143, 0.3) !important;
    outline: none !important;
}

/* Badge Styles - Blended */
.badge-blended {
    background: var(--gradient-accent) !important;
    color: white !important;
    border: 1px solid rgba(255, 255, 255, 0.2) !important;
    box-shadow: 0 2px 8px var(--shadow-orange) !important;
}

.badge-teal {
    background: var(--gradient-primary) !important;
    color: white !important;
    border: 1px solid var(--color-orange-primary) !important;
    box-shadow: 0 2px 8px var(--shadow-teal) !important;
}