/* ============================================================
   Luftrauminspektorat Schweiz – Hauptstylesheet
   ============================================================ */

:root {
    --red:         #c8102e;
    --red-dark:    #a00d24;
    --red-muted:   #7a1020;

    /* Dark-Mode Farbpalette */
    --bg:          #141413;   /* Seitenhintergrund */
    --surface:     #1e1e1d;   /* Karten, Hero */
    --surface-2:   #272726;   /* Leicht abgehobene Flächen */
    --border:      #333332;   /* Trennlinien */
    --border-light:#2a2a29;

    --dark:        #1c1c1b;   /* Header/Footer (unverändert) */

    --text:        #e2e1dd;   /* Haupttext */
    --text-mid:    #888886;   /* Sekundärtext */
    --text-dim:    #555553;   /* Dezenter Text */

    --white:       #ffffff;

    --font-serif:  Georgia, 'Times New Roman', serif;
    --font-sans:   'Helvetica Neue', Helvetica, Arial, sans-serif;
    --max-width:   1100px;
    --radius:      3px;
}

/* ── Reset ── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
img { max-width: 100%; display: block; }
a { color: inherit; }

/* ── Body ── */
body {
    font-family: var(--font-sans);
    font-size: 1rem;
    line-height: 1.7;
    color: var(--text);
    background: var(--bg);
}

/* ── Sprachwechsel ── */
.lang-switch { display: flex; gap: 0.5rem; }

.lang-switch a {
    color: #888;
    text-decoration: none;
    padding: 0 0.3rem;
    border-bottom: 2px solid transparent;
    transition: color 0.2s, border-color 0.2s;
}

.lang-switch a:hover { color: #ccc; }
.lang-switch a.active { color: var(--white); border-bottom-color: var(--red); }

/* ============================================================
   Header
   ============================================================ */
.site-header {
    background: var(--dark);
    color: var(--white);
    border-bottom: 4px solid var(--red);
}

.header-inner {
    max-width: var(--max-width);
    margin: 0 auto;
    padding: 1rem 1.5rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 2rem;
}

/* ── Logo ── */
.logo {
    display: flex;
    align-items: center;
    gap: 0.85rem;
    text-decoration: none;
    color: var(--white);
    flex-shrink: 0;
}

.logo-badge {
    flex-shrink: 0;
    display: flex;
    align-items: center;
}

.logo-badge svg { display: block; }

.logo-text strong {
    display: block;
    font-family: var(--font-sans);
    font-size: 1rem;
    font-weight: 700;
    letter-spacing: 0.01em;
    line-height: 1.1;
}

.logo-text small {
    display: block;
    font-family: var(--font-sans);
    font-size: 0.7rem;
    color: #999;
    letter-spacing: 0.02em;
    line-height: 1.2;
    margin-top: 0.1rem;
}

/* ============================================================
   Navigation
   ============================================================ */
.main-nav { position: relative; }

.nav-link {
    display: block;
    padding: 0.4rem 0.75rem;
    font-family: var(--font-sans);
    font-size: 0.85rem;
    color: #bbb;
    text-decoration: none;
    transition: color 0.2s, background 0.2s;
}

.nav-link:hover { color: var(--white); background: rgba(255,255,255,0.05); }
.nav-link.active { color: var(--white); }
.nav-link--admin { color: #777; font-size: 0.78rem; }
.nav-link--admin:hover { color: #bbb; }
.nav-link--logout { color: #666; font-size: 0.78rem; }
.nav-link--logout:hover { color: #cc4444; }

.nav-toggle {
    display: block;
    background: none;
    border: none;
    color: #bbb;
    font-size: 1.4rem;
    cursor: pointer;
    padding: 0.25rem;
}

.nav-list {
    list-style: none;
    display: none;
    flex-direction: column;
    position: absolute;
    top: 100%;
    right: 0;
    background: var(--dark);
    border: 1px solid #333;
    border-top: 3px solid var(--red);
    padding: 0.5rem 0;
    min-width: 200px;
    z-index: 9999;
    box-shadow: 0 4px 12px rgba(0,0,0,0.3);
}

.nav-list.open { display: flex; }
.nav-link { padding: 0.65rem 1.25rem; }

/* ============================================================
   Main
   ============================================================ */
main {
    max-width: var(--max-width);
    margin: 2.5rem auto;
    padding: 0 1.5rem;
}

/* ============================================================
   Hero
   ============================================================ */
.hero {
    background: var(--surface);
    border-left: 6px solid var(--red);
    padding: 2.5rem 2rem;
    margin-bottom: 2rem;
    border: 1px solid var(--border);
    border-left: 6px solid var(--red);
}

.hero-badge {
    display: inline-block;
    background: var(--red);
    color: var(--white);
    font-family: var(--font-sans);
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    padding: 0.2rem 0.6rem;
    border-radius: var(--radius);
    margin-bottom: 1rem;
}

.hero h1 {
    font-family: var(--font-sans);
    font-size: 1.9rem;
    font-weight: 700;
    color: var(--text);
    margin-bottom: 0.75rem;
    line-height: 1.25;
}

.hero-lead {
    font-size: 1.05rem;
    color: var(--text-mid);
    font-style: italic;
    max-width: 720px;
    margin-bottom: 0.5rem;
}

.hero-desc {
    font-size: 1.05rem;
    color: #888;
    max-width: 720px;
    line-height: 1.55;
    margin-bottom: 2.5rem;
}

.hero-actions { display: flex; gap: 0.75rem; flex-wrap: wrap; }

/* ============================================================
   Buttons
   ============================================================ */
.btn {
    display: inline-block;
    font-family: var(--font-sans);
    font-size: 0.88rem;
    font-weight: 700;
    padding: 0.55rem 1.2rem;
    border-radius: var(--radius);
    text-decoration: none;
    transition: background 0.2s, color 0.2s;
}

.btn--primary { background: var(--red); color: var(--white); }
.btn--primary:hover { background: var(--red-dark); }
.btn--secondary { background: transparent; color: var(--text); border: 2px solid var(--border); }
.btn--secondary:hover { border-color: var(--text-mid); }

/* ============================================================
   Content Grid
   ============================================================ */
.content-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 1.25rem;
    margin-bottom: 2rem;
}

/* ============================================================
   Cards
   ============================================================ */
.card {
    background: var(--surface);
    border: 1px solid var(--border);
    border-top: 4px solid var(--border-light);
    padding: 1.5rem;
    border-radius: var(--radius);
}

.card--highlight { border-top-color: var(--red); }

.card-label {
    font-family: var(--font-sans);
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--red);
    margin-bottom: 0.5rem;
}

.card h2 {
    font-family: var(--font-sans);
    font-size: 1.05rem;
    font-weight: 700;
    margin-bottom: 0.6rem;
    color: var(--text);
}

.card p {
    font-size: 0.9rem;
    color: var(--text-mid);
    margin-bottom: 1rem;
}

.card-link {
    font-family: var(--font-sans);
    font-size: 0.85rem;
    font-weight: 700;
    color: var(--red);
    text-decoration: none;
}

.card-link:hover { color: var(--red-dark); text-decoration: underline; }

/* ============================================================
   Hinweis-Leiste
   ============================================================ */
.notice-bar {
    background: #1e1b10;
    border: 1px solid #3a3010;
    border-left: 5px solid #d4a017;
    border-radius: var(--radius);
    margin-bottom: 2rem;
}

.notice-bar-inner {
    max-width: var(--max-width);
    margin: 0 auto;
    padding: 0.9rem 1.25rem;
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
}

.notice-icon {
    flex-shrink: 0;
    line-height: 0;
    margin-top: 0.15rem;
}

.notice-bar p {
    font-family: var(--font-sans);
    font-size: 0.85rem;
    color: #b89840;
}

/* ============================================================
   Footer
   ============================================================ */
.site-footer {
    background: var(--dark);
    color: #888;
    font-family: var(--font-sans);
    font-size: 0.8rem;
    border-top: 4px solid var(--red);
    margin-top: 3rem;
}

.footer-inner {
    max-width: var(--max-width);
    margin: 0 auto;
    padding: 1rem 1.5rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: wrap;
}

.footer-title { color: #999; font-weight: 700; }
.footer-disclaimer { color: #555; }

/* ============================================================
   Allgemeine Seiten-Layouts (für spätere Phasen)
   ============================================================ */
.page-header {
    border-bottom: 2px solid var(--border);
    margin-bottom: 2rem;
    padding-bottom: 1rem;
}

.page-header h1 {
    font-family: var(--font-sans);
    font-size: 1.6rem;
    font-weight: 700;
    color: var(--text);
}

.page-header .page-subtitle {
    color: var(--text-mid);
    font-size: 0.95rem;
    font-style: italic;
}

/* ── Alerts ── */
.alert {
    padding: 0.75rem 1rem;
    border-radius: var(--radius);
    font-family: var(--font-sans);
    font-size: 0.875rem;
    margin-bottom: 1.25rem;
    border-left: 4px solid transparent;
}

.alert--error {
    background: #1e1010;
    border-left-color: var(--red);
    color: #e08080;
}

.alert--success {
    background: #0f1e14;
    border-left-color: #2a7a4b;
    color: #6abf8a;
}

.alert--info {
    background: #101420;
    border-left-color: #2a4b7a;
    color: #6a8abf;
}

/* ── Fehlerseite ── */
.error-page {
    max-width: 600px;
    margin: 4rem auto;
    text-align: center;
}

.error-page h1 {
    font-family: var(--font-sans);
    font-size: 1.6rem;
    margin: 0.5rem 0 1rem;
}

.error-page p {
    color: var(--text-mid);
    margin-bottom: 1.25rem;
}

/* ── Admin-spezifisch → siehe admin.css ── */

/* ============================================================
   Allgemeine Inhaltsseiten
   ============================================================ */
.content-wrap {
    max-width: var(--max-width);
    margin: 2rem auto;
    padding: 0 1.5rem;
}

.content-wrap--narrow {
    max-width: 720px;
}

.back-link {
    display: inline-block;
    margin-bottom: 0.75rem;
    color: var(--text-mid);
    text-decoration: none;
    font-size: 0.85rem;
    font-family: var(--font-sans);
}
.back-link:hover { color: var(--text); }

/* ── Prose (Seiteninhalt aus CMS) ── */
.prose { line-height: 1.8; }
.prose h2 { font-family: var(--font-sans); font-size: 1.3rem; margin: 2rem 0 0.75rem; border-bottom: 1px solid var(--border); padding-bottom: 0.4rem; }
.prose h3 { font-family: var(--font-sans); font-size: 1.05rem; margin: 1.5rem 0 0.5rem; }
.prose p  { margin-bottom: 1rem; }
.prose ul, .prose ol { margin: 0.75rem 0 1rem 1.5rem; }
.prose li { margin-bottom: 0.3rem; }
.prose a  { color: var(--red); text-decoration: underline; }
.prose a:hover { color: var(--red-dark); }
.prose strong { color: var(--text); }

.post-footer { margin-top: 2.5rem; padding-top: 1.5rem; border-top: 1px solid var(--border); }

/* ── Blog-Liste ── */
.blog-list {
    display: flex;
    flex-direction: column;
    gap: 0;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    overflow: hidden;
}

.blog-card {
    padding: 1.1rem 1.25rem;
    background: var(--surface);
    border-bottom: 1px solid var(--border);
    transition: background 0.15s;
}
.blog-card:last-child { border-bottom: none; }
.blog-card:hover { background: var(--surface-2); }

.blog-card-meta {
    display: flex;
    gap: 1rem;
    font-family: var(--font-sans);
    font-size: 0.78rem;
    color: var(--text-mid);
    margin-bottom: 0.4rem;
}

.blog-card-title {
    font-family: var(--font-sans);
    font-size: 1rem;
    font-weight: 700;
    margin: 0;
}
.blog-card-title a { text-decoration: none; color: var(--text); }
.blog-card-title a:hover { color: var(--red); }

/* ============================================================
   Flüge – Öffentliche Übersichtsseite
   ============================================================ */
.page-header {
    background: var(--surface);
    border-bottom: 1px solid var(--border);
    padding: 2.5rem 0 2rem;
}

.page-header-inner {
    max-width: var(--max-width);
    margin: 0 auto;
    padding: 0 1.5rem;
}

.page-header h1 {
    font-family: var(--font-sans);
    font-size: 1.8rem;
    font-weight: 700;
    margin-bottom: 0.5rem;
}

.page-lead {
    color: var(--text-mid);
    font-size: 0.95rem;
    max-width: 600px;
}

.page-lead-meta {
    color: var(--text-mid);
    font-size: 0.78rem;
    margin-top: 0.35rem;
    opacity: 0.7;
}

.flight-list {
    display: flex;
    flex-direction: column;
    gap: 0;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    overflow: hidden;
}

.flight-card {
    display: flex;
    align-items: center;
    gap: 1.5rem;
    padding: 1rem 1.25rem;
    background: var(--surface);
    border-bottom: 1px solid var(--border);
    text-decoration: none;
    color: var(--text);
    transition: background 0.15s;
}

.flight-card:last-child { border-bottom: none; }
.flight-card:hover { background: var(--surface-2); }

.flight-card-date {
    flex-shrink: 0;
    width: 52px;
    text-align: center;
    background: var(--surface-2);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 0.4rem 0.3rem;
    line-height: 1.2;
}

.flight-day   { display: block; font-family: var(--font-sans); font-size: 1.4rem; font-weight: 700; color: var(--red); }
.flight-month { display: block; font-family: var(--font-sans); font-size: 0.65rem; text-transform: uppercase; letter-spacing: 0.05em; color: var(--text-mid); }
.flight-year  { display: block; font-family: var(--font-sans); font-size: 0.7rem; color: var(--text-dim); }

.flight-card-info { flex: 1; min-width: 0; }

.flight-card-title {
    font-family: var(--font-sans);
    font-size: 0.95rem;
    font-weight: 700;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    margin-bottom: 0.25rem;
}

.flight-card-meta {
    display: flex;
    gap: 1rem;
    flex-wrap: wrap;
    font-size: 0.8rem;
    color: var(--text-mid);
    font-family: var(--font-sans);
}

.flight-card-arrow {
    flex-shrink: 0;
    color: var(--text-dim);
    font-size: 1.1rem;
}

.empty-state {
    padding: 3rem 1.5rem;
    text-align: center;
    color: var(--text-mid);
    font-family: var(--font-sans);
}

@media (max-width: 479px) {
    .flight-card { gap: 0.75rem; padding: 0.75rem 1rem; }
    .flight-card-date { width: 44px; }
    .flight-day { font-size: 1.2rem; }
    .flight-card-meta { gap: 0.5rem; }
    .flight-card-arrow { display: none; }
}

/* ── Login ── */
.login-box {
    max-width: 400px;
    margin: 3rem auto;
    background: var(--surface);
    border: 1px solid var(--border);
    border-top: 4px solid var(--red);
    padding: 2rem;
    border-radius: var(--radius);
}

.login-box h2 { font-family: var(--font-sans); font-size: 1.1rem; margin-bottom: 1.5rem; color: var(--text); }

.login-box label {
    display: block;
    font-family: var(--font-sans);
    font-size: 0.85rem;
    font-weight: 700;
    margin-bottom: 1rem;
    color: var(--text-mid);
}

.login-box input {
    display: block;
    width: 100%;
    margin-top: 0.3rem;
    padding: 0.5rem 0.75rem;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    font-family: var(--font-sans);
    font-size: 0.95rem;
    color: var(--text);
    background: var(--surface-2);
}

.login-box input:focus { outline: none; border-color: var(--red); }

.login-box .remember-label {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-weight: 400;
    font-size: 0.85rem;
    margin-bottom: 1rem;
    cursor: pointer;
}

.login-box .remember-label input[type="checkbox"] {
    display: inline;
    width: auto;
    margin: 0;
    cursor: pointer;
}

.login-box button {
    width: 100%;
    margin-top: 0.5rem;
    padding: 0.6rem;
    background: var(--red);
    color: var(--white);
    border: none;
    border-radius: var(--radius);
    font-family: var(--font-sans);
    font-size: 0.9rem;
    font-weight: 700;
    cursor: pointer;
    transition: background 0.2s;
}

.login-box button:hover { background: var(--red-dark); }

/* ============================================================
   Responsive – Mobile first
   Breakpoints: 480px / 768px / 1024px
   ============================================================ */

/* ── Basis: alles unter 480px ── */
@media (max-width: 479px) {
    main { padding: 0 1rem; margin: 1.5rem auto; }

.header-inner { padding: 0.75rem 1rem; gap: 0.5rem; }

    .logo-text strong { font-size: 0.85rem; }
    .logo-text small  { font-size: 0.6rem; }

    .hero { padding: 1.25rem 1rem; border-left-width: 4px; }
    .hero h1 { font-size: 1.2rem; }
    .hero-lead { font-size: 0.95rem; }
    .hero-actions { flex-direction: column; }
    .btn { text-align: center; }

    .content-grid { grid-template-columns: 1fr; gap: 1rem; }

    .notice-bar-inner { flex-direction: column; gap: 0.4rem; }

    .footer-inner { flex-direction: column; gap: 0.5rem; }

    .login-box { margin: 1.5rem 1rem; padding: 1.25rem; }
}

/* ── Klein: 480px – 767px ── */
@media (min-width: 480px) and (max-width: 767px) {
    main { padding: 0 1.25rem; }

    .hero { padding: 1.5rem 1.25rem; }
    .hero h1 { font-size: 1.4rem; }

    .content-grid { grid-template-columns: 1fr; }

    .footer-inner { flex-direction: column; gap: 0.5rem; }
}

/* ── Mittel: bis 768px ── */
@media (max-width: 767px) {
    .header-inner { flex-wrap: wrap; gap: 0.75rem; }
}

/* ── Tablet: 768px – 1023px ── */
@media (min-width: 768px) and (max-width: 1023px) {
    main { padding: 0 1.25rem; }

    .content-grid { grid-template-columns: repeat(2, 1fr); }

    .hero h1 { font-size: 1.6rem; }

}

/* ── Desktop: ab 1024px – Vollansicht ── */
@media (min-width: 1024px) {
    .content-grid { grid-template-columns: repeat(2, 1fr); }
}


/* ── Leaflet Attribution – dezent ── */
.leaflet-control-attribution {
    font-size: 0.6rem !important;
    background: rgba(10, 10, 10, 0.5) !important;
    color: #555 !important;
    padding: 1px 5px !important;
    line-height: 1.4 !important;
}

.leaflet-control-attribution a {
    color: #666 !important;
}

.leaflet-control-attribution a:hover {
    color: #999 !important;
}
