/* ==========================================================================
   Portal Finansowy – main.css (mobile-first)
   ========================================================================== */

/* Container */
.container {
	width: 100%;
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 1rem;
}

/* Screen reader only */
.screen-reader-text {
	clip: rect(1px, 1px, 1px, 1px);
	height: 1px;
	overflow: hidden;
	position: absolute;
	width: 1px;
}

/* --------------------------------------------------------------------------
   Header
   -------------------------------------------------------------------------- */
.site-header {
	position: sticky;
	top: 0;
	z-index: 100;
	background: var(--color-surface);
	box-shadow: var(--shadow-card);
	border-bottom: 1px solid var(--border-color);
}

.header-inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem;
	min-height: 56px;
	padding: 0.5rem 1rem;
}

.header-brand .logo-link {
	display: flex;
	align-items: center;
	text-decoration: none;
	color: var(--color-text);
	font-weight: 700;
	font-size: 1.125rem;
}
.header-brand .logo-link:hover {
	color: var(--color-accent);
	text-decoration: none;
}
.header-brand img {
	max-height: 40px;
	width: auto;
}

.search-toggle,
.menu-toggle {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	padding: 0;
	background: none;
	border: none;
	color: var(--color-text);
	cursor: pointer;
}
.search-toggle:hover,
.menu-toggle:hover {
	color: var(--color-accent);
}

.theme-toggle {
	display: flex;
	align-items: center;
	justify-content: center;
	width: auto;
	min-width: 44px;
	height: 44px;
	padding: 0 6px;
	background: none;
	border: none;
	color: var(--color-text);
	cursor: pointer;
}
.theme-toggle:hover {
	color: var(--color-accent);
}
.theme-toggle-track {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 6px;
	width: 76px;
	height: 36px;
	padding: 0 8px;
	border-radius: 999px;
	background: transparent;
	border: 1px solid var(--border-color);
	position: relative;
	transition: border-color 0.2s;
}
.theme-toggle:hover .theme-toggle-track {
	border-color: var(--color-accent);
}
.theme-toggle-icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 26px;
	height: 26px;
	border-radius: 50%;
	line-height: 0;
	transition: opacity 0.2s;
}
.theme-toggle-icon svg {
	width: 18px;
	height: 18px;
}
.theme-toggle-icon.theme-toggle-sun {
	opacity: 0.5;
}
.theme-toggle-icon.theme-toggle-moon {
	opacity: 1;
}
html.theme-dark .theme-toggle-sun,
body.theme-dark .theme-toggle-sun {
	opacity: 1;
}
html.theme-dark .theme-toggle-moon,
body.theme-dark .theme-toggle-moon {
	opacity: 0.5;
}

.cart-link {
	display: flex;
	align-items: center;
	position: relative;
	width: 44px;
	height: 44px;
	justify-content: center;
	color: var(--color-text);
}
.cart-count {
	position: absolute;
	top: 2px;
	right: 2px;
	background: var(--color-accent);
	color: #fff;
	font-size: 0.7rem;
	min-width: 18px;
	height: 18px;
	border-radius: 9px;
	display: flex;
	align-items: center;
	justify-content: center;
}

.nav-primary {
	display: none;
}
.primary-menu {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
}
.primary-menu a {
	display: block;
	padding: 0.5rem 0.75rem;
	color: var(--color-text);
	text-decoration: none;
}
.primary-menu a:hover {
	color: var(--color-accent);
	text-decoration: none;
}

/* Search overlay */
.search-overlay {
	position: fixed;
	inset: 0;
	z-index: 101;
	background: var(--color-bg);
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.2s, visibility 0.2s;
}
.search-overlay.is-open {
	opacity: 1;
	visibility: visible;
}
.search-overlay-inner {
	padding: 2rem 1rem;
	position: relative;
}
.search-form {
	display: flex;
	gap: 0.5rem;
	max-width: 500px;
	margin: 0 auto;
}
.search-field {
	flex: 1;
	min-height: 44px;
	padding: 0 1rem;
	font-size: 1rem;
	border: 1px solid var(--border-color);
	border-radius: 4px;
	background: var(--color-surface);
	color: var(--color-text);
}
.search-submit {
	min-height: 44px;
	padding: 0 1.25rem;
	background: var(--color-accent);
	color: #fff;
	border: none;
	border-radius: 4px;
	cursor: pointer;
	font-weight: 600;
}
.search-close {
	position: absolute;
	top: 1.5rem;
	right: 1rem;
	width: 44px;
	height: 44px;
	font-size: 1.5rem;
	background: none;
	border: none;
	color: var(--color-text);
	cursor: pointer;
}

/* Mobile menu panel */
.mobile-menu-panel {
	position: fixed;
	top: 56px;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 99;
	background: var(--color-surface);
	padding: 1rem;
	transform: translateX(-100%);
	transition: transform 0.2s;
	overflow-y: auto;
}
.mobile-menu-panel.is-open {
	transform: translateX(0);
}
.mobile-menu {
	list-style: none;
	margin: 0;
	padding: 0;
}
.mobile-menu li { margin: 0; }
.mobile-menu a {
	display: block;
	padding: 0.75rem 0;
	color: var(--color-text);
	text-decoration: none;
	border-bottom: 1px solid var(--border-color);
}

@media (min-width: 768px) {
	.menu-toggle { display: none; }
	.nav-primary { display: block; }
	.mobile-menu-panel { display: none; }
}

/* --------------------------------------------------------------------------
   Hero Answer Box
   -------------------------------------------------------------------------- */
.hero-answer-box {
	background: var(--color-bg-alt);
	padding: 2.5rem 0;
	text-align: center;
}
.hero-title {
	margin: 0 0 1rem;
}
.hero-lead {
	max-width: 640px;
	margin: 0 auto 1.5rem;
	font-size: 1.0625rem;
	line-height: 1.6;
	color: var(--color-text-secondary);
}
.hero-lead p { margin: 0; }

.hero-answer-box.hero-align-left .container {
	text-align: left;
}
.hero-answer-box.hero-align-left .hero-lead { margin-left: 0; margin-right: 0; }
.hero-answer-box.hero-align-right .container {
	text-align: right;
}
.hero-answer-box.hero-align-right .hero-lead { margin-left: auto; margin-right: 0; }
.hero-answer-box.hero-align-center .container {
	text-align: center;
}

/* Buttons */
.button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	padding: 0.75rem 1.5rem;
	background: var(--color-accent);
	color: #fff;
	border: none;
	border-radius: 4px;
	font-weight: 600;
	text-decoration: none;
	cursor: pointer;
}
.button:hover {
	background: var(--color-accent-hover);
	color: #fff;
	text-decoration: none;
}
.button-cta {
	font-size: 1rem;
}
.button-outline {
	background: transparent;
	color: var(--color-accent);
	border: 2px solid var(--color-accent);
}
.button-outline:hover {
	background: var(--color-accent);
	color: #fff;
}

/* --------------------------------------------------------------------------
   Filter bar (chips)
   -------------------------------------------------------------------------- */
.filter-bar {
	padding: 1rem 0;
	border-bottom: 1px solid var(--border-color);
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
}
.filter-chips {
	display: flex;
	flex-wrap: nowrap;
	gap: 0.5rem;
	padding: 0 0 0.25rem;
}
.chip {
	display: inline-block;
	padding: 0.5rem 1rem;
	background: var(--color-surface);
	border: 1px solid var(--border-color);
	border-radius: 999px;
	color: var(--color-text);
	text-decoration: none;
	white-space: nowrap;
	flex-shrink: 0;
}
.chip:hover {
	border-color: var(--color-accent);
	color: var(--color-accent);
	text-decoration: none;
}
.chip-active {
	background: var(--color-accent);
	border-color: var(--color-accent);
	color: #fff;
}
.chip-active:hover {
	color: #fff;
	text-decoration: none;
}

/* --------------------------------------------------------------------------
   Section titles
   -------------------------------------------------------------------------- */
.section {
	padding: 2rem 0;
	margin-top: 50px;
}
.section-title {
	margin: 0 0 1.25rem;
	font-size: 1.5rem;
}

/* --------------------------------------------------------------------------
   Karuzela Najnowsze (5 artykułów)
   -------------------------------------------------------------------------- */
.section-carousel .container {
	position: relative;
}
.carousel-wrap {
	position: relative;
	display: flex;
	align-items: center;
	gap: 0.5rem;
}
.carousel-btn {
	position: absolute;
	z-index: 2;
	top: 50%;
	transform: translateY(-50%);
	width: 44px;
	height: 44px;
	padding: 0;
	border: none;
	background: var(--color-surface);
	color: var(--color-text);
	box-shadow: var(--shadow-card);
	border-radius: 50%;
	cursor: pointer;
	font-size: 1.25rem;
	line-height: 1;
	flex-shrink: 0;
}
.carousel-btn:hover {
	background: var(--color-accent);
	color: #fff;
}
.carousel-prev { left: -0.5rem; }
.carousel-next { right: -0.5rem; }
.carousel-track {
	display: flex;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	-webkit-overflow-scrolling: touch;
	scroll-behavior: smooth;
	gap: 0;
	flex: 1;
	scrollbar-width: none;
}
.carousel-track::-webkit-scrollbar {
	display: none;
}
.carousel-slide {
	flex: 0 0 100%;
	scroll-snap-align: start;
	width: 100%;
}
@media (min-width: 768px) {
	.carousel-slide { flex: 0 0 50%; }
}
@media (min-width: 992px) {
	.carousel-slide { flex: 0 0 33.333%; }
}
.carousel-slide-link {
	display: block;
	text-decoration: none;
	color: inherit;
	height: 100%;
	background: var(--color-surface);
	border-radius: 8px;
	overflow: hidden;
	box-shadow: var(--shadow-card);
}
.carousel-slide-link:hover {
	text-decoration: none;
	color: inherit;
}
.carousel-slide-image {
	aspect-ratio: 16/9;
	overflow: hidden;
}
.carousel-slide-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.carousel-slide-placeholder {
	background: var(--color-bg-alt);
}
.carousel-slide-body {
	padding: 1rem;
}
.carousel-slide-title {
	margin: 0 0 0.5rem;
	font-size: 1.125rem;
	line-height: 1.3;
}
.carousel-slide-excerpt {
	margin: 0;
	font-size: 0.9375rem;
	color: var(--color-text-secondary);
	line-height: 1.5;
}
.carousel-dots {
	display: flex;
	justify-content: center;
	gap: 0.5rem;
	margin-top: 1rem;
}
.carousel-dots button {
	width: 10px;
	height: 10px;
	padding: 0;
	border: none;
	border-radius: 50%;
	background: var(--border-color);
	cursor: pointer;
	transition: background 0.2s;
}
.carousel-dots button.active {
	background: var(--color-accent);
}

/* Wiadomości z kategorii (obraz | tytuł + zajawka) */
.category-news-list {
	display: flex;
	flex-direction: column;
	gap: 1rem;
}
.category-news-item { margin: 0; }
.category-news-link {
	display: grid;
	grid-template-columns: 140px 1fr;
	gap: 1rem;
	align-items: start;
	text-decoration: none;
	color: inherit;
	background: var(--color-surface);
	border-radius: 8px;
	overflow: hidden;
	box-shadow: var(--shadow-card);
	min-height: 100px;
}
.category-news-link:hover { text-decoration: none; color: inherit; }
@media (min-width: 640px) {
	.category-news-link { grid-template-columns: 200px 1fr; }
}
.category-news-image {
	aspect-ratio: 16/10;
	overflow: hidden;
}
.category-news-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.category-news-image-placeholder { background: var(--color-bg-alt); }
.category-news-content {
	padding: 1rem 1rem 1rem 0;
	min-width: 0;
}
.category-news-title {
	margin: 0 0 0.5rem;
	font-size: 1.0625rem;
	line-height: 1.35;
}
.category-news-excerpt {
	margin: 0;
	font-size: 0.9375rem;
	color: var(--color-text-secondary);
	line-height: 1.5;
}

/* Sklep – kafelki (obraz | nazwa) */
.shop-tiles {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 1rem;
}
@media (min-width: 640px) {
	.shop-tiles { grid-template-columns: repeat(3, 1fr); }
}
@media (min-width: 992px) {
	.shop-tiles { grid-template-columns: repeat(5, 1fr); }
}
.shop-tile {
	display: flex;
	flex-direction: column;
	text-decoration: none;
	color: var(--color-text);
	background: var(--color-surface);
	border-radius: 8px;
	overflow: hidden;
	box-shadow: var(--shadow-card);
}
.shop-tile:hover { text-decoration: none; color: var(--color-accent); }
.shop-tile-image {
	aspect-ratio: 1;
	overflow: hidden;
}
.shop-tile-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.shop-tile-image-placeholder { background: var(--color-bg-alt); }
.shop-tile-name {
	display: block;
	padding: 0.75rem 1rem;
	font-weight: 600;
	font-size: 0.9375rem;
	text-align: center;
}

/* 15 ostatnich artykułów – kompakt */
.container-narrow { max-width: 720px; }
.articles-compact-list { list-style: none; margin: 0; padding: 0; }
.articles-compact-item {
	margin: 0;
	border-bottom: 1px solid var(--border-color);
}
.articles-compact-item:last-child { border-bottom: none; }
.articles-compact-link {
	display: block;
	padding: 0.875rem 0;
	text-decoration: none;
	color: inherit;
}
.articles-compact-link:hover { text-decoration: none; color: inherit; }
.articles-compact-title {
	display: block;
	font-weight: 600;
	font-size: 1rem;
	margin-bottom: 0.25rem;
}
.articles-compact-link:hover .articles-compact-title { color: var(--color-accent); }
.articles-compact-excerpt {
	display: block;
	font-size: 0.875rem;
	color: var(--color-text-secondary);
	line-height: 1.5;
}

/* Articles grid */
.articles-grid {
	display: grid;
	gap: 1.5rem;
}
@media (min-width: 640px) {
	.articles-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (min-width: 992px) {
	.articles-grid { grid-template-columns: repeat(3, 1fr); }
}

.article-card {
	margin: 0;
	background: var(--color-surface);
	border-radius: 8px;
	box-shadow: var(--shadow-card);
	overflow: hidden;
}
.article-card-link {
	display: block;
	text-decoration: none;
	color: inherit;
}
.article-card-link:hover {
	text-decoration: none;
	color: inherit;
}
.article-card-image {
	aspect-ratio: 16/10;
	overflow: hidden;
}
.article-card-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.article-card-body { padding: 1rem; }
.article-card-title {
	margin: 0 0 0.5rem;
	font-size: 1.125rem;
	line-height: 1.35;
}
.article-card-title a {
	color: var(--color-text);
	text-decoration: none;
}
.article-card-title a:hover {
	color: var(--color-accent);
}
.article-card-meta {
	font-size: 0.875rem;
	color: var(--color-text-secondary);
	margin-bottom: 0.5rem;
}
.article-card-excerpt {
	margin: 0 0 0.5rem;
	font-size: 0.9375rem;
	color: var(--color-text-secondary);
	line-height: 1.5;
}
.article-card-tags {
	font-size: 0.8125rem;
	color: var(--color-text-secondary);
	margin-bottom: 0.5rem;
}
.article-card-cta {
	font-size: 0.875rem;
	font-weight: 600;
	color: var(--color-accent);
}

/* Pagination */
.pagination {
	margin-top: 2rem;
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
	gap: 0.25rem;
}
.pagination a,
.pagination span {
	display: inline-block;
	min-width: 44px;
	height: 44px;
	line-height: 44px;
	text-align: center;
	padding: 0 0.5rem;
	background: var(--color-surface);
	border-radius: 4px;
	color: var(--color-text);
	text-decoration: none;
}
.pagination .current {
	background: var(--color-accent);
	color: #fff;
}
.pagination a:hover {
	background: var(--color-accent);
	color: #fff;
	text-decoration: none;
}

/* --------------------------------------------------------------------------
   Pillars (przewodniki)
   -------------------------------------------------------------------------- */
.pillars-grid {
	display: grid;
	gap: 1.5rem;
}
@media (min-width: 640px) {
	.pillars-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (min-width: 992px) {
	.pillars-grid { grid-template-columns: repeat(4, 1fr); }
}

.pillar-card {
	background: var(--color-surface);
	border-radius: 8px;
	box-shadow: var(--shadow-card);
	overflow: hidden;
	margin: 0;
}
.pillar-card-image {
	display: block;
	aspect-ratio: 16/10;
	overflow: hidden;
}
.pillar-card-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.pillar-card-body { padding: 1rem; }
.pillar-card-title {
	margin: 0 0 0.5rem;
	font-size: 1.125rem;
}
.pillar-card-title a {
	color: var(--color-text);
	text-decoration: none;
}
.pillar-card-title a:hover { color: var(--color-accent); }
.pillar-card-excerpt {
	margin: 0 0 1rem;
	font-size: 0.9375rem;
	color: var(--color-text-secondary);
}

/* --------------------------------------------------------------------------
   Products grid
   -------------------------------------------------------------------------- */
.products-grid {
	display: grid;
	gap: 1.5rem;
	grid-template-columns: repeat(2, 1fr);
}
@media (min-width: 768px) {
	.products-grid { grid-template-columns: repeat(3, 1fr); }
}
@media (min-width: 992px) {
	.products-grid { grid-template-columns: repeat(4, 1fr); }
}

.product-card {
	background: var(--color-surface);
	border-radius: 8px;
	box-shadow: var(--shadow-card);
	overflow: hidden;
	margin: 0;
}
.product-card-link {
	display: block;
	text-decoration: none;
	color: inherit;
	padding-bottom: 1rem;
}
.product-card-link:hover { text-decoration: none; color: inherit; }
.product-card-image {
	aspect-ratio: 1;
	overflow: hidden;
}
.product-card-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.product-card-body { padding: 1rem; }
.product-card-title {
	margin: 0 0 0.5rem;
	font-size: 1rem;
}
.product-card-title a { color: var(--color-text); text-decoration: none; }
.product-card-excerpt {
	margin: 0 0 0.5rem;
	font-size: 0.875rem;
	color: var(--color-text-secondary);
}
.product-card-price {
	font-weight: 700;
	color: var(--color-accent);
	margin-bottom: 0.5rem;
}
.section-more { margin-top: 1.5rem; text-align: center; }

/* --------------------------------------------------------------------------
   FAQ accordion
   -------------------------------------------------------------------------- */
.faq-accordion {
	max-width: 640px;
	margin: 0 auto;
}
.faq-item {
	background: var(--color-surface);
	border: 1px solid var(--border-color);
	border-radius: 8px;
	margin-bottom: 0.5rem;
	overflow: hidden;
}
.faq-item summary {
	padding: 1rem 1.25rem;
	font-weight: 600;
	cursor: pointer;
	list-style: none;
	display: flex;
	align-items: center;
	justify-content: space-between;
	min-height: 44px;
}
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary::after {
	content: "+";
	font-size: 1.25rem;
	color: var(--color-accent);
}
.faq-item[open] summary::after { content: "−"; }
.faq-answer {
	padding: 0 1.25rem 1rem;
	border-top: 1px solid var(--border-color);
}
.faq-answer p { margin: 0.5rem 0 0; }

.faq-expand-wrap {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 1rem;
	margin-top: 1.5rem;
	padding: 0 1rem;
}
.faq-expand-wrap::before,
.faq-expand-wrap::after {
	content: '';
	flex: 1;
	max-width: 80px;
	height: 1px;
	background: linear-gradient(to right, transparent, rgba(232, 143, 26, 0.5), transparent);
}
.faq-expand-wrap::before {
	background: linear-gradient(to right, transparent, var(--color-accent));
	opacity: 0.35;
}
.faq-expand-wrap::after {
	background: linear-gradient(to left, transparent, var(--color-accent));
	opacity: 0.35;
}
.faq-expand-btn {
	display: inline-block;
	padding: 0.6rem 1.5rem;
	font-size: 0.9375rem;
	font-weight: 600;
	color: #fff;
	background: var(--color-accent);
	border: 1px solid var(--color-accent);
	border-radius: 999px;
	cursor: pointer;
	transition: background 0.2s, color 0.2s, border-color 0.2s;
	flex-shrink: 0;
}
.faq-expand-btn:hover {
	background: var(--color-accent-hover);
	border-color: var(--color-accent-hover);
	color: #fff;
}
.faq-accordion-more { margin-top: 0.5rem; }
.faq-accordion-more[hidden] { display: none !important; }
.faq-accordion-more.faq-more-visible { display: block !important; }

/* --------------------------------------------------------------------------
   Partnerzy (slider)
   -------------------------------------------------------------------------- */
.section-partnerzy {
	background: var(--color-bg-alt);
	border-top: 1px solid var(--border-color);
}
.partnerzy-slider {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-wrap: wrap;
	gap: 2rem 2.5rem;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	-webkit-overflow-scrolling: touch;
	padding: 1rem 0;
	scrollbar-width: none;
}
.partnerzy-slider::-webkit-scrollbar {
	display: none;
}
.partnerzy-slide {
	scroll-snap-align: center;
	flex-shrink: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	min-width: 120px;
	max-width: 180px;
}
.partnerzy-slide a {
	display: flex;
	align-items: center;
	justify-content: center;
	text-decoration: none;
}
.partnerzy-slide img {
	max-height: 56px;
	width: auto;
	max-width: 100%;
	object-fit: contain;
	opacity: 0.85;
	filter: grayscale(30%);
	transition: opacity 0.2s, filter 0.2s;
}
.partnerzy-slide a:hover img,
.partnerzy-slide:hover img {
	opacity: 1;
	filter: grayscale(0%);
}
.partnerzy-placeholder {
	margin: 0;
	padding: 1rem;
	text-align: center;
	font-size: 0.9375rem;
	color: var(--color-text-secondary);
}

/* --------------------------------------------------------------------------
   Breadcrumbs
   -------------------------------------------------------------------------- */
.breadcrumbs {
	padding: 0.75rem 0;
	font-size: 0.875rem;
	color: var(--color-text-secondary);
}
.breadcrumbs-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 0.25rem;
}
.breadcrumbs-list li::after {
	content: "›";
	margin-left: 0.25rem;
	color: var(--color-text-secondary);
}
.breadcrumbs-list li:last-child::after { display: none; }
.breadcrumbs a {
	color: var(--color-text-secondary);
	text-decoration: none;
}
.breadcrumbs a:hover { color: var(--color-accent); }

/* --------------------------------------------------------------------------
   Single article
   -------------------------------------------------------------------------- */
.single-article .container,
.single-page .container {
	max-width: 720px;
	padding: 1rem;
}
.entry-header {
	margin-bottom: 1.5rem;
}
.entry-meta {
	font-size: 0.875rem;
	color: var(--color-text-secondary);
}
.entry-summary-box {
	background: var(--color-bg-alt);
	border-left: 4px solid var(--color-accent);
	padding: 1rem 1.25rem;
	margin: 1.5rem 0;
	border-radius: 0 4px 4px 0;
}
.summary-box-title {
	margin: 0 0 0.5rem;
	font-size: 1rem;
}
.toc {
	background: var(--color-surface);
	padding: 1rem 1.25rem;
	margin: 1.5rem 0;
	border-radius: 8px;
	border: 1px solid var(--border-color);
}
.toc-title { margin: 0 0 0.75rem; font-size: 1rem; }
.toc-list {
	list-style: none;
	margin: 0;
	padding: 0;
}
.toc-list li { margin: 0.25rem 0; }
.toc-level-3 { padding-left: 1rem; }
.entry-content {
	margin: 1.5rem 0;
}
.entry-content h2 { margin-top: 2rem; }
.entry-content img {
	height: auto;
	border-radius: 4px;
}
.author-bio {
	display: flex;
	gap: 1rem;
	margin: 2rem 0;
	padding: 1.5rem;
	background: var(--color-bg-alt);
	border-radius: 8px;
}
.author-bio img {
	border-radius: 50%;
	flex-shrink: 0;
}
.author-name { margin: 0 0 0.25rem; font-size: 1rem; }
.author-desc { margin: 0 0 0.5rem; font-size: 0.9375rem; color: var(--color-text-secondary); }
.related-posts { margin-top: 2rem; }
.related-list {
	list-style: none;
	margin: 0;
	padding: 0;
}
.related-list li { margin: 0.5rem 0; }
.related-list a { text-decoration: none; }
.related-list a:hover { text-decoration: underline; }

/* --------------------------------------------------------------------------
   Content + Sidebar (70% / 30%)
   -------------------------------------------------------------------------- */
.content-sidebar-wrap {
	display: grid;
	gap: 2rem;
	margin-top: 0;
}
.content-sidebar-wrap .main-content {
	min-width: 0;
}

/* Desktop: sidebar widoczny tylko gdy .sidebar-on-desktop */
@media (min-width: 768px) {
	.content-sidebar-wrap {
		grid-template-columns: 1fr 30%;
	}
	body:not(.sidebar-on-desktop) .site-sidebar {
		display: none;
	}
	body:not(.sidebar-on-desktop) .content-sidebar-wrap {
		grid-template-columns: 1fr;
	}
}

/* Mobile: sidebar widoczny tylko gdy .sidebar-on-mobile */
@media (max-width: 767px) {
	.content-sidebar-wrap {
		grid-template-columns: 1fr;
	}
	body:not(.sidebar-on-mobile) .site-sidebar {
		display: none;
	}
}

.site-sidebar {
	padding-top: 0.5rem;
}
.sidebar-widgets-top {
	margin-bottom: 1.5rem;
}
.sidebar-widgets-top .widget,
.sidebar-widgets-bottom .widget {
	margin-bottom: 1.5rem;
}
.site-sidebar .widget-title {
	margin: 0 0 0.75rem;
	font-size: 1rem;
}

/* Archive header */
.archive-header {
	padding: 1.5rem 0;
	border-bottom: 1px solid var(--border-color);
}
.archive-description {
	margin-top: 0.5rem;
	color: var(--color-text-secondary);
}

/* 404 */
.error-404 {
	text-align: center;
	padding: 3rem 1rem;
}
.error-title { margin: 0 0 0.5rem; }
.error-text { margin: 0 0 1.5rem; color: var(--color-text-secondary); }
.error-404 .search-form {
	justify-content: center;
	margin-top: 1.5rem;
}

/* --------------------------------------------------------------------------
   Footer
   -------------------------------------------------------------------------- */
.site-footer {
	background: var(--color-bg-alt);
	border-top: 1px solid var(--border-color);
	padding: 2rem 0 1rem;
	margin-top: 2rem;
}

.footer-blocks-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 1.5rem;
	margin-bottom: 1.5rem;
}
@media (min-width: 640px) {
	.footer-blocks-grid { grid-template-columns: repeat(4, 1fr); }
}
.footer-blocks-compact {
	display: flex;
	flex-wrap: wrap;
	gap: 1rem;
	margin-bottom: 1.5rem;
}
.footer-blocks-compact .footer-block {
	flex: 1 1 180px;
	min-width: 0;
}
.footer-block-title {
	margin: 0 0 0.5rem;
	font-size: 1rem;
}
.footer-block-title a {
	color: var(--color-text);
	text-decoration: none;
}
.footer-block-title a:hover {
	color: var(--color-accent);
}
.footer-block-content {
	font-size: 0.9375rem;
	color: var(--color-text-secondary);
	line-height: 1.5;
}
.footer-block-content a { color: var(--color-accent); }
.footer-block-image {
	max-width: 100%;
	height: auto;
	display: block;
	margin-bottom: 0.5rem;
}
.footer-block-image-link { display: inline-block; }

.footer-widgets {
	display: grid;
	gap: 1.5rem;
	margin-bottom: 1.5rem;
}
@media (min-width: 640px) {
	.footer-widgets { grid-template-columns: repeat(2, 1fr); }
}
@media (min-width: 992px) {
	.footer-widgets { grid-template-columns: repeat(4, 1fr); }
}
.footer-widget-title {
	margin: 0 0 0.75rem;
	font-size: 1rem;
}
.footer-menu {
	list-style: none;
	margin: 0 0 1rem;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem 1rem;
}
.footer-menu a {
	color: var(--color-text-secondary);
	text-decoration: none;
}
.footer-menu a:hover { color: var(--color-accent); }
.footer-bottom {
	text-align: center;
	padding-top: 1rem;
	border-top: 1px solid var(--border-color);
}
.footer-nap { margin-bottom: 0.5rem; font-size: 0.9375rem; }
.footer-copy {
	margin: 0;
	font-size: 0.875rem;
	color: var(--color-text-secondary);
}

/* WooCommerce overrides */
.woocommerce-wrap { padding: 1rem 0; }

/* Przyciski WooCommerce – kolor akcentu z motywu (bez fioletu) */
.woocommerce .button,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce .button.alt,
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce #respond input#submit,
.woocommerce input.button,
.woocommerce .single_add_to_cart_button {
	background-color: var(--color-accent) !important;
	border-color: var(--color-accent) !important;
	color: #fff !important;
}
.woocommerce .button:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce .button.alt:hover,
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.woocommerce #respond input#submit:hover,
.woocommerce input.button:hover,
.woocommerce .single_add_to_cart_button:hover {
	background-color: var(--color-accent-hover) !important;
	border-color: var(--color-accent-hover) !important;
	color: #fff !important;
}

/* Strona sklepu – pasek z liczbą wyników i sortowaniem */
.shop-toolbar {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	margin-bottom: 1.5rem;
	padding-top: 0.5rem;
	border-bottom: 1px solid var(--border-color);
	padding-bottom: 1rem;
}
.woocommerce-result-count {
	margin: 0;
	font-size: 0.9375rem;
	color: var(--color-text-secondary);
}
.woocommerce-ordering select {
	background-color: var(--color-surface);
	color: var(--color-text);
	border: 1px solid var(--border-color);
	border-radius: 6px;
	padding: 0.5rem 2rem 0.5rem 0.75rem;
	font-size: 0.9375rem;
	min-height: 44px;
	cursor: pointer;
	appearance: auto;
}
.woocommerce-ordering select:hover,
.woocommerce-ordering select:focus {
	border-color: var(--color-accent);
	outline: none;
}

/* Siatka produktów na stronie sklepu */
.woocommerce ul.products {
	display: grid;
	gap: 1.5rem;
	grid-template-columns: repeat(2, 1fr);
	list-style: none;
	margin: 0 0 2rem;
	padding: 0;
	align-items: start;
}
@media (min-width: 768px) {
	.woocommerce ul.products { grid-template-columns: repeat(3, 1fr); }
}
@media (min-width: 992px) {
	.woocommerce ul.products { grid-template-columns: repeat(4, 1fr); }
}
.woocommerce ul.products li.product {
	background: var(--color-surface);
	border: 1px solid var(--border-color);
	border-radius: 8px;
	box-shadow: var(--shadow-card);
	padding: 0;
	margin: 0;
	overflow: hidden;
	display: flex;
	flex-direction: column;
	min-height: 0;
}
/* Karta produktu w sklepie (szablon content-product) */
.woocommerce ul.products li.product .product-card-link {
	display: block;
	text-decoration: none;
	color: inherit;
	flex: 1;
}
.woocommerce ul.products li.product .product-card-link:hover {
	text-decoration: none;
	color: inherit;
}
.woocommerce ul.products li.product .product-card-image {
	aspect-ratio: 1;
	overflow: hidden;
	background: var(--color-bg-alt);
}
.woocommerce ul.products li.product .product-card-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.woocommerce ul.products li.product .product-card-image--placeholder {
	display: flex;
	align-items: center;
	justify-content: center;
}
.woocommerce ul.products li.product .product-card-placeholder {
	font-size: 0.875rem;
	color: var(--color-text-secondary);
}
.woocommerce ul.products li.product .product-card-body {
	padding: 1rem 1rem 0.5rem;
}
.woocommerce ul.products li.product .product-card-title {
	margin: 0 0 0.5rem;
	font-size: 1rem;
	font-weight: 600;
	color: var(--color-text);
}
.woocommerce ul.products li.product .product-card-price {
	display: block;
	font-weight: 700;
	color: var(--color-accent);
	margin-bottom: 0;
}
.woocommerce ul.products li.product .product-card-actions {
	padding: 1rem;
	margin-top: auto;
	flex-shrink: 0;
}
.woocommerce ul.products li.product .product-card-actions .button {
	width: 100%;
	justify-content: center;
	min-height: 48px;
	padding: 0.75rem 1rem;
	white-space: normal;
	line-height: 1.3;
	text-align: center;
}

.product-top {
	display: grid;
	gap: 1.5rem;
	margin-bottom: 2rem;
}
@media (min-width: 768px) {
	.product-top { grid-template-columns: 1fr 1fr; }
}
.product-trust {
	display: flex;
	gap: 1rem;
	margin-top: 1rem;
	font-size: 0.875rem;
	color: var(--color-text-secondary);
}

.no-posts {
	text-align: center;
	padding: 2rem;
	color: var(--color-text-secondary);
}

/* Szablony dla edytorów stron (Elementor, Kadence, Bricks itd.) */
.site-main--full-width,
.site-main--canvas {
	max-width: none;
	width: 100%;
	padding: 0;
}
.entry-content--full-width,
.entry-content--canvas {
	max-width: none;
	width: 100%;
}
.page-template-canvas .site-main--canvas {
	min-height: 50vh;
}
