/* ==== BASE STYLES ==== */
body { 
    background-color: #FAFAFA; 
    padding: 0;  
    margin: 0; 
    font-family: Arial, Helvetica, sans-serif;
}

/* ==== TYPOGRAPHY ==== */
.text-center { text-align: center; }
.text-left { text-align: left; }
.text-right { text-align: right; }
.text-justify { text-align: justify; }

/* Font sizes and colors - Warm Gray Scheme */
.text-hero { font-size: 32pt; color: #36454F; font-family: Georgia, serif; }
.text-hero-accent { font-size: 32pt; color: #708090; font-family: Georgia, serif; }
.text-hero-white { font-size: 40pt; color: #FAFAFA; font-family: Georgia, serif; }
.text-hero-en { font-size: 24pt; color: #708090; font-family: Georgia, serif; }
.text-section-title { font-size: 14pt; color: #36454F; font-weight: bold; }
.text-body { font-size: 14pt; color: #36454F; }
.text-small { font-size: 12pt; color: #708090; }
.text-small-tahoma { font-size: 12pt; font-family: Arial, Helvetica, sans-serif; color: #708090; line-height: 1.5; }
/* ==== NAVIGATION LINKS ==== */
.nav-link-container {
    background-color: #374651;
    padding: 6px 10px;
    margin: 2px;
    display: inline-block;
    border-radius: 3px;
}

.nav-link-container a {
    color: #FFFFFF !important;
    text-decoration: none;
    font-size: 10pt;
    font-weight: normal;
    font-style: normal;
}

.nav-link-container:hover {
    background-color: #36454F;
}

.nav-link-container a:hover {
    color: #FFFFFF !important;
}

/* Legacy nav styles - keeping for compatibility */
.text-nav-small { font-size: 10pt; color: #36454F; font-style: normal; }
.text-nav-accent { font-size: 14pt; color: #708090; font-style: italic; }
.text-nav-green { font-size: 14pt; color: #708090; font-style: italic; }
.text-nav-green-small { font-size: 10pt; color: #708090; font-style: italic; }
.text-underline { font-size: 10pt; color: #36454F; font-style: italic; text-decoration: underline; }
.text-footer { font-size: 12pt; color: #708090; }
.text-contact { font-size: 14pt; color: #36454F; }

/* ==== LINKS ==== */
a { color: #36454F; text-decoration: none; } 
a:visited { color: #36454F; } 
a:active { color: #708090; } 
a:hover { color: #708090; } 

.footer-link { color: #36454F; text-decoration: underline; }
.footer-link:visited { color: #36454F; text-decoration: underline; }
.footer-link:active { color: #708090; text-decoration: underline; }
.footer-link:hover { color: #708090; text-decoration: underline; }

/* ==== LAYOUT CONTAINERS ==== */
.main-container { 
    vertical-align: top; 
    position: relative; 
    display: inline-block; 
    width: 100%; 
    min-height: 1859px; 
    max-width: 1200px; 
    background: none;  
}

.section-container { 
    vertical-align: top; 
    position: relative; 
    display: inline-block; 
    width: 100%; 
    min-height: 150px; 
    background: none;  
}

.section-container-narrow { 
    vertical-align: top; 
    position: relative; 
    display: inline-block; 
    width: 100%; 
    min-height: 150px; 
    max-width: 800px; 
    background: none;  
}

.section-container-white { 
    vertical-align: top; 
    position: relative; 
    display: inline-block; 
    width: 100%; 
    min-height: 150px; 
    max-width: 800px; 
    background-color: #FFFFFF;  
}

.section-container-gray { 
    vertical-align: bottom; 
    position: relative; 
    display: inline-block; 
    width: 100%; 
    min-height: 120px; 
    background-color: #DCDCDC;  
}

.section-container-short { 
    vertical-align: top; 
    position: relative; 
    display: inline-block; 
    width: 100%; 
    min-height: 45px; 
    max-width: 800px; 
    background: none;  
}

.section-container-mini { 
    vertical-align: top; 
    position: relative; 
    display: inline-block; 
    width: 100%; 
    min-height: 30px; 
    max-width: 800px; 
    background: none;  
}

/* ==== FLEX LAYOUTS ==== */
.flex-row { 
    vertical-align: top; 
    position: relative; 
    display: inline-block; 
    width: 100%; 
    min-height: 150px; 
    background: none;  
}

.flex-col-33 { 
    vertical-align: top; 
    position: relative; 
    display: inline-block; 
    width: 33%; 
    min-height: 150px; 
    background: none;  
}

.flex-col-38 { 
    vertical-align: top; 
    position: relative; 
    display: inline-block; 
    width: 38%; 
    min-height: 150px; 
    background: none;  
}

.flex-col-45 { 
    vertical-align: top; 
    position: relative; 
    display: inline-block; 
    width: 45%; 
    min-height: 150px; 
    background: none;  
}

.flex-col-50 { 
    vertical-align: top; 
    position: relative; 
    display: inline-block; 
    width: 50%; 
    min-height: 150px; 
    background: none;  
}

.flex-col-55 { 
    vertical-align: top; 
    position: relative; 
    display: inline-block; 
    width: 55%; 
    min-height: 140px; 
    background: none;  
}

.flex-col-29 { 
    vertical-align: top; 
    position: relative; 
    display: inline-block; 
    width: 29%; 
    min-height: 150px; 
    background: none;  
}

/* ==== PADDING UTILITIES ==== */
.padding-10 { margin: 10px; display: block; }
.padding-bottom-10 { margin: 0px 0px 10px 0px; display: block; }
.padding-right-12 { margin: 0px 12px 0px 0px; display: block; }
.padding-right-8 { margin: 0px 8px 0px 0px; display: block; }
.padding-right-4 { margin: 0px 4px 0px 0px; display: block; }
.padding-right-5 { margin: 0px 5px 0px 0px; display: block; }

/* ==== IMAGES ==== */
.avatar-image { 
    vertical-align: bottom; 
    position: relative; 
    display: inline-block; 
    width: 50%; 
    background: none; 
    height: auto;  
}

/* Offer images - smaller size for 3-column layout */
.flex-col-33 img {
    max-width: 100%;
    height: auto;
    width: 200px;
    filter: none;
}

/* Gallery images - arranged in horizontal row without gaps */
.gallery-images img {
    width: 25%;
    height: auto;
    margin-right: 0;
    display: inline-block;
    vertical-align: top;
    filter: none;
}

/* Publication images with monochrome filter */
.publication-images img {
    filter: none;
}

/* ==== CONTACT SECTION ==== */
.contact-columns {
    display: flex;
    justify-content: center;
    gap: 40px;
    max-width: 800px;
    margin: 0 auto;
}

.contact-column {
    flex: 0 0 auto;
    min-width: 180px;
    text-align: left;
}

/* ==== SPACING UTILITIES ==== */
.reduced-spacing {
    margin-bottom: 7px !important;
}

.reduced-top-spacing {
    margin-top: 10px !important;
}

.more-top-spacing {
    margin-top: 30px !important;
}

.consistent-bottom-spacing {
    margin-bottom: 7px !important;
}

.larger-bottom-spacing {
    margin-bottom: 20px !important;
}

.medium-bottom-spacing {
    margin-bottom: 15px !important;
}

/* ==== UTILITIES ==== */
.clearfix { clear: both; }

/* ==== PAGE-SPECIFIC OVERRIDES ==== */

/* English page adjustments */
.en-page .text-hero-accent { font-size: 24pt; }

/* Gray section text adjustments */
.section-container-gray .text-hero-white { color: #36454F; }

/* Literature page adjustments */
.litref-page .section-container { min-height: auto; }

/* Impressum page adjustments */
.impressum-page .section-container { min-height: auto; }
.impressum-page .main-container { min-height: auto; }