/* Import Montserrat font from Google Fonts */
@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@200;300;400;500;600&display=swap');

/* CSS Variables for Brand Colors */
:root {
    --primary-blue: #526681;
    --primary-blue-soft: rgba(82, 102, 129, 0.4);
    --warm-accent: #B98478;
    --black-bg: #000000;
    --white-panel: #FFFFFF;
    --text-dark: #333333;
    --text-light: #666666;
    --border-subtle: #dde3ec;
    --shadow: 0 15px 30px rgba(0, 0, 0, 0.5);
    --shadow-soft: 0 4px 12px rgba(0, 0, 0, 0.2);
    --transition-speed: 0.3s;
}

/* Global Resets */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body {
    font-family: 'Montserrat', sans-serif;
    font-size: 16px;
    font-weight: 400;
    line-height: 1.6;
    background-color: var(--black-bg);
    color: var(--text-dark);
    overflow-x: hidden;
}

/* Typography - Uppercase for headings, match brand guidelines */
h1, h2, h3, h4, h5, h6 {
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 1px;
    line-height: 1.6;
    margin-bottom: 1rem;
}

h1 {
    font-size: 2.25rem;
}

h2 {
    font-size: 1.75rem;
}

h3 {
    font-size: 1.25rem;
}

p {
    margin-bottom: 1rem;
    color: var(--text-light);
}

/* Lead text */
.lead {
    font-size: 21px;
    font-weight: 400;
}

/* Links */
a {
    color: #337ab7;
    text-decoration: none;
    transition: color var(--transition-speed) ease;
}

a:hover,
a:focus {
    color: #337ab7;
    text-decoration: underline;
}

/* Button Styling - Square, Uppercase, No Border Radius */
button,
.btn {
    font-family: 'Montserrat', sans-serif;
    font-size: 14px;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    border-radius: 0; /* Square buttons per brand guidelines */
    border: none;
    cursor: pointer;
    transition: all var(--transition-speed) ease;
    padding: 12px 18px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
}

.btn-primary {
    background-color: var(--primary-blue);
    color: #ffffff;
}

.btn-primary:hover,
.btn-primary:focus {
    background-color: var(--primary-blue);
    filter: brightness(0.9);
}

.btn-accent {
    background-color: var(--warm-accent);
    color: #ffffff;
}

.btn-accent:hover,
.btn-accent:focus {
    background-color: var(--warm-accent);
    filter: brightness(0.9);
}

/* Utility Classes */
.shadow-panel {
    box-shadow: var(--shadow);
}

.shadow-soft {
    box-shadow: var(--shadow-soft);
}

.weight-200 {
    font-weight: 200;
}

.weight-300 {
    font-weight: 300;
}

.weight-400 {
    font-weight: 400;
}

.weight-500 {
    font-weight: 500;
}

.weight-600 {
    font-weight: 600;
}

/* Spacing utilities */
.mt-0 { margin-top: 0 !important; }
.mt-2 { margin-top: 0.5rem !important; }
.mt-4 { margin-top: 1rem !important; }
.mt-6 { margin-top: 1.5rem !important; }

.mb-0 { margin-bottom: 0 !important; }
.mb-2 { margin-bottom: 0.5rem !important; }
.mb-4 { margin-bottom: 1rem !important; }
.mb-6 { margin-bottom: 1.5rem !important; }

/* Container */
.container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 1.5rem;
}

/* Messages/Alerts */
.messages {
    margin-bottom: 1rem;
}

.alert {
    padding: 12px 20px;
    margin-bottom: 1rem;
    border-radius: 0;
}

.alert-success {
    background-color: #d4edda;
    color: #155724;
    border: 1px solid #c3e6cb;
}

.alert-error {
    background-color: #f8d7da;
    color: #721c24;
    border: 1px solid #f5c6cb;
}

.alert-warning {
    background-color: #fff3cd;
    color: #856404;
    border: 1px solid #ffeaa7;
}

.alert-info {
    background-color: #d1ecf1;
    color: #0c5460;
    border: 1px solid #bee5eb;
}
