/* Typography System */
:root {
    --font-primary: 'Poppins', sans-serif;
    --font-heading: 'Orange Lemonade', cursive;
    --font-logo: 'Orange Lemonade', cursive;
    --font-size-base: 0.95rem;
    --font-size-lg: 1.05rem;
    --line-height-base: 1.6;
    --font-weight-normal: 400;
    --font-weight-medium: 500;
    --font-weight-semibold: 600;
    --font-weight-bold: 700;
    --color-primary: #215050;
    --color-secondary: #56a756;
}

/* Logo Styling */
.navbar-brand.logo {
    font-family: var(--font-logo);
    font-weight: var(--font-weight-normal);
    font-size: 1.8rem;
    color: var(--color-primary);
    letter-spacing: 0.5px;
}

.navbar-brand.logo span {
    color: var(--color-secondary);
    font-weight: var(--font-weight-normal);
}

/* All Headings */
h1, h2, h3, h4, h5, h6,
.section-heading,
.section-title,
.cursive-heading {
    font-family: var(--font-logo);
    font-weight: var(--font-weight-normal);
    color: var(--color-primary);
    letter-spacing: 0.5px;
}

/* Main Headings */
    .section-heading,
    .section-title,
    .cursive-heading {
        margin-bottom: 1.5rem;
        text-align: center;
        font-size: 2.2rem;
    }

/* Sub Headings */
    .place-name,
    .card-title,
    .activities-heading {
        font-family: var(--font-logo);
        font-weight: var(--font-weight-normal);
        color: var(--color-secondary);
        margin-bottom: 1rem;
        font-size: 1.4rem;
        letter-spacing: 0.3px;
    }

/* Body Text */
body,
p,
.description,
.tour-activities,
.nav-pill-part-data .description {
    font-family: var(--font-primary);
    font-size: var(--font-size-base);
    line-height: var(--line-height-base);
    color: var(--color-primary);
}

/* About Section Typography */
.about-text p {
    font-size: var(--font-size-lg);
    line-height: var(--line-height-base);
    color: var(--color-primary);
    margin-bottom: 1.5rem;
}

.about-text p:last-child {
    margin-bottom: 0;
}

.about-text .text-muted {
    color: var(--color-primary) !important;
    opacity: 0.9;
}

/* Location Text */
.location,
.card-text span {
    font-family: var(--font-primary);
    font-style: italic;
    color: var(--color-secondary);
    font-size: 0.85rem;
}

/* Navigation */
    .navbar-nav .nav-link {
        font-family: var(--font-primary);
        font-weight: var(--font-weight-medium);
        font-size: 0.95rem;
    }

/* Buttons */
.view-package-btn,
.btn-executive {
    font-family: var(--font-primary);
    font-weight: var(--font-weight-medium);
}

/* Footer Typography */
    .footer h4 {
        font-family: var(--font-logo);
        font-weight: var(--font-weight-normal);
        color: #fff;
        font-size: 1.8rem;
        letter-spacing: 0.5px;
    }

    .footer h5 {
        font-family: var(--font-logo);
        font-weight: var(--font-weight-normal);
        color: #fff;
        font-size: 1.5rem;
        letter-spacing: 0.3px;
    }

.footer-links a,
.footer-contact a,
.footer-contact span {
    font-family: var(--font-primary);
    color: rgba(255, 255, 255, 0.9);
}

/* Responsive Typography */
@media (max-width: 768px) {
    :root {
        --font-size-base: 0.9rem;
        --font-size-lg: 1rem;
    }
    
    .section-heading,
    .section-title {
        font-size: 1.8rem;
    }
    
    .place-name,
    .card-title,
    .activities-heading {
        font-size: 1.2rem;
    }
    
    .navbar-brand.logo {
        font-size: 1.5rem;
    }

    .footer h4 {
        font-size: 1.6rem;
    }

    .footer h5 {
        font-size: 1.3rem;
    }
}

/* Section Spacing */
section {
    position: relative;
}

section + section {
    margin-top: 0;
}

@media (min-width: 768px) {
    section {
        padding: var(--section-spacing-md) 0;
    }
}

/* Script Heading Style */
.cursive-heading {
    font-family: var(--font-script);
    line-height: 1.3;
    margin-bottom: 1.25rem;
}

/* Base Styles */
body {
    font-family: var(--font-secondary);
    font-size: var(--text-base);
    line-height: 1.5;
    color: #2D3748;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-rendering: optimizeLegibility;
}

/* Headings */
h1, h2, h3, h4, h5, h6 {
    font-family: var(--font-script);
    line-height: 1.3;
    margin-bottom: 1rem;
    color: #1A202C;
}

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

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

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

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

h5 {
    font-size: var(--text-lg);
}

h6 {
    font-size: var(--text-base);
}

/* Content Spacing */
.content-section {
    margin-bottom: var(--section-spacing-sm);
}

.content-section:last-child {
    margin-bottom: 0;
}

/* Text Container */
.text-container {
    max-width: 70ch;
    margin-left: auto;
    margin-right: auto;
}

/* Vertical Rhythm */
p {
    margin-bottom: 1rem;
}

p + p {
    margin-top: 0.75rem;
}

h2 + p,
h3 + p {
    margin-top: 0.5rem;
}

/* Paragraphs */
p {
    margin-bottom: 1.5rem;
    line-height: var(--leading-relaxed);
}

/* Links */
a {
    color: #2B6CB0;
    text-decoration: none;
    transition: color 0.2s ease-in-out;
}

a:hover {
    color: #2C5282;
}

/* Lists */
ul, ol {
    margin-bottom: 1.5rem;
    padding-left: 1.25rem;
    line-height: var(--leading-relaxed);
}

li {
    margin-bottom: 0.5rem;
}

/* Article Text */
.article-text {
    font-size: var(--text-lg);
    line-height: var(--leading-relaxed);
}

/* Large Text */
.text-large {
    font-size: var(--text-xl);
    line-height: var(--leading-normal);
}

/* Small Text */
.text-small {
    font-size: var(--text-sm);
    line-height: var(--leading-normal);
}

/* Section Headers */
.section-header {
    font-size: var(--text-3xl);
    font-weight: var(--font-bold);
    margin-bottom: 2rem;
    text-align: center;
    color: #1A202C;
}

/* Navigation */
.nav-link {
    font-size: var(--text-sm);
    font-weight: var(--font-medium);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

/* Buttons */
.btn {
    font-size: var(--text-sm);
    font-weight: var(--font-medium);
    letter-spacing: 0.025em;
}

/* Helper Classes */
.text-center { text-align: center; }
.text-left { text-align: left; }
.text-right { text-align: right; }

.font-light { font-weight: var(--font-light); }
.font-normal { font-weight: var(--font-normal); }
.font-medium { font-weight: var(--font-medium); }
.font-semibold { font-weight: var(--font-semibold); }
.font-bold { font-weight: var(--font-bold); }

.leading-tight { line-height: var(--leading-tight); }
.leading-snug { line-height: var(--leading-snug); }
.leading-normal { line-height: var(--leading-normal); }
.leading-relaxed { line-height: var(--leading-relaxed); }
.leading-loose { line-height: var(--leading-loose); }

/* Add Face font import */
@font-face {
    font-family: 'Face';
    src: url('/fonts/Face.woff2') format('woff2'),
         url('/fonts/Face.woff') format('woff');
    font-weight: normal;
    font-style: normal;
    font-display: swap;
} 