/*
Theme Name: Extendable Child - Quattlender IT Solutions
Theme URI: https://quattlender.com
Description: Child-Theme für Quattlender IT Solutions mit Corporate Identity
Author: Quattlender IT Solutions
Author URI: https://quattlender.com
Template: extendable
Version: 1.1.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: extendable-child
*/

/* ========================================
   SKIP-TO-CONTENT (Accessibility)
   ======================================== */

.qits-skip-link {
	position: absolute;
	top: -100%;
	left: 50%;
	transform: translateX(-50%);
	background: #004f9f;
	color: #fff !important;
	padding: 0.75rem 1.5rem;
	border-radius: 0 0 6px 6px;
	z-index: 100000;
	font-size: 0.9rem;
	font-weight: 500;
	text-decoration: none;
	transition: top 0.2s ease;
	clip-path: inset(50%);
	white-space: nowrap;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

.qits-skip-link:focus {
	position: fixed;
	top: 0;
	clip-path: none;
	width: auto;
	height: auto;
	overflow: visible;
	outline: 3px solid #0bbbef;
	outline-offset: 2px;
}

/* ========================================
   DARK MODE PREVENTION
   ======================================== */

/* Prevent iOS/browser dark mode from overriding colors */
:root {
	color-scheme: light only;
}

/* Force white text on dark background sections */
.has-foreground-background-color,
.has-foreground-background-color h1,
.has-foreground-background-color h2,
.has-foreground-background-color h3,
.has-foreground-background-color h4,
.has-foreground-background-color p,
.has-foreground-background-color .wp-block-heading {
	color: #ffffff !important;
}

/* ========================================
   BASE & TRANSITIONS
   ======================================== */

/* Smooth transitions on interactive elements */
a,
.wp-block-button__link,
.wp-element-button,
.wp-block-navigation a {
	transition: color 0.3s ease, background-color 0.3s ease, border-color 0.3s ease, transform 0.2s ease, box-shadow 0.3s ease;
}

/* ========================================
   HEADER & NAVIGATION
   ======================================== */

/* Subtle bottom border on header for visual separation */
header .wp-block-group.alignfull {
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
	position: relative;
	z-index: 100;
}

/* Nav link styling */
.wp-block-navigation a:hover {
	color: #0bbbef !important;
}

/* Active nav item */
.wp-block-navigation .current-menu-item a {
	color: #004f9f !important;
}

/* ========================================
   BUTTONS
   ======================================== */

.wp-block-button__link,
.wp-element-button {
	box-shadow: 0 2px 8px rgba(0, 79, 159, 0.25);
	letter-spacing: 0.01em;
}

.wp-block-button__link:hover,
.wp-element-button:hover {
	background-color: #0bbbef !important;
	color: #ffffff !important;
	transform: translateY(-2px);
	box-shadow: 0 6px 20px rgba(11, 187, 239, 0.35);
}

.wp-block-button__link:active,
.wp-element-button:active {
	transform: translateY(0);
	box-shadow: 0 2px 6px rgba(0, 79, 159, 0.2);
}

/* ========================================
   HERO SECTION (Startseite)
   ======================================== */

/* Hero visual polish — subtle gradient overlay */
.wp-block-group.alignfull.has-foreground-background-color:first-child {
	background: linear-gradient(170deg, #1c1b1a 0%, #2a2928 60%, #1c1b1a 100%) !important;
}

/* ========================================
   SERVICE CARDS (Homepage 3-column section)
   ======================================== */

/* Cards with border — these are the bordered columns on the homepage */
.wp-block-column.has-border-color {
	box-shadow: 0 2px 12px rgba(0, 0, 0, 0.06);
	transition: transform 0.3s ease, box-shadow 0.3s ease;
	border-top: 3px solid #004f9f !important;
	border-left: none !important;
	border-right: none !important;
	border-bottom: none !important;
}

.wp-block-column.has-border-color:hover {
	transform: translateY(-4px);
	box-shadow: 0 12px 32px rgba(0, 79, 159, 0.12);
}

/* ========================================
   "WARUM Q-ITS" SECTION
   ======================================== */

/* Light background section — the tertiary bg group */
.wp-block-group.has-tertiary-background-color .wp-block-columns .wp-block-column {
	padding: 1.5rem;
	border-radius: 6px;
	transition: background-color 0.3s ease;
}

.wp-block-group.has-tertiary-background-color .wp-block-columns .wp-block-column:hover {
	background-color: rgba(0, 79, 159, 0.04);
}

/* ========================================
   CTA SECTIONS (accent border top)
   ======================================== */

/* CTA section with top accent border */
.wp-block-group.alignfull[style*="border-top-color:#0bbbef"] {
	background: linear-gradient(180deg, #f8fbff 0%, #ffffff 100%) !important;
}

/* ========================================
   DIENSTLEISTUNGEN PAGE
   ======================================== */

/* Service list items on Dienstleistungen page */
.wp-block-group.alignfull .wp-block-columns.alignwide ul li {
	padding: 0.3rem 0;
}

/* Horizontal rule separators */
hr.wp-block-separator {
	opacity: 0.15;
}

/* ========================================
   FAQ PAGE — ACCORDION
   ======================================== */

.wp-block-details {
	padding: 1.25rem 0;
	transition: background-color 0.2s ease;
}

.wp-block-details summary {
	cursor: pointer;
	padding: 0.5rem 0;
	transition: color 0.2s ease;
}

.wp-block-details summary:hover {
	color: #004f9f;
}

.wp-block-details[open] summary {
	color: #004f9f;
}

/* ========================================
   ÜBER MICH — Profile Card
   ======================================== */

/* The portrait/profile card with tertiary bg */
.wp-block-group.has-tertiary-background-color[style*="border-radius"] {
	box-shadow: 0 4px 16px rgba(0, 0, 0, 0.06);
}

/* ========================================
   KONTAKT PAGE
   ======================================== */

/* Contact Form 7 input styling */
.wpcf7 input[type="text"],
.wpcf7 input[type="email"],
.wpcf7 input[type="tel"],
.wpcf7 textarea {
	border: 1px solid #ddd;
	border-radius: 6px;
	padding: 0.85rem 1rem;
	width: 100%;
	font-family: inherit;
	font-size: 1rem;
	transition: border-color 0.3s ease, box-shadow 0.3s ease;
	background: #fff;
}

.wpcf7 input:focus,
.wpcf7 textarea:focus {
	border-color: #004f9f;
	box-shadow: 0 0 0 3px rgba(0, 79, 159, 0.1);
	outline: none;
}

.wpcf7 textarea {
	min-height: 140px;
	resize: vertical;
}

.wpcf7 input[type="submit"] {
	background-color: #004f9f;
	color: #fff;
	border: none;
	border-radius: 6px;
	padding: 0.85rem 2rem;
	font-size: 1rem;
	font-family: inherit;
	font-weight: 500;
	cursor: pointer;
	box-shadow: 0 2px 8px rgba(0, 79, 159, 0.25);
	transition: all 0.3s ease;
}

.wpcf7 input[type="submit"]:hover {
	background-color: #0bbbef;
	transform: translateY(-2px);
	box-shadow: 0 6px 20px rgba(11, 187, 239, 0.35);
}

/* Acceptance field validation */
.wpcf7-acceptance .wpcf7-not-valid-tip {
	display: block;
	color: #dc3232;
	font-size: 0.85rem;
	margin-top: 0.5rem;
}

.qits-acceptance-hint {
	display: none;
	color: #dc3232;
	font-size: 0.85rem;
	margin-top: 0.5rem;
	padding: 0.5rem 0.75rem;
	background: #fef1f1;
	border-left: 3px solid #dc3232;
	border-radius: 0 4px 4px 0;
}

/* Contact links */
.wp-block-group a[href^="tel:"],
.wp-block-group a[href^="mailto:"] {
	text-decoration: none;
	font-weight: 500;
}

.wp-block-group a[href^="tel:"]:hover,
.wp-block-group a[href^="mailto:"]:hover {
	color: #0bbbef !important;
}

/* ========================================
   FOOTER
   ======================================== */

footer .wp-block-group.alignfull.has-foreground-background-color {
	background: linear-gradient(180deg, #1c1b1a 0%, #141312 100%) !important;
}

footer a {
	color: rgba(255, 255, 255, 0.7) !important;
	text-decoration: none;
	transition: color 0.3s ease;
}

footer a:hover {
	color: #0bbbef !important;
}

/* Footer headings */
footer h3,
footer .wp-block-heading {
	color: rgba(255, 255, 255, 0.5) !important;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	font-size: 0.8rem !important;
}

/* Footer text */
footer p {
	color: rgba(255, 255, 255, 0.6);
}

/* Footer separator */
footer hr {
	border-color: rgba(255, 255, 255, 0.1) !important;
	opacity: 1;
}

/* Copyright text */
footer .has-small-font-size {
	color: rgba(255, 255, 255, 0.4) !important;
}

/* LinkedIn link in footer */
footer .qits-linkedin-link {
	display: inline-flex;
	align-items: center;
	color: rgba(255, 255, 255, 0.7) !important;
	text-decoration: none !important;
	transition: color 0.3s ease;
}

footer .qits-linkedin-link:hover {
	color: #0bbbef !important;
}

footer .qits-linkedin-link svg {
	transition: transform 0.3s ease;
}

footer .qits-linkedin-link:hover svg {
	transform: scale(1.1);
}

/* ========================================
   RESPONSIVE
   ======================================== */

@media (max-width: 781px) {
	/* Stack columns on mobile */
	.wp-block-columns {
		flex-direction: column !important;
	}

	/* Column width reset on mobile */
	.wp-block-column {
		flex-basis: 100% !important;
	}

	/* Reduce hero padding on mobile */
	.wp-block-group.alignfull.has-foreground-background-color:first-child {
		padding-top: var(--wp--preset--spacing--60) !important;
		padding-bottom: var(--wp--preset--spacing--60) !important;
	}

	/* Mobile heading size */
	h1.has-xx-large-font-size {
		font-size: clamp(2rem, 6vw, 3rem) !important;
	}

	/* Smaller H2 on mobile */
	h2.has-x-large-font-size {
		font-size: clamp(1.5rem, 5vw, 2rem) !important;
	}

	/* Service cards full width on mobile */
	.wp-block-column.has-border-color {
		margin-bottom: 1.5rem;
	}

	/* Footer columns stacked */
	footer .wp-block-columns {
		gap: 2rem;
	}
}

@media (max-width: 480px) {
	/* Even smaller hero heading on very small screens */
	h1.has-xx-large-font-size {
		font-size: 1.75rem !important;
	}

	/* Button full width on mobile */
	.wp-block-button__link {
		width: 100%;
		text-align: center;
	}
}

/* ========================================
   COOKIE BANNER
   ======================================== */

#qits-cookie-banner {
	position: fixed;
	bottom: 0;
	left: 0;
	right: 0;
	z-index: 99999;
	background: #1c1b1a;
	border-top: 3px solid #004f9f;
	box-shadow: 0 -4px 24px rgba(0, 0, 0, 0.25);
	padding: 0;
	animation: qitsCookieSlideUp 0.4s ease-out;
}

@keyframes qitsCookieSlideUp {
	from { transform: translateY(100%); opacity: 0; }
	to { transform: translateY(0); opacity: 1; }
}

.qits-cookie-inner {
	max-width: 1200px;
	margin: 0 auto;
	padding: 1.25rem 2rem;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 2rem;
}

.qits-cookie-text {
	color: rgba(255, 255, 255, 0.85);
	font-size: 0.9rem;
	line-height: 1.5;
	margin: 0;
	flex: 1;
}

.qits-cookie-text a {
	color: #0bbbef !important;
	text-decoration: underline;
}

.qits-cookie-text a:hover {
	color: #ffffff !important;
}

.qits-cookie-buttons {
	display: flex;
	gap: 0.75rem;
	flex-shrink: 0;
}

.qits-cookie-btn {
	border: none;
	border-radius: 6px;
	padding: 0.65rem 1.5rem;
	font-size: 0.85rem;
	font-family: inherit;
	font-weight: 500;
	cursor: pointer;
	transition: all 0.3s ease;
	white-space: nowrap;
}

.qits-cookie-btn-primary {
	background: #004f9f;
	color: #ffffff;
	box-shadow: 0 2px 8px rgba(0, 79, 159, 0.3);
}

.qits-cookie-btn-primary:hover {
	background: #0bbbef;
	transform: translateY(-1px);
	box-shadow: 0 4px 12px rgba(11, 187, 239, 0.35);
}

.qits-cookie-btn-secondary {
	background: transparent;
	color: rgba(255, 255, 255, 0.7);
	border: 1px solid rgba(255, 255, 255, 0.25);
}

.qits-cookie-btn-secondary:hover {
	background: rgba(255, 255, 255, 0.1);
	color: #ffffff;
	border-color: rgba(255, 255, 255, 0.5);
}

@media (max-width: 600px) {
	.qits-cookie-inner {
		flex-direction: column;
		padding: 1.25rem 1.25rem;
		gap: 1rem;
		text-align: center;
	}

	.qits-cookie-buttons {
		width: 100%;
		flex-direction: column;
	}

	.qits-cookie-btn {
		width: 100%;
	}
}

/* ========================================
   BACK-TO-TOP BUTTON
   ======================================== */

#qits-back-to-top {
	position: fixed;
	bottom: 2rem;
	right: 2rem;
	z-index: 9999;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background: #004f9f;
	color: #ffffff;
	border: none;
	font-size: 1.25rem;
	line-height: 1;
	cursor: pointer;
	opacity: 0;
	visibility: hidden;
	transform: translateY(10px);
	transition: opacity 0.3s ease, visibility 0.3s ease, transform 0.3s ease, background-color 0.3s ease;
	box-shadow: 0 2px 12px rgba(0, 79, 159, 0.3);
}

#qits-back-to-top.qits-btt-visible {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
}

#qits-back-to-top:hover {
	background: #0bbbef;
	transform: translateY(-2px);
	box-shadow: 0 4px 16px rgba(11, 187, 239, 0.4);
}

/* Move up when cookie banner is visible */
#qits-cookie-banner[style*="block"] ~ #qits-back-to-top {
	bottom: 6rem;
}

@media (max-width: 600px) {
	#qits-back-to-top {
		bottom: 1.25rem;
		right: 1.25rem;
		width: 40px;
		height: 40px;
		font-size: 1.1rem;
	}

	#qits-cookie-banner[style*="block"] ~ #qits-back-to-top {
		bottom: 14rem;
	}
}

/* ========================================
   BREADCRUMBS
   ======================================== */

.qits-breadcrumbs-wrap {
	background: #f5f7fa;
	border-bottom: 1px solid rgba(0, 0, 0, 0.06);
	padding: 0.6rem 2rem;
}

.qits-breadcrumbs {
	max-width: 1200px;
	margin: 0 auto;
	font-size: 0.8rem;
	color: #888;
}

.qits-breadcrumbs a {
	color: #004f9f;
	text-decoration: none;
}

.qits-breadcrumbs a:hover {
	color: #0bbbef;
}

.qits-bc-sep {
	margin: 0 0.4rem;
	color: #ccc;
}

.qits-breadcrumbs [aria-current="page"] {
	color: #1c1b1a;
}

@media (max-width: 600px) {
	.qits-breadcrumbs-wrap {
		padding: 0.5rem 1.25rem;
	}
}

/* ========================================
   404 PAGE
   ======================================== */

.qits-404-wrap {
	min-height: 60vh;
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: center;
	padding: 4rem 2rem;
}

.qits-404-content {
	max-width: 520px;
}

.qits-404-code {
	font-size: 6rem;
	font-weight: 500;
	color: #004f9f;
	line-height: 1;
	margin: 0 0 0.5rem;
	opacity: 0.2;
}

.qits-404-wrap h1 {
	font-size: 2rem;
	font-weight: 500;
	margin: 0 0 1rem;
	color: #1c1b1a;
}

.qits-404-text {
	color: #666;
	font-size: 1.05rem;
	margin: 0 0 2rem;
	line-height: 1.6;
}

.qits-404-links {
	display: flex;
	gap: 1.5rem;
	justify-content: center;
	align-items: center;
	flex-wrap: wrap;
}

.qits-404-link {
	color: #004f9f;
	text-decoration: none;
	font-weight: 500;
	transition: color 0.3s ease;
}

.qits-404-link:hover {
	color: #0bbbef;
}

/* ========================================
   BLOG — Listing
   ======================================== */

/* Blog Cards */
.qits-blog-listing .qits-blog-card {
	overflow: hidden;
	box-shadow: 0 2px 12px rgba(0, 0, 0, 0.06);
	border-top: 3px solid #004f9f;
	transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.qits-blog-listing .qits-blog-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 8px 30px rgba(0, 0, 0, 0.12);
}

/* Featured Image in Cards */
.qits-blog-listing .wp-block-post-featured-image {
	margin: 0;
	overflow: hidden;
}

.qits-blog-listing .wp-block-post-featured-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	aspect-ratio: 16/9;
	transition: transform 0.4s ease;
}

.qits-blog-card:hover .wp-block-post-featured-image img {
	transform: scale(1.03);
}

/* Post Title in Cards */
.qits-blog-listing .wp-block-post-title a {
	color: #1c1b1a;
	text-decoration: none;
	transition: color 0.3s ease;
}

.qits-blog-listing .wp-block-post-title a:hover {
	color: #004f9f;
}

/* Post Excerpt */
.qits-blog-listing .wp-block-post-excerpt {
	margin-top: 0;
}

.qits-blog-listing .wp-block-post-excerpt__more-text {
	display: inline-block;
	margin-top: 0.5rem;
}

.qits-blog-listing .wp-block-post-excerpt__more-text a {
	color: #004f9f;
	text-decoration: none;
	font-weight: 500;
	font-size: 0.9rem;
	transition: color 0.3s ease;
}

.qits-blog-listing .wp-block-post-excerpt__more-text a:hover {
	color: #0bbbef;
}

/* Post Terms (Category) in Cards */
.qits-blog-listing .wp-block-post-terms a {
	text-decoration: none;
	background: rgba(0, 79, 159, 0.08);
	padding: 0.15rem 0.5rem;
	border-radius: 3px;
	font-size: 0.8rem;
	transition: background 0.3s ease;
}

.qits-blog-listing .wp-block-post-terms a:hover {
	background: rgba(0, 79, 159, 0.15);
}

/* Pagination */
.qits-blog-listing .wp-block-query-pagination {
	gap: 0.5rem;
}

.qits-blog-listing .wp-block-query-pagination-numbers .page-numbers {
	padding: 0.4rem 0.8rem;
	border-radius: 4px;
	text-decoration: none;
	color: #004f9f;
	transition: all 0.3s ease;
}

.qits-blog-listing .wp-block-query-pagination-numbers .page-numbers.current,
.qits-blog-listing .wp-block-query-pagination-numbers .page-numbers:hover {
	background: #004f9f;
	color: #fff;
}

/* Responsive: 1 column on mobile */
@media (max-width: 781px) {
	.qits-blog-listing .wp-block-post-template {
		grid-template-columns: 1fr !important;
	}
}

/* Classic blog fallback */
.blog .hentry,
.archive .hentry {
	margin-bottom: 2.5rem;
	padding-bottom: 2.5rem;
	border-bottom: 1px solid rgba(0, 0, 0, 0.08);
}

.blog .hentry:last-child,
.archive .hentry:last-child {
	border-bottom: none;
}

.blog .entry-title a,
.archive .entry-title a {
	color: #1c1b1a;
	text-decoration: none;
}

.blog .entry-title a:hover,
.archive .entry-title a:hover {
	color: #004f9f;
}

.blog .entry-meta,
.archive .entry-meta {
	font-size: 0.85rem;
	color: #888;
	margin-bottom: 0.75rem;
}

/* ========================================
   BLOG — Single Post
   ======================================== */

/* Featured Image */
.qits-single-featured-image img {
	border-radius: 12px;
	box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
	width: 100%;
	height: auto;
}

/* Post Content */
.qits-single-content {
	font-size: 1.05rem;
	line-height: 1.8;
}

.qits-single-content p {
	margin-bottom: 1.5rem;
}

.qits-single-content h2 {
	margin-top: 2.5rem;
	margin-bottom: 1rem;
	font-size: 1.5rem;
}

.qits-single-content h3 {
	margin-top: 2rem;
	margin-bottom: 0.75rem;
	font-size: 1.25rem;
}

.qits-single-content ul,
.qits-single-content ol {
	margin-bottom: 1.5rem;
	padding-left: 1.5rem;
}

.qits-single-content li {
	margin-bottom: 0.5rem;
}

.qits-single-content blockquote {
	border-left: 4px solid #004f9f;
	padding: 1rem 1.5rem;
	margin: 2rem 0;
	background: #f5f7fa;
	border-radius: 0 8px 8px 0;
	font-style: italic;
	color: #4a4a4a;
}

.qits-single-content img {
	border-radius: 8px;
	margin: 1.5rem 0;
}

/* Lesezeit-Badge */
.qits-reading-time {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	font-size: 0.85rem;
	color: rgba(255, 255, 255, 0.6);
}

/* Post Navigation */
.qits-post-navigation .wp-block-post-navigation-link {
	text-decoration: none;
}

.qits-post-navigation .wp-block-post-navigation-link a {
	color: #004f9f;
	text-decoration: none;
	font-weight: 500;
	transition: color 0.3s ease;
}

.qits-post-navigation .wp-block-post-navigation-link a:hover {
	color: #0bbbef;
}

@media (max-width: 781px) {
	.qits-post-navigation .wp-block-group.alignwide {
		flex-direction: column;
		align-items: center;
		gap: 1rem;
	}
}

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

/* Ensure images are responsive */
img {
	max-width: 100%;
	height: auto;
}

/* Selection color */
::selection {
	background: rgba(0, 79, 159, 0.15);
	color: #1c1b1a;
}

/* Scrollbar styling (webkit) */
::-webkit-scrollbar {
	width: 8px;
}

::-webkit-scrollbar-track {
	background: #f5f7fa;
}

::-webkit-scrollbar-thumb {
	background: #ccc;
	border-radius: 4px;
}

::-webkit-scrollbar-thumb:hover {
	background: #004f9f;
}

/* ========================================
   SOFORTHILFE PHONE BUTTON (Floating)
   ======================================== */

.qits-phone-btn {
	position: fixed;
	bottom: 24px;
	left: 24px;
	z-index: 9998;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 56px;
	height: 56px;
	background: #004f9f;
	color: #fff !important;
	border-radius: 50%;
	box-shadow: 0 4px 12px rgba(0, 79, 159, 0.4);
	text-decoration: none;
	transition: background 0.2s, transform 0.2s, box-shadow 0.2s;
}

.qits-phone-btn:hover {
	background: #003d7a;
	transform: scale(1.08);
	box-shadow: 0 6px 20px rgba(0, 79, 159, 0.5);
}

.qits-phone-btn svg {
	width: 24px;
	height: 24px;
}

@media (min-width: 769px) {
	.qits-phone-btn {
		width: 52px;
		height: 52px;
	}
}

@media (max-width: 480px) {
	.qits-phone-btn {
		bottom: 16px;
		left: 16px;
		width: 50px;
		height: 50px;
	}
}
