/* Reset some default styles */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

/* Full-page background image */
body {
    background: url('/site_media/echo/bg.webp') no-repeat center center fixed;
    background-size: cover;
    font-family: Arial, sans-serif;
    color: #cccccc; /* Light grey font color */
    display: flex;
    justify-content: center;
    height: 100vh;
    overflow-y: auto; /* Allow vertical scrolling */
    /* align-items: center; */
	align-items: flex-start;
}

a {
  color: #c0ccd8;
  text-decoration: none;
  font-weight: bold;
  font-size: 1.2rem;
  border-bottom: 1px solid transparent;
  transition: color 0.2s, border-bottom 0.2s;

}
a:hover {
  color: #ffffff;
  border-bottom: 1px solid #ffffff;
}
a h2 {
  color: #c0ccd8;
  border-bottom: 1px solid transparent;
  display: inline-block;
}
a:hover h2 {
  color: #ffffff;
}
ul li a {
  border-bottom: 1px solid transparent;
}

p {
    margin-bottom: 5px;
}

/* Semi-transparent black overlay for the content box */
.overlay {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    min-height: 100%; 
    background: rgba(0, 0, 0, 0.5); /* 50% transparent black */
}

/* Centered content box */
.content-box {
    background: rgba(0, 0, 0, 0.8); /* 80% transparent black */
    padding: 20px;
    width: 80%;
    max-width: 1200px;
    border-radius: 8px;
    text-align: center;
}

/* Menu container for sliding animation */
.menu-container {
    position: fixed;
    top: 0;
    right: -300px; /* Start off-screen */
    width: 300px;
    height: 100%;
    background: rgba(0, 0, 0, 0.9);
    transition: right 0.3s ease-in-out;
    z-index: 999;
    box-shadow: -4px 0 6px rgba(0, 0, 0, 0.5);
    padding-top: 70px; /* Push menu items down to avoid overlapping hamburger */
}

/* When the menu is visible */
.menu-container.visible {
    right: 0;
}
/* Menu item styling */
.menu ul {
    list-style-type: none;
    padding: 0 20px; /* Add side padding for better spacing */
    margin: 0;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
}
.menu ul li {
    margin-bottom: 15px;
}
.menu ul li a {
    color: #cccccc;
    text-decoration: none;
    font-weight: bold;
    font-size: 1.2rem;
}
.menu ul li a:hover {
    color: #ffffff;
}

/* Main content styling */
.main-content {
	max-width: 1200px;
	width: 100%;
}
.main-content h1 {
    font-size: 2rem;
    margin-bottom: 1rem; 
}
.main-content h2 {
    font-size: 1.6rem;
    margin: 1rem 0;
}

.main-content h3 {
    font-size: 1.4rem;
    margin-bottom: 1rem; 
}

.main-content p {
    font-size: 1.2rem;
    line-height: 1.5;
}
.main-content h1 a {
  font-size: 2rem;
}
.main-content h2 a {
  font-size: 1.6rem;
}
/* Hamburger icon styling */
.hamburger {
    position: fixed;
    top: 20px;
    right: 20px;
    width: 32px;
    height: 25px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    cursor: pointer;
    z-index: 1000;
    transition: all 0.3s ease;
}
.hamburger span {
    display: block;
	width: 100%;
    height: 4px;
    background-color: #cccccc;
    border-radius: 2px;
    transition: all 0.3s ease-in-out;
	transform-origin: center;
}
/* Transform hamburger into "X" */
.hamburger.open span:nth-child(1) {
    transform: rotate(45deg) translate(8px, 7px);
    background-color: #ffffff;
}
.hamburger.open span:nth-child(2) {
    opacity: 0; /* Hide middle bar */
	transform: scale(0);
}
.hamburger.open span:nth-child(3) {
    transform: rotate(-45deg) translate(8px, -7px);
    background-color: #ffffff;
}
/* Dark theme hover effect */
.hamburger:hover span {
    background-color: #ffffff; /* Change to white on hover */
}

/* Submenu styles */
.menu ul li ul {
	padding-right: 5px;
}
.menu ul li ul li {
    margin-bottom: 0;
}
.menu ul li.has-submenu {
    position: relative;
	text-align: right;
}
.menu ul li.has-submenu > a {
    position: relative;
    padding-right: 20px; /* Space for dropdown indicator */
}
.menu ul li.has-submenu > a::after {
    content: "▼";
    font-size: 0.8rem;
    position: absolute;
    right: 5px;
    top: 50%;
    transform: translateY(-50%);
    color: #cccccc;
}

/* Submenu styles */
.submenu {
    display: none;
    position: relative;
    top: 100%;
    left: 0;
    background: rgba(0, 0, 0, 0.9);
    width: 280px;
    list-style-type: none;
    padding-left: 15px;
    margin: 0;
    border-radius: 5px;
    z-index: 100;
}
.submenu li {
    padding: 5px 0 0 0;
    margin: 0;
}
.submenu li a::after {
    content: "\2524";
    color: #cccccc;
    font-size: 1.2rem;
    margin-left: 10px;
}
.submenu li:last-child a::after {
    content: "\2518";
}
.submenu li a {
    color: #cccccc;
    text-decoration: none;
    font-size: 1rem;
    display: block;
    padding: 5px 0;
}
	
}
.submenu li a:hover {
    color: #ffffff;
    background: rgba(255, 255, 255, 0.1);
}
/* Make submenu visible when parent has 'open' class */
.has-submenu.open .submenu {
    display: block;
}
/* Show submenu on hover */
.menu ul li.has-submenu:hover > .submenu {
    display: block;
}

.logo_container {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;      
	justify-content: flex-start;
	width: 100%;
}
.echo_portrait {
	flex: 1 1 800px;
	max-width: 100%;
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
    justify-content: flex-start; /* Align items to the start */
	text-align: left;
}
.echo_logo, .echo_logo_career {
	max-width: 100%;
    flex-wrap: wrap;
    justify-content: flex-start; /* Align items to the start */
	text-align: center;
	margin-bottom: 15px;
}
.echo_logo {
	flex: 1 1 225px;
}
.echo_logo_career {
	flex: 1 1 225px;
}
.echo_landscape {
	flex: 1 1 1200px;
	max-width: 100%;
}
.echo-portrait-image {
	max-width: calc(50% - 2.5px); /* Half the width with 5px gap between images */
    height: auto;
    flex: 1 1 auto;
}
.echo-logo-image {
    width: 125px;
    height: auto;
    object-fit: cover;
}
.echo_portrait p {
  width: 100%;
  margin: 0;
}
.echo-landscape-image {
	width: 100%;
	max-width: 1200px;
	height: auto	
}
.echo_landscape p {
	text-align: left;
	margin: 15px 0;
}
.echo_download::after {
    content: '⬇️';
    font-size: 100%;
    margin-left: 0;
	display: inline-block;
	transition: color 0.5s ease;
}
.echo_add::after {
    /*content: '➕️';*/
    content: '+';
    color: #00ff00;
    font-size: 175%;
    font-weight: bold;
    margin-left: 2px;
	vertical-align: -0.15em;
	transition: color 0.5s ease;
}
.echo_download:hover::after, .echo_add:hover::after {
	animation: downloadMoveArrow 1.5s ease-in-out infinite; 
}
@keyframes downloadMoveArrow {
    0% {
		opacity: 1;
    }
    50% {
		opacity: 0.5;
    }
    100% {
		opacity: 1;
    }
}
.race-image-link {
    display: flex;
    flex-direction: column;
    align-items: center;
}
.race-image-container {
    display: flex;
    flex-wrap: nowrap;
    justify-content: space-between;
    width: calc(125px * 2 + 2px);
    margin-bottom: 5px;
}	
.character-image {
  height: 200px;
  max-width: 150px;
  object-fit: contain;
}
/* Form container */
input[type="text"], input[type="password"], select, textarea {
    text-align: left; 
    width: 100%; 
    font-size: 1.2rem; 
    padding: 0.5rem; 
    box-sizing: border-box;
}

button[type="submit"] {
	display: inline-block;
    width: fit-content;
    font-size: 1.2rem;
    padding: 0.6rem 1.2rem; 
    margin-top: 1rem; 
    border-radius: 0.5rem; 
	border: 1px solid rgb(0, 85, 170);
	background-image: linear-gradient(to right bottom, rgb(0, 85, 170) 0%, rgb(0, 51, 102) 100%);	
    color: #ddd; 
	text-shadow: rgb(0, 0, 0) 2px 2px 4px;
    cursor: pointer; 
    transition: background-color 0.3s ease; 
}

/* Button hover state */
button[type="submit"]:hover {
	border: 1px solid rgb(0, 64, 128);
	background-image: linear-gradient(to right bottom, rgb(0, 64, 128) 0%, rgb(0, 38, 77) 100%); /* Slightly darker blue on hover */
    color: #fff; 
}

/* Label styling */
label {
    font-size: 1.2rem; 
    margin-bottom: 0.2rem;
    display: block; /* Ensure labels appear on their own line */
}
/* Ensure responsiveness */
form {
    display: flex;
    flex-direction: column; /* Stack elements vertically */
    gap: 1rem; 
    width: 100%;
    max-width: 800px;
    margin: 0 auto;
}

/* Each row (label, input, help_text) */
.form-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 10px;
    gap: 10px; /* Space between label, input, and help text */
}

/* Label styling */
.form-row label {
    flex: 1 1 150px;
    font-size: 1.2rem;
    color: #cccccc;
    text-align: left;
}
.form-row-wide label {
	flex: 1 1 280px;
}

/* Input fields */
.form-row input,
.form-row select,
.form-row textarea {
    flex: 1 1 auto; /* Grow and shrink based on available space */
    max-width: 100%; /* Prevent overflow */
    padding: 10px;
    background-color: #333333;
    color: #cccccc;
    border: 1px solid #555555;
    border-radius: 5px;
    font-size: 1.2rem;
}
.form-row input[type="number"] {
    width: 100%; /* Ensures it behaves like text inputs */
}
.form-row input[type="checkbox"] {
    flex: 0 0 auto;
    width: auto;
    margin-left: auto;
}
.form-error {
    color: #ffaa88;
    font-weight: bold;
    animation: colorChange 3s infinite alternate;
}
@keyframes colorChange {
    0% {
        color: #ffaa88;
    }
    50% {
        color: #ff4400;
    }
    100% {
        color: #ffaa88;
    }
}

/* Help text */
.form-row .help-text {
    flex: 0 1 200px; /* Fixed or flexible width for help text */
    font-size: 0.875rem;
    color: #777777;
    text-align: left;
    white-space: nowrap; /* Prevent wrapping */
    overflow: hidden;
    text-overflow: ellipsis; /* Add ellipsis for truncated text */
}

/* Main container for form */
.echo_form {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 1rem;  /* Spacing between items */
}

/* Portrait image container */
.echo_form img {
    max-width: 100%;
    height: auto;
    border-radius: 8px;
}

.echo_form input,
.echo_form select {
    transition: background-color 0.3s ease, color 0.3s ease;
}

/* Disabled field styling */
.echo_form .disabled {
    background-color: #222222;
    color: #444444; /* Greyed-out text */
    cursor: not-allowed; /* Indicate it's not clickable */
}

/* Registration */
.registration-link {
    color: #cccccc; /* Light grey text color */
    font-size: 1.2rem;
    text-decoration: none;
	text-align: left;
}

.registration-link p {
    padding: 0.6rem 0;
}

.registration-button {
    display: inline-block;
    padding: 0.6rem 1.2rem;
    font-size: 1.2rem;
	font-weight: normal;
    background-color: #004488;
    color: #ddd;
    border: none;
    border-radius: 0.5rem;
    cursor: pointer;
    text-align: center;
}

.registration-button:hover {
    background-color: #003366;
    color: #fff;
	transition: background-color 0.3s ease, color 0.3s ease;
}

.character-details-container {
    max-width: 800px; 
    margin: 0 auto; 
}

.character-details {
    margin-top: 2rem;
}

.details-container {
    display: flex;
    flex-wrap: wrap;
    gap: 2rem;
    justify-content: flex-start;
	text-align: left;
}

.details-container > div {
    flex: 1 1 45%;
    max-width: 45%;
    min-width: 280px;
}
.attributes, .skills {
    margin: 0;
    padding: 0;
}

/* Flex Table Layout */
.flex-table-container {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    padding: 20px;
	background: rgba(0, 0, 0, 0.5);
    margin-top: 20px;
}
.flex-table-row {
    display: flex;
	flex-wrap: wrap;
    justify-content: space-between;
    width: 100%;
}	
.flex-table-header {
    background: rgba(255, 255, 255, 0.1);
    color: #ffffff; 
    font-weight: bold;
}
.flex-table-cell {
    flex: 1 1 calc(33.333% - 5px); 
    box-sizing: border-box; 
	border: 1px solid rgba(255, 255, 255, 0.2);
    padding: 15px 0;
    background: rgba(255, 255, 255, 0.1);	
    text-align: center;
}
.flex-table-cell img {
    width: 100%;
	max-width: 100px;
    height: auto;
    object-fit: cover;
    display: block;
    margin: 0 auto;
}
.flex-table-cell:has(img) {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}
.flex-table-row:nth-child(even) {
    background: rgba(255, 255, 255, 0.05);
}
.flex-table-2-columns-left .flex-table-cell {
    flex: 1 1 calc(100% / 2 - 5px);
	font-size: 120%;
	text-align: left;
	padding-left: 10px;
}
.flex-table-3-6-columns .flex-table-cell {
    flex: 1 1 calc(100% / 6 - 5px); /* Divides the space into 6 equal parts */
}
.flex-table-3-6-columns .flex-table-cell:last-child {
    flex: 1 1 calc(100% * 2 / 3 - 5px); /* Last column takes 2/3 the space */
	text-align: left;
	padding-left: 5px;
}
.flex-table-4-columns .flex-table-cell {
    flex: 1 1 calc(100% / 4 - 5px); 
}
.flex-table-4-5-columns .flex-table-cell {
    flex: 1 1 calc(100% / 5 - 5px); /* Divides the space into 5 equal parts */
}
.flex-table-4-5-columns .flex-table-cell:last-child {
    flex: 1 1 calc(100% * 2 / 5 - 5px); /* Last column takes twice the space */
}
.flex-table-5-columns .flex-table-cell {
    flex: 1 1 calc(100% / 5 - 5px); 
}
.flex-table-6-columns .flex-table-cell {
    flex: 1 1 calc(100% / 6 - 5px); 
}
.flex-table-7-columns .flex-table-cell {
    flex: 1 1 calc(100% / 7 - 5px); 
}
.flex-table-8-columns .flex-table-cell {
    flex: 1 1 calc(100% / 8 - 5px); 
}
.flex-table-9-columns .flex-table-cell {
    flex: 1 1 calc(100% / 9 - 5px); 
}
.flex-table-10-columns .flex-table-cell {
    flex: 1 1 calc(100% / 10 - 5px);
}
.flex-table-11-columns .flex-table-cell {
    flex: 1 1 calc(100% / 11 - 5px);
}
.flex-table-12-columns .flex-table-cell {
    flex: 1 1 calc(100% / 12 - 5px);
}

/* Calendar Layout */
.calendar-grid {
    display: grid;
    grid-template-columns: repeat(7, 1fr); /* Mo-So */
    gap: 5px;
    background: rgba(0, 0, 0, 0.6);
    border-radius: 8px;
}

.calendar-day {
    padding: 15px;
    font-size: 1.2rem;
    text-align: center;
    border-radius: 6px;
    cursor: pointer;
    transition: background-color 0.3s ease;
    user-select: none;
    color: #ccc;
    border: 1px solid transparent;
    background: rgba(255, 255, 255, 0.05);
}
.calendar-day:hover {
    background: rgba(255, 255, 255, 0.1);
}
.calendar-day.unavailable {
    background-color: #660011; /* Rot */
    color: #ffffff;
	border: 1px solid rgb(128, 0, 0);
	background-image: linear-gradient(to right bottom, rgb(128, 0, 0) 0%, rgb(77, 0, 0) 100%);	
}

/* Wochentagskopfzeile */
.calendar-header {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 5px;
    margin-bottom: 5px;
    font-weight: bold;
    text-align: center;
    color: #ffffff;
}
.calendar-header div {
    padding: 10px;
    background: rgba(255, 255, 255, 0.1);
    border-radius: 5px;
}

@media (max-width: 1000px) {
    .flex-table-4-columns .flex-table-cell {
        flex: 1 1 calc(100% / 2 - 5px);
    }
    .flex-table-5-columns .flex-table-cell {
        flex: 1 1 calc(100% / 3 - 5px);
    }
    .flex-table-6-columns .flex-table-cell {
        flex: 1 1 calc(100% / 3 - 5px);
    }
    .flex-table-7-columns .flex-table-cell {
        flex: 1 1 calc(100% / 4 - 5px);
    }
    .flex-table-8-columns .flex-table-cell {
        flex: 1 1 calc(100% / 4 - 5px);
    }
    .flex-table-9-columns .flex-table-cell {
        flex: 1 1 calc(100% / 5 - 5px);
    }
    .flex-table-10-columns .flex-table-cell {
        flex: 1 1 calc(100% / 5 - 5px);
    }
    .flex-table-11-columns .flex-table-cell {
        flex: 1 1 calc(100% / 6 - 5px);
    }
    .flex-table-12-columns .flex-table-cell {
        flex: 1 1 calc(100% / 6 - 5px);
    }
}

@media (max-width: 768px) {
	body {
		background: url('/site_media/echo/bg-2.webp') no-repeat center center fixed;
		align-items: flex-start;
	}
    .hamburger {
        top: 15px;
        right: 15px;
    }
    .submenu {
        position: static;
        display: none;
        width: 100%;
        box-shadow: none;
        background: rgba(0, 0, 0, 0.8);
    }
    .menu ul li.has-submenu.open > .submenu {
        display: block;
    }
	.content-box {
		width: 100%;
		background: rgba(0, 0, 0, 0.6);
	}
    .echo_portrait, .echo_landscape {
		max-width: 100%;  
        flex-direction: column; /* Stack images vertically */
        align-items: center; /* Center the images */
    }
    .echo_form {
        flex-direction: column;
        align-items: center;
    }
    .form-row {
        flex-wrap: wrap; /* Allow wrapping of items */
        gap: 5px; /* Adjust spacing for smaller screens */
    }

    .form-row .help-text {
        display: none; /* Hide help text on narrow screens */
    }

    form {
        width: 100%;
        max-width: 100%;
    }

    form button {
        width: auto;
    }
}

@media (max-width: 600px) {
    .flex-table-3-6-columns .flex-table-cell {
        flex: 1 1 calc(100% / 3 - 5px);
    }
	.flex-table-3-6-columns .flex-table-cell:last-child {
		flex: 1 1 calc(100% - 5px);
	}
    .flex-table-4-columns .flex-table-cell {
        flex: 1 1 calc(100% / 2 - 5px);
    }
    .flex-table-4-5-columns .flex-table-cell {
        flex: 1 1 calc(100% / 3 - 5px);
    }
	.flex-table-4-5-columns .flex-table-cell:last-child {
		flex: 1 1 calc(100% - 5px);
	}
    .flex-table-6-columns .flex-table-cell {
        flex: 1 1 calc(100% / 3 - 5px);
    }
    .flex-table-7-columns .flex-table-cell {
        flex: 1 1 calc(100% / 3 - 5px);
    }
    .flex-table-8-columns .flex-table-cell {
        flex: 1 1 calc(100% / 3 - 5px);
    }
    .flex-table-9-columns .flex-table-cell {
        flex: 1 1 calc(100% / 3 - 5px);
    }
    .flex-table-10-columns .flex-table-cell {
        flex: 1 1 calc(100% / 3 - 5px);
    }
    .flex-table-11-columns .flex-table-cell {
        flex: 1 1 calc(100% / 3 - 5px);
    }
    .flex-table-12-columns .flex-table-cell {
        flex: 1 1 calc(100% / 3 - 5px);
    }
    .calendar-day {
        padding: 10px;
        font-size: 1rem;
    }
    .calendar-header div {
        font-size: 1rem;
        padding: 8px;
    }
}
