/*******************************************************************/
/* 1. VARIABLEN (Theming) */
/*******************************************************************/
:root {
    /* Farben */
    --color-bg: #000000;				/* Haupt-Hintergrund Farbe*/
    --color-main: #F0EAD6;				/* Hauptfarbe */    
    --color-section: #222222;			/* Karten, Header, Buttons oder Sektionstrenner */
    --color-section2: #0A0A0A;			/* Karten, Header, Buttons oder Sektionstrenner */     
    --color-text: #F0EAD6;				/* Haupt-Textfarbe */
    --color-text2: #A9A496;				/* Sekundär-Texte, Metadaten - Dunklere Farbe */
    --color-text3: #222222;				/* Dunkler Text für helle Untergründe */
    --color-border: #8A9A5B;			/* Grüne, helle Rahmen */
    --color-border2: #A9A496;			/* Dezente Rahmen - Dunklere Farbe */
    --color-accent: #8A9A5B;			/* Überschriften und Akzente - Grüne Buttons */
    --color-accent-hover: #A3B17D;		/* Hover für Grüne Buttons */
    --color-warn: #FF4444;				/* Ein leichteres Rot für Warnungen und Rote Buttons */
    --color-warn-hover: #FF6666;		/* Hover für Rote Buttons */
    --color-stars: #FF9500; 			/* Sterne / Reviews - besondere Texte */
    --bg-3d: linear-gradient(var(--color-section), var(--color-section2)); /* Mehr tiefe für den Hintergrund! */
    --bg-3d2: linear-gradient(var(--color-section2), var(--color-section)); /* Mehr tiefe für den Hintergrund! Invertiert*/
    
    /* Abstände & Layout */
	--header-height: 180px;
	--header-height-scrolled: 45px;
    --container-width: 1200px;
    --border-radius: 4px;
    --transition: all 0.3s ease;
    
    /* Anzeige-/Formular-Breiten */
    --w400: 400px;
    --w600: 600px;
    --w800: 800px;
    --w1000: 1000px;
    --w1200: 1200px;
    --wmax: 100%;
}

/*******************************************************************/
/* 2. RESET & BASIS-STYLES */
/*******************************************************************/
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}
html {
    scroll-behavior: smooth;
    height: 100%;
}
body {
    background: var(--color-bg);
    color: var(--color-text);
    font-family: 'Helvetica Neue', Arial, 'Hiragino Kaku Gothic Pro', 'Meiryo', sans-serif;
    margin: 0;
    line-height: 1.6;
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    top: 0 !important;
    position: static !important;
    align-items: center;	
}
img {
  pointer-events: none; /* Verhindert das Klicken und Ziehen des Bildes */
  -webkit-touch-callout: none; /* Verhindert das Kontextmenü auf iOS */
  user-select: none;
}
/*******************************************************************/
/* 3. HEADER */
/*******************************************************************/
header {
	display: flex;
	align-items: flex-end;
	background: var(--color-bg);
	padding-left:20px;
	padding-right: 20px;
	padding-bottom: 2px;
	padding: 0 20px 2px 20px; /* oben rechts unten links */
	box-sizing: border-box; /* DIE LÖSUNG */
	justify-content: space-between;
	box-shadow: 0 2px 5px rgba(0,0,0,0.1);
	height: var(--header-height);
	position: fixed;
	top: 0;
	width: 100%;
	transition: height 0.3s ease; /* Macht die Verkleinerung geschmeidig */
	z-index: 1000;
	border-bottom: 1px solid var(--color-border);
}
.header-spacer {
	height: 180px; /* Gleicht die Anfangshöhe aus */
}
header div a {
    display: block; 
}
header.scrolled {
	height: var(--header-height-scrolled);
	background-color: rgba(0, 0, 0, 0.9); /* Optional: Transparenz beim Scrollen */
	box-shadow: 0 2px 10px rgba(0,0,0,0.1); /* Optional: Schatten zur Abhebung */
}
header.scrolled .logo {
	max-height: 40px; /* Logo verkleinert sich proportional zum Header */
	max-width: 40px;
	transition: max-height 0.3s ease;
}
header a.logo {
	display: inline-block; /* Oder 'block', falls der Link eine eigene Zeile belegen soll */
	line-height: 0;        /* Entfernt kleine Lücken unter dem Bild */
	position: absolute;
	bottom: 2px;
	left: 5px;
}
header a.logo img{
	display: block;        /* Verhindert zusätzliche Abstände im Footer des Bildes */
}
.logo {
    display: block;
    max-height: 100%; /* Verhindert, dass das Logo den Header sprengt */
	width: 150px;
}
.language-switcher {
    position: absolute;
    top: 5px;
    right: 20px;
    display: flex;
    gap: 20px;
    padding: 0px;
}
.scrolled .language-switcher {
	opacity: 0;
	visibility: hidden;
	pointer-events: none; /* Verhindert Klicks auf das unsichtbare Element */
}
.lang-link {
    text-decoration: none;
    font-size: 1.5rem;
    transition: transform 0.2s ease;
    filter: grayscale(40%); /* Etwas blasser im Normalzustand */
}
.lang-link:hover {
    transform: scale(1.5);
    filter: grayscale(0%); /* Volle Farbe beim Drüberfahren */
}
.lang-link.active {
    transform: scale(1.2);
    filter: grayscale(0%);
    border-bottom: 2px solid white;
}
/*******************************************************************/
/* 4. NAVIGATION */
/*******************************************************************/
/* Navigation */
.userpic { width: 120px; height: auto; }
#nav-list {
	overflow: visible !important; /* Wichtig, damit das Dropdown nicht abgeschnitten wird */
	position: absolute;
	bottom: 5px;
	right: 20px;
}
#nav-list li {
	position: relative; /* Anker für das absolute Dropdown */
	padding: 0; /* Padding vom LI auf den A-Tag verschieben */
	list-style: none;
}	
/* Der Link selbst */
#nav-list li a {
	display: block;
	padding: 1px 20px;
	text-decoration: none;
}		
#nav-list ul { display: flex; list-style: none; gap: 20px; }
#nav-list a { text-decoration: none; color: var(--color-text); transition: color 0.3s; }
#nav-list a:hover { color: var(--color-accent-hover); font-weight: bold; }
/* 1. Den speziellen Listenpunkt fixieren */
#nav-list ul li:has(.tengugram-link) {
    flex: 0 0 90px;     /* Verhindert jegliches Schrumpfen des Listenpunkts */
    min-width: 90px;
    display: flex;
    align-items: center;
}
/* 2. Den Link darin zurücksetzen (das Padding von 20px oben/unten stört hier) */
#nav-list ul li a:has(.tengugram-link) {
    display: flex !important;
    padding: 0 !important; /* Entfernt das globale Padding nur für diesen Link */
    width: 90px;
    height: auto;
}
/* 3. Das Bild selbst starr halten */
.tengugram-link {
    width: 90px !important;
    max-width: 90px !important;
    height: auto;
    flex-shrink: 0;
    display: block;
    transition: all 0.4s ease; 
}
#nav-list ul li a:hover .tengugram-link {
    transform: scale(1.1) !important; 
}
/* 4. Sicherstellen, dass der Scrolled-Zustand nichts überschreibt */
.scrolled #nav-list .tengugram-link,
.scrolled .tengugram-link {
    width: 90px !important;
}
/* Der Punkt-Indikator */
.has-children > a::after {
	content: " ▾";
    font-weight: bold;
    color: var(--color-text);
}
/* --- Das Dropdown --- */
#nav-list .sub-menu {
	display: none; /* Erstmal unsichtbar */
	position: absolute;
	top: 100%; /* Exakt unter dem li */
	left: 0;
	background-color: var(--color-section);
	min-width: 150px;
	z-index: 1001;
	list-style: none;
	padding: 0px 0;
	margin: 0;
	flex-direction: column; /* Untereinander stapeln */
	visibility: hidden;         
	opacity: 0;
	transition: opacity 0.2s ease;	
}
/* Spezielle Korrektur für das Icon am rechten Rand */
#nav-list .sub-menu.sub-menu-right {
    left: auto;        /* Hebt das Standard left: 0 auf */
    right: 0;          /* Richtet das Menü an der rechten Kante des Icons aus */
}
/* Optional: Verhindert, dass lange Texte umbrechen */
#nav-list .sub-menu.sub-menu-right li a {
    white-space: nowrap;
    text-align: left;
}
/* Klasse für Mobile (wird per JS getoggled) */
.sub-menu {
    display: flex;
    align-items: center;      /* Vertikal mittig */
    justify-content: flex-start; /* Menüpunkte links beginnend */
    padding: 10px 20px;
    gap: 20px;                /* Abstand zwischen den Elementen */
    position: relative;
}
.sub-menu li a.seperator {
	border-top: 1px solid var(--color-border2);
}
.sub-menu.is-open {
    display: block;
}
/* HOVER-LOGIK: Wenn man über das LI fährt, zeige die Liste */
#nav-list li:hover > .sub-menu {
    display: block;
	visibility: visible;
    opacity: 1;	
}
/* 4. Sicherstellen, dass keine andere Regel es öffnet */
#nav-list .sub-menu.is-open {
    display: block;
    visibility: visible;
    opacity: 1;
}
/* Styling der Unterpunkte */
.sub-menu li a {
    padding: 0px;
    border-top: var(--color-border2);
}
.sub-menu li:last-child a {
    border-bottom: none;
}
/* Hover-Effekt für die Unterpunkte */
.sub-menu li a:hover {
    background-color: black;
}
/* Burger Menü */
/* Grundzustand: Burger verstecken */
.menu-toggle {
    display: none;
    flex-direction: column;
    cursor: pointer;
    gap: 5px;
	padding-bottom: 5px;
}
.menu-toggle span {
    width: 25px;
    height: 3px;
    background-color: white;
}
/*******************************************************************/
/* 5. LAYOUT STRUKTUR */
/*******************************************************************/
/* STARTSEITE: Hero Bereich */
.hero {
	background: url('../_img/BG01.png');
	background-size: cover;
	background-repeat: no-repeat;
	background-position: 41% 25%;
	height: 60vh;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: flex-end;
	text-align: right;
	padding: 0 20px;
	position: relative;
}
.hero h1 { font-size: 2rem; margin-bottom: 10px; margin-left: 25px; }
.hero p { font-size: 1rem; margin-bottom: 10px; margin-left: 25px; font-weight: bold; }
.hero a { font-size: 1rem; margin-bottom: 10px; margin-left: 25px; font-weight: normal; text-decoration: underline; color: var(--color-text);}
.hero a:hover { font-weight: bold; color: var(--color-text);}		
.hero h1 {
	font-size: 3rem; 
	letter-spacing: 3px; 
	text-transform: uppercase;
	margin-bottom: 10px;
}
.hero p {
	font-style: italic; 
	color: var(--color-text); 
}
.hero-link {
	text-decoration: underline;
	font-weight: bold;
	transition: color 0.3s;
}
.hero-link:hover {
	color: var(--color-accent-hover);
}
.hero-section {
	background-color: var(--color-bg);
	min-height: 300px;
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--color-text-main);
	font-family: 'Inter', sans-serif;
	text-align: center;
	padding: 20px;
}
.hero-logo-link {
	position: absolute;
	bottom: 5px;
	left: 5px;
	display: block;
	line-height: 0;
	width: 50px;
}
.hero-logo-link:hover {
	transform: scale(1.1);	
}
.hero-logo {
	width: 50px;
	height: auto;
	transition: opacity 0.3s ease;
}
/* Experience Widget */
.experience-widget-link {
    position: absolute;
    bottom: 5px;
    right: 10px;
    text-decoration: none;
    transition: transform 0.2s ease;
}
.experience-widget-link, 
.experience-widget-link * {
    text-decoration: none !important;
}
.experience-widget-link:hover {
    transform: scale(1.1);
}
.experience-widget {
    background: transparent;
    backdrop-filter: blur(5px);
    padding: 5px 5px;
    border: 2px solid var(--color-text);
    border-radius: 4px;
    display: flex;
    flex-direction: column;
    align-items: center;
    color: var(--color-text-main);
}
.rating-stars {
    color: var(--color-text-main);
    font-size: 0.75rem;
    font-weight: bold;
    letter-spacing: 1px;
}
.rating-count {
    font-size: 0.5rem;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    opacity: 0.8;
    margin-top: 4px;
}
/* 3 Container auf der Startseite */
.three-fields-container {
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
    margin: 20px;
    justify-content: space-between;
}
.info-field {
    display: flex;
    flex-direction: column;
    position: relative;
    flex: 1;
    min-width: 250px;
    background: var(--bg-3d);
    border: 1px solid var(--color-accent);
    padding: 20px;
    padding-bottom: 60px;
    border-radius: 8px;
    cursor: pointer;
}
.info-field:hover {
    border-color: var(--color-main);
}
.info-field h3 {
    color: var(--color-accent);
    font-size: 1.1rem;
    margin-top: 0;
    margin-bottom: 10px;
    border-bottom: 1px solid var(--color-accent);
    padding-bottom: 8px;
    text-transform: uppercase;
    letter-spacing: 1px;
}
.info-field p {
    line-height: 1.5;
    margin-bottom: 0;
    font-size: 0.95rem;
}
.card-button {
    position: absolute;
    bottom: 20px;
    right: 20px;
    background: transparent;
    color: var(--color-accent);
    border: 1px solid var(--color-accent);
    padding: 6px 12px;
    font-size: 0.85rem;
    text-decoration: none;
    border-radius: 4px;
    transition: all 0.3s ease;
}
.card-button:hover {
    background: var(--color-section2);
    color: var(--color-accent-hover);
    transform: scale(1.1);
}
/*******************************************************************/
/* 6. Seiteninhalte */
/*******************************************************************/
/* Content-Seiten */
.Content-Title {
	width: 100%;
	padding: 5px;
	color: #F0EAD6;
	text-align: center;
}
	.caption-text { margin-top: 5px; font-style: italic; font-size: 1.85rem; color: #F0EAD6; text-align: left; min-height: 1.2em; transition: opacity 0.2s ease; }
	.caption-text a { text-decoration: none; color: var(--color-accent); }
	

		.column {
		  flex: 1; /* Beide Spalten teilen sich den Platz 50/50 */
		  min-width: 300px; /* Ab wann die Spalte umbrechen soll */
		  padding: 20px;
		  box-sizing: border-box;
		  color: #F0EAD6;
		}
		
		.column p {
			padding: 5px;
		}

		/* Bild-Styling mit Fokuspunkt */
		.image-wrapper img {
		  width: 100%;
		  height: 500px; /* Feste Höhe für den Effekt */
		  object-fit: cover; /* Bild füllt den Bereich */
		  object-position: 50% 50%; /* Dein gewünschter Fokuspunkt in Prozent */
		  border-radius: 8px;
		}
		
.image-col {
    display: flex;
    flex-direction: column;
    gap: 15px; /* Abstand zwischen Hauptbild und Grid */
}
.main-content-page {
padding: 20px;
}
		.main-container {
		  display: flex;
		  flex-wrap: wrap; /* Erlaubt das Umbrechen auf neue Zeilen */
		  align-items: flex-start; /* Zentriert Inhalte vertikal */
		  max-width: 100%;
		  margin: 0 auto;
		  padding: 20px;
		}
/* Standard-Zustand für Links in den Text-Boxen */
.content-text a {
    color: var(--color-accent);
    text-decoration: none; /* Optional: Unterstreichung für bessere Erkennbarkeit */
    transition: color 0.2s ease-in-out;
}

/* Hover-Zustand */
.content-text a:hover {
    color: var(--color-accent-hover);
    text-decoration: none; /* Optional: Unterstreichung beim Hover entfernen */
}

/* Verhindert, dass der Editor-Modus das Design überschreibt */
.content-text[contenteditable="true"] a {
    cursor: pointer;
}	
.kuden-highlight {
    font-family: serif; 
    font-style: italic;
	font-size: 18px;
	font-weight: bold;
    color: #F0EAD6;
    border-left: 3px solid #F0EAD6;
    padding-left: 15px;
    margin: 20px 0;
}
/* Styles aus dem Gästebuch */
    .experience-page { width: 100%; background: var(--color-bg); color: #F0EAD6; padding: 30px; border: 1px solid #333; border-radius: 8px; max-width: var(--container-width); min-width: 500px; margin: 20px auto;}
    .experience-page2 { background: var(--color-bg); color: #F0EAD6; padding: 30px; border: 1px solid #333; border-radius: 8px; max-width: var(--w800); min-width: 500px; margin: 20px auto;}
    .experience-header { width: 100%; border-bottom: 2px solid #8A9A5B; padding-bottom: 15px; margin-bottom: 30px; display: flex; justify-content: space-between; align-items: center;}
    .experience-header h1 { color: #8A9A5B; font-size: 1.4rem; margin: 0; flex: 1; }
    #form-container { display: none; background: var(--color-bg); padding: 20px; border: 1px solid #8A9A5B; margin-bottom: 30px; border-radius: 5px; }
    .form-group { margin-bottom: 15px; }
	.form-user-avatar { width: 60px; height: 60px; border-radius: 50%; object-fit: cover; border: 2px solid #8A9A5B; flex-shrink: 0; }
    .form-footer { display: flex; justify-content: flex-end; align-items: center; gap: 15px; margin-top: 20px; }
    .error-msg {width: var(--wmax); margin-bottom: 25px; color: var(--color-warn);}
    .form-group label { display: block; margin-bottom: 5px; color: #8A9A5B; }
    .form-group input { width: 100%; padding: 10px; background: #222; border: 1px solid #444; color: #fff; box-sizing: border-box; display: block;}
    .form-group textarea { width: 100%; padding: 10px; background: #222; border: 1px solid #444; color: #fff; box-sizing: border-box; resize: vertical; min-height: 100px; max-height: 400px; }	
    #editor-toolbar { display: none; position: absolute; z-index: 99999; background: #fff; border: 2px solid #8A9A5B; padding: 8px; border-radius: 8px; box-shadow: 0 8px 24px rgba(0,0,0,0.2); gap: 8px; }
    #editor-toolbar button { padding: 8px 12px; cursor: pointer; }
    .form-group input[type="file"]::file-selector-button {
	    background-color: var(--color-bg);
	    color: var(--color-accent);
	    border: 1px solid var(--color-accent);
	    padding: 8px 16px;
	    border-radius: 4px;
	    cursor: pointer;
	    margin-right: 25px;
	    transition: background 0.3s ease, transform 0.2s ease;
	    text-transform: uppercase;
	}
	.form-group input[type="file"]::file-selector-button:hover {
	    border: 1px solid var(--color-accent-hover);
	    transform: scale(1.1);
	}
	.form-hint { display: block; margin-top: 5px; font-size: 0.75rem; color: var(--color-accent);
	}
	.edit-image-preview img {border: 1px solid var(--color-accent); border-radius: 4px; width: 50px; height: auto; }
    .user-info-row { display: flex; align-items: center; gap: 15px; }
	.name-input-wrapper { flex-grow: 1; }
	.edit-image-preview { display: flex; align-items: center; gap: 15px; background: #222; padding: 10px; border-radius: 4px; margin-top: 10px; }
    .edit-image-preview img { height: 60px; border-radius: 3px; border: 1px solid #444; }
     
    .review-card { background: var(--bg-3d); border: 1px solid var(--color-accent); padding: 20px; margin-bottom: 25px; border-radius: 5px; }
    .review-meta { display: flex; align-content: flex-start; align-items: flex-start; margin-bottom: 15px; font-size: 1.0rem; color: var(--color-text-highlight); gap: 15px;}
    .review-content-wrapper { display: flex; flex-wrap: wrap; gap: 20px;}
    .review-body { flex: 1; min-width: 250px; }
    .review-title { font-weight: bold; display: block; margin-bottom: 5px; color: var(--color-accent); font-size: 1.1rem; }
    .review-text { border-top: 1px solid var(--color-accent); padding-top: 10px; line-height: 1.5; }
    .review-image-container img { max-width: 200px; border-radius: 4px; border: 1px solid #333; }
    .review-actions { display: flex; justify-content: flex-end; gap: 10px; margin-top: 15px; border-top: 1px solid #222; padding-top: 10px; }
    .review-user-info { display: flex; align-items: center; gap: 12px; }
    .review-user-pic { width: 60px; height: 60px; border-radius: 50%; border: 2px solid #8A9A5B; object-fit: cover; background-color: #333; margin-right: 5px;}
    .review-date {margin-left: 5px; color: var(--color-text-muted); font-size: 0.85rem;}

/* Anpassungen für Reviews-Seite */
	.stars-avg { color: var(--color-stars); font-size: 1.2rem; display: flex; align-items: center; gap: 8px; }
	.review-stars { color: var(--color-stars); margin-bottom: 10px; margin-left: auto; }
    /* Admin Styles */
    .admin-reply { margin-top: 15px; padding: 15px; background: var(--bg-3d); border-left: 3px solid #8A9A5B; border-radius: 0 4px 4px 0; }
    .admin-reply-label { color: var(--color-accent); font-weight: bold; font-size: 0.8rem; text-transform: uppercase; display: flex; justify-content: space-between; cursor: pointer; margin-bottom: 5px; }
    .review-actions { display: flex; justify-content: flex-end; gap: 10px; margin-top: 15px; border-top: 1px solid #222; padding-top: 10px; }
    .reply-form-container { display: none; margin-top: 15px; background: #1a1a1a; padding: 15px; border: 1px solid #444; border-radius: 4px; }
    .reply-form-container textarea { width: 100%; background: #222; border: 1px solid #555; color: var(--color-text); padding: 10px; box-sizing: border-box; margin-bottom: 10px; font-size: 1.0em;}
    .reply-text { display: none; line-height: 1.5; color: #ccc; }
    .reply-toggle { display: none;}
    .reply-toggle:checked ~ .reply-text { display: block; }
	.reply-toggle:checked ~ .admin-reply-label .label-right::after { content: " (X)"; color: #D2691E; }
/* Partner-spezifisches Layout */
.partner-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
    gap: 30px;
    margin-bottom: 50px;
    background: var(--bg-3d);
}

.partner-item {
    background: var(--bg-3d);
    border: 1px solid var(--color-border2);
    border-radius: 8px;
    padding: 20px;
    text-align: center;
    transition: all 0.3s ease;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}

.partner-item:hover {
    border-color: #8A9A5B;
    background: var(--bg-3d2);
    transform: translateY(-3px);
}

.partner-item img {
    max-width: 120px;
    height: 80px;
    object-fit: contain;
    filter: grayscale(40%) contrast(1.1);
    transition: filter 0.3s ease;
    margin-bottom: 15px;
}

.partner-item:hover img {
    filter: grayscale(0%) contrast(1.2);
}

.partner-item span {
    color: #F0EAD6;
    font-size: 0.85rem;
    display: block;
    line-height: 1.3;
}

.partner-item a {
    text-decoration: none;
    color: inherit;
    display: block;
    width: 100%;
}
/* Styling für die Checkbox */
.checkbox-line {
    display: flex !important;
    flex-direction: row !important; /* Erzwingt die Reihe */
    flex-wrap: nowrap;              /* Verhindert das Umbrechen */
    align-items: flex-start;        /* Richtet Box oben am Text aus */
    gap: 12px;
    margin: 10px 0 20px 0;
    width: 100%;
    box-sizing: border-box;
}

/* Die Checkbox selbst */
.checkbox {
    appearance: none;
    -webkit-appearance: none;
    width: 20px !important;
    min-width: 20px !important;
    max-width: 20px !important;
    height: 20px !important;
    
    background-color: #111;
    border: 2px solid #8A9A5B;
    border-radius: 4px;
    cursor: pointer;
    flex-shrink: 0;           /* Ganz wichtig: Verhindert das Zusammenquetschen */
    margin: 0 !important;     /* Entfernt alle Abstände vom allgemeinen Input-Style */
    position: relative;
    display: inline-block;
}

.checkbox:checked {
    background-color: #d1c9b0;
    border-color: #8A9A5B;
}

.checkbox:checked::after {
    content: '✔';
    position: absolute;
    color: #000;               
    font-size: 14px;
    left: 3px;
    top: -1px;
}

/* Der Text daneben */
.checkbox-line label {
    margin-bottom: 0;
    color: #6d7b46;
    font-weight: normal;
    font-size: 0.85em;
    line-height: 1.4;
    cursor: pointer;
    flex: 1;
}

.checkbox-line label a {
    color: #6d7b46;
    font-weight: bold;
    text-decoration: none;
    }
    
.checkbox-line label a:hover {
    text-decoration: underline;
    }
/* Profilverwaltung */
.form-info2 {
	color: var(--color-warn2) !important;
	padding: 15px;
	border: 1px solid var(--color-accent);
	border-radius: 8px;
	margin-bottom: 10px;
	background-color: var(--bg-3d);
}
.form-line-wrap {
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    width: 100%;
	margin-bottom: 10px;
}

.form-line-wrap label {
    margin-bottom: 8px;
    font-weight: bold;
    font-size: 0.9em;
}

.form-line-wrap select {
    background: #111; 
    border: 1px solid #5B574C; 
    color: #F0EAD6; 
    width: 100%; 
    margin-bottom: 15px; 
    padding: 12px;
    border-radius: 6px;
    box-sizing: border-box;
    transition: border-color 0.3s;
}
.form-line {
	margin-bottom: 10px;
    color: #000;
    display: flex;
    flex-direction: column;
}

.form-line label {
    margin-bottom: 8px;
    font-weight: bold;
    font-size: 0.9em;
    color: #F0EAD6;
}

.form-line input, 
.form-line textarea {
    background: #111; 
    border: 1px solid #5B574C; 
    color: #F0EAD6; 
    width: 100%; 
    margin-bottom: 15px; 
    padding: 12px;
    border-radius: 6px;
    box-sizing: border-box;
    transition: border-color 0.3s;
}

.form-line input:focus, 
.form-line textarea:focus {
    border-color: #333;
}

.form-line2 {
	margin-bottom: 10px;
    color: #000;
    display: flex;
    flex-direction: row;
	gap: 25px;
}

.form-line2 label {
    margin-bottom: 8px;
    font-weight: bold;
    font-size: 0.9em;
    color: #F0EAD6; 
}

.form-line2 input, 
.form-line2 textarea {
    background: #111; 
    border: 1px solid #5B574C; 
    color: #F0EAD6; 
    width: 100%; 
    margin-bottom: 15px; 
    padding: 12px;
    border-radius: 6px;
    box-sizing: border-box;
    transition: border-color 0.3s;
}

.form-line2 input:focus, 
.form-line2 textarea:focus {
    border-color: #333;
}
#preview-container {
    display: flex;
	flex-direction: column;
	align-items: center;
	flex: 1;
}

.profile-card {
    background-color: var(--bg-3d);
    border-radius: 8px;
    padding: 30px;
    box-shadow: 0 4px 15px rgba(0,0,0,0.1);
    width: 100%;
    max-width: 800px;
    border: 1px solid var(--color-accient);
}

.profile-card h2 {
    color: #8A9A5B; 
    font-size: 1.4rem; 
    margin: 0; 
    flex: 1;
    border-bottom: 2px solid #8A9A5B; 
    padding-bottom: 15px; 
    margin-bottom: 30px;
}
.profile-info-grid {
    padding: 25px;
    background: var(--bg-3d);
    display: grid;
    grid-template-columns: 200px 1fr;
    gap: 30px;
    margin-top: 20px;
    border: 1px solid var(--color-accent);
    border-radius: 8px;
}

.current-profile-img {
    width: 150px;
    height: 150px;
    object-fit: cover;
    border-radius: 50%;
    border: 3px solid #8A9A5B; /* Highlight Farbe */
    margin-bottom: 10px;
}

.distance-seperator {
    border: 0; 
    border-top: 1px solid #8A9A5B; 
    margin: 15px 0;
}

/* CSS für die Info-Felder mit Buttons unten rechts */
.info-field h3 {
    color: #8A9A5B;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-top: 0;
    border-bottom: 1px solid #333;
    padding-bottom: 10px;
}

.card-button {
    position: absolute;
    bottom: 20px;
    right: 20px;
    background: transparent;
    color: #8A9A5B;
    border: 1px solid #8A9A5B;
    padding: 8px 16px;
    font-size: 0.85rem;
    text-decoration: none;
    border-radius: 4px;
    transition: all 0.3s ease;
}

.card-button:hover {
    background: #8A9A5B;
    color: #000;
}
/* Dateiupload schöner machen */
.form-button-delete {
    background-color: #000; 
    color: #333; 
    border: 1px solid #333; 
    padding: 8px 12px; 
    border-radius: 4px; 
    cursor: pointer; 
    font-size: 0.8em; 
    width: 100%;
}

.form-button-delete:hover {
    color: #F0EAD6; 
    border: 1px solid #ff4444; 
}

.form-button {
    display: inline-block; 
	padding: 8px 12px;
    cursor: pointer; 
	background: #8A9A5B; 
	color: #5B574C; 
	border-radius: 4px;
	margin: 10px 0;
}

.form-button2 {
	width: 90%;
    display: inline-block; 
	padding: 10px 12px;
    cursor: pointer; 
	background: #8A9A5B; 
	color: #5B574C; 
	border-radius: 4px;
	margin: 15px 0;
}

.form-button:hover {
    background: #6d7b46;
	color: #F0EAD6;
}

.mini-thumb { 
	width: 100px; 
	height: 100px; 
	object-fit: cover; 
	border-radius: 6px; 
	box-shadow: 0 2px 5px rgba(0,0,0,0.2); 
	}
	
.pw-requirements {
    list-style: none;
    padding: 0;
    margin: 5px 0;
    font-size: 0.85em;
    color: var(--color-warn);
}
.pw-requirements li::before {
    content: "○ "; /* Leerer Kreis */
}
.pw-requirements li.valid {
    color: #8A9A5B; /* Dein Salbeigrün */
    font-weight: bold;
}
.pw-requirements li.valid::before {
    content: "● "; /* Gefüllter Kreis */
}


/*******************************************************************/
/* 7. Allgemeine Formular-Strukturen */
/*******************************************************************/
/********************/
/* General Settings */
/********************/
.content-scroll {
    overflow-y: auto;
    padding: 10px;
    border: 1px solid var(--color-accient);
    flex-grow: 1;
}
.close-link {
    display: inline-block;
    width: 100%;
    text-align: right;
    text-decoration: none;
    font-weight: bold;
    color: var(--color-accent);
    transition: all 0.2s ease-in-out;
    transform-origin: right center;
    cursor: pointer;
}
.close-link:hover {
    color: var(--color-accent-hover);
    transform: scale(1.1);
}
/***********/
/* Buttons */
/***********/
.button-group {
    display: flex;
    gap: 15px;
    text-align: center;
    justify-content: center;    
    margin-top: 25px;
    width: 100%
}
.btn-confirm, .btn-submit, .btn-toggle {
    background: var(--color-section);
    color: var(--color-accent);
    border: 1px solid var(--color-accent);
    padding: 5px 15px;
    text-transform: uppercase;
    border-radius: 4px;
    font-size: 0.75em;
    text-decoration: none;
}
.btn-confirm:hover, .btn-submit:hover, .btn-toggle:hover {
    color: var(--color-accent-hover);
    border: 1px solid var(--color-accent-hover);
	transform: scale(1.1);
	cursor: pointer;
}
.btn-exit, .btn-cancle, .btn-delete {
    background: var(--color-section);
    color: var(--color-warn);
    border: 1px solid var(--color-warn);
    padding: 5px 15px;
    text-transform: uppercase;
    border-radius: 4px;
    font-size: 0.75em;
    text-decoration: none;
}
.btn-exit:hover, .btn-cancle:hover, .btn-delete:hover {
    color: var(--color-warn-hover);
    border: 1px solid var(--color-warn-hover);
	transform: scale(1.1);   
	cursor: pointer; 
}
.btn-delete-img {
    position: absolute;
    top: 10px;
    left: 10px; /* Hier auf 'left' geändert */
    background: rgba(255, 0, 0, 0.85);
    color: white;
    border: none;
    border-radius: 4px; /* Eckig mit leichter Rundung sieht oft moderner aus */
    width: 28px;
    height: 28px;
    line-height: 28px;
    text-align: center;
    cursor: pointer;
    font-weight: bold;
    z-index: 100;
    transition: background 0.2s;
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: center;
}
.IMG-Caption {
	color: var(--color-text-main);
	font-size: 0.9em;
	text-align: center;
}

.IMG-Caption a {
	color: var(--color-accent);
	font-size: 1.0em;
	font-weight: bold;
	text-decoration: none;
}

.IMG-Caption a:hover{
	color: var(--color-accent-hover);
	font-size: 1.0em;
	font-weight: bold;
}
#mainImage {
        transition: opacity 0.2s;
    }	
/*************/
/* Info-Card */
/*************/
.info-card {
    background: var(--bg-3d);
    padding: 40px;
    border-radius: 15px;
    text-align: center;
    width: 650px;
    box-shadow: 0 10px 30px rgba(0,0,0,0.3);
	border: 1px solid var(--color-accent);
	margin-top: 40px;
}
.info-card h1 {
	padding-bottom: 25px;
}
/* Container für Bild und Text */
.card-content-wrapper {
    display: flex;
    align-items: center;
    gap: 20px;
    margin-bottom: 25px;
    text-align: left;
}

/* Bild-Styling */
.card-content-img {
   	width: 150px;
    height: auto;
    border-radius: 8px;
}

/* Text-Bereich */
.card-text {
    flex: 1;
    border-left: 1px solid var(--color-border2);
    padding-left: 25px;
    height: 150px;
}
.card-text h4 {
	color: var(--color-stars);
	padding-bottom: 25px;
}
/*******************************************************************/
/* 8. FOOTER */
/*******************************************************************/
.site-footer {
    display: flex;             
    align-items: center;       
    justify-content: space-between; 
    min-height: 75px;
    padding: 20px; /* Einheitliches Padding */
    margin-top: 40px;
    border-top: 1px solid var(--color-border);
    background: var(--color-bg);
    color: var(--color-text);
    width: var(--wmax);
}
#footer_left, 
#footer_right {
    flex: 1;                   
    display: flex;
    align-items: center;
}
#footer_right {
    justify-content: flex-end;
}
#footer_left img {
    height: 65px;              
    width: auto;               
    display: block;
}
#footer_mid {
    flex: 2;                   
    text-align: center;        
}
#footer_mid p {
    margin: 0;
    line-height: 1.5;
}
.site-footer a {
    text-decoration: none;
    font-weight: normal;
    font-size: 0.7em;
    color: var(--color-text2);
    padding: 0 10px;
    display: inline-block;
}
.site-footer a:hover {
    font-weight: bold;
    font-size: 0.8em;
    transform: scale(1.1);
}
/* 1 - AGE VERIFICATION */
#age-verification-overlay {
    display: none;
    position: fixed;
    z-index: 9999;
}    		
.overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: var(--color-bg);
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 9999;
    backdrop-filter: blur(5px);
}
.age-card {
    background: var(--bg-3d);
    padding: 40px;
    border-radius: 15px;
    text-align: center;
    max-width: var(--w600);
    box-shadow: 0 10px 30px rgba(0,0,0,0.3);
	border: 1px solid var(--color-accent);
}
.age-card h2 {
    margin-top: 0;
    padding-bottom: 25px;
    font-family: sans-serif;
    color: var(--color-accent);
}
/* COOKIE BANNER */
#cookie-overlay {
    display: none;
    position: fixed;
    z-index: 10000;
	width: 100%;
}
.cookie-overlay {
    position: fixed;
    top: 0; left: 0; width: 100%; height: 100%;
    background: rgba(0,0,0,0.8);
    display: none;
    justify-content: center;
    align-items: flex-end;
    z-index: 9999;
}
.cookie-box {
	display: flex;
    flex-direction: column;
    max-height: 90vh; 
    transition: all 0.3s ease; 
    background: var(--bg-3d);
    padding: 30px;
    width: 100%;
    margin-bottom: 20px;
    box-shadow: 0 -5px 20px rgba(0,0,0,0.3);
    text-align: left; 
	color: var(--color-text-main);
	border-top: 1px solid var(--color-text);
}
#cookie-law-info-bar {
    color: var(--color-text3) !important;
    text-align: left;
    margin-top: 15px;
}
.cookie-box h3 {
    color: var(--color-accent);
    padding-bottom: 25px;
}
.cookie-box a {
    color: var(--color-accent);
	text-decoration: none;
	font-weight: bold;
}
.cookie-box a:hover {
    color: var(--color-accent-hover);
	transform: scale(1.1);
}
.cookie-buttons {
    margin-top: 20px;
    display: flex;
    justify-content: center;
    gap: 15px;
}
#Privacy-Pol-Box {
    display: none;
    flex-direction: column;
    overflow: hidden;
}
#Privacy-Pol-Box:target {
    display: flex;
    flex-grow: 1;
    margin-top: 15px;
    border-top: 1px solid #eee;
}
/*******************************************************************/
/* 9. HILFSKLASSEN */
/*******************************************************************/
/* Google Translation */
.goog-te-banner-frame,
.goog-te-banner-frame.skiptranslate,
#goog-te-banner-frame,
.goog-te-banner,
.goog-te-menu-value,
iframe.goog-te-banner-frame,
.skiptranslate {
    display: none !important;
    visibility: hidden !important;
    height: 0 !important;
    width: 0 !important;
}
#goog-gt-tt, 
.goog-tooltip, 
.goog-tooltip:hover, 
.goog-te-balloon-frame,
.goog-te-balloon-frame:hover {
    display: none !important;
    visibility: hidden !important;
}
.goog-text-highlight {
    background-color: transparent !important;
    box-shadow: none !important;
    border: none !important;
}
.goog-logo-link, 
.goog-te-gadget span {
    display: none !important;
}
