/* Festlageret – tema-CSS. Farver, typografi og afstande kommer fra theme.json. */

:root {
	--fl-sort: var(--wp--preset--color--sort);
	--fl-guld: var(--wp--preset--color--guld);
	--fl-gnist: var(--wp--preset--color--gnist);
	--fl-papir: var(--wp--preset--color--papir);
	--fl-roeg: var(--wp--preset--color--roeg);
	--fl-aske: var(--wp--preset--color--aske);
	--fl-linje: var(--wp--preset--color--linje);
	--fl-skilt: var(--wp--preset--font-family--skilt);
}

html { scroll-padding-top: 90px; }
body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
::selection { background: var(--fl-gnist); color: var(--fl-sort); }

:where(a, button, input, select, textarea, summary):focus-visible {
	outline: 2px solid var(--fl-gnist);
	outline-offset: 3px;
}

/* ---------- Topbar + header ---------- */
.fl-topbar p { margin: 0; line-height: 1.35; }

.fl-site-header {
	position: sticky;
	top: 0;
	z-index: 50;
}
.admin-bar .fl-site-header { top: var(--wp-admin--admin-bar--height, 32px); }
@media (max-width: 600px) { .admin-bar .fl-site-header { top: 0; } }

.fl-header { border-bottom: 1px solid var(--fl-linje); }
.fl-header__row { gap: 1.5rem; }
.fl-header__logo { flex: 0 0 auto; margin: 0; }
.fl-header__logo img { width: clamp(140px, 16vw, 190px); height: auto; }
.fl-nav { flex: 1 1 auto; }
.fl-nav .wp-block-navigation-item__content { padding: 0.25rem 0; }
.fl-nav .wp-block-navigation-item__content:hover { color: var(--fl-gnist); }
.fl-nav .wp-block-navigation__submenu-container {
	background: var(--fl-aske) !important;
	border: 1px solid var(--fl-linje) !important;
	border-radius: 6px;
	padding: 0.5rem 0;
	min-width: 230px !important;
}
.fl-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content { padding: 0.5rem 1.1rem; }
.fl-nav .wp-block-navigation__responsive-container.is-menu-open {
	padding: 1.5rem clamp(1rem, 4vw, 2.5rem);
}
.fl-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
	font-family: var(--fl-skilt);
	font-weight: 800;
	font-size: 2.25rem;
	gap: 0.75rem;
}
.fl-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container {
	font-family: var(--wp--preset--font-family--archivo);
	font-size: 1.125rem;
	font-weight: 500;
	border: 0 !important;
	background: transparent !important;
	padding: 0.25rem 0 0.5rem 0.25rem;
}

.fl-header__tools { flex: 0 0 auto; }
.fl-search { margin: 0; }
.fl-search .wp-block-search__inside-wrapper {
	background: var(--fl-aske);
	border: 1px solid var(--fl-linje);
	border-radius: 999px;
	padding: 2px 2px 2px 14px;
}
.fl-search .wp-block-search__input {
	background: transparent;
	border: 0;
	color: var(--fl-papir);
	width: 12rem;
	min-width: 0;
	font-size: 0.9375rem;
	padding: 0.45rem 0;
}
.fl-search .wp-block-search__input::placeholder { color: var(--fl-roeg); }
.fl-search .wp-block-search__button {
	background: transparent;
	color: var(--fl-papir);
	padding: 0.4rem 0.6rem;
	margin: 0;
	border-radius: 999px;
}
.fl-search .wp-block-search__button:hover { color: var(--fl-gnist); }
.fl-cart .wc-block-mini-cart__button { color: var(--fl-papir); padding: 0.5rem; }
.fl-cart .wc-block-mini-cart__badge { background: var(--fl-guld) !important; color: var(--fl-sort) !important; font-weight: 700; }

@media (max-width: 960px) {
	.fl-search .wp-block-search__input { width: 8rem; }
}
@media (max-width: 720px) {
	.fl-header__row { gap: 0.75rem; }
	.fl-search { display: none; }
	.fl-nav { flex: 0 0 auto; order: 3; }
	.fl-header__tools { margin-left: auto; }
}

/* ---------- Generelle sektioner ---------- */
.fl-main { padding-bottom: 0; }
.fl-sektion__titel { margin-bottom: var(--wp--preset--spacing--40); }

/* ---------- Hero med lunte ---------- */
/* Titel og tekst er smallere end hero-boksen; hold dem venstrestillet på linje med knapper og lunte. */
.fl-hero > .fl-hero__title,
.fl-hero > .fl-hero__lede {
	margin-left: max(0px, calc((100% - 1320px) / 2)) !important;
	margin-right: auto !important;
}
.fl-hero .fl-hero__title {
	font-size: clamp(2.6rem, 10.5vw, 9rem) !important;
	max-width: 13ch;
	line-height: 0.88;
	letter-spacing: -0.005em;
	margin: 0;
	text-wrap: balance;
}
.fl-hero__lede {
	max-width: 46ch;
	color: var(--fl-roeg);
	margin-top: 1.75rem;
	text-wrap: pretty;
}
.fl-hero__buttons { margin-top: 2rem; }

.wp-block-button.is-style-outline > .wp-block-button__link {
	background: transparent;
	color: var(--fl-guld);
	border: 2px solid currentColor;
	padding: calc(0.9em - 2px) calc(1.6em - 2px);
}
.wp-block-button.is-style-outline > .wp-block-button__link:hover {
	background: transparent;
	color: var(--fl-gnist);
}

.fl-lunte {
	--fl-progress: 0%;
	position: relative;
	list-style: none;
	margin: var(--wp--preset--spacing--60) 0 0;
	padding: 2.75rem 0 0;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 2rem;
}
/* Selve lunten: en mørk streg, og en guldstreg der viser hvor langt sæsonen er brændt. */
.fl-lunte::before,
.fl-lunte::after {
	content: "";
	position: absolute;
	top: 0.6rem;
	left: 0;
	height: 2px;
}
.fl-lunte::before { right: 0; background: repeating-linear-gradient(90deg, var(--fl-linje) 0 10px, transparent 10px 16px); }
.fl-lunte::after {
	width: var(--fl-progress);
	background: linear-gradient(90deg, var(--fl-guld), var(--fl-gnist));
	transition: width 1.6s cubic-bezier(.3, .7, .2, 1);
}
.fl-lunte__gnist {
	position: absolute;
	top: calc(0.6rem + 1px);
	left: var(--fl-progress);
	width: 14px;
	height: 14px;
	margin: -7px 0 0 -7px;
	border-radius: 50%;
	background: var(--fl-gnist);
	box-shadow: 0 0 0 4px rgba(255, 212, 50, .18), 0 0 18px 6px rgba(244, 172, 3, .55);
	transition: left 1.6s cubic-bezier(.3, .7, .2, 1);
	z-index: 1;
}
.fl-lunte__gnist::after {
	content: "I dag";
	position: absolute;
	bottom: 20px;
	left: 50%;
	transform: translateX(-50%);
	font-size: 0.75rem;
	font-weight: 600;
	color: var(--fl-gnist);
	white-space: nowrap;
}
.fl-lunte__trin { position: relative; display: grid; gap: 0.4rem; }
.fl-lunte__trin::before {
	content: "";
	position: absolute;
	top: calc(-2.75rem + 0.6rem - 4px);
	left: 0;
	width: 10px;
	height: 10px;
	border-radius: 50%;
	background: var(--fl-sort);
	border: 2px solid var(--fl-linje);
}
.fl-lunte__trin.is-taendt::before { border-color: var(--fl-guld); background: var(--fl-guld); }
.fl-lunte__navn {
	font-family: var(--fl-skilt);
	font-weight: 800;
	font-size: clamp(1.75rem, 3vw, 2.5rem);
	line-height: 1;
	color: var(--fl-papir);
}
.fl-lunte__trin.is-taendt .fl-lunte__navn { color: var(--fl-guld); }
.fl-lunte__tekst { color: var(--fl-roeg); max-width: 30ch; }

@media (max-width: 720px) {
	.fl-lunte {
		grid-template-columns: 1fr;
		padding: 0 0 0 2rem;
		gap: 1.75rem;
	}
	.fl-lunte::before,
	.fl-lunte::after {
		top: 0.4rem;
		left: 0.55rem;
		width: 2px;
		height: auto;
		bottom: 0;
	}
	.fl-lunte::before { right: auto; background: repeating-linear-gradient(180deg, var(--fl-linje) 0 10px, transparent 10px 16px); }
	.fl-lunte::after { bottom: auto; height: var(--fl-progress); transition-property: height; }
	.fl-lunte__gnist { top: var(--fl-progress); left: calc(0.55rem + 1px); transition-property: top; }
	.fl-lunte__gnist::after { bottom: auto; left: 18px; top: 50%; transform: translateY(-50%); }
	.fl-lunte__trin::before { top: 0.35rem; left: calc(-2rem + 0.55rem - 4px); }
}

/* ---------- Kategorier som store links ---------- */
.fl-kategorier__liste {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	column-gap: clamp(1.25rem, 3vw, 2.75rem);
	row-gap: 0.25rem;
}
.fl-kategorier__liste a {
	font-family: var(--fl-skilt);
	font-weight: 800;
	font-size: clamp(2.25rem, 5.5vw, 4.5rem);
	line-height: 1.05;
	color: var(--fl-papir);
	text-decoration: none;
	transition: color .15s ease;
}
.fl-kategorier__liste a:hover { color: var(--fl-gnist); }

/* ---------- Produktkort ---------- */
.fl-produkter .wc-block-product-template,
.fl-relaterede {
	row-gap: clamp(2rem, 4vw, 3rem) !important;
}
.fl-produkter .wc-block-product,
.fl-relaterede > li {
	display: flex;
	flex-direction: column;
	gap: 0.35rem;
	text-align: left;
}
.fl-kort__billede { margin: 0 0 0.5rem; }
.fl-kort__billede img,
.fl-produkter .wc-block-components-product-image img {
	aspect-ratio: 1;
	object-fit: contain;
	background: #fff;
	border-radius: var(--wp--custom--radius--billede);
}
.fl-kort__titel {
	font-family: var(--wp--preset--font-family--archivo) !important;
	font-size: 1rem !important;
	font-weight: 600 !important;
	line-height: 1.35 !important;
	letter-spacing: 0 !important;
	margin: 0 !important;
	text-align: left !important;
}
.fl-kort__titel a { color: var(--fl-papir); }
.fl-kort__titel a:hover { color: var(--fl-gnist); }
.fl-kort__pris {
	font-family: var(--fl-skilt) !important;
	font-size: 1.75rem !important;
	font-weight: 800;
	line-height: 1;
	text-align: left !important;
	color: var(--fl-gnist);
	margin: 0.15rem 0 0.4rem !important;
}
.fl-kort__pris del { color: var(--fl-roeg); font-size: 0.7em; }
.fl-kort__pris ins { text-decoration: none; }
.fl-kort__knap {
	margin-top: auto !important;
	text-align: left !important;
	justify-content: flex-start !important;
	align-items: flex-start !important;
}
.fl-kort__knap .wp-block-button__link,
.fl-kort__knap .wc-block-components-product-button__button {
	font-size: 0.9375rem;
	padding: 0.65em 1.25em;
	width: auto;
}
.wc-block-components-product-sale-badge,
.onsale {
	background: var(--fl-gnist) !important;
	color: var(--fl-sort) !important;
	border: 0 !important;
	border-radius: 999px !important;
	font-weight: 700 !important;
	text-transform: none !important;
}
.wc-block-components-product-image .wc-block-components-product-sale-badge { margin: 0.5rem; }

/* Pagination */
.wp-block-query-pagination { margin-top: var(--wp--preset--spacing--50); gap: 0.5rem; font-weight: 600; }
.wp-block-query-pagination a { text-decoration: none; }
.wp-block-query-pagination .page-numbers { padding: 0.4rem 0.75rem; border-radius: 999px; }
.wp-block-query-pagination .page-numbers.current { background: var(--fl-guld); color: var(--fl-sort); }

/* ---------- Kategori-side ---------- */
.fl-arkiv__top .wp-block-query-title { margin: 0.5rem 0 0; }
.fl-arkiv__beskrivelse { max-width: 70ch; color: var(--fl-roeg); }
.fl-arkiv__seo:has(.wp-block-term-description) { border-top: 1px solid var(--fl-linje); padding-top: var(--wp--preset--spacing--50); }
.fl-arkiv__seo .fl-arkiv__beskrivelse h2 { color: var(--fl-papir); font-size: 1.5rem; margin: 2rem 0 .5rem; }
.fl-arkiv__seo .fl-arkiv__beskrivelse h2:first-child { margin-top: 0; }
.fl-arkiv__seo .fl-arkiv__beskrivelse p { margin: 0 0 1em; }
.fl-arkiv__seo .fl-arkiv__beskrivelse a { color: var(--fl-guld); }
.fl-arkiv__bar {
	margin-top: var(--wp--preset--spacing--40) !important;
	margin-bottom: var(--wp--preset--spacing--40) !important;
	padding-bottom: 1rem;
	border-bottom: 1px solid var(--fl-linje);
	color: var(--fl-roeg);
	font-size: 0.9375rem;
}
.fl-arkiv__bar p { margin: 0; }
.woocommerce-breadcrumb, .wc-block-breadcrumbs { color: var(--fl-roeg); }
.woocommerce-breadcrumb a, .wc-block-breadcrumbs a { color: var(--fl-roeg); text-decoration: none; }
.woocommerce-breadcrumb a:hover, .wc-block-breadcrumbs a:hover { color: var(--fl-gnist); }

/* ---------- Produktside ---------- */
.fl-produkt { margin-top: var(--wp--preset--spacing--40) !important; }
.fl-produkt__info .wp-block-post-title { margin-top: 0; text-wrap: balance; }
.fl-produkt__pris { color: var(--fl-gnist); margin: 0.5rem 0 1rem; }
.fl-produkt__kort { color: var(--fl-papir); }
.fl-produkt__galleri .images,
.fl-produkt__galleri .nickx_product_images_with_video {
	float: none !important;
	width: 100% !important;
	max-width: 100% !important;
	margin: 0 !important;
}
.fl-produkt__galleri .woocommerce-product-gallery__image img,
.fl-produkt__galleri .flex-control-thumbs img {
	background: #fff;
	border-radius: var(--wp--custom--radius--billede);
}
.fl-produkt__galleri .flex-control-thumbs { display: flex; gap: 0.5rem; padding: 0; margin: 0.75rem 0 0; list-style: none; }
.fl-produkt__galleri .flex-control-thumbs li { width: 72px; }
.fl-produkt__galleri .flex-control-thumbs img { opacity: .55; cursor: pointer; }
.fl-produkt__galleri .flex-control-thumbs img.flex-active,
.fl-produkt__galleri .flex-control-thumbs img:hover { opacity: 1; }

.fl-afhentning {
	border-left: 3px solid var(--fl-guld);
	background: var(--fl-aske);
	padding: 1rem 1.25rem;
	margin: 1.5rem 0;
	border-radius: 0 6px 6px 0;
	color: var(--fl-roeg);
	font-size: 0.9375rem;
}
.fl-afhentning p { margin: 0; }
.fl-afhentning strong { color: var(--fl-papir); }

.wp-block-add-to-cart-form form.cart {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	align-items: stretch;
	margin: 1rem 0 0;
}
.wp-block-add-to-cart-form .quantity { margin: 0 !important; }
.wp-block-add-to-cart-form .quantity .qty {
	width: 4.5rem;
	height: 100%;
	min-height: 3rem;
	text-align: center;
}
.wp-block-add-to-cart-form .single_add_to_cart_button {
	background: var(--fl-guld) !important;
	color: var(--fl-sort) !important;
	border: 0;
	border-radius: 999px;
	font-weight: 700;
	font-size: 1.0625rem;
	padding: 0.9em 2em;
	cursor: pointer;
}
.wp-block-add-to-cart-form .single_add_to_cart_button:hover { background: var(--fl-gnist) !important; }
.wp-block-add-to-cart-form .stock { color: var(--fl-roeg); flex-basis: 100%; margin: 0; }
.wp-block-add-to-cart-form .stock.out-of-stock { color: var(--fl-gnist); font-weight: 600; }

.fl-produkt__detaljer { margin-top: var(--wp--preset--spacing--60) !important; }
.fl-produkt__detaljer .wc-tabs {
	display: flex;
	flex-wrap: wrap;
	gap: 1.5rem;
	padding: 0 !important;
	margin: 0 0 1.5rem !important;
	border-bottom: 1px solid var(--fl-linje);
	list-style: none;
}
.fl-produkt__detaljer .wc-tabs li { margin: 0; padding: 0; background: none !important; border: 0 !important; }
.fl-produkt__detaljer .wc-tabs li a {
	display: block;
	padding: 0.75rem 0;
	color: var(--fl-roeg);
	text-decoration: none;
	font-weight: 600;
	border-bottom: 2px solid transparent;
	margin-bottom: -1px;
}
.fl-produkt__detaljer .wc-tabs li.active a { color: var(--fl-papir); border-bottom-color: var(--fl-guld); }
.fl-produkt__detaljer .woocommerce-Tabs-panel { max-width: 75ch; }
.fl-produkt__detaljer .woocommerce-Tabs-panel > h2:first-child { display: none; }
.fl-produkt__detaljer table { border-collapse: collapse; width: 100%; }
.fl-produkt__detaljer th, .fl-produkt__detaljer td { text-align: left; padding: 0.6rem 0.75rem 0.6rem 0; border-bottom: 1px solid var(--fl-linje); }

/* ---------- Formularer (kurv, checkout, søgning) ---------- */
input[type="text"], input[type="email"], input[type="tel"], input[type="number"],
input[type="search"], input[type="password"], select, textarea {
	background: var(--fl-aske);
	color: var(--fl-papir);
	border: 1px solid var(--fl-linje);
	border-radius: 6px;
	padding: 0.65rem 0.8rem;
	font: inherit;
}
input::placeholder, textarea::placeholder { color: var(--fl-roeg); }

/* WooCommerce-blokkene (kurv, checkout, minikurv) på mørk baggrund */
.wc-block-components-text-input input,
.wc-block-components-combobox .wc-block-components-combobox-control input,
.wc-block-components-textarea,
.wc-blocks-components-select .wc-blocks-components-select__select {
	background: var(--fl-aske) !important;
	color: var(--fl-papir) !important;
	border-color: var(--fl-linje) !important;
}
.wc-block-components-text-input label,
.wc-blocks-components-select .wc-blocks-components-select__label { color: var(--fl-roeg) !important; }
.wc-block-components-panel, .wc-block-components-totals-wrapper,
.wc-block-components-checkout-step, .wc-block-components-order-summary { border-color: var(--fl-linje) !important; }
.wc-block-components-radio-control__option,
.wc-block-components-radio-control-accordion-option { border-color: var(--fl-linje) !important; }
.wc-block-components-button:not(.is-link) {
	background: var(--fl-guld) !important;
	color: var(--fl-sort) !important;
	border-radius: 999px !important;
	font-weight: 700;
}
.wc-block-components-button:not(.is-link):hover { background: var(--fl-gnist) !important; }
.wc-block-components-product-name { color: var(--fl-papir) !important; }
.wc-block-components-quantity-selector { border-color: var(--fl-linje) !important; }
.wc-block-components-quantity-selector input { background: transparent !important; color: var(--fl-papir) !important; }
.wc-block-components-quantity-selector button { color: var(--fl-papir) !important; }
.wc-block-mini-cart__drawer .components-modal__content,
.wc-block-mini-cart__drawer .wc-block-mini-cart__template-part { background: var(--fl-sort); color: var(--fl-papir); }
.wc-block-components-notice-banner { color: var(--fl-sort); }

/* ---------- Ældre indhold på siderne (fra det gamle tema) ---------- */
.fl-forside-indhold .wp-block-cover { border-radius: 6px; overflow: hidden; }
.wp-block-separator.is-style-wide, .wp-block-separator { opacity: 1; }
.has-text-align-center.wp-block-heading { text-wrap: balance; }

/* ---------- Footer ---------- */
.fl-footer a { color: var(--fl-papir); text-decoration: none; }
.fl-footer a:hover { color: var(--fl-gnist); }
.fl-footer__title {
	font-size: 1.5rem !important;
	color: var(--fl-papir);
	margin-bottom: 0.75rem;
}
.fl-footer__links { list-style: none; padding: 0; margin: 0; display: grid; gap: 0.4rem; }
.fl-footer p { max-width: 36ch; }

/* ---------- Bevægelse ---------- */
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { transition-duration: 0s !important; animation-duration: 0s !important; }
}

/* ---------- Tablet: menuen samles i burgermenuen, så den ikke deler sig over to linjer ---------- */
@media (min-width: 600px) and (max-width: 1080px) {
	.fl-nav .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex !important; }
	.fl-nav .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) { display: none !important; }
	.fl-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close { display: flex !important; }
	.fl-nav { flex: 0 0 auto; order: 3; }
	.fl-header__tools { margin-left: auto; }
}

/* Fire kolonner bliver til 2 × 2 på tablet */
@media (min-width: 782px) and (max-width: 1080px) {
	.fl-main .wp-block-columns:has(> .wp-block-column:nth-child(4)) { flex-wrap: wrap !important; }
	.fl-main .wp-block-columns:has(> .wp-block-column:nth-child(4)) > .wp-block-column { flex-basis: calc(50% - 0.5rem) !important; flex-grow: 0; box-sizing: border-box; }
}
