/*
Theme Name: Brainforest Wordpress Starter FSE
Theme URI: https://bitbucket.org/rekyl/brainforest-wordpress-starter
Author: Brainforest
Author URI: https://brainforest.se/
Description: Brainforest default starter theme.
Requires at least: 6.9
Tested up to: 6.9
Requires PHP: 8.3
Version: 2.0
Text Domain: brainforest
Tags: full-site-editing, block-patterns, block-styles, style-variations, wide-blocks, custom-colors, custom-menu, featured-images, post-formats, translation-ready, threaded-comments
*/

/* ── WooShop: det theme.json inte kan uttrycka ─────────────────────────
   Mona Sans är variabel i bredd. theme.json har ingen kontroll för
   font-stretch, så rubrikernas halvbreda snitt sätts här. */
:where(h1, h2, h3, h4, h5, h6, .wp-block-post-title, .wp-element-button, .wp-block-button__link) {
  font-stretch: 112%;
}

/* ── Sidhuvud ───────────────────────────────────────────────────────── */

/* Hamburgaren hålls kvar upp till 1100px. Kärnan växlar vid 600px, hårdkodat,
   men sju menyval plus sök, konto och varukorg ryms inte på en iPad. Ta inte bort. */
@media (max-width: 1099px) {
	.ws-nav .wp-block-navigation__responsive-container-open { display: flex !important; }
	.ws-nav .wp-block-navigation__responsive-container:not(.is-menu-open) { display: none !important; }
	.ws-nav .wp-block-navigation__responsive-container.is-menu-open {
		display: block !important; position: fixed !important; inset: 0; z-index: 100000; overflow-y: auto;
	}
	.ws-servicemeny { display: none !important; }
	.ws-topbar-text { width: 100%; text-align: center; }
	/* Mobil: logotyp till vänster, åtgärderna och hamburgaren till höger. */
	.ws-mainbar .ws-nav { order: 3; }
	.ws-mainbar .ws-actions { margin-left: auto; }
	.ws-mainbar .alignwide, .ws-actions { gap: var(--wp--preset--spacing--3) !important; }
}
@media (min-width: 1100px) {
	.ws-nav .wp-block-navigation__responsive-container-open,
	.ws-nav .wp-block-navigation__responsive-container-close { display: none; }
}
@media (max-width: 599px) {
	.ws-topbar-text { font-size: var(--wp--preset--font-size--text-xs); }
}

/* Rullgardinen för kategorierna på desktop. */
.ws-nav .wp-block-navigation__submenu-container {
	min-width: 16rem !important;
	padding: var(--wp--preset--spacing--3) 0 !important;
	border: 1px solid var(--wp--preset--color--gray-200) !important;
	border-radius: var(--wp--preset--border-radius--rounded-md);
	box-shadow: var(--wp--preset--shadow--shadow-lg);
	font-weight: 500;
}
.ws-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	padding: var(--wp--preset--spacing--2) var(--wp--preset--spacing--5) !important;
}
.ws-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover {
	background: var(--wp--preset--color--gray-100);
}
.ws-nav-all > .wp-block-navigation-item__content { font-weight: 650; }
.ws-nav-sale > .wp-block-navigation-item__content { color: var(--wp--preset--color--accent-700) !important; }
.ws-nav .wp-block-navigation-item { white-space: nowrap; }
.ws-brand { flex-shrink: 0; }
/* Sök, konto och varukorg är ikonknappar; knappelementets utfyllnad gäller inte dem. */
.ws-search .wp-block-search__button { padding: var(--wp--preset--spacing--2); margin: 0; }

/* Mobilmenyns kategorier som dragspel, med en linje mellan raderna.
   Skrivet på li.has-child, som bara finns på fronten: i editorn beter sig
   undermenyerna som kärnan vill, så att de går att redigera. */
.ws-overlay-nav .wp-block-navigation__container { width: 100%; }
.ws-overlay-nav .wp-block-navigation-item { width: 100%; border-bottom: 1px solid var(--wp--preset--color--gray-200); }
.ws-overlay-nav > .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content,
.ws-overlay-nav li.has-child > .wp-block-navigation-submenu__toggle { padding-block: var(--wp--preset--spacing--4); }
.ws-overlay-nav li.has-child { flex-wrap: wrap; justify-content: space-between; }
.ws-overlay-nav li.has-child > .wp-block-navigation__submenu-container {
	position: static !important; width: 100% !important; min-width: 0 !important; height: auto !important;
	border: 0 !important; box-shadow: none; padding: 0 0 var(--wp--preset--spacing--3) !important;
	font-size: var(--wp--preset--font-size--text-base); font-weight: 500;
}
.ws-overlay-nav li.has-child .wp-block-navigation__submenu-container .wp-block-navigation-item { border: 0; }
.ws-overlay-nav li.has-child .wp-block-navigation__submenu-container .wp-block-navigation-item__content { padding: var(--wp--preset--spacing--2) var(--wp--preset--spacing--4) !important; }
.ws-overlay-nav li.has-child:not(.ws-open) > .wp-block-navigation__submenu-container { display: none !important; }
.ws-overlay-nav li.has-child > button { flex: 1; text-align: left; }
.ws-overlay-nav li.has-child > .wp-block-navigation__submenu-icon { pointer-events: none; }
.ws-overlay-nav li.has-child:not(.ws-open) > .wp-block-navigation__submenu-icon svg { transform: none !important; }
.ws-overlay-nav li.has-child.ws-open > .wp-block-navigation__submenu-icon svg { transform: rotate(180deg) !important; }

/* ── Blockstilar ─────────────────────────────────────────────────────── */
p.is-style-eyebrow {
	text-transform: uppercase;
	letter-spacing: 0.12em;
	font-weight: 650;
	font-size: var(--wp--preset--font-size--text-sm);
}
/* Basens "Lead" (styles/blocks/05-lead.json) får här sin CSS även i editorn. */
p.is-style-text-lead {
	font-size: var(--wp--preset--font-size--text-lg);
	line-height: 1.6;
}
/* Kort: hovringslyft. Bakgrund, ram, radie och utfyllnad är blockattribut. */
.wp-block-group.is-style-kort { transition: transform .2s ease, box-shadow .2s ease; }
.wp-block-group.is-style-kort:hover { transform: translateY(-3px); box-shadow: var(--wp--preset--shadow--shadow-lg); }

/* ── Sektioner ──────────────────────────────────────────────────────── */
/* Media & text har en fast innerutfyllnad (0 8%) utan kontroll i editorn.
   Nollställd så att texten följer gruppens egen, redigerbara utfyllnad. */
.ws-kampanj > .wp-block-media-text__content { padding-inline: 0; }
@media (max-width: 781px) {
	.ws-kampanj > .wp-block-media-text__content > .wp-block-group {
		padding-inline: var(--wp--style--root--padding-left) !important;
	}
}

/* ── Butik ──────────────────────────────────────────────────────────── */
/* terms-query saknar marginalkontroll; avståndet till rutnätet sätts här. */
.ws-underkategorier { margin-bottom: var(--wp--preset--spacing--8); }
.ws-underkategorier:not(:has(li)) { display: none; }
.ws-chip a { text-decoration: none; }
.ws-chip:hover { background: var(--wp--preset--color--gray-100); }
/* Filterspalten: prisreglaget har en inbyggd minsta bredd som annars spräcker spalten. */
.ws-butik-filter { min-width: 0; }
.ws-butik-filter .wc-block-product-filter-price-slider,
.ws-butik-filter .wc-block-product-filter-price-slider__content,
.ws-butik-filter .wc-block-product-filter-price-slider__range { min-width: 0; max-width: 100%; width: 100%; }
.ws-butik-filter .wc-block-product-filter-price-slider input[type="range"] { width: 100%; min-width: 0; }
.ws-butik-filter .wc-block-product-filters > * + * { margin-top: var(--wp--preset--spacing--8); }

/* Produktrutnätet: tätare rader än WooCommerces standard. */
.ws-butik-produkter .wc-block-product-template { row-gap: var(--wp--preset--spacing--10) !important; }

/* ── Produktsida ───────────────────────────────────────────────────── */
/* Det klassiska galleriet har en fast bredd (48 %) från WooCommerce. */
.ws-produkt .woocommerce-product-gallery { width: 100% !important; float: none !important; margin: 0 !important; }
.ws-produkt .woocommerce-product-gallery__image img { width: 100%; height: auto; border-radius: var(--wp--preset--border-radius--rounded-md); }
.ws-produkt .flex-control-thumbs { display: grid !important; grid-template-columns: repeat(5, 1fr); gap: var(--wp--preset--spacing--2); margin-top: var(--wp--preset--spacing--2) !important; }
.ws-produkt .flex-control-thumbs li { width: auto !important; margin: 0 !important; }
.ws-produkt .flex-control-thumbs img { border-radius: var(--wp--preset--border-radius--rounded-sm); }
/* Reamärket är klassikens span.onsale, inte ett block. */
.woocommerce span.onsale, .ws-produktsida span.onsale {
	background: var(--wp--preset--color--accent-500); color: var(--wp--preset--color--gray-950);
	border-radius: var(--wp--preset--border-radius--rounded-sm); min-height: 0; min-width: 0; line-height: 1;
	padding: 0.5em 0.75em; font-weight: 700; top: 1rem; left: 1rem; font-size: var(--wp--preset--font-size--text-sm);
}
.wc-block-components-product-sale-badge {
	background: var(--wp--preset--color--accent-500) !important; color: var(--wp--preset--color--gray-950) !important;
	border: 0 !important; border-radius: var(--wp--preset--border-radius--rounded-sm) !important; font-weight: 700;
}
/* Variantväljare: samma fält som formulären. */
.ws-produkt table.variations { border: 0; margin-bottom: var(--wp--preset--spacing--4); }
.ws-produkt table.variations th, .ws-produkt table.variations td { display: block; padding: 0; text-align: left; border: 0; }
.ws-produkt table.variations th label { font-weight: 650; font-size: var(--wp--preset--font-size--text-sm); }
.ws-produkt table.variations td { padding-bottom: var(--wp--preset--spacing--3); }
.ws-produkt table.variations select {
	width: 100%; max-width: 20rem; height: auto !important; min-height: 3rem; padding: 0.75rem 2.5rem 0.75rem 0.875rem !important; font: inherit; line-height: 1.4;
	border: 1px solid var(--wp--preset--color--gray-300); border-radius: var(--wp--preset--border-radius--rounded-sm); background-color: #fff;
}
.ws-produkt .reset_variations { font-size: var(--wp--preset--font-size--text-sm); }
.ws-produkt form.cart { display: flex; flex-wrap: wrap; gap: var(--wp--preset--spacing--3); align-items: stretch; }
.ws-produkt form.cart .variations, .ws-produkt form.cart .single_variation_wrap, .ws-produkt form.cart .single_variation { width: 100%; }
.ws-produkt .woocommerce-variation-add-to-cart { display: flex; gap: var(--wp--preset--spacing--3); }
.ws-produkt .quantity input.qty { height: 100%; min-height: 3rem; width: 4.5rem; border: 1px solid var(--wp--preset--color--gray-300); border-radius: var(--wp--preset--border-radius--rounded-sm); text-align: center; font: inherit; }
.ws-produkt .single_add_to_cart_button { flex: 1; max-width: 20rem; }
/* Flikarnas innehåll: vanlig styckerytm. */
.wp-block-woocommerce-product-details .woocommerce-Tabs-panel p { margin-block: 0 1em; max-width: 72ch; }
.wp-block-woocommerce-product-details .woocommerce-Tabs-panel { padding-top: var(--wp--preset--spacing--6); }

/* ── Mitt konto (kortkoden, inte block) ─────────────────────────────── */
/* WooCommerces clearfix-pseudoelement blir rutnätsceller om de inte stängs av. */
.ws-mitt-konto .col2-set::before, .ws-mitt-konto .col2-set::after,
.ws-mitt-konto .woocommerce::before, .ws-mitt-konto .woocommerce::after { content: none; }
@media (min-width: 782px) {
	.ws-mitt-konto .col2-set { display: grid; grid-template-columns: 1fr 1fr; gap: var(--wp--preset--spacing--10); }
	.ws-mitt-konto .col2-set > .u-column1, .ws-mitt-konto .col2-set > .u-column2 { width: auto; float: none; }
	.ws-mitt-konto > .woocommerce:has(.woocommerce-MyAccount-navigation) { display: grid; grid-template-columns: 240px 1fr; gap: var(--wp--preset--spacing--10); }
	.ws-mitt-konto .woocommerce-MyAccount-navigation, .ws-mitt-konto .woocommerce-MyAccount-content { width: auto; float: none; }
}
.ws-mitt-konto form.login, .ws-mitt-konto form.register {
	border: 1px solid var(--wp--preset--color--gray-200); border-radius: var(--wp--preset--border-radius--rounded-md);
	padding: var(--wp--preset--spacing--8); margin: 0;
}
.ws-mitt-konto .woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--wp--preset--color--gray-200); }
.ws-mitt-konto .woocommerce-MyAccount-navigation li { border-bottom: 1px solid var(--wp--preset--color--gray-200); }
.ws-mitt-konto .woocommerce-MyAccount-navigation a { display: block; padding: var(--wp--preset--spacing--3) 0; text-decoration: none; color: var(--wp--preset--color--gray-900); font-weight: 500; }
.ws-mitt-konto .woocommerce-MyAccount-navigation .is-active a { color: var(--wp--preset--color--primary-700); font-weight: 700; }
.ws-mitt-konto h2 { margin-bottom: var(--wp--preset--spacing--4); }

/* ── Formulär (Contact Form 7, inte block) ──────────────────────────── */
.wpcf7 input[type="text"], .wpcf7 input[type="email"], .wpcf7 select, .wpcf7 textarea {
	width: 100%; font: inherit; padding: 0.75rem 0.875rem; margin-top: 0.25rem;
	border: 1px solid var(--wp--preset--color--gray-300); border-radius: var(--wp--preset--border-radius--rounded-sm); background: #fff;
}
.wpcf7 label { font-weight: 600; font-size: var(--wp--preset--font-size--text-sm); }
.wpcf7 input[type="submit"] {
	font: 650 var(--wp--preset--font-size--text-base)/1.25 var(--wp--preset--font-family--mona-sans); font-stretch: 112%;
	background: var(--wp--preset--color--primary-700); color: #fff; border: 0; border-radius: var(--wp--preset--border-radius--rounded-sm);
	padding: 0.8125rem 1.375rem; cursor: pointer;
}
.wpcf7 input[type="submit"]:hover { background: var(--wp--preset--color--primary-800); }
.ws-cf7-rad { display: flex; gap: var(--wp--preset--spacing--2); flex-wrap: wrap; }
.ws-cf7-rad > .wpcf7-form-control-wrap { flex: 1 1 16rem; }
.ws-cf7-rad input[type="email"] { margin-top: 0; }
.ws-cf7-fotnot { font-size: var(--wp--preset--font-size--text-xs); color: var(--wp--preset--color--gray-600); margin-top: var(--wp--preset--spacing--2); }
.ws-nyhetsbrev .wpcf7 { flex: 1 1 24rem; max-width: 32rem; }
