body, p, a, td, h1
{ 
  font-size: 16px;
  font-family: Averta, helvetica, arial, sans-serif;
}
	
body 
{ 
  background: url("/kontrakt/pics/1-1c2c242b.jpg") no-repeat fixed center;
  background-size: cover;  
  background-color: #FAFAFA;
}

h1
{
  font-size: 35px;
  font-family: 'Calibri';
  color: #FFFFFF;
  text-transform: uppercase;
}

#headerform
{
   color: #bd32ff;
}

img
{
  max-width: 90%;
}

video
{
  max-width: 960px;
}

.error { color: red; }

@media (max-width: 1200px) {
  #video-container {
  display: none;
  visibility: hidden;
  }
}

/* Form fields */
.form-group {
    margin-bottom: 15px;
}

.form-group label {
    display: block;
    margin-bottom: 5px;
    font-weight: bold;
    /* Ensure good contrast */
    color: #000;
}

.form-group input, textarea, select {
    width: 400px;
    padding: 10px;
    border: 1px solid #ccc;
    border-radius: 4px;
    box-sizing: border-box; /* Ensures padding doesn't affect width */
    font-size: 16px;
}

.form-group input[type="radio"] {
    width: 10px;
    padding: 10px;
    border: 1px solid #ccc;
    border-radius: 4px;
    box-sizing: border-box; /* Ensures padding doesn't affect width */
    font-size: 16px;
    transform: scale(1.5);
}

.form-group input[type="checkbox"] {
  width: 13px;
  height: 13px;
  padding: 0;
  margin:0;
  vertical-align: bottom;
  position: relative;
  top: -1px;
  *overflow: hidden;
  transform: scale(1.5);
}

.form-group input[type="date"] {
  width: 210px;
}

.form-group textarea {
	  height: 120px;
}

#checkboxlabel {
  position: relative;
  top: -19px;
  left: 20px;
  margin-bottom: -14px;
  font-weight: normal;
}

/* WCAG: Visual focus indicator for keyboard navigation */
.form-group input:focus {
    outline: 2px solid #0056b3; 
    outline-offset: 2px;
    border-color: #0056b3;
}

.formbutton {
    max-width: 400px;
	min-width: 200px;
    padding: 12px;
    background-color: #224ede; /* Primary button color */
    color: #fff;
    border: none;
    border-radius: 4px;
    font-size: 18px;
    font-weight: bold;
    cursor: pointer;
    margin-top: 10px;
}

.formbutton_back {
    max-width: 400px;
	min-width: 200px;
    padding: 12px;
    background-color: #ED1C24; /* Primary button color */
    color: #fff;
    border: none;
    border-radius: 4px;
    font-size: 18px;
    font-weight: bold;
    cursor: pointer;
    margin-top: 10px;
	float: right;
}

.formbutton:hover {
    background-color: #0056b3; /* Darker shade on hover for feedback */
}

/* WCAG: Visual focus indicator for the button */
.formbutton:focus {
    outline: 2px solid #0056b3;
    outline-offset: 2px;
}

/* Mobile styles for screens 500px or less */
@media screen and (max-width: 500px) {
  .formbutton, 
  .formbutton_back {
    float: none;       /* Remove the float */
    display: block;    /* Force buttons to take up full width/stack */
    width: 100%;       /* Optional: makes buttons full width for easier tapping */
    margin-top: 10px;  /* Adds spacing between the stacked buttons */
  }
}

/* Responsive design for small screens */
@media (max-width: 500px) {
    .form-group input, button {
        padding: 10px;
        font-size: 16px;
    }
	
	.form-group input, textarea, select {
        width: 300px;
    }
}

/* ----------------------------------------------------- */

.responsive-container {
    /* Responsiveness (as before) */
    width: 85%;
    max-width: 1000px;
    margin: 20px auto;
    padding: 20px;
    box-sizing: border-box;

    /* Transparency: The background will be white with 75% opacity */
    background-color: rgba(255, 255, 255, 0.75); 
    
    /* WCAG Compliance: The text color must contrast sufficiently with the background color */
    color: #333; /* Dark gray text, which provides excellent contrast on a light background */

    /* Additional styling for presentation */
    border-radius: 10px;
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
}

#login {
}
 
.hidden {
    display: none !important; 
    /* The !important flag ensures visibility is controlled only by this class */
}

/* Optional: Add media queries for more specific responsive control */
@media (max-width: 768px) {
    .responsive-container {
        width: 95%; /* Slightly wider on medium screens */
    }
}

.header {
	background-color: #224ede;
	color: #FFFFFF;
	padding: 2px;
}

#desc {
    font-family: Averta, helvetica, arial, sans-serif;
	font-size: 13px;
	font-weight: normal;
}

/* ----------------------------------------------------- */

.progress-container {
  width: 90%; /* Makes the bar responsive to screen width */
  background-color: #e0e0e0;
  border-radius: 10px; /* Graphical: rounded corners */
  margin: 20px auto; /* Centers the bar horizontally */
  overflow: hidden; /* Ensures inner bar stays within rounded container */
  height: 30px; /* Fixed height for consistency */
  box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.2);
}

.progress-bar {
  height: 100%;
  /* PHP updates the 'width' in the HTML inline style */
  background-color: #4CAF50; /* Base color (Green) */
  text-align: center; /* Centers the percentage text */
  line-height: 30px; /* Vertically centers the text (same as height) */
  color: white;
  transition: width 0.4s ease; /* Smooth animation when page reloads with new value */
  /* Graphical: subtle gradient for depth */
  background-image: linear-gradient(to right, #4CAF50, #45a049);
}

/* Media query for responsiveness on small screens */
@media (max-width: 600px) {
  .progress-container {
    width: 95%;
  }
  .progress-bar {
    font-size: 0.9em;
  }
}

/* -------------------------------------------------- */

/* --- Global Table Reset and Base Styles --- */
.responsive-table {
  /* Ensure it takes up the available width */
  width: 100%;
  /* Collapse border for a clean look */
  border-collapse: collapse; 
  /* Space out the table content */
  margin: 1.5em 0; 
  /* Set a nice, legible font size */
  font-size: 0.9em; 
  /* Subtle shadow for depth */
  box-shadow: 0 0 20px rgba(0, 0, 0, 0.15); 
}

/* --- Table Header (thead) Styles --- */
.responsive-table thead tr {
  /* Primary brand color for the header */
  background-color: #224ede; 
  color: #ffffff;
  /* Align text */
  text-align: left;
}

/* --- Table Cells (th and td) Styles --- */
.responsive-table th,
.responsive-table td {
  padding: 12px 15px; /* Consistent padding */
}

/* --- Table Body (tbody) Styles: Alternating Rows (Zebra Stripping) --- */
.responsive-table tbody tr {
  border-bottom: 1px solid #dddddd; /* Subtle separator */
}

.responsive-table tbody tr:nth-of-type(even) {
  /* Light gray background for even rows */
  background-color: #f3f3f3; 
}

.responsive-table tbody tr:last-of-type {
  /* No border on the last row */
  border-bottom: 2px solid #009879; 
}

/* --- Hover Effect --- */
.responsive-table tbody tr:hover {
  /* Slight background change on hover for better UX */
  background-color: #e8f5e9; 
  cursor: pointer;
}


/* ####################################################################### */
/* --- RESPONSIVENESS: CARD LAYOUT FOR SMALL SCREENS (e.g., Smartphones) --- */
/* ####################################################################### */

@media screen and (max-width: 600px) {
  
  /* 1. Hide the table header completely */
  .responsive-table thead {
    display: none;
  }
  
  /* 2. Set the table and main components to block for vertical stacking */
  .responsive-table, 
  .responsive-table tbody, 
  .responsive-table tr {
    display: block;
    width: 100%;
  }

  /* 3. Style the table rows to look like cards */
  .responsive-table tr {
    /* Separate the "cards" */
    margin-bottom: 15px; 
    /* The main card background and padding */
    border: 1px solid #ddd;
    border-radius: 5px;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
  }
  
  /* 4. Style the table cells (td) */
  .responsive-table td {
    display: flex; /* CRUCIAL: Use flex to align label and content horizontally */
    justify-content: space-between; /* CRUCIAL: Pushes label to left, content to right */
    align-items: center; /* Vertically center them */
    
    padding: 10px 15px; /* Adjust padding */
    text-align: right; /* Default text alignment */
    position: relative; /* Not strictly necessary with flex, but good for context */
    
    border: none; /* Remove default cell borders */
    border-bottom: 1px dashed #eee; /* Light separator between data points */
  }

  /* 5. Insert the Data-Label as a Pseudo-Element (no need for absolute positioning anymore) */
  .responsive-table td::before {
    /* Get the content from the data-label attribute */
    /* content: attr(data-label); */
    
    /* Style the label (it's now on the left thanks to 'justify-content: space-between') */
    font-weight: bold;
    color: #333;
    /* Ensure the label doesn't wrap unnecessarily */
    flex-shrink: 0; 
    padding-right: 15px;
    text-align: left;
  }

  /* 6. Clean up the last cell in the card */
  .responsive-table td:last-child {
      border-bottom: none; /* Remove the dashed border on the last item in the card */
  }
  
  /* 7. Ensure hover state is maintained */
  .responsive-table tbody tr:hover {
    background-color: #e8f5e9; 
  }
  
  /* Ensure the background on the card is consistent, not alternating */
  .responsive-table tbody tr {
      background-color: #ffffff !important;
  }
}

/* ####################################################################### */

.modal-overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.7);
  display: none; /* Hidden by default */
  justify-content: center;
  align-items: center;
  z-index: 1000;
}

.modal-content {
  background: white;
  padding: 2rem;
  border-radius: 8px;
  max-width: 90%;
  width: 500px;
  position: relative;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.2);
  max-height: 80vh; /* Added for responsiveness/scrollability if content is long */
  overflow-y: auto;
}

/* Ensure links and buttons have clear focus states */
button:focus, a:focus {
  outline: 3px solid #005a9c;
  outline-offset: 2px;
}

.modal-overlay.active {
  display: flex;
}

#modalTitle:focus {
  outline: none;
}

/* This forces the scrollbar to exist regardless of what the script does */
html, body {
    overflow: initial !important;
    overflow-y: auto !important;
    height: auto !important;
    position: relative !important; /* Prevents 'fixed' locks */
}

/* Specifically target the Silktide overlay if it's still greying out the page */
#silktide-modal-backdrop, 
.st-consent-manager__backdrop {
    display: none !important;
    pointer-events: none !important;
}