/**
 * Block theme (Site Editor) — bridges WordPress block markup with Uwaga design tokens.
 */

/* ==========================================================================
   Global — neutralize WP layout defaults that fight .container
   ========================================================================== */

.wp-site-blocks,
#page.site {
	width: 100%;
}

/* Theme uses .container for horizontal padding — not root padding */
:root :where(.is-layout-constrained) > .container,
:root :where(.is-layout-constrained) > .container--narrow,
.site-header .container,
.site-footer .container,
.site-home.container,
.site-main .container {
	max-width: none !important;
	width: 100% !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
}

.site-main .container--narrow,
:root :where(.is-layout-constrained) > .container--narrow {
	max-width: 720px !important;
}

/* Block groups: no extra outer spacing on structural wrappers */
.site-header.wp-block-group,
.site-footer.wp-block-group,
.site-main.wp-block-group,
.site-header__shell,
.site-nav-drawer,
.site-home,
[class*="wp-block-uwaga"] {
	margin-block: 0;
}

.site-main.wp-block-group {
	padding-bottom: 4rem;
}

/* ==========================================================================
   Header / footer template parts
   ========================================================================== */

.site-header .wp-block-group {
	gap: 0;
}

@media (min-width: 901px) {
	.site-header__shell.site-header__shell {
		gap: 1.5rem !important;
	}

	.site-nav-drawer__tools.site-nav-drawer__tools {
		gap: 0.75rem !important;
	}
}

@media (max-width: 900px) {
	.site-nav-drawer__tools.site-nav-drawer__tools {
		gap: 1.25rem !important;
	}
}

.site-header__brand:has(.wp-block-site-logo img) .wp-block-site-title,
.site-header__brand:has(.custom-logo) .site-header__title {
	display: none;
}

.site-header .wp-block-site-title.site-header__title {
	font-family: var(--uwaga-font-display);
	font-size: 1.75rem;
	font-weight: 400;
	text-transform: uppercase;
	letter-spacing: 0.12em;
	line-height: 1;
	margin: 0;
}

.site-header .wp-block-shortcode {
	margin: 0;
	padding: 0;
	display: block;
}

.site-header .wp-block-shortcode > p {
	margin: 0;
	padding: 0;
	display: contents;
}

.site-header__actions .site-nav-toggle,
.site-header__actions .wp-block-shortcode > .site-nav-toggle {
	display: inline-flex !important;
}

.site-nav-drawer__tools .theme-toggle,
.site-nav-drawer__tools .header-cart {
	color: var(--uwaga-text);
}

.site-nav-drawer__tools .theme-toggle .theme-toggle__icon,
.site-nav-drawer__tools .header-cart__icon {
	background-color: currentColor;
}

.site-header__bar {
	min-width: 0;
}

.site-header__shell > .site-nav-drawer {
	min-width: 0;
}

/* WordPress block layout adds vertical gaps between header children */
.site-header .is-layout-flow > * + *,
.site-header .is-layout-constrained > * + * {
	margin-block-start: 0 !important;
}

.site-header__brand.is-layout-flow {
	display: flex !important;
	align-items: center;
}

.site-header__brand .wp-block-site-title {
	margin: 0;
}

.site-header__actions.is-layout-flow > * {
	margin-block-start: 0 !important;
}

@media (max-width: 900px) {
	.site-header__shell.is-layout-flow > * {
		margin-block-start: 0 !important;
	}

	.site-header__actions .header-cart__badge {
		z-index: 1;
	}
}

@media (min-width: 901px) {
	.site-header__actions {
		display: none !important;
	}

	.site-header .wp-block-navigation.site-nav,
	.site-header nav.site-nav {
		width: auto !important;
	}

	.site-header .wp-block-navigation.site-nav ul,
	.site-header ul.site-nav__menu {
		display: flex !important;
		flex-direction: row !important;
		flex-wrap: nowrap !important;
		margin: 0;
		padding: 0;
		list-style: none;
	}

	.site-header .wp-block-navigation.site-nav li {
		width: auto;
		white-space: nowrap;
	}
}


.site-nav-drawer__label {
	margin: 0 !important;
}

.site-footer__grid {
	width: 100%;
}

.site-footer__bottom {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 1rem 1.5rem;
	width: 100%;
	padding-top: clamp(1.25rem, 3vw, 1.75rem);
	border-top: var(--uwaga-stroke) solid var(--uwaga-border);
}

.site-footer__widgets {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
	gap: clamp(1.5rem, 4vw, 2.5rem);
	width: 100%;
	padding-top: clamp(1.5rem, 4vw, 2.5rem);
	border-top: var(--uwaga-stroke) solid var(--uwaga-border);
}

.site-footer__widgets .widget {
	margin-bottom: 0;
}

.site-footer__widgets .widget:last-child {
	margin-bottom: 0;
}

.site-footer__widgets .widget-title {
	margin: 0 0 0.75rem;
	font-family: var(--uwaga-font-display);
	font-size: 1.25rem;
	font-weight: 400;
	text-transform: uppercase;
	letter-spacing: 0.08em;
}

.site-footer__widgets .widget a {
	text-decoration: underline;
	text-underline-offset: 3px;
}

.site-footer__widgets .widget a:hover {
	opacity: 0.65;
}

/* ==========================================================================
   Homepage blocks
   ========================================================================== */

.site-home > [class*="wp-block-uwaga"],
.site-home > .hero,
.site-home > .uwaga-marquee,
.site-home > .home-products {
	width: 100%;
	max-width: none;
}

.site-home > .uwaga-marquee {
	margin-top: clamp(0.5rem, 2vw, 1.5rem);
}

/* Hero — core/site-title + site-tagline in block templates */
.hero .wp-block-site-title.hero__title,
.hero h1.hero__title {
	font-family: var(--uwaga-font-display);
	font-size: clamp(2.5rem, 11vw, 8rem);
	font-weight: 400;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	line-height: 0.9;
	margin: 0 0 1rem;
	max-width: 100%;
}

.hero .wp-block-site-tagline.hero__lead,
.hero p.hero__lead {
	font-size: 1.0625rem;
	color: var(--uwaga-text-muted);
	max-width: 38ch;
	margin: 0 0 2rem;
}

.hero .wp-block-buttons.hero__actions {
	gap: 0;
	margin: 0;
}

.hero__content > .wp-block-site-tagline:empty {
	display: none;
}

.site-home > .hero,
.site-home > .home-products {
	width: 100%;
}

.home-products .section-head.wp-block-group,
.home-products .section-head {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 1rem;
	width: 100%;
	margin-bottom: 2rem;
	padding-bottom: 1rem;
	border-bottom: var(--uwaga-stroke) solid var(--uwaga-border);
}

.home-products .section-head .wp-block-heading.section-head__title {
	margin: 0;
}

.home-products .section-head__link {
	margin: 0;
}

@media (max-width: 600px) {
	.home-products .section-head.wp-block-group,
	.home-products .section-head {
		flex-direction: column;
		align-items: flex-start;
		gap: 0.5rem;
	}
}

.home-products .section-head__link a {
	font-family: var(--uwaga-font-mono);
	font-size: 0.75rem;
	text-transform: uppercase;
	letter-spacing: 0.12em;
	color: inherit;
	text-decoration: none;
}

.home-products .wp-block-shortcode {
	width: 100%;
}

.home-products .woocommerce {
	width: 100%;
}

/* ==========================================================================
   Core blocks — pages, blog, search
   ========================================================================== */

.wp-block-post-title.entry__title,
h1.wp-block-post-title.entry__title {
	font-family: var(--uwaga-font-display);
	font-size: clamp(2rem, 5vw, 3.5rem);
	font-weight: 400;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	line-height: 0.95;
	margin: 0 0 1.5rem;
}

body.woocommerce-order-received .wp-block-post-title.entry__title {
	display: none !important;
}

.wp-block-query-title.entry__title {
	font-family: var(--uwaga-font-display);
	font-size: clamp(2rem, 5vw, 3.5rem);
	font-weight: 400;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	line-height: 0.95;
	margin: 0 0 2rem;
	padding-top: 3rem;
}

.wp-block-group.entry {
	padding: 3rem 0;
	width: 100%;
}

.wp-block-post-template .wp-block-post-title {
	font-family: var(--uwaga-font-display);
	font-size: 1.5rem;
	font-weight: 400;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	line-height: 1;
	margin: 0 0 0.5rem;
}

.wp-block-post-template .wp-block-post-title a {
	color: inherit;
	text-decoration: none;
}

.wp-block-post-template .wp-block-post-title a:hover {
	opacity: 0.65;
	text-decoration: underline;
	text-underline-offset: 4px;
}

.wp-block-post-excerpt {
	font-size: 0.875rem;
	color: var(--uwaga-text-muted);
	margin: 0 0 2rem;
	max-width: 60ch;
}

.wp-block-post-excerpt p {
	margin: 0;
}

.entry__content.wp-block-post-content,
.wp-block-post-content.entry__content {
	padding-top: 0;
}

.entry__content :where(p, ul, ol, blockquote) {
	margin-bottom: 1rem;
}

.entry__content :where(h2, h3, h4) {
	font-family: var(--uwaga-font-display);
	text-transform: uppercase;
	letter-spacing: 0.04em;
	margin: 2rem 0 0.75rem;
}

.entry__content a {
	text-decoration: underline;
	text-underline-offset: 3px;
}

.entry__content a:hover {
	opacity: 0.65;
}

.wp-block-heading.entry__title {
	font-family: var(--uwaga-font-display);
	font-size: clamp(2rem, 5vw, 3.5rem);
	font-weight: 400;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	line-height: 0.95;
	margin: 0 0 1rem;
	padding-top: 3rem;
}

/* Pagination */
.wp-block-query-pagination {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	margin: 2rem 0 3rem;
	padding: 0;
	list-style: none;
}

.wp-block-query-pagination a,
.wp-block-query-pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 2.5rem;
	height: 2.5rem;
	padding: 0 0.5rem;
	border: var(--uwaga-stroke) solid var(--uwaga-border);
	font-family: var(--uwaga-font-mono);
	font-size: 0.75rem;
	text-transform: uppercase;
	text-decoration: none;
	color: inherit;
}

.wp-block-query-pagination .current,
.wp-block-query-pagination .page-numbers.current {
	background: var(--uwaga-accent);
	color: var(--uwaga-on-accent);
}

/* Core buttons — align with .btn */
.wp-block-button__link,
.wp-element-button,
:root .wp-block-button .wp-block-button__link {
	border-radius: 0 !important;
	font-family: var(--uwaga-font-mono) !important;
	font-size: 0.75rem !important;
	font-weight: 600 !important;
	text-transform: uppercase !important;
	letter-spacing: 0.16em !important;
	padding: 1rem 2rem !important;
	border: var(--uwaga-stroke) solid var(--uwaga-border) !important;
	background: var(--uwaga-accent) !important;
	color: var(--uwaga-on-accent) !important;
}

.wp-block-button__link:hover,
.wp-element-button:hover {
	opacity: 1 !important;
	color: var(--uwaga-on-accent) !important;
	transform: translate(-2px, -2px);
	box-shadow: var(--uwaga-shadow);
}

.wp-block-button.is-style-outline .wp-block-button__link {
	background: transparent !important;
	color: var(--uwaga-text) !important;
}

/* ==========================================================================
   WooCommerce legacy template + shortcodes inside blocks
   ========================================================================== */

.wp-block-woocommerce-legacy-template,
.wp-block-woocommerce-classic-shortcode {
	width: 100%;
	max-width: none;
	margin: 0;
}

.site-main--cart .wp-block-post-content,
.site-main--checkout .wp-block-post-content,
.site-main--account .wp-block-post-content {
	width: 100%;
	max-width: none;
}

.site-main--cart .wp-block-post-content > .woocommerce,
.site-main--checkout .wp-block-post-content > .woocommerce,
.site-main--account .wp-block-post-content > .woocommerce {
	width: 100%;
	max-width: none !important;
}

/* WooCommerce block-theme caps account/cart/checkout inner .woocommerce at 1000px */
body.woocommerce-account main .woocommerce,
body.woocommerce-cart main .woocommerce,
body.woocommerce-checkout main .woocommerce {
	max-width: none !important;
	width: 100%;
}

/* WC blocktheme: .woocommerce-page table.shop_table { width: 70% } */
body.woocommerce-order-received.woocommerce-page .uwaga-order-received__table-wrap table.shop_table,
body.woocommerce-order-received.woocommerce-page table.shop_table.order_details,
body.woocommerce-order-received.woocommerce-page .woocommerce-customer-details address {
	width: 100% !important;
	max-width: none !important;
	box-sizing: border-box;
}

/* Full-width product layout */
.site-main--product .wp-block-woocommerce-legacy-template {
	width: 100%;
}

/* ==========================================================================
   Block gap / flow spacing inside main
   ========================================================================== */

.site-main .is-layout-flow > * + * {
	margin-block-start: 0;
}

.site-main--home .site-home.is-layout-flow > * + * {
	margin-block-start: 0;
}

/* ==========================================================================
   Images & media in post content
   ========================================================================== */

.entry__content .wp-block-image img,
.wp-block-post-content img {
	border: var(--uwaga-stroke) solid var(--uwaga-border);
}

.entry__content .wp-block-image figcaption,
.wp-block-post-content figcaption {
	font-family: var(--uwaga-font-mono);
	font-size: 0.6875rem;
	color: var(--uwaga-text-muted);
	text-align: left;
	margin-top: 0.5rem;
}

/* Tables */
.entry__content table,
.wp-block-post-content table {
	width: 100%;
	border-collapse: collapse;
	margin-bottom: 1.5rem;
}

.entry__content th,
.entry__content td,
.wp-block-post-content th,
.wp-block-post-content td {
	border: var(--uwaga-stroke) solid var(--uwaga-border);
	padding: 0.5rem 0.75rem;
	text-align: left;
}

/* Separator */
.wp-block-separator,
hr.wp-block-separator {
	border: none;
	border-top: var(--uwaga-stroke) solid var(--uwaga-border);
	margin: 2rem 0;
}

/* Notices from shortcodes / blocks */
.site-main .wp-block-group .woocommerce-message,
.site-main .wp-block-group .woocommerce-info,
.site-main .wp-block-group .woocommerce-error {
	margin-bottom: 1.5rem;
}
