/* =================================================================
   LAYOUT-SYSTEM
   Spielmannszug Rhede 2025 - Layout-Komponenten
   ================================================================= */

/* === FOOTER === */
.footer {
    background: var(--color-primary-dark);
    color: var(--color-primary-pale);
    padding: var(--space-4) var(--space-4) 6rem;
    margin-top: auto;
  }
  
  .footer__content {
    display: flex;
    flex-direction: column;
    gap: var(--space-6);
    text-align: center;
    align-items: center;
  }
  
  .footer__section {
    display: flex;
    flex-direction: row;
    gap: var(--space-2);
    font-size: var(--text-sm);
  }
  
  .footer__section p {
    margin: 0;
    line-height: var(--leading-normal);
  }
  
  .footer__section a {
    color: var(--color-gray-300);
    text-decoration: none;
    transition: color var(--transition-fast);
  }
  
  .footer__section a:hover,
  .footer__section a:focus {
    color: var(--color-primary-light);
    text-decoration: underline;
  }
  
  @media (min-width: 768px) {
    .footer {
      padding-bottom: var(--space-4);
    }
    .footer__content {
      flex-direction: row;
      justify-content: space-between;
      align-items: center;
      text-align: left;
    }
    
    .footer__section {
      flex-direction: row;
      gap: var(--space-4);
      align-items: center;
    }
  }
  
  /* === CONTENT AREAS === */
  .content {
    padding: var(--space-8) 0;
    min-height: 50vh;
  }
  
  .content h1 {
    color: var(--color-primary);
    margin-bottom: var(--space-8);
    text-align: center;
  }
  
  .content h2 {
    color: var(--color-primary);
    margin-top: var(--space-10);
    margin-bottom: var(--space-6);
    padding-bottom: var(--space-3);
    border-bottom: 2px solid var(--color-primary-pale);
  }
  
  .content h3 {
    color: var(--color-primary-dark);
    margin-top: var(--space-8);
    margin-bottom: var(--space-4);
  }
  
  /* === ARTICLE LAYOUT === */
  article {
    margin-bottom: var(--space-12);
    padding: var(--space-2);
    background: var(--color-white);
    border-radius: var(--radius-xl);
    box-shadow: var(--shadow-md);
  }
  
  /* Modern news cards should NOT use the old grid layout */
  .news-card {
    display: block; /* Override any article grid */
  }
  
  /* === TABLES === */
  .table-container {
    overflow-x: auto;
    margin: var(--space-6) 0;
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-md);
  }
  
  table {
    width: 100%;
    background: var(--color-white);
    border-radius: var(--radius-lg);
    overflow: hidden;
  }
  
  thead {
    background: var(--color-primary);
    color: var(--color-white);
  }
  
  th {
    padding: var(--space-4);
    font-weight: var(--font-semibold);
    text-align: left;
    background: var(--color-primary);
    color: var(--color-white);
    border-bottom: none;
  }
  
  td {
    padding: var(--space-4);
    border-bottom: 1px solid var(--color-gray-100);
    color: var(--color-gray-700);
  }
  
  tr:last-child td {
    border-bottom: none;
  }
  
  tr:hover {
    background: var(--color-gray-50);
  }
  
  /* Table Width Classes */
  .w20 { width: 20%; }
  .w30 { width: 30%; }
  .w40 { width: 40%; }
  .w60 { width: 60%; }
  
  /* Mobile Table Adjustments */
  @media (max-width: 767px) {
    .table-container {
      font-size: var(--text-sm);
    }
    
    th, td {
      padding: var(--space-3);
    }
  }
  
  /* === CONTACT LAYOUT === */
  .contact {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding: var(--space-8);
    background: var(--color-white);
    border-radius: var(--radius-xl);
    box-shadow: var(--shadow-md);
  }
  
  .contact img {
    width: 200px;
    height: 200px;
    object-fit: cover;
    border-radius: var(--radius-full);
    margin-bottom: var(--space-6);
    box-shadow: var(--shadow-lg);
  }
  
  .vst-title {
    font-size: var(--text-lg);
    font-weight: var(--font-bold);
    color: var(--color-primary);
    margin-bottom: var(--space-2);
  }
  
  /* === VORSTAND LAYOUT === */
  .vorstand {
    display: grid;
    gap: var(--space-8);
    grid-template-columns: 1fr;
  }
  
  @media (min-width: 576px) {
    .vorstand {
      grid-template-columns: repeat(2, 1fr);
    }
  }
  
  @media (min-width: 992px) {
    .vorstand {
      grid-template-columns: repeat(3, 1fr);
    }
  }
  
  .vorstand .card {
    text-align: center;
    height: 100%;
  }
  
  .vorstand .card img {
    width: 150px;
    height: 150px;
    object-fit: cover;
    border-radius: var(--radius-full);
    margin: 0 auto var(--space-4);
    box-shadow: var(--shadow-md);
  }
  
  .vorstand .description-container {
    padding: var(--space-4);
  }
  
  .vorstand .vst-title {
    font-size: var(--text-base);
    color: var(--color-primary);
    margin-bottom: var(--space-2);
  }
  
  /* === ARCHIV BUTTONS === */
  .archiv-buttons {
    display: flex;
    gap: var(--space-4);
    margin-bottom: var(--space-8);
    flex-wrap: wrap;
  }
  
  .archiv-buttons button {
    background: var(--color-primary);
    color: var(--color-white);
    border: none;
    padding: var(--space-3) var(--space-6);
    border-radius: var(--radius-lg);
    font-size: var(--text-base);
    font-weight: var(--font-semibold);
    cursor: pointer;
    transition: all var(--transition-fast);
  }
  
  .archiv-buttons button:hover {
    background: var(--color-primary-dark);
    transform: translateY(-2px);
    box-shadow: var(--shadow-md);
  }
  
  /* === IMPRESSUM / DATENSCHUTZ === */
  .impressum h2 {
    color: var(--color-primary);
    margin-top: var(--space-10);
    margin-bottom: var(--space-4);
  }
  
  .impressum div {
    margin-bottom: var(--space-6);
  }
  
  .impressum p {
    margin-bottom: var(--space-4);
    line-height: var(--leading-relaxed);
  }
  
  .impressum b {
    color: var(--color-primary-dark);
  }
  
  /* === LOADING STATES === */
  .loading {
    display: flex;
    justify-content: center;
    align-items: center;
    padding: var(--space-16);
  }
  
  .spinner {
    width: 40px;
    height: 40px;
    border: 4px solid var(--color-gray-200);
    border-top: 4px solid var(--color-primary);
    border-radius: 50%;
    animation: spin 1s linear infinite;
  }
  
  @keyframes spin {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
  }
  
  /* === ERROR STATES === */
  .error {
    text-align: center;
    padding: var(--space-16);
    color: var(--color-error);
  }
  
  .success {
    text-align: center;
    padding: var(--space-8);
    background: var(--color-success);
    color: var(--color-white);
    border-radius: var(--radius-lg);
    margin: var(--space-6) 0;
  }
  
  .warning {
    text-align: center;
    padding: var(--space-8);
    background: var(--color-error);
    color: var(--color-white);
    border-radius: var(--radius-lg);
    margin: var(--space-6) 0;
  }
  
  /* === ACCESSIBILITY === */
  .skip-link {
    position: absolute;
    top: -40px;
    left: 6px;
    background: var(--color-primary);
    color: var(--color-white);
    padding: 8px;
    text-decoration: none;
    border-radius: var(--radius-md);
    z-index: 1000;
  }
  
  .skip-link:focus {
    top: 6px;
  }
  
  /* === PRINT STYLES === */
  @media print {
    .header,
    .bottom-nav,
    .overlay-menu,
    .footer {
      display: none !important;
    }
    
    .main-content {
      padding-top: 0 !important;
      padding-bottom: 0 !important;
    }
    
    .card {
      box-shadow: none;
      border: 1px solid var(--color-gray-300);
    }
    
    .hero {
      background: var(--color-white) !important;
      color: var(--color-black) !important;
    }
  }