/*
Theme Name: lichtentanne
Theme URI: https://wordpress.org/themes/lichtentanne/
Author: the WordPress team
Author URI: https://wordpress.org
Description: lichtentanne emphasizes simplicity and adaptability. It offers flexible design options, supported by a variety of patterns for different page types, such as services and landing pages, making it ideal for building personal blogs, professional portfolios, online magazines, or business websites. Its templates cater to various blog styles, from text-focused to image-heavy layouts. Additionally, it supports international typography and diverse color palettes, ensuring accessibility and customization for users worldwide.
Requires at least: 6.7
Tested up to: 6.8
Requires PHP: 7.2
Version: 1.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: lichtentanne
Tags: one-column, custom-colors, custom-menu, custom-logo, editor-style, featured-images, full-site-editing, block-patterns, rtl-language-support, sticky-post, threaded-comments, translation-ready, wide-blocks, block-styles, style-variations, accessibility-ready, blog, portfolio, news
*/

/*
 * Link styles
 * https://github.com/WordPress/gutenberg/issues/42319
 */
/* Base Typography - Modern and Clean */
body, p, div, li, td, th {
}

body {
	background-color: var(--background-light);
	font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;
	margin: 0;
	padding: 0;
}

* {
	box-sizing: border-box;
}

/* Color Variables - Alle Farben als Variablen definiert */
:root {
	/* Brand Colors */
	--brand: #00a751;
	--brand-dark: #008a43;
	--brand-light: #00c45f;
	--accent: #78faae;
	--accent-dark: #5fe89a;

	/* Neutral Colors */
	--light-gray: #f8f9fa;
	--medium-gray: #e8e8e8;
	--border-gray: #e1e5e9;
	--text-dark: #2c3e50;
	--text-gray: #5a5a5a;
	--text-light-gray: #6c757d;
	--background-light: #f5f5f5;
	--white: #ffffff;

	/* Effects */
	--hero-overlay: rgba(0, 167, 81, 0.85);
	--card-shadow: rgba(0, 0, 0, 0.1);
	--card-shadow-hover: rgba(0, 0, 0, 0.15);
	--header-shadow: rgba(0, 0, 0, 0.08);

	/* Legacy aliases for backwards compatibility */
	--primary: var(--brand);
	--primary-dark: var(--brand-dark);
	--primary-light: var(--brand-light);
	--secondary: var(--accent);
	--secondary-hover: var(--accent-dark);
	--primary-blue: var(--brand);
	--dark-blue: var(--brand-dark);
	--light-blue: var(--brand-light);
	--orange: var(--accent);
	--orange-hover: var(--accent-dark);
}

a {
	text-decoration-thickness: 1px !important;
	text-underline-offset: .1em;
}

/* Focus styles */
:where(.wp-site-blocks *:focus) {
	outline-width: 2px;
	outline-style: solid;
}

/* Increase the bottom margin on submenus, so that the outline is visible. */
.wp-block-navigation .wp-block-navigation-submenu .wp-block-navigation-item:not(:last-child) {
	margin-bottom: 3px;
}

/* Increase the outline offset on the parent menu items, so that the outline does not touch the text. */
.wp-block-navigation .wp-block-navigation-item .wp-block-navigation-item__content {
	outline-offset: 4px;
}

/* Remove outline offset from the submenus, otherwise the outline is visible outside the submenu container. */
.wp-block-navigation .wp-block-navigation-item ul.wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	outline-offset: 0;
}

/*
 * Progressive enhancement to reduce widows and orphans
 * https://github.com/WordPress/gutenberg/issues/55190
 */
h1, h2, h3, h4, h5, h6, blockquote, caption, figcaption, p {
	text-wrap: pretty;
}

/* Modern Heading Styles */
h1, h2, h3, h4, h5, h6 {
	color: var(--text-dark);
	font-weight: 600;
	line-height: 1.3;
}

h1 {
	font-size: 2.5rem;
	margin-bottom: 1.5rem;
}

h2 {
	font-size: 2rem;
	margin-bottom: 1.25rem;
}

h3 {
	font-size: 1.5rem;
	margin-bottom: 1rem;
}

p {
	color: var(--text-gray);
	margin-bottom: 1rem;
}

/* Blockquote Styles */
blockquote {
	background: var(--light-gray);
	border-left: 4px solid var(--light-blue);
	margin: 1.5rem 0;
	padding: 1rem 1.5rem !important;
	font-style: italic;
	font-size: 1.1rem;
	line-height: 1.6;
	color: var(--text-gray);
	border-radius: 0 4px 4px 0;
	width: 100%;
}

blockquote p {
	margin: 0;
}

blockquote cite {
	display: block;
	margin-top: 0.5rem;
	font-style: normal;
	font-size: 0.9rem;
	color: var(--text-light-gray);
}

/*
 * Change the position of the more block on the front, by making it a block level element.
 * https://github.com/WordPress/gutenberg/issues/65934
*/
.more-link {
	display: block;
}

/* ===== PAGE HERO SECTION ===== */

/* Full-width hero section */
.page-hero {
	width: 100vw;
	margin-left: calc(50% - 50vw);
	position: relative;
	width: 100%;
	height: 50vh;
	overflow: hidden;
}

.page-hero img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.page-hero::after {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background: linear-gradient(to bottom, rgba(0, 0, 0, 0.3), rgba(0, 0, 0, 0.5));
}

.page-hero .hero-content {
	position: absolute;
	bottom: 0;
	left: 0;
	transform: none;
	text-align: left;
	color: var(--white);
	z-index: 2;
	background: var(--hero-overlay);
	padding: 1rem 2rem 2.5rem calc(50% - 600px + 2rem);
	max-width: calc(50% + 600px);
	box-shadow: 0 4px 20px rgba(0,0,0,0.3);
	border-top-right-radius: 16px;
}

.page-hero .hero-content h1 {
	font-size: 2rem;
	font-weight: 700;
	margin: 0 0 0.5rem 0;
	text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.5);
	color: var(--white);
}

.page-hero .hero-content p {
	font-size: 1rem;
	margin: 0;
	text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.5);
	color: var(--white);
}

/* Responsive hero section */
@media (max-width: 768px) {
	.page-hero {
		height: 50vh;
		min-height: 400px;
	}

	.page-hero .hero-content {
		padding: 1.5rem 2rem;
		bottom: 3%;
		left: 50%;
		margin-left: calc(-50vw + 3%);
		max-width: 90%;
	}

	.page-hero .hero-content h1 {
		font-size: 1.5rem;
	}

	.page-hero .hero-content p {
		font-size: 1.2rem;
	}
}

/* ===== MAIN CONTENT LAYOUT ===== */

/* Remove gaps between header and content */
.site {
	margin: 0;
	padding: 0;
}

.site-content {
	margin: 0 auto;
	padding: 0;
	width: 100%;
	max-width: 100%;
	left: 0;
	position: relative;
	z-index: 3;
}

.site-content.page-3d-model {
	margin: 0;
	max-width: 100%;
	width: 100%;
	padding-top: 0;
}

@media (max-width: 900px) {
	.site-content {
		width: 95%;
	}
}

.contentwrap {
	z-index: 3;
	width: 100%;
	max-width: 1200px;
	position: relative;
	margin-left: auto;
	margin-right: auto;
	padding: 1rem 2rem 2rem;
	box-sizing: border-box;
	background-color: #fff;
	margin-top: -2rem;
	border-top-right-radius: 16px;
}

.site-content.page-3d-model .contentwrap {
	margin: 0;
	max-width: 100%;
}

.page-content {
	width: 100%;
	max-width: 1200px;
	margin: 0 auto;
}
.contentwrap .page-content > * {
	position: relative;
	margin: 0 auto 0 0;
	width: 100%;
	left: 0 !important;
	padding: 15px 0;
}

.contentwrap .page-content ul {
	list-style: disc !important;
	margin-left: 2rem !important;
	padding-left: 0 !important;
	margin-bottom: 1.5rem;
}

.contentwrap .page-content ul li {
	margin-bottom: 0.5rem;
	line-height: 1.6;
}

.contentwrap .page-content > h1 {
	margin-bottom: 20px;
}

.contentwrap figure {/* Allow full-width images to break out of container */
	width: 100% !important;
	max-width: 1100px !important;
	margin: 70px 0 70px 0 !important;
	padding: 0  !important;
	float: right !important;
}

@media (max-width: 900px) {
	.contentwrap figure {
		width: 94vw !important;
		margin-left: calc(-47vw + 50%) !important;
		margin-right: calc(-47vw + 50%) !important;
	}
}



/* Remove spacing from empty paragraphs and elements */
p:empty {
	margin: 0 !important;
	padding: 0 !important;
	display: none;
}



/* Image alignment for text wrapping */
.wp-block-image.alignright {
	float: right;
	margin: 0 -100px 1rem 1.5rem;
	width: 50vw;
	max-width: 50vw;
}

.wp-block-image.alignleft {
	float: left;
	margin: 0 1.5rem 1rem 0;
	max-width: 50%;
}

.wp-block-image.aligncenter {
	display: block;
	margin: 1.5rem auto;
	text-align: center;
}

/* Ensure images are responsive within their containers */
.wp-block-image.alignright img,
.wp-block-image.alignleft img,
.wp-block-image.aligncenter img {
	max-width: 100%;
	height: auto;
}

/* Clear floats after content */
.main-content::after {
	content: "";
	display: table;
	clear: both;
}

.wp-block-image.alignfull img,
.alignfull img {
	width: 100%;
	max-width: 1100px;
	height: auto;
}



/* ===== lichtentanne HEADER STYLES ===== */

/* Site Header */
.site-header {
	background: var(--white);
	position: sticky;
	top: 0;
	z-index: 100;
	margin-bottom: 0;
	box-shadow: 0 2px 10px var(--header-shadow);
}

.site-header * {
	line-height: 1;
}

/* Header Container */
.header {
	width: 100%;
	max-width: 1200px;
	margin: 0 auto;
	padding: 1.2rem 2rem;
	display: flex;
	align-items: center;
	min-height: 80px;
	transition: all 0.6s cubic-bezier(0.4, 0, 0.2, 1);
	gap: 30px;
}

.header > .logo {
	flex-shrink: 0;
}

.header > .header-right {
	margin-left: auto;
}

.site-header.shrink .header {
	height: 50px;
}

.site-header.shrink .header .logo img {
	width: 100px;
}

.site-header.shrink a.title,
.site-header.shrink a.title * {
	font-size: 1.4rem;
	transition: all 0.6s cubic-bezier(0.4, 0, 0.2, 1);
}

@media (max-width: 900px) {
	.header {
		padding: 1rem 20px;
	}
}

/* Title/Logo Section */
.header .title {
	font-family: 'DejaVu Sans', system-ui, -apple-system, sans-serif;
	font-size: 1.5rem;
	font-weight: 400;
	letter-spacing: -0.025em;
}

a.title, a.title * {
	text-decoration: none;
	font-size: 2rem;
	transition: all 0.6s cubic-bezier(0.4, 0, 0.2, 1);
}

@media (max-width: 900px) {
	a.title, a.title * {
		font-size: 1.2rem;
		transition: all 0.6s cubic-bezier(0.4, 0, 0.2, 1);
	}

	.site-header.shrink a.title,
	.site-header.shrink a.title * {
		font-size: 1rem;
		transition: all 0.6s cubic-bezier(0.4, 0, 0.2, 1);
	}

}


.header .title span {
	font-weight: 300;
}

.header .title strong {
	font-weight: bold;
}

/* Header Right Section */
.header-right {
	display: flex;
	align-items: center;
	gap: 2rem;
	flex-wrap: nowrap;
	white-space: nowrap;
}

/* Header Contact Info */
.header-contact {
	display: flex;
	flex-direction: column;
	gap: 0.3rem;
	align-items: flex-start;
}

.header-contact .contact-item {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	color: #3b3b3b;
	text-decoration: none;
	font-size: 0.9rem;
	font-weight: 500;
	transition: color 0.3s ease;
}

.header-contact .contact-item:hover {
	color: var(--brand);
}

.header-contact .contact-item svg {
	color: var(--brand);
	flex-shrink: 0;
}

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

.primary-menu {
	display: flex !important;
	flex-direction: row !important;
	list-style: none;
	margin: 0;
	padding: 0;
	gap: 0;
	align-items: center;
}

.primary-menu li {
	margin: 0;
	list-style: none !important;
	list-style-type: none !important;
	display: inline-block !important;
	padding: 0;
}

.primary-menu a {
	color: #3b3b3b;
	text-decoration: none;
	font-weight: 500;
	font-size: 1rem;
	padding: 0.8rem 2px;
	transition: all 0.3s ease;
	margin-left: 20px;
	display: block;
	position: relative;
}

.primary-menu a:hover,
.primary-menu a:focus {
	color: #3b3b3b;
}

.primary-menu .current-menu-item a,
.primary-menu .current_page_item a {
	color: #3b3b3b;
	border-bottom: 3px solid var(--brand);
}

/* Logo */
.logo {
	display: flex;
	align-items: center;
}

.logo img {
	transition: all 0.6s cubic-bezier(0.4, 0, 0.2, 1);
	width: 150px;
	height: auto;
}


/* ===== FEATURE CARDS SECTION ===== */

.feature-cards {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 2rem;
	max-width: 1200px;
	margin: 1rem auto 4rem;
	padding: 0;
	box-sizing: border-box;
}

.feature-card {
	background: var(--white);
	border-radius: 8px;
	padding: 3rem 2rem;
	text-align: center;
	box-shadow: 0 4px 15px var(--card-shadow);
	transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.feature-card:hover {
	transform: translateY(-5px);
	box-shadow: 0 8px 25px var(--card-shadow-hover);
}

.feature-card .icon {
	width: 80px;
	height: 80px;
	background: #3b3b3b;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	margin: 0 auto 2rem;
}

.feature-card .icon svg,
.feature-card .icon i {
	font-size: 2.5rem;
	color: var(--white);
}

.feature-card h3 {
	font-size: 1.5rem;
	font-weight: 600;
	color: var(--primary-blue);
	margin: 0 0 1rem 0;
}

.feature-card p {
	color: var(--text-gray);
	font-size: 0.95rem;
	line-height: 1.6;
	margin: 0 0 2rem 0;
}

.feature-card .cta-button,
.cta-button {
	display: inline-block;
	background: var(--brand);
	color: var(--white);
	padding: 0.9rem 2.5rem;
	text-decoration: none;
	font-weight: 600;
	font-size: 1rem;
	border-radius: 4px;
	transition: background 0.3s ease, transform 0.2s ease;
	border: none;
	cursor: pointer;
}

.feature-card .cta-button:hover,
.cta-button:hover {
	background: var(--brand-dark);
	transform: translateY(-2px);
}

/* Responsive Feature Cards */
@media (max-width: 768px) {
	.feature-cards {
		grid-template-columns: 1fr;
		gap: 1.5rem;
		margin: 2rem auto;
	}

	.feature-card {
		padding: 2rem 1.5rem;
	}
}

/* ===== lichtentanne FOOTER STYLES ===== */

/* Site Footer */
.site-footer {
	background: var(--light-gray);
	border-top: 1px solid var(--border-gray);
	margin-top: 3rem;
}

/* Footer Container */
.footer {
	width: 100%;
	max-width: 1200px;
	margin: 0 auto;
	padding: 2rem;
	z-index: 20;
}

.footer-content {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 3rem;
	margin-bottom: 2rem;
	padding-bottom: 2rem;
	border-bottom: 1px solid var(--border-gray);
}

.footer-address h3 {
	color: var(--brand);
	font-size: 1.1rem;
	margin: 0 0 1rem 0;
	font-weight: 600;
}

.footer-address p {
	color: var(--text-gray);
	font-size: 0.95rem;
	line-height: 1.6;
	margin: 0 0 1rem 0;
}

.footer-address a {
	color: var(--text-gray);
	text-decoration: none;
	transition: color 0.3s ease;
}

.footer-address a:hover {
	color: var(--brand);
}

.footer-menu {
	display: flex;
	justify-content: flex-end;
}

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

.footer-nav li {
	margin: 0 0 0.5rem 0;
	list-style: none;
}

.footer-nav a {
	color: var(--text-gray);
	text-decoration: none;
	font-size: 0.95rem;
	transition: color 0.3s ease;
}

.footer-nav a:hover {
	color: var(--brand);
}

.footer-copyright {
	text-align: center;
}

.footer-copyright p {
	color: var(--text-light-gray);
	font-size: 0.875rem;
	margin: 0;
	font-weight: 400;
}

/* ===== FEATURED CARS SECTION ===== */

.featured-cars-section {
	max-width: 1200px;
	margin: 4rem auto;
}

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

.featured-cars-section .section-header h2 {
	font-size: 2rem;
	color: var(--text-dark);
	margin: 0 0 0.5rem 0;
}

.featured-cars-section .section-header p {
	color: var(--text-gray);
	font-size: 1.1rem;
	margin: 0;
}

.featured-cars-section .offer_wrapper {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 2rem;
	margin-bottom: 3rem;
}

.view-all-cars {
	text-align: center;
	margin-top: 3rem;
}

/* Responsive Featured Cars */
@media (max-width: 768px) {
	.featured-cars-section .offer_wrapper {
		grid-template-columns: 1fr;
		gap: 1.5rem;
	}
}

@media (min-width: 769px) and (max-width: 1024px) {
	.featured-cars-section .offer_wrapper {
		grid-template-columns: repeat(2, 1fr);
	}
}

/* ===== PAGE CONTENT ===== */

.page-content ul,
.entry-content ul {
	list-style: disc;
	margin-left: 2rem;
	margin-bottom: 1.5rem;
	padding-left: 0;
}

.page-content ul li,
.entry-content ul li {
	margin-bottom: 0.5rem;
	line-height: 1.6;
}

.page-content ol,
.entry-content ol {
	list-style: decimal;
	margin-left: 2rem;
	margin-bottom: 1.5rem;
	padding-left: 0;
}

.page-content ol li,
.entry-content ol li {
	margin-bottom: 0.5rem;
	line-height: 1.6;
}

/* ===== SERVICE FORM ===== */

.page-content .service-form-container,
.entry-content .service-form-container {
	max-width: 600px;
	margin: 2rem 0 !important;
	padding: 2rem !important;
	background: var(--white);
	border-radius: 8px;
	box-shadow: 0 2px 10px var(--card-shadow);
}

.form-success {
	text-align: center;
	padding: 2rem;
}

.form-success h3 {
	color: var(--brand);
	margin-bottom: 1rem;
}

.form-error {
	background: #fee;
	border: 1px solid #fcc;
	padding: 1rem;
	border-radius: 4px;
	margin-bottom: 1.5rem;
	color: #c00;
}

.service-form .form-group {
	margin-bottom: 1.5rem;
}

.service-form label {
	display: block;
	font-weight: 600;
	margin-bottom: 0.5rem;
	color: var(--text-dark);
}

.service-form input[type="text"],
.service-form input[type="email"],
.service-form input[type="tel"],
.service-form input[type="number"],
.service-form textarea {
	width: 100%;
	padding: 0.9rem 1rem;
	border: 2px solid var(--border-gray);
	border-radius: 6px;
	font-size: 1rem;
	font-family: inherit;
	transition: all 0.3s ease;
	appearance: textfield;
	-moz-appearance: textfield;
	background: var(--white);
}

.service-form input[type="text"]:hover,
.service-form input[type="email"]:hover,
.service-form input[type="tel"]:hover,
.service-form input[type="number"]:hover,
.service-form textarea:hover {
	border-color: #ccc;
}

.service-form input[type="text"]:focus,
.service-form input[type="email"]:focus,
.service-form input[type="tel"]:focus,
.service-form input[type="number"]:focus,
.service-form textarea:focus {
	outline: none;
	border-color: var(--brand);
	box-shadow: 0 0 0 3px rgba(0, 167, 81, 0.1);
}

/* Entferne Spinner bei number inputs */
.service-form input[type="number"]::-webkit-outer-spin-button,
.service-form input[type="number"]::-webkit-inner-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

.service-form input[type="file"] {
	width: 100%;
	padding: 0.5rem;
	border: 1px dashed var(--border-gray);
	border-radius: 4px;
	cursor: pointer;
}

.service-form small {
	display: block;
	margin-top: 0.3rem;
	color: var(--text-gray);
	font-size: 0.85rem;
}

.service-form button[type="submit"] {
	width: 100%;
	margin-top: 1rem;
}

/* ===== UTILITY CLASSES ===== */

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

/* Section Spacing */
.section {
	padding: 4rem 0;
}

.section-white {
	background: white;
}

.section-gray {
	background: var(--light-gray);
}

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

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

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

/* Spacing Utilities */
.mt-1 { margin-top: 1rem; }
.mt-2 { margin-top: 2rem; }
.mt-3 { margin-top: 3rem; }
.mb-1 { margin-bottom: 1rem; }
.mb-2 { margin-bottom: 2rem; }
.mb-3 { margin-bottom: 3rem; }
.py-1 { padding-top: 1rem; padding-bottom: 1rem; }
.py-2 { padding-top: 2rem; padding-bottom: 2rem; }
.py-3 { padding-top: 3rem; padding-bottom: 3rem; }

