/* ============================================ Modern Responsive Design - Nephrology Practice ============================================ */ :root { --primary-color: #0066cc; --primary-dark: #004a99; --primary-light: #e6f0ff; --accent-color: #ff6b35; --text-color: #2c3e50; --text-light: #5a6c7d; --bg-color: #ffffff; --bg-light: #f8f9fa; --border-color: #dee2e6; --shadow: 0 2px 8px rgba(0, 0, 0, 0.1); --shadow-lg: 0 8px 16px rgba(0, 0, 0, 0.15); --transition: all 0.3s ease; } /* ============================================ Reset & Base Styles ============================================ */ * { margin: 0; padding: 0; box-sizing: border-box; } html, body { margin: 0; padding: 0; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif; font-size: 16px; line-height: 1.6; color: var(--text-color); background-color: var(--bg-color); } img { border: 0; max-width: 100%; height: auto; display: block; } a { color: var(--primary-color); text-decoration: none; transition: var(--transition); } a:hover { color: var(--primary-dark); text-decoration: underline; } p { margin-bottom: 1.5rem; } /* ============================================ Typography ============================================ */ h1, h2, h3, h4, h5, h6 { font-weight: 600; line-height: 1.2; margin-bottom: 1.5rem; color: var(--text-color); } h1 { font-size: 2.5rem; margin-bottom: 2rem; } h2 { font-size: 2rem; margin-bottom: 1.5rem; } h3 { font-size: 1.5rem; margin-bottom: 1.25rem; } h4 { font-size: 1.25rem; } @media (max-width: 768px) { h1 { font-size: 2rem; } h2 { font-size: 1.5rem; } h3 { font-size: 1.25rem; } } /* ============================================ Layout & Container ============================================ */ .container { width: 100%; max-width: 1200px; margin: 0 auto; padding: 0 20px; } @media (max-width: 768px) { .container { padding: 0 15px; } } /* ============================================ Header ============================================ */ #outer-container { display: flex; flex-direction: column; min-height: 100vh; } #header { background: linear-gradient(135deg, var(--primary-color) 0%, var(--primary-dark) 100%); color: white; padding: 2rem 0; box-shadow: var(--shadow); } #header-content { display: flex; align-items: center; justify-content: space-between; } #header-logo { font-size: 1.8rem; font-weight: 700; color: white; } #header-logo-subtitle { font-size: 0.9rem; opacity: 0.9; font-weight: 400; } .header-image { width: 100%; height: auto; max-height: 300px; object-fit: cover; background: linear-gradient(135deg, var(--primary-color) 0%, var(--primary-dark) 100%); } @media (max-width: 768px) { #header { padding: 1.5rem 0; } #header-logo { font-size: 1.4rem; } #header-logo-subtitle { font-size: 0.85rem; } } /* ============================================ Navigation ============================================ */ #menu { background-color: var(--bg-color); border-bottom: 3px solid var(--primary-color); position: sticky; top: 0; z-index: 1000; box-shadow: var(--shadow); } #menu ul { list-style-type: none; margin: 0; padding: 0; display: flex; justify-content: center; flex-wrap: wrap; } #menu ul li { display: inline-flex; padding: 0; } #menu ul li a { display: block; color: var(--text-color); padding: 1rem 1.5rem; text-decoration: none; font-weight: 500; border-bottom: 3px solid transparent; transition: var(--transition); } #menu ul li a:hover, #menu ul li a.active { color: var(--primary-color); background-color: var(--primary-light); border-bottom-color: var(--primary-color); text-decoration: none; } /* Mobile Menu Toggle */ #menu-toggle { display: none; background: none; border: none; color: var(--text-color); font-size: 1.5rem; cursor: pointer; padding: 0.5rem; } @media (max-width: 768px) { #menu ul { flex-direction: column; max-height: 0; overflow: hidden; transition: max-height 0.3s ease; position: absolute; top: 100%; left: 0; right: 0; background: var(--bg-color); border-bottom: 3px solid var(--primary-color); } #menu ul.active { max-height: 500px; } #menu ul li { width: 100%; } #menu ul li a { border: none; border-left: 4px solid transparent; padding: 1rem 1.5rem; width: 100%; } #menu ul li a:hover, #menu ul li a.active { border-left-color: var(--primary-color); background-color: var(--primary-light); border-bottom: none; } #menu-toggle { display: inline-block; } #menu { display: flex; justify-content: space-between; align-items: center; padding: 0 20px; } } /* ============================================ Content Area ============================================ */ #outer-content { flex: 1; padding: 3rem 0; background-color: var(--bg-light); } #inner-content { max-width: 900px; margin: 0 auto; padding: 2rem; background: var(--bg-color); border-radius: 8px; box-shadow: var(--shadow); } @media (max-width: 768px) { #outer-content { padding: 2rem 0; } #inner-content { padding: 1.5rem; margin: 0 15px; } } /* ============================================ Footer ============================================ */ #footer { background: linear-gradient(135deg, var(--primary-color) 0%, var(--primary-dark) 100%); color: white; padding: 2rem; text-align: center; border-top: 3px solid var(--accent-color); margin-top: auto; } #footer a { color: #e6f0ff; } #footer a:hover { color: white; text-decoration: underline; } /* ============================================ Messages ============================================ */ .errorMessage, .alert-danger { padding: 1rem; border: 1px solid #f5c6cb; border-radius: 6px; background: #f8d7da; color: #721c24; margin-bottom: 2rem; font-weight: 500; } .successMessage, .alert-success { padding: 1rem; border: 1px solid #c3e6cb; border-radius: 6px; background: #d4edda; color: #155724; margin-bottom: 2rem; font-weight: 500; } .alert { padding: 1rem; border-radius: 6px; margin-bottom: 2rem; border: 1px solid transparent; } /* ============================================ Forms ============================================ */ form { margin-bottom: 2rem; } label { display: block; margin-bottom: 0.5rem; font-weight: 500; color: var(--text-color); } input[type="text"], input[type="email"], input[type="phone"], input[type="tel"], input[type="password"], textarea, select { width: 100%; padding: 0.75rem; margin-bottom: 1.5rem; border: 1px solid var(--border-color); border-radius: 6px; font-size: 1rem; font-family: inherit; transition: var(--transition); } input[type="text"]:focus, input[type="email"]:focus, input[type="phone"]:focus, input[type="tel"]:focus, input[type="password"]:focus, textarea:focus, select:focus { outline: none; border-color: var(--primary-color); box-shadow: 0 0 0 3px rgba(0, 102, 204, 0.1); } textarea { resize: vertical; min-height: 150px; } .ktColumn { width: calc(50% - 1rem); display: inline-block; vertical-align: top; } .ktColumn:nth-child(even) { margin-left: 2rem; } @media (max-width: 768px) { .ktColumn { width: 100%; margin-left: 0 !important; } } /* ============================================ Buttons ============================================ */ input[type="submit"], input[type="button"], button, .btn { padding: 0.75rem 1.5rem; background: var(--primary-color); color: white; border: none; border-radius: 6px; font-size: 1rem; font-weight: 600; cursor: pointer; transition: var(--transition); display: inline-block; text-decoration: none; } input[type="submit"]:hover, input[type="button"]:hover, button:hover, .btn:hover { background: var(--primary-dark); transform: translateY(-2px); box-shadow: var(--shadow-lg); } input[type="button"]:nth-of-type(1) { background: var(--border-color); color: var(--text-color); } input[type="button"]:nth-of-type(1):hover { background: #ccc; } #kontaktbuttons { display: flex; gap: 1rem; margin-top: 2rem; } #kontaktbuttons input[type="button"], #kontaktbuttons input[type="submit"] { flex: 1; padding: 1rem; font-size: 1.1rem; } @media (max-width: 768px) { #kontaktbuttons { flex-direction: column; } } /* ============================================ Lists & Content ============================================ */ ul { margin-left: 2rem; margin-bottom: 1.5rem; } ul li { margin-bottom: 0.75rem; line-height: 1.8; } ul ul { margin-top: 0.75rem; margin-bottom: 0.75rem; } table { width: 100%; border-collapse: collapse; margin-bottom: 2rem; box-shadow: var(--shadow); border-radius: 6px; overflow: hidden; } table td { padding: 1rem; border-bottom: 1px solid var(--border-color); } table tr:last-child td { border-bottom: none; } table tr.tdHead, table tr:first-child { background: linear-gradient(135deg, var(--primary-color) 0%, var(--primary-dark) 100%); color: white; font-weight: 600; } table tr:nth-child(even) { background-color: var(--primary-light); } table tr:hover { background-color: #f0f7ff; } .kontakt table tr.tdHead td { padding: 1rem; } .kontakt table td span { font-weight: 600; color: var(--primary-color); } /* ============================================ Images & Gallery ============================================ */ .floatLeftImage, .floatRightImage { margin: 1rem; padding: 8px; background: white; border: 1px solid var(--border-color); border-radius: 6px; box-shadow: var(--shadow); } .floatLeftImage { float: left; } .floatRightImage { float: right; } @media (max-width: 768px) { .floatLeftImage, .floatRightImage { float: none; margin: 1rem auto; max-width: 300px; } } .floatLeftImage img, .floatRightImage img { width: 100%; height: auto; cursor: pointer; } .alignCenter { text-align: center; clear: both; margin: 2rem 0; } .alignCenter a { display: inline-block; margin: 0.5rem; border-radius: 6px; overflow: hidden; box-shadow: var(--shadow); transition: var(--transition); } .alignCenter a:hover { transform: translateY(-4px); box-shadow: var(--shadow-lg); } .alignCenter img { width: 150px; height: 150px; object-fit: cover; } .alignRight { text-align: right; } .clear { clear: both; } /* ============================================ Maps ============================================ */ .profile-map { border-radius: 6px; box-shadow: var(--shadow); margin-bottom: 2rem; } /* ============================================ Holiday Dialog ============================================ */ #holiday-wrapper { position: fixed; top: 0; left: 0; right: 0; bottom: 0; z-index: 2000; display: flex; align-items: center; justify-content: center; } .holiday-bg { position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: rgba(0, 0, 0, 0.5); } .holiday-dialog { position: relative; background: white; padding: 2rem; border-radius: 8px; max-width: 500px; box-shadow: var(--shadow-lg); animation: slideUp 0.3s ease; } @keyframes slideUp { from { transform: translateY(20px); opacity: 0; } to { transform: translateY(0); opacity: 1; } } .holiday-dialog p { margin-bottom: 1rem; } .holiday-dialog p:last-child { margin-bottom: 0; } /* ============================================ Responsive Utilities ============================================ */ .title { font-size: 1.25rem; font-weight: 600; margin-bottom: 1rem; } .stack { display: inline-block; min-width: 70px; font-weight: 600; } .alignCenter { text-align: center; } @media print { #header, #menu, #footer { display: none; } #outer-content { background: white; } #inner-content { box-shadow: none; border: none; } }