/*
Theme Name: Seelen
Theme URI: 
Author: Marcin Lipski
Author E-Mail: marcin@renv.pl
Description: Strona dla Seelenkompass
Version: 1.0.0
Requires at least: 6.0
Requires PHP: 7.4
License: None
Text Domain: seelen
*/

:root {
	/* Seelenkompass Palette */
	--color-dark-purple: #513B63;
	--color-dark-purple-hover: #604675;
	--color-light-sand: #F5EFE6;
	--color-off-white: #FBF9F6;
	--color-white: #FFFFFF;
	--color-accent-gold: #C7A57A;
	--color-text-dark: #2C2A29;
	--color-text-light: #FBF9F6;
	--color-text-muted: #9B8A82;

	/* Typography */
	--font-family-primary: 'Inter', system-ui, -apple-system, sans-serif;
	--font-family-secondary: 'Cormorant Garamond', serif;
	
	/* Spacing & Layout */
	--spacing-xs: 0.5rem;
	--spacing-sm: 1.5rem;
	--spacing-md: 3rem;
	--spacing-lg: 5rem;
	--spacing-xl: 8rem;

	/* Effects */
	--shadow-soft: 0 10px 40px rgba(56, 42, 63, 0.05);
	--transition-smooth: all 0.4s ease;
	--border-radius-none: 0;
}

/* Reset & Base */
*, *::before, *::after { box-sizing: border-box; }
body {
	margin: 0;
	font-family: var(--font-family-primary);
	color: var(--color-text-dark);
	background-color: var(--color-white);
	line-height: 1.6;
	font-size: 15px;
	font-weight: 300;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

h1, h2, h3, h4, h5, h6 {
	font-family: var(--font-family-secondary);
	font-weight: 400;
	margin-top: 0;
	margin-bottom: var(--spacing-sm);
	color: inherit;
	line-height: 1.2;
}

a { color: inherit; text-decoration: none; transition: var(--transition-smooth); }
a:hover { opacity: 0.7; }

/* Utilities */
.text-center { text-align: center; }
.container { max-width: 1400px; margin: 0 auto; padding: 0 var(--spacing-md); }
.container-narrow { max-width: 1000px; margin: 0 auto; padding: 0 var(--spacing-md); }
.text-gold { color: var(--color-accent-gold); }
.text-uppercase { text-transform: uppercase; letter-spacing: 0.1em; font-size: 0.8rem; }
.section-padding { padding: var(--spacing-xl) 0; }

/* Buttons */
:not(li).btn-primary, .btn-primary-item > a, li.btn-primary > a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background-color: var(--color-dark-purple);
	color: var(--color-white);
	padding: 0.8rem 2rem;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	font-size: 0.8rem;
	border: none;
	cursor: pointer;
	transition: var(--transition-smooth);
}
:not(li).btn-primary::after, .btn-primary-item > a::after, li.btn-primary > a::after {
	content: '✦';
	margin-left: 10px;
	font-size: 0.9em;
	color: var(--color-accent-gold);
}
:not(li).btn-primary:hover, .btn-primary-item > a:hover, li.btn-primary > a:hover {
	background-color: var(--color-dark-purple-hover);
	color: var(--color-white);
	opacity: 1;
}
li.btn-primary { padding: 0; margin-left: 1rem; }

.link-arrow {
	display: inline-flex;
	align-items: center;
	text-transform: uppercase;
	font-weight: 500;
	letter-spacing: 0.1em;
	font-size: 0.8rem;
}
.link-arrow::after {
	content: '→';
	margin-left: 8px;
	transition: transform 0.3s ease;
}
.link-arrow:hover::after {
	transform: translateX(5px);
}

/* Header */
.site-header {
	position: absolute;
	top: 0; left: 0; right: 0;
	z-index: 100;
	background: transparent;
	padding: var(--spacing-sm) 0;
}
.site-header .container {
	display: flex;
	justify-content: space-between;
	align-items: center;
}
.site-branding {
	display: flex;
	align-items: center;
	gap: 8px;
}
.site-title a {
	color: inherit;
	text-decoration: none;
	transition: opacity 0.3s ease;
}
.site-title a:hover {
	opacity: 0.8;
}
.site-header .branding-gold .site-title,
.site-header .branding-gold .site-title a {
	color: #917249 !important; /* Richer gold for better contrast on light background */
	font-weight: 500;
}
.site-header .branding-grey .site-title,
.site-header .branding-grey .site-title a {
	color: #E8E8E8 !important; /* Lighter silver-grey for better contrast on dark background */
	font-weight: 500;
}
.site-header .branding-gold .site-description {
	color: #917249 !important;
	opacity: 0.9;
	font-weight: 400;
}
.site-header .branding-grey .site-description {
	color: #CCCCCC !important;
	opacity: 0.9;
	font-weight: 400;
}
/* Custom logo – ograniczamy ogromne pliki (np. 2000x2000) do rozsądnej wysokości w nagłówku */
.site-branding .custom-logo-link {
	display: inline-flex;
	align-items: center;
	line-height: 0;
}
.site-branding .custom-logo {
	height: 130px;
	width: auto;
	max-width: 400px;
	object-fit: contain;
	display: block;
}
.branding-grey .custom-logo {
	filter: brightness(0) invert(0.9); /* Converts dark grey logo to a light silver-grey for high contrast on dark headers */
}
@media (max-width: 768px) {
	.site-branding .custom-logo { height: 84px; max-width: 260px; }
}
.site-title { margin: 0; font-size: 1.5rem; font-weight: 400; letter-spacing: 0.1em; text-transform: uppercase; }
.site-description { margin: 0; font-size: 0.7rem; letter-spacing: 0.2em; text-transform: uppercase; color: var(--color-text-muted); }
.main-navigation {
	display: flex;
	align-items: center;
}
.main-navigation ul {
	display: flex;
	list-style: none;
	margin: 0; padding: 0;
	gap: 0.25rem;
	align-items: center;
}
.main-navigation ul li {
	position: relative;
}
.main-navigation a {
	text-transform: uppercase;
	font-size: 0.8rem;
	letter-spacing: 0.1em;
	font-weight: 500;
	color: var(--color-white);
}
/* Padding only on regular nav links, not the CTA button */
.main-navigation ul > li:not(.btn-primary) > a {
	padding: 0.5rem 0.75rem;
	display: inline-block;
}

/* Desktop: caret indicator on parent items with sub-menu (NOT btn-primary) */
.main-navigation ul li.menu-item-has-children:not(.btn-primary) > a {
	padding-right: 1.6em;
	position: relative;
}
.main-navigation ul li.menu-item-has-children:not(.btn-primary) > a::after {
	content: '';
	position: absolute;
	right: 0.5rem;
	top: 50%;
	transform: translateY(-50%);
	width: 0;
	height: 0;
	border-left: 3px solid transparent;
	border-right: 3px solid transparent;
	border-top: 4px solid currentColor;
	opacity: 0.55;
	transition: transform 0.25s ease;
}

/* First-level dropdown */
.main-navigation ul > li > .sub-menu {
	position: absolute;
	top: calc(100% + 12px);
	left: 50%;
	transform: translateX(-50%);
	background-color: var(--color-white);
	min-width: 240px;
	list-style: none;
	margin: 0;
	padding: 0.5rem 0;
	box-shadow: 0 12px 40px rgba(56, 42, 63, 0.15);
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.25s ease, visibility 0.25s ease, transform 0.25s ease;
	transform: translateX(-50%) translateY(-6px);
	display: flex;
	flex-direction: column;
	z-index: 200;
	border-radius: 6px;
	border-top: 2px solid var(--color-accent-gold);
}
.main-navigation ul > li:hover > .sub-menu,
.main-navigation ul > li.is-open > .sub-menu {
	opacity: 1;
	visibility: visible;
	transform: translateX(-50%) translateY(0);
}
.main-navigation ul li .sub-menu a {
	color: var(--color-text-dark);
	padding: 0.65rem 1.4rem;
	display: block;
	text-transform: none;
	font-size: 0.82rem;
	letter-spacing: 0.04em;
	transition: background 0.2s ease;
	text-align: left;
	white-space: nowrap;
	opacity: 1;
}
.main-navigation ul li .sub-menu a:hover {
	background-color: var(--color-light-sand);
	opacity: 1;
}

/* Second-level (flyout) sub-sub-menu */
.main-navigation ul li .sub-menu li {
	position: relative;
}
.main-navigation ul li .sub-menu li.menu-item-has-children > a::after {
	content: '›';
	position: absolute;
	right: 1rem;
	top: 50%;
	transform: translateY(-50%);
	border: none;
	font-size: 1rem;
	opacity: 0.5;
	width: auto;
	height: auto;
}
.main-navigation ul li .sub-menu li > .sub-menu {
	position: absolute;
	top: -0.5rem;
	left: 100%;
	transform: translateY(0) translateX(-4px);
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.2s ease, visibility 0.2s ease, transform 0.2s ease;
	min-width: 220px;
	background-color: var(--color-white);
	box-shadow: 0 12px 40px rgba(56, 42, 63, 0.15);
	border-radius: 6px;
	border-top: 2px solid var(--color-accent-gold);
	margin: 0;
	padding: 0.5rem 0;
	list-style: none;
}
.main-navigation ul li .sub-menu li:hover > .sub-menu,
.main-navigation ul li .sub-menu li.is-open > .sub-menu {
	opacity: 1;
	visibility: visible;
	transform: translateY(0) translateX(0);
}
/* bridge gap so cursor can move from parent to sub-menu without losing hover */
.main-navigation ul > li > .sub-menu::before {
	content: '';
	position: absolute;
	top: -14px;
	left: 0;
	right: 0;
	height: 14px;
}

.site-header .site-title,
.site-header .site-description { color: var(--color-white); }
.site-header .lang-dropdown { color: var(--color-white); }

/* Hero Section */
.hero-section {
	position: relative;
	min-height: 100vh;
	background-color: var(--color-light-sand);
	display: flex;
	align-items: center;
	padding-top: 100px;
	overflow: hidden;
	isolation: isolate;
}
/* Obraz hero – lustrzany, po prawej stronie */
.hero-section .hero-bg-blend {
	position: absolute;
	inset: 0;
	z-index: -1;
	background-image: var(--hero-bg-url, none);
	background-size: cover;
	background-position: right center;
	background-repeat: no-repeat;
	/* Lustrzane odbicie */
	transform: scaleX(-1);
	transform-origin: center;
	/* Maska: obraz widoczny po prawej (po lustrze = lewa), zanika ku lewej */
	-webkit-mask-image: linear-gradient(
		to left,
		transparent 0%,
		rgba(0,0,0,0.2) 18%,
		rgba(0,0,0,0.65) 38%,
		rgba(0,0,0,0.92) 55%,
		#000 70%
	);
	mask-image: linear-gradient(
		to left,
		transparent 0%,
		rgba(0,0,0,0.2) 18%,
		rgba(0,0,0,0.65) 38%,
		rgba(0,0,0,0.92) 55%,
		#000 70%
	);
}
/* Gradient po lewej – beż kryje lewą połowę (tekst), po prawej przezroczysty (widać obraz) */
.hero-section::before {
	content: '';
	position: absolute;
	inset: 0;
	z-index: -1;
	background: linear-gradient(to right,
		var(--color-light-sand) 0%,
		rgba(244,240,235,0.90) 20%,
		rgba(244,240,235,0.55) 40%,
		rgba(244,240,235,0.15) 60%,
		rgba(244,240,235,0.00) 75%
	);
	pointer-events: none;
}
/* Gradient na dole – miękkie przejście do kolejnej sekcji */
.hero-section::after {
	content: '';
	position: absolute;
	left: 0; right: 0; bottom: 0;
	height: 160px;
	z-index: -1;
	background: linear-gradient(to bottom, transparent, var(--color-light-sand));
	pointer-events: none;
}
.hero-title { color: var(--color-dark-purple); text-shadow: 0 2px 30px rgba(244,240,235,0.5); }
.hero-subtitle { color: var(--color-text-dark); }
.hero-section .hero-vertical-text { color: var(--color-text-muted); }
.hero-section .btn-primary { background-color: var(--color-dark-purple); }
.hero-vertical-text {
	position: absolute;
	left: var(--spacing-md);
	top: 50%;
	transform: translateY(-50%) rotate(-90deg);
	transform-origin: left center;
	font-size: 0.7rem;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	white-space: nowrap;
	color: var(--color-text-muted);
}

.hero-vertical-text::before {
	content: '';
	position: absolute;
	left: -30px;
	top: 50%;
	transform: translateY(-50%);
	width: 20px;
	height: 1px;
	background: var(--color-accent-gold);
}
.hero-content {
	max-width: 600px;
	margin-left: 10vw;
}
.hero-title {
	font-size: 5rem;
	margin-bottom: var(--spacing-sm);
}
.hero-subtitle {
	font-size: 1.2rem;
	margin-bottom: var(--spacing-md);
	max-width: 400px;
}
.hero-separator {
	width: 80px;
	height: 1px;
	background: linear-gradient(to right, var(--color-accent-gold), var(--color-dark-purple));
	margin: 1.5rem auto;
	border: none;
}

/* Services Section */
.services-section {
	background-color: var(--color-light-sand);
}
.services-grid {
	display: grid;
	grid-template-columns: 1fr 2fr;
	gap: var(--spacing-lg);
	align-items: start;
}
.services-intro h2 { font-size: 2.5rem; }
.services-intro p { margin-bottom: var(--spacing-md); }
.services-list {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: var(--spacing-sm);
	text-align: center;
}
.service-item-icon {
	margin-bottom: 1rem;
	color: var(--color-text-dark);
}
.service-item-icon svg { width: 40px; height: 40px; }
.service-item h4 {
	font-family: var(--font-family-primary);
	font-size: 0.8rem;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	font-weight: 500;
}
.service-item p { font-size: 0.9rem; color: var(--color-text-muted); }

/* About Section */
.about-section {
	background-color: var(--color-dark-purple);
	color: var(--color-text-light);
}
.about-grid {
	display: grid;
	grid-template-columns: 1.3fr 1.2fr 0.8fr;
	gap: var(--spacing-lg);
	align-items: center;
}
.about-title { font-size: 3rem; }
.about-features {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 2rem 1.5rem;
	margin: var(--spacing-md) 0;
	text-align: center;
}
.about-values {
	grid-column: 1 / -1;
	margin-top: 2rem;
	border-top: 1px solid rgba(255, 255, 255, 0.1);
	padding-top: 2.5rem;
}
.about-values-title {
	text-align: center;
	font-family: var(--font-family-secondary);
	font-size: 2rem;
	color: var(--color-white);
	margin-bottom: 2.5rem;
	font-weight: 300;
}
.about-values-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: var(--spacing-md);
	text-align: center;
}
.about-values-grid .about-feature {
	display: flex;
	flex-direction: column;
	align-items: center;
}
@media (max-width: 992px) {
	.about-values-grid {
		grid-template-columns: 1fr 1fr;
		gap: 2rem 1.5rem;
	}
}
@media (max-width: 576px) {
	.about-values-grid {
		grid-template-columns: 1fr;
	}
}
.about-feature svg { stroke: var(--color-accent-gold); fill: none; width: 30px; height: 30px; margin-bottom: 0.5rem; }
.about-feature img {
	filter: brightness(0) saturate(100%) invert(72%) sepia(13%) saturate(1478%) hue-rotate(345deg) brightness(88%) contrast(85%);
	margin-bottom: 0.8rem;
}
.about-feature p {
	font-size: 0.95rem;
	margin: 0 0 0.35rem;
	color: var(--color-white);
}
.about-feature-desc {
	display: block;
	font-size: 0.82rem;
	line-height: 1.5;
	color: rgba(251, 249, 246, 0.75);
}
.about-image {
	position: relative;
}
.about-image img {
	width: 100%;
	height: auto;
	object-fit: cover;
	opacity: 0.88;
	border-radius: 0 !important;
	-webkit-mask-image: radial-gradient(
		ellipse 58% 68% at center,
		#000 10%,
		rgba(0,0,0,0.9) 35%,
		rgba(0,0,0,0.55) 55%,
		rgba(0,0,0,0.22) 78%,
		transparent 100%
	);
	mask-image: radial-gradient(
		ellipse 58% 68% at center,
		#000 10%,
		rgba(0,0,0,0.9) 35%,
		rgba(0,0,0,0.55) 55%,
		rgba(0,0,0,0.22) 78%,
		transparent 100%
	);
}
/* Dodatkowa warstwa fioletu nad obrazem dla głębszego blendu z tłem */
.about-image::after {
	content: '';
	position: absolute;
	inset: 0;
	background: radial-gradient(
		ellipse 70% 80% at center,
		transparent 30%,
		rgba(56,42,63,0.25) 65%,
		rgba(56,42,63,0.7) 88%,
		var(--color-dark-purple) 100%
	);
	pointer-events: none;
	z-index: 1;
}
/* Delikatna złota poświata wokół portretu */
.about-image::before {
	content: '';
	position: absolute;
	inset: -8%;
	border-radius: 200px 200px 50% 50%;
	background: radial-gradient(ellipse at center, rgba(194,179,158,0.18), transparent 60%);
	pointer-events: none;
	z-index: -1;
}
.about-quote {
	font-size: 1.5rem;
	font-family: var(--font-family-secondary);
	font-style: italic;
	position: relative;
}
.about-quote::before {
	content: '“';
	font-size: 4rem;
	color: var(--color-accent-gold);
	position: absolute;
	top: -30px; left: -20px;
	font-family: var(--font-family-secondary);
}

/* Paths Section */
.paths-section {
	background-color: var(--color-off-white);
}
.paths-section h2 { font-size: 2.6rem; margin-bottom: 1rem; }
.paths-eyebrow {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.8rem;
	color: var(--color-text-muted);
	text-transform: uppercase;
	letter-spacing: 0.18em;
	font-size: 0.72rem;
	margin: 0 auto var(--spacing-md);
}
.paths-eyebrow .gold { color: var(--color-accent-gold); }
.paths-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: var(--spacing-sm);
	margin-top: var(--spacing-md);
}
.path-card {
	background: var(--color-white);
	padding: 3rem 2rem 2.2rem;
	text-align: center;
	border: 1px solid rgba(56, 42, 63, 0.08);
	display: flex;
	flex-direction: column;
	align-items: center;
}
.path-icon { margin-bottom: 1.2rem; }
.path-icon svg { width: 36px; height: 36px; stroke: var(--color-dark-purple); fill: none; stroke-width: 1; }
.path-card h3 { font-size: 1.6rem; margin-bottom: 0.8rem; color: var(--color-dark-purple); }
.path-card p { font-size: 0.85rem; color: var(--color-text-muted); margin-bottom: 1.8rem; line-height: 1.6; max-width: 280px; }
.path-card .btn-primary { font-size: 0.7rem; padding: 0.75rem 1.6rem; }
.path-card .btn-primary::after { content: '→'; color: var(--color-accent-gold); margin-left: 10px; }

/* FAQ Section */
.faq-section {
	background-color: var(--color-light-sand);
	position: relative;
}
.faq-section h2 {
	font-size: 2.8rem;
	margin-bottom: var(--spacing-sm);
}
.faq-intro {
	color: var(--color-text-muted);
	font-size: 1rem;
	max-width: 600px;
	margin: 0 auto var(--spacing-md);
}
.faq-list {
	margin-top: var(--spacing-md);
	text-align: left;
	border-top: 1px solid rgba(56, 42, 63, 0.1);
}
.faq-item {
	border-bottom: 1px solid rgba(56, 42, 63, 0.1);
}
.faq-item[open] {
	background: rgba(255,255,255,0.4);
}
.faq-question {
	list-style: none;
	cursor: pointer;
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 1rem;
	padding: 1.4rem 1.2rem;
	font-family: var(--font-family-secondary);
	font-size: 1.25rem;
	color: var(--color-dark-purple);
	transition: var(--transition-smooth);
}
.faq-question::-webkit-details-marker { display: none; }
.faq-question:hover { color: var(--color-dark-purple-hover); }
.faq-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 32px;
	height: 32px;
	border: 1px solid var(--color-accent-gold);
	color: var(--color-accent-gold);
	border-radius: 50%;
	font-size: 1rem;
	font-weight: 300;
	flex-shrink: 0;
	transition: transform 0.3s ease;
}
.faq-item[open] .faq-icon {
	transform: rotate(45deg);
	background: var(--color-dark-purple);
	color: var(--color-white);
	border-color: var(--color-dark-purple);
}
.faq-answer {
	padding: 0 1.2rem 1.5rem;
	color: var(--color-text-muted);
	font-size: 0.95rem;
	line-height: 1.7;
	max-width: 760px;
}
.faq-answer p:last-child { margin-bottom: 0; }

/* Newsletter form (shared) */
.newsletter-form {
	display: flex;
	flex-direction: row;
	gap: 0;
	max-width: 420px;
	margin-bottom: 0.8rem;
}
.newsletter-form input[type="email"] {
	flex: 1 1 auto;
	background: rgba(255,255,255,0.90);
	border: none;
	padding: 1rem 1.2rem;
	color: var(--color-text-dark);
	font-family: inherit;
	font-size: 0.9rem;
	outline: none;
	transition: var(--transition-smooth);
}
.newsletter-form input[type="email"]::placeholder { color: rgba(44, 42, 41, 0.45); }
.newsletter-form input[type="email"]:focus {
	background: #fff;
	box-shadow: inset 0 0 0 2px var(--color-accent-gold);
}
.newsletter-form .btn-primary {
	flex-shrink: 0;
	background-color: var(--color-dark-purple-hover);
	color: var(--color-white);
	border: none;
	letter-spacing: 0.12em;
	white-space: nowrap;
}
.newsletter-form .btn-primary::after { color: var(--color-accent-gold); }
.newsletter-form .btn-primary:hover {
	background-color: #5a4468;
	color: var(--color-white);
}
.newsletter-msg {
	font-size: 0.85rem;
	padding: 0.6rem 0.9rem;
	margin: 0 0 0.8rem;
	border-left: 2px solid var(--color-accent-gold);
	background: rgba(255,255,255,0.06);
}
.newsletter-msg--ok  { color: #d8c79c; }
.newsletter-msg--err { color: #f0b7b7; border-left-color: #d99393; }
.screen-reader-text {
	position: absolute !important;
	width: 1px; height: 1px;
	overflow: hidden;
	clip: rect(1px,1px,1px,1px);
	white-space: nowrap;
}

/* Footer */
.site-footer {
	background-color: var(--color-dark-purple);
	color: var(--color-text-light);
}

/* Główny grid stopki: 50% newsletter | 50% linki */
.footer-inner {
	display: grid;
	grid-template-columns: 1fr 1fr;
	min-height: 280px;
}

/* LEWA POŁOWA – newsletter ze zdjęciem w tle */
.footer-newsletter {
	position: relative;
	display: flex;
	align-items: stretch;
	overflow: hidden;
}
/* Zdjęcie jako absolutne tło lewej połowy */
.footer-newsletter-image {
	position: absolute;
	inset: 0;
	background-size: cover;
	background-position: center;
	z-index: 0;
}
/* Gradient: ciemny po lewej (tekst czytelny), obraz widoczny po prawej */
.footer-newsletter-image::after {
	content: '';
	position: absolute;
	inset: 0;
	background: linear-gradient(
		to right,
		var(--color-dark-purple) 0%,
		rgba(56, 42, 63, 0.85) 30%,
		rgba(56, 42, 63, 0.45) 60%,
		rgba(56, 42, 63, 0.10) 100%
	);
}
/* Treść newslettera nad zdjęciem */
.footer-newsletter-content {
	position: relative;
	z-index: 1;
	padding: var(--spacing-lg) var(--spacing-md);
	display: flex;
	flex-direction: column;
	justify-content: center;
	width: 100%;
}
.footer-newsletter-title {
	font-family: var(--font-family-secondary);
	font-size: 1.9rem;
	color: var(--color-white);
	margin: 0 0 0.6rem;
	line-height: 1.2;
}
.footer-newsletter-text {
	color: rgba(255,255,255,0.78);
	font-size: 0.88rem;
	margin: 0 0 1.2rem;
	line-height: 1.65;
	max-width: 360px;
}
.footer-newsletter-discount {
	font-size: 0.8rem;
	color: rgba(255,255,255,0.5);
	margin: 0.7rem 0 0;
	line-height: 1.5;
}

/* PRAWA POŁOWA – linki */
.footer-links-side {
	background: var(--color-dark-purple);
	padding: var(--spacing-lg) var(--spacing-md);
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	border-left: 1px solid rgba(255,255,255,0.08);
}
.footer-links-grid {
	display: grid;
	grid-template-columns: 1fr 1fr 1fr;
	gap: var(--spacing-sm);
}
.footer-links-grid h4 {
	font-family: var(--font-family-primary);
	font-size: 0.7rem;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	color: var(--color-accent-gold);
	margin-bottom: 1rem;
}
.footer-links-grid ul { list-style: none; padding: 0; margin: 0; }
.footer-links-grid li { margin-bottom: 0.5rem; font-size: 0.9rem; }
/* Wyłącz styl button dla pozycji menu w stopce (np. "Umów sesję") */
.site-footer .footer-links-grid li.btn-primary,
.site-footer .footer-links-grid li.btn-primary-item { margin: 0 0 0.5rem; padding: 0; }
.site-footer .footer-links-grid li.btn-primary > a,
.site-footer .footer-links-grid li.btn-primary-item > a,
.site-footer .footer-links-grid .btn-primary {
	display: inline;
	background: transparent;
	color: var(--color-text-light);
	padding: 0;
	text-transform: none;
	letter-spacing: 0;
	font-size: 0.9rem;
	font-weight: 300;
}
.site-footer .footer-links-grid li.btn-primary > a::after,
.site-footer .footer-links-grid li.btn-primary-item > a::after,
.site-footer .footer-links-grid .btn-primary::after { content: none; }
.footer-bottom {
	display: flex;
	align-items: center;
	gap: 0.8rem;
	font-size: 0.78rem;
	color: rgba(255,255,255,0.4);
	margin-top: var(--spacing-md);
	padding-top: var(--spacing-sm);
	border-top: 1px solid rgba(255,255,255,0.08);
}
.social-icons a { margin-left: 15px; color: var(--color-white); }

/* --- Language Dropdown --- */
.lang-dropdown {
	position: relative;
	margin-left: 1.5rem;
	cursor: pointer;
	font-size: 0.8rem;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	font-weight: 500;
	z-index: 101;
}
.lang-dropdown-toggle {
	display: flex;
	align-items: center;
	gap: 5px;
}
.lang-dropdown-toggle img {
	width: 16px;
	height: auto;
	display: block;
}
.lang-dropdown-menu {
	position: absolute;
	top: 100%;
	right: 0;
	background: var(--color-white);
	color: var(--color-text-dark);
	list-style: none;
	padding: 0.5rem 0;
	margin: 0;
	min-width: 120px;
	box-shadow: var(--shadow-soft);
	opacity: 0;
	visibility: hidden;
	transform: translateY(10px);
	transition: var(--transition-smooth);
	border-radius: 4px;
	display: block !important;
	z-index: 100;
}
.lang-dropdown:hover .lang-dropdown-menu {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
}
.lang-dropdown-menu li {
	display: block !important;
	width: 100% !important;
	margin: 0 !important;
	padding: 0 !important;
}
.lang-dropdown-menu li a {
	display: flex !important;
	align-items: center;
	gap: 8px;
	padding: 0.5rem 1rem;
	width: 100% !important;
	color: var(--color-text-dark) !important;
	text-transform: none !important;
	background: transparent;
}
.lang-dropdown-menu li a:hover {
	background: var(--color-light-sand) !important;
	opacity: 1 !important;
}
.lang-dropdown-menu img {
	width: 16px;
	height: auto;
	display: inline-block;
}

/* --- Mobile Responsiveness --- */
.mobile-menu-toggle {
	display: none;
	background: none;
	border: none;
	color: inherit;
	cursor: pointer;
	padding: 0.5rem;
	margin-left: 1rem;
}
.mobile-menu-close {
	display: none; /* shown via JS only when mobile menu is open */
}

@media (max-width: 1024px) {
	.services-grid { grid-template-columns: 1fr; }
	.services-list { grid-template-columns: repeat(2, 1fr); }
	.about-grid { grid-template-columns: 1fr; text-align: center; }
	.about-features { grid-template-columns: repeat(2, 1fr); }
	.about-image { max-width: 400px; margin: 0 auto; }
	.about-quote-wrapper { margin-top: 2rem; }
}

@media (min-width: 769px) {
	.main-navigation .nav-menu {
		display: flex !important;
	}
	/* Remove caret from btn-primary item on desktop (has its own ✦ icon) */
	.main-navigation ul li.btn-primary-item.menu-item-has-children > a::after,
	.main-navigation ul li.btn-primary.menu-item-has-children > a::after {
		display: none;
	}
}

@media (max-width: 768px) {
	.about-features { grid-template-columns: 1fr; gap: 1.5rem; }
	.site-header .container { flex-wrap: wrap; }

	/* ---- Mobile Menu toggle ---- */
	.mobile-menu-toggle { display: block; }

	.main-navigation .nav-menu {
		display: none;
		flex-direction: column;
		position: fixed;
		top: 0;
		left: 0;
		right: 0;
		bottom: 0;
		background: var(--color-white);
		padding: 6rem 2rem 2rem;
		box-shadow: var(--shadow-soft);
		align-items: flex-start;
		overflow-y: auto;
		z-index: 150;
	}
	.main-navigation .nav-menu.is-open {
		display: flex;
	}
	.main-navigation .nav-menu a {
		color: var(--color-text-dark);
		font-size: 1.1rem;
		letter-spacing: 0.05em;
		padding: 0.6rem 0;
	}
	.main-navigation .nav-menu > li {
		width: 100%;
		border-bottom: 1px solid rgba(0,0,0,0.06);
	}
	.main-navigation .nav-menu > li:last-child { border-bottom: none; }

	/* Parent item row: label + toggle arrow */
	.main-navigation .nav-menu li.menu-item-has-children > a {
		width: 100%;
		display: flex;
		justify-content: space-between;
		align-items: center;
		padding-right: 0;
		pointer-events: none; /* JS handles click on the whole li */
	}
	/* Hide desktop caret – use a custom indicator in JS */
	.main-navigation .nav-menu li.menu-item-has-children > a::after {
		content: '+';
		border: none;
		width: auto;
		height: auto;
		font-size: 1.4rem;
		font-weight: 300;
		opacity: 0.5;
		transform: none;
		position: static;
		margin-left: auto;
	}
	.main-navigation .nav-menu li.menu-item-has-children.is-open > a::after {
		content: '−';
	}

	/* Mobile Submenus: hidden accordion */
	.main-navigation .nav-menu > li > .sub-menu,
	.main-navigation .nav-menu .sub-menu li > .sub-menu {
		position: static !important;
		display: none;
		opacity: 1 !important;
		visibility: visible !important;
		transform: none !important;
		box-shadow: none !important;
		padding: 0 0 0 1.2rem;
		background: transparent;
		min-width: 0;
		width: 100%;
		border-radius: 0;
		border-top: none !important;
		margin: 0;
	}
	.main-navigation .nav-menu li.is-open > .sub-menu {
		display: flex;
		flex-direction: column;
	}
	.main-navigation .nav-menu .sub-menu a {
		padding: 0.55rem 0 !important;
		white-space: normal;
		font-size: 0.95rem !important;
		opacity: 1;
	}
	.main-navigation .nav-menu .sub-menu li {
		border-bottom: 1px solid rgba(0,0,0,0.04);
		width: 100%;
	}
	.main-navigation .nav-menu .sub-menu li:last-child { border-bottom: none; }

	/* btn-primary on mobile */
	.main-navigation .nav-menu li.btn-primary > a,
	.main-navigation .nav-menu .btn-primary-item > a { color: var(--color-white) !important; }
	.main-navigation .nav-menu li.btn-primary,
	.main-navigation .nav-menu .btn-primary-item {
		margin-left: 0;
		margin-top: 1rem;
		align-self: flex-start;
		border-bottom: none;
	}

	.main-navigation .nav-menu .lang-dropdown {
		margin-left: 0;
		margin-top: 1rem;
		align-self: flex-start;
		color: var(--color-text-dark);
		border-top: 1px solid rgba(0,0,0,0.06);
		padding-top: 1rem;
		width: 100%;
	}
	.main-navigation .nav-menu .lang-dropdown-toggle {
		color: var(--color-text-dark);
	}
	/* On mobile: show lang dropdown on click (handled by JS), use static position */
	.main-navigation .nav-menu .lang-dropdown .lang-dropdown-menu {
		position: static;
		opacity: 1 !important;
		visibility: visible !important;
		transform: none !important;
		box-shadow: none;
		background: transparent;
		padding: 0.5rem 0 0 0;
		min-width: 0;
		display: flex !important;
		flex-direction: row;
		gap: 0.5rem;
	}
	.main-navigation .nav-menu .lang-dropdown .lang-dropdown-menu li {
		width: auto !important;
	}
	.main-navigation .nav-menu .lang-dropdown .lang-dropdown-menu li a {
		color: var(--color-text-dark) !important;
		padding: 0.4rem 0.8rem;
		border: 1px solid rgba(0,0,0,0.1);
		border-radius: 4px;
		font-size: 0.8rem;
	}
	.main-navigation .nav-menu .lang-dropdown .lang-dropdown-toggle svg {
		display: none; /* no dropdown toggle chevron on mobile - menu is always shown */
	}
	.lang-dropdown-menu { left: 0; right: auto; }

	/* Mobile close button */
	.mobile-menu-close {
		position: fixed;
		top: 1.2rem;
		right: 1.2rem;
		background: none;
		border: 1px solid rgba(0,0,0,0.1);
		border-radius: 50%;
		cursor: pointer;
		padding: 0.45rem;
		width: 40px;
		height: 40px;
		display: flex;
		align-items: center;
		justify-content: center;
		z-index: 200;
		color: var(--color-text-dark);
	}

	.hero-title { font-size: 3rem; }
	.hero-content { margin-left: 0; padding: 0 var(--spacing-sm); position: relative; z-index: 2; }
	.hero-vertical-text { display: none; }

	/* Mobile hero */
	.hero-section { min-height: 100svh; padding-top: 140px; padding-bottom: var(--spacing-lg); }
	.hero-section .hero-bg-blend {
		background-position: center top;
		-webkit-mask-image: linear-gradient(
			to bottom,
			transparent 0%,
			rgba(0,0,0,0.25) 28%,
			rgba(0,0,0,0.75) 52%,
			#000 72%
		);
		mask-image: linear-gradient(
			to bottom,
			transparent 0%,
			rgba(0,0,0,0.25) 28%,
			rgba(0,0,0,0.75) 52%,
			#000 72%
		);
	}
	.hero-section::before {
		background: linear-gradient(to bottom,
			var(--color-light-sand) 0%,
			rgba(244,240,235,0.88) 28%,
			rgba(244,240,235,0.45) 55%,
			rgba(244,240,235,0.00) 80%
		);
	}
	.hero-section::after { height: 100px; }

	.services-list { grid-template-columns: 1fr; }
	.paths-grid { grid-template-columns: 1fr; }

	/* Footer mobile */
	.footer-grid { grid-template-columns: 1fr; gap: var(--spacing-md); }
	.footer-inner { grid-template-columns: 1fr; }
	.footer-newsletter { min-height: 260px; }
	.footer-newsletter-image::after {
		background: linear-gradient(
			to bottom,
			rgba(56, 42, 63, 0.2) 0%,
			rgba(56, 42, 63, 0.6) 60%,
			var(--color-dark-purple) 100%
		);
	}
	.footer-newsletter-content {
		padding: var(--spacing-md) var(--spacing-sm);
	}
	.newsletter-form {
		max-width: 100%;
		flex-direction: column;
		gap: 0.8rem;
	}
	.newsletter-form input[type="email"] { width: 100% !important; }
	.newsletter-form .btn-primary {
		width: 100% !important;
		padding: 1rem !important;
		box-sizing: border-box;
	}
	.footer-links-side {
		border-left: none;
		border-top: 1px solid rgba(255,255,255,0.08);
		padding: var(--spacing-md) var(--spacing-sm) var(--spacing-lg) var(--spacing-sm) !important;
		display: block !important;
	}
	.footer-links-grid { display: block !important; }
	.footer-links-grid > div { margin-bottom: 2rem; }
	.footer-links-grid > div:last-child { margin-bottom: 0; }
	.footer-bottom {
		margin-top: 3rem;
		padding-top: 1.5rem;
		display: block !important;
		border-top: 1px solid rgba(255,255,255,0.08);
		text-align: center;
	}
	.footer-bottom svg {
		margin: 0 auto 0.8rem auto;
		display: block;
	}

	/* FAQ */
	.faq-section h2 { font-size: 2rem; }
	.faq-question { font-size: 1.05rem; padding: 1.1rem 0.6rem; }
	.faq-answer { padding: 0 0.6rem 1.2rem; }
}
/* --- Gutenberg Native Blocks Styling --- */
.entry-content {
	max-width: 800px;
	margin: 0 auto;
	padding: var(--spacing-lg) var(--spacing-md);
}
.entry-content > * { margin-bottom: 1.5rem; }
.entry-content h1, .entry-content h2, .entry-content h3, .entry-content h4, .entry-content h5, .entry-content h6 {
	margin-top: 2.5rem;
	margin-bottom: 1rem;
	color: var(--color-text-dark);
}
.entry-content p {
	line-height: 1.8;
	color: var(--color-text-muted);
}
.entry-content a {
	color: var(--color-gold);
	text-decoration: underline;
	text-underline-offset: 4px;
	transition: var(--transition-smooth);
}
.entry-content a:hover { color: var(--color-dark-purple); }
.entry-content .wp-block-button__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background-color: var(--color-dark-purple);
	color: var(--color-white);
	padding: 0.8rem 2rem;
	border-radius: 30px;
	text-decoration: none;
	font-weight: 500;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	font-size: 0.8rem;
	transition: var(--transition-smooth);
}
.entry-content .wp-block-button__link:hover {
	background-color: var(--color-gold);
}
.entry-content .wp-block-quote {
	border-left: none;
	padding: 2rem 0;
	text-align: center;
	margin: 3rem 0;
}
.entry-content .wp-block-quote p {
	font-size: 1.5rem;
	color: var(--color-gold);
	font-style: italic;
	line-height: 1.4;
}
.entry-content .wp-block-image img {
	border-radius: 8px;
}

/* ─────────────────────────────────────────────────────────────────────────────
   page-o-mnie.php – Strona O Mnie (Task 4.1)
   ───────────────────────────────────────────────────────────────────────────── */

/* Hero – portret jako background-image (Req 2.2) */
.hero-portrait-section {
	position: relative;
	min-height: 600px;
	background-size: cover;
	background-position: center top;
	background-repeat: no-repeat;
	display: flex;
	align-items: flex-end;
	padding-top: 120px;
	overflow: hidden;
}

/* Gradient overlay – tekst czytelny na zdjęciu */
.hero-portrait-section::before {
	content: '';
	position: absolute;
	inset: 0;
	background: linear-gradient(
		to top,
		rgba(56, 42, 63, 0.65) 0%,
		rgba(56, 42, 63, 0.3) 40%,
		transparent 70%
	);
	pointer-events: none;
	z-index: 0;
}

/* Placeholder kolor gdy brak zdjęcia (Req 2.2) */
.hero-portrait--placeholder {
	background-color: var(--color-light-sand) !important;
}

.hero-portrait-placeholder {
	width: 100%;
	min-height: 600px;
	background-color: var(--color-light-sand);
}

.hero-portrait-content {
	position: relative;
	z-index: 1;
	padding-bottom: var(--spacing-lg);
	color: var(--color-white);
}

.hero-portrait-title {
	font-size: clamp(2.5rem, 5vw, 4.5rem);
	color: var(--color-white);
	margin-bottom: 0;
}

/* Historia / Misja (Req 2.3) */
.about-story-section {
	background-color: var(--color-off-white);
}
.about-story-section p {
	line-height: 1.9;
	color: var(--color-text-muted);
}

/* Certyfikaty (Req 2.4) */
.certifications-section {
	background-color: var(--color-white);
}
.certifications-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
	gap: var(--spacing-md);
	margin-top: var(--spacing-md);
}
.cert-card {
	text-align: center;
	padding: 2rem 1.5rem;
	border: 1px solid rgba(56, 42, 63, 0.08);
	background: var(--color-off-white);
}
.cert-card__image {
	width: 80px;
	height: 80px;
	object-fit: contain;
	margin: 0 auto 1rem;
	display: block;
}
.cert-card__title {
	font-size: 1.1rem;
	color: var(--color-dark-purple);
	margin-bottom: 0.4rem;
}
.cert-card__meta {
	font-size: 0.85rem;
	color: var(--color-text-muted);
	margin: 0;
}

/* Filary pracy (Req 2.6) */
.work-pillars-section {
	background-color: var(--color-off-white);
}
.pillars-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: var(--spacing-md);
	margin-top: var(--spacing-md);
}
.pillar-card {
	text-align: center;
	padding: 2.5rem 1.5rem;
	background: var(--color-white);
	border: 1px solid rgba(56, 42, 63, 0.07);
}
.pillar-card__icon {
	margin-bottom: 1.2rem;
	color: var(--color-dark-purple);
}
.pillar-card__icon svg {
	width: 40px;
	height: 40px;
	stroke: var(--color-dark-purple);
	fill: none;
	stroke-width: 1;
}
.pillar-card__title {
	font-size: 1.3rem;
	color: var(--color-dark-purple);
	margin-bottom: 0.6rem;
}
.pillar-card__description {
	font-size: 0.9rem;
	color: var(--color-text-muted);
	line-height: 1.7;
	margin: 0;
}

/* Animacja fade-in (Req 2.8, 12.10) */
.animate-fade-in {
	opacity: 0;
	transform: translateY(20px);
	transition: opacity 400ms ease, transform 400ms ease;
}
.animate-fade-in.is-visible {
	opacity: 1;
	transform: translateY(0);
}
@media (prefers-reduced-motion: reduce) {
	.animate-fade-in,
	.animate-fade-in.is-visible {
		opacity: 1;
		transform: none;
		transition: none;
		animation: none;
	}
}

/* Responsywność (Req 12.1, 12.2, 12.4) */
@media (max-width: 768px) {
	.hero-portrait-section {
		min-height: 400px;
		padding-top: 100px;
	}
	.hero-portrait-title {
		font-size: 2.5rem;
	}
	.certifications-grid,
	.pillars-grid {
		grid-template-columns: 1fr;
	}
}

/* ─────────────────────────────────────────────────────────────────────────────
   page-kontakt.php – Strona Kontakt (Task 4.3, Req 7.1–7.10)
   ───────────────────────────────────────────────────────────────────────────── */

/* Hero – prosty nagłówek strony */
.page-kontakt .hero-simple {
	background-color: var(--color-dark-purple);
	color: var(--color-white);
	padding: var(--spacing-xl) 0 var(--spacing-lg);
	padding-top: calc(var(--spacing-xl) + 80px); /* offset for fixed header */
}
.page-kontakt .hero-simple h1 {
	font-size: clamp(2.5rem, 5vw, 4rem);
	color: var(--color-white);
	margin-bottom: 0;
}

/* Contact Section */
.contact-section {
	background-color: var(--color-off-white);
}

/* Contact Grid – 3fr 2fr na desktopie (Req 7.9) */
.contact-grid {
	display: grid;
	grid-template-columns: 3fr 2fr;
	gap: var(--spacing-md);
	align-items: start;
}

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

/* Contact Info – dane kontaktowe */
.contact-info {
	margin-bottom: var(--spacing-md);
}
.contact-info h3 {
	font-size: 1.6rem;
	color: var(--color-dark-purple);
	margin-bottom: 1.2rem;
}
.contact-info-item {
	display: flex;
	align-items: center;
	gap: 0.9rem;
	margin-bottom: 0.9rem;
	font-size: 1rem;
}
.contact-info-item a {
	color: var(--color-text-dark);
	transition: var(--transition-smooth);
}
.contact-info-item a:hover {
	color: var(--color-dark-purple);
	opacity: 1;
}
.contact-icon {
	flex-shrink: 0;
	width: 40px;
	height: 40px;
	display: flex;
	align-items: center;
	justify-content: center;
	background-color: var(--color-white);
	border: 1px solid rgba(56, 42, 63, 0.1);
	color: var(--color-dark-purple);
}
.contact-icon svg {
	stroke: var(--color-dark-purple);
}

/* Social Media */
.contact-social {
	margin-bottom: var(--spacing-md);
}
.contact-social h4 {
	font-family: var(--font-family-primary);
	font-size: 0.75rem;
	text-transform: uppercase;
	letter-spacing: 0.12em;
	color: var(--color-text-muted);
	margin-bottom: 0.9rem;
}
.contact-social .social-icons {
	display: flex;
	gap: 0.8rem;
	align-items: center;
}
.contact-social .social-icons a {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	color: var(--color-dark-purple);
	border: 1px solid rgba(56, 42, 63, 0.15);
	background-color: var(--color-white);
	transition: var(--transition-smooth);
}
.contact-social .social-icons a:hover {
	background-color: var(--color-dark-purple);
	color: var(--color-white);
	border-color: var(--color-dark-purple);
	opacity: 1;
}
.contact-social .social-icons a svg {
	transition: var(--transition-smooth);
}

/* Contact Form Wrapper */
.contact-form-wrapper {
	background-color: var(--color-white);
	padding: var(--spacing-md);
	border: 1px solid rgba(56, 42, 63, 0.08);
}
.contact-form-wrapper h3 {
	font-size: 1.6rem;
	color: var(--color-dark-purple);
	margin-bottom: var(--spacing-sm);
}

/* Contact Right Column */
.contact-right {
	display: flex;
	flex-direction: column;
	gap: var(--spacing-sm);
}

/* Map */
.contact-map {
	width: 100%;
	overflow: hidden;
	background-color: var(--color-light-sand);
	border: 1px solid rgba(56, 42, 63, 0.08);
}
.contact-map iframe {
	display: block;
	width: 100%;
	height: 300px;
	border: none;
}

/* Hours */
.contact-hours {
	background-color: var(--color-white);
	padding: 1.5rem var(--spacing-sm);
	border: 1px solid rgba(56, 42, 63, 0.08);
}
.contact-hours h4 {
	font-family: var(--font-family-primary);
	font-size: 0.75rem;
	text-transform: uppercase;
	letter-spacing: 0.12em;
	color: var(--color-text-muted);
	margin-bottom: 1rem;
}
.hours-list {
	list-style: none;
	padding: 0;
	margin: 0;
}
.hours-list li {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 0.5rem 0;
	border-bottom: 1px solid rgba(56, 42, 63, 0.06);
	font-size: 0.9rem;
}
.hours-list li:last-child {
	border-bottom: none;
}
.hours-day {
	color: var(--color-text-dark);
	font-weight: 500;
}
.hours-time {
	color: var(--color-text-muted);
}

/* Response Time */
.contact-response {
	display: flex;
	align-items: flex-start;
	gap: 0.9rem;
	background-color: var(--color-white);
	padding: 1.2rem var(--spacing-sm);
	border: 1px solid rgba(56, 42, 63, 0.08);
	border-left: 3px solid var(--color-accent-gold);
}
.response-icon {
	flex-shrink: 0;
	color: var(--color-accent-gold);
	margin-top: 0.1rem;
}
.contact-response p {
	margin: 0;
	font-size: 0.9rem;
	color: var(--color-text-muted);
	line-height: 1.6;
}

/* CTA Section on contact page */
.page-kontakt .cta-section {
	background-color: var(--color-dark-purple);
	color: var(--color-white);
}
.page-kontakt .cta-section h2 {
	color: var(--color-white);
	margin-bottom: var(--spacing-sm);
	font-size: clamp(1.8rem, 3vw, 2.5rem);
}

/* Contact page focus styles (WCAG 14.6) */
.contact-info-item a:focus-visible,
.contact-social .social-icons a:focus-visible {
	outline: 2px solid var(--color-accent-gold);
	outline-offset: 2px;
}

/* Mobile adjustments */
@media (max-width: 768px) {
	.contact-form-wrapper {
		padding: var(--spacing-sm);
	}
	.contact-map iframe {
		height: 220px;
	}
}
/* ─────────────────────────────────────────────────────────────────────────────
   Task 8: Rozbudowa style.css – nowe szablony i animacje
   ───────────────────────────────────────────────────────────────────────────── */

/* ─────────────────────────────────────────────────────────────────────────────
   8.1 Base styles – animations and accessibility
   ───────────────────────────────────────────────────────────────────────────── */

/* Fade-in animation (Req 2.8, 12.5, 12.7, 12.9, 12.10) */
.animate-fade-in {
	opacity: 0;
	transform: translateY(20px);
	transition: opacity 400ms ease, transform 400ms ease;
}
.animate-fade-in.is-visible {
	opacity: 1;
	transform: translateY(0);
}
@media (prefers-reduced-motion: reduce) {
	.animate-fade-in,
	.animate-fade-in.is-visible {
		opacity: 1;
		transform: none;
		transition: none;
		animation: none;
	}
}

/* Focus-visible outlines (Req 12.5) */
:focus-visible {
	outline: 2px solid var(--color-accent-gold);
	outline-offset: 2px;
}
*:focus:not(:focus-visible) {
	outline: none;
}

/* Touch targets minimum (Req 12.7, 12.9) */
button,
input[type="submit"],
:not(li).btn-primary {
	min-height: 44px;
	min-width: 44px;
}

/* iOS font-size fix to prevent auto-zoom (Req 12.10) */
@media (max-width: 768px) {
	input,
	textarea,
	select {
		font-size: 16px !important;
	}
}

/* ─────────────────────────────────────────────────────────────────────────────
   8.2 Styles for page-o-mnie.php
   ───────────────────────────────────────────────────────────────────────────── */

/* Hero portrait section with background image */
.page-o-mnie .hero-portrait-section {
	position: relative;
	min-height: 60vh;
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
	display: flex;
	align-items: flex-end;
	padding-top: 120px;
	overflow: hidden;
}

/* Gradient overlay for text readability on portrait image */
.page-o-mnie .hero-portrait-section::before {
	content: '';
	position: absolute;
	inset: 0;
	background: linear-gradient(
		to top,
		rgba(56, 42, 63, 0.65) 0%,
		rgba(56, 42, 63, 0.3) 40%,
		transparent 70%
	);
	pointer-events: none;
	z-index: 0;
}

/* Placeholder background when no portrait image */
.page-o-mnie .hero-portrait-section.placeholder {
	background-color: var(--color-light-sand);
}

.page-o-mnie .hero-portrait-content {
	position: relative;
	z-index: 1;
	padding-bottom: var(--spacing-lg);
	color: var(--color-white);
}

.page-o-mnie .hero-portrait-title {
	font-size: clamp(2.5rem, 5vw, 4.5rem);
	color: var(--color-white);
	margin-bottom: 0;
}

/* Story/About section */
.page-o-mnie .about-story-section {
	background-color: var(--color-off-white);
}
.page-o-mnie .about-story-section p {
	line-height: 1.9;
	color: var(--color-text-muted);
}

/* Certifications grid (Req 2.9, 12.1–12.4) */
.page-o-mnie .certifications-section {
	background-color: var(--color-white);
}
.page-o-mnie .certifications-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
	gap: var(--spacing-md);
	margin-top: var(--spacing-md);
}
.page-o-mnie .cert-card {
	text-align: center;
	padding: 2rem 1.5rem;
	border: 1px solid rgba(56, 42, 63, 0.08);
	background: var(--color-off-white);
}
.page-o-mnie .cert-card__image {
	width: 80px;
	height: 80px;
	object-fit: cover;
	margin: 0 auto 1rem;
	display: block;
}
.page-o-mnie .cert-card__title {
	font-size: 1.2rem;
	color: var(--color-dark-purple);
	margin-bottom: 0.4rem;
}
.page-o-mnie .cert-card__meta {
	font-size: 0.85rem;
	color: var(--color-text-muted);
	margin: 0;
}

/* Work pillars grid (Req 2.9, 12.1–12.4) */
.page-o-mnie .work-pillars-section {
	background-color: var(--color-off-white);
}
.page-o-mnie .pillars-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
	gap: var(--spacing-md);
	margin-top: var(--spacing-md);
}
.page-o-mnie .pillar-card {
	text-align: center;
	padding: 2.5rem 1.5rem;
	background: var(--color-white);
	border: 1px solid rgba(56, 42, 63, 0.07);
}
.page-o-mnie .pillar-card__icon {
	margin-bottom: 1.2rem;
	color: var(--color-dark-purple);
}
.page-o-mnie .pillar-card__icon svg {
	width: 40px;
	height: 40px;
	stroke: var(--color-dark-purple);
	fill: none;
	stroke-width: 1;
}
.page-o-mnie .pillar-card__title {
	font-size: 1.3rem;
	color: var(--color-dark-purple);
	margin-bottom: 0.6rem;
}
.page-o-mnie .pillar-card__description {
	font-size: 0.9rem;
	color: var(--color-text-muted);
	line-height: 1.7;
	margin: 0;
}

/* Hero title size reduction on mobile (Req 12.1–12.4) */
@media (max-width: 768px) {
	.page-o-mnie .hero-portrait-section {
		min-height: 40vh;
		padding-top: 100px;
	}
	.page-o-mnie .hero-portrait-title {
		font-size: 2.5rem;
	}
	.page-o-mnie .certifications-grid,
	.page-o-mnie .pillars-grid {
		grid-template-columns: 1fr;
	}
}

/* ─────────────────────────────────────────────────────────────────────────────
   8.3 Styles for page-oferta.php and offer cards (Req 3.9, 3.10, 12.1)
   ───────────────────────────────────────────────────────────────────────────── */

/* Offer grid layout (Req 3.9, 3.10) */
.page-oferta .offer-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
	gap: var(--spacing-md);
	margin-top: var(--spacing-md);
}

/* Offer card with hover effect */
.page-oferta .offer-card {
	background: var(--color-white);
	border: 1px solid rgba(56, 42, 63, 0.08);
	padding: 2rem;
	display: flex;
	flex-direction: column;
	transition: all 0.3s ease;
}
.page-oferta .offer-card:hover {
	transform: translateY(-10px);
	box-shadow: 0 20px 60px rgba(56, 42, 63, 0.12);
}
.page-oferta .offer-card img:not(.offer-card__icon) {
	width: 100%;
	aspect-ratio: 16/9;
	object-fit: cover;
	margin-bottom: 1.5rem;
}
.page-oferta .offer-card h3 {
	font-size: 1.6rem;
	color: var(--color-dark-purple);
	margin-bottom: 0.8rem;
}
.page-oferta .offer-card p {
	font-size: 0.9rem;
	color: var(--color-text-muted);
	line-height: 1.6;
	margin-bottom: 1.5rem;
	flex-grow: 1;
}
.page-oferta .offer-card .btn-primary {
	font-size: 0.75rem;
	padding: 0.7rem 1.6rem;
}

/* Empty state message */
.page-oferta .offer-empty {
	color: var(--color-text-muted);
	font-style: italic;
	text-align: center;
	padding: 2rem;
}

/* Reduced motion support for hover effects (Req 3.10, 12.1) */
@media (prefers-reduced-motion: reduce) {
	.page-oferta .offer-card {
		transition: none;
	}
	.page-oferta .offer-card:hover {
		transform: none;
	}
}

/* ─────────────────────────────────────────────────────────────────────────────
   8.4 Styles for kontakt, booking, impressum, datenschutz pages (Req 7.9, 12.1, 12.2)
   ───────────────────────────────────────────────────────────────────────────── */

/* Contact page grid (Req 7.9) */
.page-kontakt .contact-grid {
	display: grid;
	grid-template-columns: 3fr 2fr;
	gap: var(--spacing-md);
	align-items: start;
}
.page-kontakt .contact-info {
	margin-bottom: var(--spacing-md);
}
.page-kontakt .contact-info h3 {
	font-size: 1.6rem;
	color: var(--color-dark-purple);
	margin-bottom: 1.2rem;
}
.page-kontakt .contact-info-item {
	display: flex;
	align-items: center;
	gap: 0.9rem;
	margin-bottom: 0.9rem;
	font-size: 1rem;
}
.page-kontakt .contact-info-item a {
	color: var(--color-text-dark);
	transition: var(--transition-smooth);
}
.page-kontakt .contact-info-item a:hover {
	color: var(--color-dark-purple);
	opacity: 1;
}
.page-kontakt .contact-icon {
	flex-shrink: 0;
	width: 40px;
	height: 40px;
	display: flex;
	align-items: center;
	justify-content: center;
	background-color: var(--color-white);
	border: 1px solid rgba(56, 42, 63, 0.1);
	color: var(--color-dark-purple);
}
.page-kontakt .contact-icon svg {
	stroke: var(--color-dark-purple);
}

/* Social media icons */
.page-kontakt .contact-social {
	margin-bottom: var(--spacing-md);
}
.page-kontakt .contact-social h4 {
	font-family: var(--font-family-primary);
	font-size: 0.75rem;
	text-transform: uppercase;
	letter-spacing: 0.12em;
	color: var(--color-text-muted);
	margin-bottom: 0.9rem;
}
.page-kontakt .contact-social .social-icons {
	display: flex;
	gap: 0.8rem;
	align-items: center;
}
.page-kontakt .contact-social .social-icons a {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	padding: 0.6rem 1rem;
	color: var(--color-dark-purple);
	border: 1px solid rgba(56, 42, 63, 0.15);
	background-color: var(--color-white);
	transition: var(--transition-smooth);
	text-transform: uppercase;
	font-size: 0.75rem;
	letter-spacing: 0.1em;
}
.page-kontakt .contact-social .social-icons a:hover {
	background-color: var(--color-dark-purple);
	color: var(--color-white);
	border-color: var(--color-dark-purple);
	opacity: 1;
}

/* Contact form wrapper */
.page-kontakt .contact-form-wrapper {
	background-color: var(--color-white);
	padding: var(--spacing-md);
	border: 1px solid rgba(56, 42, 63, 0.08);
}
.page-kontakt .contact-form-wrapper h3 {
	font-size: 1.6rem;
	color: var(--color-dark-purple);
	margin-bottom: var(--spacing-sm);
}

/* Contact right column (map, hours, response time) */
.page-kontakt .contact-right {
	display: flex;
	flex-direction: column;
	gap: var(--spacing-sm);
}

/* Map container */
.page-kontakt .contact-map {
	width: 100%;
	overflow: hidden;
	background-color: var(--color-light-sand);
	border: 1px solid rgba(56, 42, 63, 0.08);
}
.page-kontakt .contact-map iframe {
	display: block;
	width: 100%;
	height: 300px;
	border: none;
}

/* Hours section */
.page-kontakt .contact-hours {
	background-color: var(--color-white);
	padding: 1.5rem var(--spacing-sm);
	border: 1px solid rgba(56, 42, 63, 0.08);
}
.page-kontakt .contact-hours h4 {
	font-family: var(--font-family-primary);
	font-size: 0.75rem;
	text-transform: uppercase;
	letter-spacing: 0.12em;
	color: var(--color-text-muted);
	margin-bottom: 1rem;
}
.page-kontakt .hours-list {
	list-style: none;
	padding: 0;
	margin: 0;
}
.page-kontakt .hours-list li {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 0.5rem 0;
	border-bottom: 1px solid rgba(56, 42, 63, 0.06);
	font-size: 0.9rem;
}
.page-kontakt .hours-list li:last-child {
	border-bottom: none;
}
.page-kontakt .hours-day {
	color: var(--color-text-dark);
	font-weight: 500;
}
.page-kontakt .hours-time {
	color: var(--color-text-muted);
}

/* Response time section */
.page-kontakt .contact-response {
	display: flex;
	align-items: flex-start;
	gap: 0.9rem;
	background-color: var(--color-white);
	padding: 1.2rem var(--spacing-sm);
	border: 1px solid rgba(56, 42, 63, 0.08);
	border-left: 3px solid var(--color-accent-gold);
}
.page-kontakt .response-icon {
	flex-shrink: 0;
	color: var(--color-accent-gold);
	margin-top: 0.1rem;
}
.page-kontakt .contact-response p {
	margin: 0;
	font-size: 0.9rem;
	color: var(--color-text-muted);
	line-height: 1.6;
}

/* Booking page styles */
.page-umow-sesje .booking-page {
	max-width: 900px;
	margin: 0 auto;
	padding: var(--spacing-lg) var(--spacing-md);
}
.page-umow-sesje .booking-page h1 {
	font-size: clamp(2.5rem, 5vw, 4rem);
	color: var(--color-dark-purple);
	margin-bottom: var(--spacing-md);
}

/* Booking GDPR section */
.page-umow-sesje .booking-gdpr {
	margin: var(--spacing-md) 0;
	padding: 1.5rem;
	background: var(--color-off-white);
}
.page-umow-sesje .booking-gdpr input[type="checkbox"] {
	width: 20px;
	height: 20px;
	margin-right: 0.8rem;
}
.page-umow-sesje .booking-gdpr label {
	font-size: 0.95rem;
	line-height: 1.6;
}

/* Booking error message */
.page-umow-sesje #booking-gdpr-error {
	display: none;
	margin: 0.5rem 0;
	padding: 0.8rem 1rem;
	background-color: #f8d7da;
	color: #721c24;
	border: 1px solid #f5c6cb;
	border-radius: 4px;
	font-size: 0.9rem;
}

/* Booking payment info */
.page-umow-sesje .booking-payment-info {
	padding: 1rem;
	background-color: var(--color-white);
	border: 1px solid rgba(56, 42, 63, 0.08);
	margin: var(--spacing-sm) 0;
}
.page-umow-sesje .booking-payment-info h4 {
	font-size: 0.8rem;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	color: var(--color-text-muted);
	margin-bottom: 0.8rem;
}
.page-umow-sesje .booking-payment-icons {
	display: flex;
	gap: 0.8rem;
}

/* Booking calendar info */
.page-umow-sesje .booking-calendar-info {
	padding: 1rem;
	background-color: var(--color-off-white);
	margin: var(--spacing-sm) 0;
}

.page-impressum .impressum-page h1:not(.subpage-hero__title) {
	font-size: clamp(2.5rem, 5vw, 4rem);
	color: var(--color-dark-purple);
	margin-bottom: var(--spacing-md);
}

/* Description list for impressum data */
.page-impressum dl {
	max-width: 700px;
	margin: 0 auto;
}
.page-impressum dt {
	font-weight: 600;
	color: var(--color-dark-purple);
	font-size: 0.95rem;
	padding: 0.8rem 0;
	border-bottom: 1px solid rgba(56, 42, 63, 0.1);
}
.page-impressum dd {
	margin: 0 0 1.5rem 0;
	padding: 0.5rem 0 0.8rem 0;
	font-size: 1rem;
	line-height: 1.6;
}
.page-impressum dd a {
	color: var(--color-dark-purple);
}
.page-impressum dd a:hover {
	text-decoration: underline;
}

/* impressum-row layout for desktop */
.page-impressum .impressum-row {
	display: grid;
	grid-template-columns: 200px 1fr;
	gap: 1rem;
	padding: 1rem 0;
	border-bottom: 1px solid rgba(56, 42, 63, 0.1);
}
.page-impressum .impressum-label {
	color: var(--color-dark-purple);
	font-weight: 600;
}
.page-impressum .impressum-value {
	font-size: 1rem;
	line-height: 1.6;
}

.page-datenschutz h1:not(.subpage-hero__title) {
	font-size: clamp(2.5rem, 5vw, 4rem);
	color: var(--color-dark-purple);
	margin-bottom: var(--spacing-md);
}
.page-datenschutz h2 {
	font-size: 2rem;
	color: var(--color-dark-purple);
	margin-top: var(--spacing-lg);
	margin-bottom: var(--spacing-sm);
}
.page-datenschutz h3 {
	font-size: 1.4rem;
	color: var(--color-dark-purple);
	margin-top: var(--spacing-md);
	margin-bottom: var(--spacing-sm);
}
.page-datenschutz p {
	line-height: 1.8;
	color: var(--color-text-muted);
}
.page-datenschutz ul {
	list-style: disc;
	padding-left: 2rem;
}
.page-datenschutz li {
	margin-bottom: 0.8rem;
	line-height: 1.6;
}
.page-datenschutz a {
	color: var(--color-dark-purple);
}
.page-datenschutz a:hover {
	text-decoration: underline;
}

/* Contact page third-party services list */
.page-datenschutz .third-party-services {
	margin-top: var(--spacing-md);
}
.page-datenschutz .third-party-service {
	padding: 1rem;
	margin-bottom: 1rem;
	background-color: var(--color-off-white);
	border-radius: 4px;
}
.page-datenschutz .third-party-service h4 {
	font-size: 1.1rem;
	color: var(--color-dark-purple);
	margin-bottom: 0.5rem;
}
.page-datenschutz .third-party-service p {
	font-size: 0.9rem;
	margin-bottom: 0.5rem;
}
.page-datenschutz .third-party-service a {
	font-size: 0.9rem;
}

/* Mobile adjustments for contact-grid and impressum (Req 12.2) */
@media (max-width: 768px) {
	.page-kontakt .contact-grid {
		grid-template-columns: 1fr;
	}
	.page-kontakt .contact-map iframe {
		height: 220px;
	}
	.page-impressum .impressum-row {
		grid-template-columns: 1fr;
	}
	.page-impressum dt,
	.page-impressum dd {
		font-size: 0.95rem;
	}
}

/* CTA section on contact page */
.page-kontakt .cta-section {
	background-color: var(--color-dark-purple);
	color: var(--color-white);
	padding: var(--spacing-lg) var(--spacing-md);
	text-align: center;
}
.page-kontakt .cta-section h2 {
	color: var(--color-white);
	margin-bottom: var(--spacing-sm);
	font-size: clamp(1.8rem, 3vw, 2.5rem);
}

/* Focus styles for accessibility (WCAG 14.6) */
.page-kontakt .contact-info-item a:focus-visible,
.page-kontakt .contact-social .social-icons a:focus-visible {
	outline: 2px solid var(--color-accent-gold);
	outline-offset: 2px;
}

/* Offer Grid & Cards (Req 3.9, 3.10) */
.offer-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
	gap: var(--spacing-md);
}

.offer-card {
	background: var(--color-white);
	border: 1px solid rgba(56, 42, 63, 0.08);
	padding: 2rem;
	display: flex;
	flex-direction: column;
	transition: all 0.3s ease;
}

.offer-card:hover {
	transform: translateY(-10px);
	box-shadow: 0 20px 60px rgba(56, 42, 63, 0.12);
}

.offer-card__image-wrapper {
	width: 100%;
	aspect-ratio: 16/9;
	overflow: hidden;
	border-radius: 4px;
}

.offer-card__image-wrapper--placeholder {
	display: flex;
	align-items: center;
	justify-content: center;
}

.offer-card-placeholder-icon {
	width: 64px;
	height: 64px;
}

.offer-card__title a {
	color: var(--color-dark-purple);
	text-decoration: none;
	transition: color 0.3s ease;
}

.offer-card__title a:hover {
	color: var(--color-dark-purple-hover);
}

.offer-card__excerpt {
	color: var(--color-text-muted);
	margin-bottom: 1rem;
	line-height: 1.5;
}

.offer-card .btn-primary--outline {
	display: inline-block;
	padding: 0.75rem 1.5rem;
	border: 2px solid var(--color-dark-purple);
	color: var(--color-dark-purple);
	text-decoration: none;
	border-radius: 4px;
	transition: all 0.3s ease;
	text-align: center;
}

.offer-card .btn-primary--outline:hover {
	background-color: var(--color-dark-purple);
	color: var(--color-white);
}

/* Empty state message */
.offer-empty {
	color: var(--color-text-muted);
	font-style: italic;
	text-align: center;
}

/* Reduced motion support */
@media (prefers-reduced-motion: reduce) {
	.offer-card {
		transition: none;
	}
	
	.offer-card:hover {
		transform: none;
		box-shadow: none;
	}
}

/* ─────────────────────────────────────────────────────────────────────────────
   page-kontakt.php, page-umow-sesje.php, page-impressum.php, page-datenschutz.php
   ───────────────────────────────────────────────────────────────────────────── */

/* Contact Grid – 3fr 2fr na desktopie (Req 7.9) */
.contact-grid {
	display: grid;
	grid-template-columns: 3fr 2fr;
	gap: var(--spacing-md);
	align-items: start;
}

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

/* Contact social icons */
.contact-social-icons a {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	margin-right: 1rem;
}

/* Booking page (Req 8.4) */
.booking-page {
	max-width: 900px;
	margin: 0 auto;
	padding: var(--spacing-lg) var(--spacing-md);
}

.booking-gdpr {
	margin: var(--spacing-md) 0;
	padding: 1.5rem;
	background: var(--color-off-white);
}

/* Impressum page (Req 8.4) */
.impressum-page dl {
	max-width: 700px;
	margin: 0 auto;
}

.impressum-row {
	display: grid;
	grid-template-columns: 200px 1fr;
	gap: 1rem;
	padding: 1rem 0;
	border-bottom: 1px solid rgba(56, 42, 63, 0.1);
}

@media (max-width: 768px) {
	.impressum-row {
		grid-template-columns: 1fr;
	}
}



/* ═══════════════════════════════════════════════════════
   UX/UI ACCENTS (Japandi / Soft Spiritual Wellness)
   ═══════════════════════════════════════════════════════ */

/* Curved Plum Arrow Vector */
.curved-arrow-decor {
	display: block;
	width: 80px;
	height: auto;
	margin: 2rem auto;
	color: var(--color-dark-purple);
}

/* Glassmorphism effects */
.glass-panel {
	background: rgba(255, 255, 255, 0.75);
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
	border: 1px solid rgba(255, 255, 255, 0.4);
	box-shadow: var(--shadow-soft);
}

/* ═══════════════════════════════════════════════════════
   PRICING TARIFFS & DISCOUNTS
   ═══════════════════════════════════════════════════════ */

.tariffs-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
	gap: var(--spacing-sm);
	margin: var(--spacing-md) 0;
}

.tariff-card {
	background-color: var(--color-white);
	border: 1px solid rgba(81, 59, 99, 0.08);
	padding: 2.5rem 2rem;
	text-align: center;
	transition: var(--transition-smooth);
	box-shadow: var(--shadow-soft);
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
}

.tariff-card:hover {
	transform: translateY(-5px);
	border-color: var(--color-accent-gold);
}

.tariff-card.featured {
	border: 2px solid var(--color-dark-purple);
}

.tariff-card__phase {
	font-size: 0.75rem;
	text-transform: uppercase;
	color: var(--color-accent-gold);
	margin-bottom: 0.5rem;
	letter-spacing: 0.1em;
	font-weight: 500;
}

.tariff-card__title {
	font-family: var(--font-family-secondary);
	font-size: 1.8rem;
	color: var(--color-dark-purple);
	margin-bottom: 1rem;
}

.tariff-card__price {
	font-size: 2.4rem;
	font-family: var(--font-family-secondary);
	color: var(--color-dark-purple);
	font-weight: 500;
	margin-bottom: 1.5rem;
}

.tariff-card__price span {
	font-size: 1rem;
	color: var(--color-text-muted);
}

.tariff-card__desc {
	font-size: 0.88rem;
	color: var(--color-text-muted);
	line-height: 1.6;
}

/* Discounts layout */
.discounts-wrap {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: var(--spacing-md);
	margin: var(--spacing-lg) 0;
}

@media (max-width: 768px) {
	.discounts-wrap {
		grid-template-columns: 1fr;
	}
}

.discount-box {
	background-color: var(--color-off-white);
	border: 1px solid rgba(81, 59, 99, 0.08);
	padding: 2.5rem;
	border-radius: 4px;
}

.discount-box.highlighted {
	border-left: 4px solid var(--color-accent-gold);
	background-color: var(--color-light-sand);
}

.discount-box h3 {
	font-size: 1.6rem;
	color: var(--color-dark-purple);
	margin-bottom: 1rem;
}

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

.discount-box ul li {
	position: relative;
	padding-left: 1.5rem;
	margin-bottom: 0.6rem;
	font-size: 0.95rem;
	color: var(--color-text-dark);
}

.discount-box ul li::before {
	content: '✧';
	position: absolute;
	left: 0;
	color: var(--color-accent-gold);
}

/* ═══════════════════════════════════════════════════════
   AMELIA CALENDAR & STRIPE SELECTORS OVERRIDES
   ═══════════════════════════════════════════════════════ */

.booking-section .am-container,
.booking-section .am-booking {
	font-family: var(--font-family-primary) !important;
	color: var(--color-text-dark) !important;
}

.booking-section .el-button--primary {
	background-color: var(--color-dark-purple) !important;
	border-color: var(--color-dark-purple) !important;
	color: var(--color-white) !important;
	text-transform: uppercase !important;
	letter-spacing: 0.12em !important;
	font-size: 0.8rem !important;
	border-radius: 0 !important;
	transition: var(--transition-smooth) !important;
}

.booking-section .el-button--primary:hover {
	background-color: var(--color-dark-purple-hover) !important;
	border-color: var(--color-dark-purple-hover) !important;
}

.booking-section .el-input__inner,
.booking-section .el-textarea__inner {
	background-color: var(--color-off-white) !important;
	border: 1px solid rgba(81, 59, 99, 0.1) !important;
	border-radius: 4px !important;
	color: var(--color-text-dark) !important;
}

.booking-section .el-input__inner:focus,
.booking-section .el-textarea__inner:focus {
	border-color: var(--color-accent-gold) !important;
}

.booking-section .am-select-service,
.booking-section .am-service-item {
	border: 1px solid rgba(81, 59, 99, 0.08) !important;
	background-color: var(--color-white) !important;
	transition: var(--transition-smooth) !important;
}

.booking-section .am-service-item:hover {
	border-color: var(--color-accent-gold) !important;
}

.booking-gdpr-error-visible {
	animation: shake-anim 0.4s ease-in-out;
	border: 1px solid #d32f2f !important;
	background-color: #ffebee !important;
}

@keyframes shake-anim {
	0%, 100% { transform: translateX(0); }
	25% { transform: translateX(-5px); }
	75% { transform: translateX(5px); }
}

/* FAQ Section Styles */
.faq-section {
	padding: var(--spacing-lg) 0;
}

.faq-accordion {
	display: flex;
	flex-direction: column;
	gap: 1rem;
}

.faq-item {
	border: 1px solid rgba(81, 59, 99, 0.08);
	transition: var(--transition-smooth);
}

.faq-item:hover {
	border-color: var(--color-accent-gold);
	box-shadow: var(--shadow-soft);
}

.faq-item summary {
	list-style: none;
	padding: 1.5rem;
	cursor: pointer;
	font-weight: 500;
	color: var(--color-dark-purple);
	display: flex;
	justify-content: space-between;
	align-items: center;
	transition: var(--transition-smooth);
}

.faq-item summary::-webkit-details-marker {
	display: none;
}

.faq-item summary::before {
	content: '+';
	font-size: 1.5rem;
	color: var(--color-accent-gold);
	margin-right: 1rem;
	transition: var(--transition-smooth);
}

.faq-item[open] summary::before {
	content: '−';
}

.faq-item[open] summary {
	background-color: rgba(199, 165, 122, 0.05);
}

.faq-item div {
	padding: 0 1.5rem 1.5rem 1.5rem;
	color: var(--color-text-muted);
	line-height: 1.6;
	border-top: 1px solid rgba(81, 59, 99, 0.05);
}

/* ═══════════════════════════════════════════════════════
   SUBPAGE HERO & BOOKING LAYOUT FIXES
   ═══════════════════════════════════════════════════════ */

/* Unified Compact Subpage Hero */
.subpage-hero {
	position: relative;
	background-color: var(--color-dark-purple);
	background-image: url('assets/images/newsletter-mood.png');
	background-size: cover;
	background-position: center 30%;
	background-repeat: no-repeat;
	text-align: center;
	padding: 180px 0 100px;
	overflow: hidden;
	color: var(--color-white);
}

/* Gradient overlay for readability and menu contrast */
.subpage-hero::before {
	content: '';
	position: absolute;
	inset: 0;
	background: linear-gradient(
		135deg,
		rgba(56, 42, 63, 0.94) 0%,
		rgba(81, 59, 99, 0.90) 100%
	);
	z-index: 1;
	pointer-events: none;
}

.subpage-hero .container,
.subpage-hero .container-narrow {
	position: relative;
	z-index: 2;
}

.subpage-hero__title {
	font-family: var(--font-family-secondary);
	font-size: clamp(2.2rem, 5vw, 3.5rem);
	color: var(--color-light-sand);
	font-weight: 300;
	margin: 0;
	line-height: 1.2;
}

.subpage-hero__subtitle {
	font-family: var(--font-family-primary);
	font-size: 1.1rem;
	color: var(--color-text-light);
	opacity: 0.9;
	max-width: 800px;
	margin: 1.25rem auto 0;
	line-height: 1.6;
}

/* Booking form step-by-step layout & spaces */
#booking-date-group {
	border-top: 1px solid rgba(81, 59, 99, 0.1);
	padding-top: 2rem;
	margin-top: 2.5rem;
}
#booking-time-group {
	margin-top: 1.5rem;
}
#booking-dynamic-fields:not(:empty) {
	border-top: 1px solid rgba(81, 59, 99, 0.1);
	padding-top: 2rem;
	margin-top: 2.5rem;
}
.booking-customer-info-section {
	border-top: 1px solid rgba(81, 59, 99, 0.1);
	padding-top: 2rem;
	margin-top: 2.5rem;
}
#booking-dynamic-fields:not(:empty) + .booking-customer-info-section {
	border-top: none;
	padding-top: 0;
	margin-top: 1.5rem;
}
.booking-stripe-section {
	border-top: 1px solid rgba(81, 59, 99, 0.1);
	padding-top: 2rem;
	margin-top: 2.5rem;
}
#booking-gdpr-wrapper {
	border-top: 1px solid rgba(81, 59, 99, 0.1);
	padding-top: 2rem;
	margin-top: 2.5rem;
}

/* Responsive adjustments for overlapping elements */
@media (max-width: 992px) {
	.subpage-hero {
		padding: 140px 0 80px;
	}
	.booking-grid-wrapper {
		margin-top: -30px !important;
	}
	.booking-content-section {
		padding-top: 2rem !important;
	}
}

/* CTA Section Dark Button styling */
.cta-section--dark .btn-primary {
	background-color: var(--color-white);
	color: var(--color-dark-purple);
}
.cta-section--dark .btn-primary::after {
	color: var(--color-accent-gold);
}
.cta-section--dark .btn-primary:hover {
	background-color: var(--color-accent-gold);
	color: var(--color-white);
}
.cta-section--dark .btn-primary:hover::after {
	color: var(--color-white);
}



/* ═══════════════════════════════════════
   CF7 – Seelenkompass Contact Form Style
═══════════════════════════════════════ */

.wpcf7-form {
    font-family: Inter, sans-serif;
    max-width: 680px;
    margin: 0 auto;
}

.wpcf7-form label {
    display: block;
    font-size: .85rem;
    font-weight: 500;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: #513B63;
    margin-bottom: 4px;
    margin-top: 20px;
}

.wpcf7-form input[type="text"],
.wpcf7-form input[type="email"],
.wpcf7-form input[type="tel"],
.wpcf7-form textarea {
    width: 100%;
    background: #fff;
    border: 1px solid rgba(81,59,99,.25);
    border-radius: 6px;
    padding: 12px 16px;
    font-family: Inter, sans-serif;
    font-size: .95rem;
    color: #2D1F3D;
    transition: border-color .2s, box-shadow .2s;
    box-sizing: border-box;
    outline: none;
}

.wpcf7-form input[type="text"]:focus,
.wpcf7-form input[type="email"]:focus,
.wpcf7-form input[type="tel"]:focus,
.wpcf7-form textarea:focus {
    border-color: #513B63;
    box-shadow: 0 0 0 3px rgba(81,59,99,.12);
}

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

.wpcf7-form input[type="submit"],
.wpcf7-form .wpcf7-submit {
    margin-top: 28px;
    background: #513B63;
    color: #fff;
    border: none;
    border-radius: 6px;
    padding: 14px 36px;
    font-family: Inter, sans-serif;
    font-size: .9rem;
    font-weight: 500;
    letter-spacing: .1em;
    text-transform: uppercase;
    cursor: pointer;
    transition: background .2s, transform .15s;
}

.wpcf7-form input[type="submit"]:hover,
.wpcf7-form .wpcf7-submit:hover {
    background: #3d2c4a;
    transform: translateY(-1px);
}

.wpcf7-form .wpcf7-not-valid-tip {
    color: #c0392b;
    font-size: .8rem;
    margin-top: 4px;
}

.wpcf7-form .wpcf7-response-output {
    margin-top: 20px;
    padding: 12px 18px;
    border-radius: 6px;
    font-size: .9rem;
    border: 1px solid rgba(81,59,99,.3);
    color: #513B63;
    background: #F5EFE6;
}

.wpcf7-form.invalid .wpcf7-response-output {
    background: #fdf0ef;
    border-color: #c0392b;
    color: #c0392b;
}

.wpcf7-form.sent .wpcf7-response-output {
    background: #f0fdf4;
    border-color: #27ae60;
    color: #27ae60;
}

/* ═══════════════════════════════════════
   CF7 – Seelenkompass Contact Form Style
═══════════════════════════════════════ */

.wpcf7-form {
    font-family: Inter, sans-serif;
    max-width: 680px;
    margin: 0 auto;
}

.wpcf7-form label {
    display: block;
    font-size: .85rem;
    font-weight: 500;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: #513B63;
    margin-bottom: 4px;
    margin-top: 20px;
}

.wpcf7-form input[type="text"],
.wpcf7-form input[type="email"],
.wpcf7-form input[type="tel"],
.wpcf7-form textarea {
    width: 100%;
    background: #fff;
    border: 1px solid rgba(81,59,99,.25);
    border-radius: 6px;
    padding: 12px 16px;
    font-family: Inter, sans-serif;
    font-size: .95rem;
    color: #2D1F3D;
    transition: border-color .2s, box-shadow .2s;
    box-sizing: border-box;
    outline: none;
}

.wpcf7-form input[type="text"]:focus,
.wpcf7-form input[type="email"]:focus,
.wpcf7-form input[type="tel"]:focus,
.wpcf7-form textarea:focus {
    border-color: #513B63;
    box-shadow: 0 0 0 3px rgba(81,59,99,.12);
}

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

.wpcf7-form input[type="submit"],
.wpcf7-form .wpcf7-submit {
    margin-top: 28px;
    background: #513B63;
    color: #fff;
    border: none;
    border-radius: 6px;
    padding: 14px 36px;
    font-family: Inter, sans-serif;
    font-size: .9rem;
    font-weight: 500;
    letter-spacing: .1em;
    text-transform: uppercase;
    cursor: pointer;
    transition: background .2s, transform .15s;
}

.wpcf7-form input[type="submit"]:hover,
.wpcf7-form .wpcf7-submit:hover {
    background: #3d2c4a;
    transform: translateY(-1px);
}

.wpcf7-form .wpcf7-not-valid-tip {
    color: #c0392b;
    font-size: .8rem;
    margin-top: 4px;
}

.wpcf7-form .wpcf7-response-output {
    margin-top: 20px;
    padding: 12px 18px;
    border-radius: 6px;
    font-size: .9rem;
    border: 1px solid rgba(81,59,99,.3);
    color: #513B63;
    background: #F5EFE6;
}

.wpcf7-form.invalid .wpcf7-response-output {
    background: #fdf0ef;
    border-color: #c0392b;
    color: #c0392b;
}

.wpcf7-form.sent .wpcf7-response-output {
    background: #f0fdf4;
    border-color: #27ae60;
    color: #27ae60;
}

/* ═══════════════════════════════════════
   CF7 – Seelenkompass Contact Form Style
═══════════════════════════════════════ */

.wpcf7-form {
    font-family: Inter, sans-serif;
    max-width: 680px;
    margin: 0 auto;
}

.wpcf7-form label {
    display: block;
    font-size: .85rem;
    font-weight: 500;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: #513B63;
    margin-bottom: 4px;
    margin-top: 20px;
}

.wpcf7-form input[type="text"],
.wpcf7-form input[type="email"],
.wpcf7-form input[type="tel"],
.wpcf7-form textarea {
    width: 100%;
    background: #fff;
    border: 1px solid rgba(81,59,99,.25);
    border-radius: 6px;
    padding: 12px 16px;
    font-family: Inter, sans-serif;
    font-size: .95rem;
    color: #2D1F3D;
    transition: border-color .2s, box-shadow .2s;
    box-sizing: border-box;
    outline: none;
}

.wpcf7-form input[type="text"]:focus,
.wpcf7-form input[type="email"]:focus,
.wpcf7-form input[type="tel"]:focus,
.wpcf7-form textarea:focus {
    border-color: #513B63;
    box-shadow: 0 0 0 3px rgba(81,59,99,.12);
}

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

.wpcf7-form input[type="submit"],
.wpcf7-form .wpcf7-submit {
    margin-top: 28px;
    background: #513B63;
    color: #fff;
    border: none;
    border-radius: 6px;
    padding: 14px 36px;
    font-family: Inter, sans-serif;
    font-size: .9rem;
    font-weight: 500;
    letter-spacing: .1em;
    text-transform: uppercase;
    cursor: pointer;
    transition: background .2s, transform .15s;
}

.wpcf7-form input[type="submit"]:hover,
.wpcf7-form .wpcf7-submit:hover {
    background: #3d2c4a;
    transform: translateY(-1px);
}

.wpcf7-form .wpcf7-not-valid-tip {
    color: #c0392b;
    font-size: .8rem;
    margin-top: 4px;
}

.wpcf7-form .wpcf7-response-output {
    margin-top: 20px;
    padding: 12px 18px;
    border-radius: 6px;
    font-size: .9rem;
    border: 1px solid rgba(81,59,99,.3);
    color: #513B63;
    background: #F5EFE6;
}

.wpcf7-form.invalid .wpcf7-response-output {
    background: #fdf0ef;
    border-color: #c0392b;
    color: #c0392b;
}

.wpcf7-form.sent .wpcf7-response-output {
    background: #f0fdf4;
    border-color: #27ae60;
    color: #27ae60;
}
