/*
Theme Name: Stadtgarten
Theme URI: https://wordpress.org/themes/stadtgarten/
Author: the WordPress team
Author URI: https://wordpress.org
Description: Stadtgarten 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: stadtgarten
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 - Smaller Text */
body, p, div, span, li, td, th {
	font-size: 14px;
	line-height: 1.5;
}

body {
	background-image: url(assets/images/bg.jpg);
	background-size: 70%;
	background-position: left 20vh;
	background-repeat: no-repeat;
}

* {
	box-sizing: border-box;
}

@media (max-width: 768px) {
    body {
        font-size: 90%
    }
    h1 {
        font-size: 1.8rem;
        padding-bottom: 10px;
    }

    h2 {
        font-size: 1.5rem;
        padding-bottom: 10px;
    }

}

p {
    hyphens: auto;
    text-align: justify;
    hyphenate-limit-chars: auto 3 4;
   hyphenate-limit-lines: 2;
}

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;
}

/* Blockquote Styles */
blockquote {
	background: #f8f9fa;
	border-left: 4px solid #4299e1;
	margin: 1.5rem 0;
	padding: 1rem 1.5rem !important;
	font-style: italic;
	font-size: 1.1rem;
	line-height: 1.6;
	color: #4a5568;
	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: #718096;
}

/*
 * 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;
}



/* Hamburger Menu Button */

.hamburger {
  --size: 32px;
  --thickness: 2px;
  --gap: 6px;
  --color: #111;

  display: none; /* hide on desktop */
  flex-direction: column;
  justify-content: space-between;
  width: var(--size);
  height: calc(var(--thickness) * 3 + var(--gap) * 2);
  background: none;
  border: none;
  padding: 0;
  cursor: pointer;
}

.hamburger span {
  display: block;
  height: var(--thickness);
  width: 100%;
  background: var(--color);
  border-radius: 999px;
  transition: transform 0.3s ease, opacity 0.3s ease;
}

.hamburger[aria-expanded="true"] span:nth-child(1) {
  transform: translateY(calc(var(--gap) + var(--thickness))) rotate(45deg);
}
.hamburger[aria-expanded="true"] span:nth-child(2) {
  opacity: 0;
}
.hamburger[aria-expanded="true"] span:nth-child(3) {
  transform: translateY(calc(-1 * (var(--gap) + var(--thickness)))) rotate(-45deg);
}

/* Show hamburger on mobile */
@media (max-width: 768px) {
  .hamburger { display: flex; }
  .main-navigation { display: none !important; }
  .main-navigation.active { display: block !important; }
}


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

/* Full-width hero section */
.page-hero {
	width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
	position: relative;
	overflow: hidden;
	height: 60vh;
	min-height: 400px;
	display: flex;
	align-items: center;
	justify-content: center;
	z-index: 1;
}

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

/* Optional hero content overlay */
.page-hero .hero-content {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	text-align: center;
	color: white;
	z-index: 2;
}

.page-hero .hero-content h1 {
	font-size: 3rem;
	font-weight: bold;
	margin-bottom: 1rem;
	text-shadow: 2px 2px 4px rgba(0,0,0,0.7);
}

.page-hero .hero-content p {
	font-size: 1.2rem;
	text-shadow: 1px 1px 2px rgba(0,0,0,0.7);
}

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

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

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

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

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

.site-content {
	margin: -70px auto -70px auto;
	padding: 35px 0 35px 0;
	width: 80vw;
	max-width: 1200px;
	left: 0;
	position: relative;
	z-index: 3;
	background-color: #fff;
	box-shadow: 0 0 10px rgba(0,0,0,0.1);

}

@media (max-width: 768px) {
    .site-content {
        padding-top: 0px;
    }
}

.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: 1000px;
	border: 0px solid red;
	position: relative;
	margin-left: auto;
	margin-right: auto;
	padding: 5px 35px 35px
}

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

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

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

.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;
}



/* ===== STADTGARTEN HEADER STYLES ===== */

/* Site Header */
.site-header {
	background: #ffffff;
	position: sticky;
	top: 0;
	z-index: 1000;
	margin-bottom: 0;
}

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

/* Header Container */
.header {
	width: 100%;
	padding: 1rem 70px;
	display: flex;
	justify-content: space-between;
	align-items: center;
	min-height: 70px;
	box-shadow: 0 0 10px rgba(0,0,0,0.1);
	transition: all 0.6s cubic-bezier(0.4, 0, 0.2, 1);
}

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

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

.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;
}

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

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

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

.primary-menu a {
	color: #4a5568;
	text-decoration: none;
	font-weight: 600;
	font-size: 0.95rem;
	padding: 0.5rem 0;
	transition: color 0.2s ease;
}

.primary-menu a:hover,
.primary-menu a:focus {
	color: #2d3748;
}

.primary-menu .current-menu-item a,
.primary-menu .current_page_item a {
	color: #2d3748;
	border-bottom-color: #4299e1;
}


/* Hide the menu in horizontal layout on small screens */
@media (max-width: 900px) {
  .main-navigation {
    display: none; /* hide by default */
    background: #ffffff;
  }
  .main-navigation.active {
    display: block; /* show when active */
    position: absolute;
    top: 70px;
    right: 20px;
  }

  .main-navigation .primary-menu {
    display: block !important;
    padding: 0;
    margin: 0;
  }

  .main-navigation .primary-menu ul {
      margin: 0;
      padding: 0;
  }

  .main-navigation .primary-menu li {
    width: fit-content;
    display: block !important;
  }

  .main-navigation .primary-menu li a {
    display: block;
    width: 100%;
    padding: 7px 7px 15px 7px;
    text-decoration: none;
  }
}

/* comment form */

/* Wrapper */
#respond {
  max-width: 100%;
  background: #fff;
  color: #333;
  max-width: 600px;
}

/* Titel */
#respond h3#reply-title {
  font-size: 1.4em;
  margin-bottom: 1em;
  color: #2a2a2a;
  border-bottom: 2px solid #f0f0f0;
  padding-bottom: 0.4em;
}

#respond h3#reply-title small a {
  font-size: 0.8em;
  color: #7698c2;
  text-decoration: none;
}
#respond h3#reply-title small a:hover {
  text-decoration: underline;
}

/* Hinweistext */
.comment-notes,
.required-field-message {
  font-size: 0.9em;
  color: #666;
  margin-bottom: 1em;
}

/* Labels */
.comment-form label {
  display: block;
  margin-bottom: 0.4em;
  font-weight: 500;
  color: #444;
}

/* Inputs & Textarea */
.comment-form input[type="text"],
.comment-form input[type="email"],
.comment-form input[type="url"],
.comment-form textarea {
  width: 100%;
  padding: 0.75em 1em;
  margin-bottom: 1.2em;
  font-size: 1em;
  border: 1px solid #ccc;
  border-radius: 6px;
  background: #fafafa;
  transition: all 0.25s ease;
}

.comment-form input:focus,
.comment-form textarea:focus {
  border-color: #7698c2;
  background: #fff;
  outline: none;
  box-shadow: 0 0 0 3px rgba(118,152,194,0.2);
}

/* Checkbox */
.comment-form-cookies-consent {
  font-size: 0.9em;
  color: #555;
  margin-bottom: 1.5em;
}
.comment-form-cookies-consent input {
  margin-right: 0.5em;
}

/* Submit Button */
.comment-form input.submit {
  display: inline-block;
  padding-top: 1rem;
  padding-right: 2.25rem;
  padding-bottom: 1rem;
  padding-left: 2.25rem;
  font-size: 1em;
  font-weight: 600;
  color: #fff;
  background: #7e1e05;
  border: none;
  border-radius: 99999px;
  cursor: pointer;
  transition: background 0.3s ease, transform 0.1s ease;
}

.nocomments {
    display: none;
}

.comment-form input.submit:hover {
  background: #5a7ba1;
}

.comment-form input.submit:active {
  transform: scale(0.97);
}

/* Responsive */
@media (max-width: 480px) {
  #respond {
    padding: 1em;
  }
  .comment-form input.submit {
    width: 100%;
    text-align: center;
  }
}



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

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


/* ===== STADTGARTEN FOOTER STYLES ===== */

/* Site Footer */
.site-footer {
	background: #f8f9fa;
	border-top: 1px solid #e1e5e9;
	margin-top: 3rem;
}

/* Footer Container */
.footer {
	width: 100%;
	margin: 0 auto;
	padding: 2rem;
	text-align: center;
	z-index: 20
}

.footer p {
	color: #6c757d;
	font-size: 0.875rem;
	margin: 0;
	font-weight: 400;
}


