/*
Theme Name:  Lichtsluis Child
Theme URI:
Description: Child theme van Storefront voor de Lichtsluis webshop.
Author:      Lichtsluis
Author URI:
Template:    storefront
Version:     1.0.1
License:     GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: lichtsluis-child
*/

/* ==========================================================================
   CSS-variabelen (kleurenpalet + typografie)
   ========================================================================== */

:root {
	--ls-oranje:       #FF6600;
	--ls-oranje-hover: #E05500;
	--ls-donker:       #333333;
	--ls-grijs:        #F1F1F1;
	--ls-grijs-rand:   #E0E0E0;
	--ls-wit:          #FFFFFF;
	--ls-font:         'Inter', sans-serif;
}


/* ==========================================================================
   Typografie
   ========================================================================== */

body,
button,
input,
select,
textarea {
	font-family: var( --ls-font );
	color: var( --ls-donker );
}

h1, h2, h3, h4, h5, h6 {
	font-family: var( --ls-font );
	font-weight: 600;
	color: var( --ls-donker );
}

a {
	color: var( --ls-oranje );
}

a:hover {
	color: var( --ls-oranje-hover );
}


/* ==========================================================================
   Header
   ========================================================================== */

.site-header {
	background-color: var( --ls-wit );
	border-bottom: none;
	color: var( --ls-donker );
	padding-top: 0;
	padding-bottom: 0;
}

/*
 * Horizontale scheidingsstreep onder de navigatie, even breed als het
 * grijze inhoudsvlak (max 1064 px = Storefront col-full content-breedte).
 * Buiten die breedte blijft de witte headerachtergrond zichtbaar.
 */
.site-header::after {
	content: '';
	display: block;
	height: 3px;
	background-color: var( --ls-grijs );
	max-width: 1064px;
	margin: 0 auto;
}

/* Branding-container: kolom-layout, gecentreerd */
.site-header > .col-full {
	display: flex;
	flex-direction: column;
	align-items: center;
	padding: 2rem 1.5rem;
}

/*
 * Site-branding: float-reset + volledige breedte.
 * Storefront overschrijft float en breedte op ≥ 768 px via
 * body-class-combinaties — vandaar de extra selectors hier en
 * in het @media-blok onderaan.
 */
.site-header .site-branding,
.woocommerce-active .site-header .site-branding,
.storefront-secondary-navigation .site-header .site-branding,
.storefront-secondary-navigation.woocommerce-active .site-header .site-branding {
	float: none;
	width: 100%;
	margin: 0;
	text-align: center;
}

/*
 * Logo-link: volledige breedte als blok zodat margin: auto werkt.
 * Storefront: specificiteit 0,2,0 — onze regel is gelijk maar staat erna.
 */
.site-header .custom-logo-link,
.site-header .site-logo-link,
.site-header .site-logo-anchor {
	display: block;
	width: 100%;
	margin: 0;
}

/*
 * Logo-afbeelding: responsief, zo groot mogelijk, aspect-ratio intact.
 *
 * Storefront setzt op de img: `.site-header .custom-logo-link img`
 * (specificiteit 0,2,1). We winnen met `img.custom-logo` (0,3,1).
 *
 * clamp( min, voorkeur, max ):
 *   320 px scherm → 272 px
 *   768 px scherm → 653 px
 *   ≥ 847 px scherm → 720 px (maximum)
 */
.site-header .custom-logo-link img.custom-logo,
.site-header .site-logo-link img,
.site-header .site-logo-anchor img {
	width: clamp( 280px, 85vw, 720px );
	max-width: 100%;
	height: auto;
	display: block;
	margin: 0 auto;
}

/* Sitetitel (fallback zonder logo-afbeelding) */
.site-header .site-title a {
	color: var( --ls-donker );
}

.site-header .site-description {
	color: #777777;
}

/* Winkelwagen-icoon in navigatiebalk */
.site-header-cart .cart-contents {
	display: flex;
	align-items: center;
	color: var( --ls-donker );
}

.site-header-cart .cart-contents:hover {
	color: var( --ls-oranje );
}

.ls-cart-icon {
	display: block;
}

/*
 * Storefront's icons.css tekent via .site-header-cart .cart-contents::after
 * een eigen Font Awesome mandje-icoon naast onze inline SVG (twee mandjes
 * naast elkaar). content: none verwijdert dat pseudo-element volledig.
 */
.site-header-cart .cart-contents::after {
	content: none;
}

/* ---- Responsive overrides voor Storefront-floats (≥ 768 px) -------------- */

@media ( min-width: 768px ) {
	.site-header .site-branding,
	.woocommerce-active .site-header .site-branding,
	.storefront-secondary-navigation .site-header .site-branding,
	.storefront-secondary-navigation.woocommerce-active .site-header .site-branding {
		float: none;
		width: 100%;
		margin-right: 0;
	}
}


/* ==========================================================================
   Navigatie
   ========================================================================== */

/* Primaire navigatie — links */
.main-navigation ul li a,
.secondary-navigation ul li a {
	color: var( --ls-donker );
	font-weight: 500;
}

.main-navigation ul li a:hover,
.secondary-navigation ul li a:hover {
	color: var( --ls-oranje );
}

/* Actieve pagina */
.main-navigation ul li.current-menu-item > a,
.main-navigation ul li.current_page_item > a,
.main-navigation ul li.current-menu-ancestor > a {
	color: var( --ls-oranje );
	font-weight: 600;
}

/* Dropdown submenu */
.main-navigation ul ul {
	background-color: var( --ls-wit );
	border: 1px solid var( --ls-grijs-rand );
	box-shadow: 0 4px 12px rgba( 0, 0, 0, 0.08 );
}

.main-navigation ul ul li a {
	color: var( --ls-donker );
	border-bottom: 1px solid var( --ls-grijs-rand );
}

.main-navigation ul ul li a:hover {
	color: var( --ls-wit );
	background-color: var( --ls-oranje );
}

/* Mobiel toggle-menu */
.menu-toggle,
button.menu-toggle {
	background-color: var( --ls-oranje );
	color: var( --ls-wit );
	border-color: var( --ls-oranje );
	font-family: var( --ls-font );
}

.menu-toggle:hover,
button.menu-toggle:hover {
	background-color: var( --ls-oranje-hover );
	border-color: var( --ls-oranje-hover );
}


/* ==========================================================================
   Volledig-breedte layout (zijbalk verwijderd)
   ========================================================================== */

/*
 * Storefront reserveert in .content-area (id="primary") de inhoudskolom op
 * ~73.9 % breedte (≥ 768 px) en zet de resterende ~21.7 % opzij voor
 * .widget-area. Door zowel de basisregel als de sidebar-varianten te
 * overschrijven, vult de inhoudskolom altijd de volledige beschikbare breedte.
 */
@media ( min-width: 768px ) {
	.content-area,
	.right-sidebar .content-area,
	.left-sidebar .content-area {
		width: 100%;
		float: none;
		margin-right: 0;
	}
}

.widget-area {
	display: none;
}


/* ==========================================================================
   Zoekbalk in navigatiebalk
   ========================================================================== */

/*
 * De navigatiebalk (.storefront-primary-navigation) bevat op desktop drie
 * elementen in source-volgorde: nav (prio 50) → zoekbalk (prio 55) →
 * winkelmand (prio 60). Flexbox op de col-full centreer ze verticaal en
 * plaatst de zoekbalk automatisch tussen nav en winkelmand.
 *
 * Storefront zelf zet in dezelfde media query (>= 768px) een 2-koloms
 * float-layout op .woocommerce-active .site-header .main-navigation /
 * .site-search / .site-header-cart (specificiteit 0,3,0 — drie klassen).
 * Onze eigen selectors hieronder krijgen daarom evenveel of meer klassen,
 * anders wint Storefront's regel de cascade en blijft alles bij het oude
 * float-gedrag (met de winkelmand die niet meer past naast nav + zoekbalk
 * en daardoor terugvalt vlak naast de zoekbalk in plaats van rechts uit
 * te lijnen).
 */
@media ( min-width: 768px ) {
	.storefront-primary-navigation .col-full {
		display: flex;
		align-items: center;
	}

	.woocommerce-active .site-header .storefront-primary-navigation .main-navigation {
		float: none;
		flex: 1;
		width: auto;
		margin-right: 0;
	}

	.woocommerce-active .site-header .storefront-primary-navigation .site-search {
		display: block;   /* override global .site-search{display:none} */
		float: none;
		width: auto;
		flex-shrink: 0;
		margin: 0 0.5rem;
	}

	.woocommerce-active .site-header .storefront-primary-navigation .site-header-cart {
		float: none;
		width: auto;
		flex-shrink: 0;
		margin-left: 1.5rem;
	}
}

/* Verberg zoekbalk op mobiel (hamburger-menu actief) */
@media ( max-width: 767px ) {
	.storefront-primary-navigation .site-search {
		display: none;
	}
}


/* ==========================================================================
   Taalwisselaar (Polylang)
   ========================================================================== */

.ls-language-switcher ul {
	display: flex;
	align-items: center;
	list-style: none;
	margin: 0;
	padding: 0;
	gap: 0.4rem;
}

.ls-language-switcher li {
	margin: 0;
}

.ls-language-switcher a {
	display: block;
	padding: 0.25rem 0.55rem;
	border: 1px solid var( --ls-grijs-rand );
	border-radius: 4px;
	font-family: var( --ls-font );
	font-size: 0.75rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.02em;
	color: var( --ls-donker );
	text-decoration: none;
}

.ls-language-switcher a:hover {
	border-color: var( --ls-oranje );
	color: var( --ls-oranje );
}

.ls-language-switcher li.current-lang a {
	background-color: var( --ls-oranje );
	border-color: var( --ls-oranje );
	color: var( --ls-wit );
}

/* Desktop: taalwisselaar in de navigatiebalk, na de winkelmand */
@media ( min-width: 768px ) {
	.storefront-primary-navigation .ls-language-switcher {
		flex-shrink: 0;
		margin-left: 0.75rem;
	}
}

/* Mobiel: eigen regel, gecentreerd onder het uitklapmenu */
@media ( max-width: 767px ) {
	.ls-language-switcher {
		display: flex;
		justify-content: center;
		padding: 0.6rem 0;
	}
}

/* Formulier: invoerveld en knop naast elkaar */
.storefront-primary-navigation .site-search .woocommerce-product-search {
	display: flex;
	align-items: center;
	margin: 0;
}

/* Zoekinvoerveld */
.storefront-primary-navigation .site-search input.search-field {
	width: 160px;
	height: 2rem;
	padding: 0 0.6rem;
	margin: 0;
	border: 1px solid var( --ls-grijs-rand );
	border-right: none;
	border-radius: 4px 0 0 4px;
	font-size: 0.82rem;
	font-family: var( --ls-font );
	background: var( --ls-wit );
	color: var( --ls-donker );
	box-shadow: none;
	outline: none;
	vertical-align: middle;
}

.storefront-primary-navigation .site-search input.search-field:focus {
	border-color: var( --ls-oranje );
	box-shadow: 0 0 0 2px rgba( 255, 102, 0, 0.12 );
}

/*
 * Zoekknop — erft de oranje kleur van de globale knop-stijl hieronder;
 * alleen de afmetingen en border-radius wijken af.
 */
.storefront-primary-navigation .site-search button[type="submit"] {
	height: 2rem;
	padding: 0 0.65rem;
	font-size: 0.8rem;
	border-radius: 0 4px 4px 0;
	border-left: none;
	margin: 0;
	white-space: nowrap;
	flex-shrink: 0;
}


/* ==========================================================================
   Knoppen (globaal)
   ========================================================================== */

button,
input[type="button"],
input[type="reset"],
input[type="submit"],
.button,
.wc-block-grid__products .wc-block-grid__product .wp-block-button__link,
.added_to_cart {
	background-color: var( --ls-oranje );
	border-color: var( --ls-oranje );
	color: var( --ls-wit );
	font-family: var( --ls-font );
	font-weight: 500;
	letter-spacing: 0.02em;
	border-radius: 4px;
	text-transform: none;
}

button:hover,
input[type="button"]:hover,
input[type="reset"]:hover,
input[type="submit"]:hover,
.button:hover,
.wc-block-grid__products .wc-block-grid__product .wp-block-button__link:hover,
.added_to_cart:hover {
	background-color: var( --ls-oranje-hover );
	border-color: var( --ls-oranje-hover );
	color: var( --ls-wit );
}

/* Secundaire / alt-knop */
button.alt,
input[type="submit"].alt,
.button.alt {
	background-color: var( --ls-grijs );
	border-color: var( --ls-grijs-rand );
	color: var( --ls-donker );
}

button.alt:hover,
input[type="submit"].alt:hover,
.button.alt:hover {
	background-color: var( --ls-oranje );
	border-color: var( --ls-oranje );
	color: var( --ls-wit );
}


/* ==========================================================================
   Producten overzicht
   ========================================================================== */

/*
 * Rijen netjes uitlijnen: Storefront/WooCommerce plaatst productkaarten
 * standaard met float, waardoor de "Toevoegen aan winkelwagen"-knop lager
 * of hoger uitkomt zodra een titel over meer regels loopt dan die van de
 * buren in dezelfde rij. Met flexbox (kolom per kaart, linkblok flex:1)
 * staan knop en prijs bij elke kaart in de rij weer op dezelfde hoogte.
 * Breedtes/marges/kolomaantal van Storefront blijven ongemoeid — enkel
 * float -> flex, de rest erft gewoon door.
 */
.woocommerce ul.products {
	display: flex;
	flex-wrap: wrap;
	align-items: stretch;
}

.woocommerce ul.products li.product {
	display: flex;
	flex-direction: column;
	float: none;
}

.woocommerce ul.products li.product .woocommerce-loop-product__link {
	display: flex;
	flex-direction: column;
	flex: 1 0 auto;
}

/* Productkaart */
ul.products li.product .woocommerce-loop-product__title {
	font-family: var( --ls-font );
	font-weight: 600;
	color: var( --ls-donker );
}

ul.products li.product .price {
	color: var( --ls-oranje );
	font-weight: 600;
}

/* Sale-badge */
.onsale {
	background-color: var( --ls-oranje );
	color: var( --ls-wit );
	border-radius: 4px;
}

/* Hover-effect op productkaart */
ul.products li.product:hover {
	box-shadow: 0 4px 16px rgba( 0, 0, 0, 0.1 );
}

/*
 * "Toevoegen aan winkelwagen"-knop in het winkeloverzicht: standaard grijs
 * (zelfde grijstint als de secundaire/alt-knop elders op de site), pas bij
 * hover de vertrouwde huisstijl-oranje. Alleen deze knoppen in de
 * productgrid — de globale oranje knopstijl elders blijft ongewijzigd.
 */
.woocommerce ul.products li.product a.button {
	background-color: var( --ls-grijs );
	border-color: var( --ls-grijs-rand );
	color: var( --ls-donker );
	margin-top: 1rem;
}

.woocommerce ul.products li.product a.button:hover {
	background-color: var( --ls-oranje );
	border-color: var( --ls-oranje );
	color: var( --ls-wit );
}


/* ==========================================================================
   Productpagina
   ========================================================================== */

.single-product .product_title {
	font-family: var( --ls-font );
	font-weight: 700;
}

.single-product .price {
	color: var( --ls-oranje );
	font-weight: 700;
}

.single-product .woocommerce-tabs ul.tabs li.active a {
	color: var( --ls-oranje );
}

.single-product .woocommerce-tabs ul.tabs li.active {
	border-bottom-color: var( --ls-oranje );
}


/* ==========================================================================
   Winkelwagen & checkout
   ========================================================================== */

.woocommerce-cart .cart-collaterals .cart_totals h2,
.woocommerce-checkout h3 {
	font-family: var( --ls-font );
	font-weight: 600;
}

.woocommerce-checkout #place_order {
	background-color: var( --ls-oranje );
	border-color: var( --ls-oranje );
	font-size: 1.1em;
	font-weight: 600;
	letter-spacing: 0.03em;
}

.woocommerce-checkout #place_order:hover {
	background-color: var( --ls-oranje-hover );
	border-color: var( --ls-oranje-hover );
}

/* Invoervelden */
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea {
	border-color: var( --ls-grijs-rand );
	border-radius: 4px;
	font-family: var( --ls-font );
}

.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus {
	border-color: var( --ls-oranje );
	outline: none;
	box-shadow: 0 0 0 2px rgba( 255, 102, 0, 0.15 );
}


/* ==========================================================================
   Footer
   ========================================================================== */

/*
 * .site-footer zelf is transparant — de donkere achtergrond zit op
 * .ls-footer-inner, die binnen .col-full valt (1064 px content-breedte).
 * Zo is de footer visueel exact even breed als het grijze inhoudsvlak
 * en krijgt hij dezelfde border-radius.
 * padding-bottom op .site-footer zorgt dat de afgeronde onderhoeken
 * zichtbaar zijn tegen de witte pagina-achtergrond.
 */
.site-footer {
	background-color: transparent;
	padding-bottom: 2rem;
}

.ls-footer-inner {
	background-color: var( --ls-donker );
	border-radius: 12px;
	padding: 2rem 2.618em;
	color: #AAAAAA;
}

.ls-footer-inner a {
	color: var( --ls-oranje );
}

.ls-footer-inner a:hover {
	color: var( --ls-wit );
}

.ls-footer-inner h1,
.ls-footer-inner h2,
.ls-footer-inner h3,
.ls-footer-inner h4 {
	color: var( --ls-wit );
}

/* Copyright-regel */
.ls-footer-inner .site-info {
	padding-top: 1rem;
	border-top: 1px solid rgba( 255, 255, 255, 0.08 );
	font-size: 0.85rem;
	color: #888888;
	text-align: center;
}

.ls-footer-inner .site-info a {
	color: #888888;
}

.ls-footer-inner .site-info a:hover {
	color: var( --ls-wit );
}


/* ==========================================================================
   Homepagina — doorlopende grijze achtergrond (intro t/m footer)
   ========================================================================== */

/*
 * Grijs inhoudsvlak: zit binnen de outer col-full (1064 px), wit op de
 * zijkanten. border-radius geeft subtiele afgeronde hoeken; marge boven en
 * onder zorgt dat de ronde hoeken zichtbaar zijn tegen de witte achtergrond.
 * overflow: visible zodat de tegel hover-schaduwen niet worden afgeknipt.
 */
.ls-homepage {
	background-color: var( --ls-grijs );
	border-radius: 12px;
	margin-top: 0.5rem;
	margin-bottom: 2rem;
	box-shadow: 0 2px 16px rgba( 0, 0, 0, 0.05 );
}


/* ==========================================================================
   Homepagina — introductie
   ========================================================================== */

.ls-intro {
	padding: 2.25rem 0 2rem;
	border-bottom: 1px solid var( --ls-grijs-rand );
}

.ls-intro__inner {
	max-width: 700px;
	margin: 0 auto;
	text-align: center;
}

.ls-intro__title {
	font-size: clamp( 1.2rem, 2.5vw, 1.65rem );
	font-weight: 700;
	color: var( --ls-donker );
	margin: 0 0 1rem;
	line-height: 1.3;
}

.ls-intro__text {
	font-size: 1.05rem;
	color: #555555;
	line-height: 1.75;
	margin: 0;
}


/* ==========================================================================
   Homepagina — producttegels
   ========================================================================== */

.ls-featured-products {
	padding: 2.5rem 0 4rem;
}

/*
 * Grid: maximaal 4 kolommen.
 * column-gap scheidt tegels horizontaal; row-gap geeft rijen
 * genoeg lucht zodat meerdere rijen duidelijk gescheiden blijven.
 */
.ls-product-grid {
	display: grid;
	grid-template-columns: repeat( 4, 1fr );
	column-gap: 1.25rem;
	row-gap: 2rem;
}

@media ( max-width: 900px ) {
	.ls-product-grid {
		grid-template-columns: repeat( 2, 1fr );
	}
}

@media ( max-width: 480px ) {
	.ls-product-grid {
		grid-template-columns: 1fr;
		row-gap: 1.5rem;
	}
}

/* Tegel */
.ls-product-tile {
	display: flex;
	flex-direction: column;
	border: 1px solid var( --ls-grijs-rand );
	border-radius: 8px;
	overflow: hidden;
	background-color: var( --ls-wit );
	box-shadow: 0 2px 6px rgba( 0, 0, 0, 0.06 );
	text-decoration: none;
	transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.ls-product-tile:hover {
	transform: translateY( -5px );
	box-shadow: 0 10px 28px rgba( 0, 0, 0, 0.13 );
	text-decoration: none;
}

/* Vierkante afbeeldingsruimte — wit, product volledig zichtbaar */
.ls-tile-image {
	aspect-ratio: 1 / 1;
	background-color: var( --ls-wit );
	overflow: hidden;
	display: flex;
	align-items: center;
	justify-content: center;
}

.ls-tile-image img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	padding: 1rem;
	transition: transform 0.3s ease;
}

.ls-product-tile:hover .ls-tile-image img {
	transform: scale( 1.06 );
}

/* Labelbalk */
.ls-tile-label {
	background-color: var( --ls-donker );
	padding: 0.9rem 1.1rem;
	flex-grow: 1;
	display: flex;
	align-items: center;
	min-height: 3.2rem;
	transition: background-color 0.25s ease;
}

.ls-product-tile:hover .ls-tile-label {
	background-color: var( --ls-oranje );
}

.ls-tile-name {
	font-family: var( --ls-font );
	font-size: 0.9rem;
	font-weight: 600;
	color: var( --ls-wit );
	margin: 0;
	line-height: 1.3;
}
