/* Base Typography & Body */
h1, h2, h3, h4, h5, h6 {
    font-family: 'Montserrat', sans-serif;
}

/* Added for improved article spacing */
.prose p {
    margin-bottom: 1.5em; /* Slightly increased space after paragraphs */
}

.prose h2 {
    margin-top: 2em; /* More space above H2 headings */
    margin-bottom: 1em; /* Consistent space below H2 headings */
}

.prose ul,
.prose ol {
    margin-top: 1.5em; /* More space above lists */
    margin-bottom: 1.5em; /* More space below lists */
}

.prose li {
    margin-bottom: 0.75em; /* Slightly increased space between list items */
}

.prose hr {
    margin-top: 2.5em; /* Space above horizontal rules */
    margin-bottom: 2.5em; /* Space below horizontal rules */
}

.prose .lead {
    font-size: 1.25em; /* Make the lead paragraph slightly larger */
    margin-bottom: 1.8em; /* Add more space below the lead paragraph */
    color: var(--theme-text-primary); /* Use primary text color for lead */
}

/* Optional: Adjust strong tag weight if needed */
.prose strong {
    font-weight: 600; /* Ensure bold text is sufficiently prominent */
}

body {
    font-family: 'Source Sans Pro', sans-serif;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    overflow-x: hidden; /* Prevents horizontal scrollbars */
    color: var(--theme-text-primary);
    background-color: #ffffff;
    opacity: 0; /* Initially hidden for page transition, JS adds .body-fade-in */
}

/* --- NEW COLOR PALETTE (CSS Variables) --- */
:root {
    --theme-primary-accent: #000000; /* Line under Menu bar on header */
    --theme-primary-accent-dark: #005469; /* 3 box logo color nor bg */
    --theme-primary-accent-light: #cffafe; /* Lighter shade of accent */
    --theme-text-primary: #1F2937;    /* Dark gray for primary text */
    --theme-text-secondary: #6B7280;  /* Medium gray for secondary text */
    --theme-border-light: #E5E7EB;    /* Light gray for borders */
    --theme-bg-light: #F9FAFB;        /* Very light gray for backgrounds */
    --theme-bg-dark: #111827;         /* Very dark gray for dark backgrounds (e.g., footer) */
    --theme-footer-text: #9CA3AF;     /* Lighter gray for footer text */
    --theme-footer-text-hover: #F9FAFB; /* Almost white for footer link hover */
    --theme-text-on-accent: #ffffff;  /* White text for use on accent backgrounds */

    /* Gradient colors for the hero section */
    --gradient-cool-start: #081225; /* Start color for gradient (your dark theme color) */
    --gradient-cool-end: #bfd5ff;   /* End color for gradient (light gray) */
}

/* Helper classes to apply theme colors */
.text-accent { color: var(--theme-primary-accent); }
.bg-accent { background-color: var(--theme-primary-accent); }
.text-accent-dark { color: var(--theme-primary-accent-dark); }
.bg-accent-dark { background-color: var(--theme-primary-accent-dark); }
.bg-accent-light { background-color: var(--theme-primary-accent-light); }
.border-accent { border-color: var(--theme-primary-accent); }
.text-primary { color: var(--theme-text-primary); }
.text-secondary { color: var(--theme-text-secondary); }
.border-light { border-color: var(--theme-border-light); }
.bg-light { background-color: var(--theme-bg-light); }
.bg-dark { background-color: var(--theme-bg-dark); }
.text-footer { color: var(--theme-footer-text); }
.hover\:text-footer-hover:hover { color: var(--theme-footer-text-hover); }


/* Logo styles */
.crestrado-logo {
    width: 160px;
    height: 35px;
    vertical-align: middle;
}
.crestrado-logo .dot-fill,
.crestrado-logo .text-fill {
    fill: #374151; /* Default color for header logo text/dots */
    transition: fill 0.3s ease-in-out;
}
.header-logo-link:hover .crestrado-logo .dot-fill,
.header-logo-link:hover .crestrado-logo .text-fill {
    fill: var(--theme-primary-accent); /* Accent color on hover for header logo */
}
.footer-logo .dot-fill { fill: var(--theme-footer-text); } /* Footer logo dot color */
.footer-logo .text-fill { fill: #D1D5DB; } /* Footer logo text color */

.footer-logo-link:hover .footer-logo .dot-fill,
.footer-logo-link:hover .footer-logo .text-fill {
    fill: var(--theme-footer-text-hover); /* Footer logo hover color */
}

/* Header border */
header {
    border-color: var(--theme-border-light); /* Consistent light border for header */
}

/* Navigation Links & Buttons base transitions */
.nav-link, .nav-link-mobile, .btn {
    transition: color 0.15s ease-in-out, background-color 0.2s ease-in-out, border-color 0.2s ease-in-out, box-shadow 0.2s ease-in-out, transform 0.2s ease-in-out;
}
.focus\:ring-accent:focus { /* Ensure Tailwind focus ring uses the theme accent color */
     --tw-ring-color: var(--theme-primary-accent);
}

/* Hero Section - Old solid background (can be removed or kept as an alternative) */
.hero-bg {
    background-color: var(--theme-bg-dark);
    background-size: cover;
    background-position: center center;
}

/* NEW Hero Section Gradient Style */
.hero-section-gradient {
    background-image: linear-gradient(to bottom right,
                                      var(--gradient-cool-start),
                                      var(--gradient-cool-end));
    background-size: cover;
    background-position: center center;
}


/* Insight Article Card specific styling (for insights/index.html page) */
.insight-article-card {
    transition-property: opacity, max-height, margin, padding, border, box-shadow, transform;
    transition-duration: 0.35s;
    transition-timing-function: ease-in-out;
    opacity: 1;
    max-height: 500px;
    overflow: hidden;
}

.insight-article-card.article-hidden {
    opacity: 0;
    max-height: 0;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    border-top-width: 0 !important;
    border-bottom-width: 0 !important;
}

.insight-article-card .stretched-link::after {
    position: absolute; top: 0; right: 0; bottom: 0; left: 0; z-index: 1; content: "";
}


/* Footer Styles */
.footer-link {
    color: var(--theme-footer-text);
    transition: color 0.15s ease-in-out;
}
.footer-link:hover {
    color: var(--theme-footer-text-hover);
}

/* --- PAGE TRANSITION STYLES --- */
@keyframes fadeInBody {
    from { opacity: 0; }
    to { opacity: 1; }
}
.body-fade-in {
    animation: fadeInBody 0.5s ease-in-out forwards;
}
.body-fade-out {
    opacity: 0 !important;
    transition: opacity 0.5s ease-out;
}

/* --- SCROLL ANIMATIONS --- */
@keyframes elegantFadeIn {
    from { opacity: 0; transform: translateY(20px); }
    to { opacity: 1; transform: translateY(0); }
}
.animate-on-scroll {
    opacity: 0;
    animation: fadein-fallback 2s ease-in-out 0.5s forwards; /*0.5s delay, 2s duration*/

}
@keyframes fadein-fallback {
    to { opacity: 1; }
}

.animate-on-scroll.is-visible {
    animation: elegantFadeIn 0.8s ease-out forwards;
    animation-delay: 0s; /* start immedietly if JS triggered */
}

/* --- BUTTON STYLES --- */
.button-fade-up {
    transition-property: transform, opacity, background-color, border-color, color, box-shadow;
    transition-timing-function: ease-out;
    transition-duration: 0.3s;
}
#contact-submit-button.form-valid:hover {
    background-color: var(--theme-primary-accent-dark) !important;
    color: var(--theme-text-on-accent) !important;
    transform: translateY(-3px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}
#contact-submit-button {
    color: var(--theme-text-primary);
}

/* --- INSIGHTS PAGE SEARCH BAR & SORT CONTROLS --- */
.insights-search-input, .insights-sort-select {
    min-height: 44px;
}
.insights-sort-select {
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");
    background-position: right 0.5rem center;
    background-repeat: no-repeat;
    background-size: 1.5em 1.5em;
    padding-right: 2.5rem;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
}
.insights-sort-select::-ms-expand { display: none; }
