Files
Key-service-Server/Website/templates/team.html
T

174 lines
3.8 KiB
HTML

{% extends "base.html" %}
{% block title %}Team | Invario{% endblock %}
{% block content %}
<section class="page-hero">
<h1>Unser Team für Schulen</h1>
<p>Unsere Ansprechpartner mit klaren Verantwortungen. Inhalte und Fotos werden direkt im Admin-Bereich gepflegt.</p>
</section>
<section class="team-grid" aria-label="Team Cards">
{% for member in team_members %}
<article class="member-card">
{% if member and member.photo %}
<img class="member-photo" src="{{ url_for('static', filename=member.photo) }}" alt="Teamfoto {{ member.name }}">
{% endif %}
<div class="member-content">
<p class="member-slot">Teammitglied</p>
<h2>{{ member.name }}</h2>
<p class="member-role">{{ member.role }}</p>
<p><strong>Arbeit:</strong> {{ member.work }}</p>
{% if member.bio %}
<p>{{ member.bio }}</p>
{% endif %}
</div>
</article>
{% else %}
<article class="member-card">
<div class="member-content">
<p class="member-slot">Team</p>
<h2>Noch keine Einträge vorhanden</h2>
<p class="member-role">Der Admin kann Teammitglieder im Bereich „Admin > Team Cards“ hinzufügen.</p>
</div>
</article>
{% endfor %}
</section>
<section class="values">
<h2>Arbeitsprinzipien</h2>
<p>Direkte Kommunikation, saubere Einführung und verbindliche Betreuung im laufenden Betrieb.</p>
</section>
<style>
.page-hero {
margin-bottom: 2rem;
}
.team-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
gap: 0.75rem;
margin-bottom: 2rem;
}
.member-card {
background: #ffffff;
border: 1px solid #d8dfd7;
border-radius: 16px;
overflow: hidden;
box-shadow: 0 12px 24px rgba(25, 45, 41, 0.06);
display: grid;
grid-template-rows: auto 1fr;
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}
.member-card:hover {
box-shadow: 0 20px 32px rgba(25, 45, 41, 0.12);
transform: translateY(-4px);
border-color: #c0ccc8;
}
.member-photo {
width: 100%;
aspect-ratio: 3 / 4;
object-fit: cover;
object-position: center 20%;
background: linear-gradient(135deg, #eef2ee 0%, #e0e8e4 100%);
display: block;
}
.member-content {
padding: 0.75rem;
display: grid;
gap: 0.3rem;
}
.member-slot {
margin: 0;
color: #5f7479;
font-size: 0.85rem;
font-weight: 700;
letter-spacing: 0.04em;
text-transform: uppercase;
}
.member-content h2 {
margin: 0;
color: #264f56;
font-size: 1.4rem;
line-height: 1.1;
margin-top: 0.1rem;
}
.member-role {
margin: 0;
color: #3b6168;
font-weight: 600;
font-size: 1rem;
}
.member-content p:last-child {
margin: 0.25rem 0 0 0;
color: #505550;
font-size: 1rem;
line-height: 1.3;
}
.values {
margin-top: 3rem;
background: #ffffff;
border: 1px solid #d8dfd7;
border-radius: 14px;
padding: 2rem;
}
.values h2 {
color: #265057;
margin-bottom: 0.75rem;
font-size: clamp(1.25rem, 2vw, 1.5rem);
}
.values p {
color: #505550;
line-height: 1.6;
}
@media (max-width: 900px) {
.team-grid {
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
gap: 1.5rem;
}
.member-photo {
height: 240px;
}
}
@media (max-width: 600px) {
.team-grid {
grid-template-columns: 1fr;
gap: 1.5rem;
}
.member-card {
border-radius: 12px;
}
.member-content {
padding: 1.25rem;
}
.member-photo {
height: 200px;
}
.values {
padding: 1.5rem;
margin-top: 2rem;
}
}
</style>
{% endblock %}