/*
Theme Name: Mabu
Description: Thema voor de webshop van Mabu — cosmetica, Paraguay. Blokthema, eigen bouw.
Author: Mabu
Version: 0.2.0
Requires at least: 6.5
Tested up to: 7.1
Requires PHP: 8.1
Text Domain: mabu
*/

/*
  Kleuren, lettergroottes en knopstijlen staan in theme.json.
  DE ACCENTKLEUR WIJZIGEN? Eén plek: "accent" in theme.json. Alles hieronder
  gebruikt var(--wp--preset--color--accent), nooit een losse hexwaarde.
*/

:root {
	--mabu-radius: 20px;
	--mabu-shadow: 0 18px 50px rgba(48, 26, 31, 0.10);
	--mabu-shadow-sm: 0 6px 20px rgba(48, 26, 31, 0.07);
}

/* ---------- Aankondigingsbalk ---------- */

.mabu-topbar {
	background: linear-gradient(100deg, var(--wp--preset--color--accent), var(--wp--preset--color--accent-2));
	color: #fff;
	padding-block: 9px;
}

.mabu-topbar p {
	margin: 0;
	font-size: var(--wp--preset--font-size--xs);
	letter-spacing: 0.02em;
}

/* ---------- Kop ---------- */

.mabu-header {
	position: sticky;
	top: 0;
	z-index: 20;
	background: color-mix(in srgb, var(--wp--preset--color--paper) 85%, transparent);
	backdrop-filter: blur(20px);
	border-bottom: 1px solid var(--wp--preset--color--line);
	padding-block: 14px;
}

.mabu-brand {
	gap: 12px;
	align-items: center;
}

/* Het logo is een rond embleem op een witte achtergrond: rond afsnijden. */
.wp-block-site-logo img {
	display: block;
	border-radius: 50%;
}

/* Kleiner is het logo onleesbaar. */
.mabu-header .wp-block-site-logo img {
	width: 96px;
	height: 96px;
}

.mabu-foot-logo {
	margin-bottom: 14px;
}

.mabu-header .wp-block-site-title {
	font-size: 15px;
	font-weight: 700;
	letter-spacing: 0.2em;
	text-transform: uppercase;
}

.mabu-nav {
	gap: 22px;
}

.mabu-nav p,
.mabu-actions p {
	margin: 0;
}

.mabu-nav a {
	position: relative;
	font-size: var(--wp--preset--font-size--small);
	font-weight: 500;
	color: var(--wp--preset--color--muted);
}

.mabu-nav a::after {
	content: "";
	position: absolute;
	left: 0;
	right: 100%;
	bottom: -6px;
	height: 2px;
	border-radius: 2px;
	background: var(--wp--preset--color--accent);
	transition: right 0.22s ease;
}

.mabu-nav a:hover {
	color: var(--wp--preset--color--ink);
}

.mabu-nav a:hover::after {
	right: 0;
}

.mabu-actions {
	gap: 10px;
	align-items: center;
}

.mabu-nav .mabu-nav-all {
	display: none;
}

/* Knop voor het mobiele menu: pas zichtbaar onder 860px. */
.mabu-menu-toggle {
	display: none;
	align-items: center;
	justify-content: center;
	width: 42px;
	height: 42px;
	padding: 0;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 999px;
	background: transparent;
	color: var(--wp--preset--color--ink);
	cursor: pointer;
}

/* Drie streepjes: het middelste is de span zelf, de buitenste zijn ::before
   en ::after. Open: het middelste verdwijnt en de andere twee kruisen. */
.mabu-menu-icon,
.mabu-menu-icon::before,
.mabu-menu-icon::after {
	display: block;
	width: 16px;
	height: 2px;
	border-radius: 2px;
	background: currentColor;
	transition: transform 0.2s ease, background 0.2s ease;
}

.mabu-menu-icon {
	position: relative;
}

.mabu-menu-icon::before,
.mabu-menu-icon::after {
	content: "";
	position: absolute;
	left: 0;
}

.mabu-menu-icon::before {
	transform: translateY(-5px);
}

.mabu-menu-icon::after {
	transform: translateY(5px);
}

.is-menu-open .mabu-menu-icon {
	background: transparent;
}

.is-menu-open .mabu-menu-icon::before {
	transform: rotate(45deg);
}

.is-menu-open .mabu-menu-icon::after {
	transform: rotate(-45deg);
}

.screen-reader-text {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
}

.mabu-link-plain a {
	font-size: var(--wp--preset--font-size--small);
	font-weight: 500;
}

.mabu-cart a {
	display: inline-block;
	padding: 10px 20px;
	border-radius: 999px;
	background: var(--wp--preset--color--ink);
	color: #fff;
	font-size: var(--wp--preset--font-size--small);
	font-weight: 600;
	transition: background 0.18s;
}

.mabu-cart a:hover {
	background: var(--wp--preset--color--accent);
	color: #fff;
}

/* ---------- Hero ---------- */

.mabu-hero {
	padding-block: clamp(34px, 5vw, 64px) 0;
}

.mabu-hero-cols {
	gap: 48px;
	align-items: center;
}

.mabu-eyebrow {
	margin: 0 0 16px;
	font-size: var(--wp--preset--font-size--xs);
	font-weight: 700;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--wp--preset--color--accent);
}

.mabu-hero h1 {
	margin: 0;
}

.mabu-hero h1 em {
	font-style: normal;
	background: linear-gradient(100deg, var(--wp--preset--color--accent), var(--wp--preset--color--accent-2) 70%);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
}

.mabu-lead {
	max-width: 44ch;
	margin-top: 18px;
	color: var(--wp--preset--color--muted);
	font-size: var(--wp--preset--font-size--lg);
	line-height: 1.55;
}

.mabu-hero-buttons {
	margin-top: 28px;
	gap: 10px;
}

/* Tweede knop: omlijnd in plaats van gevuld. */
.mabu-btn-ghost .wp-block-button__link {
	background: transparent;
	color: var(--wp--preset--color--ink);
	border: 1px solid var(--wp--preset--color--line);
}

.mabu-btn-ghost .wp-block-button__link:hover {
	background: transparent;
	border-color: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--accent);
}

/* Plaatshouder voor de productfoto die er nog niet is. */
.mabu-hero-art {
	position: relative;
	aspect-ratio: 4 / 3.4;
	border-radius: 28px;
	overflow: hidden;
	background:
		radial-gradient(120% 90% at 18% 12%, color-mix(in srgb, var(--wp--preset--color--accent) 42%, #fff) 0%, transparent 58%),
		radial-gradient(110% 100% at 88% 85%, color-mix(in srgb, var(--wp--preset--color--accent-2) 48%, #fff) 0%, transparent 60%),
		var(--wp--preset--color--accent-soft);
	box-shadow: var(--mabu-shadow);
	display: grid;
	place-items: center;
}

.mabu-hero-art-note {
	margin: 0;
	padding: 9px 16px;
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.72);
	color: var(--wp--preset--color--muted);
	font-size: var(--wp--preset--font-size--xs);
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

/* ---------- Vertrouwensrij ---------- */

.mabu-trust {
	margin-top: clamp(32px, 4vw, 54px);
	padding: 24px 28px;
	gap: 0;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--mabu-radius);
	background: var(--wp--preset--color--white);
	box-shadow: var(--mabu-shadow-sm);
}

.mabu-trust p {
	flex: 1 1 200px;
	margin: 0;
	padding: 2px 20px;
	border-left: 1px solid var(--wp--preset--color--line);
	color: var(--wp--preset--color--muted);
	font-size: var(--wp--preset--font-size--small);
	line-height: 1.5;
}

.mabu-trust p:first-child {
	border-left: 0;
	padding-left: 0;
}

.mabu-trust strong {
	display: block;
	margin-bottom: 3px;
	color: var(--wp--preset--color--ink);
	font-weight: 600;
}

/* ---------- Sectiekoppen ---------- */

.mabu-section-head {
	margin-block: clamp(44px, 6vw, 76px) 20px;
}

.mabu-section-head h2 {
	margin: 0 0 6px;
}

.mabu-section-head p {
	margin: 0;
	color: var(--wp--preset--color--muted);
}

.mabu-section-head-row {
	align-items: flex-end;
}

.mabu-seeall {
	margin: 0;
}

.mabu-seeall a {
	font-size: var(--wp--preset--font-size--small);
	font-weight: 600;
	color: var(--wp--preset--color--accent);
}

/* ---------- Categorietegels ---------- */

.mabu-tiles {
	gap: 16px;
}

.mabu-tiles .tile {
	flex: 1 1 200px;
	margin: 0;
}

.mabu-tiles .tile a {
	display: flex;
	align-items: flex-end;
	min-height: 150px;
	padding: 20px;
	border-radius: var(--mabu-radius);
	font-size: var(--wp--preset--font-size--lg);
	font-weight: 600;
	color: var(--wp--preset--color--ink);
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.mabu-tiles .tile a:hover {
	transform: translateY(-3px);
	box-shadow: var(--mabu-shadow);
	color: var(--wp--preset--color--ink);
}

.mabu-tiles .tile-1 a { background: linear-gradient(160deg, color-mix(in srgb, var(--wp--preset--color--accent) 24%, #fff), var(--wp--preset--color--white)); }
.mabu-tiles .tile-2 a { background: linear-gradient(160deg, color-mix(in srgb, var(--wp--preset--color--accent-2) 26%, #fff), var(--wp--preset--color--white)); }
.mabu-tiles .tile-3 a { background: linear-gradient(160deg, var(--wp--preset--color--soft), var(--wp--preset--color--white)); }
.mabu-tiles .tile-4 a { background: linear-gradient(160deg, color-mix(in srgb, var(--wp--preset--color--accent) 15%, var(--wp--preset--color--soft)), var(--wp--preset--color--white)); }

/* ---------- Productenraster (WooCommerce) ---------- */

.woocommerce ul.products {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 28px 24px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.woocommerce ul.products::before,
.woocommerce ul.products::after {
	content: none;
}

.woocommerce ul.products li.product {
	position: relative;
	width: auto !important;
	margin: 0 !important;
	float: none !important;
	text-align: left;
	padding: 10px 10px 16px;
	border-radius: var(--mabu-radius);
	transition: background 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}

.woocommerce ul.products li.product:hover {
	background: var(--wp--preset--color--white);
	box-shadow: var(--mabu-shadow);
	transform: translateY(-3px);
}

.woocommerce ul.products li.product a img {
	margin: 0 0 14px;
	border-radius: 14px;
	background: var(--wp--preset--color--soft);
	aspect-ratio: 1;
	object-fit: cover;
}

.woocommerce ul.products li.product .woocommerce-loop-product__title {
	padding: 0 !important;
	font-size: var(--wp--preset--font-size--base) !important;
	font-weight: 550;
	line-height: 1.35;
}

.woocommerce ul.products li.product .price {
	display: block;
	margin: 4px 0 12px;
	color: var(--wp--preset--color--ink) !important;
	font-size: var(--wp--preset--font-size--base);
	font-weight: 700;
}

.woocommerce ul.products li.product .button,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce .button {
	border-radius: 999px;
	background: var(--wp--preset--color--ink);
	color: #fff;
	font-size: var(--wp--preset--font-size--small);
	font-weight: 600;
	padding: 11px 22px;
	transition: background 0.18s;
}

.woocommerce ul.products li.product .button:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover {
	background: var(--wp--preset--color--accent);
	color: #fff;
}

.woocommerce span.onsale,
.woocommerce .onsale {
	background: var(--wp--preset--color--accent);
	border-radius: 999px;
	min-height: 0;
	min-width: 0;
	padding: 5px 13px;
	font-size: var(--wp--preset--font-size--xs);
	font-weight: 600;
	line-height: 1;
}

/* Catalogus: kop en sorteerveld */

.woocommerce .woocommerce-breadcrumb {
	margin-bottom: 14px;
	color: var(--wp--preset--color--muted);
	font-size: var(--wp--preset--font-size--small);
}

.woocommerce .woocommerce-result-count {
	color: var(--wp--preset--color--muted);
	font-size: var(--wp--preset--font-size--small);
}

.woocommerce .woocommerce-ordering select {
	padding: 9px 14px;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 999px;
	background: var(--wp--preset--color--white);
	font-size: var(--wp--preset--font-size--small);
}

/* Productpagina */

.woocommerce div.product .product_title {
	margin-bottom: 10px;
}

.woocommerce div.product p.price {
	color: var(--wp--preset--color--ink);
	font-size: var(--wp--preset--font-size--xl);
	font-weight: 700;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li.active {
	border-bottom-color: var(--wp--preset--color--accent);
}

/* ---------- Betaalmethodes ---------- */

.mabu-pay {
	/* Staat in de voet-sjabloon, buiten de centrale kolom: zelf begrenzen. */
	max-width: 1240px;
	margin-inline: auto;
	margin-top: clamp(48px, 7vw, 86px);
	padding: clamp(28px, 4vw, 44px);
	border-radius: 26px;
	background: var(--wp--preset--color--accent-soft);
	text-align: center;
}

.mabu-pay h2 {
	margin: 0 0 8px;
}

.mabu-pay > p {
	margin: 0 auto;
	max-width: 52ch;
	color: var(--wp--preset--color--muted);
}

.mabu-chips {
	margin-top: 22px;
	gap: 10px;
	justify-content: center;
}

.mabu-chips p {
	margin: 0;
	padding: 9px 18px;
	border-radius: 999px;
	background: var(--wp--preset--color--white);
	border: 1px solid var(--wp--preset--color--line);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 500;
}

/* ---------- Advies ---------- */

.mabu-advice {
	margin-top: clamp(44px, 6vw, 76px);
	padding: clamp(30px, 4vw, 52px);
	border-radius: 26px;
	background:
		radial-gradient(90% 140% at 100% 0%, color-mix(in srgb, var(--wp--preset--color--accent-2) 30%, #fff), transparent 62%),
		var(--wp--preset--color--soft);
}

.mabu-advice h2 {
	margin: 0 0 8px;
}

.mabu-advice p {
	max-width: 50ch;
	color: var(--wp--preset--color--muted);
}

/* ---------- Afrekenen ---------- */

/* De winkel levert alleen in Paraguay (provision.sh): een landkeuze met één
   optie is ruis. Het veld blijft in het formulier, met Paraguay ingevuld. */
.wc-block-components-address-form__country {
	display: none;
}

/* Geen bedragen naast de verzendopties: de webshop rekent geen verzending aan.
   Wat het kost en wie betaalt, staat in de beschrijving (mabu-shop). */
.wc-block-checkout__shipping-option--free,
.wc-block-components-shipping-rates-control__package__description--free {
	display: none;
}

/* ---------- Voet ---------- */

.mabu-footer {
	margin-top: clamp(44px, 6vw, 72px);
	border-top: 1px solid var(--wp--preset--color--line);
	padding-block: 44px 32px;
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--muted);
}

.mabu-footer .wp-block-site-title {
	font-size: 14px;
	font-weight: 700;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	margin-bottom: 10px;
}

.mabu-foot-head {
	margin: 0 0 12px;
	font-size: var(--wp--preset--font-size--small) !important;
	font-weight: 600;
	color: var(--wp--preset--color--ink);
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.mabu-footer p {
	margin: 0 0 9px;
	line-height: 1.5;
}

.mabu-footer a {
	color: inherit;
}

.mabu-footer a:hover {
	color: var(--wp--preset--color--accent);
}

.mabu-copy {
	margin-top: 30px;
	padding-top: 20px;
	border-top: 1px solid var(--wp--preset--color--line);
	font-size: var(--wp--preset--font-size--xs);
}

/* ---------- Smallere schermen ---------- */

@media (max-width: 1100px) {
	.woocommerce ul.products {
		grid-template-columns: repeat(3, 1fr);
	}
}

@media (max-width: 860px) {
	.mabu-menu-toggle {
		display: inline-flex;
	}

	/* Dicht: weg. Open: een volle rij onder titel en knoppen. Twee klassen
	   diep, anders wint "body .is-layout-flex" van WordPress. */
	.mabu-header .mabu-nav {
		display: none;
	}

	.mabu-header.is-menu-open .mabu-nav {
		display: flex;
		flex-direction: column;
		align-items: stretch;
		order: 10;
		flex-basis: 100%;
		gap: 0;
		margin-top: 10px;
	}

	.is-menu-open .mabu-nav a {
		display: block;
		padding: 14px 2px;
		border-top: 1px solid var(--wp--preset--color--line);
		font-size: var(--wp--preset--font-size--base);
		color: var(--wp--preset--color--ink);
	}

	.mabu-nav a::after {
		display: none;
	}

	.mabu-hero-cols {
		gap: 28px;
	}

	.mabu-trust p {
		flex-basis: 45%;
		border-left: 0;
		padding-left: 0;
	}
}

/* "Glow Beauty Mabu" naast het logo is te lang voor een telefoon: daar blijft
   alleen het logo staan, en "Tienda" verhuist naar het menu. */
@media (max-width: 520px) {
	.mabu-header .wp-block-site-logo img {
		width: 64px;
		height: 64px;
	}

	/* Alleen het logo; de naam blijft voor schermlezers (en staat ook als
	   alt-tekst op het logo). */
	.mabu-header .wp-block-site-title {
		position: absolute;
		width: 1px;
		height: 1px;
		overflow: hidden;
		clip: rect(0, 0, 0, 0);
		white-space: nowrap;
	}

	.mabu-header-row {
		gap: 12px;
	}

	.mabu-cart a {
		padding-inline: 16px;
	}

	.mabu-link-plain {
		display: none;
	}

	.mabu-nav .mabu-nav-all {
		display: block;
	}
}

@media (max-width: 720px) {
	.woocommerce ul.products {
		grid-template-columns: repeat(2, 1fr);
		gap: 20px 14px;
	}

	.mabu-tiles .tile {
		flex-basis: calc(50% - 8px);
	}

	.mabu-tiles .tile a {
		min-height: 110px;
	}
}
