﻿/* ============================================
   INTERKULTURELLES KOLLEG BIELEFELD
   Moderne, barrierefreie Website
   HTML5 + CSS3 (ohne Frameworks)
   Original Farben der IKB
   ============================================ */

:root {
    --primary-red: #901830;
    --light-blue: #d5f8ff;
    --dark-blue: #304860;
    --accent-pink: #EE889C;
    --light-gray: #E9E9E9;
    --white: #FFFFFF;
    --text-light: #555555;
    --font-main: "Trebuchet MS", Arial, Helvetica, sans-serif;
    --font-size-base: 16px;
    --font-size-large: 18px;
    --font-size-xl: 20px;
    --line-height-base: 1.6;
    --spacing-small: 12px;
    --spacing-medium: 24px;
    --spacing-large: 32px;
    --spacing-xl: 48px;
    --border-radius: 8px;
    --shadow-light: 0 2px 8px rgba(0, 0, 0, 0.08);
    --shadow-medium: 0 4px 16px rgba(0, 0, 0, 0.12);
}

* { margin: 0; padding: 0; box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { font-family: var(--font-main); font-size: var(--font-size-base); line-height: var(--line-height-base); color: var(--dark-blue); background-color: var(--white); }
h1, h2, h3, h4, h5, h6 { font-weight: 600; line-height: 1.3; margin-bottom: var(--spacing-medium); color: var(--dark-blue); }
h1 { font-size: 32px; }
h2 { font-size: 28px; }
h3 { font-size: 22px; }
h4 { font-size: 18px; }
p { margin-bottom: var(--spacing-medium); color: var(--text-light); }
a { color: var(--primary-red); text-decoration: none; transition: color 0.3s ease; }
a:hover { color: var(--accent-pink); text-decoration: underline; }
.container { max-width: 1200px; margin: 0 auto; padding: 0 var(--spacing-large); }

.header { background-color: var(--white); border-bottom: 3px solid var(--primary-red); position: sticky; top: 0; z-index: 100; box-shadow: var(--shadow-light); }
.header-container { max-width: 1200px; margin: 0 auto; padding: var(--spacing-large); display: flex; justify-content: space-between; align-items: center; }
.logo-section { display: flex; align-items: center; gap: var(--spacing-large); flex: 1; }
.logo-placeholder { width: 60px; height: 60px; background: var(--primary-red); border-radius: 8px; display: flex; align-items: center; justify-content: center; font-size: 24px; font-weight: bold; color: var(--white); flex-shrink: 0; }
.logo-text h1 { margin: 0; font-size: 20px; color: var(--dark-blue); }
.org-tagline { font-size: 13px; color: var(--primary-red); margin: 4px 0 0 0; font-weight: 500; }
.navigation { flex: 1; display: flex; justify-content: flex-end; }
.nav-list { display: flex; list-style: none; gap: var(--spacing-large); align-items: center; }
.nav-link { font-size: var(--font-size-large); font-weight: 500; color: var(--dark-blue); padding: var(--spacing-small) var(--spacing-medium); border-bottom: 3px solid transparent; transition: all 0.3s ease; }
.nav-link:hover { color: var(--primary-red); border-bottom-color: var(--primary-red); text-decoration: none; }

.hero { background: linear-gradient(135deg, rgba(144, 24, 48, 0.05) 0%, rgba(212, 248, 255, 0.3) 100%); padding: 80px var(--spacing-large); text-align: center; border-top: 6px solid var(--primary-red); }
.hero-content { max-width: 800px; margin: 0 auto; }
.hero-title { font-size: 44px; margin-bottom: var(--spacing-medium); color: var(--dark-blue); }
.hero-subtitle { font-size: 28px; color: var(--primary-red); font-weight: 500; margin-bottom: var(--spacing-large); }
.hero-description { font-size: var(--font-size-large); color: var(--text-light); margin-bottom: var(--spacing-xl); line-height: 1.8; }
.cta-button { display: inline-block; background: var(--primary-red); color: var(--white); padding: 16px 40px; border-radius: var(--border-radius); font-size: var(--font-size-large); font-weight: 600; transition: all 0.3s ease; box-shadow: var(--shadow-medium); border: none; cursor: pointer; text-decoration: none; }
.cta-button:hover { transform: translateY(-3px); background: var(--accent-pink); box-shadow: 0 6px 20px rgba(144, 24, 48, 0.3); color: var(--white); }

section { padding: var(--spacing-xl) var(--spacing-large); }
.section-title { text-align: center; margin-bottom: var(--spacing-large); position: relative; padding-bottom: var(--spacing-large); color: var(--dark-blue); }
.section-title::after { content: ""; position: absolute; bottom: 0; left: 50%; transform: translateX(-50%); width: 80px; height: 4px; background: var(--primary-red); border-radius: 2px; }
.section-intro { text-align: center; font-size: var(--font-size-large); color: var(--text-light); max-width: 700px; margin: 0 auto var(--spacing-xl); }

#about { background-color: var(--light-blue); }
.about-content { display: grid; grid-template-columns: 1fr 1fr; gap: var(--spacing-xl); align-items: start; }
.about-text p { margin-bottom: var(--spacing-large); line-height: 1.8; font-size: var(--font-size-large); border-left: 4px solid var(--primary-red); padding-left: var(--spacing-large); }
.values-grid { display: grid; grid-template-columns: 1fr; gap: var(--spacing-large); }
.value-card { background-color: var(--white); padding: var(--spacing-large); border-radius: var(--border-radius); border-left: 4px solid var(--primary-red); border-top: 6px solid var(--primary-red); box-shadow: var(--shadow-light); transition: all 0.3s ease; }
.value-card:nth-child(2) { border-top-color: var(--accent-pink); }
.value-card:nth-child(3) { border-top-color: var(--dark-blue); }
.value-card:hover { box-shadow: var(--shadow-medium); transform: translateX(4px); }
.value-card h3 { color: var(--primary-red); margin-bottom: var(--spacing-small); }
.value-card p { margin: 0; font-size: var(--font-size-base); }

#offers { background-color: var(--light-blue); }
.offers-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: var(--spacing-large); margin-top: var(--spacing-xl); }
.offer-card { background-color: var(--white); padding: var(--spacing-large); border-radius: var(--border-radius); border: 1px solid var(--primary-red); border-top: 6px solid var(--primary-red); box-shadow: var(--shadow-light); transition: all 0.3s ease; display: flex; flex-direction: column; }
.offer-card:hover { transform: translateY(-6px); box-shadow: var(--shadow-medium); }
.offer-icon { font-size: 48px; margin-bottom: var(--spacing-medium); }
.offer-card h3 { color: var(--primary-red); margin-bottom: var(--spacing-small); }
.offer-card p { font-size: var(--font-size-base); line-height: 1.7; margin-bottom: var(--spacing-medium); }
.offer-list { list-style: none; margin-top: var(--spacing-medium); }
.offer-list li { padding: 8px 0; padding-left: 24px; position: relative; color: var(--text-light); font-size: var(--font-size-base); }
.offer-list li::before { content: ""; position: absolute; left: 0; color: var(--primary-red); font-weight: bold; }

#team { background-color: var(--white); }
.team-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: var(--spacing-large); margin-top: var(--spacing-xl); }
.team-card { background-color: var(--light-blue); border-radius: var(--border-radius); overflow: hidden; box-shadow: var(--shadow-light); transition: all 0.3s ease; text-align: center; padding: var(--spacing-large); border: 1px solid var(--primary-red); border-top: 6px solid var(--primary-red); }
.team-card:hover { box-shadow: var(--shadow-medium); transform: translateY(-4px); }
.team-photo { margin-bottom: var(--spacing-large); }
.team-photo img { width: 150px; height: 150px; border-radius: 50%; object-fit: cover; border: 4px solid var(--primary-red); }
.team-card h3 { margin-bottom: var(--spacing-small); font-size: 20px; color: var(--dark-blue); }
.team-role { color: var(--primary-red); font-weight: 600; font-size: var(--font-size-base); margin-bottom: var(--spacing-medium); }
.team-bio { font-size: var(--font-size-base); color: var(--text-light); margin: 0; }

#contact { background-color: var(--light-blue); }
.contact-wrapper { display: grid; grid-template-columns: 1fr 1fr; gap: var(--spacing-xl); margin-top: var(--spacing-xl); }
.contact-info h3 { color: var(--primary-red); margin-bottom: var(--spacing-large); border-top: 6px solid var(--primary-red); padding-top: var(--spacing-medium); }
.contact-item { margin-bottom: var(--spacing-large); }
.contact-item h4 { color: var(--dark-blue); margin-bottom: var(--spacing-small); }
.contact-item p { margin: 0; font-size: var(--font-size-base); color: var(--text-light); }
.contact-form-wrapper { background-color: var(--white); padding: var(--spacing-large); border-radius: var(--border-radius); border: 1px solid var(--primary-red); }
.contact-form { display: flex; flex-direction: column; }
.form-group { margin-bottom: var(--spacing-large); }
.form-group label { display: block; font-weight: 600; margin-bottom: var(--spacing-small); color: var(--dark-blue); font-size: var(--font-size-base); }
.form-group input, .form-group textarea { width: 100%; padding: 12px; border: 1px solid var(--primary-red); border-radius: var(--border-radius); font-family: var(--font-main); font-size: var(--font-size-base); transition: border-color 0.3s ease; }
.form-group input:focus, .form-group textarea:focus { outline: none; border-color: var(--primary-red); background-color: var(--white); box-shadow: 0 0 0 3px rgba(144, 24, 48, 0.1); }
.form-group textarea { resize: vertical; }
.submit-button { background: var(--primary-red); color: var(--white); padding: 14px 32px; border: none; border-radius: var(--border-radius); font-size: var(--font-size-large); font-weight: 600; cursor: pointer; transition: all 0.3s ease; margin-bottom: var(--spacing-small); }
.submit-button:hover { transform: translateY(-2px); background: var(--accent-pink); box-shadow: var(--shadow-medium); }
.submit-button:active { transform: translateY(0); }
.form-note { font-size: 13px; color: var(--text-light); margin: 0; }

.footer { background: var(--dark-blue); color: var(--white); padding: var(--spacing-xl) var(--spacing-large) var(--spacing-large); border-top: 6px solid var(--primary-red); }
.footer-content { max-width: 1200px; margin: 0 auto; display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: var(--spacing-xl); margin-bottom: var(--spacing-xl); }
.footer-section h4 { color: var(--white); margin-bottom: var(--spacing-medium); }
.footer-section p { color: rgba(255, 255, 255, 0.9); margin: 0; font-size: var(--font-size-base); }
.footer-section ul { list-style: none; }
.footer-section a { color: rgba(255, 255, 255, 0.9); transition: color 0.3s ease; }
.footer-section a:hover { color: var(--accent-pink); text-decoration: none; }
.footer-section li { margin-bottom: var(--spacing-small); }
.footer-bottom { max-width: 1200px; margin: 0 auto; padding-top: var(--spacing-large); border-top: 1px solid rgba(255, 255, 255, 0.2); text-align: center; color: rgba(255, 255, 255, 0.8); font-size: var(--font-size-base); }

@media (max-width: 768px) {
    .header-container { flex-direction: column; gap: var(--spacing-large); padding: var(--spacing-large) var(--spacing-medium); }
    .navigation { justify-content: center; width: 100%; }
    .nav-list { flex-wrap: wrap; gap: var(--spacing-medium); justify-content: center; }
    .nav-link { font-size: var(--font-size-base); padding: var(--spacing-small); }
    .hero { padding: 50px var(--spacing-medium); }
    .hero-title { font-size: 32px; }
    .hero-subtitle { font-size: 22px; }
    .hero-description { font-size: var(--font-size-base); }
    .about-content { grid-template-columns: 1fr; gap: var(--spacing-large); }
    .contact-wrapper { grid-template-columns: 1fr; gap: var(--spacing-large); }
    section { padding: var(--spacing-large) var(--spacing-medium); }
    .container { padding: 0 var(--spacing-medium); }
    .section-title { font-size: 24px; }
}

@media (max-width: 480px) {
    :root { --font-size-base: 15px; --spacing-large: 24px; --spacing-xl: 32px; }
    .header-container { flex-direction: column; gap: var(--spacing-medium); padding: var(--spacing-medium); }
    .logo-section { width: 100%; justify-content: center; flex-direction: column; text-align: center; }
    .logo-placeholder { width: 50px; height: 50px; font-size: 20px; }
    .logo-text h1 { font-size: 18px; }
    .org-tagline { font-size: 12px; }
    .navigation { width: 100%; }
    .nav-list { flex-direction: column; gap: var(--spacing-small); text-align: center; }
    .nav-link { display: block; font-size: var(--font-size-base); padding: var(--spacing-small); width: 100%; border-bottom: 2px solid var(--light-gray); }
    .hero { padding: 40px var(--spacing-medium); }
    .hero-title { font-size: 26px; margin-bottom: var(--spacing-medium); }
    .hero-subtitle { font-size: 18px; margin-bottom: var(--spacing-medium); }
    .hero-description { font-size: var(--font-size-base); margin-bottom: var(--spacing-large); }
    .offers-grid, .team-grid { grid-template-columns: 1fr; }
    .contact-wrapper { grid-template-columns: 1fr; }
    section { padding: var(--spacing-large) var(--spacing-medium); }
    .container { padding: 0 var(--spacing-medium); }
    h1 { font-size: 26px; }
    h2 { font-size: 22px; }
    h3 { font-size: 18px; }
    .section-title { font-size: 22px; padding-bottom: var(--spacing-medium); }
    .section-intro { font-size: var(--font-size-base); }
    .footer-content { grid-template-columns: 1fr; gap: var(--spacing-large); }
}

button:focus, a:focus, input:focus, textarea:focus { outline: 3px solid var(--primary-red); outline-offset: 2px; }
.text-high-contrast { color: var(--dark-blue); background-color: var(--white); }
p, li, td { line-height: 1.6; }
.skip-link { position: absolute; top: -40px; left: 0; background: var(--primary-red); color: var(--white); padding: 8px; text-decoration: none; z-index: 100; }
.skip-link:focus { top: 0; }
button, a, input[type="submit"], input[type="button"] { min-height: 44px; min-width: 44px; }
