/*!
Theme Name: AdultCity Theme
Theme URI: https://adultcity-theme.de/
Author: AdultCity Theme Team
Author URI: https://adultcity-theme.de/
Description: Ein vollständig anpassbares WordPress-Theme für Adult-Directory-Websites. Ideal für Städte wie Berlin, Hamburg, München, Augsburg und mehr. Inklusive Custom Post Types für Bordelle, Clubs, Massagestudios und Escort-Services, Stadtteil-Guides, Bewertungssystem und SEO-optimierter Struktur.
Version: 1.1.0
Tested up to: 6.4
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: adultcity
Tags: adult-directory, city-guide, custom-post-types, seo-friendly, dark-mode, responsive, translation-ready, customizer, ratings

AdultCity Theme is based on Underscores https://underscores.me/, (C) 2012-2020 Automattic, Inc.
Underscores is distributed under the terms of the GNU GPL v2 or later.

Normalizing styles have been helped along thanks to the fine work of
Nicolas Gallagher and Jonathan Neal https://necolas.github.io/normalize.css/
*/

/*--------------------------------------------------------------
>>> TABLE OF CONTENTS:
----------------------------------------------------------------
# Variables
# Generic
	- Normalize
	- Box sizing
# Base
	- Typography
	- Elements
	- Links
	- Forms
## Layouts
	- Header
	- Footer
	- Grid System
# Components
	- Navigation
	- Hero Section
	- Category Cards
	- Location Cards
	- Posts and pages
	- Comments / Reviews
	- Widgets
	- Media
	- Captions
	- Galleries
	- Search & Filters
# Templates
	- Archive Location
	- Single Location
	- District Guide
	- Blog / Ratgeber
# Plugins
	- Jetpack infinite scroll
# Utilities
	- Accessibility
	- Alignments
	- Dark Mode

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

/*--------------------------------------------------------------
# CSS Variables - Dark Mode (default)
--------------------------------------------------------------*/
:root,
[data-theme="dark"] {
	--ac-primary: #e91e63;
	--ac-primary-dark: #c2185b;
	--ac-primary-light: #f06292;
	--ac-primary-alpha: rgba(233, 30, 99, 0.12);
	--ac-secondary: #9c27b0;
	--ac-accent: #ff9800;

	--ac-bg-dark: #1a1a2e;
	--ac-bg-darker: #14142a;
	--ac-bg-card: #222240;
	--ac-bg-elevated: #2a2a4c;
	--ac-bg-input: #1c1c36;

	--ac-text-light: #f0f0f5;
	--ac-text-heading: #ffffff;
	--ac-text-muted: #9a9ab5;
	--ac-text-on-primary: #ffffff;

	--ac-border: #33335a;
	--ac-border-hover: #44447a;

	--ac-success: #4caf50;
	--ac-warning: #ff9800;
	--ac-error: #f44336;

	--ac-radius: 10px;
	--ac-shadow: 0 2px 8px rgba(0, 0, 0, 0.25);
	--ac-shadow-lg: 0 8px 32px rgba(0, 0, 0, 0.35);
	--ac-shadow-card: 0 1px 4px rgba(0, 0, 0, 0.2);
	--ac-transition: all 0.25s ease;

	--ac-sticky-bg: rgba(20, 20, 42, 0.92);
	--ac-sticky-shadow: 0 1px 20px rgba(0, 0, 0, 0.3);

	--ac-hero-overlay: linear-gradient(to bottom, rgba(26, 26, 46, 0.85) 0%, rgba(20, 20, 42, 0.95) 100%);
	--ac-hero-overlay-image: linear-gradient(to bottom, rgba(26, 26, 46, 0.8) 0%, rgba(20, 20, 42, 0.95) 100%);
	--ac-focus-ring: 0 0 0 3px rgba(233, 30, 99, 0.25);

	--ac-scrollbar-track: var(--ac-bg-darker);
	--ac-scrollbar-thumb: #3a3a5c;
}

/*--------------------------------------------------------------
# CSS Variables - Light Mode
--------------------------------------------------------------*/
[data-theme="light"] {
	--ac-primary: #c2185b;
	--ac-primary-dark: #ad1457;
	--ac-primary-light: #e91e63;
	--ac-primary-alpha: rgba(194, 24, 91, 0.06);
	--ac-secondary: #7b1fa2;
	--ac-accent: #e65100;

	--ac-bg-dark: #f7f8fa;
	--ac-bg-darker: #eef0f4;
	--ac-bg-card: #ffffff;
	--ac-bg-elevated: #ffffff;
	--ac-bg-input: #ffffff;

	--ac-text-light: #1a1a2e;
	--ac-text-heading: #0f0f24;
	--ac-text-muted: #64687a;
	--ac-text-on-primary: #ffffff;

	--ac-border: #dce0e8;
	--ac-border-hover: #c0c5d0;

	--ac-success: #2e7d32;
	--ac-warning: #ef6c00;
	--ac-error: #c62828;

	--ac-shadow: 0 1px 3px rgba(0, 0, 0, 0.05), 0 1px 2px rgba(0, 0, 0, 0.03);
	--ac-shadow-lg: 0 10px 40px rgba(0, 0, 0, 0.08), 0 4px 12px rgba(0, 0, 0, 0.04);
	--ac-shadow-card: 0 1px 3px rgba(0, 0, 0, 0.04), 0 1px 2px rgba(0, 0, 0, 0.02);

	--ac-sticky-bg: rgba(247, 248, 250, 0.92);
	--ac-sticky-shadow: 0 1px 12px rgba(0, 0, 0, 0.06);

	--ac-hero-overlay: linear-gradient(to bottom, rgba(247, 248, 250, 0.88) 0%, rgba(238, 240, 244, 0.96) 100%);
	--ac-hero-overlay-image: linear-gradient(to bottom, rgba(247, 248, 250, 0.7) 0%, rgba(238, 240, 244, 0.92) 100%);
	--ac-focus-ring: 0 0 0 3px rgba(194, 24, 91, 0.15);

	--ac-scrollbar-track: #eef0f4;
	--ac-scrollbar-thumb: #c0c5d0;
}

/*--------------------------------------------------------------
# Generic
--------------------------------------------------------------*/

/* Normalize
--------------------------------------------- */

/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */

/* Document
	 ========================================================================== */

/**
 * 1. Correct the line height in all browsers.
 * 2. Prevent adjustments of font size after orientation changes in iOS.
 */
html {
	line-height: 1.15;
	-webkit-text-size-adjust: 100%;
}

/* Sections
	 ========================================================================== */

/**
 * Remove the margin in all browsers.
 */
body {
	margin: 0;
}

/**
 * Render the `main` element consistently in IE.
 */
main {
	display: block;
}

/**
 * Correct the font size and margin on `h1` elements within `section` and
 * `article` contexts in Chrome, Firefox, and Safari.
 */
h1 {
	font-size: 2em;
	margin: 0.67em 0;
}

/* Grouping content
	 ========================================================================== */

/**
 * 1. Add the correct box sizing in Firefox.
 * 2. Show the overflow in Edge and IE.
 */
hr {
	box-sizing: content-box;
	height: 0;
	overflow: visible;
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */
pre {
	font-family: monospace, monospace;
	font-size: 1em;
}

/* Text-level semantics
	 ========================================================================== */

/**
 * Remove the gray background on active links in IE 10.
 */
a {
	background-color: transparent;
}

/**
 * 1. Remove the bottom border in Chrome 57-
 * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
 */
abbr[title] {
	border-bottom: none;
	text-decoration: underline;
	text-decoration: underline dotted;
}

/**
 * Add the correct font weight in Chrome, Edge, and Safari.
 */
b,
strong {
	font-weight: bolder;
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */
code,
kbd,
samp {
	font-family: monospace, monospace;
	font-size: 1em;
}

/**
 * Add the correct font size in all browsers.
 */
small {
	font-size: 80%;
}

/**
 * Prevent `sub` and `sup` elements from affecting the line height in
 * all browsers.
 */
sub,
sup {
	font-size: 75%;
	line-height: 0;
	position: relative;
	vertical-align: baseline;
}

sub {
	bottom: -0.25em;
}

sup {
	top: -0.5em;
}

/* Embedded content
	 ========================================================================== */

/**
 * Remove the border on images inside links in IE 10.
 */
img {
	border-style: none;
}

/* Forms
	 ========================================================================== */

/**
 * 1. Change the font styles in all browsers.
 * 2. Remove the margin in Firefox and Safari.
 */
button,
input,
optgroup,
select,
textarea {
	font-family: inherit;
	font-size: 100%;
	line-height: 1.15;
	margin: 0;
}

/**
 * Show the overflow in IE.
 * 1. Show the overflow in Edge.
 */
button,
input {
	overflow: visible;
}

/**
 * Remove the inheritance of text transform in Edge, Firefox, and IE.
 * 1. Remove the inheritance of text transform in Firefox.
 */
button,
select {
	text-transform: none;
}

/**
 * Correct the inability to style clickable types in iOS and Safari.
 */
button,
[type="button"],
[type="reset"],
[type="submit"] {
	-webkit-appearance: button;
}

/**
 * Remove the inner border and padding in Firefox.
 */
button::-moz-focus-inner,
[type="button"]::-moz-focus-inner,
[type="reset"]::-moz-focus-inner,
[type="submit"]::-moz-focus-inner {
	border-style: none;
	padding: 0;
}

/**
 * Restore the focus styles unset by the previous rule.
 */
button:-moz-focusring,
[type="button"]:-moz-focusring,
[type="reset"]:-moz-focusring,
[type="submit"]:-moz-focusring {
	outline: 1px dotted ButtonText;
}

/**
 * Correct the padding in Firefox.
 */
fieldset {
	padding: 0.35em 0.75em 0.625em;
}

/**
 * 1. Correct the text wrapping in Edge and IE.
 * 2. Correct the color inheritance from `fieldset` elements in IE.
 * 3. Remove the padding so developers are not caught out when they zero out
 *		`fieldset` elements in all browsers.
 */
legend {
	box-sizing: border-box;
	color: inherit;
	display: table;
	max-width: 100%;
	padding: 0;
	white-space: normal;
}

/**
 * Add the correct vertical alignment in Chrome, Firefox, and Opera.
 */
progress {
	vertical-align: baseline;
}

/**
 * Remove the default vertical scrollbar in IE 10+.
 */
textarea {
	overflow: auto;
}

/**
 * 1. Add the correct box sizing in IE 10.
 * 2. Remove the padding in IE 10.
 */
[type="checkbox"],
[type="radio"] {
	box-sizing: border-box;
	padding: 0;
}

/**
 * Correct the cursor style of increment and decrement buttons in Chrome.
 */
[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button {
	height: auto;
}

/**
 * 1. Correct the odd appearance in Chrome and Safari.
 * 2. Correct the outline style in Safari.
 */
[type="search"] {
	-webkit-appearance: textfield;
	outline-offset: -2px;
}

/**
 * Remove the inner padding in Chrome and Safari on macOS.
 */
[type="search"]::-webkit-search-decoration {
	-webkit-appearance: none;
}

/**
 * 1. Correct the inability to style clickable types in iOS and Safari.
 * 2. Change font properties to `inherit` in Safari.
 */
::-webkit-file-upload-button {
	-webkit-appearance: button;
	font: inherit;
}

/* Interactive
	 ========================================================================== */

/*
 * Add the correct display in Edge, IE 10+, and Firefox.
 */
details {
	display: block;
}

/*
 * Add the correct display in all browsers.
 */
summary {
	display: list-item;
}

/* Misc
	 ========================================================================== */

/**
 * Add the correct display in IE 10+.
 */
template {
	display: none;
}

/**
 * Add the correct display in IE 10.
 */
[hidden] {
	display: none;
}

/* Box sizing
--------------------------------------------- */

/* Inherit box-sizing to more easily change it's value on a component level.
@link http://css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice/ */
*,
*::before,
*::after {
	box-sizing: inherit;
}

html {
	box-sizing: border-box;
	scroll-behavior: smooth;
}

/* Theme transition for all themed elements */
.site-header,
.site-footer,
.site-content,
.hero,
.mobile-bottom-nav,
.breadcrumbs,
.widget,
.location-card,
.blog-card,
.category-card,
.feature-card,
.faq-item,
.comment,
.search-filters,
.guide-article,
.table-of-contents,
.social-sharing,
.author-box,
.archive-filter-bar {
	transition: background-color 0.35s ease, border-color 0.35s ease, box-shadow 0.35s ease, color 0.35s ease;
}

/* Custom Scrollbar */
::-webkit-scrollbar {
	width: 10px;
	height: 10px;
}

::-webkit-scrollbar-track {
	background: var(--ac-scrollbar-track);
}

::-webkit-scrollbar-thumb {
	background: var(--ac-scrollbar-thumb);
	border-radius: 5px;
}

::-webkit-scrollbar-thumb:hover {
	background: var(--ac-primary);
}

/* Firefox scrollbar */
html {
	scrollbar-width: thin;
	scrollbar-color: var(--ac-scrollbar-thumb) var(--ac-scrollbar-track);
}

/*--------------------------------------------------------------
# Base
--------------------------------------------------------------*/

/* Typography
--------------------------------------------- */
body,
button,
input,
select,
optgroup,
textarea {
	color: var(--ac-text-light);
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
	font-size: 1rem;
	line-height: 1.6;
}

body {
	background-color: var(--ac-bg-dark);
	transition: background-color 0.35s ease, color 0.35s ease;
}

h1,
h2,
h3,
h4,
h5,
h6 {
	clear: both;
	color: var(--ac-text-heading);
	font-weight: 700;
	line-height: 1.3;
	margin: 0 0 1rem;
}

h1 {
	font-size: 2.5rem;
}

h2 {
	font-size: 2rem;
}

h3 {
	font-size: 1.5rem;
}

h4 {
	font-size: 1.25rem;
}

p {
	margin-bottom: 1.5em;
}

dfn,
cite,
em,
i {
	font-style: italic;
}

blockquote {
	margin: 0 1.5em;
	padding: 1rem 1.5rem;
	border-left: 4px solid var(--ac-primary);
	background: var(--ac-bg-card);
}

address {
	margin: 0 0 1.5em;
}

pre {
	background: var(--ac-bg-card);
	font-family: "Courier 10 Pitch", courier, monospace;
	line-height: 1.6;
	margin-bottom: 1.6em;
	max-width: 100%;
	overflow: auto;
	padding: 1.6em;
	border-radius: var(--ac-radius);
}

code,
kbd,
tt,
var {
	font-family: monaco, consolas, "Andale Mono", "DejaVu Sans Mono", monospace;
}

abbr,
acronym {
	border-bottom: 1px dotted var(--ac-text-muted);
	cursor: help;
}

mark,
ins {
	background: var(--ac-primary-alpha);
	text-decoration: none;
}

big {
	font-size: 125%;
}

/* Elements
--------------------------------------------- */
hr {
	background-color: var(--ac-border);
	border: 0;
	height: 1px;
	margin-bottom: 1.5em;
}

ul,
ol {
	margin: 0 0 1.5em 1.5em;
	padding-left: 1.5em;
}

ul {
	list-style: disc;
}

ol {
	list-style: decimal;
}

li > ul,
li > ol {
	margin-bottom: 0;
	margin-left: 1.5em;
}

dt {
	font-weight: 700;
}

dd {
	margin: 0 1.5em 1.5em;
}

/* Make sure embeds and iframes fit their containers. */
embed,
iframe,
object {
	max-width: 100%;
}

img {
	height: auto;
	max-width: 100%;
	display: block;
}

figure {
	margin: 1em 0;
}

table {
	margin: 0 0 1.5em;
	width: 100%;
	border-collapse: collapse;
}

table th,
table td {
	padding: 0.75rem;
	border: 1px solid var(--ac-border);
}

table th {
	background: var(--ac-bg-card);
	font-weight: 600;
	text-align: left;
}

/* Links
--------------------------------------------- */
a {
	color: var(--ac-primary);
	text-decoration: none;
	transition: var(--ac-transition);
}

a:visited {
	color: var(--ac-primary);
}

a:hover,
a:focus,
a:active {
	color: var(--ac-accent);
}

a:focus {
	outline: 2px solid var(--ac-primary);
	outline-offset: 2px;
}

a:hover,
a:active {
	outline: 0;
}

/* Forms
--------------------------------------------- */
button,
input[type="button"],
input[type="reset"],
input[type="submit"] {
	border: none;
	border-radius: var(--ac-radius);
	background: var(--ac-primary);
	color: var(--ac-text-on-primary);
	line-height: 1;
	padding: 0.875rem 1.5rem;
	cursor: pointer;
	font-weight: 600;
	transition: var(--ac-transition);
}

button:hover,
input[type="button"]:hover,
input[type="reset"]:hover,
input[type="submit"]:hover {
	background: var(--ac-primary-dark);
	transform: translateY(-2px);
}

button:active,
button:focus,
input[type="button"]:active,
input[type="button"]:focus,
input[type="reset"]:active,
input[type="reset"]:focus,
input[type="submit"]:active,
input[type="submit"]:focus {
	background: var(--ac-primary-dark);
}

input[type="text"],
input[type="email"],
input[type="url"],
input[type="password"],
input[type="search"],
input[type="number"],
input[type="tel"],
input[type="range"],
input[type="date"],
input[type="month"],
input[type="week"],
input[type="time"],
input[type="datetime"],
input[type="datetime-local"],
input[type="color"],
textarea {
	color: var(--ac-text-light);
	border: 1px solid var(--ac-border);
	border-radius: var(--ac-radius);
	background: var(--ac-bg-input);
	padding: 0.75rem 1rem;
	width: 100%;
	transition: var(--ac-transition);
}

input[type="text"]:focus,
input[type="email"]:focus,
input[type="url"]:focus,
input[type="password"]:focus,
input[type="search"]:focus,
input[type="number"]:focus,
input[type="tel"]:focus,
input[type="range"]:focus,
input[type="date"]:focus,
input[type="month"]:focus,
input[type="week"]:focus,
input[type="time"]:focus,
input[type="datetime"]:focus,
input[type="datetime-local"]:focus,
input[type="color"]:focus,
textarea:focus {
	color: var(--ac-text-light);
	border-color: var(--ac-primary);
	outline: none;
	box-shadow: var(--ac-focus-ring);
}

select {
	border: 1px solid var(--ac-border);
	border-radius: var(--ac-radius);
	background: var(--ac-bg-input);
	color: var(--ac-text-light);
	padding: 0.75rem 1rem;
	width: 100%;
}

textarea {
	width: 100%;
	resize: vertical;
	min-height: 120px;
}

/*--------------------------------------------------------------
# Layouts
--------------------------------------------------------------*/

/* Container
--------------------------------------------- */
.container {
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 1.5rem;
}

.container-narrow {
	max-width: 900px;
	margin: 0 auto;
	padding: 0 1.5rem;
}

/* Grid System
--------------------------------------------- */
.grid {
	display: grid;
	gap: 1.5rem;
}

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

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

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

@media (max-width: 992px) {
	.grid-4 {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 768px) {
	.grid-3,
	.grid-4 {
		grid-template-columns: 1fr;
	}
}

/* Header
--------------------------------------------- */
.site-header {
	background: var(--ac-bg-darker);
	border-bottom: 1px solid var(--ac-border);
	position: sticky;
	top: 0;
	z-index: 1000;
}

.site-header .container {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding-top: 1rem;
	padding-bottom: 1rem;
	gap: 1rem;
}

.header-actions {
	display: flex;
	align-items: center;
	gap: 0.5rem;
}

.site-branding {
	display: flex;
	align-items: center;
	gap: 0.75rem;
}

.site-logo img {
	max-height: 50px;
	width: auto;
}

.site-title {
	font-size: 1.5rem;
	font-weight: 700;
	margin: 0;
}

.site-title a {
	color: var(--ac-text-light);
}

.site-title a:hover {
	color: var(--ac-primary);
}

.site-description {
	font-size: 0.875rem;
	color: var(--ac-text-muted);
	margin: 0;
}

/* Footer
--------------------------------------------- */
.site-footer {
	background: var(--ac-bg-darker);
	border-top: 1px solid var(--ac-border);
	padding: 3rem 0 1.5rem;
	margin-top: 4rem;
}

.footer-widgets {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 2rem;
	margin-bottom: 2rem;
}

@media (max-width: 992px) {
	.footer-widgets {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 576px) {
	.footer-widgets {
		grid-template-columns: 1fr;
	}
}

.footer-widget-title {
	font-size: 1.125rem;
	margin-bottom: 1rem;
	color: var(--ac-text-light);
}

.footer-widget ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

.footer-widget li {
	margin-bottom: 0.5rem;
}

.footer-widget a {
	color: var(--ac-text-muted);
}

.footer-widget a:hover {
	color: var(--ac-primary);
}

.footer-bottom {
	border-top: 1px solid var(--ac-border);
	padding-top: 1.5rem;
	text-align: center;
	color: var(--ac-text-muted);
	font-size: 0.875rem;
}

.footer-legal {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 1.5rem;
	margin-bottom: 1rem;
	flex-wrap: wrap;
}

.footer-legal a {
	color: var(--ac-text-muted);
}

.footer-legal a:hover {
	color: var(--ac-primary);
}

/* Footer Quick-Edit (Stift-Icons) - nur sichtbar für Admins */
.footer-edit-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	margin-left: 0.35rem;
	padding: 0.2rem;
	opacity: 0.6;
	color: var(--ac-text-muted);
	transition: var(--ac-transition);
	vertical-align: middle;
}

.footer-edit-link:hover {
	opacity: 1;
	color: var(--ac-primary);
}

.footer-edit-link .edit-icon {
	width: 14px;
	height: 14px;
}

.footer-edit-link-inline {
	margin-left: 0.75rem;
	margin-right: 0;
}

.footer-widget-title {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 0.25rem;
}

/*--------------------------------------------------------------
# Components
--------------------------------------------------------------*/

/* Navigation
--------------------------------------------- */
.main-navigation {
	display: block;
}

.main-navigation ul {
	display: none;
	list-style: none;
	margin: 0;
	padding-left: 0;
	gap: 0.5rem;
}

.main-navigation ul ul {
	box-shadow: var(--ac-shadow-lg);
	float: left;
	position: absolute;
	top: 100%;
	left: -999em;
	z-index: 99999;
	background: var(--ac-bg-card);
	border-radius: var(--ac-radius);
	padding: 0.5rem 0;
	min-width: 200px;
}

.main-navigation ul ul ul {
	left: -999em;
	top: 0;
}

.main-navigation ul ul li:hover > ul,
.main-navigation ul ul li.focus > ul {
	display: block;
	left: auto;
}

.main-navigation ul ul a {
	width: 100%;
	padding: 0.5rem 1rem;
}

.main-navigation ul ul a:hover {
	background: var(--ac-bg-darker);
}

.main-navigation ul li:hover > ul,
.main-navigation ul li.focus > ul {
	left: auto;
}

.main-navigation li {
	position: relative;
}

.main-navigation a {
	display: block;
	text-decoration: none;
	color: var(--ac-text-light);
	padding: 0.75rem 1rem;
	border-radius: var(--ac-radius);
	font-weight: 500;
}

.main-navigation a:hover,
.main-navigation .current-menu-item a {
	background: var(--ac-bg-card);
	color: var(--ac-primary);
}

/* Small menu. */
.menu-toggle {
	display: block;
	background: transparent;
	border: 1px solid var(--ac-border);
	color: var(--ac-text-light);
	padding: 0.5rem 1rem;
	font-size: 0.875rem;
}

.menu-toggle:hover {
	background: var(--ac-bg-card);
}

.main-navigation.toggled ul {
	display: flex;
	flex-direction: column;
	position: absolute;
	top: 100%;
	left: 0;
	right: 0;
	background: var(--ac-bg-darker);
	padding: 1rem;
	border: 1px solid var(--ac-border);
	border-top: none;
}

@media screen and (min-width: 37.5em) {
	.menu-toggle {
		display: none;
	}

	.main-navigation ul {
		display: flex;
	}
	
	.main-navigation.toggled ul {
		position: static;
		flex-direction: row;
		border: none;
		padding: 0;
	}
}

/* Hero Section
--------------------------------------------- */
.hero {
	background: linear-gradient(135deg, var(--ac-bg-darker) 0%, var(--ac-bg-dark) 100%);
	padding: 6rem 0;
	text-align: center;
	position: relative;
	overflow: hidden;
	min-height: 500px;
	display: flex;
	align-items: center;
	justify-content: center;
}

/* Hero with Background Image */
.hero-has-image {
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
}

.hero-overlay {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background: var(--ac-hero-overlay);
	z-index: 1;
}

.hero-content {
	position: relative;
	z-index: 2;
	max-width: 800px;
	margin: 0 auto;
	padding: 0 1.5rem;
}

/* Hero Text Alignment */
.hero-align-left {
	text-align: left;
}

.hero-align-left .hero-content {
	margin-left: 0;
	margin-right: auto;
}

.hero-align-right {
	text-align: right;
}

.hero-align-right .hero-content {
	margin-left: auto;
	margin-right: 0;
}

/* Hero with Image - adjust text for readability */
.hero-has-image .hero-title {
	color: #ffffff;
	-webkit-text-fill-color: #ffffff;
	text-shadow: 0 2px 20px rgba(0, 0, 0, 0.5);
}

.hero-has-image .hero-subtitle {
	color: rgba(255, 255, 255, 0.9);
	text-shadow: 0 1px 10px rgba(0, 0, 0, 0.5);
}

.hero-title {
	font-size: 3.5rem;
	font-weight: 800;
	margin-bottom: 1rem;
	line-height: 1.1;
	background: linear-gradient(135deg, var(--ac-primary) 0%, var(--ac-secondary) 100%);
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
	background-clip: text;
}

@media (max-width: 768px) {
	.hero {
		padding: 4rem 0;
		min-height: 400px;
	}
	
	.hero-title {
		font-size: 2.25rem;
	}
}

.hero-subtitle {
	font-size: 1.375rem;
	color: var(--ac-text-muted);
	margin-bottom: 2.5rem;
	line-height: 1.5;
}

.hero-search {
	max-width: 600px;
	margin: 0 auto;
}

/* Hero search bar: one row, no gap, dark input + pink button */
.hero .hero-search .search-form {
	display: flex;
	gap: 0;
	align-items: stretch;
	border-radius: var(--ac-radius);
	overflow: hidden;
	box-shadow: var(--ac-shadow-lg);
}

.hero .hero-search .search-field {
	flex: 1;
	min-width: 0;
	background: #2e324d;
	border: none;
	border-radius: var(--ac-radius) 0 0 var(--ac-radius);
	padding: 1rem 1.25rem;
	color: var(--ac-text-light);
	font-size: 1rem;
}

.hero .hero-search .search-field::placeholder {
	color: var(--ac-text-muted);
}

.hero .hero-search .search-field:focus {
	background: #2e324d;
	border-color: transparent;
	box-shadow: none;
	outline: none;
}

.hero .hero-search .search-submit {
	flex-shrink: 0;
	background: var(--ac-primary);
	color: var(--ac-text-on-primary);
	border: none;
	border-radius: 0 var(--ac-radius) var(--ac-radius) 0;
	padding: 1rem 1.75rem;
	font-weight: 600;
	font-size: 1rem;
	cursor: pointer;
	transition: var(--ac-transition);
}

.hero .hero-search .search-submit:hover {
	background: var(--ac-primary-dark);
}

/* Features Section
--------------------------------------------- */
.features-section {
	background: var(--ac-bg-darker);
	padding: 4rem 0;
}

.features-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
	gap: 2rem;
	margin-top: 2rem;
}

.feature-card {
	text-align: center;
	padding: 2rem;
	background: var(--ac-bg-card);
	border-radius: var(--ac-radius);
	border: 1px solid var(--ac-border);
	transition: var(--ac-transition);
}

.feature-card:hover {
	transform: translateY(-5px);
	border-color: var(--ac-primary);
}

.feature-icon {
	font-size: 3rem;
	display: block;
	margin-bottom: 1rem;
}

.feature-title {
	font-size: 1.25rem;
	margin-bottom: 0.5rem;
}

.feature-text {
	color: var(--ac-text-muted);
	font-size: 0.875rem;
}

/* FAQ/Accordion Section
--------------------------------------------- */
.faq-section {
	background: var(--ac-bg-card);
	padding: 4rem 0;
}

.faq-accordion {
	max-width: 800px;
	margin: 2rem auto 0;
}

.faq-item {
	margin-bottom: 1rem;
	border-radius: var(--ac-radius);
	overflow: hidden;
	background: var(--ac-bg-darker);
}

.faq-question {
	width: 100%;
	padding: 1.25rem;
	text-align: left;
	background: none;
	border: none;
	font-size: 1rem;
	font-weight: 500;
	display: flex;
	justify-content: space-between;
	align-items: center;
	cursor: pointer;
	color: var(--ac-text-light);
	transition: var(--ac-transition);
}

.faq-question:hover {
	background: var(--ac-primary-alpha);
}

.faq-icon {
	font-size: 1.5rem;
	font-weight: 300;
	transition: var(--ac-transition);
}

.faq-item.active .faq-icon {
	transform: rotate(45deg);
}

.faq-answer {
	padding: 0 1.25rem 1.25rem;
	color: var(--ac-text-muted);
	line-height: 1.6;
}

.faq-answer p {
	margin: 0;
}

/* Newsletter Section
--------------------------------------------- */
.newsletter-section {
	background: linear-gradient(135deg, var(--ac-primary-dark) 0%, var(--ac-secondary) 100%);
	padding: 4rem 0;
}

.newsletter-box {
	text-align: center;
	max-width: 600px;
	margin: 0 auto;
}

.newsletter-title {
	font-size: 2rem;
	margin-bottom: 1rem;
	color: white;
}

.newsletter-text {
	font-size: 1.125rem;
	margin-bottom: 2rem;
	opacity: 0.9;
	color: rgba(255, 255, 255, 0.9);
}

.newsletter-form {
	display: flex;
	gap: 0.5rem;
	max-width: 450px;
	margin: 0 auto;
}

.newsletter-form input[type="email"] {
	flex: 1;
	background: rgba(255, 255, 255, 0.9);
	border: none;
	padding: 0.875rem 1rem;
	border-radius: var(--ac-radius);
}

.newsletter-form input[type="email"]::placeholder {
	color: #666;
}

.newsletter-form .button {
	background: var(--ac-bg-dark);
	color: white;
	white-space: nowrap;
}

.newsletter-form .button:hover {
	background: var(--ac-bg-darker);
}

@media (max-width: 480px) {
	.newsletter-form {
		flex-direction: column;
	}
}

.search-form {
	display: flex;
	gap: 0.5rem;
}

.search-form input[type="search"] {
	flex: 1;
}

/* Category Cards
--------------------------------------------- */
.categories-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
	gap: 1.5rem;
	padding: 0;
}

.category-card {
	background: var(--ac-bg-card);
	border-radius: var(--ac-radius);
	padding: 2rem;
	text-align: center;
	transition: var(--ac-transition);
	border: 1px solid var(--ac-border);
	text-decoration: none;
	display: block;
}

.category-card:hover {
	transform: translateY(-5px);
	box-shadow: var(--ac-shadow-lg);
	border-color: var(--ac-primary);
}

.category-icon {
	font-size: 3rem;
	margin-bottom: 1rem;
}

.category-title {
	font-size: 1.25rem;
	color: var(--ac-text-light);
	margin-bottom: 0.5rem;
}

.category-count {
	color: var(--ac-text-muted);
	font-size: 0.875rem;
}

/* Location Cards
--------------------------------------------- */
.locations-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
	gap: 1.5rem;
	padding: 2rem 0;
}

.location-card {
	background: var(--ac-bg-card);
	border-radius: var(--ac-radius);
	overflow: hidden;
	transition: var(--ac-transition);
	border: 1px solid var(--ac-border);
}

.location-card:hover {
	transform: translateY(-5px);
	box-shadow: var(--ac-shadow-lg);
	border-color: var(--ac-primary);
}

.location-image {
	position: relative;
	aspect-ratio: 16 / 10;
	overflow: hidden;
}

.location-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: var(--ac-transition);
}

.location-card:hover .location-image img {
	transform: scale(1.05);
}

.location-badge {
	position: absolute;
	top: 1rem;
	left: 1rem;
	background: var(--ac-primary);
	color: var(--ac-text-on-primary);
	padding: 0.25rem 0.75rem;
	border-radius: 20px;
	font-size: 0.75rem;
	font-weight: 600;
	text-transform: uppercase;
}

.location-badge.verified {
	background: var(--ac-success);
}

.location-badge.premium {
	background: var(--ac-accent);
}

.location-content {
	padding: 1.5rem;
}

.location-title {
	font-size: 1.25rem;
	margin-bottom: 0.5rem;
}

.location-title a {
	color: var(--ac-text-light);
}

.location-title a:hover {
	color: var(--ac-primary);
}

.location-meta {
	display: flex;
	gap: 1rem;
	color: var(--ac-text-muted);
	font-size: 0.875rem;
	margin-bottom: 1rem;
}

.location-meta span {
	display: flex;
	align-items: center;
	gap: 0.25rem;
}

.location-rating {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	margin-bottom: 1rem;
}

.stars {
	color: var(--ac-accent);
}

.rating-count {
	color: var(--ac-text-muted);
	font-size: 0.875rem;
}

.location-excerpt {
	color: var(--ac-text-muted);
	font-size: 0.9375rem;
	margin-bottom: 1rem;
	line-height: 1.5;
}

.location-services {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
}

.service-tag {
	background: var(--ac-bg-darker);
	color: var(--ac-text-muted);
	padding: 0.25rem 0.75rem;
	border-radius: 20px;
	font-size: 0.75rem;
}

/* Posts and pages
--------------------------------------------- */
.sticky {
	display: block;
}

.post,
.page {
	margin: 0 0 1.5em;
}

.updated:not(.published) {
	display: none;
}

.page-content,
.entry-content,
.entry-summary {
	margin: 1.5em 0 0;
}

.page-links {
	clear: both;
	margin: 0 0 1.5em;
}

/* Entry Header */
.entry-header {
	margin-bottom: 2rem;
}

.entry-title {
	font-size: 2.5rem;
	margin-bottom: 1rem;
}

.entry-meta {
	display: flex;
	gap: 1rem;
	color: var(--ac-text-muted);
	font-size: 0.875rem;
	flex-wrap: wrap;
}

.entry-meta a {
	color: var(--ac-text-muted);
}

.entry-meta a:hover {
	color: var(--ac-primary);
}

/* Featured Image */
.post-thumbnail {
	margin-bottom: 2rem;
}

.post-thumbnail img {
	border-radius: var(--ac-radius);
	width: 100%;
}

/* Comments / Reviews
--------------------------------------------- */
.comments-area {
	margin-top: 3rem;
	padding-top: 3rem;
	border-top: 1px solid var(--ac-border);
}

.comments-title {
	font-size: 1.5rem;
	margin-bottom: 1.5rem;
}

.comment-list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.comment {
	background: var(--ac-bg-card);
	border-radius: var(--ac-radius);
	padding: 1.5rem;
	margin-bottom: 1.5rem;
}

.comment-meta {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	margin-bottom: 1rem;
}

.comment-author {
	display: flex;
	align-items: center;
	gap: 1rem;
}

.comment-author .avatar {
	border-radius: 50%;
}

.comment-author .fn {
	font-weight: 600;
	color: var(--ac-text-light);
}

.comment-metadata {
	color: var(--ac-text-muted);
	font-size: 0.875rem;
}

.comment-content {
	margin-bottom: 1rem;
}

.comment-content p:last-child {
	margin-bottom: 0;
}

.comment-reply-link {
	color: var(--ac-primary);
	font-weight: 500;
}

.review-rating {
	color: var(--ac-accent);
	margin-bottom: 0.5rem;
}

/* Widgets
--------------------------------------------- */
.widget {
	margin: 0 0 1.5em;
	background: var(--ac-bg-card);
	padding: 1.5rem;
	border-radius: var(--ac-radius);
}

.widget-title {
	font-size: 1.125rem;
	margin-bottom: 1rem;
	padding-bottom: 0.75rem;
	border-bottom: 1px solid var(--ac-border);
}

.widget ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

.widget li {
	padding: 0.5rem 0;
	border-bottom: 1px solid var(--ac-border);
}

.widget li:last-child {
	border-bottom: none;
}

.widget a {
	color: var(--ac-text-muted);
}

.widget a:hover {
	color: var(--ac-primary);
}

/* Sidebar */
.widget-area {
	padding-left: 2rem;
}

@media (max-width: 992px) {
	.widget-area {
		padding-left: 0;
		margin-top: 3rem;
	}
}

/* Media
--------------------------------------------- */
.page-content .wp-smiley,
.entry-content .wp-smiley,
.comment-content .wp-smiley {
	border: none;
	margin-bottom: 0;
	margin-top: 0;
	padding: 0;
}

/* Make sure logo link wraps around logo image. */
.custom-logo-link {
	display: inline-block;
}

/* Captions
--------------------------------------------- */
.wp-caption {
	margin-bottom: 1.5em;
	max-width: 100%;
}

.wp-caption img[class*="wp-image-"] {
	display: block;
	margin-left: auto;
	margin-right: auto;
}

.wp-caption .wp-caption-text {
	margin: 0.8075em 0;
}

.wp-caption-text {
	text-align: center;
	color: var(--ac-text-muted);
	font-size: 0.875rem;
}

/* Galleries
--------------------------------------------- */
.gallery {
	margin-bottom: 1.5em;
	display: grid;
	grid-gap: 1.5em;
}

.gallery-item {
	display: inline-block;
	text-align: center;
	width: 100%;
}

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

.gallery-columns-3 {
	grid-template-columns: repeat(3, 1fr);
}

.gallery-columns-4 {
	grid-template-columns: repeat(4, 1fr);
}

.gallery-columns-5 {
	grid-template-columns: repeat(5, 1fr);
}

.gallery-columns-6 {
	grid-template-columns: repeat(6, 1fr);
}

.gallery-columns-7 {
	grid-template-columns: repeat(7, 1fr);
}

.gallery-columns-8 {
	grid-template-columns: repeat(8, 1fr);
}

.gallery-columns-9 {
	grid-template-columns: repeat(9, 1fr);
}

.gallery-caption {
	display: block;
	color: var(--ac-text-muted);
	font-size: 0.875rem;
	margin-top: 0.5rem;
}

/* Search & Filters
--------------------------------------------- */
.search-filters {
	background: var(--ac-bg-card);
	padding: 1.5rem;
	border-radius: var(--ac-radius);
	margin-bottom: 2rem;
}

.filters-form {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
	gap: 1rem;
	align-items: end;
}

.filter-group {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}

.filter-group label {
	font-weight: 500;
	font-size: 0.875rem;
	color: var(--ac-text-muted);
}

.filter-actions {
	display: flex;
	gap: 0.5rem;
}

/* Pagination */
.pagination {
	display: flex;
	justify-content: center;
	gap: 0.5rem;
	margin: 3rem 0;
}

.pagination a,
.pagination span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 40px;
	height: 40px;
	padding: 0 0.75rem;
	background: var(--ac-bg-card);
	border: 1px solid var(--ac-border);
	border-radius: var(--ac-radius);
	color: var(--ac-text-light);
	text-decoration: none;
	transition: var(--ac-transition);
}

.pagination a:hover {
	background: var(--ac-primary);
	border-color: var(--ac-primary);
}

.pagination .current {
	background: var(--ac-primary);
	border-color: var(--ac-primary);
}

/*--------------------------------------------------------------
# Templates
--------------------------------------------------------------*/

/* Archive Location
--------------------------------------------- */
.archive-header {
	background: var(--ac-bg-card);
	padding: 3rem 0;
	margin-bottom: 2rem;
	text-align: center;
}

.archive-title {
	font-size: 2.5rem;
	margin-bottom: 0.5rem;
}

.archive-description {
	color: var(--ac-text-muted);
	max-width: 600px;
	margin: 0 auto;
}

.archive-count {
	color: var(--ac-primary);
	font-weight: 600;
}

/* Single Location
--------------------------------------------- */
.single-location {
	padding-bottom: 3rem;
}

.single-location-breadcrumb {
	margin-bottom: 1.5rem;
}

.single-location-breadcrumb .breadcrumbs {
	margin: 0;
}

.single-location-container {
	max-width: 1200px;
}

.single-location .entry-header {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 2rem;
	align-items: start;
	margin-bottom: 2rem;
}

.single-location .content-sidebar-wrap {
	margin-top: 2rem;
	gap: 2.5rem;
}

.single-location .content-area {
	min-width: 0;
}

.single-location .entry-content {
	margin-bottom: 2rem;
}

.single-location .location-info-widget,
.single-location .opening-hours-widget {
	background: var(--ac-bg-card);
	border-radius: var(--ac-radius);
	padding: 1.25rem 1.5rem;
	margin-bottom: 1.5rem;
	border: 1px solid var(--ac-border);
}

.single-location .location-info-widget .widget-title,
.single-location .opening-hours-widget .widget-title {
	margin-top: 0;
	margin-bottom: 1rem;
	font-size: 1.125rem;
}

.single-location .location-reviews-section {
	margin-top: 2.5rem;
	padding-top: 2rem;
}

/* Related locations slider (15 random entries) */
.related-locations-slider-section {
	margin-top: 3rem;
	padding: 2.5rem 0;
	border-top: 1px solid var(--ac-border);
	background: var(--ac-bg-darker);
}

.related-locations-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 1.5rem;
	gap: 1rem;
}

.related-locations-header h2 {
	margin: 0;
	font-size: 1.5rem;
}

.related-locations-nav {
	display: flex;
	gap: 0.5rem;
}

.related-locations-prev,
.related-locations-next {
	width: 44px;
	height: 44px;
	border: 1px solid var(--ac-border);
	background: var(--ac-bg-card);
	color: var(--ac-text-light);
	border-radius: var(--ac-radius);
	cursor: pointer;
	font-size: 1.25rem;
	line-height: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: var(--ac-transition);
}

.related-locations-prev:hover,
.related-locations-next:hover {
	background: var(--ac-primary);
	color: var(--ac-text-on-primary);
	border-color: var(--ac-primary);
}

.related-locations-slider {
	overflow: hidden;
	margin: 0 -1.5rem;
	padding: 0 1.5rem;
}

.related-locations-track {
	display: flex;
	gap: 1.5rem;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scroll-behavior: smooth;
	-webkit-overflow-scrolling: touch;
	padding-bottom: 0.5rem;
	scrollbar-width: thin;
}

.related-locations-track::-webkit-scrollbar {
	height: 6px;
}

.related-locations-track::-webkit-scrollbar-track {
	background: var(--ac-bg-dark);
	border-radius: 3px;
}

.related-locations-track::-webkit-scrollbar-thumb {
	background: var(--ac-border);
	border-radius: 3px;
}

.related-locations-slide {
	flex: 0 0 300px;
	scroll-snap-align: start;
	min-width: 0;
}

.related-locations-slide .location-card {
	height: 100%;
}

@media (max-width: 768px) {
	.related-locations-slide {
		flex: 0 0 260px;
	}
}

@media (max-width: 768px) {
	.single-location .entry-header {
		grid-template-columns: 1fr;
	}
}

.location-gallery {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 1rem;
}

.location-gallery img {
	border-radius: var(--ac-radius);
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
}

.location-info {
	background: var(--ac-bg-card);
	padding: 2rem;
	border-radius: var(--ac-radius);
}

.location-details {
	list-style: none;
	margin: 0;
	padding: 0;
}

.location-details li {
	display: flex;
	justify-content: space-between;
	padding: 0.75rem 0;
	border-bottom: 1px solid var(--ac-border);
}

.location-details li:last-child {
	border-bottom: none;
}

.location-details .label {
	color: var(--ac-text-muted);
}

.location-details .value {
	font-weight: 500;
	color: var(--ac-text-light);
}

/* Opening Hours */
.opening-hours {
	margin-top: 2rem;
}

.opening-hours h3 {
	font-size: 1.25rem;
	margin-bottom: 1rem;
}

.hours-list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.hours-list li {
	display: flex;
	justify-content: space-between;
	padding: 0.5rem 0;
}

.hours-list .day {
	color: var(--ac-text-muted);
}

.hours-list .time {
	font-weight: 500;
}

.hours-list .time.open {
	color: var(--ac-success);
}

.hours-list .time.closed {
	color: var(--ac-error);
}

/* District Guide
--------------------------------------------- */
.district-hero {
	background: var(--ac-bg-card);
	padding: 3rem 0;
	margin-bottom: 2rem;
}

.district-map {
	background: var(--ac-bg-darker);
	border-radius: var(--ac-radius);
	height: 300px;
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--ac-text-muted);
	margin-bottom: 2rem;
}

.district-description {
	max-width: 800px;
}

/* Blog / Ratgeber
--------------------------------------------- */
.blog-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(350px, 1fr));
	gap: 2rem;
}

.blog-card {
	background: var(--ac-bg-card);
	border-radius: var(--ac-radius);
	overflow: hidden;
	transition: var(--ac-transition);
	border: 1px solid var(--ac-border);
}

.blog-card:hover {
	transform: translateY(-5px);
	box-shadow: var(--ac-shadow-lg);
	border-color: var(--ac-primary);
}

.blog-card-image {
	aspect-ratio: 16 / 9;
	overflow: hidden;
}

.blog-card-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: var(--ac-transition);
}

.blog-card:hover .blog-card-image img {
	transform: scale(1.05);
}

.blog-card-content {
	padding: 1.5rem;
}

.blog-card-category {
	color: var(--ac-primary);
	font-size: 0.875rem;
	font-weight: 500;
	text-transform: uppercase;
	margin-bottom: 0.5rem;
}

.blog-card-title {
	font-size: 1.25rem;
	margin-bottom: 0.75rem;
}

.blog-card-title a {
	color: var(--ac-text-light);
}

.blog-card-title a:hover {
	color: var(--ac-primary);
}

.blog-card-excerpt {
	color: var(--ac-text-muted);
	font-size: 0.9375rem;
	margin-bottom: 1rem;
}

.blog-card-meta {
	display: flex;
	gap: 1rem;
	color: var(--ac-text-muted);
	font-size: 0.875rem;
}

/*--------------------------------------------------------------
# Plugins
--------------------------------------------------------------*/

/* Jetpack infinite scroll
--------------------------------------------- */

/* Hide the Posts Navigation and the Footer when Infinite Scroll is in use. */
.infinite-scroll .posts-navigation,
.infinite-scroll.neverending .site-footer {
	display: none;
}

/* Re-display the Theme Footer when Infinite Scroll has reached its end. */
.infinity-end.neverending .site-footer {
	display: block;
}

/*--------------------------------------------------------------
# Utilities
--------------------------------------------------------------*/

/* Accessibility
--------------------------------------------- */

/* Text meant only for screen readers. */
.screen-reader-text {
	border: 0;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute !important;
	width: 1px;
	word-wrap: normal !important;
}

.screen-reader-text:focus {
	background-color: var(--ac-bg-card);
	border-radius: var(--ac-radius);
	box-shadow: var(--ac-focus-ring);
	clip: auto !important;
	clip-path: none;
	color: var(--ac-text-light);
	display: block;
	font-size: 0.875rem;
	font-weight: 700;
	height: auto;
	left: 5px;
	line-height: normal;
	padding: 15px 23px 14px;
	text-decoration: none;
	top: 5px;
	width: auto;
	z-index: 100000;
}

/* Do not show the outline on the skip link target. */
#primary[tabindex="-1"]:focus {
	outline: 0;
}

/* Alignments
--------------------------------------------- */
.alignleft {
	/*rtl:ignore*/
	float: left;
	/*rtl:ignore*/
	margin-right: 1.5em;
	margin-bottom: 1.5em;
}

.alignright {
	/*rtl:ignore*/
	float: right;
	/*rtl:ignore*/
	margin-left: 1.5em;
	margin-bottom: 1.5em;
}

.aligncenter {
	clear: both;
	display: block;
	margin-left: auto;
	margin-right: auto;
	margin-bottom: 1.5em;
}

/* Text utilities */
.text-center {
	text-align: center;
}

.text-right {
	text-align: right;
}

.text-muted {
	color: var(--ac-text-muted);
}

.text-primary {
	color: var(--ac-primary);
}

.text-accent {
	color: var(--ac-accent);
}

.text-success {
	color: var(--ac-success);
}

.text-warning {
	color: var(--ac-warning);
}

.text-error {
	color: var(--ac-error);
}

/* Spacing utilities */
.mt-0 { margin-top: 0; }
.mt-1 { margin-top: 0.5rem; }
.mt-2 { margin-top: 1rem; }
.mt-3 { margin-top: 1.5rem; }
.mt-4 { margin-top: 2rem; }
.mt-5 { margin-top: 3rem; }

.mb-0 { margin-bottom: 0; }
.mb-1 { margin-bottom: 0.5rem; }
.mb-2 { margin-bottom: 1rem; }
.mb-3 { margin-bottom: 1.5rem; }
.mb-4 { margin-bottom: 2rem; }
.mb-5 { margin-bottom: 3rem; }

/* Theme Mode Toggle (Dark/Light)
--------------------------------------------- */
.theme-mode-toggle {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.4rem;
	background: var(--ac-bg-card);
	border: 1px solid var(--ac-border);
	color: var(--ac-text-light);
	padding: 0.5rem 0.875rem;
	border-radius: 50px;
	cursor: pointer;
	font-size: 0.875rem;
	font-weight: 500;
	transition: var(--ac-transition);
	margin-left: 0.5rem;
	white-space: nowrap;
}

.theme-mode-toggle:hover {
	background: var(--ac-primary-alpha);
	border-color: var(--ac-primary);
	color: var(--ac-primary);
	transform: translateY(-1px);
}

.theme-mode-toggle .theme-mode-icon {
	font-size: 1rem;
	line-height: 1;
}

.theme-mode-toggle .theme-mode-label {
	font-size: 0.8125rem;
	letter-spacing: 0.3px;
}

@media screen and (max-width: 37.5em) {
	.theme-mode-toggle {
		padding: 0.4rem 0.6rem;
		margin-left: 0;
		border-radius: 50px;
	}
	.theme-mode-toggle .theme-mode-label {
		display: none;
	}
}

/*--------------------------------------------------------------
# Light Mode - Comprehensive Component Overrides
--------------------------------------------------------------*/

/* Hero Section */
[data-theme="light"] .hero {
	background: linear-gradient(135deg, var(--ac-bg-darker) 0%, var(--ac-bg-dark) 100%);
}

[data-theme="light"] .hero-has-image .hero-overlay {
	background: var(--ac-hero-overlay-image);
}

[data-theme="light"] .hero-title {
	background: linear-gradient(135deg, var(--ac-primary) 0%, var(--ac-secondary) 100%);
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
	background-clip: text;
}

[data-theme="light"] .hero-has-image .hero-title {
	color: var(--ac-text-heading);
	-webkit-text-fill-color: var(--ac-text-heading);
	background: none;
	text-shadow: 0 1px 8px rgba(0, 0, 0, 0.1);
}

[data-theme="light"] .hero-has-image .hero-subtitle {
	color: var(--ac-text-muted);
	text-shadow: none;
}

/* Cards & Surfaces */
[data-theme="light"] .location-card,
[data-theme="light"] .blog-card,
[data-theme="light"] .category-card,
[data-theme="light"] .feature-card {
	box-shadow: var(--ac-shadow-card);
	border-color: var(--ac-border);
}

[data-theme="light"] .location-card:hover,
[data-theme="light"] .blog-card:hover,
[data-theme="light"] .category-card:hover,
[data-theme="light"] .feature-card:hover {
	box-shadow: var(--ac-shadow-lg);
	border-color: var(--ac-primary);
}

/* Navigation */
[data-theme="light"] .main-navigation ul ul {
	box-shadow: var(--ac-shadow-lg);
	border: 1px solid var(--ac-border);
}

[data-theme="light"] .main-navigation a:hover,
[data-theme="light"] .main-navigation .current-menu-item a {
	background: var(--ac-bg-darker);
}

[data-theme="light"] .main-navigation ul ul a:hover {
	background: var(--ac-bg-darker);
}

/* Footer */
[data-theme="light"] .site-footer {
	background: var(--ac-bg-darker);
	border-top: 1px solid var(--ac-border);
}

/* Inputs & Forms */
[data-theme="light"] input[type="search"],
[data-theme="light"] input[type="text"],
[data-theme="light"] input[type="email"],
[data-theme="light"] input[type="url"],
[data-theme="light"] input[type="password"],
[data-theme="light"] input[type="number"],
[data-theme="light"] input[type="tel"],
[data-theme="light"] textarea,
[data-theme="light"] select {
	background: var(--ac-bg-input);
	border-color: var(--ac-border);
}

[data-theme="light"] input:focus,
[data-theme="light"] textarea:focus,
[data-theme="light"] select:focus {
	border-color: var(--ac-primary);
	box-shadow: var(--ac-focus-ring);
}

/* Widgets */
[data-theme="light"] .widget {
	box-shadow: var(--ac-shadow-card);
}

/* Comments / Reviews */
[data-theme="light"] .comment {
	box-shadow: var(--ac-shadow-card);
}

[data-theme="light"] .review-item {
	box-shadow: var(--ac-shadow-card);
}

/* Search Filters */
[data-theme="light"] .search-filters {
	box-shadow: var(--ac-shadow-card);
}

/* Newsletter & CTA Sections */
[data-theme="light"] .newsletter-section,
[data-theme="light"] .cta-section,
[data-theme="light"] .blog-cta {
	box-shadow: inset 0 1px 0 rgba(0, 0, 0, 0.04);
}

/* Blockquote */
[data-theme="light"] blockquote {
	background: var(--ac-bg-darker);
	border-left-color: var(--ac-primary);
}

/* Code / Pre */
[data-theme="light"] pre {
	background: var(--ac-bg-darker);
	border: 1px solid var(--ac-border);
}

/* Table */
[data-theme="light"] table th {
	background: var(--ac-bg-darker);
}

[data-theme="light"] table th,
[data-theme="light"] table td {
	border-color: var(--ac-border);
}

/* Archive Hero */
[data-theme="light"] .archive-hero .hero-overlay {
	background: var(--ac-hero-overlay-image);
}

[data-theme="light"] .archive-hero-title {
	background: linear-gradient(135deg, var(--ac-text-heading) 0%, var(--ac-text-muted) 100%);
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
	background-clip: text;
}

/* Filter Chips */
[data-theme="light"] .filter-chip {
	background: var(--ac-bg-card);
	border-color: var(--ac-border);
}

[data-theme="light"] .filter-chip:hover {
	background: var(--ac-bg-darker);
	border-color: var(--ac-border-hover);
}

/* District Cards */
[data-theme="light"] .district-card {
	background: var(--ac-bg-card);
	border: 1px solid var(--ac-border);
	color: var(--ac-text-heading);
}

[data-theme="light"] .district-card:hover {
	background: var(--ac-bg-elevated);
	border-color: var(--ac-primary);
}

[data-theme="light"] .district-card--highlight {
	background: linear-gradient(135deg, var(--ac-bg-card) 0%, rgba(194, 24, 91, 0.04) 100%);
}

/* Service Tags */
[data-theme="light"] .service-tag {
	background: var(--ac-bg-darker);
	color: var(--ac-text-muted);
	border: 1px solid var(--ac-border);
}

/* Pagination */
[data-theme="light"] .pagination a,
[data-theme="light"] .pagination span {
	box-shadow: var(--ac-shadow-card);
}

/* Breadcrumbs */
[data-theme="light"] .breadcrumbs {
	background: var(--ac-bg-darker);
	border-bottom: 1px solid var(--ac-border);
}

/* Mobile Bottom Nav */
[data-theme="light"] .mobile-bottom-nav {
	background: var(--ac-bg-card);
	box-shadow: 0 -2px 12px rgba(0, 0, 0, 0.06);
	border-top: 1px solid var(--ac-border);
}

/* Light Mode Text Colors - Comprehensive Override */
[data-theme="light"] h1,
[data-theme="light"] h2,
[data-theme="light"] h3,
[data-theme="light"] h4,
[data-theme="light"] h5,
[data-theme="light"] h6 {
	color: var(--ac-text-heading);
}

[data-theme="light"] .blog-card-title a,
[data-theme="light"] .featured-title a,
[data-theme="light"] .location-title a,
[data-theme="light"] .entry-title,
[data-theme="light"] .archive-title,
[data-theme="light"] .section-title {
	color: var(--ac-text-heading);
}

[data-theme="light"] .blog-card-content,
[data-theme="light"] .featured-content,
[data-theme="light"] .entry-content,
[data-theme="light"] .guide-article .entry-content,
[data-theme="light"] .guide-header {
	color: var(--ac-text-light);
}

[data-theme="light"] .blog-card-title a:hover,
[data-theme="light"] .featured-title a:hover,
[data-theme="light"] .location-title a:hover {
	color: var(--ac-primary);
}

[data-theme="light"] .blog-card-excerpt,
[data-theme="light"] .blog-card-meta,
[data-theme="light"] .featured-meta,
[data-theme="light"] .featured-excerpt,
[data-theme="light"] .archive-description,
[data-theme="light"] .section-subtitle {
	color: var(--ac-text-muted);
}

[data-theme="light"] .guide-header .entry-title {
	color: var(--ac-text-heading);
}

[data-theme="light"] .guide-header .breadcrumb .current,
[data-theme="light"] .breadcrumbs .current,
[data-theme="light"] .breadcrumbs-simple .current {
	color: var(--ac-primary);
}

[data-theme="light"] .category-nav .cat-link {
	color: var(--ac-text-light);
}

[data-theme="light"] .district-card__name {
	color: var(--ac-text-heading);
}

[data-theme="light"] .district-card__count {
	color: var(--ac-text-muted);
}

[data-theme="light"] .hero-badge {
	background: var(--ac-primary-alpha);
	color: var(--ac-primary);
	border-color: rgba(194, 24, 91, 0.15);
}

[data-theme="light"] .hero-stats {
	color: var(--ac-text-muted);
}

[data-theme="light"] .hero-stat strong {
	color: var(--ac-text-heading);
}

[data-theme="light"] .cta-section {
	color: white;
}

[data-theme="light"] .cta-large h2,
[data-theme="light"] .cta-large p {
	color: white;
}

[data-theme="light"] .newsletter-title {
	color: white;
}

/* Guide Article */
[data-theme="light"] .guide-article {
	box-shadow: var(--ac-shadow-card);
}

/* Table of Contents */
[data-theme="light"] .table-of-contents {
	box-shadow: var(--ac-shadow-card);
}

/* Social Sharing */
[data-theme="light"] .social-sharing {
	background: var(--ac-bg-darker);
	border: 1px solid var(--ac-border);
}

/* Author Box */
[data-theme="light"] .author-box {
	background: var(--ac-bg-darker);
	border: 1px solid var(--ac-border);
}

/* FAQ Section */
[data-theme="light"] .faq-item {
	background: var(--ac-bg-card);
	border: 1px solid var(--ac-border);
}

/* Notice Boxes */
[data-theme="light"] .notice-info {
	background: rgba(33, 150, 243, 0.06);
}

[data-theme="light"] .notice-success {
	background: rgba(76, 175, 80, 0.06);
}

[data-theme="light"] .notice-warning {
	background: rgba(255, 152, 0, 0.06);
}

[data-theme="light"] .notice-error {
	background: rgba(244, 67, 54, 0.06);
}

/* Top Locations Box */
[data-theme="light"] .top-locations-box {
	box-shadow: var(--ac-shadow-card);
}

[data-theme="light"] .top-location-link:hover {
	background: var(--ac-bg-darker);
}

/* Location Info */
[data-theme="light"] .location-info {
	box-shadow: var(--ac-shadow-card);
}

/* Category Nav Pills */
[data-theme="light"] .category-nav .cat-link {
	box-shadow: var(--ac-shadow-card);
}

/* Featured Post */
[data-theme="light"] .featured-post {
	background: var(--ac-bg-card);
	border-bottom: 1px solid var(--ac-border);
}

/* Blog Archive */
[data-theme="light"] .blog-archive-header {
	border-bottom-color: var(--ac-border);
}

/* Info Box */
[data-theme="light"] .info-box-inner {
	box-shadow: var(--ac-shadow-card);
}

/* National Link Box */
[data-theme="light"] .national-link-box {
	box-shadow: var(--ac-shadow-card);
}

/* Overall Rating */
[data-theme="light"] .overall-rating {
	box-shadow: var(--ac-shadow-card);
}

/* Map Popup */
[data-theme="light"] .leaflet-popup-content-wrapper {
	box-shadow: var(--ac-shadow-lg);
}

/* View Toggle */
[data-theme="light"] .view-toggle {
	box-shadow: var(--ac-shadow-card);
}

/* Category Count Badge */
[data-theme="light"] .category-count {
	background: var(--ac-bg-darker);
	border: 1px solid var(--ac-border);
}

/* Archive Filter Bar */
[data-theme="light"] .archive-filter-bar {
	box-shadow: var(--ac-shadow-card);
}

/* Blog Sidebar Widgets */
[data-theme="light"] .blog-sidebar .widget {
	box-shadow: var(--ac-shadow-card);
}

/* Location Gallery Section */
[data-theme="light"] .location-gallery-section,
[data-theme="light"] .location-map-section {
	box-shadow: var(--ac-shadow-card);
}

/* Dark Mode Toggle (optional, deprecated - use theme-mode-toggle)
--------------------------------------------- */
.dark-mode-toggle {
	background: none;
	border: 1px solid var(--ac-border);
	color: var(--ac-text-light);
	padding: 0.5rem;
	border-radius: var(--ac-radius);
	cursor: pointer;
	font-size: 1.25rem;
}

.dark-mode-toggle:hover {
	background: var(--ac-bg-card);
}

/* Breadcrumbs
--------------------------------------------- */
.breadcrumbs {
	background: var(--ac-bg-darker);
	padding: 1rem 0;
	font-size: 0.875rem;
	color: var(--ac-text-muted);
}

.breadcrumbs a {
	color: var(--ac-text-muted);
}

.breadcrumbs a:hover {
	color: var(--ac-primary);
}

.breadcrumbs .current {
	color: var(--ac-text-light);
}

.breadcrumbs .separator {
	margin: 0 0.5rem;
}

/* Notice/Alert Boxes
--------------------------------------------- */
.notice {
	padding: 1rem 1.5rem;
	border-radius: var(--ac-radius);
	margin-bottom: 1.5rem;
}

.notice-info {
	background: rgba(33, 150, 243, 0.1);
	border-left: 4px solid #2196f3;
}

.notice-success {
	background: rgba(76, 175, 80, 0.1);
	border-left: 4px solid var(--ac-success);
}

.notice-warning {
	background: rgba(255, 152, 0, 0.1);
	border-left: 4px solid var(--ac-warning);
}

.notice-error {
	background: rgba(244, 67, 54, 0.1);
	border-left: 4px solid var(--ac-error);
}

/* Two Column Layout for Content + Sidebar
--------------------------------------------- */
.content-sidebar-wrap {
	display: grid;
	grid-template-columns: 1fr 350px;
	gap: 3rem;
}

@media (max-width: 992px) {
	.content-sidebar-wrap {
		grid-template-columns: 1fr;
	}
	
	.widget-area {
		order: 2;
	}
}

/* Content Area */
.site-content {
	padding: 3rem 0;
}

/* 404 Page
--------------------------------------------- */
.error-404-page {
	padding: 0;
}

.error-404-hero {
	text-align: center;
	padding: 5rem 0 3rem;
	max-width: 650px;
	margin: 0 auto;
}

.error-404-visual {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	margin-bottom: 2rem;
}

.error-number {
	font-size: 7rem;
	font-weight: 900;
	line-height: 1;
	background: linear-gradient(135deg, var(--ac-primary) 0%, var(--ac-secondary) 100%);
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
	background-clip: text;
	opacity: 0.85;
}

.error-icon {
	font-size: 5rem;
	line-height: 1;
	animation: error-bounce 2s ease-in-out infinite;
}

@keyframes error-bounce {
	0%, 100% { transform: translateY(0); }
	50% { transform: translateY(-12px); }
}

.error-404-title {
	font-size: 2rem;
	font-weight: 700;
	margin-bottom: 1rem;
	color: var(--ac-text-heading);
}

.error-404-text {
	font-size: 1.0625rem;
	color: var(--ac-text-muted);
	line-height: 1.7;
	margin-bottom: 2rem;
}

.error-404-search {
	max-width: 500px;
	margin: 0 auto;
}

.error-404-search .search-form {
	display: flex;
	gap: 0.5rem;
}

.error-404-search input[type="search"] {
	flex: 1;
	border-radius: var(--ac-radius);
}

.error-404-options {
	padding: 3rem 0;
	border-top: 1px solid var(--ac-border);
}

.error-404-options-title {
	text-align: center;
	font-size: 1.25rem;
	font-weight: 600;
	margin-bottom: 2rem;
	color: var(--ac-text-muted);
}

.error-404-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 1.5rem;
}

.error-option-card {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	padding: 2rem 1.5rem;
	background: var(--ac-bg-card);
	border: 1px solid var(--ac-border);
	border-radius: var(--ac-radius);
	text-decoration: none;
	transition: var(--ac-transition);
}

.error-option-card:hover {
	border-color: var(--ac-primary);
	transform: translateY(-4px);
	box-shadow: var(--ac-shadow-lg);
}

.error-option-icon {
	font-size: 2.5rem;
	margin-bottom: 0.75rem;
}

.error-option-title {
	font-size: 1.125rem;
	font-weight: 600;
	color: var(--ac-text-heading);
	margin-bottom: 0.375rem;
}

.error-option-desc {
	font-size: 0.8125rem;
	color: var(--ac-text-muted);
	line-height: 1.4;
}

.error-404-cta {
	text-align: center;
	padding: 2rem 0 4rem;
}

.error-404-cta .button-large {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	padding: 1rem 2rem;
	font-size: 1.0625rem;
}

@media (max-width: 768px) {
	.error-404-hero {
		padding: 3rem 0 2rem;
	}

	.error-number {
		font-size: 4.5rem;
	}

	.error-icon {
		font-size: 3.5rem;
	}

	.error-404-title {
		font-size: 1.5rem;
	}

	.error-404-grid {
		grid-template-columns: repeat(2, 1fr);
		gap: 1rem;
	}

	.error-option-card {
		padding: 1.25rem 1rem;
	}

	.error-404-search .search-form {
		flex-direction: column;
	}
}

@media (max-width: 480px) {
	.error-404-grid {
		grid-template-columns: 1fr;
	}
}

/* Loading Spinner
--------------------------------------------- */
.spinner {
	display: inline-block;
	width: 40px;
	height: 40px;
	border: 3px solid var(--ac-border);
	border-top-color: var(--ac-primary);
	border-radius: 50%;
	animation: spin 1s linear infinite;
}

@keyframes spin {
	to { transform: rotate(360deg); }
}

/* Gallery Section
--------------------------------------------- */
.location-gallery-section {
	margin: 3rem 0;
	padding: 2rem;
	background: var(--ac-bg-card);
	border-radius: var(--ac-radius);
}

.location-gallery-section h3 {
	margin-top: 0;
	margin-bottom: 1.5rem;
	font-size: 1.5rem;
}

.location-gallery {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
	gap: 1rem;
}

.gallery-item {
	display: block;
	border-radius: var(--ac-radius);
	overflow: hidden;
	transition: var(--ac-transition);
	aspect-ratio: 4/3;
}

.gallery-item:hover {
	transform: scale(1.02);
	box-shadow: var(--ac-shadow-lg);
}

.gallery-item img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: var(--ac-transition);
}

.gallery-item:hover img {
	transform: scale(1.05);
}

/* Lightbox Overlay */
.lightbox-overlay {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background: rgba(0, 0, 0, 0.95);
	z-index: 9999;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 2rem;
	opacity: 0;
	visibility: hidden;
	transition: all 0.3s ease;
}

.lightbox-overlay.active {
	opacity: 1;
	visibility: visible;
}

.lightbox-content {
	max-width: 90%;
	max-height: 90%;
}

.lightbox-content img {
	max-width: 100%;
	max-height: 90vh;
	object-fit: contain;
	border-radius: var(--ac-radius);
}

.lightbox-close {
	position: absolute;
	top: 20px;
	right: 40px;
	font-size: 3rem;
	color: white;
	background: none;
	border: none;
	cursor: pointer;
	line-height: 1;
	padding: 0;
	width: 50px;
	height: 50px;
	display: flex;
	align-items: center;
	justify-content: center;
}

.lightbox-nav {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	background: rgba(255, 255, 255, 0.2);
	border: none;
	color: white;
	width: 50px;
	height: 50px;
	border-radius: 50%;
	font-size: 1.5rem;
	cursor: pointer;
	transition: var(--ac-transition);
	display: flex;
	align-items: center;
	justify-content: center;
}

.lightbox-nav:hover {
	background: var(--ac-primary);
}

.lightbox-prev {
	left: 20px;
}

.lightbox-next {
	right: 20px;
}

/* Map Section
--------------------------------------------- */
.location-map-section {
	margin: 3rem 0;
	padding: 2rem;
	background: var(--ac-bg-card);
	border-radius: var(--ac-radius);
}

.location-map-section h3 {
	margin-top: 0;
	margin-bottom: 1.5rem;
	font-size: 1.5rem;
}

.location-map {
	width: 100%;
	height: 400px;
	border-radius: var(--ac-radius);
	overflow: hidden;
	border: 1px solid var(--ac-border);
}

.map-directions {
	margin-top: 1rem;
	text-align: center;
}

.map-directions .button {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
}

/* Leaflet Map Customization */
.leaflet-container {
	font-family: inherit;
}

.leaflet-popup-content-wrapper {
	background: var(--ac-bg-card);
	color: var(--ac-text-light);
	border-radius: var(--ac-radius);
	border: 1px solid var(--ac-border);
}

.leaflet-popup-tip {
	background: var(--ac-bg-card);
}

.leaflet-popup-content {
	margin: 0.5rem 1rem;
}

.leaflet-popup-content h4 {
	margin: 0 0 0.5rem;
	color: var(--ac-primary);
}

.custom-map-marker {
	background: var(--ac-primary);
	border: 3px solid white;
	border-radius: 50%;
	width: 30px;
	height: 30px;
	display: flex;
	align-items: center;
	justify-content: center;
	color: white;
	font-weight: bold;
	box-shadow: var(--ac-shadow);
}

/* Blog / Ratgeber Archive (home.php)
--------------------------------------------- */
.blog-hero {
	background: linear-gradient(135deg, var(--ac-bg-darker) 0%, var(--ac-bg-dark) 100%);
	padding: 4rem 0 3rem;
	margin-bottom: 2rem;
}

.blog-hero .page-title {
	font-size: 2.5rem;
	margin-bottom: 1rem;
}

.blog-hero .page-description {
	font-size: 1.125rem;
	color: var(--ac-text-muted);
	max-width: 700px;
}

.blog-categories {
	margin-top: 2rem;
	padding-top: 1.5rem;
	border-top: 1px solid var(--ac-border);
}

.blog-categories .cat-label {
	font-weight: 600;
	margin-right: 1rem;
}

.blog-categories .cat-links {
	display: inline-flex;
	gap: 0.5rem;
	flex-wrap: wrap;
}

.blog-categories .cat-link {
	display: inline-block;
	padding: 0.4rem 1rem;
	background: var(--ac-bg-card);
	border: 1px solid var(--ac-border);
	border-radius: 20px;
	font-size: 0.875rem;
	transition: var(--ac-transition);
}

.blog-categories .cat-link:hover,
.blog-categories .cat-link.active {
	background: var(--ac-primary);
	border-color: var(--ac-primary);
	color: white;
}

/* Featured Guides Section */
.featured-guides {
	background: var(--ac-bg-card);
	padding: 3rem 0;
	margin-bottom: 3rem;
}

.featured-guides .section-title {
	margin-bottom: 2rem;
}

.featured-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
	gap: 2rem;
}

.blog-main {
	padding: 2rem 0 4rem;
}

/* Blog Sidebar */
.blog-sidebar .widget {
	background: var(--ac-bg-card);
	border-radius: var(--ac-radius);
	padding: 1.5rem;
	margin-bottom: 2rem;
}

.blog-sidebar .widget-title {
	font-size: 1.125rem;
	margin-top: 0;
	margin-bottom: 1rem;
	padding-bottom: 0.75rem;
	border-bottom: 1px solid var(--ac-border);
}

.recent-posts {
	list-style: none;
}

.recent-posts li {
	margin-bottom: 1rem;
}

.recent-posts a {
	display: flex;
	flex-direction: column;
	gap: 0.25rem;
}

.recent-posts img {
	width: 60px;
	height: 60px;
	object-fit: cover;
	border-radius: var(--ac-radius);
	float: left;
	margin-right: 0.75rem;
}

.recent-posts .post-title {
	font-weight: 500;
}

.recent-posts .post-date {
	font-size: 0.75rem;
	color: var(--ac-text-muted);
}

/* Blog CTA Section */
.blog-cta {
	background: linear-gradient(135deg, var(--ac-primary-dark) 0%, var(--ac-secondary) 100%);
	padding: 4rem 0;
}

.blog-cta .cta-box {
	text-align: center;
	max-width: 600px;
	margin: 0 auto;
}

.blog-cta h3 {
	font-size: 1.75rem;
	margin-bottom: 1rem;
}

.blog-cta p {
	margin-bottom: 1.5rem;
	opacity: 0.9;
}

/* Single Guide Post (single-post.php)
--------------------------------------------- */
.single-guide {
	padding: 2rem 0 4rem;
}

.guide-header {
	background: linear-gradient(135deg, var(--ac-bg-darker) 0%, var(--ac-bg-dark) 100%);
	padding: 3rem 0;
	margin-bottom: 3rem;
}

.guide-header .breadcrumb {
	margin-bottom: 1.5rem;
	font-size: 0.875rem;
}

.guide-header .breadcrumb a {
	color: var(--ac-text-muted);
}

.guide-header .breadcrumb a:hover {
	color: var(--ac-primary);
}

.guide-header .entry-categories {
	margin-bottom: 1rem;
}

.guide-header .category-badge {
	display: inline-block;
	background: var(--ac-primary);
	color: white;
	padding: 0.25rem 0.75rem;
	border-radius: 20px;
	font-size: 0.75rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.5px;
}

.guide-header .entry-title {
	font-size: 2.5rem;
	margin-bottom: 1.5rem;
	line-height: 1.2;
}

.guide-meta {
	display: flex;
	gap: 1.5rem;
	flex-wrap: wrap;
	align-items: center;
	margin-bottom: 2rem;
}

.guide-meta .author {
	display: flex;
	align-items: center;
	gap: 0.5rem;
}

.guide-meta .author img {
	border-radius: 50%;
}

.guide-meta .meta-item {
	color: var(--ac-text-muted);
	font-size: 0.875rem;
}

.guide-meta a {
	color: var(--ac-primary);
}

.guide-header .post-thumbnail {
	margin-top: 2rem;
	border-radius: var(--ac-radius);
	overflow: hidden;
}

.guide-header .post-thumbnail img {
	width: 100%;
	height: auto;
}

.guide-header .post-thumbnail figcaption {
	text-align: center;
	padding: 1rem;
	background: var(--ac-bg-card);
	font-size: 0.875rem;
	color: var(--ac-text-muted);
}

/* Table of Contents */
.table-of-contents {
	background: var(--ac-bg-card);
	border-radius: var(--ac-radius);
	padding: 1.5rem;
	margin-bottom: 2rem;
	border-left: 4px solid var(--ac-primary);
}

.table-of-contents h2.toc-heading {
	margin-top: 0;
	margin-bottom: 1rem;
	font-size: 1rem;
}

#toc-list {
	font-size: 0.875rem;
}

/* Guide Article */
.guide-article {
	background: var(--ac-bg-card);
	border-radius: var(--ac-radius);
	padding: 2.5rem;
}

.guide-article .entry-content {
	font-size: 1.0625rem;
	line-height: 1.8;
}

.guide-article .entry-content h2 {
	margin-top: 2.5rem;
	margin-bottom: 1rem;
	font-size: 1.75rem;
}

.guide-article .entry-content h3 {
	margin-top: 2rem;
	margin-bottom: 0.75rem;
	font-size: 1.375rem;
}

.guide-article .entry-tags {
	margin-top: 2rem;
	padding-top: 2rem;
	border-top: 1px solid var(--ac-border);
}

/* Social Sharing */
.social-sharing {
	margin-top: 2rem;
	padding: 1.5rem;
	background: var(--ac-bg-darker);
	border-radius: var(--ac-radius);
}

.social-sharing h2.share-heading {
	margin-bottom: 1rem;
	font-size: 1rem;
}

.share-buttons {
	display: flex;
	gap: 0.75rem;
	flex-wrap: wrap;
}

.share-btn {
	display: inline-block;
	padding: 0.5rem 1rem;
	border-radius: var(--ac-radius);
	font-size: 0.875rem;
	font-weight: 500;
	transition: var(--ac-transition);
}

.share-btn.twitter {
	background: #1DA1F2;
	color: white;
}

.share-btn.facebook {
	background: #4267B2;
	color: white;
}

.share-btn.whatsapp {
	background: #25D366;
	color: white;
}

.share-btn.email {
	background: var(--ac-border);
	color: var(--ac-text-light);
}

.share-btn:hover {
	opacity: 0.8;
}

/* Author Box */
.author-box {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 1.5rem;
	margin-top: 2rem;
	padding: 2rem;
	background: var(--ac-bg-darker);
	border-radius: var(--ac-radius);
}

.author-box .author-avatar img {
	border-radius: 50%;
	width: 100px;
	height: 100px;
}

.author-box h2.author-name {
	margin-top: 0;
	margin-bottom: 0.5rem;
	font-size: 1.1rem;
}

.author-box .author-bio {
	color: var(--ac-text-muted);
	margin-bottom: 1rem;
}

.author-box .author-link {
	color: var(--ac-primary);
	font-weight: 500;
}

/* Post Navigation */
.post-navigation {
	margin-top: 3rem;
	padding-top: 2rem;
	border-top: 1px solid var(--ac-border);
}

.post-navigation .nav-links {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 2rem;
}

.post-navigation .nav-previous {
	text-align: left;
}

.post-navigation .nav-next {
	text-align: right;
}

.post-navigation .nav-label {
	display: block;
	font-size: 0.75rem;
	color: var(--ac-text-muted);
	text-transform: uppercase;
	letter-spacing: 1px;
	margin-bottom: 0.5rem;
}

.post-navigation .nav-title {
	display: block;
	font-weight: 600;
	font-size: 1.125rem;
}

/* Guide Sidebar */
.guide-sidebar .widget-toc {
	position: sticky;
	top: 100px;
}

.guide-sidebar .related-posts img {
	width: 50px;
	height: 50px;
	object-fit: cover;
	border-radius: var(--ac-radius);
	float: left;
	margin-right: 0.75rem;
}

/* Homepage Template (template-homepage.php)
--------------------------------------------- */

/* Hero Enhancements */
.homepage-template .hero {
	min-height: 560px;
	position: relative;
}

.homepage-hero .hero-content {
	max-width: 760px;
	margin: 0 auto;
}

.homepage-hero .hero-title {
	font-size: 3.25rem;
	letter-spacing: -0.02em;
}

.homepage-hero .hero-description {
	font-size: 1.2rem;
	margin-bottom: 2rem;
	color: var(--ac-text-muted);
	line-height: 1.7;
}

.hero-badge {
	display: inline-block;
	background: var(--ac-primary-alpha);
	color: var(--ac-primary-light);
	padding: 0.4rem 1.2rem;
	border-radius: 30px;
	font-size: 0.8rem;
	font-weight: 600;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	margin-bottom: 1.5rem;
	border: 1px solid rgba(233, 30, 99, 0.2);
}

.homepage-hero .hero-search {
	max-width: 540px;
	margin: 0 auto 2rem;
}

.homepage-hero .hero-search .search-field {
	border-radius: 50px 0 0 50px;
	padding-left: 1.5rem;
}

.homepage-hero .hero-search .search-submit {
	border-radius: 0 50px 50px 0;
	gap: 0.4rem;
}

.search-icon {
	font-size: 1rem;
}

.hero-stats {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 0.75rem;
	font-size: 0.9rem;
	color: var(--ac-text-muted);
}

.hero-stat strong {
	color: var(--ac-text-light);
	font-weight: 700;
}

.hero-stat-divider {
	color: var(--ac-border);
	font-size: 0.5rem;
}

.hero-decoration {
	position: absolute;
	width: 400px;
	height: 400px;
	border-radius: 50%;
	filter: blur(120px);
	opacity: 0.15;
	pointer-events: none;
}

.hero-decoration--left {
	bottom: -100px;
	left: -100px;
	background: var(--ac-primary);
}

.hero-decoration--right {
	top: -100px;
	right: -100px;
	background: var(--ac-secondary);
}

/* Sections */
.section {
	padding: 5rem 0;
}

.section-title {
	text-align: center;
	font-size: 2rem;
	margin-bottom: 0.75rem;
	letter-spacing: -0.01em;
}

.section-subtitle {
	text-align: center;
	color: var(--ac-text-muted);
	font-size: 1.05rem;
	margin-bottom: 2.5rem;
	max-width: 500px;
	margin-left: auto;
	margin-right: auto;
	line-height: 1.6;
}

.section-title + .category-grid,
.section-title + .categories-grid,
.section-title + .locations-grid,
.section-title + .blog-grid,
.section-title + .districts-grid {
	margin-top: 2.5rem;
}

.section-footer {
	text-align: center;
	margin-top: 3rem;
}

/* Front Page Content (no sidebar) */
.content-area--full {
	max-width: 100%;
}

.front-page .content-sidebar-wrap,
.home.page .content-area--full {
	display: block;
}

.front-page .site-main > .container:empty,
.content-area--full:empty {
	display: none;
}

/* Categories Section */
.categories-section {
	background: var(--ac-bg-dark);
}

.blog-section {
	background: var(--ac-bg-dark);
}

.category-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
	gap: 1.5rem;
}

.category-card {
	background: var(--ac-bg-card);
	border-radius: var(--ac-radius);
	padding: 2rem 1.75rem;
	text-align: center;
	transition: var(--ac-transition);
	border: 1px solid var(--ac-border);
	position: relative;
	overflow: hidden;
}

.category-card::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 3px;
	background: linear-gradient(90deg, var(--ac-primary), var(--ac-secondary));
	opacity: 0;
	transition: var(--ac-transition);
}

.category-card:hover {
	transform: translateY(-6px);
	border-color: var(--ac-primary);
	box-shadow: 0 12px 40px rgba(233, 30, 99, 0.15);
}

.category-card:hover::before {
	opacity: 1;
}

.category-icon {
	font-size: 2.75rem;
	display: block;
	margin-bottom: 1rem;
}

.category-card h3 {
	margin-bottom: 0.5rem;
	font-size: 1.15rem;
}

.category-card p {
	color: var(--ac-text-muted);
	font-size: 0.85rem;
	margin-bottom: 1rem;
	line-height: 1.5;
}

.category-count {
	display: inline-block;
	background: var(--ac-primary-alpha);
	color: var(--ac-primary-light);
	padding: 0.3rem 0.85rem;
	border-radius: 20px;
	font-size: 0.75rem;
	font-weight: 600;
}

.category-arrow {
	display: block;
	margin-top: 1rem;
	font-size: 1.25rem;
	color: var(--ac-text-muted);
	transition: var(--ac-transition);
}

.category-card:hover .category-arrow {
	color: var(--ac-primary);
	transform: translateX(4px);
}

/* Featured Locations */
.featured-locations {
	background: var(--ac-bg-darker);
}

.featured-locations .locations-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
	gap: 2rem;
}

/* Latest Guides */
.latest-guides {
	background: var(--ac-bg-dark);
}

/* Districts Grid (replaces cloud) */
.districts-section {
	background: var(--ac-bg-card);
}

.districts-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: 1rem;
}

.district-card {
	display: flex;
	align-items: center;
	gap: 0.85rem;
	padding: 1rem 1.25rem;
	background: var(--ac-bg-darker);
	border-radius: var(--ac-radius);
	border: 1px solid var(--ac-border);
	transition: var(--ac-transition);
	text-decoration: none;
	color: var(--ac-text-light);
}

.district-card:hover {
	border-color: var(--ac-primary);
	background: var(--ac-bg-elevated);
	transform: translateY(-2px);
	box-shadow: 0 8px 24px rgba(0, 0, 0, 0.2);
}

.district-card--highlight {
	border-color: rgba(233, 30, 99, 0.25);
	background: linear-gradient(135deg, var(--ac-bg-darker) 0%, rgba(233, 30, 99, 0.05) 100%);
}

.district-card__icon {
	font-size: 1.35rem;
	flex-shrink: 0;
	opacity: 0.7;
	transition: var(--ac-transition);
}

.district-card:hover .district-card__icon {
	opacity: 1;
}

.district-card__name {
	font-weight: 600;
	font-size: 0.95rem;
	flex-grow: 1;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.district-card__count {
	font-size: 0.75rem;
	color: var(--ac-text-muted);
	white-space: nowrap;
}

.district-card__arrow {
	font-size: 1rem;
	color: var(--ac-text-muted);
	transition: var(--ac-transition);
	flex-shrink: 0;
	opacity: 0;
}

.district-card:hover .district-card__arrow {
	opacity: 1;
	color: var(--ac-primary);
	transform: translateX(3px);
}

/* CTA Section */
.cta-section {
	background: linear-gradient(135deg, var(--ac-primary-dark) 0%, var(--ac-secondary) 100%);
	position: relative;
	overflow: hidden;
}

.cta-section::before {
	content: '';
	position: absolute;
	top: -50%;
	right: -20%;
	width: 500px;
	height: 500px;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.05);
	pointer-events: none;
}

.cta-section::after {
	content: '';
	position: absolute;
	bottom: -30%;
	left: -10%;
	width: 350px;
	height: 350px;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.03);
	pointer-events: none;
}

.cta-badge {
	display: inline-block;
	background: rgba(255, 255, 255, 0.15);
	color: rgba(255, 255, 255, 0.95);
	padding: 0.35rem 1rem;
	border-radius: 30px;
	font-size: 0.8rem;
	font-weight: 600;
	margin-bottom: 1.25rem;
	backdrop-filter: blur(4px);
}

.cta-box.cta-large {
	text-align: center;
	max-width: 700px;
	margin: 0 auto;
	padding: 3rem;
	position: relative;
	z-index: 1;
}

.cta-large h2 {
	font-size: 2.25rem;
	margin-bottom: 1rem;
	color: #fff;
}

.cta-large p {
	font-size: 1.1rem;
	opacity: 0.9;
	margin-bottom: 2rem;
	color: rgba(255, 255, 255, 0.9);
	line-height: 1.7;
}

.cta-buttons {
	display: flex;
	gap: 1rem;
	justify-content: center;
	flex-wrap: wrap;
}

.button-large {
	padding: 1rem 2rem;
	font-size: 1.05rem;
}

.button-outline {
	background: transparent;
	border: 2px solid rgba(255, 255, 255, 0.4);
	color: #fff;
}

.button-outline:hover {
	background: rgba(255, 255, 255, 0.1);
	border-color: rgba(255, 255, 255, 0.7);
	color: #fff;
}

/* Homepage Responsive */
@media (max-width: 768px) {
	.homepage-hero .hero-title {
		font-size: 2.25rem;
	}

	.hero-stats {
		flex-direction: column;
		gap: 0.4rem;
	}

	.hero-stat-divider {
		display: none;
	}

	.section {
		padding: 3.5rem 0;
	}

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

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

	.category-card {
		padding: 1.25rem 1rem;
	}

	.category-icon {
		font-size: 2rem;
	}

	.cta-large h2 {
		font-size: 1.75rem;
	}
}

@media (max-width: 480px) {
	.category-grid {
		grid-template-columns: 1fr;
	}

	.hero-badge {
		font-size: 0.7rem;
	}
}

/*--------------------------------------------------------------
# Mobile Optimization & Best Practices
--------------------------------------------------------------*/

/* Mobile Bottom Navigation
--------------------------------------------- */
.mobile-bottom-nav {
	display: none;
	position: fixed;
	bottom: 0;
	left: 0;
	right: 0;
	background: var(--ac-bg-dark);
	border-top: 1px solid var(--ac-border);
	z-index: 1000;
	padding: 0.5rem 0;
	box-shadow: var(--ac-sticky-shadow);
}

.mobile-bottom-nav .bottom-nav-item {
	flex: 1;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	padding: 0.5rem 0.25rem;
	color: var(--ac-text-muted);
	text-decoration: none;
	transition: var(--ac-transition);
	min-height: 44px;
	border-radius: var(--ac-radius);
	margin: 0 0.25rem;
}

.mobile-bottom-nav .bottom-nav-item.active,
.mobile-bottom-nav .bottom-nav-item:hover {
	color: var(--ac-primary);
	background: var(--ac-bg-card);
}

.bottom-nav-icon {
	font-size: 1.5rem;
	margin-bottom: 0.25rem;
}

.bottom-nav-label {
	font-size: 0.625rem;
	font-weight: 500;
	text-transform: uppercase;
	letter-spacing: 0.5px;
}

/* Sticky Header - respektiert Light/Dark Mode
--------------------------------------------- */
.site-header.is-sticky {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	z-index: 999;
	background: var(--ac-sticky-bg);
	backdrop-filter: blur(10px);
	-webkit-backdrop-filter: blur(10px);
	box-shadow: var(--ac-sticky-shadow);
	animation: slideDown 0.3s ease;
}

@keyframes slideDown {
	from {
		transform: translateY(-100%);
	}
	to {
		transform: translateY(0);
	}
}

/* Touch Target Size (44px minimum)
--------------------------------------------- */
button,
input[type="button"],
input[type="submit"],
input[type="reset"],
.nav-menu a,
.mobile-bottom-nav .bottom-nav-item,
.pagination .page-numbers,
.location-card .button,
.faq-question,
.social-sharing a,
.breadcrumbs a,
.footer-widget a,
.category-card,
.location-card,
.blog-card,
.district-card {
	min-height: 44px;
	min-width: 44px;
}

/* Touch-friendly inputs */
input[type="text"],
input[type="email"],
input[type="url"],
input[type="password"],
input[type="search"],
input[type="number"],
input[type="tel"],
input[type="date"],
textarea,
select {
	font-size: 16px; /* Prevents zoom on iOS */
	padding: 12px 16px;
	min-height: 44px;
}

/* Larger touch targets for specific elements */
.nav-menu .sub-menu a {
	padding: 12px 20px;
}

.pagination .page-numbers {
	padding: 12px 18px;
}

/* Mobile Navigation Improvements
--------------------------------------------- */
@media screen and (max-width: 991px) {
	/* Show mobile bottom nav */
	.mobile-bottom-nav {
		display: flex;
		justify-content: space-around;
		align-items: center;
	}
	
	/* Add padding to body for bottom nav */
	body {
		padding-bottom: 70px;
	}
	
	/* Full-screen mobile menu overlay */
	.main-navigation.toggled .nav-menu {
		position: fixed;
		top: 0;
		left: 0;
		right: 0;
		bottom: 0;
		background: var(--ac-bg-dark);
		z-index: 1001;
		padding: 80px 1.5rem 100px;
		overflow-y: auto;
		flex-direction: column;
		justify-content: flex-start;
	}
	
	.main-navigation.toggled .nav-menu li {
		width: 100%;
		border-bottom: 1px solid var(--ac-border);
	}
	
	.main-navigation.toggled .nav-menu a {
		padding: 16px 0;
		font-size: 1.125rem;
		width: 100%;
		display: block;
	}
	
	/* Close button for mobile menu */
	.menu-toggle[aria-expanded="true"] {
		position: fixed;
		top: 20px;
		right: 20px;
		z-index: 1002;
		background: var(--ac-primary);
	}
	
	.menu-toggle[aria-expanded="true"]::before {
		content: "✕";
	}
	
	.menu-toggle[aria-expanded="true"] .screen-reader-text {
		clip: auto;
		clip-path: none;
		height: auto;
		width: auto;
		position: absolute;
		right: 50px;
		top: 50%;
		transform: translateY(-50%);
		color: var(--ac-text-light);
		font-weight: 600;
	}
}

/* Responsive Typography for Mobile
--------------------------------------------- */
@media screen and (max-width: 768px) {
	h1 {
		font-size: 1.75rem;
		line-height: 1.3;
	}
	
	h2 {
		font-size: 1.5rem;
		line-height: 1.35;
	}
	
	h3 {
		font-size: 1.25rem;
		line-height: 1.4;
	}
	
	.hero-title {
		font-size: 1.75rem;
	}
	
	.hero-subtitle {
		font-size: 1rem;
	}
	
	.section-header h2 {
		font-size: 1.5rem;
	}
	
	.section-header p {
		font-size: 0.9375rem;
	}
	
	.location-title {
		font-size: 1.5rem;
	}
	
	.guide-title {
		font-size: 1.75rem;
	}
}

@media screen and (max-width: 480px) {
	h1 {
		font-size: 1.5rem;
	}
	
	h2 {
		font-size: 1.25rem;
	}
	
	.hero-title {
		font-size: 1.375rem;
	}
	
	.hero-subtitle {
		font-size: 0.9375rem;
	}
}

/* Mobile Hero Section Optimization
--------------------------------------------- */
@media screen and (max-width: 768px) {
	.hero {
		min-height: auto;
		padding: 80px 0 60px;
	}
	
	.hero-content {
		padding: 0 1rem;
	}
	
	.hero .hero-search .search-form {
		flex-direction: column;
		gap: 0.5rem;
		border-radius: var(--ac-radius);
	}
	
	.hero .hero-search .search-field {
		border-radius: var(--ac-radius);
	}
	
	.hero .hero-search .search-submit {
		border-radius: var(--ac-radius);
		width: 100%;
	}
	
	.search-form {
		flex-direction: column;
		gap: 0.75rem;
	}
	
	.search-form input[type="search"] {
		width: 100%;
		border-radius: var(--ac-radius);
	}
	
	.search-form button {
		width: 100%;
		border-radius: var(--ac-radius);
		padding: 14px;
	}
	
	.hero-align-left,
	.hero-align-center,
	.hero-align-right {
		text-align: center;
	}
	
	.hero-cta {
		flex-direction: column;
		gap: 0.75rem;
	}
	
	.hero-cta .button {
		width: 100%;
		justify-content: center;
	}
}

/* Mobile Grid & Layout Adjustments
--------------------------------------------- */
@media screen and (max-width: 768px) {
	.container {
		padding: 0 1rem;
	}
	
	.category-grid {
		grid-template-columns: repeat(2, 1fr);
		gap: 1rem;
	}
	
	.locations-grid,
	.blog-grid {
		grid-template-columns: 1fr;
		gap: 1.5rem;
	}
	
	.content-area.with-sidebar {
		grid-template-columns: 1fr;
	}
	
	.sidebar {
		order: 2;
		margin-top: 2rem;
	}
	
	.footer-widgets {
		grid-template-columns: 1fr;
		gap: 2rem;
	}
	
	.features-grid {
		grid-template-columns: 1fr;
	}
	
	.gallery-grid {
		grid-template-columns: repeat(2, 1fr);
		gap: 0.5rem;
	}
	
	.districts-grid {
		grid-template-columns: 1fr;
	}
	
	.cta-box.cta-large {
		padding: 2rem 1rem;
	}
	
	.cta-buttons {
		flex-direction: column;
	}
	
	.cta-buttons .button {
		width: 100%;
		justify-content: center;
	}
}

@media screen and (max-width: 480px) {
	.category-grid {
		grid-template-columns: 1fr;
	}
	
	.gallery-grid {
		grid-template-columns: 1fr;
	}
}

/* Mobile Card Optimizations
--------------------------------------------- */
@media screen and (max-width: 768px) {
	.location-card,
	.blog-card,
	.category-card,
	.feature-box {
		padding: 1rem;
	}
	
	.location-header {
		padding: 1rem;
	}
	
	.location-content {
		padding: 1rem;
	}
	
	.location-meta {
		flex-direction: column;
		gap: 0.5rem;
	}
	
	.location-actions {
		flex-direction: column;
		padding: 1rem;
	}
	
	.location-actions .button {
		width: 100%;
		justify-content: center;
	}
}

/* Mobile Form Optimizations
--------------------------------------------- */
@media screen and (max-width: 768px) {
	.rating-form {
		padding: 1rem;
	}
	
	.comment-form input,
	.comment-form textarea {
		padding: 14px;
	}
	
	.rating-stars {
		font-size: 1.75rem;
	}
}

/* Mobile Blog/Guide Optimizations
--------------------------------------------- */
@media screen and (max-width: 768px) {
	.guide-header {
		padding: 1.5rem;
	}
	
	.guide-content {
		padding: 1.5rem;
	}
	
	.guide-content h2 {
		font-size: 1.375rem;
	}
	
	.guide-content h3 {
		font-size: 1.125rem;
	}
	
	.author-box {
		padding: 1.25rem;
		flex-direction: column;
		text-align: center;
	}
	
	.author-avatar {
		margin-right: 0;
		margin-bottom: 1rem;
	}
	
	.toc-box {
		padding: 1rem;
		position: relative;
		top: 0;
	}
	
	.blog-categories {
		flex-wrap: wrap;
	}
	
	.blog-category-link {
		font-size: 0.875rem;
		padding: 0.5rem 1rem;
	}
	
	.social-sharing {
		justify-content: center;
		flex-wrap: wrap;
	}
}

/* Mobile Map & Gallery Optimizations
--------------------------------------------- */
@media screen and (max-width: 768px) {
	.map-container {
		height: 300px;
	}
	
	#map {
		height: 300px;
	}
	
	.gallery-grid {
		grid-template-columns: repeat(2, 1fr);
	}
	
	.lightbox-content {
		max-width: 95%;
		max-height: 70vh;
	}
	
	.lightbox-nav {
		width: 40px;
		height: 40px;
		font-size: 1.25rem;
	}
	
	.lightbox-close {
		top: 10px;
		right: 10px;
		width: 40px;
		height: 40px;
	}
}

@media screen and (max-width: 480px) {
	.map-container {
		height: 250px;
	}
	
	#map {
		height: 250px;
	}
	
	.gallery-grid {
		grid-template-columns: 1fr;
	}
}

/* Mobile FAQ Optimizations
--------------------------------------------- */
@media screen and (max-width: 768px) {
	.faq-question {
		padding: 1rem;
		font-size: 1rem;
	}
	
	.faq-answer {
		padding: 0 1rem 1rem;
	}
}

/* Mobile Pagination
--------------------------------------------- */
@media screen and (max-width: 768px) {
	.pagination {
		flex-wrap: wrap;
		gap: 0.5rem;
	}
	
	.pagination .page-numbers {
		padding: 10px 14px;
		font-size: 0.875rem;
	}
}

/* Mobile Breadcrumbs
--------------------------------------------- */
@media screen and (max-width: 768px) {
	.breadcrumbs {
		padding: 0.75rem 0;
		font-size: 0.8125rem;
		flex-wrap: wrap;
	}
}

/* Accessibility: Reduced Motion
--------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
	}
	
	.site-header.is-sticky {
		animation: none;
	}
}

/* High Contrast Mode Support
--------------------------------------------- */
@media (prefers-contrast: high) {
	:root {
		--ac-border: #666;
	}
	
	.location-card,
	.blog-card,
	.category-card,
	.feature-box {
		border: 2px solid var(--ac-border);
	}
	
	.button {
		border: 2px solid currentColor;
	}
}

/*--------------------------------------------------------------
# Enhanced Archive Pages
--------------------------------------------------------------*/

/* Archive Hero Section
--------------------------------------------- */
.archive-hero {
	position: relative;
	padding: 100px 0 80px;
	background: linear-gradient(135deg, var(--ac-bg-dark) 0%, var(--ac-bg-darker) 100%);
	overflow: hidden;
}

.archive-hero.hero-has-image {
	background-size: cover;
	background-position: center;
	padding: 140px 0 100px;
}

.archive-hero .hero-overlay {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background: var(--ac-hero-overlay-image);
	z-index: 1;
}

.archive-hero .container {
	position: relative;
	z-index: 2;
}

.archive-hero-content {
	max-width: 800px;
}

.archive-hero .breadcrumbs {
	margin-bottom: 1.5rem;
	font-size: 0.875rem;
}

.archive-hero .breadcrumbs a {
	color: var(--ac-text-muted);
}

.archive-hero .breadcrumbs .current {
	color: var(--ac-primary);
}

.archive-hero-title {
	font-size: 2.5rem;
	font-weight: 800;
	margin-bottom: 1rem;
	background: linear-gradient(135deg, var(--ac-text-heading) 0%, var(--ac-text-muted) 100%);
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
	background-clip: text;
}

.archive-hero-description {
	font-size: 1.125rem;
	color: var(--ac-text-muted);
	margin-bottom: 2rem;
	line-height: 1.7;
}

.archive-hero-stats {
	display: flex;
	gap: 2rem;
	flex-wrap: wrap;
}

.archive-hero-stats .stat-item {
	display: flex;
	align-items: baseline;
	gap: 0.5rem;
}

.archive-hero-stats .stat-number {
	font-size: 1.75rem;
	font-weight: 700;
	color: var(--ac-primary);
}

.archive-hero-stats .stat-label {
	font-size: 0.9375rem;
	color: var(--ac-text-muted);
	text-transform: uppercase;
	letter-spacing: 0.5px;
}

/* Archive Filter Bar
--------------------------------------------- */
.archive-filter-bar {
	background: var(--ac-bg-card);
	border-bottom: 1px solid var(--ac-border);
	padding: 0;
	position: sticky;
	top: 70px;
	z-index: 100;
}

.filter-bar-inner {
	padding: 1rem 0;
}

.filter-toggle {
	display: none;
	align-items: center;
	gap: 0.5rem;
	padding: 0.75rem 1.25rem;
	background: var(--ac-bg-darker);
	border: 1px solid var(--ac-border);
	border-radius: var(--ac-radius);
	color: var(--ac-text-light);
	font-weight: 500;
	cursor: pointer;
	width: 100%;
	justify-content: center;
}

.active-filters {
	display: flex;
	flex-wrap: wrap;
	gap: 1.5rem;
	align-items: flex-start;
}

.filter-group {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}

.filter-label {
	font-size: 0.75rem;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	color: var(--ac-text-muted);
	font-weight: 600;
}

.filter-options {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
}

.filter-chip {
	display: inline-flex;
	align-items: center;
	gap: 0.25rem;
	padding: 0.5rem 1rem;
	background: var(--ac-bg-darker);
	border: 1px solid var(--ac-border);
	border-radius: 30px;
	color: var(--ac-text-muted);
	font-size: 0.875rem;
	font-weight: 500;
	text-decoration: none;
	transition: var(--ac-transition);
	white-space: nowrap;
}

.filter-chip:hover {
	background: var(--ac-border);
	color: var(--ac-text-light);
	border-color: var(--ac-primary);
}

.filter-chip.active {
	background: var(--ac-primary);
	border-color: var(--ac-primary);
	color: white;
}

.filter-count {
	font-size: 0.75rem;
	opacity: 0.7;
}

/* Featured Section
--------------------------------------------- */
.archive-featured-section {
	padding: 60px 0;
	background: linear-gradient(to bottom, var(--ac-bg-darker) 0%, var(--ac-bg-dark) 100%);
}

.archive-featured-section .section-badge {
	display: inline-block;
	padding: 0.375rem 1rem;
	background: linear-gradient(135deg, var(--ac-accent) 0%, var(--ac-primary) 100%);
	color: white;
	font-size: 0.75rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 1px;
	border-radius: 30px;
	margin-bottom: 1rem;
}

.archive-featured-section .section-header {
	text-align: center;
	margin-bottom: 3rem;
}

.archive-featured-section .section-header h2 {
	font-size: 2rem;
	margin-bottom: 0.75rem;
}

.featured-grid {
	grid-template-columns: repeat(3, 1fr);
}

.featured-grid .location-card {
	border: 2px solid var(--ac-primary);
	position: relative;
}

.featured-grid .location-card::before {
	content: "⭐ PREMIUM";
	position: absolute;
	top: 1rem;
	left: 1rem;
	background: linear-gradient(135deg, var(--ac-accent) 0%, var(--ac-primary) 100%);
	color: white;
	font-size: 0.625rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 1px;
	padding: 0.25rem 0.75rem;
	border-radius: 20px;
	z-index: 2;
}

/* Archive Top Ranked Box */
.archive-top-box {
	padding: 40px 0 20px;
	background: var(--ac-bg-dark);
}

.top-box-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 2rem;
}

@media screen and (max-width: 768px) {
	.top-box-grid {
		grid-template-columns: 1fr;
	}
}

/* Archive Main Section
--------------------------------------------- */
.archive-main-section {
	padding: 60px 0 80px;
}

.archive-section-header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: 2rem;
	flex-wrap: wrap;
	gap: 1rem;
}

.archive-section-title {
	font-size: 1.5rem;
	font-weight: 700;
	margin: 0;
}

.view-toggle {
	display: flex;
	gap: 0.5rem;
	background: var(--ac-bg-card);
	padding: 0.375rem;
	border-radius: var(--ac-radius);
	border: 1px solid var(--ac-border);
}

.view-btn {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	background: transparent;
	border: none;
	border-radius: calc(var(--ac-radius) / 2);
	color: var(--ac-text-muted);
	cursor: pointer;
	transition: var(--ac-transition);
}

.view-btn:hover {
	color: var(--ac-text-light);
}

.view-btn.active {
	background: var(--ac-primary);
	color: white;
}

/* List View Styles */
.locations-grid.view-list {
	display: flex;
	flex-direction: column;
	gap: 1rem;
}

.locations-grid.view-list .location-card {
	display: grid;
	grid-template-columns: 200px 1fr;
	gap: 1.5rem;
	align-items: stretch;
}

.locations-grid.view-list .location-image {
	aspect-ratio: auto;
	height: 100%;
	min-height: 150px;
}

.locations-grid.view-list .location-content {
	display: flex;
	flex-direction: column;
	justify-content: center;
}

/* No Results Box */
.no-results-box {
	text-align: center;
	padding: 4rem 2rem;
	background: var(--ac-bg-card);
	border-radius: var(--ac-radius);
	border: 1px dashed var(--ac-border);
	grid-column: 1 / -1;
}

.no-results-icon {
	font-size: 4rem;
	margin-bottom: 1rem;
}

.no-results-box h3 {
	font-size: 1.5rem;
	margin-bottom: 0.75rem;
}

.no-results-box p {
	color: var(--ac-text-muted);
	margin-bottom: 1.5rem;
	max-width: 400px;
	margin-left: auto;
	margin-right: auto;
}

/* Archive CTA Section
--------------------------------------------- */
.archive-cta-section {
	padding: 60px 0 80px;
	background: var(--ac-bg-darker);
}

/* Mobile Archive Optimizations
--------------------------------------------- */
@media screen and (max-width: 991px) {
	.archive-hero {
		padding: 80px 0 60px;
	}
	
	.archive-hero.hero-has-image {
		padding: 100px 0 80px;
	}
	
	.archive-hero-title {
		font-size: 2rem;
	}
	
	.archive-filter-bar {
		position: relative;
		top: 0;
	}
	
	.filter-toggle {
		display: flex;
	}
	
	.active-filters {
		display: none;
		padding-top: 1rem;
		border-top: 1px solid var(--ac-border);
		margin-top: 1rem;
	}
	
	.active-filters.active {
		display: flex;
	}
	
	.filter-group {
		width: 100%;
	}
	
	.filter-options {
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
		padding-bottom: 0.5rem;
		flex-wrap: nowrap;
	}
	
	.featured-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media screen and (max-width: 768px) {
	.archive-hero-title {
		font-size: 1.5rem;
	}
	
	.archive-hero-description {
		font-size: 1rem;
	}
	
	.archive-hero-stats {
		gap: 1rem;
	}
	
	.archive-hero-stats .stat-number {
		font-size: 1.375rem;
	}
	
	.archive-hero-stats .stat-label {
		font-size: 0.75rem;
	}
	
	.featured-grid {
		grid-template-columns: 1fr;
	}
	
	.archive-section-header {
		flex-direction: column;
		align-items: flex-start;
	}
	
	.locations-grid.view-list .location-card {
		grid-template-columns: 1fr;
	}
	
	.locations-grid.view-list .location-image {
		aspect-ratio: 16/9;
		height: auto;
	}
}

/* Print Styles
--------------------------------------------- */
@media print {
	.site-header,
	.site-footer,
	.mobile-bottom-nav,
	.hero,
	.widget-area,
	.comments-area,
	.pagination,
	.search-filters,
	.social-sharing,
	.post-navigation,
	.cta-section,
	.blog-cta,
	.blog-categories,
	.districts-section {
		display: none !important;
	}
	
	body {
		background: white;
		color: black;
		padding-bottom: 0;
	}
	
	.location-card,
	.blog-card {
		break-inside: avoid;
		border: 1px solid #ccc;
	}
	
	.guide-article {
		background: white;
		color: black;
	}
}

/*--------------------------------------------------------------
# Bewertungen & Ratings
--------------------------------------------------------------*/

/* Star Ratings */
.location-rating {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	margin: 0.5rem 0;
	font-size: 0.875rem;
}

.stars {
	display: flex;
	gap: 0.125rem;
}

.star {
	color: var(--ac-accent);
	font-size: 1rem;
}

.star.full {
	text-shadow: 0 0 5px var(--ac-accent);
}

.star.half {
	position: relative;
	color: var(--ac-accent);
	opacity: 0.7;
}

.star.empty {
	color: var(--ac-border);
}

.rating-value {
	font-weight: 600;
	color: var(--ac-accent);
}

.rating-count {
	color: var(--ac-text-muted);
}

/* Single Location Rating */
.overall-rating {
	background: var(--ac-bg-card);
	border-radius: var(--ac-radius);
	padding: 1.5rem;
	text-align: center;
	margin-bottom: 1.5rem;
}

.rating-big {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.5rem;
}

.rating-big .rating-number {
	font-size: 3rem;
	font-weight: 700;
	color: var(--ac-accent);
	line-height: 1;
}

.rating-big .stars {
	font-size: 1.5rem;
}

.rating-summary {
	color: var(--ac-text-muted);
	margin-top: 0.5rem;
	font-size: 0.875rem;
}

/* Reviews Section */
.location-reviews-section {
	margin-top: 2rem;
	padding-top: 2rem;
	border-top: 1px solid var(--ac-border);
}

.location-reviews-section h3 {
	margin-bottom: 1.5rem;
}

.reviews-list {
	display: flex;
	flex-direction: column;
	gap: 1rem;
}

.review-item {
	background: var(--ac-bg-card);
	border-radius: var(--ac-radius);
	padding: 1rem;
	border-left: 3px solid var(--ac-primary);
}

.review-header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin-bottom: 0.75rem;
}

.review-author {
	font-weight: 600;
	color: var(--ac-text-light);
}

.review-rating {
	color: var(--ac-accent);
	letter-spacing: 1px;
}

.review-date {
	font-size: 0.75rem;
	color: var(--ac-text-muted);
}

.review-text {
	color: var(--ac-text-muted);
	line-height: 1.6;
	margin: 0;
}

/* Video Section */
.location-video-section {
	margin-top: 2rem;
	padding-top: 2rem;
	border-top: 1px solid var(--ac-border);
}

.location-video-section h3 {
	margin-bottom: 1rem;
}

.video-container {
	position: relative;
	padding-bottom: 56.25%; /* 16:9 Aspect Ratio */
	height: 0;
	overflow: hidden;
	border-radius: var(--ac-radius);
	background: var(--ac-bg-card);
}

.video-container iframe {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	border: none;
}

/* Sidebar Social Proof Widgets */
.widget-area .location-rating {
	justify-content: center;
	padding: 1rem;
	background: var(--ac-bg-card);
	border-radius: var(--ac-radius);
	margin-bottom: 1rem;
}

.widget-area .rating-number {
	font-size: 2rem;
	font-weight: 700;
	color: var(--ac-accent);
}

/* Verified Badge Small */
.verified-badge-small {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 18px;
	height: 18px;
	background: var(--ac-success);
	color: white;
	border-radius: 50%;
	font-size: 10px;
	margin-left: 0.5rem;
	cursor: help;
}

/* Review Recommend Badge */
.review-recommend {
	display: inline-flex;
	align-items: center;
	gap: 0.25rem;
	font-size: 0.75rem;
	color: var(--ac-success);
	margin-top: 0.75rem;
	padding: 0.25rem 0.5rem;
	background: rgba(76, 175, 80, 0.1);
	border-radius: 4px;
}

/* Star full/empty in reviews */
.review-rating .star-full {
	color: var(--ac-accent);
}

.review-rating .star-empty {
	color: var(--ac-border);
}


/*--------------------------------------------------------------
# Clean Blog/Ratgeber Archive (v1.7.1 - Weniger ist mehr)
--------------------------------------------------------------*/

.blog-archive-clean {
	background: var(--ac-bg-dark);
}

/* Clean Header */
.blog-archive-header {
	padding: 80px 0 40px;
	text-align: center;
	border-bottom: 1px solid var(--ac-border);
}

.blog-archive-header .archive-title {
	font-size: 2.5rem;
	font-weight: 700;
	margin-bottom: 1rem;
}

.blog-archive-header .archive-description {
	font-size: 1.125rem;
	color: var(--ac-text-muted);
	max-width: 600px;
	margin: 0 auto 2rem;
	line-height: 1.6;
}

/* Category Navigation */
.category-nav {
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin-top: 2rem;
}

.category-nav .cat-link {
	display: inline-block;
	padding: 0.625rem 1.25rem;
	background: var(--ac-bg-card);
	border: 1px solid var(--ac-border);
	border-radius: 30px;
	color: var(--ac-text-muted);
	text-decoration: none;
	font-size: 0.9375rem;
	font-weight: 500;
	transition: var(--ac-transition);
}

.category-nav .cat-link:hover {
	border-color: var(--ac-primary);
	color: var(--ac-text-light);
}

.category-nav .cat-link.active {
	background: var(--ac-primary);
	border-color: var(--ac-primary);
	color: white;
}

/* Featured Post */
.featured-post {
	padding: 60px 0;
	background: var(--ac-bg-card);
}

.featured-article {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 3rem;
	align-items: center;
}

.featured-image {
	border-radius: var(--ac-radius);
	overflow: hidden;
	aspect-ratio: 16/10;
}

.featured-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.5s ease;
}

.featured-article:hover .featured-image img {
	transform: scale(1.02);
}

/* Featured Post - attraktiver Rahmen */
.featured-post {
	position: relative;
}

.featured-article {
	position: relative;
	overflow: hidden;
}

.featured-article::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 4px;
	background: linear-gradient(90deg, var(--ac-primary) 0%, var(--ac-secondary) 100%);
	z-index: 1;
}

.featured-category {
	display: inline-block;
	transition: var(--ac-transition);
}

.featured-article:hover .featured-category {
	background: var(--ac-primary-dark) !important;
	transform: translateY(-1px);
}

.featured-content {
	padding: 1rem 0;
}

.featured-category {
	display: inline-block;
	padding: 0.375rem 1rem;
	background: var(--ac-primary);
	color: white;
	font-size: 0.75rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 1px;
	border-radius: 20px;
	margin-bottom: 1rem;
}

.featured-title {
	font-size: 2rem;
	font-weight: 700;
	margin-bottom: 1rem;
	line-height: 1.3;
}

.featured-title a {
	color: var(--ac-text-light);
	text-decoration: none;
}

.featured-title a:hover {
	color: var(--ac-primary);
}

.featured-meta {
	font-size: 0.875rem;
	color: var(--ac-text-muted);
	margin-bottom: 1rem;
}

.featured-excerpt {
	font-size: 1.0625rem;
	color: var(--ac-text-muted);
	line-height: 1.7;
	margin-bottom: 1.5rem;
}

.read-more {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	color: var(--ac-primary);
	font-weight: 600;
	text-decoration: none;
}

.read-more:hover {
	gap: 0.75rem;
}

/* Blog Grid Section */
.blog-grid-section {
	padding: 60px 0 80px;
}

.blog-grid.clean {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(350px, 1fr));
	gap: 2rem;
}

/* Blog Card Clean Style */
.blog-card {
	background: var(--ac-bg-card);
	border: 1px solid var(--ac-border);
	border-radius: var(--ac-radius);
	overflow: hidden;
	transition: var(--ac-transition);
}

.blog-card:hover {
	border-color: var(--ac-primary);
	transform: translateY(-3px);
}

.blog-card-image {
	aspect-ratio: 16/10;
	overflow: hidden;
}

.blog-card-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.3s ease;
}

.blog-card:hover .blog-card-image img {
	transform: scale(1.05);
}

.blog-card-content {
	padding: 1.5rem;
}

.blog-card-meta {
	font-size: 0.8125rem;
	color: var(--ac-text-muted);
	margin-bottom: 0.75rem;
}

.blog-card-title {
	font-size: 1.25rem;
	font-weight: 600;
	margin-bottom: 0.75rem;
	line-height: 1.4;
}

.blog-card-title a {
	color: var(--ac-text-light);
	text-decoration: none;
}

.blog-card-title a:hover {
	color: var(--ac-primary);
}

.blog-card-excerpt {
	font-size: 0.9375rem;
	color: var(--ac-text-muted);
	line-height: 1.6;
}

/* Blog to Locations Section */
.blog-to-locations {
	padding: 60px 0 80px;
	background: var(--ac-bg-darker);
	text-align: center;
	border-top: 1px solid var(--ac-border);
}

.blog-to-locations h3 {
	font-size: 1.25rem;
	font-weight: 600;
	margin-bottom: 1.5rem;
	color: var(--ac-text-muted);
}

.location-links {
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
	gap: 1rem;
}

.location-links a {
	display: inline-block;
	padding: 0.875rem 1.5rem;
	background: var(--ac-bg-card);
	border: 1px solid var(--ac-border);
	border-radius: var(--ac-radius);
	color: var(--ac-text-light);
	text-decoration: none;
	font-weight: 500;
	transition: var(--ac-transition);
}

.location-links a:hover {
	background: var(--ac-primary);
	border-color: var(--ac-primary);
	color: white;
}

/* Mobile Optimizations */
@media screen and (max-width: 768px) {
	.blog-archive-header {
		padding: 50px 0 30px;
	}
	
	.blog-archive-header .archive-title {
		font-size: 1.75rem;
	}
	
	.category-nav {
		overflow-x: auto;
		flex-wrap: nowrap;
		-webkit-overflow-scrolling: touch;
		padding-bottom: 0.5rem;
		justify-content: flex-start;
	}
	
	.featured-post {
		padding: 40px 0;
	}
	
	.featured-article {
		grid-template-columns: 1fr;
		gap: 1.5rem;
	}
	
	.featured-title {
		font-size: 1.5rem;
	}
	
	.blog-grid.clean {
		grid-template-columns: 1fr;
		gap: 1.5rem;
	}
}

/*--------------------------------------------------------------
# Clean Archive Pages (v1.7.1 - SEO Optimized)
--------------------------------------------------------------*/

/* Archive Filter Chips */
.archive-filters {
	margin-top: 2rem;
	padding-top: 1.5rem;
	border-top: 1px solid var(--ac-border);
}

.filter-label {
	display: block;
	font-size: 0.75rem;
	text-transform: uppercase;
	letter-spacing: 1px;
	color: var(--ac-text-muted);
	margin-bottom: 0.75rem;
	font-weight: 600;
}

.filter-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
}

.filter-chip {
	display: inline-flex;
	align-items: center;
	gap: 0.375rem;
	padding: 0.5rem 0.875rem;
	background: var(--ac-bg-card);
	border: 1px solid var(--ac-border);
	border-radius: 20px;
	color: var(--ac-text-muted);
	font-size: 0.875rem;
	text-decoration: none;
	transition: var(--ac-transition);
}

.filter-chip:hover {
	background: var(--ac-primary);
	border-color: var(--ac-primary);
	color: white;
}

.filter-chip .count {
	font-size: 0.75rem;
	opacity: 0.7;
}

/* Archive Header */
.archive-header-simple {
	padding: 60px 0 30px;
	background: var(--ac-bg-darker);
	border-bottom: 1px solid var(--ac-border);
}

.archive-title {
	font-size: 2rem;
	font-weight: 700;
	margin-bottom: 0.75rem;
	color: var(--ac-text-light);
}

.archive-description {
	font-size: 1.0625rem;
	color: var(--ac-text-muted);
	margin-bottom: 1.5rem;
	max-width: 600px;
	line-height: 1.6;
}

/* SEO Text für Archive-Seiten */
.archive-seo-text {
	font-size: 1.125rem;
	color: var(--ac-text-light);
	max-width: 800px;
	line-height: 1.8;
	margin: 0 auto 1.5rem;
	text-align: center;
}

.archive-seo-text p {
	margin-bottom: 1rem;
}

.archive-seo-text p:last-child {
	margin-bottom: 0;
}

@media screen and (max-width: 768px) {
	.archive-seo-text {
		font-size: 1rem;
		line-height: 1.7;
		padding: 0 1rem;
	}
}

.breadcrumbs-simple {
	font-size: 0.8125rem;
	color: var(--ac-text-muted);
	margin-bottom: 1.5rem;
}

.breadcrumbs-simple a {
	color: var(--ac-text-muted);
	text-decoration: none;
}

.breadcrumbs-simple a:hover {
	color: var(--ac-primary);
}

.breadcrumbs-simple .sep {
	margin: 0 0.5rem;
	opacity: 0.5;
}

.breadcrumbs-simple .current {
	color: var(--ac-primary);
}

/* Archive Grid */
.archive-grid-section {
	padding: 40px 0 60px;
}

.locations-grid.clean-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
	gap: 1.5rem;
}

/* Archive CTA */
.archive-cta-simple {
	padding: 50px 0;
	background: var(--ac-bg-card);
	border-top: 1px solid var(--ac-border);
	border-bottom: 1px solid var(--ac-border);
}

.cta-inner {
	text-align: center;
	max-width: 600px;
	margin: 0 auto;
}

.cta-inner h2 {
	font-size: 1.5rem;
	margin-bottom: 0.75rem;
}

.cta-inner p {
	color: var(--ac-text-muted);
	margin-bottom: 1.5rem;
	line-height: 1.6;
}

/* Archive Related Links */
.archive-related {
	padding: 40px 0 60px;
}

.related-title {
	font-size: 1.125rem;
	margin-bottom: 1.25rem;
	color: var(--ac-text-muted);
	font-weight: 600;
}

.related-links {
	display: flex;
	flex-wrap: wrap;
	gap: 1rem;
}

.related-link {
	display: inline-block;
	padding: 0.75rem 1.25rem;
	background: var(--ac-bg-card);
	border: 1px solid var(--ac-border);
	border-radius: var(--ac-radius);
	color: var(--ac-text-light);
	text-decoration: none;
	font-size: 0.9375rem;
	transition: var(--ac-transition);
}

.related-link:hover {
	background: var(--ac-primary);
	border-color: var(--ac-primary);
	color: white;
}

/* No Results */
.no-results {
	text-align: center;
	padding: 3rem 2rem;
	background: var(--ac-bg-card);
	border-radius: var(--ac-radius);
	border: 1px dashed var(--ac-border);
}

.no-results p {
	color: var(--ac-text-muted);
	margin: 0;
}

/* Top Locations Ranked List
--------------------------------------------------------------*/
.top-locations-box {
	background: var(--ac-bg-card);
	border: 1px solid var(--ac-border);
	border-radius: var(--ac-radius);
	padding: 1.5rem;
	margin-bottom: 2rem;
}

.top-box-title {
	font-size: 1.125rem;
	font-weight: 700;
	margin-bottom: 1.25rem;
	padding-bottom: 0.75rem;
	border-bottom: 2px solid var(--ac-border);
	color: var(--ac-text-light);
}

.top-locations-list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.top-location-item {
	margin-bottom: 1rem;
}

.top-location-item:last-child {
	margin-bottom: 0;
}

.top-location-link {
	display: flex;
	align-items: center;
	gap: 1rem;
	text-decoration: none;
	color: inherit;
	padding: 0.75rem;
	border-radius: calc(var(--ac-radius) / 2);
	transition: var(--ac-transition);
}

.top-location-link:hover {
	background: var(--ac-bg-darker);
}

/* Rank Numbers for non-image mode */
.rank-number {
	width: 32px;
	height: 32px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--ac-bg-darker);
	border-radius: 50%;
	font-weight: 700;
	font-size: 0.875rem;
	color: var(--ac-text-muted);
	flex-shrink: 0;
}

.top-1 .rank-number {
	background: linear-gradient(135deg, #FFD700 0%, #FFA500 100%);
	color: #000;
}

.top-2 .rank-number {
	background: linear-gradient(135deg, #C0C0C0 0%, #A0A0A0 100%);
	color: #000;
}

.top-3 .rank-number {
	background: linear-gradient(135deg, #CD7F32 0%, #B87333 100%);
	color: #fff;
}

/* Thumbnail with rank badge */
.top-location-thumb {
	position: relative;
	width: 60px;
	height: 60px;
	border-radius: calc(var(--ac-radius) / 2);
	overflow: hidden;
	flex-shrink: 0;
}

.top-location-thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.rank-badge {
	position: absolute;
	top: -4px;
	left: -4px;
	width: 24px;
	height: 24px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--ac-primary);
	color: white;
	border-radius: 50%;
	font-size: 0.75rem;
	font-weight: 700;
	border: 2px solid var(--ac-bg-card);
}

.top-1 .rank-badge {
	background: linear-gradient(135deg, #FFD700 0%, #FFA500 100%);
	color: #000;
}

.top-2 .rank-badge {
	background: linear-gradient(135deg, #C0C0C0 0%, #A0A0A0 100%);
	color: #000;
}

.top-3 .rank-badge {
	background: linear-gradient(135deg, #CD7F32 0%, #B87333 100%);
	color: #fff;
}

/* Location Info */
.top-location-info {
	flex: 1;
	min-width: 0;
}

.top-location-name {
	font-size: 1rem;
	font-weight: 600;
	margin: 0 0 0.25rem;
	color: var(--ac-text-light);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.top-location-district {
	font-size: 0.8125rem;
	color: var(--ac-text-muted);
	display: block;
	margin-bottom: 0.25rem;
}

.top-location-rating {
	display: flex;
	align-items: center;
	gap: 0.375rem;
	font-size: 0.8125rem;
}

.top-location-rating .stars {
	color: var(--ac-accent);
	letter-spacing: -1px;
}

.top-location-rating .rating-value {
	color: var(--ac-text-muted);
}

.top-location-price {
	font-size: 0.8125rem;
	color: var(--ac-success);
	font-weight: 500;
}

.top-location-badge {
	font-size: 0.6875rem;
	color: var(--ac-accent);
	font-weight: 600;
}

/* Link to all */
.top-box-link {
	display: block;
	text-align: center;
	margin-top: 1rem;
	padding-top: 1rem;
	border-top: 1px solid var(--ac-border);
	color: var(--ac-primary);
	font-weight: 600;
	text-decoration: none;
	font-size: 0.9375rem;
}

.top-box-link:hover {
	color: var(--ac-accent);
}

/* Archive National Link (Deutschland Huren) */
.archive-national-link {
	padding: 30px 0 0;
	background: var(--ac-bg-dark);
}

.national-link-box {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 2rem;
	background: linear-gradient(135deg, var(--ac-bg-card) 0%, var(--ac-bg-darker) 100%);
	border: 1px solid var(--ac-border);
	border-left: 4px solid var(--ac-primary);
	border-radius: var(--ac-radius);
	padding: 1.5rem 2rem;
}

.national-link-content h3 {
	font-size: 1.125rem;
	font-weight: 600;
	margin-bottom: 0.5rem;
	color: var(--ac-text-light);
}

.national-link-content p {
	font-size: 0.9375rem;
	color: var(--ac-text-muted);
	margin: 0;
	line-height: 1.5;
}

.national-link-box .button-secondary {
	white-space: nowrap;
	flex-shrink: 0;
	background: transparent;
	border: 2px solid var(--ac-primary);
	color: var(--ac-primary);
}

.national-link-box .button-secondary:hover {
	background: var(--ac-primary);
	color: white;
}

/* Archive Info Box (CTA) - Compact at bottom */
.archive-info-box {
	padding: 30px 0 60px;
	background: var(--ac-bg-dark);
}

.info-box-inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 2rem;
	background: var(--ac-bg-card);
	border: 1px solid var(--ac-border);
	border-radius: var(--ac-radius);
	padding: 1.5rem 2rem;
}

.info-box-content h3 {
	font-size: 1.125rem;
	font-weight: 600;
	margin-bottom: 0.25rem;
	color: var(--ac-text-light);
}

.info-box-content p {
	font-size: 0.9375rem;
	color: var(--ac-text-muted);
	margin: 0;
	line-height: 1.5;
}

.info-box-inner .button {
	white-space: nowrap;
	flex-shrink: 0;
}

/* Mobile Optimizations for Archive */
@media screen and (max-width: 768px) {
	.archive-header-simple {
		padding: 40px 0 25px;
	}
	
	.archive-title {
		font-size: 1.5rem;
	}
	
	.archive-description {
		font-size: 1rem;
	}
	
	.filter-chips {
		overflow-x: auto;
		flex-wrap: nowrap;
		-webkit-overflow-scrolling: touch;
		padding-bottom: 0.5rem;
	}
	
	.filter-chip {
		white-space: nowrap;
	}
	
	.locations-grid.clean-grid {
		grid-template-columns: 1fr;
		gap: 1rem;
	}
	
	.related-links {
		flex-direction: column;
	}
	
	.related-link {
		text-align: center;
	}
	
	/* Mobile Info Box */
	.archive-info-box {
		padding: 20px 0 40px;
	}
	
	.info-box-inner {
		flex-direction: column;
		text-align: center;
		gap: 1rem;
		padding: 1.25rem;
	}
	
	.info-box-content h3 {
		font-size: 1rem;
	}
	
	.info-box-content p {
		font-size: 0.875rem;
	}
	
	.info-box-inner .button {
		width: 100%;
	}
}
