/*
Theme Name: Hornbach Theme
Theme URI: https://hornbach.nl/
Description: Custom standalone theme for Hornbach B2B quotation system
Author: Niek Beck
Author URI: https://hornbach.nl/
Version: 1.1.9
Text Domain: hornbach-theme
Requires at least: 6.0
Tested up to: 6.4
Requires PHP: 7.4
License: GNU General Public License v3 or later
License URI: https://www.gnu.org/licenses/gpl-3.0.html
Tags: woocommerce, b2b, quotation, custom
*/

/* ==========================================================================
   CSS RESET - Modern CSS Reset by Andy Bell
   ========================================================================== */

/* Box sizing rules */
*,
*::before,
*::after {
	box-sizing: border-box;
}

/* Remove default margin and padding */
* {
	margin: 0;
	padding: 0;
}

/* Prevent font size inflation */
html {
	-moz-text-size-adjust: none;
	-webkit-text-size-adjust: none;
	text-size-adjust: none;
}

/* Remove list styles on ul, ol elements with a list role */
ul[role='list'],
ol[role='list'] {
	list-style: none;
}

/* Set core body defaults */
body {
	min-height: 100vh;
	line-height: 1.5;
}

/* Set shorter line heights on headings and interactive elements */
h1, h2, h3, h4, h5, h6,
button, input, label {
	line-height: 1.1;
}

/* Balance text wrapping on headings */
h1, h2, h3, h4, h5, h6 {
	text-wrap: balance;
}

/* A elements that don't have a class get default styles */
a:not([class]) {
	text-decoration-skip-ink: auto;
	color: currentColor;
}

/* Make images easier to work with */
img,
picture,
svg {
	max-width: 100%;
	display: block;
}

/* Inherit fonts for inputs and buttons */
input, button, textarea, select {
	font: inherit;
}

/* Make sure textareas without a rows attribute are not tiny */
textarea:not([rows]) {
	min-height: 10em;
}

/* Anything that has been anchored to should have extra scroll margin */
:target {
	scroll-margin-block: 5ex;
}

/* ==========================================================================
   CSS CUSTOM PROPERTIES - Design Tokens
   ========================================================================== */

:root {
	/* Brand Colors */
	--hb-header: #5c5c5c;
	--hb-header-top: #454545;
	--hb-magenta: #C40075;
	--hb-oranje: #f99d27;
	--hb-heading: #333333;

	/* semantic colors with shades */
	--color-warning-background: #FFF8D6;
	--color-warning-border: #FFD900;

	/* Color System */
	--color-primary: var(--hb-magenta);
	--color-primary-hover: #a3005f;
	--color-secondary: var(--hb-oranje);
	--color-accent: var(--hb-magenta);

	/* Neutral Colors */
	--color-text: #333333;
	--color-text-light: #666666;
	--color-text-lighter: #999999;
	--color-text-lightest: #d8d8d8;
	--color-bg: #ffffff;
	--color-bg-light: #F4F4F4;
	--color-bg-dark: #333333;
	--color-border: #e0e0e0;

	/* Spacing Scale (based on 1rem = 16px) */
	--space-3xs: 0.25rem;   /* 4px */
	--space-2xs: 0.5rem;    /* 8px */
	--space-xs: 0.75rem;    /* 12px */
	--space-sm: 1rem;       /* 16px */
	--space-md: 1.5rem;     /* 24px */
	--space-lg: 2rem;       /* 32px */
	--space-xl: 3rem;       /* 48px */
	--space-2xl: 4rem;      /* 64px */
	--space-3xl: 6rem;      /* 96px */

	/* Typography Scale */
	--font-sans: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
	--font-heading: 'Badhouse', sans-serif;

	/* Font Sizes - Fluid Typography */
	--text-xs: clamp(0.75rem, 1.5vw, 0.875rem);
	--text-sm: clamp(0.875rem, 1.75vw, 1rem);
	--text-base: clamp(1rem, 2vw, 1.125rem);
	--text-lg: clamp(1.125rem, 2.5vw, 1.25rem);
	--text-xl: clamp(1.25rem, 3vw, 1.5rem);
	--text-2xl: clamp(1.5rem, 3.5vw, 1.875rem);
	--text-3xl: clamp(1.875rem, 4vw, 2.25rem);
	--text-4xl: clamp(2.25rem, 5vw, 3rem);
	--text-5xl: clamp(3rem, 6vw, 3.75rem);

	/* Line Heights */
	--leading-none: 1;
	--leading-tight: 1.25;
	--leading-snug: 1.375;
	--leading-normal: 1.5;
	--leading-relaxed: 1.625;
	--leading-loose: 2;

	/* Border Radius */
	--radius-sm: 0.25rem;
	--radius-md: 0.5rem;
	--radius-lg: 1rem;
	--radius-full: 9999px;

	/* Shadows */
	--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
	--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
	--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
	--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);

	/* Transitions */
	--transition-fast: 150ms ease;
	--transition-base: 250ms ease;
	--transition-slow: 350ms ease;

	/* Max Widths */
	--max-width-sm: 640px;
	--max-width-md: 768px;
	--max-width-lg: 1024px;
	--max-width-xl: 1280px;
	--max-width-2xl: 1536px;
}

/* ==========================================================================
   FONT FACES
   ========================================================================== */

@font-face {
	font-family: 'Badhouse';
	src: url('fonts/BadhouseBold.eot');
	src: url('fonts/BadhouseBold.eot?#iefix') format('embedded-opentype'),
		url('fonts/BadhouseBold.woff2') format('woff2'),
		url('fonts/BadhouseBold.woff') format('woff'),
		url('fonts/BadhouseBold.ttf') format('truetype');
	font-weight: bold;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: 'TradeGothic';
	src: url('fonts/TradeGothic-BoldCondTwenty.eot');
	src: url('fonts/TradeGothic-BoldCondTwenty.eot?#iefix') format('embedded-opentype'),
		url('fonts/TradeGothic-BoldCondTwenty.woff2') format('woff2'),
		url('fonts/TradeGothic-BoldCondTwenty.woff') format('woff'),
		url('fonts/TradeGothic-BoldCondTwenty.ttf') format('truetype'),
		url('fonts/TradeGothic-BoldCondTwenty.svg#TradeGothic-BoldCondTwenty') format('svg');
	font-weight: bold;
	font-style: normal;
	font-display: swap;
}

/* ==========================================================================
   BASE TYPOGRAPHY & ELEMENT STYLES
   ========================================================================== */

/* HTML & Body */
html {
	font-size: 16px;
	scroll-behavior: smooth;
}

body {
	font-family: var(--font-sans);
	font-size: var(--text-base);
	line-height: var(--leading-normal);
	color: var(--color-text);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

/* Headings - Badhouse font with fluid sizing */
h1, h2, h3, h4, h5, h6 {
	font-family: var(--font-heading);
	font-weight: bold;
	color: var(--hb-heading);
	margin-bottom: var(--space-md);
	line-height: var(--leading-tight);
}

h1 {
	font-size: var(--text-3xl);
	margin-bottom: var(--space-lg);
}

h2 {
	font-size: var(--text-2xl);
}

h3 {
	font-size: var(--text-xl);
}

h4 {
	font-size: var(--text-lg);
}

h5 {
	font-size: var(--text-base);
}

h6 {
	font-size: var(--text-base);
}

/* Paragraphs */
p {
	margin-bottom: var(--space-md);
}

p:last-child {
	margin-bottom: 0;
}

/* Links */
a {
	color: var(--color-primary);
	text-decoration: none;
	transition: color var(--transition-fast);
}

a:hover {
	color: var(--color-secondary);
}

/* Lists */
ul, ol {
	margin-bottom: var(--space-md);
	padding-left: var(--space-lg);
}

li {
	margin-bottom: var(--space-xs);
}

/* Strong & Emphasis */
strong, b {
	font-weight: 700;
}

em, i {
	font-style: italic;
}

/* Small text */
small {
	font-size: var(--text-sm);
}

/* Buttons */
button,
.button,
input[type="submit"],
input[type="button"] {
	display: inline-block;
	padding: var(--space-sm) var(--space-lg);
	font-family: var(--font-sans);
	font-size: var(--text-base);
	font-weight: 600;
	line-height: var(--leading-none);
	text-align: center;
	text-decoration: none;
	background-color: var(--color-primary);
	color: white;
	border: none;
	border-radius: var(--radius-md);
	cursor: pointer;
	transition: all var(--transition-base);
}

button:hover,
.button:hover,
input[type="submit"]:hover,
input[type="button"]:hover {
	background-color: var(--color-secondary);
	transform: translateY(-2px);
	box-shadow: var(--shadow-md);
}

/* Forms */
input[type="text"],
input[type="email"],
input[type="tel"],
input[type="number"],
input[type="password"],
textarea,
select {
	width: 100%;
	padding: var(--space-sm);
	font-size: var(--text-base);
	line-height: var(--leading-normal);
	color: var(--color-text);
	background-color: var(--color-bg);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-md);
	transition: border-color var(--transition-fast);
}

input[type="text"]:focus,
input[type="email"]:focus,
input[type="tel"]:focus,
input[type="number"]:focus,
input[type="password"]:focus,
textarea:focus,
select:focus {
	outline: none;
	border-color: var(--color-primary);
	box-shadow: 0 0 0 3px rgba(196, 0, 117, 0.1);
}

/* Tables */
table {
	width: 100%;
	border-collapse: collapse;
	margin-bottom: var(--space-lg);
}

th, td {
	padding: var(--space-sm);
	text-align: left;
	border-bottom: 1px solid var(--color-border);
}

th {
	font-weight: 600;
	color: var(--hb-heading);
	background-color: var(--color-bg-light);
}

/* Horizontal Rule */
hr {
	border: 0;
	height: 1px;
	background-color: var(--color-border);
	margin: var(--space-lg) 0;
}

/* Blockquote */
blockquote {
	margin: var(--space-lg) 0;
	padding-left: var(--space-lg);
	border-left: 4px solid var(--color-primary);
	font-style: italic;
	color: var(--color-text-light);
}

/* Code */
code, pre {
	font-family: 'Courier New', monospace;
	font-size: var(--text-sm);
	background-color: var(--color-bg-light);
	border-radius: var(--radius-sm);
}

code {
	padding: var(--space-3xs) var(--space-2xs);
}

pre {
	padding: var(--space-sm);
	overflow-x: auto;
	margin-bottom: var(--space-md);
}

pre code {
	padding: 0;
	background-color: transparent;
}

/* ==========================================================================
   UTILITY CLASSES
   ========================================================================== */

/* Container */
.container {
	width: 100%;
	max-width: var(--max-width-xl);
	margin-left: auto;
	margin-right: auto;
	padding-left: var(--space-lg);
	padding-right: var(--space-lg);
}

.container--narrow {
	max-width: var(--max-width-md);
}

.container--wide {
	max-width: var(--max-width-2xl);
}

/* Text Alignment */
.text-left { text-align: left; }
.text-center { text-align: center; }
.text-right { text-align: right; }

/* Font Weights */
.font-light { font-weight: 300; }
.font-normal { font-weight: 400; }
.font-medium { font-weight: 500; }
.font-semibold { font-weight: 600; }
.font-bold { font-weight: 700; }

/* Text Colors */
.text-primary { color: var(--color-primary); }
.text-secondary { color: var(--color-secondary); }
.text-light { color: var(--color-text-light); }
.text-lighter { color: var(--color-text-lighter); }

/* Background Colors */
.bg-primary { background-color: var(--color-primary); }
.bg-secondary { background-color: var(--color-secondary); }
.bg-light { background-color: var(--color-bg-light); }
.bg-dark { background-color: var(--color-bg-dark); }

/* Spacing Utilities */
.mt-0 { margin-top: 0; }
.mt-sm { margin-top: var(--space-sm); }
.mt-md { margin-top: var(--space-md); }
.mt-lg { margin-top: var(--space-lg); }
.mt-xl { margin-top: var(--space-xl); }

.mb-0 { margin-bottom: 0; }
.mb-sm { margin-bottom: var(--space-sm); }
.mb-md { margin-bottom: var(--space-md); }
.mb-lg { margin-bottom: var(--space-lg); }
.mb-xl { margin-bottom: var(--space-xl); }

.pt-sm { padding-top: var(--space-sm); }
.pt-md { padding-top: var(--space-md); }
.pt-lg { padding-top: var(--space-lg); }
.pt-xl { padding-top: var(--space-xl); }

.pb-sm { padding-bottom: var(--space-sm); }
.pb-md { padding-bottom: var(--space-md); }
.pb-lg { padding-bottom: var(--space-lg); }
.pb-xl { padding-bottom: var(--space-xl); }

/* Display */
.block { display: block; }
.inline-block { display: inline-block; }
.flex { display: flex; }
.grid { display: grid; }
.hidden { display: none; }

/* Flex utilities */
.flex-center {
	display: flex;
	justify-content: center;
	align-items: center;
}

.flex-between {
	display: flex;
	justify-content: space-between;
	align-items: center;
}

.flex-column {
	display: flex;
	flex-direction: column;
}

/* Shadows */
.shadow-sm { box-shadow: var(--shadow-sm); }
.shadow-md { box-shadow: var(--shadow-md); }
.shadow-lg { box-shadow: var(--shadow-lg); }

/* Border Radius */
.rounded-sm { border-radius: var(--radius-sm); }
.rounded-md { border-radius: var(--radius-md); }
.rounded-lg { border-radius: var(--radius-lg); }
.rounded-full { border-radius: var(--radius-full); }

/* Width utilities */
.w-full { width: 100%; }
.w-auto { width: auto; }

/* Screen reader only */
.sr-only {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border-width: 0;
}


.size-type-selection{
    display: none !important;
}


/* Temperary code to fix the layout */
section, .container--start, #main{
    padding:var(--space-md);
}

section, .container--start{
    padding:  0 var(--space-md);
}

.woocommerce-products-header__title.page-title{
    font-size: var(--text-4xl);
    margin-bottom: var(--space-2xs);
}

.woocommerce-products-header > .term-description{
    margin-bottom: var(--space-lg);
}

.woocommerce-product-details__short-description{
    margin-bottom: var(--space-lg);
}

form.cart, #nb-nsc-run-tests{display:none;}

/* ==========================================================================
   SITE WRAPPER & HEADER
   ========================================================================== */

/* Site Wrapper - Main container for all pages (except thank you page) */
.hb-site-wrapper {
	display: flex;
	flex-direction: column;
	width: 100%;
    max-width: var(--max-width-xl);
    margin: var(--space-xl) auto;
    background-color: white;
	border: 1px solid var(--color-border);
}

/* Site Header - Top bar */
.hb-site-header {
	width: 100%;
	height: var(--space-xl);
	background-color: var(--color-border);
	display: flex;
	align-items: center;
	justify-content: space-between;
	top: 0;
	z-index: 100;
}

/* Header Navigation */
.hb-header-nav {
	display: flex;
	justify-content: space-between;
	align-items: center;
	width: 100%;
	gap: var(--space-md);
}

.hb-header-nav__left,
.hb-header-nav__right {
	display: flex;
	align-items: center;
}

/* Navigation Link (Back/Continue Shopping) */
.hb-header-nav__link {
	display: inline-flex;
	align-items: center;
	gap: var(--space-xs);
	padding: var(--space-xs) var(--space-md);
	font-size: var(--text-sm);
	color: var(--color-text);
	text-decoration: none;
	text-transform: lowercase;
	letter-spacing: 0.5px;
	transition: color var(--transition-base);
	background: var(--color-text-lightest);
}

.hb-header-nav__link:hover {
	color: var(--color-primary);
}

/* Cart Link */
.hb-header-nav__cart {
	display: inline-flex;
	align-items: center;
	gap: var(--space-xs);
	padding: var(--space-xs) var(--space-md);
	font-size: var(--text-base);
	font-weight: 600;
	color: white;
	text-decoration: none;
	background-color: var(--color-primary);
	transition: color var(--transition-base);
}

.hb-header-nav__cart:hover {
	background-color: #a3005f;
}

.hb-header-nav__cart-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 24px;
	height: 24px;
}

.hb-header-nav__cart-count {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 24px;
	height: 24px;
	padding: 0 var(--space-xs);
	background-color: white;
	color: var(--color-primary);
	border-radius: var(--radius-full);
	font-size: var(--text-sm);
	font-weight: 700;
}

/* Site Content - Main content area */
.hb-site-content {
	flex: 1;
	width: 100%;
}

.woocommerce-order-received #main{
	max-width: var(--max-width-lg);
	margin: 0 auto;
}

/* ==========================================================================
   SITE HEADER RESPONSIVE
   ========================================================================== */

@media (max-width: 768px) {
	.hb-site-header {
		height: 60px;
		padding: 0 var(--space-sm);
	}
}

/* ==========================================================================
   BINNENKORT LEVERBAAR - Product Badge & Styling (PLP only)
   ========================================================================== */

/* Badge styling */
ul.products li.product--binnenkort-leverbaar .hb-badge--binnenkort {
	position: absolute;
	top: 10px;
	right: 10px;
	background-color: var(--color-primary);
	color: white;
	font-size: var(--text-xs);
	font-weight: 600;
	padding: 6px 12px;
	border-radius: var(--radius-sm);
	z-index: 10;
	text-transform: uppercase;
	letter-spacing: 0.02em;
}

/* Product card - positioning and disabled cursor */
ul.products li.product--binnenkort-leverbaar {
	position: relative;
	cursor: not-allowed;
}

/* Disable link click */
ul.products li.product--binnenkort-leverbaar a.woocommerce-LoopProduct-link {
	pointer-events: none;
}

/* Grey overlay on entire product card */
ul.products li.product--binnenkort-leverbaar::before {
	content: '';
	position: absolute;
	inset: 0;
	background-color: rgba(255, 255, 255, 0.5);
	pointer-events: none;
	transition: opacity var(--transition-base);
	z-index: 5;
}

/* Remove overlay on hover */
ul.products li.product--binnenkort-leverbaar:hover::before {
	opacity: 0;
}
