/* =========================================================================
   Infra Blunor — main stylesheet (the ONLY stylesheet).
   Token-driven · mobile-first · NL e-commerce.
   Palette: warm infrared on near-white. Type: DM Sans + DM Serif Display.
   ========================================================================= */

/* ---------- 1. Design tokens (LOCKED — Phase 0) ----------------------- */

:root {
	/* Color palette — matched to the Infra Blunor logo (orange #F58124, grey #4D4D4D, gold #FBC015) */
	--ib-ink:           #2e2e2e;   /* primary text — darkened from logo grey for readability */
	--ib-ink-soft:      #4d4d4d;   /* secondary text — exact logo grey */
	--ib-ink-muted:     #707070;   /* tertiary / captions */
	--ib-paper:         #ffffff;   /* page background */
	--ib-warm-50:       #fff7ed;   /* hero / soft section bg */
	--ib-warm-100:      #ffedd5;   /* card hover / chips */
	--ib-accent:        #f58124;   /* logo orange — primary CTA, links */
	--ib-accent-2:      #d96a14;   /* hover / pressed — darker orange */
	--ib-accent-soft:   #fef0e3;   /* accent tint — pill backgrounds */
	--ib-gold:          #fbc015;   /* logo sunburst gold — secondary accent */
	--ib-gold-soft:     #fff4cc;   /* gold tint */
	--ib-stone-100:     #f5f4f1;   /* subtle dividers */
	--ib-stone-200:     #e6e3dc;   /* borders */
	/* Brand gradient (mirrors the V-mark sunburst) */
	--ib-grad-warm:     linear-gradient(135deg, #4d4d4d 0%, #c79d26 30%, #fbc015 50%, #f58124 100%);

	/* Type */
	--ib-font-display: 'DM Serif Display', Georgia, serif;
	--ib-font-body:    'DM Sans', system-ui, -apple-system, Segoe UI, Roboto, sans-serif;

	/* Type scale */
	--ib-fs-h1: clamp(2.25rem, 4vw + 1rem, 3.75rem);
	--ib-fs-h2: clamp(1.75rem, 2.5vw + 1rem, 2.75rem);
	--ib-fs-h3: clamp(1.25rem, 1vw + 1rem, 1.75rem);
	--ib-fs-h4: 1.25rem;
	--ib-fs-body: 1rem;
	--ib-fs-small: 0.875rem;

	/* Spacing (8pt scale) */
	--ib-s-1: 0.5rem;
	--ib-s-2: 1rem;
	--ib-s-3: 1.5rem;
	--ib-s-4: 2rem;
	--ib-s-5: 3rem;
	--ib-s-6: 4rem;
	--ib-s-7: 6rem;

	/* Layout */
	--ib-container-max: 1340px;
	--ib-gutter: 20px;

	/* Radii */
	--ib-radius-sm: 6px;
	--ib-radius-md: 12px;
	--ib-radius-lg: 20px;
	--ib-radius-pill: 999px;

	/* Shadows */
	--ib-shadow-sm: 0 1px 2px rgba(0,0,0,.06);
	--ib-shadow-md: 0 8px 24px rgba(0,0,0,.08);
	--ib-shadow-lg: 0 20px 48px rgba(0,0,0,.12);

	/* Easing */
	--ib-ease: cubic-bezier(.2,.8,.2,1);
}

/* ---------- 2. Reset ---------------------------------------------------- */

*,*::before,*::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body {
	margin: 0;
	font-family: var(--ib-font-body);
	font-size: var(--ib-fs-body);
	line-height: 1.6;
	color: var(--ib-ink);
	background: var(--ib-paper);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}
img,svg,video { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; }
button { font: inherit; cursor: pointer; }
:focus-visible { outline: 2px solid var(--ib-accent); outline-offset: 2px; border-radius: 4px; }

/* ---------- 3. Typography ---------------------------------------------- */

h1,h2,h3,h4 {
	font-family: var(--ib-font-display);
	font-weight: 400;
	line-height: 1.15;
	letter-spacing: -0.01em;
	color: var(--ib-ink);
	margin: 0 0 var(--ib-s-2);
}
h1 { font-size: var(--ib-fs-h1); }
h2 { font-size: var(--ib-fs-h2); }
h3 { font-size: var(--ib-fs-h3); }
h4 { font-size: var(--ib-fs-h4); font-family: var(--ib-font-body); font-weight: 600; }
p  { margin: 0 0 1em; color: var(--ib-ink-soft); }

.ib_eyebrow {
	display: inline-block;
	font-family: var(--ib-font-body);
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--ib-accent);
	margin-bottom: var(--ib-s-2);
}

/* ---------- 4. Layout primitives -------------------------------------- */

.ib_container {
	width: 100%;
	max-width: var(--ib-container-max);
	margin: 0 auto;
	padding: 0 var(--ib-gutter);
}
.ib_section { padding: clamp(48px, 8vw, 112px) 0; }
.ib_section-paper { background: var(--ib-paper); }
.ib_section-warm  { background: var(--ib-warm-50); }
.ib_section-stone { background: var(--ib-stone-100); }
.ib_section-ink   { background: var(--ib-ink); color: var(--ib-paper); }
.ib_section-ink h1, .ib_section-ink h2, .ib_section-ink h3, .ib_section-ink p { color: inherit; }

.ib_grid { display: grid; gap: var(--ib-s-3); }
.ib_grid-2 { grid-template-columns: 1fr; }
.ib_grid-3 { grid-template-columns: 1fr; }
.ib_grid-4 { grid-template-columns: 1fr; }
@media (min-width: 640px)  { .ib_grid-2 { grid-template-columns: repeat(2,1fr); }
                              .ib_grid-4 { grid-template-columns: repeat(2,1fr); } }
@media (min-width: 1024px) { .ib_grid-3 { grid-template-columns: repeat(3,1fr); }
                              .ib_grid-4 { grid-template-columns: repeat(4,1fr); } }

.ib_actions-row { display: flex; flex-wrap: wrap; gap: var(--ib-s-2); }
.ib_empty { text-align: center; padding: var(--ib-s-7) 0; }

/* ---------- 5. Buttons ------------------------------------------------- */

.ib_btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	padding: 14px 26px;
	font-family: var(--ib-font-body);
	font-size: 0.9375rem;
	font-weight: 600;
	letter-spacing: 0.01em;
	border-radius: var(--ib-radius-pill);
	border: 1.5px solid transparent;
	transition: background .2s var(--ib-ease), color .2s var(--ib-ease), border-color .2s var(--ib-ease), transform .15s var(--ib-ease);
	cursor: pointer;
	text-decoration: none;
	line-height: 1;
}
.ib_btn:hover { transform: translateY(-1px); }
.ib_btn-primary {
	background: var(--ib-accent);
	color: #fff;
	border-color: var(--ib-accent);
}
.ib_btn-primary:hover {
	background: var(--ib-accent-2);
	border-color: var(--ib-accent-2);
}
.ib_btn-secondary {
	background: var(--ib-ink);
	color: var(--ib-paper);
	border-color: var(--ib-ink);
}
.ib_btn-secondary:hover { background: #000; border-color: #000; }
.ib_btn-outline {
	background: transparent;
	color: var(--ib-ink);
	border-color: var(--ib-ink);
}
.ib_btn-outline:hover {
	background: var(--ib-ink);
	color: var(--ib-paper);
}

/* ---------- 6. Forms (baseline) --------------------------------------- */

input[type="text"],input[type="email"],input[type="tel"],input[type="search"],
input[type="number"],input[type="password"],select,textarea {
	width: 100%;
	padding: 12px 14px;
	font: inherit;
	color: var(--ib-ink);
	background: var(--ib-paper);
	border: 1.5px solid var(--ib-stone-200);
	border-radius: var(--ib-radius-sm);
	transition: border-color .15s var(--ib-ease);
}
input:focus, select:focus, textarea:focus {
	outline: none;
	border-color: var(--ib-accent);
}

.ib_searchform { display: flex; gap: 8px; }
.ib_searchform input[type="search"] { flex: 1; }

/* ---------- 7. Brand mark --------------------------------------------- */

.ib_brand {
	display: inline-flex;
	align-items: center;
	font-family: var(--ib-font-display);
	font-size: 1.625rem;
	color: var(--ib-ink);
	text-decoration: none;
	letter-spacing: -0.01em;
}
.ib_brand img,
.ib_brand-mark,
.custom-logo,
.custom-logo-link img {
	display: block;
	height: 40px !important;
	width: auto !important;
	max-width: 220px !important;
	image-rendering: -webkit-optimize-contrast; /* keeps SVG crisp on hi-DPI */
}
@media (min-width: 1024px) {
	.ib_brand img,
	.ib_brand-mark,
	.custom-logo,
	.custom-logo-link img { height: 48px !important; max-width: 280px !important; }
}

/* ---------- 8. Header (two rows on desktop, single row on mobile) ---- */

.ib_skip-link {
	position: absolute;
	top: 0; left: 0;
	background: var(--ib-ink);
	color: #fff;
	padding: 8px 12px;
	text-decoration: none;
	z-index: 100;
	transform: translateY(-110%);
	transition: transform .15s var(--ib-ease);
}
.ib_skip-link:focus { transform: translateY(0); }

.ib_site-header {
	background: var(--ib-paper);
	border-bottom: 1px solid var(--ib-stone-100);
	position: sticky;
	top: 0;
	z-index: 50;
	backdrop-filter: saturate(180%) blur(8px);
	-webkit-backdrop-filter: saturate(180%) blur(8px);
}

.ib_header-top {
	padding: 10px 0;
}
.ib_header-top-inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--ib-s-3);
}

.ib_header-actions {
	display: flex;
	align-items: center;
	gap: 6px;
}

/* Desktop inline search pill — clicking opens the search overlay */
.ib_search-pill {
	display: none;
	align-items: center;
	gap: 10px;
	width: 320px;
	max-width: 36vw;
	padding: 10px 14px;
	background: var(--ib-warm-50);
	border: 1.5px solid var(--ib-stone-200);
	border-radius: var(--ib-radius-pill);
	color: var(--ib-ink-muted);
	font: inherit;
	font-size: 0.875rem;
	text-align: left;
	cursor: pointer;
	transition: background .15s var(--ib-ease), border-color .15s var(--ib-ease), color .15s var(--ib-ease), box-shadow .15s var(--ib-ease);
}
.ib_search-pill:hover,
.ib_search-pill:focus-visible {
	background: var(--ib-paper);
	border-color: var(--ib-accent);
	color: var(--ib-ink-soft);
	box-shadow: 0 0 0 4px var(--ib-accent-soft);
	outline: none;
}
.ib_search-pill svg { color: var(--ib-accent); flex: 0 0 auto; }
.ib_search-pill-text {
	flex: 1;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
.ib_search-pill-key {
	display: none;
	padding: 2px 7px;
	font-size: 0.6875rem;
	font-weight: 600;
	color: var(--ib-ink-muted);
	background: var(--ib-paper);
	border: 1px solid var(--ib-stone-200);
	border-radius: 4px;
	flex: 0 0 auto;
}
@media (min-width: 1024px) {
	.ib_search-pill         { display: inline-flex; }
	.ib_search-pill-key     { display: inline-block; }
	.ib_search-icon-only    { display: none; }
}

.ib_icon-btn {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	background: transparent;
	border: 1px solid transparent;
	border-radius: 50%;
	color: var(--ib-ink);
	cursor: pointer;
	text-decoration: none;
	transition: background .15s var(--ib-ease), color .15s var(--ib-ease), border-color .15s var(--ib-ease);
}
.ib_icon-btn:hover {
	background: var(--ib-warm-50);
	color: var(--ib-accent);
}
.ib_icon-btn:focus-visible {
	border-color: var(--ib-accent);
}

.ib_cart-link { position: relative; }
.ib_cart-count {
	position: absolute;
	top: 2px;
	right: 2px;
	min-width: 18px;
	height: 18px;
	padding: 0 5px;
	border-radius: 999px;
	background: var(--ib-accent);
	color: #fff;
	font-size: 0.6875rem;
	font-weight: 700;
	line-height: 18px;
	text-align: center;
	box-shadow: 0 0 0 2px var(--ib-paper);
	transition: transform .15s var(--ib-ease);
}
.ib_cart-count.is-empty { display: none; }
body.ib_cart-bump .ib_cart-count { transform: scale(1.18); }

/* Row 2 — desktop nav (dark ink bar with orange hover + gradient accent) */
.ib_header-nav {
	display: none;
	position: relative;
	background: var(--ib-ink);
	color: var(--ib-paper);
}
.ib_header-nav::before {
	content: "";
	position: absolute;
	left: 0; right: 0; top: 0;
	height: 3px;
	background: var(--ib-grad-warm);
	background-size: 200% 100%;
	animation: ib_grad-shift 14s linear infinite;
}
@keyframes ib_grad-shift {
	0%   { background-position:   0% 50%; }
	50%  { background-position: 100% 50%; }
	100% { background-position:   0% 50%; }
}
@media (min-width: 1024px) {
	.ib_header-nav { display: block; }
	.ib_menu-toggle { display: none; }
}

.ib_primary-nav { padding: 0; }
.ib_primary-menu {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	align-items: stretch;
	gap: 0;
}
.ib_primary-menu > li {
	position: relative;
	display: flex;
}
.ib_primary-menu > li > a {
	position: relative;
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 14px 18px;
	font-size: 0.9375rem;
	font-weight: 600;
	letter-spacing: 0.01em;
	color: rgba(255,255,255,0.85);
	text-decoration: none;
	transition: color .18s var(--ib-ease), background .18s var(--ib-ease);
}
/* Bottom-edge "tab" indicator — full-width orange bar */
.ib_primary-menu > li > a::after {
	content: "";
	position: absolute;
	left: 0; right: 0;
	bottom: 0;
	height: 3px;
	background: var(--ib-accent);
	transform: scaleX(0);
	transform-origin: center;
	transition: transform .22s var(--ib-ease);
}
/* Hover state — subtle, transient */
.ib_primary-menu > li:hover > a,
.ib_primary-menu > li:focus-within > a {
	color: #ffffff;
	background: rgba(255,255,255,0.05);
}
.ib_primary-menu > li:hover > a::after,
.ib_primary-menu > li:focus-within > a::after {
	transform: scaleX(1);
}
/* Active state — clearly differentiated from hover (brighter, with text-tint) */
.ib_primary-menu > .current-menu-item > a,
.ib_primary-menu > .current-menu-parent > a,
.ib_primary-menu > .current-menu-ancestor > a,
.ib_primary-menu > .current_page_parent > a,
.ib_primary-menu > .current_page_ancestor > a {
	color: #ffffff;
	background: linear-gradient(180deg, rgba(245,129,36,0.18) 0%, rgba(245,129,36,0.05) 100%);
}
.ib_primary-menu > .current-menu-item > a::after,
.ib_primary-menu > .current-menu-parent > a::after,
.ib_primary-menu > .current-menu-ancestor > a::after,
.ib_primary-menu > .current_page_parent > a::after,
.ib_primary-menu > .current_page_ancestor > a::after {
	transform: scaleX(1);
}
.ib_primary-menu > li.menu-item-has-children > a {
	padding-right: 28px;
}
.ib_primary-menu > li.menu-item-has-children > a::before {
	content: "";
	position: absolute;
	right: 14px;
	top: 50%;
	width: 0; height: 0;
	border: 4px solid transparent;
	border-top-color: currentColor;
	transform: translateY(-2px);
	opacity: 0.7;
}
/* Sub-menu (desktop dropdown) — drops cleanly below the dark nav bar */
.ib_primary-menu ul {
	position: absolute;
	top: calc(100% + 2px);
	left: 0;
	min-width: 260px;
	margin: 0;
	padding: 8px;
	list-style: none;
	background: var(--ib-paper);
	border: 1px solid var(--ib-stone-200);
	border-radius: var(--ib-radius-md);
	box-shadow: 0 12px 32px rgba(0,0,0,.12), 0 2px 6px rgba(0,0,0,.06);
	opacity: 0;
	visibility: hidden;
	transform: translateY(6px);
	transition: opacity .18s var(--ib-ease), transform .18s var(--ib-ease), visibility .18s;
	z-index: 60;
}
.ib_primary-menu li:hover > ul,
.ib_primary-menu li:focus-within > ul {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
}
.ib_primary-menu ul a {
	display: flex;
	align-items: center;
	gap: 8px;
	padding: 10px 12px;
	border-radius: var(--ib-radius-sm);
	font-size: 0.9rem;
	font-weight: 500;
	color: var(--ib-ink-soft);
	text-decoration: none;
	transition: background .12s var(--ib-ease), color .12s var(--ib-ease), padding-left .15s var(--ib-ease);
}
.ib_primary-menu ul a::before {
	content: "";
	width: 4px;
	height: 4px;
	border-radius: 50%;
	background: var(--ib-accent);
	opacity: 0;
	transition: opacity .15s var(--ib-ease);
}
.ib_primary-menu ul a:hover {
	background: var(--ib-warm-50);
	color: var(--ib-accent);
	padding-left: 16px;
}
.ib_primary-menu ul a:hover::before { opacity: 1; }

.ib_menu-hint {
	display: inline-block;
	margin-left: 16px;
	padding: 10px 14px;
	font-size: 0.8125rem;
	color: rgba(255,255,255,0.7);
}

/* ---------- 9. Mobile drawer (Boujee pattern) -------------------------- */

.ib_mobile-menu {
	position: fixed;
	inset: 0;
	z-index: 70;
	background: var(--ib-paper);
	display: flex;
	flex-direction: column;
	padding: 20px;
	overflow-y: auto;
	transform: translateX(100%);
	transition: transform .35s var(--ib-ease);
	visibility: hidden;
}
.ib_mobile-menu[data-open="true"] {
	transform: translateX(0);
	visibility: visible;
}
@media (min-width: 1024px) {
	.ib_mobile-menu { display: none !important; }
}
body.ib_drawer-open { overflow: hidden; }

.ib_mobile-menu-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding-bottom: var(--ib-s-2);
	border-bottom: 1px solid var(--ib-stone-100);
}

.ib_mobile-nav { flex: 1; }
.ib_mobile-primary {
	list-style: none;
	padding: 0;
	margin: var(--ib-s-3) 0;
	display: flex;
	flex-direction: column;
	gap: 2px;
}
.ib_mobile-primary > li > a {
	display: block;
	padding: 14px 4px;
	font-family: var(--ib-font-display);
	font-size: 1.375rem;
	color: var(--ib-ink);
	text-decoration: none;
	border-bottom: 1px solid var(--ib-stone-100);
}
.ib_mobile-primary > li > a:hover { color: var(--ib-accent); }
.ib_mobile-primary > .current-menu-item > a { color: var(--ib-accent); }

/* Parent rows that have a submenu: relative so we can pin the toggle */
.ib_mobile-primary .menu-item-has-children { position: relative; }
.ib_mobile-primary .menu-item-has-children > a {
	padding-right: 56px;   /* room for the chevron toggle */
}

/* Submenu toggle (chevron) — JS injects this <button> next to each parent */
.ib_mobile-sub-toggle {
	position: absolute;
	top: 4px;
	right: 0;
	width: 44px;
	height: 44px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: transparent;
	border: none;
	color: var(--ib-ink-soft);
	cursor: pointer;
	border-radius: 50%;
	transition: background .15s var(--ib-ease), color .15s var(--ib-ease), transform .2s var(--ib-ease);
}
.ib_mobile-sub-toggle:hover { background: var(--ib-warm-50); color: var(--ib-accent); }
.ib_mobile-sub-toggle svg { transition: transform .2s var(--ib-ease); }
.ib_mobile-primary .menu-item-has-children[data-open="true"] > .ib_mobile-sub-toggle {
	color: var(--ib-accent);
}
.ib_mobile-primary .menu-item-has-children[data-open="true"] > .ib_mobile-sub-toggle svg {
	transform: rotate(180deg);
}

/* Nested submenu — closed by default, accordion-style on toggle */
.ib_mobile-primary ul {
	list-style: none;
	margin: 0;
	padding: 0 0 0 16px;
	border-left: 2px solid rgba(245, 129, 36, 0.35);
	max-height: 0;
	overflow: hidden;
	transition: max-height .35s var(--ib-ease), margin .35s var(--ib-ease);
}
.ib_mobile-primary .menu-item-has-children[data-open="true"] > ul {
	max-height: 1200px;     /* generous ceiling — auto would prevent transitions */
	margin: 4px 0 8px;
}
.ib_mobile-primary ul li { margin: 0; }
.ib_mobile-primary ul a {
	display: block;
	padding: 10px 4px;
	font-family: var(--ib-font-body);
	font-size: 1rem;
	font-weight: 500;
	color: var(--ib-ink-muted);
	text-decoration: none;
	border-bottom: 1px dashed rgba(0,0,0,0.06);
}
.ib_mobile-primary ul li:last-child a { border-bottom: none; }

.ib_mobile-menu-actions {
	margin-top: auto;
	padding-top: var(--ib-s-3);
	display: flex;
	flex-direction: column;
	gap: 10px;
}

/* ---------- 10. Search overlay --------------------------------------- */

.ib_search-overlay[hidden] { display: none !important; }
.ib_search-overlay {
	position: fixed;
	inset: 0;
	z-index: 80;
	background: rgba(26,26,26,0.92);
	backdrop-filter: blur(12px);
	-webkit-backdrop-filter: blur(12px);
	display: grid;
	place-items: center;
	padding: 24px;
	opacity: 0;
	pointer-events: none;
	transition: opacity .25s var(--ib-ease);
}
.ib_search-overlay.is-open {
	opacity: 1;
	pointer-events: auto;
}
.ib_search-overlay-inner {
	width: 100%;
	max-width: 760px;
	position: relative;
}
.ib_search-overlay-close {
	position: absolute;
	top: -56px; right: 0;
	width: 44px; height: 44px;
	display: grid; place-items: center;
	background: rgba(255,255,255,0.1);
	border: 1px solid rgba(255,255,255,0.2);
	color: #fff;
	border-radius: 50%;
	cursor: pointer;
	transition: background .15s var(--ib-ease);
}
.ib_search-overlay-close:hover { background: rgba(255,255,255,0.2); }
.ib_search-overlay-stage { text-align: center; }
.ib_search-overlay-stage .ib_eyebrow { color: #fff7ed; }
.ib_search-overlay-title {
	color: #fff;
	font-family: var(--ib-font-display);
	font-size: clamp(1.5rem, 3vw, 2.25rem);
	margin: 12px 0 28px;
}
.ib_search-overlay-form {
	display: flex;
	gap: 8px;
	background: rgba(255,255,255,0.08);
	border: 1px solid rgba(255,255,255,0.2);
	padding: 6px;
	border-radius: var(--ib-radius-pill);
}
.ib_search-overlay-form input[type="search"] {
	flex: 1;
	background: transparent;
	border: none;
	color: #fff;
	font-size: 1rem;
	padding: 12px 16px;
}
.ib_search-overlay-form input[type="search"]::placeholder { color: rgba(255,255,255,0.55); }
.ib_search-overlay-form input[type="search"]:focus { outline: none; }
.ib_search-overlay-form input[type="search"]::-webkit-search-cancel-button { display: none; }
.ib_search-overlay-form .ib_btn { flex: 0 0 auto; }
.ib_search-overlay-clear {
	flex: 0 0 auto;
	width: 32px; height: 32px;
	display: grid; place-items: center;
	background: rgba(255,255,255,0.12);
	border: none;
	border-radius: 50%;
	color: #fff;
	cursor: pointer;
	align-self: center;
	margin-right: 2px;
	transition: background .15s var(--ib-ease);
}
.ib_search-overlay-clear:hover { background: rgba(255,255,255,0.22); }
.ib_search-overlay-clear[hidden] { display: none; }
@media (max-width: 540px) {
	.ib_search-overlay-form-label { display: none; }
	.ib_search-overlay-form .ib_btn { padding: 12px 14px; }
}
.ib_search-overlay-quick {
	margin-top: 24px;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	gap: 8px 16px;
	font-size: 0.8125rem;
}
.ib_search-overlay-quick[hidden] { display: none; }
.ib_search-overlay-quick-label {
	color: rgba(255,255,255,0.55);
	margin-right: 4px;
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}
.ib_search-overlay-quick a {
	color: #fff7ed;
	border-bottom: 1px solid transparent;
	padding-bottom: 1px;
	transition: color .15s, border-color .15s;
}
.ib_search-overlay-quick a:hover {
	color: #fff;
	border-bottom-color: #fff;
}

/* ---------- 10b. Predictive search results panel ---------- */

.ib_search-results[hidden] { display: none; }
.ib_search-results {
	margin-top: 18px;
	background: #fff;
	color: var(--ib-ink);
	border-radius: var(--ib-radius-md, 12px);
	box-shadow: 0 24px 64px rgba(0,0,0,0.35), 0 2px 8px rgba(0,0,0,0.15);
	text-align: left;
	overflow: hidden;
	max-height: min(70vh, 640px);
	overflow-y: auto;
	animation: ib_search_in .18s var(--ib-ease) both;
}
@keyframes ib_search_in {
	from { opacity: 0; transform: translateY(-6px); }
	to   { opacity: 1; transform: translateY(0); }
}
.ib_search-results-section + .ib_search-results-section {
	border-top: 1px solid var(--ib-stone-100);
}
.ib_search-results-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 12px 18px 6px;
}
.ib_search-results-label {
	font-size: 0.6875rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--ib-ink-muted);
}
.ib_search-results-count {
	font-size: 0.75rem;
	font-weight: 600;
	color: var(--ib-accent);
	background: var(--ib-accent-soft, #fef0e3);
	padding: 2px 10px;
	border-radius: 999px;
	font-variant-numeric: tabular-nums;
}
.ib_search-results-clear {
	font-size: 0.75rem;
	color: var(--ib-ink-muted);
	background: none;
	border: none;
	cursor: pointer;
	padding: 0;
	text-decoration: underline;
	text-underline-offset: 2px;
}
.ib_search-results-clear:hover { color: var(--ib-accent); }

/* Product rows */
.ib_search-products {
	list-style: none;
	margin: 0;
	padding: 0 8px 8px;
}
.ib_search-product {
	display: grid;
	grid-template-columns: 56px 1fr auto;
	align-items: center;
	gap: 14px;
	padding: 10px 12px;
	border-radius: 10px;
	color: var(--ib-ink);
	text-decoration: none;
	transition: background .12s var(--ib-ease);
}
.ib_search-product:hover,
.ib_search-product.is-active {
	background: var(--ib-warm-50, #fff7ed);
}
.ib_search-product-thumb {
	width: 56px; height: 56px;
	border-radius: 8px;
	overflow: hidden;
	background: var(--ib-stone-100);
	display: grid; place-items: center;
	flex: 0 0 56px;
}
.ib_search-product-thumb img {
	width: 100%; height: 100%;
	object-fit: cover;
	display: block;
}
.ib_search-product-main {
	display: flex;
	flex-direction: column;
	gap: 2px;
	min-width: 0;
}
.ib_search-product-cat {
	font-size: 0.6875rem;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--ib-ink-muted);
	font-weight: 600;
}
.ib_search-product-title {
	font-weight: 600;
	color: var(--ib-ink);
	font-size: 0.9375rem;
	line-height: 1.3;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
.ib_search-product-title mark,
.ib_search-cat mark,
.ib_search-recent-item mark {
	background: linear-gradient(transparent 60%, var(--ib-accent-soft, #fef0e3) 60%);
	color: inherit;
	padding: 0;
}
.ib_search-product-price {
	font-family: var(--ib-font-display);
	color: var(--ib-accent);
	font-size: 1rem;
	margin-top: 2px;
}
.ib_search-product-price .ib_tax-suffix { margin-left: 4px; }
.ib_search-product-arrow {
	color: var(--ib-ink-muted);
	transition: transform .15s var(--ib-ease), color .15s var(--ib-ease);
}
.ib_search-product:hover .ib_search-product-arrow,
.ib_search-product.is-active .ib_search-product-arrow {
	color: var(--ib-accent);
	transform: translateX(2px);
}

/* Category pills */
.ib_search-results-cats { padding-bottom: 14px; }
.ib_search-cats {
	list-style: none;
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	padding: 4px 18px 4px;
	margin: 0;
}
.ib_search-cat {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 8px 14px;
	border-radius: 999px;
	background: var(--ib-stone-100);
	color: var(--ib-ink);
	text-decoration: none;
	font-size: 0.8125rem;
	font-weight: 500;
	transition: background .12s var(--ib-ease), color .12s var(--ib-ease);
}
.ib_search-cat:hover,
.ib_search-cat.is-active {
	background: var(--ib-accent);
	color: #fff;
}
.ib_search-cat-count {
	font-variant-numeric: tabular-nums;
	font-size: 0.6875rem;
	background: rgba(0,0,0,0.06);
	padding: 1px 7px;
	border-radius: 999px;
}
.ib_search-cat:hover .ib_search-cat-count,
.ib_search-cat.is-active .ib_search-cat-count {
	background: rgba(255,255,255,0.25);
}

/* Recent searches */
.ib_search-recent {
	list-style: none;
	margin: 0;
	padding: 0 8px 12px;
}
.ib_search-recent-item {
	display: flex;
	align-items: center;
	gap: 10px;
	width: 100%;
	padding: 10px 12px;
	border-radius: 10px;
	background: transparent;
	border: none;
	cursor: pointer;
	color: var(--ib-ink-soft);
	text-align: left;
	font-size: 0.9375rem;
	transition: background .12s var(--ib-ease);
}
.ib_search-recent-item:hover,
.ib_search-recent-item.is-active {
	background: var(--ib-warm-50, #fff7ed);
	color: var(--ib-ink);
}
.ib_search-recent-item svg {
	color: var(--ib-ink-muted);
	flex: 0 0 auto;
}

/* "Alle resultaten" footer link */
.ib_search-results-all {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 14px 22px;
	background: linear-gradient(180deg, transparent, var(--ib-warm-50, #fff7ed));
	color: var(--ib-accent);
	font-weight: 600;
	text-decoration: none;
	border-top: 1px solid var(--ib-stone-100);
	transition: background .12s var(--ib-ease);
}
.ib_search-results-all:hover,
.ib_search-results-all.is-active {
	background: var(--ib-accent-soft, #fef0e3);
}
.ib_search-results-all svg { transition: transform .15s var(--ib-ease); }
.ib_search-results-all:hover svg { transform: translateX(3px); }

/* States: loading / empty / error */
.ib_search-results-state {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	padding: 28px 20px;
	color: var(--ib-ink-muted);
	font-size: 0.9375rem;
}
.ib_search-results-state--error { color: #b00020; }
.ib_search-results-empty {
	padding: 28px 24px;
	text-align: center;
}
.ib_search-results-empty strong {
	display: block;
	font-family: var(--ib-font-display);
	font-size: 1.25rem;
	color: var(--ib-ink);
	margin-bottom: 6px;
}
.ib_search-results-empty p {
	color: var(--ib-ink-muted);
	margin: 0;
	font-size: 0.9375rem;
}
.ib_search-spinner {
	width: 16px;
	height: 16px;
	border-radius: 50%;
	border: 2px solid var(--ib-stone-200, #e6e3dc);
	border-top-color: var(--ib-accent);
	animation: ib_search_spin .7s linear infinite;
	flex: 0 0 auto;
}
@keyframes ib_search_spin { to { transform: rotate(360deg); } }

/* ---------- 11. Footer — 3 tiers (CTA / main dark / legal) ----------- */

/* ===== Tier 1: CTA band — dark gradient with warm sunburst ===== */
.ib_footer-cta {
	position: relative;
	background:
		radial-gradient(ellipse at 80% 0%, rgba(245, 129, 36, 0.18) 0%, transparent 55%),
		radial-gradient(ellipse at 10% 100%, rgba(251, 192, 21, 0.08) 0%, transparent 50%),
		linear-gradient(180deg, #1a1a1a 0%, var(--ib-ink) 100%);
	color: rgba(255, 255, 255, 0.78);
	padding: clamp(48px, 7vw, 88px) 0 clamp(28px, 4vw, 48px);
	overflow: hidden;
}
.ib_footer-cta::before {
	content: "";
	position: absolute;
	top: 0; left: 0; right: 0;
	height: 3px;
	background: var(--ib-grad-warm);
	background-size: 200% 100%;
	animation: ib_grad-shift 14s linear infinite;
}
.ib_footer-cta::after {
	content: "";
	position: absolute;
	right: -140px; bottom: -140px;
	width: 360px; height: 360px;
	border-radius: 50%;
	background: var(--ib-grad-warm);
	opacity: 0.10;
	filter: blur(28px);
	pointer-events: none;
}
.ib_footer-cta-inner {
	display: grid;
	gap: var(--ib-s-4);
	align-items: start;
	position: relative;
	z-index: 1;
}
@media (min-width: 880px) {
	.ib_footer-cta-inner {
		grid-template-columns: minmax(0, 1.4fr) minmax(280px, auto);
		gap: clamp(40px, 6vw, 80px);
	}
}

/* LEFT column — copy + buttons stacked vertically */
.ib_footer-cta-main {
	display: flex;
	flex-direction: column;
	gap: var(--ib-s-3);
}
.ib_footer-cta-copy { max-width: 32ch; }
.ib_footer-cta-copy .ib_eyebrow {
	display: inline-block;
	font-size: 0.6875rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--ib-gold);
	margin-bottom: 10px;
}
.ib_footer-cta-title {
	font-family: var(--ib-font-display);
	font-size: clamp(1.625rem, 3vw + 0.5rem, 2.75rem);
	line-height: 1.1;
	letter-spacing: -0.02em;
	color: #fff;
	margin: 0 0 12px;
}
.ib_footer-cta-sub {
	font-size: 1rem;
	color: rgba(255, 255, 255, 0.65);
	margin: 0;
	line-height: 1.55;
}
.ib_footer-cta-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-top: 4px;
}
.ib_footer-cta-primary,
.ib_footer-cta-phone {
	display: inline-flex !important;
	align-items: center;
	gap: 8px;
	padding: 14px 22px !important;
	border-radius: 999px !important;
	font-weight: 700 !important;
	white-space: nowrap;
}
.ib_footer-cta-phone {
	background: transparent !important;
	color: #fff !important;
	border: 1.5px solid rgba(255, 255, 255, 0.32) !important;
	transition: background .15s var(--ib-ease), color .15s var(--ib-ease), border-color .15s var(--ib-ease);
}
.ib_footer-cta-phone:hover {
	background: #fff !important;
	color: var(--ib-ink) !important;
	border-color: #fff !important;
}
.ib_footer-cta-phone svg { color: var(--ib-accent); }
.ib_footer-cta-phone:hover svg { color: var(--ib-accent); }

/* RIGHT column — trust badges stacked vertically (was a 3-up row below).
 * Each item gets its own row in a subtle bordered card so they read as a list. */
.ib_footer-trust {
	list-style: none;
	margin: 0;
	padding: var(--ib-s-3);
	background: rgba(255, 255, 255, 0.03);
	border: 1px solid rgba(255, 255, 255, 0.08);
	border-radius: var(--ib-radius-lg);
	display: flex;
	flex-direction: column;
	gap: 14px;
	position: relative;
	z-index: 1;
}
@media (min-width: 880px) {
	.ib_footer-trust { align-self: stretch; }
}
.ib_footer-trust-item {
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 4px 0;
}
.ib_footer-trust-item + .ib_footer-trust-item {
	border-top: 1px solid rgba(255, 255, 255, 0.06);
	padding-top: 14px;
}
.ib_footer-trust-icon {
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px; height: 44px;
	background: rgba(255, 255, 255, 0.05);
	color: var(--ib-accent);
	border: 1px solid rgba(255, 255, 255, 0.1);
	border-radius: 50%;
}
.ib_footer-trust-copy {
	display: flex;
	flex-direction: column;
	min-width: 0;
	line-height: 1.3;
}
.ib_footer-trust-copy strong {
	font-size: 0.9375rem;
	color: #fff;
	font-weight: 700;
}
.ib_footer-trust-copy span {
	font-size: 0.8125rem;
	color: rgba(255, 255, 255, 0.55);
	margin-top: 2px;
}

/* ===== Tier 2: Main footer (bright, real logo) ===== */
.ib_site-footer {
	background: var(--ib-warm-50);
	color: var(--ib-ink-soft);
	padding: clamp(40px, 5vw, 64px) 0 clamp(28px, 3vw, 40px);
	position: relative;
	border-top: 1px solid var(--ib-stone-100);
}
/* Animated brand-gradient strip across the top — same one as the header
 * nav row and the footer CTA tier. Visual continuity, no extra weight. */
.ib_site-footer::before {
	content: "";
	position: absolute;
	top: 0; left: 0; right: 0;
	height: 2px;
	background: var(--ib-grad-warm);
	background-size: 200% 100%;
	animation: ib_grad-shift 14s linear infinite;
	pointer-events: none;
}
.ib_site-footer a {
	color: var(--ib-ink-soft);
	transition: color .15s var(--ib-ease);
	text-decoration: none;
}
.ib_site-footer a:hover { color: var(--ib-accent); }

.ib_footer-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 36px;
}
@media (min-width: 640px) {
	.ib_footer-grid { grid-template-columns: repeat(2, 1fr); gap: 32px 28px; }
}
@media (min-width: 900px) {
	.ib_footer-grid {
		grid-template-columns: 2fr 1fr 1fr 1fr;
		gap: 40px 28px;
	}
	.ib_footer-col-brand { grid-column: 1 / -1; max-width: 540px; }
}
/* 5-col on wide viewports — brand spans 1.6fr, four equal-fr menu/contact cols */
@media (min-width: 1100px) {
	.ib_footer-grid {
		grid-template-columns: 1.6fr 1fr 1fr 1fr 1.15fr;
		gap: 40px 36px;
	}
	.ib_footer-col-brand { grid-column: auto; max-width: none; }
}

/* "Volledig assortiment →" link styled distinctly inside Shop column */
.ib_footer-menu-all {
	display: inline-block;
	margin-top: 6px;
	color: var(--ib-accent) !important;
	font-weight: 700 !important;
}

/* Real-logo brand block */
.ib_footer-brand { margin: 0 0 18px; }
.ib_footer-brand .ib_brand,
.ib_footer-brand .custom-logo-link {
	display: inline-block;
	text-decoration: none;
}
.ib_footer-brand .ib_brand img,
.ib_footer-brand .ib_brand-mark,
.ib_footer-brand .custom-logo,
.ib_footer-brand .custom-logo-link img {
	height: 56px !important;
	max-width: 240px !important;
	width: auto !important;
	display: block;
}

.ib_footer-tagline {
	font-size: 0.9375rem;
	line-height: 1.6;
	color: var(--ib-ink-muted);
	margin: 0 0 var(--ib-s-2);
	max-width: 36ch;
}

/* Mini shop CTA card in the brand column — always shown to fill the
 * empty space when no newsletter form / socials are configured. */
.ib_footer-shopcard {
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 14px 16px;
	background: var(--ib-paper);
	border: 1px solid var(--ib-stone-200);
	border-radius: var(--ib-radius-md);
	margin: var(--ib-s-2) 0 var(--ib-s-3);
	max-width: 360px;
	transition: border-color .18s var(--ib-ease), transform .18s var(--ib-ease), box-shadow .25s var(--ib-ease);
	position: relative;
	overflow: hidden;
}
/* Subtle accent line that slides across on hover */
.ib_footer-shopcard::before {
	content: "";
	position: absolute;
	top: 0; left: -100%;
	right: 0; height: 2px;
	background: var(--ib-grad-warm);
	transition: left .5s var(--ib-ease);
}
.ib_footer-shopcard:hover {
	border-color: var(--ib-accent);
	transform: translateY(-3px);
	box-shadow: 0 12px 28px rgba(245, 129, 36, 0.15);
}
.ib_footer-shopcard:hover::before { left: 0; }
.ib_footer-shopcard-body { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.ib_footer-shopcard-body strong {
	color: var(--ib-ink);
	font-weight: 700;
	font-size: 0.9375rem;
	line-height: 1.3;
}
.ib_footer-shopcard-body span {
	color: var(--ib-ink-muted);
	font-size: 0.8125rem;
	line-height: 1.4;
}
.ib_footer-shopcard-link {
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px; height: 40px;
	border-radius: 50%;
	background: var(--ib-accent);
	color: #fff !important;
	transition: background .15s var(--ib-ease), transform .15s var(--ib-ease);
}
.ib_footer-shopcard:hover .ib_footer-shopcard-link {
	background: var(--ib-accent-2);
	transform: translate(2px, -2px);
}

.ib_footer-title {
	font-family: var(--ib-font-body);
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--ib-ink);
	margin: 0 0 16px;
	display: inline-flex;
	flex-direction: column;
	gap: 8px;
}
/* Accent line under each column title for visual weight */
.ib_footer-title::after {
	content: "";
	display: block;
	width: 28px;
	height: 2px;
	background: var(--ib-accent);
	border-radius: 999px;
}

.ib_footer-menu,
.ib_footer-contact {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	flex-direction: column;
	gap: 11px;
	font-size: 0.9375rem;
}
.ib_footer-menu li a {
	position: relative;
	display: inline-block;
	padding-left: 0;
	transition: color .15s var(--ib-ease), padding-left .18s var(--ib-ease);
}
/* Accent dot prefix slides in on hover for a livelier feel */
.ib_footer-menu li a::before {
	content: "";
	position: absolute;
	left: 0;
	top: 50%;
	width: 4px;
	height: 4px;
	border-radius: 50%;
	background: var(--ib-accent);
	transform: translate(-8px, -50%) scale(0);
	transition: transform .2s var(--ib-ease);
}
.ib_footer-menu li a:hover {
	padding-left: 12px;
	color: var(--ib-accent);
}
.ib_footer-menu li a:hover::before {
	transform: translate(0, -50%) scale(1);
}

.ib_footer-contact li {
	display: flex;
	align-items: flex-start;
	gap: 10px;
}
.ib_footer-contact-icon {
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 28px; height: 28px;
	background: var(--ib-accent-soft);
	border-radius: 50%;
	margin-top: 1px;
}
.ib_footer-contact-icon svg { color: var(--ib-accent); }

.ib_footer-socials {
	list-style: none;
	padding: 0;
	margin: var(--ib-s-2) 0 var(--ib-s-3);
	display: flex;
	gap: 8px;
}
.ib_footer-socials a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	background: var(--ib-paper);
	border: 1.5px solid var(--ib-stone-200);
	color: var(--ib-ink);
	transition: background .2s var(--ib-ease), color .2s var(--ib-ease), border-color .2s var(--ib-ease), transform .25s cubic-bezier(.34, 1.56, .64, 1);
}
.ib_footer-socials a:hover {
	background: var(--ib-accent);
	color: #fff;
	border-color: var(--ib-accent);
	transform: translateY(-3px) rotate(-6deg);
	box-shadow: 0 8px 20px rgba(245, 129, 36, 0.28);
}

/* Contact column fallback — when no Customizer contact data is set */
.ib_footer-contact-fallback {
	padding: 14px 16px;
	background: var(--ib-paper);
	border: 1px solid var(--ib-stone-200);
	border-radius: var(--ib-radius-md);
}
.ib_footer-contact-fallback p {
	margin: 0 0 10px;
	color: var(--ib-ink-soft);
	font-size: 0.9375rem;
	line-height: 1.5;
}
.ib_footer-contact-fallback-cta {
	display: inline-flex !important;
	align-items: center;
	gap: 6px;
	color: var(--ib-accent) !important;
	font-weight: 700;
	font-size: 0.875rem;
	text-decoration: none !important;
}
.ib_footer-contact-fallback-cta svg { transition: transform .15s var(--ib-ease); }
.ib_footer-contact-fallback-cta:hover svg { transform: translateX(3px); }

.ib_footer-newsletter { margin-top: var(--ib-s-3); }
.ib_footer-newsletter .ib_footer-title { margin-top: 0; }
/* Light-tier form fields */
.ib_footer-newsletter input[type="email"],
.ib_footer-newsletter input[type="text"] {
	width: 100%;
	background: var(--ib-paper);
	border: 1.5px solid var(--ib-stone-200);
	color: var(--ib-ink);
	padding: 11px 14px;
	border-radius: 999px;
	font-size: 0.9375rem;
}
.ib_footer-newsletter input[type="email"]::placeholder,
.ib_footer-newsletter input[type="text"]::placeholder { color: var(--ib-ink-muted); }
.ib_footer-newsletter input[type="submit"],
.ib_footer-newsletter button[type="submit"] {
	background: var(--ib-accent);
	color: #fff;
	border: none;
	padding: 11px 18px;
	border-radius: 999px;
	font-weight: 600;
	cursor: pointer;
	margin-top: 8px;
}

/* ===== Payments strip — lives INSIDE the cream tier ===== */
.ib_footer-payments {
	margin-top: clamp(28px, 4vw, 44px);
	padding-top: var(--ib-s-3);
	border-top: 1px solid var(--ib-stone-200);
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 12px;
	text-align: center;
}
@media (min-width: 540px) {
	.ib_footer-payments {
		flex-direction: row;
		justify-content: center;
		gap: 18px;
		text-align: left;
	}
}
.ib_footer-payments-label {
	font-size: 0.6875rem;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	font-weight: 700;
	color: var(--ib-ink-muted);
}
.ib_footer-payments ul {
	list-style: none;
	margin: 0;
	padding: 0;
	display: inline-flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 8px;
	font-weight: 600;
	font-size: 0.8125rem;
}
.ib_footer-payments li {
	display: inline-flex;
	align-items: center;
	padding: 6px 12px;
	background: var(--ib-paper);
	border: 1px solid var(--ib-stone-200);
	border-radius: 6px;
	color: var(--ib-ink);
	font-variant-numeric: tabular-nums;
	transition: transform .18s var(--ib-ease), border-color .18s var(--ib-ease), box-shadow .18s var(--ib-ease);
	cursor: default;
}
.ib_footer-payments li:hover {
	transform: translateY(-2px);
	border-color: var(--ib-accent);
	box-shadow: 0 4px 10px rgba(245, 129, 36, 0.12);
}

/* ===== Tier 3: Slim legal bar (cream→dark transition) ===== */
.ib_footer-legal-tier {
	background: #1a1a1a;
	color: rgba(255, 255, 255, 0.55);
	padding: 16px 0;
	font-size: 0.8125rem;
}
.ib_footer-legal-tier a {
	color: rgba(255, 255, 255, 0.7);
	text-decoration: none;
	transition: color .15s var(--ib-ease);
}
.ib_footer-legal-tier a:hover { color: var(--ib-accent); }

.ib_footer-legal-row {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 8px;
	text-align: center;
}
@media (min-width: 720px) {
	.ib_footer-legal-row {
		flex-direction: row;
		justify-content: space-between;
		text-align: left;
	}
}
.ib_footer-copy {
	margin: 0;
	color: rgba(255, 255, 255, 0.5);
}
.ib_footer-legal-menu {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 4px 22px;
	justify-content: center;
}
.ib_footer-legal-menu a { font-size: 0.8125rem; }

/* ---------- 8. Reveal animation hook ---------------------------------- */

[data-reveal] { opacity: 0; transform: translateY(16px); transition: opacity .6s var(--ib-ease), transform .6s var(--ib-ease); }
[data-reveal].is-visible { opacity: 1; transform: none; }

/* ---------- 9. Reduced motion ----------------------------------------- */

@media (prefers-reduced-motion: reduce) {
	*,*::before,*::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}

/* ---------- 10. Phase 2+ will add: hero, USP strip, category grid,
   product cards, mini-cart drawer, predictive search, footer columns,
   WC overrides, blog cards, FAQ accordions, etc. ----------------------- */

/* =========================================================================
   WC archive layout — filter sidebar + product grid
   ========================================================================= */

.ib_archive-layout {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--ib-s-4);
	padding: var(--ib-s-4) 0;
	/* `position: sticky` on the sidebar requires NO ancestor with overflow:hidden.
	   This is explicit for the sake of future maintainers. */
	overflow: visible;
}
@media (min-width: 1024px) {
	.ib_archive-layout {
		grid-template-columns: 280px minmax(0, 1fr);
		gap: var(--ib-s-5);
		padding: var(--ib-s-5) 0;
		align-items: start;     /* CRITICAL: lets the sticky aside scroll independently */
	}
}

/* ---------- Filter sidebar — premium cards ---------- */

.ib_filters {
	background: transparent;
	padding: 0;
	box-shadow: none;
	border: none;
}
@media (min-width: 1024px) {
	.ib_filters {
		position: sticky;
		top: 120px;
		max-height: calc(100dvh - 140px);
		/* IMPORTANT: no overflow on the aside itself — put it on the body
		   below so the head stays pinned at the top of the sidebar. */
		overflow: visible;
		display: flex;
		flex-direction: column;
	}
	/* Title stays at the top of the sidebar — never scrolls away */
	.ib_filters > .ib_filters-head {
		flex: 0 0 auto;
		background: var(--ib-paper);
		z-index: 2;
	}
	/* Only the body scrolls when filters overflow */
	.ib_filters > .ib_filters-body {
		flex: 1 1 auto;
		min-height: 0;            /* CRITICAL: lets flex child shrink */
		overflow-y: auto;
		overscroll-behavior: contain;
		scrollbar-width: thin;
		padding-right: 4px;
	}
}

.ib_filters-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 4px;
	margin-bottom: 12px;
}
.ib_filters-title {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	margin: 0;
	font-family: var(--ib-font-body);
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--ib-ink-muted);
}
.ib_filters-title::before {
	content: "";
	display: inline-block;
	width: 6px; height: 6px;
	border-radius: 50%;
	background: var(--ib-accent);
	box-shadow: 0 0 0 3px var(--ib-accent-soft);
}
.ib_filters-close { display: inline-flex; }
@media (min-width: 1024px) {
	.ib_filters-close { display: none; }
}

/* Horizontal active-chips bar — sits above the product grid */
.ib_chips-bar {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px;
	padding: 12px 14px;
	margin: 0 0 var(--ib-s-3);
	background: var(--ib-paper);
	border: 1px solid var(--ib-stone-200);
	border-radius: var(--ib-radius-md);
}
.ib_chips-bar-label {
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.10em;
	text-transform: uppercase;
	color: var(--ib-ink-muted);
}
.ib_chips {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	flex: 1 1 auto;
	min-width: 0;
}
.ib_chip a {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 6px 10px 6px 12px;
	background: var(--ib-accent-soft);
	color: var(--ib-accent-2);
	border: 1px solid transparent;
	border-radius: 999px;
	font-size: 0.8125rem;
	font-weight: 600;
	text-decoration: none;
	transition: background .12s var(--ib-ease), color .12s var(--ib-ease), border-color .12s var(--ib-ease), transform .12s var(--ib-ease);
}
.ib_chip a:hover {
	background: var(--ib-accent);
	color: #fff;
	transform: translateY(-1px);
}
.ib_chip-x {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 18px; height: 18px;
	border-radius: 50%;
	background: rgba(0,0,0,0.07);
	transition: background .12s var(--ib-ease);
}
.ib_chip a:hover .ib_chip-x { background: rgba(255,255,255,0.28); }

/* Reset = plain underlined text, no background */
.ib_chips-reset {
	margin-left: auto;
	font-size: 0.8125rem;
	font-weight: 600;
	color: var(--ib-ink-soft);
	text-decoration: underline;
	text-underline-offset: 3px;
	text-decoration-thickness: 1px;
	white-space: nowrap;
	transition: color .12s var(--ib-ease), text-decoration-color .12s var(--ib-ease);
}
.ib_chips-reset:hover { color: var(--ib-accent); text-decoration-color: var(--ib-accent); }

/* Filter groups — each one is now its own card */
.ib_filter-group {
	background: var(--ib-paper);
	border: 1px solid var(--ib-stone-200);
	border-radius: var(--ib-radius-md);
	margin-bottom: 10px;
	transition: border-color .2s var(--ib-ease), box-shadow .25s var(--ib-ease), transform .2s var(--ib-ease);
	overflow: hidden;
}
.ib_filter-group:hover {
	border-color: var(--ib-stone-100);
	box-shadow: 0 4px 14px rgba(0,0,0,0.05);
}
.ib_filter-group[open] {
	border-color: var(--ib-accent);
	box-shadow: 0 12px 28px rgba(245,129,36,0.12), 0 2px 8px rgba(245,129,36,0.08);
	transform: translateY(-1px);
}
.ib_filter-group.has-active {
	border-color: var(--ib-accent);
	background: linear-gradient(180deg, var(--ib-accent-soft) 0%, var(--ib-paper) 100%);
}
.ib_filter-group.has-active > .ib_filter-group-title { color: var(--ib-accent); }

.ib_filter-group-title {
	display: flex;
	align-items: center;
	gap: 12px;
	margin: 0;
	padding: 14px 14px;
	font-family: var(--ib-font-body);
	font-size: 0.9375rem;
	font-weight: 700;
	color: var(--ib-ink);
	cursor: pointer;
	list-style: none;
	transition: color .15s var(--ib-ease), background .15s var(--ib-ease);
}
.ib_filter-group-title:hover { color: var(--ib-accent); }
.ib_filter-group-title::-webkit-details-marker { display: none; }
.ib_filter-group-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 32px; height: 32px;
	border-radius: 10px;
	background: var(--ib-accent-soft);
	color: var(--ib-accent);
	flex: 0 0 auto;
	transition: background .2s var(--ib-ease), color .2s var(--ib-ease), transform .25s var(--ib-ease);
}
.ib_filter-group:hover .ib_filter-group-icon,
.ib_filter-group[open] .ib_filter-group-icon {
	background: var(--ib-accent);
	color: #fff;
	transform: rotate(-6deg) scale(1.05);
}
.ib_filter-group-label { flex: 1; min-width: 0; }
.ib_filter-group-badge {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 22px;
	height: 22px;
	padding: 0 7px;
	background: var(--ib-accent);
	color: #fff;
	border-radius: 999px;
	font-size: 0.6875rem;
	font-weight: 700;
	box-shadow: 0 4px 10px rgba(245,129,36,0.35);
}
.ib_filter-group-chevron {
	display: inline-flex;
	color: var(--ib-ink-muted);
	transition: transform .3s var(--ib-ease), color .15s var(--ib-ease);
}
.ib_filter-group[open] > .ib_filter-group-title .ib_filter-group-chevron {
	transform: rotate(180deg);
	color: var(--ib-accent);
}

.ib_filter-list {
	list-style: none;
	margin: 0;
	padding: 0 10px 12px;
	display: flex;
	flex-direction: column;
	gap: 2px;
	max-height: 320px;
	overflow-y: auto;
	scrollbar-width: thin;
	animation: ib_filter-list-in .25s var(--ib-ease);
}
@keyframes ib_filter-list-in {
	from { opacity: 0; transform: translateY(-4px); }
	to   { opacity: 1; transform: translateY(0); }
}
.ib_filter-item a {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 7px 10px;
	border-radius: 8px;
	font-size: 0.875rem;
	color: var(--ib-ink-soft);
	text-decoration: none;
	transition: background .12s var(--ib-ease), color .12s var(--ib-ease), padding-left .15s var(--ib-ease);
}
.ib_filter-item a:hover {
	background: var(--ib-paper);
	color: var(--ib-ink);
	padding-left: 12px;
}
.ib_filter-box {
	flex: 0 0 auto;
	width: 18px;
	height: 18px;
	border: 1.5px solid var(--ib-stone-200);
	border-radius: 5px;
	background: var(--ib-paper);
	position: relative;
	transition: background .15s var(--ib-ease), border-color .15s var(--ib-ease), transform .15s var(--ib-ease);
}
.ib_filter-item a:hover .ib_filter-box { border-color: var(--ib-accent); }
.ib_filter-item.is-active .ib_filter-box {
	background: var(--ib-accent);
	border-color: var(--ib-accent);
	transform: scale(1.05);
}
.ib_filter-item.is-active .ib_filter-box::after {
	content: "";
	position: absolute;
	left: 5px; top: 2px;
	width: 5px; height: 9px;
	border: solid #fff;
	border-width: 0 2px 2px 0;
	transform: rotate(45deg);
}
.ib_filter-item.is-active a {
	color: var(--ib-ink);
	font-weight: 600;
	background: var(--ib-paper);
}
.ib_filter-label { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ib_filter-count {
	color: var(--ib-ink-muted);
	font-size: 0.75rem;
	background: var(--ib-stone-100);
	padding: 1px 7px;
	border-radius: 999px;
	font-variant-numeric: tabular-nums;
}
.ib_filter-item.is-active .ib_filter-count {
	background: var(--ib-accent-soft);
	color: var(--ib-accent-2);
}

/* ---------- Filter toolbar trigger (mobile) ---------- */

.ib_filters-toggle {
	display: inline-flex;
	margin-bottom: var(--ib-s-3);
	padding: 12px 20px !important;
	font-weight: 600 !important;
}
@media (min-width: 1024px) {
	.ib_filters-toggle { display: none; }
}

/* Sticky head/foot wrappers hidden by default — only used inside mobile drawer */
.ib_filters-body { }
.ib_filters-foot { display: none; }

/* Desktop: head is just a label, no chrome */
@media (min-width: 1024px) {
	.ib_filters-head {
		padding: 4px;
		margin-bottom: 12px;
		background: transparent;
		border: none;
		box-shadow: none;
	}
	.ib_filters-close { display: none; }
}

/* ---------- Mobile: sidebar becomes a premium off-canvas drawer ---------- */

@media (max-width: 1023px) {

	/* Backdrop dims the page behind the drawer */
	.ib_filters-backdrop {
		position: fixed;
		inset: 0;
		z-index: 74;
		background: rgba(15, 15, 15, 0.45);
		backdrop-filter: blur(2px);
		-webkit-backdrop-filter: blur(2px);
		opacity: 0;
		transition: opacity .25s var(--ib-ease);
	}
	.ib_filters-backdrop.is-open { opacity: 1; }

	/* Drawer container — full-height side panel */
	.ib_filters {
		position: fixed;
		left: 0; top: 0;
		height: 100dvh;
		width: min(420px, 100vw);
		z-index: 75;
		padding: 0;
		margin: 0;
		background: var(--ib-paper);     /* SOLID — was transparent, that was the bug */
		box-shadow: 24px 0 60px rgba(0,0,0,0.18);
		transform: translateX(-100%);
		transition: transform .35s var(--ib-ease);
		visibility: hidden;
		display: flex;
		flex-direction: column;
		overflow: hidden;   /* let the body scroll, not the drawer itself */
	}
	.ib_filters[data-open="true"] {
		transform: translateX(0);
		visibility: visible;
	}
	/* Top brand-gradient accent strip on the drawer */
	.ib_filters::before {
		content: "";
		position: absolute;
		left: 0; right: 0; top: 0;
		height: 3px;
		background: var(--ib-grad-warm);
		z-index: 4;
	}

	/* Sticky header inside the drawer */
	.ib_filters-head {
		flex: 0 0 auto;
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: 12px;
		padding: 18px 20px 14px;
		margin: 0;
		background: var(--ib-paper);
		border-bottom: 1px solid var(--ib-stone-100);
		z-index: 3;
	}
	.ib_filters-title {
		display: inline-flex;
		align-items: center;
		gap: 10px;
		margin: 0;
		font-family: var(--ib-font-body);
		font-size: 0.9375rem;
		font-weight: 700;
		letter-spacing: 0.06em;
		text-transform: uppercase;
		color: var(--ib-ink);
	}
	.ib_filters-title::before { display: none; }
	.ib_filters-title svg { color: var(--ib-accent); }
	.ib_filters-close {
		display: inline-flex;
		width: 40px; height: 40px;
		background: var(--ib-warm-50);
		border: none;
		border-radius: 999px;
		color: var(--ib-ink);
		align-items: center;
		justify-content: center;
		cursor: pointer;
		transition: background .15s var(--ib-ease), color .15s var(--ib-ease);
	}
	.ib_filters-close:hover { background: var(--ib-accent); color: #fff; }

	/* Scrollable body */
	.ib_filters-body {
		flex: 1 1 auto;
		overflow-y: auto;
		overscroll-behavior: contain;
		-webkit-overflow-scrolling: touch;
		padding: 16px 16px 12px;
		background: var(--ib-warm-50);
	}

	/* Sticky footer with reset + apply CTA */
	.ib_filters-foot {
		display: flex;
		flex: 0 0 auto;
		gap: 8px;
		padding: 12px 16px calc(12px + env(safe-area-inset-bottom));
		background: var(--ib-paper);
		border-top: 1px solid var(--ib-stone-100);
		box-shadow: 0 -8px 24px rgba(0,0,0,0.08);
		z-index: 3;
	}
	.ib_filters-foot .ib_btn {
		flex: 1 1 auto;
		justify-content: center;
		padding: 13px 16px;
	}
	.ib_filters-foot-reset { flex: 0 1 auto !important; padding: 13px 18px !important; }
	.ib_filters-foot-apply { flex: 1 1 auto !important; }

	/* Inside the mobile drawer, the filter group cards still look like cards
	   but with a lighter shadow and tighter spacing. */
	.ib_filters-body .ib_filter-group {
		margin-bottom: 10px;
	}
	.ib_filters-body .ib_filter-group-title {
		padding: 16px 14px;
	}
}

/* ---------- Archive main column ---------- */

.ib_archive-main {
	min-width: 0;   /* allows grid children to shrink correctly */
}

/* Hide WC's default products header — we render our own hero above the layout */
.woocommerce-products-header { display: none; }

/* Premium toolbar above the grid: results count (left) + sort dropdown (right) */
.woocommerce-result-count,
.woocommerce-notices-wrapper + .woocommerce-result-count {
	float: none !important;
	display: inline-flex;
	align-items: center;
	margin: 0 0 var(--ib-s-3) !important;
	padding: 8px 14px;
	background: var(--ib-warm-50);
	border-radius: 999px;
	color: var(--ib-ink-soft);
	font-size: 0.8125rem;
	font-weight: 600;
	letter-spacing: 0.02em;
}
.woocommerce-result-count::before {
	content: "";
	display: inline-block;
	width: 6px; height: 6px;
	border-radius: 50%;
	background: var(--ib-accent);
	margin-right: 8px;
	box-shadow: 0 0 0 3px var(--ib-accent-soft);
}
.woocommerce-ordering {
	float: none !important;
	display: inline-block;
	margin: 0 0 var(--ib-s-3) !important;
	margin-left: auto !important;
}
.woocommerce-ordering select {
	padding: 9px 36px 9px 14px !important;
	border-radius: 999px !important;
	border: 1.5px solid var(--ib-stone-200) !important;
	background: var(--ib-paper) !important;
	font-size: 0.8125rem !important;
	font-weight: 600 !important;
	color: var(--ib-ink) !important;
	cursor: pointer;
	transition: border-color .15s var(--ib-ease), box-shadow .15s var(--ib-ease);
}
.woocommerce-ordering select:hover,
.woocommerce-ordering select:focus {
	border-color: var(--ib-accent) !important;
	box-shadow: 0 0 0 4px var(--ib-accent-soft);
	outline: none;
}

/* Wrap the result count + sort dropdown on one row above the grid */
.ib_archive-grid::before {
	content: "";
	display: block;
}
.ib_archive-grid .woocommerce-result-count,
.ib_archive-grid .woocommerce-ordering {
	margin-bottom: var(--ib-s-3) !important;
}

/* Product grid — defensively override every WC selector that could re-center the cards */
.woocommerce ul.products,
.woocommerce-page ul.products,
.ib_archive-grid ul.products,
.ib_archive-grid > ul,
ul.products {
	display: grid !important;
	grid-template-columns: 1fr !important;
	grid-auto-flow: row !important;
	gap: var(--ib-s-3) !important;
	margin: 0 !important;
	padding: 0 !important;
	list-style: none !important;
	width: 100% !important;
	max-width: 100% !important;
	justify-content: start !important;
	justify-items: stretch !important;
	align-items: start !important;
	text-align: left !important;
}
/* Kill WC's clearfix pseudo-elements which leave invisible grid cells */
.woocommerce ul.products::before,
.woocommerce ul.products::after,
.woocommerce-page ul.products::before,
.woocommerce-page ul.products::after,
ul.products::before,
ul.products::after {
	content: none !important;
	display: none !important;
}
@media (min-width: 560px)  {
	.woocommerce ul.products,
	.woocommerce-page ul.products,
	.ib_archive-grid ul.products,
	ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
}
@media (min-width: 1024px) {
	.woocommerce ul.products,
	.woocommerce-page ul.products,
	.ib_archive-grid ul.products,
	ul.products { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
}
/* Force first product into column 1 — kills any "first product floats right" weirdness */
.woocommerce ul.products li.product:first-of-type,
.woocommerce ul.products li.product:first-child {
	grid-column-start: 1 !important;
}
.woocommerce ul.products li.product:only-child {
	grid-column: 1 / 2 !important;
}
/* Belt-and-suspenders: kill WC's per-card centering rules + auto margins */
.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product,
ul.products li.product {
	clear: none !important;
	float: none !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
	left: auto !important;
	right: auto !important;
}

/* Premium product card */
.woocommerce ul.products li.product,
ul.products li.product {
	width: auto !important;
	margin: 0 !important;
	padding: 0 !important;
	background: var(--ib-paper);
	border: 1px solid var(--ib-stone-200);
	border-radius: var(--ib-radius-lg);
	overflow: hidden;
	position: relative;
	display: flex !important;
	flex-direction: column !important;
	transition: box-shadow .25s var(--ib-ease), transform .25s var(--ib-ease), border-color .25s var(--ib-ease);
	float: none !important;
	text-align: left !important;
}
/* Brand-gradient strip — ALWAYS visible (was hover-only). Animates a wider
   gradient on hover so the strip feels alive when the card is focused. */
.woocommerce ul.products li.product::before {
	content: "";
	position: absolute;
	left: 0; right: 0; top: 0;
	height: 3px;
	background: var(--ib-grad-warm);
	background-size: 200% 100%;
	background-position: 0% 50%;
	transition: height .25s var(--ib-ease), background-position 1.2s var(--ib-ease);
	z-index: 2;
}
.woocommerce ul.products li.product:hover {
	box-shadow: 0 24px 56px rgba(245, 129, 36, 0.18), 0 6px 18px rgba(0, 0, 0, 0.08);
	border-color: var(--ib-accent-soft);
	transform: translateY(-6px);
}
.woocommerce ul.products li.product:hover::before {
	height: 5px;
	background-position: 100% 50%;
}

/* Image — fixed aspect, hover zoom */
.woocommerce ul.products li.product a img,
.woocommerce ul.products li.product img {
	width: 100% !important;
	aspect-ratio: 1 / 1 !important;
	object-fit: cover !important;
	display: block !important;
	margin: 0 !important;
	background: var(--ib-warm-50);
	transition: transform .5s var(--ib-ease);
}
.woocommerce ul.products li.product > a:first-child {
	display: block;
	overflow: hidden;
	border-radius: var(--ib-radius-lg) var(--ib-radius-lg) 0 0;
}
.woocommerce ul.products li.product:hover img { transform: scale(1.04); }

/* Sale / new badges */
.woocommerce ul.products li.product .onsale {
	position: absolute !important;
	top: 12px !important;
	left: 12px !important;
	right: auto !important;
	background: var(--ib-accent) !important;
	color: #fff !important;
	border-radius: 999px !important;
	padding: 4px 12px !important;
	font-size: 0.6875rem !important;
	font-weight: 700 !important;
	letter-spacing: 0.06em !important;
	text-transform: uppercase !important;
	margin: 0 !important;
	min-height: 0 !important;
	min-width: 0 !important;
	line-height: 1.6 !important;
	z-index: 3;
	box-shadow: 0 4px 12px rgba(245,129,36,0.35);
}

/* Card body */
.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce ul.products li.product h2.woocommerce-loop-product__title,
.woocommerce ul.products li.product h3 {
	font-family: var(--ib-font-body) !important;
	font-size: 1rem !important;
	font-weight: 600 !important;
	line-height: 1.35 !important;
	color: var(--ib-ink) !important;
	margin: 0 !important;
	padding: 14px 18px 6px !important;
	min-height: 2.7em;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	transition: color .15s var(--ib-ease);
}
.woocommerce ul.products li.product:hover .woocommerce-loop-product__title { color: var(--ib-accent); }

/* Star rating */
.woocommerce ul.products li.product .star-rating {
	margin: 0 18px 6px !important;
	font-size: 0.875rem !important;
	color: var(--ib-gold) !important;
}

/* Price */
.woocommerce ul.products li.product .price {
	display: block !important;
	color: var(--ib-accent) !important;
	font-family: var(--ib-font-display) !important;
	font-weight: 400 !important;
	font-size: 1.375rem !important;
	margin: 0 !important;
	padding: 0 18px 14px !important;
}
.woocommerce ul.products li.product .price del { color: var(--ib-ink-muted) !important; opacity: 0.7; font-size: 0.875rem; margin-right: 6px; }
.woocommerce ul.products li.product .price ins { background: transparent !important; text-decoration: none !important; }

/* Tiny "incl. BTW" / "excl. BTW" suffix that follows every visible price */
.ib_price-tax-suffix {
	display: inline-block;
	margin-left: 4px;
	padding: 1px 6px;
	font-family: var(--ib-font-body);
	font-size: 0.625rem;
	font-weight: 600;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--ib-ink-muted);
	background: var(--ib-stone-100);
	border-radius: 4px;
	vertical-align: middle;
	white-space: nowrap;
	position: relative;
	top: -2px;
}

/* On the product card price (display-font 1.375rem), bump suffix a tiny bit to balance */
.woocommerce ul.products li.product .price .ib_price-tax-suffix {
	top: -4px;
}

/* On the cart drawer subtotal (display-font 1.5rem accent-orange), use a contrasting bg */
.ib_cart-drawer-subtotal-amount .ib_price-tax-suffix {
	background: var(--ib-accent-soft);
	color: var(--ib-accent-2);
	top: -5px;
}

/* On cart totals table (right-side big number), tweak alignment */
.cart_totals .order-total .amount + .ib_price-tax-suffix,
.cart_totals .cart-subtotal .amount + .ib_price-tax-suffix {
	display: inline-block;
	margin-left: 6px;
	top: -2px;
}

/* In checkout order review */
.woocommerce-checkout #order_review .order-total .amount + .ib_price-tax-suffix {
	font-size: 0.5625rem;
	top: -4px;
}

/* Card actions row: add-to-cart + view-product side by side */
.ib_card-actions {
	display: flex;
	gap: 8px;
	margin: auto 18px 18px;     /* `auto` top pushes the row to the bottom of the card */
	padding-top: 4px;
	align-items: stretch;
}

/* Add-to-cart button — fills remaining space in the row */
.woocommerce ul.products li.product .button,
.woocommerce ul.products li.product a.button {
	flex: 1 1 auto !important;
	width: auto !important;
	margin: 0 !important;
	background: var(--ib-ink) !important;
	color: #fff !important;
	border: 1.5px solid var(--ib-ink) !important;
	border-radius: 999px !important;
	padding: 12px 16px !important;
	font-weight: 600 !important;
	font-size: 0.875rem !important;
	text-align: center !important;
	letter-spacing: 0.01em !important;
	transition: background .15s var(--ib-ease), border-color .15s var(--ib-ease), transform .15s var(--ib-ease) !important;
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	gap: 6px;
}
.woocommerce ul.products li.product .button:hover,
.woocommerce ul.products li.product a.button:hover {
	background: var(--ib-accent) !important;
	border-color: var(--ib-accent) !important;
}

/* View-product icon button — animated diagonal arrow slides out + new one slides in */
.ib_card-view {
	flex: 0 0 auto;
	width: 46px;
	height: 46px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: var(--ib-paper);
	border: 1.5px solid var(--ib-ink);
	border-radius: 999px;
	color: var(--ib-ink);
	text-decoration: none;
	position: relative;
	overflow: hidden;
	transition: background .2s var(--ib-ease), border-color .2s var(--ib-ease), color .2s var(--ib-ease), transform .15s var(--ib-ease);
}
.ib_card-view:hover {
	background: var(--ib-accent);
	border-color: var(--ib-accent);
	color: #fff;
	transform: translateY(-1px);
}
.ib_card-view .ib_card-view-icon,
.ib_card-view .ib_card-view-icon-hover {
	position: absolute;
	inset: 0;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	transition: transform .35s var(--ib-ease), opacity .25s var(--ib-ease);
}
.ib_card-view .ib_card-view-icon-hover {
	transform: translate(-110%, 110%);
	opacity: 0;
}
.ib_card-view:hover .ib_card-view-icon {
	transform: translate(110%, -110%);
	opacity: 0;
}
.ib_card-view:hover .ib_card-view-icon-hover {
	transform: translate(0, 0);
	opacity: 1;
}
.ib_card-view:focus-visible { outline: 2px solid var(--ib-accent); outline-offset: 2px; }
.woocommerce ul.products li.product .button.added::after {
	content: " ✓";
}
.woocommerce ul.products li.product .added_to_cart {
	display: none !important; /* hide WC's auto-inserted "View cart" link — drawer handles it */
}

/* Pagination */
.woocommerce nav.woocommerce-pagination {
	margin-top: var(--ib-s-4);
	text-align: center;
}
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
	border-radius: 6px;
	padding: 8px 12px;
	color: var(--ib-ink);
}
.woocommerce nav.woocommerce-pagination ul li span.current {
	background: var(--ib-accent);
	color: #fff;
}

/* ---------- AJAX state on the grid ---------- */
.ib_archive-grid {
	position: relative;
	transition: opacity .15s var(--ib-ease);
}
.ib_archive-grid.is-loading { opacity: 0.55; pointer-events: none; }
.ib_archive-grid.is-loading::after {
	content: "";
	position: absolute;
	inset: 0;
	background: radial-gradient(circle, var(--ib-paper) 0%, rgba(255,255,255,0) 60%);
	pointer-events: none;
}
.ib_archive-grid-spinner {
	position: absolute;
	left: 50%; top: 80px;
	width: 28px; height: 28px;
	margin-left: -14px;
	border: 3px solid var(--ib-stone-200);
	border-top-color: var(--ib-accent);
	border-radius: 50%;
	animation: ib-spin 0.7s linear infinite;
	opacity: 0;
	transition: opacity .15s var(--ib-ease);
	z-index: 2;
}
.ib_archive-grid.is-loading .ib_archive-grid-spinner { opacity: 1; }
@keyframes ib-spin { to { transform: rotate(360deg); } }

.ib_archive-empty {
	padding: var(--ib-s-5) 0;
	text-align: center;
	color: var(--ib-ink-muted);
	background: var(--ib-warm-50);
	border-radius: var(--ib-radius-md);
}

/* =========================================================================
   CATEGORY PAGE — hero header
   ========================================================================= */

.ib_cat-hero {
	position: relative;
	background:
		radial-gradient(circle at 80% 20%, var(--ib-warm-100) 0%, transparent 55%),
		linear-gradient(180deg, var(--ib-warm-50) 0%, var(--ib-paper) 100%);
	padding: var(--ib-s-5) 0 var(--ib-s-4);
	border-bottom: 1px solid var(--ib-stone-100);
	overflow: hidden;
}
.ib_cat-hero::after {
	content: "";
	position: absolute;
	right: -120px; bottom: -120px;
	width: 320px; height: 320px;
	border-radius: 50%;
	background: var(--ib-grad-warm);
	opacity: 0.08;
	pointer-events: none;
	filter: blur(20px);
}
.ib_cat-hero--utility {
	padding: var(--ib-s-3) 0 var(--ib-s-2);
	background: linear-gradient(180deg, var(--ib-warm-50) 0%, var(--ib-paper) 100%);
}
.ib_cat-hero--utility::after { display: none; }
.ib_cat-hero--utility .ib_cat-hero-title {
	font-size: clamp(1.6rem, 2vw + 1rem, 2.25rem);
	margin: 0 0 6px;
}
.ib_cat-hero--utility .ib_cat-hero-intro {
	max-width: 70ch;
	font-size: 0.9375rem;
	color: var(--ib-ink-muted);
}
.ib_cat-hero-inner {
	display: grid;
	gap: var(--ib-s-4);
	grid-template-columns: 1fr;
	align-items: center;
}
.ib_cat-hero.has-image .ib_cat-hero-inner {
	grid-template-columns: 1fr;
}
@media (min-width: 900px) {
	.ib_cat-hero.has-image .ib_cat-hero-inner {
		grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr);
		gap: var(--ib-s-5);
	}
}

.ib_cat-hero-title {
	margin: 0 0 var(--ib-s-2);
	font-size: clamp(2rem, 3.4vw + 0.5rem, 3.25rem);
	letter-spacing: -0.015em;
	line-height: 1.1;
}
.ib_cat-hero-intro {
	margin: 0;
	max-width: 60ch;
	font-size: 1.0625rem;
	line-height: 1.6;
	color: var(--ib-ink-soft);
}
.ib_cat-hero-media {
	position: relative;
	border-radius: var(--ib-radius-lg);
	overflow: hidden;
	box-shadow: var(--ib-shadow-lg);
	aspect-ratio: 4 / 3;
}
.ib_cat-hero-media::after {
	content: "";
	position: absolute;
	inset: 0;
	pointer-events: none;
	background: linear-gradient(180deg, rgba(0,0,0,0) 60%, rgba(0,0,0,0.06) 100%);
}
.ib_cat-hero-media img {
	width: 100%; height: 100%;
	object-fit: cover;
	display: block;
}

/* Breadcrumb — `ib_breadcrumb` (singular, inside hero) +
 * `ib_breadcrumbs` (plural, standalone bar from template-parts/global/breadcrumbs.php). */
.ib_breadcrumb,
.ib_breadcrumbs {
	margin-bottom: var(--ib-s-2);
	font-size: 0.8125rem;
	color: var(--ib-ink-muted);
}
/* Standalone variant — used on blog/single post pages */
.ib_breadcrumbs {
	padding: 14px 0;
	margin-bottom: 0;
	border-bottom: 1px solid var(--ib-stone-100);
	background: var(--ib-paper);
}
.ib_breadcrumb ol,
.ib_breadcrumbs ol {
	display: flex;
	flex-wrap: wrap;
	gap: 4px 8px;
	list-style: none;
	margin: 0; padding: 0;
}
.ib_breadcrumb li,
.ib_breadcrumbs li { display: inline-flex; align-items: center; }
/* CSS-drawn chevron separator — no special characters (avoids any encoding mojibake) */
.ib_breadcrumb li + li::before,
.ib_breadcrumbs li + li::before {
	content: "";
	display: inline-block;
	width: 6px;
	height: 6px;
	margin: 0 10px 0 2px;
	border-right: 1.5px solid var(--ib-stone-200);
	border-top: 1.5px solid var(--ib-stone-200);
	transform: rotate(45deg);
	vertical-align: middle;
	position: relative;
	top: -1px;
}
.ib_breadcrumb a,
.ib_breadcrumbs a {
	color: var(--ib-ink-muted);
	transition: color .12s var(--ib-ease);
}
.ib_breadcrumb a:hover,
.ib_breadcrumbs a:hover { color: var(--ib-accent); }
.ib_breadcrumb [aria-current="page"],
.ib_breadcrumbs [aria-current="page"] { color: var(--ib-ink); font-weight: 500; }

/* =========================================================================
   CATEGORY PAGE — SEO body section
   ========================================================================= */

.ib_cat-body {
	padding: var(--ib-s-6) 0 var(--ib-s-5);
	background: var(--ib-paper);
	position: relative;
}
/* Faint divider line between products grid and SEO body — sits inside the
   container width so it doesn't span edge-to-edge */
.ib_cat-body::before {
	content: "";
	position: absolute;
	left: 50%;
	top: 0;
	transform: translateX(-50%);
	width: calc(100% - (var(--ib-gutter) * 2));
	max-width: var(--ib-container-max);
	height: 1px;
	background: linear-gradient(90deg,
		transparent 0%,
		var(--ib-stone-200) 20%,
		var(--ib-stone-200) 80%,
		transparent 100%
	);
}
.ib_cat-body-prose {
	max-width: 760px;
	margin: 0 auto;
	color: var(--ib-ink-soft);
	font-size: 1.0625rem;
	line-height: 1.7;
}
.ib_cat-body-prose h2,
.ib_cat-body-prose h3 {
	color: var(--ib-ink);
	margin-top: var(--ib-s-5);
	margin-bottom: var(--ib-s-2);
}
.ib_cat-body-prose h2 { font-size: clamp(1.5rem, 1.8vw + 0.75rem, 2rem); }
.ib_cat-body-prose h3 { font-size: 1.25rem; font-family: var(--ib-font-body); font-weight: 700; }
.ib_cat-body-prose h2:first-child,
.ib_cat-body-prose h3:first-child { margin-top: 0; }
.ib_cat-body-prose p { margin: 0 0 1.1em; }
.ib_cat-body-prose ul,
.ib_cat-body-prose ol { padding-left: 1.25em; margin: 0 0 1.2em; }
.ib_cat-body-prose li { margin-bottom: 0.35em; }
.ib_cat-body-prose ul li::marker { color: var(--ib-accent); }
.ib_cat-body-prose a {
	color: var(--ib-accent);
	border-bottom: 1px solid currentColor;
	transition: color .12s var(--ib-ease);
}
.ib_cat-body-prose a:hover { color: var(--ib-accent-2); }
.ib_cat-body-prose blockquote {
	margin: var(--ib-s-3) 0;
	padding: var(--ib-s-2) var(--ib-s-3);
	border-left: 3px solid var(--ib-accent);
	background: var(--ib-warm-50);
	border-radius: 0 var(--ib-radius-sm) var(--ib-radius-sm) 0;
	font-style: italic;
	color: var(--ib-ink);
}
.ib_cat-body-prose table {
	width: 100%;
	border-collapse: collapse;
	margin: var(--ib-s-3) 0;
	font-size: 0.9375rem;
}
.ib_cat-body-prose th,
.ib_cat-body-prose td {
	padding: 10px 12px;
	border-bottom: 1px solid var(--ib-stone-200);
	text-align: left;
}
.ib_cat-body-prose th { background: var(--ib-warm-50); color: var(--ib-ink); font-weight: 700; }

/* =========================================================================
   CATEGORY PAGE — FAQ accordion
   ========================================================================= */

.ib_cat-faq {
	padding: var(--ib-s-6) 0;
	background: var(--ib-warm-50);
}
.ib_cat-faq-inner {
	max-width: 820px;
}
.ib_cat-faq-header {
	text-align: center;
	margin-bottom: var(--ib-s-4);
}
.ib_cat-faq-title {
	margin: 4px 0 0;
	font-size: clamp(1.75rem, 2vw + 1rem, 2.5rem);
}

.ib_faq-list {
	display: flex;
	flex-direction: column;
	gap: 12px;
}
.ib_faq-item {
	background: var(--ib-paper);
	border: 1px solid var(--ib-stone-200);
	border-radius: var(--ib-radius-md);
	overflow: hidden;
	transition: border-color .15s var(--ib-ease), box-shadow .15s var(--ib-ease);
}
.ib_faq-item[open] {
	border-color: var(--ib-accent);
	box-shadow: var(--ib-shadow-sm);
}
.ib_faq-q {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding: 18px 22px;
	font-family: var(--ib-font-body);
	font-size: 1.0625rem;
	font-weight: 600;
	color: var(--ib-ink);
	cursor: pointer;
	list-style: none;
	transition: color .12s var(--ib-ease), background .12s var(--ib-ease);
}
.ib_faq-q::-webkit-details-marker { display: none; }
.ib_faq-q:hover { color: var(--ib-accent); }
.ib_faq-item[open] > .ib_faq-q { color: var(--ib-accent); }
.ib_faq-chevron {
	flex: 0 0 auto;
	color: var(--ib-accent);
	transition: transform .25s var(--ib-ease);
}
.ib_faq-item[open] .ib_faq-chevron { transform: rotate(180deg); }
.ib_faq-a {
	padding: 0 22px 20px;
	color: var(--ib-ink-soft);
	line-height: 1.7;
}
.ib_faq-a p { margin: 0 0 0.8em; }
.ib_faq-a p:last-child { margin-bottom: 0; }
.ib_faq-a ul,
.ib_faq-a ol { padding-left: 1.25em; margin: 0 0 0.8em; }
.ib_faq-a li { margin-bottom: 0.3em; }

/* =========================================================================
   CATEGORY PAGE — final CTA
   ========================================================================= */

.ib_cat-cta {
	padding: var(--ib-s-6) 0;
	background: var(--ib-ink);
	color: var(--ib-paper);
	position: relative;
	overflow: hidden;
}
.ib_cat-cta::before {
	content: "";
	position: absolute;
	inset: 0;
	background: var(--ib-grad-warm);
	opacity: 0.10;
	pointer-events: none;
}
.ib_cat-cta-inner {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: var(--ib-s-3);
	text-align: center;
}
.ib_cat-cta-title {
	margin: 0;
	color: var(--ib-paper);
	font-size: clamp(1.75rem, 2vw + 1rem, 2.5rem);
	max-width: 22ch;
}
.ib_btn-lg {
	padding: 16px 32px;
	font-size: 1rem;
}

/* =========================================================================
   CART DRAWER — premium slide-in from right
   ========================================================================= */

.ib_cart-backdrop {
	position: fixed;
	inset: 0;
	background: rgba(15, 15, 15, 0.45);
	backdrop-filter: blur(2px);
	-webkit-backdrop-filter: blur(2px);
	z-index: 89;
	opacity: 0;
	transition: opacity .25s var(--ib-ease);
}
.ib_cart-backdrop.is-open { opacity: 1; }

.ib_cart-drawer {
	position: fixed;
	right: 0; top: 0;
	height: 100dvh;
	width: 440px;
	max-width: 100vw;
	z-index: 90;
	background: var(--ib-paper);
	box-shadow: -24px 0 60px rgba(0,0,0,0.18);
	display: flex;
	flex-direction: column;
	transform: translateX(100%);
	transition: transform .35s var(--ib-ease);
	visibility: hidden;
}
.ib_cart-drawer[data-open="true"] {
	transform: translateX(0);
	visibility: visible;
}

/* Top gradient accent strip */
.ib_cart-drawer::before {
	content: "";
	position: absolute;
	left: 0; right: 0; top: 0;
	height: 3px;
	background: var(--ib-grad-warm);
}

.ib_cart-drawer-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 20px 22px 16px;
	border-bottom: 1px solid var(--ib-stone-100);
}
.ib_cart-drawer-title {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	margin: 0;
	font-family: var(--ib-font-body);
	font-size: 1rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--ib-ink);
}
.ib_cart-drawer-title svg { color: var(--ib-accent); }
.ib_cart-drawer-pill {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 22px;
	height: 22px;
	padding: 0 7px;
	background: var(--ib-accent);
	color: #fff;
	font-size: 0.75rem;
	font-weight: 700;
	border-radius: 999px;
	letter-spacing: 0;
}

.ib_cart-drawer-body {
	flex: 1 1 auto;
	overflow-y: auto;
	padding: 8px 22px 16px;
	-webkit-overflow-scrolling: touch;
}
.ib_cart-drawer-loading {
	padding: 40px 0;
	text-align: center;
	color: var(--ib-ink-muted);
	font-size: 0.9rem;
}
.ib_cart-drawer-empty {
	padding: 56px 0 24px;
	text-align: center;
	color: var(--ib-ink-muted);
}
.ib_cart-drawer-empty p {
	font-size: 1rem;
	margin: 0 0 var(--ib-s-3);
}

/* Cart items */
.ib_cart-items { list-style: none; margin: 0; padding: 0; }
.ib_cart-item {
	display: grid;
	grid-template-columns: 80px 1fr;
	gap: 14px;
	padding: 16px 0;
	border-bottom: 1px solid var(--ib-stone-100);
}
.ib_cart-item:last-child { border-bottom: none; }

.ib_cart-item-thumb {
	width: 80px;
	height: 80px;
	border-radius: var(--ib-radius-md);
	overflow: hidden;
	background: var(--ib-warm-50);
	border: 1px solid var(--ib-stone-100);
}
.ib_cart-item-thumb img {
	width: 100%; height: 100%;
	object-fit: cover;
	display: block;
}

.ib_cart-item-main {
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 8px;
}
.ib_cart-item-name {
	font-weight: 600;
	color: var(--ib-ink);
	line-height: 1.3;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
.ib_cart-item-name a { color: inherit; text-decoration: none; }
.ib_cart-item-name a:hover { color: var(--ib-accent); }

.ib_cart-item-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
}
.ib_cart-item-price {
	font-weight: 700;
	color: var(--ib-accent);
	font-size: 0.95rem;
	white-space: nowrap;
}

/* Qty stepper */
.ib_cart-item-qty {
	display: inline-flex;
	align-items: stretch;
	border: 1px solid var(--ib-stone-200);
	border-radius: 999px;
	overflow: hidden;
	background: var(--ib-paper);
}
.ib_qty-btn {
	width: 28px;
	height: 28px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: transparent;
	border: none;
	color: var(--ib-ink);
	cursor: pointer;
	font-size: 1rem;
	line-height: 1;
	transition: background .12s var(--ib-ease), color .12s var(--ib-ease);
}
.ib_qty-btn:hover { background: var(--ib-warm-50); color: var(--ib-accent); }
.ib_cart-item-qty input {
	width: 36px;
	border: none;
	background: transparent;
	text-align: center;
	font-size: 0.875rem;
	font-weight: 600;
	color: var(--ib-ink);
	padding: 0;
	-moz-appearance: textfield;
}
.ib_cart-item-qty input::-webkit-outer-spin-button,
.ib_cart-item-qty input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.ib_cart-item-qty input:focus { outline: none; }

.ib_cart-item-remove {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	margin: 0;
	padding: 0;
	background: none;
	border: none;
	color: var(--ib-ink-muted);
	font-size: 0.75rem;
	cursor: pointer;
	transition: color .12s var(--ib-ease);
	align-self: flex-start;
}
.ib_cart-item-remove:hover { color: var(--ib-accent); }

/* Drawer footer */
.ib_cart-drawer-foot {
	padding: 16px 22px 18px;
	background: var(--ib-warm-50);
	border-top: 1px solid var(--ib-stone-100);
	display: flex;
	flex-direction: column;
	gap: 10px;
}
.ib_cart-drawer-subtotal {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
}
.ib_cart-drawer-subtotal-label {
	font-size: 0.875rem;
	font-weight: 600;
	color: var(--ib-ink);
}
.ib_cart-drawer-subtotal-amount {
	font-family: var(--ib-font-display);
	font-size: 1.5rem;
	color: var(--ib-accent);
}
.ib_cart-drawer-disclaimer {
	margin: -2px 0 4px;
	font-size: 0.75rem;
	color: var(--ib-ink-muted);
}
.ib_cart-drawer-checkout { width: 100%; }

.ib_cart-drawer-cont {
	margin: 0;
	padding: 12px 22px 20px;
	background: var(--ib-paper);
	border: none;
	color: var(--ib-ink-muted);
	font-size: 0.8125rem;
	cursor: pointer;
	transition: color .12s var(--ib-ease);
}
.ib_cart-drawer-cont:hover { color: var(--ib-accent); }

/* Add-to-cart button loading state */
.add_to_cart_button.loading,
.single_add_to_cart_button.loading {
	opacity: 0.7;
	pointer-events: none;
	position: relative;
}
.add_to_cart_button.loading::after,
.single_add_to_cart_button.loading::after {
	content: "";
	width: 12px;
	height: 12px;
	margin-left: 8px;
	border: 2px solid currentColor;
	border-top-color: transparent;
	border-radius: 50%;
	display: inline-block;
	animation: ib-spin 0.6s linear infinite;
	vertical-align: -1px;
}

/* =========================================================================
   CART, CHECKOUT, ACCOUNT — premium page styling
   ========================================================================= */

.woocommerce-cart .ib_woocommerce-main,
.woocommerce-checkout .ib_woocommerce-main,
.woocommerce-account .ib_woocommerce-main { padding: 0; }

/* Padding goes on .ib_archive-layout (the content wrapper) — NOT .ib_container,
 * because every header row also uses .ib_container and would otherwise inherit
 * 32px/48px vertical padding, blowing up the dark nav row. */
.woocommerce-cart .ib_archive-layout,
.woocommerce-checkout .ib_archive-layout,
.woocommerce-account .ib_archive-layout { padding: var(--ib-s-4) 0 var(--ib-s-5); }

/* WC notices: brand-colored bars */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error,
.woocommerce-notice {
	padding: 14px 18px !important;
	margin: 0 0 var(--ib-s-3) !important;
	border-radius: var(--ib-radius-md) !important;
	font-size: 0.9375rem !important;
	display: flex !important;
	align-items: center !important;
	gap: 10px !important;
	border-left: 4px solid !important;
	background: var(--ib-warm-50) !important;
	color: var(--ib-ink) !important;
}
.woocommerce-message { border-left-color: #16a34a !important; background: #f0fdf4 !important; }
.woocommerce-info    { border-left-color: var(--ib-accent) !important; }
.woocommerce-error   { border-left-color: #dc2626 !important; background: #fef2f2 !important; }
.woocommerce-message::before,
.woocommerce-info::before,
.woocommerce-error::before { display: none !important; }
.woocommerce-message .button,
.woocommerce-error .button {
	margin-left: auto !important;
	background: var(--ib-accent) !important;
	color: #fff !important;
	border-radius: 999px !important;
	padding: 8px 16px !important;
	font-size: 0.8125rem !important;
}

/* --- Cart page table --- */
.woocommerce-cart table.shop_table {
	border: 1px solid var(--ib-stone-200) !important;
	border-radius: var(--ib-radius-lg) !important;
	border-collapse: separate !important;
	border-spacing: 0 !important;
	overflow: hidden;
	background: var(--ib-paper);
	margin-bottom: var(--ib-s-3) !important;
}
.woocommerce-cart table.shop_table th {
	background: var(--ib-warm-50) !important;
	color: var(--ib-ink) !important;
	font-family: var(--ib-font-body) !important;
	font-weight: 700 !important;
	font-size: 0.75rem !important;
	letter-spacing: 0.12em !important;
	text-transform: uppercase !important;
	padding: 16px !important;
	border: none !important;
}
.woocommerce-cart table.shop_table td {
	padding: 18px 16px !important;
	border-top: 1px solid var(--ib-stone-100) !important;
	vertical-align: middle !important;
}
.woocommerce-cart table.shop_table tbody tr:first-child td { border-top: none !important; }
.woocommerce-cart .product-thumbnail img {
	width: 80px !important;
	height: 80px !important;
	object-fit: cover;
	border-radius: var(--ib-radius-md);
}
.woocommerce-cart .product-name a {
	color: var(--ib-ink) !important;
	font-weight: 600 !important;
	text-decoration: none !important;
}
.woocommerce-cart .product-name a:hover { color: var(--ib-accent) !important; }
.woocommerce-cart .product-price,
.woocommerce-cart .product-subtotal { color: var(--ib-accent) !important; font-weight: 700 !important; }
.woocommerce-cart .product-remove a.remove {
	width: 28px !important;
	height: 28px !important;
	border-radius: 50% !important;
	background: var(--ib-stone-100) !important;
	color: var(--ib-ink-muted) !important;
	line-height: 28px !important;
	text-align: center !important;
	font-weight: 400 !important;
	transition: background .12s var(--ib-ease), color .12s var(--ib-ease);
}
.woocommerce-cart .product-remove a.remove:hover {
	background: var(--ib-accent) !important;
	color: #fff !important;
}
.woocommerce-cart .quantity input.qty {
	width: 64px !important;
	padding: 6px 10px !important;
	border-radius: var(--ib-radius-sm) !important;
	border: 1.5px solid var(--ib-stone-200) !important;
	text-align: center;
}
.woocommerce-cart .actions {
	background: var(--ib-warm-50) !important;
	padding: 16px !important;
}
.woocommerce-cart .actions .button,
.woocommerce-cart .actions .coupon .button,
.woocommerce-cart .coupon input.input-text {
	border-radius: 999px !important;
	padding: 10px 18px !important;
	border: 1.5px solid var(--ib-stone-200) !important;
}
.woocommerce-cart .actions .button[name="update_cart"] {
	background: var(--ib-ink) !important;
	color: #fff !important;
	border-color: var(--ib-ink) !important;
}
.woocommerce-cart .coupon .button {
	background: var(--ib-accent) !important;
	color: #fff !important;
	border-color: var(--ib-accent) !important;
}

/* Cart totals card */
.cart-collaterals { display: grid; grid-template-columns: 1fr; gap: var(--ib-s-3); margin-top: var(--ib-s-3); }
@media (min-width: 768px) {
	.cart-collaterals { grid-template-columns: 1fr 1fr; }
}
.cart_totals,
.cross-sells {
	background: var(--ib-paper);
	border: 1px solid var(--ib-stone-200);
	border-radius: var(--ib-radius-lg);
	padding: var(--ib-s-3) !important;
	margin: 0 !important;
	float: none !important;
	width: auto !important;
}
.cart_totals h2 {
	margin: 0 0 var(--ib-s-2) !important;
	font-size: 1.25rem !important;
	font-family: var(--ib-font-display);
}
.cart_totals .shop_table {
	border: none !important;
	background: transparent !important;
}
.cart_totals .shop_table th,
.cart_totals .shop_table td {
	background: transparent !important;
	padding: 12px 0 !important;
	border-top: 1px solid var(--ib-stone-100) !important;
	text-transform: none !important;
	font-size: 0.9375rem !important;
	letter-spacing: 0 !important;
}
.cart_totals .order-total td,
.cart_totals .order-total th {
	font-weight: 700 !important;
	font-size: 1.0625rem !important;
	color: var(--ib-ink) !important;
}
.cart_totals .order-total .amount { color: var(--ib-accent) !important; font-size: 1.25rem; font-family: var(--ib-font-display); }
.wc-proceed-to-checkout { margin-top: var(--ib-s-2) !important; }
.wc-proceed-to-checkout .checkout-button {
	display: flex !important;
	align-items: center;
	justify-content: center;
	width: 100% !important;
	padding: 14px 22px !important;
	font-size: 1rem !important;
	font-weight: 600 !important;
	background: var(--ib-accent) !important;
	color: #fff !important;
	border-radius: 999px !important;
	text-align: center !important;
}
.wc-proceed-to-checkout .checkout-button:hover { background: var(--ib-accent-2) !important; }

/* --- Checkout page --- */
.woocommerce-checkout form.checkout {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--ib-s-4);
}
@media (min-width: 1024px) {
	.woocommerce-checkout form.checkout {
		grid-template-columns: 1.4fr 1fr;
		align-items: start;
	}
}
.woocommerce-checkout #customer_details {
	background: var(--ib-paper);
	border: 1px solid var(--ib-stone-200);
	border-radius: var(--ib-radius-lg);
	padding: var(--ib-s-4);
}
.woocommerce-checkout #customer_details h3 {
	margin: 0 0 var(--ib-s-3) !important;
	font-size: 1.25rem !important;
	font-family: var(--ib-font-display);
}
.woocommerce-checkout .col2-set { display: grid; grid-template-columns: 1fr; gap: var(--ib-s-3); width: 100% !important; }
.woocommerce-checkout .col2-set .col-1,
.woocommerce-checkout .col2-set .col-2 { width: 100% !important; float: none !important; padding: 0 !important; }
.woocommerce-checkout .form-row {
	margin: 0 0 14px !important;
	padding: 0 !important;
}
.woocommerce-checkout .form-row label {
	display: block;
	font-size: 0.8125rem;
	font-weight: 600;
	color: var(--ib-ink);
	margin-bottom: 6px;
}
.woocommerce-checkout .form-row input,
.woocommerce-checkout .form-row select,
.woocommerce-checkout .form-row textarea,
.woocommerce-checkout .form-row .select2-selection {
	width: 100% !important;
	padding: 12px 14px !important;
	border: 1.5px solid var(--ib-stone-200) !important;
	border-radius: var(--ib-radius-sm) !important;
	background: var(--ib-paper) !important;
	font-size: 0.9375rem !important;
	color: var(--ib-ink) !important;
}
.woocommerce-checkout .form-row .select2-selection__rendered { line-height: 26px !important; padding: 0 !important; }
.woocommerce-checkout .form-row .select2-selection__arrow { top: 12px !important; right: 12px !important; }

.woocommerce-checkout #order_review_heading,
.woocommerce-checkout #order_review {
	background: var(--ib-paper);
	border: 1px solid var(--ib-stone-200);
	border-radius: var(--ib-radius-lg);
}
.woocommerce-checkout #order_review_heading {
	margin: 0 0 -1px !important;
	padding: var(--ib-s-3) var(--ib-s-3) 0 !important;
	border-bottom: none !important;
	font-size: 1.25rem !important;
	font-family: var(--ib-font-display);
}
.woocommerce-checkout #order_review {
	padding: var(--ib-s-3) !important;
	margin-top: 0 !important;
}
.woocommerce-checkout #order_review .shop_table {
	border: none !important;
	background: transparent !important;
}
.woocommerce-checkout #order_review .shop_table th,
.woocommerce-checkout #order_review .shop_table td {
	padding: 12px 0 !important;
	background: transparent !important;
	border-bottom: 1px solid var(--ib-stone-100) !important;
}
.woocommerce-checkout #order_review .order-total .amount {
	color: var(--ib-accent) !important;
	font-family: var(--ib-font-display);
	font-size: 1.25rem;
}
.woocommerce-checkout #payment {
	background: transparent !important;
	border-radius: 0 !important;
	margin-top: var(--ib-s-3) !important;
}
.woocommerce-checkout #payment ul.payment_methods {
	border: 1px solid var(--ib-stone-200) !important;
	border-radius: var(--ib-radius-md) !important;
	padding: 12px !important;
	background: var(--ib-warm-50) !important;
}
.woocommerce-checkout #payment ul.payment_methods li {
	padding: 10px 12px !important;
	background: var(--ib-paper) !important;
	border: 1px solid var(--ib-stone-200) !important;
	border-radius: var(--ib-radius-sm) !important;
	margin-bottom: 8px !important;
}
.woocommerce-checkout #payment ul.payment_methods li:last-child { margin-bottom: 0 !important; }
.woocommerce-checkout #payment .place-order button#place_order {
	width: 100% !important;
	padding: 16px 22px !important;
	font-size: 1rem !important;
	font-weight: 700 !important;
	background: var(--ib-accent) !important;
	color: #fff !important;
	border-radius: 999px !important;
	border: none !important;
	margin-top: var(--ib-s-3) !important;
}
.woocommerce-checkout #payment .place-order button#place_order:hover { background: var(--ib-accent-2) !important; }

/* --- My account page --- */
.woocommerce-account .woocommerce {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--ib-s-4);
}
@media (min-width: 900px) {
	.woocommerce-account .woocommerce {
		grid-template-columns: 240px 1fr;
	}
}
.woocommerce-account .woocommerce-MyAccount-navigation ul {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 4px;
	background: var(--ib-paper);
	border: 1px solid var(--ib-stone-200);
	border-radius: var(--ib-radius-lg);
	padding: 12px;
}
.woocommerce-account .woocommerce-MyAccount-navigation li a {
	display: block;
	padding: 10px 14px;
	color: var(--ib-ink);
	text-decoration: none;
	border-radius: var(--ib-radius-sm);
	font-size: 0.9375rem;
	font-weight: 500;
	transition: background .12s var(--ib-ease), color .12s var(--ib-ease);
}
.woocommerce-account .woocommerce-MyAccount-navigation li a:hover { background: var(--ib-warm-50); color: var(--ib-accent); }
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a {
	background: var(--ib-accent);
	color: #fff;
}
.woocommerce-account .woocommerce-MyAccount-content {
	background: var(--ib-paper);
	border: 1px solid var(--ib-stone-200);
	border-radius: var(--ib-radius-lg);
	padding: var(--ib-s-4);
	min-width: 0;
}
.woocommerce-account .woocommerce-MyAccount-content h2,
.woocommerce-account .woocommerce-MyAccount-content h3 {
	margin: 0 0 var(--ib-s-2);
	font-family: var(--ib-font-display);
}
.woocommerce-account .woocommerce-MyAccount-content .button {
	background: var(--ib-accent) !important;
	color: #fff !important;
	border-radius: 999px !important;
	padding: 10px 18px !important;
	font-weight: 600 !important;
	border: none !important;
}
.woocommerce-account .woocommerce-MyAccount-content .button:hover { background: var(--ib-accent-2) !important; }
.woocommerce-account .woocommerce-form {
	max-width: 480px;
}
.woocommerce-account form.login,
.woocommerce-account form.register {
	background: var(--ib-paper);
	border: 1px solid var(--ib-stone-200);
	border-radius: var(--ib-radius-lg);
	padding: var(--ib-s-4);
}
.woocommerce-account form .form-row input {
	width: 100% !important;
	padding: 12px 14px !important;
	border: 1.5px solid var(--ib-stone-200) !important;
	border-radius: var(--ib-radius-sm) !important;
	font-size: 0.9375rem !important;
}

/* Address cards on account dashboard */
.woocommerce-account .addresses .address {
	background: var(--ib-warm-50);
	border: 1px solid var(--ib-stone-200);
	border-radius: var(--ib-radius-md);
	padding: var(--ib-s-3);
}
.woocommerce-account .addresses header.woocommerce-Address-title h3 {
	font-size: 1rem !important;
	font-family: var(--ib-font-body) !important;
	font-weight: 700 !important;
	text-transform: uppercase;
	letter-spacing: 0.06em;
}
.woocommerce-account .addresses header.woocommerce-Address-title .edit {
	color: var(--ib-accent) !important;
	font-size: 0.8125rem !important;
}

/* Order tables on account */
.woocommerce-orders-table {
	border: 1px solid var(--ib-stone-200) !important;
	border-radius: var(--ib-radius-md) !important;
	overflow: hidden;
}
.woocommerce-orders-table .button.view {
	background: var(--ib-accent) !important;
	color: #fff !important;
	border-radius: 999px !important;
	padding: 6px 14px !important;
	font-size: 0.8125rem !important;
}

/* =========================================================================
   BLOCK-BASED CART + CHECKOUT — premium styling for WC 8+ block markup
   (the shortcode-based CSS above still applies if a site reverts to legacy)
   ========================================================================= */

/* ---- Page-frame & container ---- */
/* NOTE: do NOT add vertical padding to .ib_container here — the header rows
 * (.ib_header-top, .ib_header-nav) also use .ib_container and would inherit
 * the padding, ballooning the header. Use .ib_archive-layout for vertical
 * spacing of the page body instead. */
.woocommerce-cart   .ib_archive-layout,
.woocommerce-checkout .ib_archive-layout { max-width: 1240px; margin: 0 auto; }

/* IMPORTANT: do NOT redefine `display` on `.wc-block-cart` / `.wc-block-checkout`
 * or their `__main` / `__sidebar` children — WC ships its own flex/grid layout
 * that switches between 1-col (mobile) and 2-col (desktop) at its own breakpoint.
 * Overriding it collapsed both columns to a few pixels wide. Just give the
 * children a min-width so price/title don't squeeze, and let WC handle layout. */
.wc-block-cart__main,
.wc-block-checkout__main,
.wc-block-cart__sidebar,
.wc-block-checkout__sidebar { min-width: 0; }

/* =========================================================================
   CART BLOCK
   ========================================================================= */

/* ---- Items list (left column) ---- */
.wc-block-cart-items {
	background: var(--ib-paper);
	border: 1px solid var(--ib-stone-200);
	border-radius: var(--ib-radius-lg);
	overflow: hidden;
	border-collapse: separate !important;
	width: 100%;
}
.wc-block-cart-items__header {
	background: var(--ib-warm-50);
	border-bottom: 1px solid var(--ib-stone-100);
}
.wc-block-cart-items__header th,
.wc-block-cart-items__header-image,
.wc-block-cart-items__header-product,
.wc-block-cart-items__header-total {
	padding: 14px 20px !important;
	font-size: 0.6875rem !important;
	font-weight: 700 !important;
	letter-spacing: 0.12em !important;
	text-transform: uppercase !important;
	color: var(--ib-ink-muted) !important;
	font-family: var(--ib-font-body) !important;
	border: none !important;
}

.wc-block-cart-items__row {
	border-top: 1px solid var(--ib-stone-100);
}
.wc-block-cart-items__row:first-child { border-top: none; }
.wc-block-cart-items__row td {
	padding: 20px !important;
	vertical-align: top !important;
	background: transparent !important;
}

.wc-block-cart-item__image {
	width: 96px;
}
.wc-block-cart-item__image img,
.wc-block-cart-item__image .wc-block-components-product-image {
	width: 88px !important;
	height: 88px !important;
	object-fit: cover !important;
	border-radius: var(--ib-radius-md) !important;
	background: var(--ib-stone-100);
	display: block;
}
.wc-block-cart-item__image a { display: block; }

.wc-block-cart-item__product .wc-block-components-product-name {
	font-weight: 600 !important;
	color: var(--ib-ink) !important;
	font-size: 1.0625rem !important;
	line-height: 1.3 !important;
	text-decoration: none !important;
	display: block;
	margin-bottom: 6px;
}
.wc-block-cart-item__product .wc-block-components-product-name:hover { color: var(--ib-accent) !important; }
.wc-block-cart-item__product .wc-block-components-product-metadata {
	font-size: 0.8125rem !important;
	color: var(--ib-ink-muted) !important;
	line-height: 1.5;
}
.wc-block-cart-item__product .wc-block-components-product-price {
	font-family: var(--ib-font-display) !important;
	color: var(--ib-accent) !important;
	font-size: 1.125rem !important;
	margin-top: 4px;
}

/* Quantity stepper inside the cart row */
.wc-block-cart-item__quantity {
	margin-top: 12px;
}
.wc-block-components-quantity-selector {
	display: inline-flex !important;
	align-items: center !important;
	border: 1.5px solid var(--ib-stone-200) !important;
	border-radius: 999px !important;
	background: var(--ib-paper) !important;
	overflow: hidden;
	height: 40px;
	min-width: 0 !important;
	max-width: 140px !important;
}
.wc-block-components-quantity-selector__input {
	border: none !important;
	background: transparent !important;
	text-align: center !important;
	font-weight: 600 !important;
	color: var(--ib-ink) !important;
	width: 48px !important;
	font-size: 0.9375rem !important;
	padding: 0 !important;
	-moz-appearance: textfield;
}
.wc-block-components-quantity-selector__input::-webkit-inner-spin-button,
.wc-block-components-quantity-selector__input::-webkit-outer-spin-button {
	-webkit-appearance: none;
	margin: 0;
}
.wc-block-components-quantity-selector__button {
	background: transparent !important;
	border: none !important;
	width: 40px !important;
	height: 40px !important;
	display: grid !important;
	place-items: center !important;
	cursor: pointer !important;
	color: var(--ib-ink-soft) !important;
	font-size: 1.1rem !important;
	font-weight: 600 !important;
	transition: background .12s var(--ib-ease), color .12s var(--ib-ease);
}
.wc-block-components-quantity-selector__button:hover {
	background: var(--ib-warm-50) !important;
	color: var(--ib-accent) !important;
}
.wc-block-components-quantity-selector__button--minus { border-right: 1px solid var(--ib-stone-100) !important; }
.wc-block-components-quantity-selector__button--plus  { border-left:  1px solid var(--ib-stone-100) !important; }

/* "Remove" link under the qty stepper */
.wc-block-cart-item__remove-link {
	font-size: 0.8125rem !important;
	color: var(--ib-ink-muted) !important;
	text-decoration: none !important;
	margin-top: 10px !important;
	display: inline-flex !important;
	align-items: center !important;
	gap: 4px;
	transition: color .12s var(--ib-ease);
}
.wc-block-cart-item__remove-link:hover { color: #dc2626 !important; }

/* Line total */
.wc-block-cart-item__total .wc-block-components-product-price__value,
.wc-block-cart-item__total .wc-block-components-formatted-money-amount {
	font-family: var(--ib-font-display) !important;
	color: var(--ib-ink) !important;
	font-size: 1.125rem !important;
	font-weight: 400 !important;
}

/* ---- Cart sidebar (totals card) ---- */
.wc-block-components-sidebar,
.wp-block-woocommerce-cart-order-summary-block,
.wp-block-woocommerce-checkout-order-summary-block {
	background: var(--ib-paper);
	border: 1px solid var(--ib-stone-200);
	border-radius: var(--ib-radius-lg);
	padding: var(--ib-s-3) !important;
	box-shadow: var(--ib-shadow-sm);
}

.wp-block-woocommerce-cart-order-summary-heading-block,
.wc-block-components-totals-wrapper > h2,
.wp-block-woocommerce-checkout-order-summary-heading-block {
	font-family: var(--ib-font-display) !important;
	font-size: 1.25rem !important;
	margin: 0 0 var(--ib-s-2) !important;
	padding: 0 !important;
	color: var(--ib-ink) !important;
	border: none !important;
}

/* Coupon accordion */
.wc-block-components-totals-coupon {
	margin: 0 0 var(--ib-s-2) !important;
	padding: 10px 0 !important;
	border-top: 1px solid var(--ib-stone-100);
	border-bottom: 1px solid var(--ib-stone-100);
}
.wc-block-components-totals-coupon .wc-block-components-panel__button {
	font-size: 0.9375rem !important;
	font-weight: 500 !important;
	color: var(--ib-ink) !important;
	padding: 6px 0 !important;
}
.wc-block-components-totals-coupon .wc-block-components-panel__button:hover { color: var(--ib-accent) !important; }
.wc-block-components-totals-coupon-link {
	color: var(--ib-accent) !important;
	font-weight: 500 !important;
}
.wc-block-components-totals-coupon__input input {
	border: 1.5px solid var(--ib-stone-200) !important;
	border-radius: 999px !important;
	padding: 10px 16px !important;
	background: var(--ib-paper) !important;
}
.wc-block-components-totals-coupon__button {
	background: var(--ib-ink) !important;
	color: #fff !important;
	border-radius: 999px !important;
	padding: 10px 18px !important;
	font-weight: 600 !important;
	border: none !important;
}
.wc-block-components-totals-coupon__button:hover { background: var(--ib-accent) !important; }

/* Totals rows */
.wc-block-components-totals-item {
	padding: 8px 0 !important;
	font-size: 0.9375rem;
}
.wc-block-components-totals-item__label {
	color: var(--ib-ink-soft);
}
.wc-block-components-totals-item__value {
	color: var(--ib-ink);
	font-variant-numeric: tabular-nums;
}
.wc-block-components-totals-footer-item,
.wc-block-components-totals-item.wc-block-components-totals-footer-item {
	border-top: 1px solid var(--ib-stone-100) !important;
	margin-top: 8px !important;
	padding-top: 14px !important;
	font-size: 1rem !important;
}
.wc-block-components-totals-footer-item .wc-block-components-totals-item__label {
	font-weight: 700 !important;
	color: var(--ib-ink) !important;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	font-size: 0.75rem;
}
.wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
	font-family: var(--ib-font-display) !important;
	color: var(--ib-accent) !important;
	font-size: 1.625rem !important;
}
.wc-block-components-totals-footer-item__description {
	color: var(--ib-ink-muted) !important;
	font-size: 0.75rem !important;
	margin-top: 4px !important;
}

/* Proceed-to-checkout / place-order button */
.wc-block-cart__submit-container,
.wc-block-checkout__actions {
	margin-top: var(--ib-s-3) !important;
	padding: 0 !important;
	background: transparent !important;
}
.wc-block-cart__submit-button,
.wc-block-components-checkout-place-order-button {
	width: 100% !important;
	padding: 16px 22px !important;
	font-size: 1rem !important;
	font-weight: 700 !important;
	background: var(--ib-accent) !important;
	color: #fff !important;
	border-radius: 999px !important;
	border: none !important;
	box-shadow: 0 6px 16px rgba(245, 129, 36, 0.18);
	transition: background .15s var(--ib-ease), transform .15s var(--ib-ease), box-shadow .15s var(--ib-ease);
}
.wc-block-cart__submit-button:hover,
.wc-block-components-checkout-place-order-button:hover {
	background: var(--ib-accent-2) !important;
	transform: translateY(-1px);
	box-shadow: 0 10px 24px rgba(245, 129, 36, 0.24);
}

/* Continue-shopping link below the CTA */
.wp-block-woocommerce-proceed-to-checkout-block + p,
.wc-block-cart__submit-container + p {
	text-align: center;
	margin-top: var(--ib-s-2);
}

/* Empty-cart state */
.wp-block-woocommerce-empty-cart-block {
	text-align: center;
	padding: var(--ib-s-6) var(--ib-s-3) !important;
	background: var(--ib-warm-50);
	border: 1px solid var(--ib-stone-200);
	border-radius: var(--ib-radius-lg);
}

/* =========================================================================
   CHECKOUT BLOCK
   ========================================================================= */

/* Step card */
.wc-block-components-checkout-step {
	background: var(--ib-paper);
	border: 1px solid var(--ib-stone-200);
	border-radius: var(--ib-radius-lg);
	padding: var(--ib-s-3) var(--ib-s-3) var(--ib-s-3) !important;
	margin: 0 0 var(--ib-s-3) !important;
	box-shadow: var(--ib-shadow-sm);
	position: relative;
}
.wc-block-components-checkout-step__container { padding: 0 !important; }
.wc-block-components-checkout-step__heading {
	margin: 0 0 6px !important;
	font-family: var(--ib-font-display) !important;
	font-size: 1.375rem !important;
	color: var(--ib-ink) !important;
	display: flex;
	align-items: center;
	gap: 10px;
}
.wc-block-components-checkout-step__heading-content {
	font-size: 0.875rem !important;
	color: var(--ib-ink-muted) !important;
	font-weight: 500;
}
.wc-block-components-checkout-step__title {
	font-family: var(--ib-font-display) !important;
}
.wc-block-components-checkout-step__description {
	font-size: 0.9375rem !important;
	color: var(--ib-ink-muted) !important;
	margin: 0 0 var(--ib-s-2) !important;
}
.wc-block-components-checkout-step__content {
	margin-top: var(--ib-s-2) !important;
}

/* Numbered badge before each step (visual order indicator) */
.wc-block-components-checkout-step::before {
	display: none; /* WC handles this with a counter — leave native styling alone */
}

/* Inputs — pill, branded focus ring */
.wc-block-components-text-input,
.wc-block-components-select,
.wc-block-components-combobox,
.wc-block-components-textarea {
	margin: 0 0 12px !important;
}
.wc-block-components-text-input input,
.wc-block-components-select select,
.wc-block-components-combobox input,
.wc-block-components-textarea textarea,
input.wc-block-components-address-form__input {
	border: 1.5px solid var(--ib-stone-200) !important;
	border-radius: var(--ib-radius-sm) !important;
	background: var(--ib-paper) !important;
	padding: 14px 16px !important;
	font-size: 0.9375rem !important;
	color: var(--ib-ink) !important;
	width: 100% !important;
	min-height: 52px !important;
	transition: border-color .12s var(--ib-ease), box-shadow .12s var(--ib-ease);
}
.wc-block-components-text-input input:focus,
.wc-block-components-select select:focus,
.wc-block-components-combobox input:focus,
.wc-block-components-textarea textarea:focus {
	outline: none !important;
	border-color: var(--ib-accent) !important;
	box-shadow: 0 0 0 3px rgba(245, 129, 36, 0.15) !important;
}
.wc-block-components-text-input label,
.wc-block-components-select label,
.wc-block-components-combobox label,
.wc-block-components-textarea label {
	color: var(--ib-ink-soft) !important;
	font-size: 0.875rem !important;
	font-weight: 500 !important;
}
.wc-block-components-text-input.is-active label,
.wc-block-components-select.is-active label,
.wc-block-components-combobox.is-active label,
.wc-block-components-textarea.is-active label {
	color: var(--ib-ink-muted) !important;
	font-size: 0.75rem !important;
}

/* Validation errors */
.wc-block-components-validation-error {
	color: #dc2626 !important;
	font-size: 0.8125rem !important;
	margin-top: 6px !important;
}
.has-error .wc-block-components-text-input input,
.has-error .wc-block-components-select select,
.has-error input.wc-block-components-address-form__input {
	border-color: #dc2626 !important;
}
.has-error label { color: #dc2626 !important; }

/* Checkboxes + radios */
.wc-block-components-checkbox__mark,
.wc-block-components-radio-control__input {
	accent-color: var(--ib-accent) !important;
}
.wc-block-components-checkbox__input:checked + .wc-block-components-checkbox__mark {
	background: var(--ib-accent) !important;
	border-color: var(--ib-accent) !important;
}
.wc-block-components-checkbox__label,
.wc-block-components-radio-control__label {
	font-size: 0.9375rem !important;
	color: var(--ib-ink) !important;
}

/* Notice banners (the red "Excuus, we staan geen bestellingen toe..." stripe) */
.wc-block-components-notice-banner {
	border-radius: var(--ib-radius-md) !important;
	border-left-width: 4px !important;
	padding: 14px 18px !important;
	font-size: 0.9375rem !important;
	background: var(--ib-warm-50) !important;
	color: var(--ib-ink) !important;
	margin: 0 0 var(--ib-s-2) !important;
}
.wc-block-components-notice-banner.is-error {
	background: #fef2f2 !important;
	border-left-color: #dc2626 !important;
	color: #7f1d1d !important;
}
.wc-block-components-notice-banner.is-info  { border-left-color: var(--ib-accent) !important; }
.wc-block-components-notice-banner.is-success {
	background: #f0fdf4 !important;
	border-left-color: #16a34a !important;
	color: #14532d !important;
}

/* Order summary (right rail) */
.wc-block-components-order-summary {
	max-height: 360px;
	overflow-y: auto;
	padding-right: 4px;
	margin-bottom: var(--ib-s-2);
}
.wc-block-components-order-summary-item {
	padding: 10px 0 !important;
	border-bottom: 1px solid var(--ib-stone-100) !important;
	gap: 12px;
}
.wc-block-components-order-summary-item:last-child { border-bottom: none !important; }
.wc-block-components-order-summary-item__image {
	width: 56px !important;
	height: 56px !important;
	border-radius: var(--ib-radius-sm) !important;
	overflow: hidden;
	background: var(--ib-stone-100);
}
.wc-block-components-order-summary-item__image img {
	width: 100% !important; height: 100% !important; object-fit: cover !important;
}
.wc-block-components-order-summary-item__quantity {
	background: var(--ib-ink) !important;
	color: #fff !important;
	border: 2px solid var(--ib-paper) !important;
	font-weight: 700 !important;
}
.wc-block-components-order-summary-item__description .wc-block-components-product-name,
.wc-block-components-order-summary-item__title {
	color: var(--ib-ink) !important;
	font-weight: 600 !important;
	font-size: 0.9375rem !important;
	line-height: 1.35 !important;
}
.wc-block-components-order-summary-item__individual-prices,
.wc-block-components-order-summary-item__metadata {
	font-size: 0.8125rem !important;
	color: var(--ib-ink-muted) !important;
}
.wc-block-components-order-summary-item__total-price {
	font-family: var(--ib-font-display) !important;
	color: var(--ib-ink) !important;
	font-size: 1rem !important;
}

/* Payment method tiles */
.wc-block-checkout__payment-method,
.wc-block-components-payment-method-options {
	display: flex;
	flex-direction: column;
	gap: 8px;
}
.wc-block-components-radio-control__option {
	padding: 14px !important;
	border: 1.5px solid var(--ib-stone-200) !important;
	border-radius: var(--ib-radius-md) !important;
	background: var(--ib-paper) !important;
	transition: border-color .12s var(--ib-ease), background .12s var(--ib-ease);
}
.wc-block-components-radio-control__option:hover { border-color: var(--ib-accent) !important; }
.wc-block-components-radio-control__option--checked,
.wc-block-components-radio-control__option:has(input:checked) {
	border-color: var(--ib-accent) !important;
	background: var(--ib-accent-soft) !important;
}

/* "Voeg een notitie toe aan je bestelling" / "Add note" toggles */
.wc-block-components-checkout-step .wc-block-components-checkbox {
	font-size: 0.9375rem;
	color: var(--ib-ink-soft);
}

/* Place-order disclaimer text ("Door verder te gaan...") */
.wc-block-checkout__terms {
	font-size: 0.8125rem !important;
	color: var(--ib-ink-muted) !important;
	text-align: center;
	margin: var(--ib-s-2) 0 !important;
}
.wc-block-checkout__terms a { color: var(--ib-accent) !important; text-decoration: underline; }

/* "Terug naar winkelwagen" link */
.wc-block-components-checkout-return-to-cart-button {
	color: var(--ib-ink-muted) !important;
	font-size: 0.875rem !important;
	text-decoration: none !important;
	display: inline-flex !important;
	align-items: center !important;
	gap: 6px;
}
.wc-block-components-checkout-return-to-cart-button:hover { color: var(--ib-accent) !important; }

/* =========================================================================
   SINGLE PRODUCT — horizontal scroll gallery + premium layout
   ========================================================================= */

.single-product div.product {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--ib-s-4);
}
@media (min-width: 900px) {
	.single-product div.product {
		grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
		gap: var(--ib-s-5);
		align-items: start;
	}
}

/* Hide WC's default gallery thumbnail strip (since the scroll shows everything) */
.single-product .flex-control-thumbs {
	display: none !important;
}

/* The gallery as a horizontal scroll-snap film strip */
.single-product .woocommerce-product-gallery {
	float: none !important;
	width: 100% !important;
	margin: 0 !important;
	opacity: 1 !important;
	max-width: none !important;
	position: relative;
}
.single-product .woocommerce-product-gallery__wrapper {
	display: flex !important;
	overflow-x: auto !important;
	scroll-snap-type: x mandatory !important;
	gap: 12px !important;
	margin: 0 !important;
	padding: 0 0 12px !important;
	transform: none !important;
	scrollbar-width: thin;
	scroll-behavior: smooth;
	background: var(--ib-warm-50);
	border-radius: var(--ib-radius-lg);
	border: 1px solid var(--ib-stone-200);
}
.single-product .woocommerce-product-gallery__wrapper::-webkit-scrollbar { height: 8px; }
.single-product .woocommerce-product-gallery__wrapper::-webkit-scrollbar-track {
	background: var(--ib-warm-100);
	border-radius: 999px;
}
.single-product .woocommerce-product-gallery__wrapper::-webkit-scrollbar-thumb {
	background: var(--ib-accent);
	border-radius: 999px;
}

.single-product .woocommerce-product-gallery__image {
	flex: 0 0 100% !important;
	scroll-snap-align: start !important;
	margin: 0 !important;
	border-radius: var(--ib-radius-lg);
	overflow: hidden;
	background: var(--ib-paper);
}
.single-product .woocommerce-product-gallery__image:first-child { border-top-left-radius: var(--ib-radius-lg); }
.single-product .woocommerce-product-gallery__image img {
	width: 100% !important;
	aspect-ratio: 1 / 1;
	object-fit: cover;
	display: block;
}

/* When there's only ONE image, fill the column normally (no scroll affordance) */
.single-product .woocommerce-product-gallery--columns-1 .woocommerce-product-gallery__wrapper {
	overflow: visible !important;
	background: transparent;
	border: none;
	padding: 0 !important;
}

/* (Old "← scroll →" hint pill removed — proper arrow buttons + dots replace it) */

/* --- Product summary side --- */
.single-product .product .summary {
	margin-top: 0 !important;
	width: auto !important;
	float: none !important;
}
.single-product .product_title {
	font-size: clamp(1.75rem, 2vw + 1rem, 2.5rem) !important;
	margin: 0 0 var(--ib-s-2) !important;
	color: var(--ib-ink);
}
.single-product .product .price {
	font-family: var(--ib-font-display) !important;
	font-size: 2rem !important;
	color: var(--ib-accent) !important;
	margin: 0 0 var(--ib-s-2) !important;
}
.single-product .product .price del { color: var(--ib-ink-muted) !important; font-size: 1.25rem !important; }
.single-product .product .price ins { background: transparent !important; text-decoration: none !important; }
.single-product .woocommerce-product-details__short-description {
	color: var(--ib-ink-soft);
	font-size: 1rem;
	line-height: 1.7;
	margin-bottom: var(--ib-s-3);
}

/* Add-to-cart form */
.single-product form.cart {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px;
	margin: var(--ib-s-3) 0;
}
/* WC quantity stepper — −  [input]  +  (works on single product, cart page, anywhere) */
.quantity {
	display: inline-flex !important;
	align-items: stretch;
	border: 1.5px solid var(--ib-stone-200);
	border-radius: 999px;
	overflow: hidden;
	background: var(--ib-paper);
	transition: border-color .15s var(--ib-ease), box-shadow .15s var(--ib-ease);
}
.quantity:focus-within {
	border-color: var(--ib-accent);
	box-shadow: 0 0 0 4px var(--ib-accent-soft);
}
.quantity input.qty {
	width: 48px !important;
	min-width: 0;
	border: none !important;
	background: transparent !important;
	padding: 0 4px !important;
	margin: 0 !important;
	text-align: center;
	font-weight: 700;
	font-size: 0.9375rem;
	color: var(--ib-ink) !important;
	-moz-appearance: textfield;
	box-shadow: none !important;
}
.quantity input.qty::-webkit-outer-spin-button,
.quantity input.qty::-webkit-inner-spin-button {
	-webkit-appearance: none;
	margin: 0;
}
.quantity input.qty:focus { outline: none; }
.quantity .ib_qty-btn {
	width: 40px;
	min-width: 40px;
	height: auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: transparent;
	border: none;
	color: var(--ib-ink);
	cursor: pointer;
	font-size: 1.125rem;
	font-weight: 600;
	line-height: 1;
	padding: 0;
	transition: background .12s var(--ib-ease), color .12s var(--ib-ease);
	user-select: none;
}
.quantity .ib_qty-btn:hover {
	background: var(--ib-warm-50);
	color: var(--ib-accent);
}
.quantity .ib_qty-btn:active {
	background: var(--ib-accent-soft);
}
.quantity .ib_qty-btn-minus { border-right: 1px solid var(--ib-stone-100); }
.quantity .ib_qty-btn-plus  { border-left:  1px solid var(--ib-stone-100); }

/* Single product — bigger stepper to match the bigger add-to-cart button */
.single-product form.cart .quantity {
	min-height: 50px;
}
.single-product form.cart .quantity input.qty {
	width: 56px !important;
	font-size: 1rem;
}
.single-product form.cart .quantity .ib_qty-btn {
	width: 44px;
	min-width: 44px;
	font-size: 1.25rem;
}

/* Cart page — adjust to fit table cell */
.woocommerce-cart .quantity {
	max-width: 140px;
}
.single-product form.cart .single_add_to_cart_button {
	flex: 1 1 auto !important;
	padding: 14px 28px !important;
	font-size: 1rem !important;
	font-weight: 700 !important;
	background: var(--ib-accent) !important;
	color: #fff !important;
	border: none !important;
	border-radius: 999px !important;
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	gap: 8px;
	letter-spacing: 0.01em !important;
	transition: background .15s var(--ib-ease), transform .15s var(--ib-ease);
}
.single-product form.cart .single_add_to_cart_button:hover {
	background: var(--ib-accent-2) !important;
	transform: translateY(-1px);
}

/* Meta */
.single-product .product_meta {
	margin-top: var(--ib-s-3);
	padding-top: var(--ib-s-3);
	border-top: 1px solid var(--ib-stone-100);
	font-size: 0.875rem;
	color: var(--ib-ink-muted);
}
.single-product .product_meta > span {
	display: block;
	margin-bottom: 6px;
}
.single-product .product_meta a { color: var(--ib-accent); }

/* Tabs (description, reviews, additional info) — sits OUTSIDE the .product grid */
.woocommerce-tabs.wc-tabs-wrapper {
	margin-top: var(--ib-s-5) !important;
	clear: both;
	width: 100%;
}
.woocommerce-tabs ul.tabs {
	display: flex;
	gap: 2px;
	list-style: none;
	margin: 0 !important;
	padding: 0 !important;
	border-bottom: 1px solid var(--ib-stone-200) !important;
}
.woocommerce-tabs ul.tabs::before,
.woocommerce-tabs ul.tabs::after { display: none !important; }
.woocommerce-tabs ul.tabs li {
	background: transparent !important;
	border: none !important;
	margin: 0 !important;
	padding: 0 !important;
	border-radius: 0 !important;
}
.woocommerce-tabs ul.tabs li a {
	display: inline-block;
	padding: 14px 20px !important;
	font-weight: 600 !important;
	color: var(--ib-ink-muted) !important;
	border-bottom: 3px solid transparent !important;
	margin-bottom: -1px;
	transition: color .15s var(--ib-ease), border-color .15s var(--ib-ease) !important;
}
.woocommerce-tabs ul.tabs li a:hover { color: var(--ib-ink) !important; }
.woocommerce-tabs ul.tabs li.active a {
	color: var(--ib-accent) !important;
	border-bottom-color: var(--ib-accent) !important;
}
.woocommerce-tabs .panel {
	padding: var(--ib-s-4) 0 !important;
	color: var(--ib-ink-soft);
	line-height: 1.7;
}

/* Related products — sits OUTSIDE the .product grid, with a prominent gradient divider */
.related.products,
.upsells.products {
	clear: both;
	width: 100%;
	margin-top: var(--ib-s-7) !important;
	padding-top: var(--ib-s-5);
	border-top: none;
	position: relative;
}
.related.products::before,
.upsells.products::before {
	content: "";
	position: absolute;
	top: 0;
	left: 50%;
	transform: translateX(-50%);
	width: 100%;
	max-width: var(--ib-container-max);
	height: 2px;
	background: linear-gradient(90deg,
		transparent 0%,
		var(--ib-accent-soft) 22%,
		var(--ib-accent)      48%,
		var(--ib-accent)      52%,
		var(--ib-accent-soft) 78%,
		transparent 100%
	);
	border-radius: 2px;
}
/* Small centered accent dot sitting ON the divider for extra polish */
.related.products::after,
.upsells.products::after {
	content: "";
	position: absolute;
	top: -5px;
	left: 50%;
	transform: translateX(-50%);
	width: 12px;
	height: 12px;
	background: var(--ib-paper);
	border: 2px solid var(--ib-accent);
	border-radius: 50%;
	box-shadow: 0 0 0 4px var(--ib-paper);
}
.related.products > h2,
.upsells.products > h2 {
	font-size: 1.75rem;
	margin-bottom: var(--ib-s-3);
}

/* =========================================================================
   SINGLE PRODUCT — premium content blocks (eyebrow, pills, USPs, trust, specs)
   ========================================================================= */

/* Sticky summary column on desktop so price + cart stay in view while scrolling */
@media (min-width: 900px) {
	.single-product div.product .summary {
		position: sticky;
		top: 120px;
		align-self: start;
	}
}

/* Brand eyebrow above the title */
.ib_single-eyebrow {
	display: inline-block;
	margin: 0 0 12px;
	padding: 6px 12px;
	background: var(--ib-warm-50);
	border: 1px solid var(--ib-stone-200);
	border-radius: 999px;
	font-family: var(--ib-font-body);
	font-size: 0.6875rem;
	font-weight: 700;
	letter-spacing: 0.18em;
	color: var(--ib-accent);
}

/* Quick info pills row (in stock + delivery + warranty) */
.ib_single-pills {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: var(--ib-s-2) 0 var(--ib-s-3);
}
.ib_single-pill {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 6px 12px;
	background: var(--ib-paper);
	border: 1px solid var(--ib-stone-200);
	border-radius: 999px;
	font-size: 0.8125rem;
	font-weight: 600;
	color: var(--ib-ink-soft);
	white-space: nowrap;
}
.ib_single-pill svg { color: var(--ib-accent); flex: 0 0 auto; }
.ib_single-pill--stock {
	background: rgba(34, 197, 94, 0.08);
	border-color: rgba(34, 197, 94, 0.30);
	color: #15803d;
}
.ib_single-pill--out {
	background: rgba(220, 38, 38, 0.08);
	border-color: rgba(220, 38, 38, 0.30);
	color: #b91c1c;
}
.ib_single-pill-dot {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: #22c55e;
	box-shadow: 0 0 0 3px rgba(34, 197, 94, 0.18);
	animation: ib_pulse 1.8s ease-in-out infinite;
}
@keyframes ib_pulse {
	0%, 100% { box-shadow: 0 0 0 3px rgba(34, 197, 94, 0.18); }
	50%      { box-shadow: 0 0 0 6px rgba(34, 197, 94, 0.04); }
}

/* USPs — check-marked list under cart button */
.ib_single-usps {
	list-style: none;
	margin: var(--ib-s-3) 0;
	padding: var(--ib-s-3);
	background: var(--ib-warm-50);
	border-radius: var(--ib-radius-md);
	display: flex;
	flex-direction: column;
	gap: 10px;
	font-size: 0.9375rem;
}
.ib_single-usps li {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	color: var(--ib-ink-soft);
}
.ib_single-usp-icon {
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 22px;
	height: 22px;
	border-radius: 50%;
	background: var(--ib-accent);
	color: #fff;
	margin-top: 1px;
}

/* Trust badges row (3 fixed items) */
.ib_single-trust {
	display: grid;
	grid-template-columns: 1fr;
	gap: 12px;
	margin: var(--ib-s-3) 0;
	padding: var(--ib-s-3);
	background: var(--ib-paper);
	border: 1px solid var(--ib-stone-200);
	border-radius: var(--ib-radius-md);
}
@media (min-width: 540px) and (max-width: 899px),
       (min-width: 1100px) {
	.ib_single-trust { grid-template-columns: repeat(3, 1fr); }
}
.ib_single-trust-item {
	display: flex;
	align-items: flex-start;
	gap: 10px;
}
.ib_single-trust-icon {
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 34px;
	height: 34px;
	background: var(--ib-accent-soft);
	color: var(--ib-accent);
	border-radius: 8px;
}
.ib_single-trust-copy { display: flex; flex-direction: column; line-height: 1.3; }
.ib_single-trust-copy strong {
	font-size: 0.8125rem;
	color: var(--ib-ink);
	font-weight: 700;
}
.ib_single-trust-copy span {
	font-size: 0.75rem;
	color: var(--ib-ink-muted);
	margin-top: 2px;
}

/* ---------- "Offerte aanvragen" + phone block (under add-to-cart) ---------- */
.ib_single-quote-phone {
	margin: var(--ib-s-2) 0 var(--ib-s-3);
	padding: 14px 16px;
	background: var(--ib-warm-50);
	border: 1px solid var(--ib-stone-200);
	border-radius: var(--ib-radius-md);
	display: flex;
	flex-direction: column;
	gap: 10px;
}
.ib_single-quote-btn {
	width: 100%;
	justify-content: center;
	background: var(--ib-paper) !important;
	color: var(--ib-ink) !important;
	border: 1.5px solid var(--ib-ink) !important;
	border-radius: 999px !important;
	padding: 12px 20px !important;
	font-weight: 700 !important;
	display: inline-flex !important;
	align-items: center !important;
	gap: 8px;
	text-decoration: none !important;
	transition: background .15s var(--ib-ease), color .15s var(--ib-ease), transform .15s var(--ib-ease);
}
.ib_single-quote-btn:hover {
	background: var(--ib-ink) !important;
	color: #fff !important;
	transform: translateY(-1px);
}
.ib_single-quote-btn svg { flex: 0 0 auto; }

.ib_single-phone-line {
	margin: 0;
	font-size: 0.875rem;
	color: var(--ib-ink-soft);
	text-align: center;
	display: inline-flex;
	flex-wrap: wrap;
	gap: 6px;
	align-items: center;
	justify-content: center;
}
.ib_single-phone-link {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	color: var(--ib-accent);
	text-decoration: none;
	font-weight: 600;
	border-bottom: 1px dashed transparent;
	padding-bottom: 1px;
	transition: border-color .12s var(--ib-ease), color .12s var(--ib-ease);
}
.ib_single-phone-link:hover { border-bottom-color: var(--ib-accent); color: var(--ib-accent-2); }
.ib_single-phone-link svg { color: var(--ib-accent); }

/* ---------- Offerte modal ---------- */
.ib_quote-modal[hidden] { display: none !important; }
.ib_quote-modal {
	position: fixed;
	inset: 0;
	z-index: 100;
	display: grid;
	place-items: center;
	padding: 16px;
	opacity: 0;
	pointer-events: none;
	transition: opacity .22s var(--ib-ease);
}
.ib_quote-modal.is-open { opacity: 1; pointer-events: auto; }
.ib_quote-modal-backdrop {
	position: absolute;
	inset: 0;
	background: rgba(26, 26, 26, 0.6);
	backdrop-filter: blur(6px);
	-webkit-backdrop-filter: blur(6px);
}
.ib_quote-modal-card {
	position: relative;
	width: 100%;
	max-width: 580px;
	max-height: calc(100vh - 32px);
	overflow-y: auto;
	background: var(--ib-paper);
	border-radius: var(--ib-radius-lg);
	box-shadow: 0 30px 80px rgba(0, 0, 0, 0.32);
	padding: var(--ib-s-4);
	transform: translateY(8px);
	transition: transform .22s var(--ib-ease);
}
.ib_quote-modal.is-open .ib_quote-modal-card { transform: translateY(0); }
.ib_quote-modal-close {
	position: absolute;
	top: 14px; right: 14px;
	width: 36px; height: 36px;
	display: grid; place-items: center;
	background: var(--ib-stone-100);
	border: none;
	border-radius: 50%;
	color: var(--ib-ink);
	cursor: pointer;
	transition: background .12s var(--ib-ease), color .12s var(--ib-ease);
}
.ib_quote-modal-close:hover { background: var(--ib-accent); color: #fff; }

.ib_quote-modal-head { text-align: left; margin-bottom: var(--ib-s-3); padding-right: 40px; }
.ib_quote-modal-head .ib_eyebrow {
	display: inline-block;
	font-size: 0.6875rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--ib-accent);
	margin-bottom: 6px;
}
.ib_quote-modal-title {
	font-family: var(--ib-font-display);
	font-size: clamp(1.375rem, 2vw + 0.5rem, 1.75rem);
	color: var(--ib-ink);
	margin: 0 0 8px;
	line-height: 1.2;
}
.ib_quote-modal-sub {
	margin: 0;
	color: var(--ib-ink-muted);
	font-size: 0.9375rem;
}

/* Product context block */
.ib_quote-product {
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 14px;
	background: var(--ib-warm-50);
	border: 1px solid var(--ib-stone-200);
	border-radius: var(--ib-radius-md);
	margin-bottom: var(--ib-s-3);
}
.ib_quote-product-thumb {
	width: 64px; height: 64px;
	flex: 0 0 64px;
	border-radius: var(--ib-radius-sm);
	overflow: hidden;
	background: var(--ib-paper);
}
.ib_quote-product-thumb img {
	width: 100%; height: 100%;
	object-fit: cover; display: block;
}
.ib_quote-product-meta { display: flex; flex-direction: column; min-width: 0; }
.ib_quote-product-label {
	font-size: 0.6875rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--ib-ink-muted);
}
.ib_quote-product-name {
	font-weight: 700;
	color: var(--ib-ink);
	font-size: 1rem;
	line-height: 1.3;
	margin: 2px 0;
}
.ib_quote-product-line {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	font-size: 0.8125rem;
	color: var(--ib-ink-muted);
}
.ib_quote-product-line .amount { color: var(--ib-accent); font-weight: 600; }

/* Form */
.ib_quote-form { display: flex; flex-direction: column; gap: 12px; }
.ib_quote-row {
	display: grid;
	grid-template-columns: 1fr;
	gap: 12px;
}
@media (min-width: 520px) { .ib_quote-row { grid-template-columns: 1fr 1fr; } }
.ib_quote-form label {
	display: flex;
	flex-direction: column;
	gap: 5px;
}
.ib_quote-form label > span {
	font-size: 0.8125rem;
	font-weight: 600;
	color: var(--ib-ink);
}
.ib_quote-form input,
.ib_quote-form textarea {
	width: 100%;
	padding: 12px 14px;
	border: 1.5px solid var(--ib-stone-200);
	border-radius: var(--ib-radius-sm);
	background: var(--ib-paper);
	font-size: 0.9375rem;
	color: var(--ib-ink);
	font-family: inherit;
	transition: border-color .12s var(--ib-ease), box-shadow .12s var(--ib-ease);
}
.ib_quote-form input:focus,
.ib_quote-form textarea:focus {
	outline: none;
	border-color: var(--ib-accent);
	box-shadow: 0 0 0 3px var(--ib-accent-soft);
}
.ib_quote-form textarea { resize: vertical; min-height: 90px; }
.ib_quote-message { margin-top: 4px; }

/* Honeypot — hidden from real users */
.ib_quote-hp {
	position: absolute !important;
	left: -9999px !important;
	top: -9999px !important;
	height: 1px; width: 1px;
	overflow: hidden;
}

.ib_quote-actions {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 8px;
	margin-top: 8px;
}
.ib_quote-submit {
	width: 100%;
	padding: 14px 22px !important;
	font-size: 1rem !important;
	font-weight: 700 !important;
	border-radius: 999px !important;
}
.ib_quote-submit.is-loading { opacity: 0.7; cursor: wait; }
.ib_quote-privacy {
	margin: 0;
	font-size: 0.75rem;
	color: var(--ib-ink-muted);
	text-align: center;
}

/* Result state */
.ib_quote-result {
	text-align: center;
	padding: var(--ib-s-3) 0;
	color: var(--ib-ink-soft);
}
.ib_quote-result.is-success {
	color: #16a34a;
}
.ib_quote-result.is-success svg { color: #16a34a; }
.ib_quote-result.is-success p {
	color: var(--ib-ink);
	font-size: 1rem;
	margin: 10px 0 0;
}
.ib_quote-result.is-error {
	color: #b00020;
	background: #fef2f2;
	border: 1px solid #fecaca;
	border-radius: var(--ib-radius-md);
	padding: 12px 16px;
	margin-top: var(--ib-s-2);
	font-size: 0.9375rem;
}

/* ---------- Sale / discount visuals — lay out del + ins side-by-side
 * with a calculated "-X%" badge, instead of WC's stacked default ---------- */
.single-product .product .price {
	display: flex !important;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 12px;
}
.single-product .product .price del {
	order: 2;
	font-family: var(--ib-font-body) !important;
	font-size: 1rem !important;
	color: var(--ib-ink-muted) !important;
	opacity: 0.75;
	font-weight: 400;
	position: relative;
	top: -4px;
}
.single-product .product .price del .amount { color: inherit !important; }
.single-product .product .price ins {
	order: 1;
	background: transparent !important;
	text-decoration: none !important;
	color: var(--ib-accent) !important;
	font-family: var(--ib-font-display) !important;
}
.single-product .product .price ins .amount { color: var(--ib-accent) !important; }
.single-product .product .price > .ib_price-tax-suffix { order: 4; }
.ib_single-discount-badge {
	order: 3;
	display: inline-flex;
	align-items: center;
	gap: 4px;
	background: var(--ib-accent-soft);
	color: var(--ib-accent-2);
	font-family: var(--ib-font-body);
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	padding: 4px 10px;
	border-radius: 999px;
	position: relative;
	top: -4px;
}

/* ---------- Inline gallery thumbnails — Shopify-style strip directly
 * under the main featured image (inside the gallery column). 4 visible at
 * once, horizontal scroll-snap for the rest. ---------- */
.ib_gallery-thumbs {
	display: flex;
	gap: 8px;
	margin-top: 12px;
	padding: 4px 0 6px;       /* room for the focus/active ring */
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scroll-behavior: smooth;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: thin;
	scrollbar-color: var(--ib-stone-200) transparent;
}
.ib_gallery-thumbs::-webkit-scrollbar { height: 6px; }
.ib_gallery-thumbs::-webkit-scrollbar-track { background: transparent; }
.ib_gallery-thumbs::-webkit-scrollbar-thumb {
	background: var(--ib-stone-200);
	border-radius: 999px;
}
.ib_gallery-thumb {
	flex: 0 0 calc((100% - 24px) / 4);  /* 4 visible, 3× 8px gap = 24px */
	aspect-ratio: 1 / 1;
	padding: 0;
	background: var(--ib-paper);
	border: 2px solid var(--ib-stone-200);
	border-radius: var(--ib-radius-md);
	overflow: hidden;
	cursor: pointer;
	scroll-snap-align: start;
	transition: border-color .15s var(--ib-ease), transform .15s var(--ib-ease), box-shadow .15s var(--ib-ease);
}
.ib_gallery-thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.ib_gallery-thumb:hover {
	border-color: var(--ib-accent);
	transform: translateY(-1px);
}
.ib_gallery-thumb.is-active {
	border-color: var(--ib-accent);
	box-shadow: 0 0 0 3px var(--ib-accent-soft);
}
.ib_gallery-thumb:focus-visible {
	outline: none;
	border-color: var(--ib-accent);
	box-shadow: 0 0 0 3px var(--ib-accent-soft);
}

/* Narrower viewport — show 3 thumbs at once */
@media (max-width: 540px) {
	.ib_gallery-thumb { flex: 0 0 calc((100% - 16px) / 3); }
}

/* Hide the strip when there's only one thumb (a thumb of the same image
 * the user is already looking at adds no value). */
.ib_gallery-thumbs:has(> .ib_gallery-thumb:only-child) { display: none; }

/* With the new thumb strip below the gallery, the in-image dots become
 * redundant (the thumbs already show "which image am I on"). Hide them
 * on the single product gallery only — the card carousels on archives
 * still get dots. */
.single-product .woocommerce-product-gallery .ib-carousel-dots { display: none; }

/* ---------- Downloads tab ---------- */
.ib_downloads-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: 1fr;
	gap: 10px;
}
@media (min-width: 700px) {
	.ib_downloads-list { grid-template-columns: 1fr 1fr; }
}
.ib_download > a {
	display: grid;
	grid-template-columns: 56px 1fr auto;
	align-items: center;
	gap: 14px;
	padding: 14px 16px;
	background: var(--ib-paper);
	border: 1px solid var(--ib-stone-200);
	border-radius: var(--ib-radius-md);
	text-decoration: none !important;
	color: var(--ib-ink);
	transition: border-color .15s var(--ib-ease), box-shadow .15s var(--ib-ease), transform .15s var(--ib-ease);
}
.ib_download > a:hover {
	border-color: var(--ib-accent);
	box-shadow: 0 6px 20px rgba(245, 129, 36, 0.10);
	transform: translateY(-1px);
}
.ib_download-icon {
	position: relative;
	width: 56px; height: 56px;
	display: grid;
	place-items: center;
	background: var(--ib-warm-50);
	border-radius: var(--ib-radius-sm);
	color: var(--ib-accent);
}
.ib_download-ext {
	position: absolute;
	bottom: 4px; left: 0; right: 0;
	text-align: center;
	font-size: 0.5625rem;
	font-weight: 800;
	letter-spacing: 0.06em;
	color: var(--ib-paper);
	background: var(--ib-accent);
	padding: 1px 0;
	border-radius: 3px;
	margin: 0 8px;
}
.ib_download-meta { display: flex; flex-direction: column; min-width: 0; }
.ib_download-title {
	font-weight: 600;
	color: var(--ib-ink);
	line-height: 1.35;
}
.ib_download-size {
	font-size: 0.8125rem;
	color: var(--ib-ink-muted);
	margin-top: 3px;
	font-variant-numeric: tabular-nums;
}
.ib_download-action {
	color: var(--ib-ink-muted);
	display: grid;
	place-items: center;
	transition: color .15s var(--ib-ease), transform .15s var(--ib-ease);
}
.ib_download > a:hover .ib_download-action {
	color: var(--ib-accent);
	transform: translateY(2px);
}

/* ---------- WC product tab tables (apply same look to ANY pasted table) ----------
 * The client reported that pasted tables in the description didn't play
 * well with the spec layout. The Specs tab uses its own .ib_specs-table /
 * .ib_specs-custom rules; here we cover any table dropped into the
 * Beschrijving / Downloads tab by the admin. */
.woocommerce-Tabs-panel table:not(.ib_specs-table):not(.shop_attributes) {
	width: 100%;
	border-collapse: separate;
	border-spacing: 0;
	border: 1px solid var(--ib-stone-200);
	border-radius: var(--ib-radius-md);
	overflow: hidden;
	margin: var(--ib-s-2) 0;
	font-size: 0.9375rem;
}
.woocommerce-Tabs-panel table:not(.ib_specs-table):not(.shop_attributes) th,
.woocommerce-Tabs-panel table:not(.ib_specs-table):not(.shop_attributes) td {
	padding: 12px 16px;
	text-align: left;
	border-bottom: 1px solid var(--ib-stone-100);
	vertical-align: top;
}
.woocommerce-Tabs-panel table:not(.ib_specs-table):not(.shop_attributes) tr:last-child th,
.woocommerce-Tabs-panel table:not(.ib_specs-table):not(.shop_attributes) tr:last-child td { border-bottom: none; }
.woocommerce-Tabs-panel table:not(.ib_specs-table):not(.shop_attributes) th {
	background: var(--ib-warm-50);
	font-weight: 700;
	color: var(--ib-ink);
}
.woocommerce-Tabs-panel table:not(.ib_specs-table):not(.shop_attributes) td { color: var(--ib-ink-soft); }

/* ---------- Custom specs HTML wrapper (vendor table paste) ----------
 * Tables pasted into the WYSIWYG escape hatch get sane styling so they
 * don't look like an alien element. */
.ib_specs-custom { font-size: 0.9375rem; color: var(--ib-ink-soft); }
.ib_specs-custom table {
	width: 100%;
	border-collapse: separate;
	border-spacing: 0;
	border: 1px solid var(--ib-stone-200);
	border-radius: var(--ib-radius-md);
	overflow: hidden;
	margin: var(--ib-s-2) 0;
}
.ib_specs-custom table th,
.ib_specs-custom table td {
	padding: 12px 16px;
	text-align: left;
	border-bottom: 1px solid var(--ib-stone-100);
	vertical-align: top;
}
.ib_specs-custom table tr:last-child th,
.ib_specs-custom table tr:last-child td { border-bottom: none; }
.ib_specs-custom table th {
	background: var(--ib-warm-50);
	font-weight: 700;
	color: var(--ib-ink);
}
.ib_specs-custom table td { color: var(--ib-ink-soft); }
.ib_specs-custom ul, .ib_specs-custom ol { padding-left: 1.25em; margin: var(--ib-s-2) 0; }
.ib_specs-custom h2, .ib_specs-custom h3 {
	font-family: var(--ib-font-display);
	color: var(--ib-ink);
	margin: var(--ib-s-3) 0 var(--ib-s-1);
}

/* ---------- Defensive: kill all hover transforms on the single-product
 * gallery + the featured image. Client feedback: hover effects feel weird
 * with our flat premium look. ---------- */
.single-product .woocommerce-product-gallery__image,
.single-product .woocommerce-product-gallery__image img,
.single-product .woocommerce-product-gallery__image a {
	transform: none !important;
	transition: none !important;
	cursor: default;
}
.single-product .woocommerce-product-gallery__image:hover img {
	transform: none !important;
	opacity: 1 !important;
	filter: none !important;
}
.single-product .woocommerce-product-gallery__trigger { /* the 🔍 lightbox trigger — keep clickable */
	cursor: zoom-in;
}

/* Energy label badge — floats on the gallery */
.ib_single-energy-badge {
	position: absolute;
	top: 16px;
	left: 16px;
	width: 56px;
	z-index: 3;
	background: var(--ib-paper);
	border: 1px solid var(--ib-stone-200);
	border-radius: 8px;
	padding: 4px;
	box-shadow: var(--ib-shadow-sm);
}
.ib_single-energy-badge img { width: 100%; height: auto; display: block; }

/* Specs table (inside the "Specificaties" tab) */
.ib_specs-table {
	width: 100%;
	border-collapse: separate;
	border-spacing: 0;
	border: 1px solid var(--ib-stone-200);
	border-radius: var(--ib-radius-md);
	overflow: hidden;
}
.ib_specs-table th,
.ib_specs-table td {
	padding: 14px 18px;
	text-align: left;
	border-bottom: 1px solid var(--ib-stone-100);
	font-size: 0.9375rem;
}
.ib_specs-table tr:last-child th,
.ib_specs-table tr:last-child td { border-bottom: none; }
.ib_specs-table th {
	background: var(--ib-warm-50);
	width: 40%;
	font-weight: 700;
	color: var(--ib-ink);
}
.ib_specs-table td { color: var(--ib-ink-soft); }
.ib_specs-table tr:nth-child(odd) td { background: rgba(0,0,0,0.012); }

/* Single product — fine-tuning of WC default elements alongside our additions */
.single-product .product .price .ib_price-tax-suffix {
	font-size: 0.6875rem;
	top: -8px;
}
.single-product .woocommerce-product-rating {
	margin: 0 0 var(--ib-s-2) !important;
}
.single-product .woocommerce-product-rating .star-rating {
	display: inline-block;
	vertical-align: middle;
	margin-right: 6px;
}
.single-product .woocommerce-review-link {
	color: var(--ib-ink-muted);
	font-size: 0.875rem;
}
.single-product .product_meta > span strong { color: var(--ib-ink); font-weight: 600; }

/* =========================================================================
   SINGLE PRODUCT — top breadcrumb bar + page spacing
   ========================================================================= */

/* Slim breadcrumb bar above the gallery */
.ib_single-topbar {
	background: linear-gradient(180deg, var(--ib-warm-50) 0%, var(--ib-paper) 100%);
	border-bottom: 1px solid var(--ib-stone-100);
	padding: var(--ib-s-3) 0;
}
.ib_single-topbar .ib_breadcrumb { margin: 0; }

/* Top padding on the single product container so the gallery + summary breathe */
.ib_single-product-wrap {
	padding-top: var(--ib-s-5);
	padding-bottom: var(--ib-s-6);
}
@media (min-width: 900px) {
	.ib_single-product-wrap {
		padding-top: var(--ib-s-6);
		padding-bottom: var(--ib-s-7);
	}
}

/* Tabs + related sections get clean breathing room */
.single-product .woocommerce-tabs.wc-tabs-wrapper {
	margin-top: var(--ib-s-6) !important;
	padding-top: var(--ib-s-4);
	border-top: 1px solid var(--ib-stone-100);
}
.single-product .related.products,
.single-product .upsells.products {
	margin-top: var(--ib-s-7) !important;
	padding-top: var(--ib-s-5);
	padding-bottom: var(--ib-s-4);
}

/* Related products section header — premium spacing */
.single-product .related.products > h2,
.single-product .upsells.products > h2 {
	font-size: clamp(1.5rem, 1.5vw + 1rem, 2rem);
	margin-bottom: var(--ib-s-4);
	text-align: left;
}

/* =========================================================================
   IMAGE CAROUSEL — unified arrows + dots for single-product gallery and
   product cards on archive pages.
   ========================================================================= */

/* Generic shared chrome (arrows + dots) */
.ib-carousel-container { position: relative; }

.ib-carousel-arrow {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	z-index: 5;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	background: var(--ib-paper);
	border: 1px solid var(--ib-stone-200);
	color: var(--ib-ink);
	cursor: pointer;
	box-shadow: 0 4px 14px rgba(0,0,0,0.10);
	opacity: 0;
	transition: opacity .2s var(--ib-ease), background .15s var(--ib-ease), color .15s var(--ib-ease), transform .12s var(--ib-ease);
}
.ib-carousel-arrow:hover {
	background: var(--ib-accent);
	color: #fff;
	border-color: var(--ib-accent);
}
.ib-carousel-arrow:disabled {
	opacity: 0 !important;
	pointer-events: none;
}
.ib-carousel-prev { left: 12px; }
.ib-carousel-next { right: 12px; }

/* Show arrows on hover of the container, OR always on touch devices */
.ib-carousel-container:hover .ib-carousel-arrow:not(:disabled) { opacity: 1; }
@media (hover: none) {
	.ib-carousel-arrow:not(:disabled) { opacity: 0.85; }
}

.ib-carousel-dots {
	position: absolute;
	bottom: 10px;
	left: 50%;
	transform: translateX(-50%);
	z-index: 5;
	display: flex;
	gap: 6px;
	padding: 6px 10px;
	background: rgba(255,255,255,0.85);
	border-radius: 999px;
	backdrop-filter: blur(6px);
	-webkit-backdrop-filter: blur(6px);
	box-shadow: 0 2px 8px rgba(0,0,0,0.08);
}
.ib-carousel-dot {
	width: 8px;
	height: 8px;
	padding: 0;
	border: none;
	border-radius: 50%;
	background: rgba(0,0,0,0.25);
	cursor: pointer;
	transition: background .15s var(--ib-ease), transform .15s var(--ib-ease), width .15s var(--ib-ease);
}
.ib-carousel-dot:hover { background: rgba(0,0,0,0.45); }
.ib-carousel-dot.is-active {
	background: var(--ib-accent);
	width: 22px;
	border-radius: 999px;
}

/* --- Single product gallery: bigger arrows, dots inside the warm container --- */
.single-product .woocommerce-product-gallery .ib-carousel-arrow {
	width: 48px;
	height: 48px;
}
.single-product .woocommerce-product-gallery .ib-carousel-prev { left: 18px; }
.single-product .woocommerce-product-gallery .ib-carousel-next { right: 18px; }
.single-product .woocommerce-product-gallery .ib-carousel-dots {
	bottom: 22px;
}
/* Hide carousel chrome when there's only one image */
.single-product .woocommerce-product-gallery--columns-1 .ib-carousel-arrow,
.single-product .woocommerce-product-gallery--columns-1 .ib-carousel-dots { display: none !important; }

/* =========================================================================
   PRODUCT CARD CAROUSEL — appears in place of WC's single thumbnail when
   the product has multiple gallery images.
   ========================================================================= */

.ib_card-carousel {
	position: relative;
	overflow: hidden;
	width: 100%;
	aspect-ratio: 1 / 1;
	background: var(--ib-warm-50);
	border-radius: var(--ib-radius-lg) var(--ib-radius-lg) 0 0;
}
.ib_card-carousel-track {
	display: flex;
	width: 100%;
	height: 100%;
	overflow-x: auto;
	overflow-y: hidden;
	scroll-snap-type: x mandatory;
	scroll-behavior: smooth;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: none;
}
.ib_card-carousel-track::-webkit-scrollbar { display: none; }
.ib_card-carousel-slide {
	flex: 0 0 100%;
	scroll-snap-align: start;
	display: block;
	height: 100%;
	overflow: hidden;
}
.ib_card-carousel-slide img {
	width: 100% !important;
	height: 100% !important;
	object-fit: cover !important;
	display: block !important;
	transition: transform .5s var(--ib-ease);
	aspect-ratio: 1 / 1 !important;
}
.woocommerce ul.products li.product:hover .ib_card-carousel-slide img { transform: scale(1.04); }

/* Smaller arrows + dots on cards (cards are tighter than single product) */
.ib_card-carousel .ib-carousel-arrow {
	width: 32px;
	height: 32px;
}
.ib_card-carousel .ib-carousel-prev { left: 8px; }
.ib_card-carousel .ib-carousel-next { right: 8px; }
.ib_card-carousel .ib-carousel-dots {
	bottom: 8px;
	padding: 4px 8px;
}
.ib_card-carousel .ib-carousel-dot { width: 6px; height: 6px; }
.ib_card-carousel .ib-carousel-dot.is-active { width: 18px; }

/* Simple-link variant (used when product has only 1 image) — same layout as carousel */
.ib_card-image-link {
	display: block;
	overflow: hidden;
	border-radius: var(--ib-radius-lg) var(--ib-radius-lg) 0 0;
	aspect-ratio: 1 / 1;
	background: var(--ib-warm-50);
}
.ib_card-image-link img {
	width: 100% !important;
	height: 100% !important;
	object-fit: cover !important;
	display: block !important;
	transition: transform .5s var(--ib-ease);
}
.woocommerce ul.products li.product:hover .ib_card-image-link img { transform: scale(1.04); }

/* The product title link should look like normal title (override default a styling) */
.woocommerce ul.products li.product .woocommerce-loop-product__title a {
	color: inherit;
	text-decoration: none;
}
.woocommerce ul.products li.product .woocommerce-loop-product__title a:hover {
	color: var(--ib-accent);
}

/* =========================================================================
   BLOG — archive (home.php / archive.php) + single (single.php)
   ========================================================================= */

/* ---------- Blog hero ---------- */
.ib_blog-hero {
	position: relative;
	padding: clamp(48px, 7vw, 88px) 0 clamp(32px, 4vw, 56px);
	background:
		radial-gradient(circle at 85% 15%, var(--ib-warm-100) 0%, transparent 50%),
		linear-gradient(180deg, var(--ib-warm-50) 0%, var(--ib-paper) 100%);
	border-bottom: 1px solid var(--ib-stone-100);
	overflow: hidden;
}
.ib_blog-hero::after {
	content: "";
	position: absolute;
	right: -100px; bottom: -100px;
	width: 280px; height: 280px;
	border-radius: 50%;
	background: var(--ib-grad-warm);
	opacity: 0.07;
	filter: blur(18px);
	pointer-events: none;
}
.ib_blog-hero .ib_eyebrow {
	display: inline-block;
	font-size: 0.6875rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--ib-accent);
	margin-bottom: 12px;
}
.ib_blog-hero-title {
	font-family: var(--ib-font-display);
	font-size: clamp(2rem, 4vw + 0.5rem, 3.25rem);
	line-height: 1.05;
	letter-spacing: -0.015em;
	color: var(--ib-ink);
	margin: 0 0 12px;
	max-width: 22ch;
}
.ib_blog-hero-sub {
	font-size: clamp(1rem, 0.5vw + 0.875rem, 1.125rem);
	color: var(--ib-ink-soft);
	margin: 0;
	max-width: 60ch;
	line-height: 1.55;
}

/* ---------- Blog section wrapper ---------- */
.ib_blog-section { padding-block: clamp(40px, 6vw, 80px); }
.ib_blog-layout {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--ib-s-5);
	align-items: start;
}
@media (min-width: 1000px) {
	.ib_blog-layout {
		grid-template-columns: minmax(0, 1fr) 300px;
		gap: var(--ib-s-6);
	}
}
.ib_blog-main { min-width: 0; }

/* ---------- Category pills row ---------- */
.ib_blog-tabs {
	margin-bottom: var(--ib-s-4);
}
.ib_blog-tabs-rail {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}
.ib_blog-tab {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 8px 14px;
	background: var(--ib-paper);
	border: 1.5px solid var(--ib-stone-200);
	border-radius: 999px;
	color: var(--ib-ink-soft);
	text-decoration: none;
	font-size: 0.875rem;
	font-weight: 500;
	transition: border-color .12s var(--ib-ease), background .12s var(--ib-ease), color .12s var(--ib-ease);
}
.ib_blog-tab:hover {
	border-color: var(--ib-accent);
	color: var(--ib-accent);
}
.ib_blog-tab.is-active {
	background: var(--ib-ink);
	border-color: var(--ib-ink);
	color: #fff;
}
.ib_blog-tab-count {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 18px;
	height: 18px;
	padding: 0 6px;
	background: rgba(0,0,0,0.06);
	color: inherit;
	font-size: 0.6875rem;
	font-weight: 700;
	border-radius: 999px;
	font-variant-numeric: tabular-nums;
}
.ib_blog-tab.is-active .ib_blog-tab-count { background: rgba(255,255,255,0.18); }

/* ---------- Featured post (large, 2-col) ---------- */
.ib_post-feat {
	margin-bottom: var(--ib-s-5);
	background: var(--ib-paper);
	border: 1px solid var(--ib-stone-200);
	border-radius: var(--ib-radius-lg);
	overflow: hidden;
	box-shadow: var(--ib-shadow-sm, 0 1px 2px rgba(0,0,0,.06));
	transition: transform .18s var(--ib-ease), box-shadow .18s var(--ib-ease), border-color .18s var(--ib-ease);
}
.ib_post-feat:hover {
	transform: translateY(-2px);
	border-color: var(--ib-accent);
	box-shadow: 0 14px 32px rgba(0,0,0,0.08);
}
.ib_post-feat-link {
	display: grid;
	grid-template-columns: 1fr;
	color: var(--ib-ink);
	text-decoration: none;
}
@media (min-width: 760px) {
	.ib_post-feat-link {
		grid-template-columns: 1.1fr 1fr;
		align-items: stretch;
	}
}
.ib_post-feat-media {
	position: relative;
	background: var(--ib-warm-100);
	aspect-ratio: 16/10;
	overflow: hidden;
}
@media (min-width: 760px) {
	.ib_post-feat-media { aspect-ratio: auto; min-height: 320px; }
}
.ib_post-feat-img {
	position: absolute;
	inset: 0;
	width: 100% !important;
	height: 100% !important;
	object-fit: cover;
	display: block;
}
.ib_post-feat-placeholder {
	position: absolute;
	inset: 0;
	display: grid;
	place-items: center;
	color: var(--ib-accent);
}
.ib_post-feat-body {
	padding: clamp(24px, 3vw, 40px);
	display: flex;
	flex-direction: column;
	gap: 10px;
}
.ib_post-feat-tag {
	align-self: flex-start;
	display: inline-flex;
	align-items: center;
	gap: 4px;
	padding: 4px 10px;
	background: var(--ib-accent);
	color: #fff;
	font-size: 0.6875rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	font-weight: 700;
	border-radius: 999px;
}
.ib_post-feat-cat {
	font-size: 0.75rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--ib-ink-muted);
	font-weight: 700;
}
.ib_post-feat-title {
	font-family: var(--ib-font-display);
	font-size: clamp(1.5rem, 2vw + 0.75rem, 2.25rem);
	line-height: 1.15;
	letter-spacing: -0.015em;
	color: var(--ib-ink);
	margin: 0;
}
.ib_post-feat:hover .ib_post-feat-title { color: var(--ib-accent); }
.ib_post-feat-excerpt {
	color: var(--ib-ink-soft);
	font-size: 1rem;
	line-height: 1.55;
	margin: 0;
}
.ib_post-feat-meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px 12px;
	margin-top: auto;
	padding-top: 12px;
	font-size: 0.8125rem;
	color: var(--ib-ink-muted);
}
.ib_post-feat-cta {
	margin-left: auto;
	display: inline-flex;
	align-items: center;
	gap: 4px;
	color: var(--ib-accent);
	font-weight: 700;
	font-size: 0.875rem;
}
.ib_post-feat-cta svg { transition: transform .18s var(--ib-ease); }
.ib_post-feat:hover .ib_post-feat-cta svg { transform: translateX(3px); }

/* ---------- Post cards (2-up grid in archive) ---------- */
.ib_blog-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 22px;
}
@media (min-width: 700px) { .ib_blog-grid { grid-template-columns: 1fr 1fr; } }

.ib_post-card {
	background: var(--ib-paper);
	border: 1px solid var(--ib-stone-200);
	border-radius: var(--ib-radius-lg);
	overflow: hidden;
	transition: transform .18s var(--ib-ease), box-shadow .18s var(--ib-ease), border-color .18s var(--ib-ease);
	height: 100%;
}
.ib_post-card:hover {
	transform: translateY(-3px);
	border-color: var(--ib-accent);
	box-shadow: 0 14px 30px rgba(0,0,0,0.08);
}
.ib_post-card-link {
	display: flex;
	flex-direction: column;
	height: 100%;
	color: var(--ib-ink);
	text-decoration: none;
}
.ib_post-card-media {
	position: relative;
	aspect-ratio: 16/10;
	overflow: hidden;
	background: var(--ib-warm-100);
}
.ib_post-card-img {
	width: 100% !important;
	height: 100% !important;
	object-fit: cover;
	display: block;
	transition: transform .35s var(--ib-ease);
}
.ib_post-card:hover .ib_post-card-img { transform: scale(1.04); }
.ib_post-card-placeholder {
	position: absolute;
	inset: 0;
	display: grid;
	place-items: center;
	color: var(--ib-accent);
}
.ib_post-card-cat {
	position: absolute;
	top: 12px; left: 12px;
	padding: 4px 10px;
	background: rgba(255,255,255,0.94);
	color: var(--ib-ink);
	font-size: 0.6875rem;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	font-weight: 700;
	border-radius: 999px;
	backdrop-filter: blur(4px);
	-webkit-backdrop-filter: blur(4px);
}
.ib_post-card-body {
	padding: 22px;
	display: flex;
	flex-direction: column;
	gap: 8px;
	flex: 1;
}
.ib_post-card-title {
	font-family: var(--ib-font-display);
	font-size: 1.375rem;
	line-height: 1.25;
	color: var(--ib-ink);
	margin: 0;
	letter-spacing: -0.01em;
	transition: color .15s var(--ib-ease);
}
.ib_post-card:hover .ib_post-card-title { color: var(--ib-accent); }
.ib_post-card-excerpt {
	color: var(--ib-ink-soft);
	font-size: 0.9375rem;
	line-height: 1.55;
	margin: 0;
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
.ib_post-card-meta {
	margin-top: auto;
	display: flex;
	gap: 8px;
	font-size: 0.8125rem;
	color: var(--ib-ink-muted);
	padding-top: 6px;
}

/* When featured post is the only post — render sidebar widgets in a
 * centered, narrower row below the featured card. */
.ib_blog-sidebar-solo {
	max-width: 380px;
	margin: var(--ib-s-4) auto 0;
}
.ib_blog-sidebar-solo .ib_blog-sidebar { position: static; }

/* ---------- Sidebar widgets ---------- */
.ib_blog-sidebar {
	display: flex;
	flex-direction: column;
	gap: var(--ib-s-3);
}
@media (min-width: 1000px) {
	.ib_blog-sidebar { position: sticky; top: 90px; }
}
.ib_blog-widget {
	background: var(--ib-paper);
	border: 1px solid var(--ib-stone-200);
	border-radius: var(--ib-radius-lg);
	padding: 22px;
}
.ib_blog-widget-title {
	font-family: var(--ib-font-display);
	font-size: 1.125rem;
	color: var(--ib-ink);
	margin: 0 0 14px;
}
.ib_blog-recent {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 12px;
}
.ib_blog-recent li a {
	display: grid;
	grid-template-columns: 60px 1fr;
	gap: 12px;
	color: var(--ib-ink);
	text-decoration: none;
	align-items: center;
}
.ib_blog-recent-thumb {
	width: 60px; height: 60px;
	border-radius: var(--ib-radius-sm);
	overflow: hidden;
	background: var(--ib-warm-100);
	flex: 0 0 60px;
}
.ib_blog-recent-thumb img {
	width: 100% !important;
	height: 100% !important;
	object-fit: cover;
	display: block;
}
.ib_blog-recent-meta { display: flex; flex-direction: column; min-width: 0; gap: 2px; }
.ib_blog-recent-meta strong {
	font-weight: 600;
	font-size: 0.9375rem;
	line-height: 1.3;
	color: var(--ib-ink);
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	transition: color .12s var(--ib-ease);
}
.ib_blog-recent li a:hover strong { color: var(--ib-accent); }
.ib_blog-recent-meta span {
	font-size: 0.75rem;
	color: var(--ib-ink-muted);
}

.ib_blog-cats {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 4px;
}
.ib_blog-cats li a {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 12px;
	padding: 10px 12px;
	border-radius: var(--ib-radius-sm);
	color: var(--ib-ink-soft);
	text-decoration: none;
	font-size: 0.9375rem;
	transition: background .12s var(--ib-ease), color .12s var(--ib-ease);
}
.ib_blog-cats li a:hover {
	background: var(--ib-warm-50);
	color: var(--ib-accent);
}
.ib_blog-cats-count {
	font-variant-numeric: tabular-nums;
	background: var(--ib-stone-100);
	color: var(--ib-ink-muted);
	font-size: 0.75rem;
	font-weight: 600;
	padding: 2px 8px;
	border-radius: 999px;
}

.ib_blog-widget--newsletter,
.ib_blog-widget--cta {
	background: var(--ib-warm-50);
	border-color: var(--ib-warm-100);
}
.ib_blog-widget--cta { text-align: center; }
.ib_blog-widget--cta .ib_btn { width: 100%; margin-top: 8px; }
.ib_blog-widget p {
	font-size: 0.875rem;
	color: var(--ib-ink-soft);
	line-height: 1.5;
	margin: 0 0 12px;
}

/* ---------- Pagination ---------- */
.ib_pagination {
	margin-top: var(--ib-s-4);
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 6px;
}
.ib_pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 38px;
	height: 38px;
	padding: 0 12px;
	background: var(--ib-paper);
	border: 1.5px solid var(--ib-stone-200);
	border-radius: var(--ib-radius-sm);
	color: var(--ib-ink);
	text-decoration: none;
	font-size: 0.875rem;
	font-weight: 600;
	transition: border-color .12s var(--ib-ease), background .12s var(--ib-ease), color .12s var(--ib-ease);
}
.ib_pagination .page-numbers:hover {
	border-color: var(--ib-accent);
	color: var(--ib-accent);
}
.ib_pagination .page-numbers.current {
	background: var(--ib-accent);
	border-color: var(--ib-accent);
	color: #fff;
}
.ib_pagination .page-numbers.dots {
	background: transparent;
	border-color: transparent;
	color: var(--ib-ink-muted);
}

/* ---------- Empty state ---------- */
.ib_empty {
	padding: var(--ib-s-6) var(--ib-s-3);
	text-align: center;
	background: var(--ib-warm-50);
	border: 1px solid var(--ib-stone-200);
	border-radius: var(--ib-radius-lg);
}
.ib_empty h2 {
	font-family: var(--ib-font-display);
	font-size: 1.5rem;
	color: var(--ib-ink);
	margin: 0 0 8px;
}
.ib_empty p {
	color: var(--ib-ink-muted);
	max-width: 40ch;
	margin: 0 auto var(--ib-s-2);
}

/* ---------- Reading progress bar ---------- */
.ib_reading-progress {
	position: sticky;
	top: 0;
	left: 0;
	right: 0;
	z-index: 60;
	height: 3px;
	background: transparent;
	overflow: hidden;
	pointer-events: none;
}
.ib_reading-progress-bar {
	display: block;
	height: 100%;
	width: 0%;
	background: var(--ib-grad-warm);
	transition: width .12s linear;
}

/* ---------- Single post hero ---------- */
.ib_post-hero {
	padding: clamp(28px, 5vw, 56px) 0 clamp(16px, 3vw, 32px);
	text-align: center;
	background: linear-gradient(180deg, var(--ib-warm-50) 0%, var(--ib-paper) 100%);
}
.ib_post-hero-cat {
	display: inline-block;
	padding: 4px 14px;
	background: var(--ib-accent);
	color: #fff;
	font-size: 0.6875rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	font-weight: 700;
	border-radius: 999px;
	text-decoration: none;
	margin-bottom: 18px;
	transition: background .12s var(--ib-ease);
}
.ib_post-hero-cat:hover { background: var(--ib-accent-2); }
.ib_post-hero-title {
	font-family: var(--ib-font-display);
	font-size: clamp(2rem, 4vw + 0.5rem, 3.5rem);
	line-height: 1.08;
	letter-spacing: -0.02em;
	color: var(--ib-ink);
	margin: 0 auto 18px;
	max-width: 24ch;
}
.ib_post-hero-meta {
	display: inline-flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	gap: 10px;
	font-size: 0.9375rem;
	color: var(--ib-ink-muted);
}
.ib_post-hero-author {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	color: var(--ib-ink);
	font-weight: 600;
}
.ib_post-hero-avatar { border-radius: 50%; width: 28px; height: 28px; }

/* ---------- Single post featured image ---------- */
.ib_post-feature {
	padding: var(--ib-s-3) 0;
}
.ib_post-feature-wrap {
	margin: 0;
	border-radius: var(--ib-radius-lg);
	overflow: hidden;
	background: var(--ib-warm-100);
	max-width: 980px;
	margin-left: auto;
	margin-right: auto;
	box-shadow: 0 20px 50px rgba(0,0,0,0.08);
}
.ib_post-feature-img {
	width: 100% !important;
	height: auto !important;
	display: block;
}

/* ---------- Single post — shell (article + share rail) ---------- */
.ib_post-section { padding-block: clamp(32px, 4vw, 56px); }
.ib_post-shell {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--ib-s-3);
	max-width: 820px;
	position: relative;
}
@media (min-width: 900px) {
	.ib_post-shell {
		grid-template-columns: 56px 1fr;
		max-width: 820px;
	}
}

/* Sticky share rail */
.ib_post-share {
	display: flex;
	flex-direction: row;
	gap: 10px;
	align-items: center;
	flex-wrap: wrap;
}
@media (min-width: 900px) {
	.ib_post-share {
		flex-direction: column;
		position: sticky;
		top: 90px;
		align-self: start;
		gap: 8px;
		align-items: flex-start;
	}
}
.ib_post-share-label {
	font-size: 0.6875rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--ib-ink-muted);
}
.ib_post-share-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	background: var(--ib-paper);
	border: 1.5px solid var(--ib-stone-200);
	color: var(--ib-ink-soft);
	transition: border-color .12s var(--ib-ease), background .12s var(--ib-ease), color .12s var(--ib-ease), transform .12s var(--ib-ease);
}
.ib_post-share-btn:hover {
	border-color: var(--ib-accent);
	background: var(--ib-accent);
	color: #fff;
	transform: translateY(-1px);
}

/* ---------- Post prose (article body) ---------- */
.ib_post-prose {
	max-width: 720px;
	font-family: var(--ib-font-body);
	font-size: 1.0625rem;
	line-height: 1.75;
	color: var(--ib-ink-soft);
}
.ib_post-prose > * + * { margin-top: 1.1em; }

.ib_post-prose p { margin: 0; color: var(--ib-ink-soft); }

.ib_post-prose > p:first-of-type {
	font-size: 1.1875rem;
	line-height: 1.65;
	color: var(--ib-ink);
}

/* Drop cap on first letter of first paragraph */
.ib_post-prose > p:first-of-type::first-letter {
	float: left;
	font-family: var(--ib-font-display);
	font-size: 4.25rem;
	line-height: 0.95;
	padding: 6px 12px 0 0;
	color: var(--ib-accent);
	font-weight: 400;
}

.ib_post-prose h2,
.ib_post-prose h3,
.ib_post-prose h4 {
	font-family: var(--ib-font-display);
	color: var(--ib-ink);
	letter-spacing: -0.01em;
	line-height: 1.2;
	margin-top: 1.8em;
	margin-bottom: 0.5em;
}
.ib_post-prose h2 { font-size: 1.875rem; }
.ib_post-prose h3 { font-size: 1.5rem; }
.ib_post-prose h4 { font-size: 1.25rem; }

.ib_post-prose a {
	color: var(--ib-accent);
	text-decoration: underline;
	text-underline-offset: 3px;
	text-decoration-thickness: 1.5px;
	transition: color .12s var(--ib-ease);
}
.ib_post-prose a:hover { color: var(--ib-accent-2); }

.ib_post-prose strong { color: var(--ib-ink); font-weight: 700; }

.ib_post-prose ul,
.ib_post-prose ol {
	padding-left: 1.5em;
	margin: 1.2em 0;
}
.ib_post-prose li { margin: 0.4em 0; }
.ib_post-prose ul li::marker { color: var(--ib-accent); }

.ib_post-prose blockquote {
	margin: 1.8em 0;
	padding: 8px 0 8px 24px;
	border-left: 4px solid var(--ib-accent);
	font-family: var(--ib-font-display);
	font-size: 1.375rem;
	line-height: 1.4;
	color: var(--ib-ink);
	font-style: italic;
}
.ib_post-prose blockquote cite {
	display: block;
	margin-top: 12px;
	font-family: var(--ib-font-body);
	font-style: normal;
	font-size: 0.875rem;
	color: var(--ib-ink-muted);
	font-weight: 600;
}

.ib_post-prose figure {
	margin: 2em 0;
}
.ib_post-prose img,
.ib_post-prose figure img {
	max-width: 100%;
	height: auto;
	display: block;
	border-radius: var(--ib-radius-md);
}
.ib_post-prose figcaption {
	margin-top: 10px;
	font-size: 0.8125rem;
	color: var(--ib-ink-muted);
	text-align: center;
}

.ib_post-prose pre,
.ib_post-prose code {
	font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
	background: var(--ib-stone-100);
	color: var(--ib-ink);
	border-radius: 6px;
}
.ib_post-prose code { padding: 2px 6px; font-size: 0.875em; }
.ib_post-prose pre {
	padding: 18px 20px;
	overflow-x: auto;
	font-size: 0.875rem;
	line-height: 1.6;
}
.ib_post-prose pre code { background: transparent; padding: 0; }

.ib_post-prose table {
	width: 100%;
	border-collapse: separate;
	border-spacing: 0;
	border: 1px solid var(--ib-stone-200);
	border-radius: var(--ib-radius-md);
	overflow: hidden;
	margin: 1.5em 0;
	font-size: 0.9375rem;
}
.ib_post-prose table th,
.ib_post-prose table td {
	padding: 12px 16px;
	border-bottom: 1px solid var(--ib-stone-100);
	text-align: left;
}
.ib_post-prose table th { background: var(--ib-warm-50); font-weight: 700; color: var(--ib-ink); }
.ib_post-prose table tr:last-child th,
.ib_post-prose table tr:last-child td { border-bottom: none; }

.ib_post-prose hr {
	border: none;
	height: 1px;
	background: var(--ib-stone-100);
	margin: 2.5em 0;
}

/* ---------- Author byline ---------- */
.ib_post-byline {
	margin-top: var(--ib-s-5);
	padding: var(--ib-s-3);
	background: var(--ib-warm-50);
	border: 1px solid var(--ib-stone-200);
	border-radius: var(--ib-radius-lg);
	display: flex;
	gap: 18px;
	align-items: flex-start;
	max-width: 820px;
	margin-left: auto;
	margin-right: auto;
}
.ib_post-byline-avatar {
	border-radius: 50%;
	flex: 0 0 72px;
	width: 72px;
	height: 72px;
}
.ib_post-byline-body { min-width: 0; }
.ib_post-byline-body .ib_eyebrow {
	font-size: 0.6875rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--ib-ink-muted);
	font-weight: 700;
	display: block;
	margin-bottom: 4px;
}
.ib_post-byline-body strong {
	font-family: var(--ib-font-display);
	font-size: 1.25rem;
	color: var(--ib-ink);
	display: block;
	margin-bottom: 4px;
}
.ib_post-byline-body p {
	color: var(--ib-ink-soft);
	font-size: 0.9375rem;
	margin: 0;
	line-height: 1.55;
}

/* ---------- Related posts ---------- */
.ib_related-posts {
	background: var(--ib-warm-50);
	border-top: 1px solid var(--ib-stone-100);
	padding-block: clamp(48px, 6vw, 80px);
}
.ib_related-head {
	text-align: center;
	margin-bottom: var(--ib-s-4);
}
.ib_related-head .ib_eyebrow {
	color: var(--ib-accent);
	font-size: 0.6875rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	font-weight: 700;
	display: block;
	margin-bottom: 8px;
}
.ib_related-head h2 {
	font-family: var(--ib-font-display);
	font-size: clamp(1.625rem, 2.5vw + 0.5rem, 2.25rem);
	color: var(--ib-ink);
	margin: 0;
}
.ib_related-posts .ib_grid-3 {
	display: grid;
	grid-template-columns: 1fr;
	gap: 22px;
}
@media (min-width: 700px) { .ib_related-posts .ib_grid-3 { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1000px) { .ib_related-posts .ib_grid-3 { grid-template-columns: 1fr 1fr 1fr; } }

/* =========================================================================
   HOMEPAGE (front-page.php)
   ========================================================================= */

.ib_home > section + section { /* sane default vertical rhythm */ }

/* ---------- Section heads (shared) — left-aligned for editorial feel ---------- */
.ib_home-section-head {
	max-width: 720px;
	margin: 0 0 var(--ib-s-4);
	text-align: left;
}
.ib_home-section-head .ib_eyebrow {
	display: inline-block;
	font-size: 0.6875rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--ib-accent);
	margin-bottom: 12px;
}
.ib_home-section-head h2 {
	font-family: var(--ib-font-display);
	font-size: clamp(1.875rem, 3.5vw + 0.5rem, 2.875rem);
	line-height: 1.1;
	letter-spacing: -0.02em;
	color: var(--ib-ink);
	margin: 0 0 14px;
}
.ib_home-section-head p {
	font-size: 1.0625rem;
	color: var(--ib-ink-soft);
	margin: 0;
	line-height: 1.55;
	max-width: 60ch;
}
.ib_home-section-head--light .ib_eyebrow { color: var(--ib-gold); }
.ib_home-section-head--light h2 { color: #fff; }
.ib_home-section-head--light p { color: rgba(255, 255, 255, 0.7); }
.ib_home-section-head--row {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	justify-content: space-between;
	gap: 12px;
	max-width: none;
}
@media (min-width: 700px) {
	.ib_home-section-head--row { flex-direction: row; align-items: flex-end; }
}

/* ============================ 1. HERO ============================ */
.ib_home-hero {
	position: relative;
	padding: clamp(48px, 7vw, 96px) 0 clamp(48px, 6vw, 80px);
	background:
		radial-gradient(circle at 88% 12%, var(--ib-warm-100) 0%, transparent 50%),
		linear-gradient(180deg, var(--ib-warm-50) 0%, var(--ib-paper) 100%);
	overflow: hidden;
	border-bottom: 1px solid var(--ib-stone-100);
}
.ib_home-hero::before {
	content: "";
	position: absolute;
	top: 0; left: 0; right: 0;
	height: 3px;
	background: var(--ib-grad-warm);
	background-size: 200% 100%;
	animation: ib_grad-shift 14s linear infinite;
}
.ib_home-hero-inner {
	display: grid;
	grid-template-columns: 1fr;
	gap: clamp(40px, 5vw, 64px);
	align-items: center;
	position: relative;
	z-index: 1;
}
@media (min-width: 900px) {
	.ib_home-hero-inner {
		grid-template-columns: 1.15fr 1fr;
	}
}
.ib_home-hero-copy { max-width: 560px; }
.ib_home-hero-eyebrow {
	display: inline-block;
	font-size: 0.6875rem !important;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--ib-accent);
	margin-bottom: 14px;
}
.ib_home-hero-title {
	font-family: var(--ib-font-display);
	font-size: clamp(2.25rem, 4.5vw + 0.5rem, 4rem);
	line-height: 1.02;
	letter-spacing: -0.025em;
	color: var(--ib-ink);
	margin: 0 0 18px;
}
.ib_home-hero-sub {
	font-size: clamp(1.0625rem, 0.5vw + 0.875rem, 1.1875rem);
	color: var(--ib-ink-soft);
	line-height: 1.55;
	margin: 0 0 var(--ib-s-3);
	max-width: 52ch;
}
.ib_home-hero-cta {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin-bottom: var(--ib-s-4);
}
.ib_home-hero-cta .ib_btn {
	padding: 14px 22px !important;
	font-size: 0.9375rem !important;
	font-weight: 700 !important;
	border-radius: 999px !important;
	display: inline-flex !important;
	align-items: center;
	gap: 8px;
}
.ib_home-hero-stats {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 18px;
	padding: 18px 0 0;
	border-top: 1px solid var(--ib-stone-200);
	margin: 0;
	max-width: 480px;
}
.ib_home-hero-stats > div { min-width: 0; }
.ib_home-hero-stats dt {
	font-family: var(--ib-font-display);
	font-size: clamp(1.25rem, 2vw + 0.5rem, 1.75rem);
	color: var(--ib-accent);
	letter-spacing: -0.01em;
	line-height: 1;
}
.ib_home-hero-stats dd {
	margin: 4px 0 0;
	font-size: 0.75rem;
	color: var(--ib-ink-muted);
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

/* Hero illustration */
.ib_home-hero-media {
	position: relative;
	min-height: 460px;
	aspect-ratio: 1 / 1;
	max-width: 560px;
	margin: 0 auto;
}
@media (min-width: 900px) {
	.ib_home-hero-media { min-height: 500px; }
}
.ib_home-hero-glow {
	position: absolute;
	inset: 10% -5% -5% 5%;
	background: radial-gradient(circle at 50% 50%, var(--ib-accent) 0%, var(--ib-gold) 30%, transparent 65%);
	opacity: 0.55;
	filter: blur(40px);
	pointer-events: none;
	animation: ib_glow_pulse 6s ease-in-out infinite;
}
@keyframes ib_glow_pulse {
	0%, 100% { opacity: 0.55; transform: scale(1); }
	50%      { opacity: 0.7;  transform: scale(1.04); }
}
.ib_home-hero-panel {
	position: absolute;
	top: 20%; left: 12%;
	width: 76%; aspect-ratio: 4 / 3;
	border-radius: 18px;
	background:
		linear-gradient(135deg, rgba(255,255,255,0.95) 0%, var(--ib-paper) 60%, var(--ib-warm-50) 100%);
	box-shadow:
		0 20px 50px rgba(245, 129, 36, 0.18),
		0 8px 20px rgba(0, 0, 0, 0.06),
		inset 0 0 0 1px rgba(255, 255, 255, 0.8);
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	padding: 22px;
	color: var(--ib-accent);
	overflow: hidden;
}
.ib_home-hero-panel-grid {
	position: absolute;
	inset: 14px;
	background-image:
		linear-gradient(rgba(245, 129, 36, 0.06) 1px, transparent 1px),
		linear-gradient(90deg, rgba(245, 129, 36, 0.06) 1px, transparent 1px);
	background-size: 24px 24px;
	border-radius: 10px;
	pointer-events: none;
}
.ib_home-hero-panel-label {
	position: relative;
	z-index: 1;
	display: flex;
	flex-direction: column;
	gap: 4px;
	color: var(--ib-ink);
	margin-top: auto;
	font-size: 0.875rem;
}
.ib_home-hero-panel-label .ib_eyebrow {
	font-size: 0.625rem !important;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--ib-accent);
}
.ib_home-hero-panel-label strong { font-weight: 700; color: var(--ib-ink); }
.ib_home-hero-waves {
	position: absolute;
	top: 22px; left: 22px; right: 22px;
	height: 60px;
	color: var(--ib-accent);
	z-index: 1;
}
/* Floating chips */
.ib_home-hero-chip {
	position: absolute;
	background: var(--ib-paper);
	border: 1px solid var(--ib-stone-200);
	border-radius: 14px;
	box-shadow: 0 12px 32px rgba(0, 0, 0, 0.08);
	padding: 10px 14px;
	font-size: 0.8125rem;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	z-index: 2;
	animation: ib_chip_float 4s ease-in-out infinite;
}
.ib_home-hero-chip--save {
	top: 12%; right: 0;
}
.ib_home-hero-chip--save .ib_home-hero-chip-num {
	font-family: var(--ib-font-display);
	font-size: 1.5rem;
	color: var(--ib-accent);
	line-height: 1;
}
.ib_home-hero-chip--save .ib_home-hero-chip-label {
	color: var(--ib-ink-muted);
	font-size: 0.6875rem;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}
.ib_home-hero-chip--star {
	bottom: 8%; left: 0;
	animation-delay: -2s;
	flex-direction: column;
	align-items: flex-start;
	gap: 2px;
}
.ib_home-hero-chip--star > span:first-child {
	color: var(--ib-gold);
	letter-spacing: 1px;
	font-size: 0.875rem;
}
.ib_home-hero-chip--star > span:last-child {
	color: var(--ib-ink);
	font-weight: 600;
	font-size: 0.8125rem;
}
@keyframes ib_chip_float {
	0%, 100% { transform: translateY(0); }
	50%      { transform: translateY(-6px); }
}

/* ============================ 2. TRUST STRIP ============================ */
.ib_home-trust {
	padding: clamp(28px, 3vw, 40px) 0;
	background: var(--ib-paper);
	border-bottom: 1px solid var(--ib-stone-100);
}
.ib_home-trust-grid {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: 1fr;
	gap: 14px;
}
@media (min-width: 540px)  { .ib_home-trust-grid { grid-template-columns: 1fr 1fr; } }
@media (min-width: 980px)  { .ib_home-trust-grid { grid-template-columns: repeat(4, 1fr); gap: 22px; } }
.ib_home-trust-grid li {
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 4px 0;
}
.ib_home-trust-icon {
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 48px; height: 48px;
	background: var(--ib-warm-50);
	border: 1px solid var(--ib-stone-200);
	color: var(--ib-accent);
	border-radius: 50%;
}
.ib_home-trust-grid li > div { display: flex; flex-direction: column; min-width: 0; line-height: 1.3; }
.ib_home-trust-grid li strong {
	color: var(--ib-ink);
	font-weight: 700;
	font-size: 0.9375rem;
}
.ib_home-trust-grid li span {
	color: var(--ib-ink-muted);
	font-size: 0.8125rem;
	margin-top: 2px;
}

/* =========================== 3. PER RUIMTE =========================== */
.ib_home-cats {
	padding: clamp(56px, 7vw, 96px) 0;
	background: var(--ib-paper);
}
.ib_home-cats-grid {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: 1fr;
	gap: 16px;
}
@media (min-width: 540px) { .ib_home-cats-grid { grid-template-columns: 1fr 1fr; } }
@media (min-width: 900px) { .ib_home-cats-grid { grid-template-columns: repeat(3, 1fr); } }
/* Tidii-style uniform image card.
 * Every tile is a portrait 4:5 card with a full-bleed image, a dark
 * gradient overlay from bottom (so white text always reads), a small
 * accent-icon chip in the top-left, and a name + CTA at the bottom.
 * On hover: image scales 1.06×, overlay darkens + tints orange, the
 * "Bekijk panelen →" CTA slides up into view. */
.ib_home-cat {
	position: relative;
	aspect-ratio: 4 / 5;
	border-radius: var(--ib-radius-lg);
	overflow: hidden;
	background:
		radial-gradient(circle at 70% 25%, rgba(245,129,36,0.32) 0%, transparent 55%),
		linear-gradient(135deg, var(--ib-ink) 0%, var(--ib-ink-soft) 100%);
	box-shadow: 0 4px 12px rgba(0,0,0,0.06);
	transition: transform .3s var(--ib-ease), box-shadow .3s var(--ib-ease);
}
.ib_home-cat:hover {
	transform: translateY(-4px);
	box-shadow: 0 24px 50px rgba(0,0,0,0.16);
}
.ib_home-cat a {
	position: absolute;
	inset: 0;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	padding: 22px;
	text-decoration: none;
	color: #fff;
	overflow: hidden;
}
/* The image — sits behind everything */
.ib_home-cat-img {
	position: absolute !important;
	inset: 0;
	width: 100% !important;
	height: 100% !important;
	object-fit: cover;
	display: block;
	z-index: 0;
	transition: transform .7s var(--ib-ease);
}
.ib_home-cat:hover .ib_home-cat-img { transform: scale(1.06); }
/* Dark gradient overlay — always present, darkens on hover */
.ib_home-cat a::before {
	content: "";
	position: absolute;
	inset: 0;
	background:
		linear-gradient(180deg, rgba(0,0,0,0.08) 0%, rgba(0,0,0,0.05) 35%, rgba(0,0,0,0.78) 100%);
	z-index: 1;
	transition: background .35s var(--ib-ease);
}
.ib_home-cat:hover a::before {
	background:
		linear-gradient(180deg, rgba(245,129,36,0.14) 0%, rgba(0,0,0,0.32) 40%, rgba(0,0,0,0.86) 100%);
}
/* Icon chip — top-left, consistent across all tiles */
.ib_home-cat-icon {
	position: absolute;
	top: 18px;
	left: 18px;
	z-index: 2;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px; height: 40px;
	background: rgba(255,255,255,0.92);
	border-radius: 10px;
	color: var(--ib-accent);
	backdrop-filter: blur(6px);
	-webkit-backdrop-filter: blur(6px);
	transition: transform .3s var(--ib-ease);
}
.ib_home-cat:hover .ib_home-cat-icon {
	transform: scale(1.06);
}
/* Body wrapper — name + CTA in a stack at the bottom */
.ib_home-cat-body {
	position: relative;
	z-index: 2;
}
.ib_home-cat-name {
	font-family: var(--ib-font-display);
	font-size: 1.625rem;
	line-height: 1.1;
	color: #fff !important;
	margin: 0;
	letter-spacing: -0.01em;
	transition: transform .3s var(--ib-ease);
}
/* Product count — inline next to the name, body font, slightly muted */
.ib_home-cat-count {
	display: inline;
	font-family: var(--ib-font-body);
	font-size: 0.9375rem;
	font-weight: 500;
	color: rgba(255, 255, 255, 0.65);
	letter-spacing: 0;
	text-transform: none;
	font-variant-numeric: tabular-nums;
	margin-left: 6px;
	vertical-align: baseline;
}
.ib_home-cat-cta {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-weight: 700;
	font-size: 0.875rem;
	color: var(--ib-gold);
	margin-top: 0;
	max-height: 0;
	opacity: 0;
	transform: translateY(8px);
	overflow: hidden;
	transition: max-height .35s var(--ib-ease), opacity .25s var(--ib-ease) .05s, transform .3s var(--ib-ease);
}
.ib_home-cat:hover .ib_home-cat-cta {
	max-height: 24px;
	opacity: 1;
	transform: translateY(0);
	margin-top: 10px;
}
.ib_home-cat-cta svg { transition: transform .2s var(--ib-ease); }
.ib_home-cat:hover .ib_home-cat-cta svg { transform: translateX(4px); }
.ib_home-cat:hover .ib_home-cat-name { transform: translateY(-2px); }

/* No-image variant: keep the same dark-warm fallback bg from the .ib_home-cat
 * rule; just bump the radial accent a touch so the tile doesn't look totally
 * uniform when many sit side by side. */
.ib_home-cat.no-image {
	background:
		radial-gradient(circle at 70% 25%, rgba(245,129,36,0.38) 0%, transparent 55%),
		radial-gradient(circle at 15% 90%, rgba(251,192,21,0.14) 0%, transparent 60%),
		linear-gradient(135deg, var(--ib-ink) 0%, #1a1a1a 100%);
}

.ib_home-cats-more { text-align: center; margin-top: var(--ib-s-4); }

/* =========================== 4. BESTSELLERS =========================== */
.ib_home-bestsellers {
	padding: clamp(56px, 7vw, 96px) 0;
	background: var(--ib-warm-50);
}
.ib_home-product-grid.products {
	display: grid !important;
	grid-template-columns: 1fr !important;
	gap: 22px !important;
	margin: 0 0 var(--ib-s-3) !important;
	padding: 0 !important;
	list-style: none !important;
}
@media (min-width: 600px) { .ib_home-product-grid.products { grid-template-columns: 1fr 1fr !important; } }
@media (min-width: 980px) { .ib_home-product-grid.products { grid-template-columns: repeat(4, 1fr) !important; } }
.ib_home-bestsellers-cta { text-align: center; margin-top: var(--ib-s-3); }

/* ========================= 5. WAAROM INFRAROOD =========================
 * Deep warm brown/black gradient — stays in the warm brand palette
 * (option B). Intimate, premium, no off-brand cool tones. */
.ib_home-why {
	position: relative;
	padding: clamp(64px, 8vw, 112px) 0;
	background:
		linear-gradient(135deg, #1a1410 0%, #2e2620 45%, #1a1410 100%);
	color: rgba(255, 255, 255, 0.85);
	overflow: hidden;
}
/* Very subtle vignette so edges feel softer */
.ib_home-why::before {
	content: "";
	position: absolute;
	inset: 0;
	background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.25) 0%, transparent 60%);
	pointer-events: none;
}
.ib_home-why > * { position: relative; z-index: 1; }
.ib_home-why-grid {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: 1fr;
	gap: 22px;
}
@media (min-width: 700px)  { .ib_home-why-grid { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1100px) { .ib_home-why-grid { grid-template-columns: repeat(4, 1fr); gap: 18px; } }
.ib_home-why-card {
	position: relative;
	background: rgba(255, 255, 255, 0.04);
	border: 1px solid rgba(255, 255, 255, 0.08);
	border-radius: var(--ib-radius-lg);
	padding: 28px 24px 24px;
	transition: border-color .18s var(--ib-ease), transform .18s var(--ib-ease), background .18s var(--ib-ease);
}
.ib_home-why-card:hover {
	border-color: var(--ib-accent);
	background: rgba(245, 129, 36, 0.06);
	transform: translateY(-3px);
}
.ib_home-why-num {
	position: absolute;
	top: 16px; right: 18px;
	font-family: var(--ib-font-display);
	font-size: 2.5rem;
	color: rgba(255, 255, 255, 0.08);
	line-height: 1;
	font-weight: 400;
}
.ib_home-why-icon {
	display: inline-flex;
	width: 52px; height: 52px;
	background: rgba(245, 129, 36, 0.15);
	color: var(--ib-accent);
	align-items: center;
	justify-content: center;
	border-radius: 14px;
	margin-bottom: 16px;
}
.ib_home-why-card h3 {
	font-family: var(--ib-font-display);
	font-size: 1.25rem;
	color: #fff;
	margin: 0 0 10px;
	line-height: 1.2;
}
.ib_home-why-card p {
	margin: 0;
	color: rgba(255, 255, 255, 0.7);
	font-size: 0.9375rem;
	line-height: 1.55;
}

/* ============================ 6. STATS ============================ */
.ib_home-stats {
	padding: clamp(48px, 6vw, 80px) 0;
	background: var(--ib-warm-50);
}
.ib_home-stats-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 24px;
	margin: 0;
	text-align: center;
}
@media (min-width: 800px) { .ib_home-stats-grid { grid-template-columns: repeat(4, 1fr); } }
.ib_home-stats-grid > div {
	padding: 12px;
	border-right: 1px solid var(--ib-stone-200);
}
.ib_home-stats-grid > div:last-child { border-right: none; }
@media (max-width: 799px) {
	.ib_home-stats-grid > div:nth-child(2n) { border-right: none; }
}
.ib_home-stats-grid dt {
	font-family: var(--ib-font-display);
	font-size: clamp(1.875rem, 3vw + 0.5rem, 2.625rem);
	color: var(--ib-accent);
	line-height: 1;
	letter-spacing: -0.01em;
}
.ib_home-stats-grid dd {
	margin: 8px 0 0;
	font-size: 0.8125rem;
	color: var(--ib-ink-soft);
	letter-spacing: 0.04em;
	text-transform: uppercase;
	font-weight: 600;
}

/* =========================== 7. BLOG TEASER =========================== */
.ib_home-blog {
	padding: clamp(56px, 7vw, 96px) 0;
	background: var(--ib-paper);
}
.ib_home-blog-all {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	color: var(--ib-accent) !important;
	font-weight: 700;
	font-size: 0.9375rem;
	text-decoration: none;
}
.ib_home-blog-all svg { transition: transform .15s var(--ib-ease); }
.ib_home-blog-all:hover svg { transform: translateX(3px); }
.ib_home-blog-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 22px;
}
/* Default (trio) — full 3-up grid at desktop. solo + duo stay LEFT-aligned
 * to match the editorial section-head alignment above the grid. */
@media (min-width: 700px) {
	.ib_home-blog-grid--trio { grid-template-columns: 1fr 1fr; }
	.ib_home-blog-grid--duo  { grid-template-columns: 1fr 1fr; max-width: 820px; }
	.ib_home-blog-grid--solo { grid-template-columns: minmax(0, 440px); justify-content: start; }
}
@media (min-width: 1000px) {
	.ib_home-blog-grid--trio { grid-template-columns: 1fr 1fr 1fr; }
}

/* ============================= 8. FAQ ============================= */
.ib_home-faq {
	padding: clamp(56px, 7vw, 96px) 0 clamp(40px, 5vw, 64px);
	background: var(--ib-warm-50);
}
.ib_home-faq-inner { max-width: 820px; }
.ib_home-faq-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 12px;
}
.ib_home-faq-item {
	background: var(--ib-paper);
	border: 1px solid var(--ib-stone-200);
	border-radius: var(--ib-radius-md);
	overflow: hidden;
	transition: border-color .15s var(--ib-ease), box-shadow .15s var(--ib-ease);
}
.ib_home-faq-item:has(details[open]) {
	border-color: var(--ib-accent);
	box-shadow: 0 6px 24px rgba(245, 129, 36, 0.08);
}
.ib_home-faq-item details > summary {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 16px;
	padding: 18px 22px;
	font-size: 1.0625rem;
	font-weight: 600;
	color: var(--ib-ink);
	cursor: pointer;
	list-style: none;
	transition: background .12s var(--ib-ease);
}
.ib_home-faq-item details > summary::-webkit-details-marker { display: none; }
.ib_home-faq-item details > summary:hover { background: var(--ib-warm-50); }
.ib_home-faq-item details[open] > summary { background: var(--ib-warm-50); }
.ib_home-faq-chevron {
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 32px; height: 32px;
	background: var(--ib-paper);
	border: 1px solid var(--ib-stone-200);
	border-radius: 50%;
	color: var(--ib-ink-soft);
	transition: transform .2s var(--ib-ease), background .12s var(--ib-ease), color .12s var(--ib-ease);
}
.ib_home-faq-item details[open] .ib_home-faq-chevron {
	transform: rotate(180deg);
	background: var(--ib-accent);
	border-color: var(--ib-accent);
	color: #fff;
}
.ib_home-faq-answer {
	padding: 6px 22px 22px;
	color: var(--ib-ink-soft);
	font-size: 0.9375rem;
	line-height: 1.65;
}
.ib_home-faq-answer p:first-child { margin-top: 0; }
.ib_home-faq-answer a { color: var(--ib-accent); }

/* =========================================================================
   HOMEPAGE — POLISH PASS
   ========================================================================= */

/* --- Section head accent line under the H2 (left-aligned with title) --- */
.ib_home-section-head h2::after {
	content: "";
	display: block;
	width: 48px;
	height: 3px;
	margin: 14px 0 0;
	background: var(--ib-grad-warm);
	background-size: 200% 100%;
	border-radius: 999px;
}
.ib_home-section-head--light h2::after {
	background: linear-gradient(90deg, var(--ib-accent) 0%, var(--ib-gold) 100%);
}

/* --- Hero illustration — refined panel ---
 * New elements: brand wordmark in the top corner, live-power readout chip,
 * a temp chip ("21°C comfort"). Makes the panel mock feel like a real
 * product instead of a generic rectangle. */
.ib_home-hero-panel-brand {
	position: absolute;
	top: 18px; left: 18px;
	z-index: 2;
	font-family: var(--ib-font-display);
	font-size: 1.125rem;
	color: var(--ib-accent);
	letter-spacing: -0.01em;
	line-height: 1;
}
.ib_home-hero-panel-brand span {
	font-size: 0.625rem;
	color: var(--ib-ink-muted);
	margin-left: 1px;
	font-family: var(--ib-font-body);
	font-weight: 600;
	vertical-align: top;
}
.ib_home-hero-panel-readout {
	position: absolute;
	top: 18px; right: 18px;
	z-index: 2;
	display: inline-flex;
	align-items: center;
	gap: 6px;
	background: var(--ib-paper);
	border: 1px solid var(--ib-stone-200);
	border-radius: 999px;
	padding: 4px 10px 4px 8px;
	font-size: 0.6875rem;
	font-weight: 700;
	color: var(--ib-ink);
	letter-spacing: 0.04em;
}
.ib_home-hero-panel-readout-dot {
	width: 8px; height: 8px;
	border-radius: 50%;
	background: var(--ib-accent);
	box-shadow: 0 0 0 0 rgba(245, 129, 36, 0.5);
	animation: ib_pulse-dot 1.8s ease-in-out infinite;
}
@keyframes ib_pulse-dot {
	0%, 100% { box-shadow: 0 0 0 0 rgba(245, 129, 36, 0.6); }
	50%      { box-shadow: 0 0 0 6px rgba(245, 129, 36, 0); }
}

/* Third floating chip — temperature reading */
.ib_home-hero-chip--temp {
	top: 50%;
	right: -8%;
	transform: translateY(-50%);
	animation-delay: -1.2s;
}
.ib_home-hero-chip--temp .ib_home-hero-chip-temp-dot {
	width: 8px; height: 8px;
	border-radius: 50%;
	background: var(--ib-accent);
	display: inline-block;
	margin-right: 2px;
}
.ib_home-hero-chip--temp strong {
	font-family: var(--ib-font-display);
	font-size: 1.0625rem;
	color: var(--ib-accent);
}

/* --- Per ruimte: stronger hover state --- */
.ib_home-cat {
	border: 1px solid transparent;
}
.ib_home-cat:hover { border-color: var(--ib-accent); }
.ib_home-cat::after {
	content: "";
	position: absolute;
	top: 0; right: 0; bottom: 0; left: 0;
	background: linear-gradient(135deg, transparent 50%, rgba(245, 129, 36, 0.06) 100%);
	opacity: 0;
	pointer-events: none;
	transition: opacity .22s var(--ib-ease);
}
.ib_home-cat:hover::after { opacity: 1; }

/* Slaapkamer (dark) tile — bump CTA contrast for legibility */
.ib_home-cat--ink .ib_home-cat-cta {
	color: var(--ib-gold) !important;
	font-weight: 800;
}
.ib_home-cat--ink:hover { border-color: var(--ib-gold); }
.ib_home-cat--gold .ib_home-cat-cta { color: var(--ib-ink) !important; }

/* --- Stats: mini icons next to each big number --- */
.ib_home-stats-grid > div {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 4px;
}
.ib_home-stats-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px; height: 40px;
	background: var(--ib-paper);
	border: 1px solid var(--ib-stone-200);
	border-radius: 50%;
	color: var(--ib-accent);
	margin-bottom: 8px;
}

/* --- Reveal-on-scroll: stagger sections slightly so they don't all
 *     animate in at the same instant when long scrolls trigger many at once. */
section[data-reveal] {
	opacity: 0;
	transform: translateY(20px);
	transition: opacity .55s var(--ib-ease), transform .55s var(--ib-ease);
}
section[data-reveal].is-visible {
	opacity: 1;
	transform: none;
}
@media (prefers-reduced-motion: reduce) {
	section[data-reveal] {
		opacity: 1 !important;
		transform: none !important;
		transition: none !important;
	}
}

/* =========================================================================
   CONTENT TONE CONTROLS — A+ / reset floating cluster
   ========================================================================= */

/* The scale variable, applied ONLY to editorial content (never to nav,
 * header, footer, CTAs, etc — those stay at their designed sizes). */
:root { --ib-content-scale: 1; }

.ib_post-prose,
.entry-content,
.ib_archive-body,
.ib_cat-hero-intro,
.woocommerce-Tabs-panel,
.ib_specs-table,
.ib_specs-custom,
.single-product .product .summary,
.single-product .woocommerce-product-details__short-description,
.ib_downloads-list {
	font-size: calc(1em * var(--ib-content-scale));
	transition: font-size .25s var(--ib-ease);
}

/* Floating control cluster */
.ib_tone-controls {
	position: fixed;
	right: 18px;
	bottom: 18px;
	z-index: 40;
	display: inline-flex;
	gap: 4px;
	padding: 5px;
	background: rgba(255, 255, 255, 0.94);
	border: 1px solid var(--ib-stone-200);
	border-radius: 999px;
	box-shadow: 0 10px 28px rgba(0, 0, 0, 0.10);
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
}
.ib_tone-btn {
	width: 38px;
	height: 38px;
	border-radius: 50%;
	background: transparent;
	border: none;
	color: var(--ib-ink-soft);
	cursor: pointer;
	display: grid;
	place-items: center;
	font-family: var(--ib-font-body);
	font-size: 0.9375rem;
	font-weight: 700;
	transition: background .15s var(--ib-ease), color .15s var(--ib-ease), transform .15s var(--ib-ease);
	padding: 0;
}
.ib_tone-btn:hover {
	background: var(--ib-warm-50);
	color: var(--ib-accent);
}
.ib_tone-btn:active { transform: scale(0.94); }
.ib_tone-btn sup {
	font-size: 0.625em;
	margin-left: 1px;
	font-weight: 800;
}
/* Highlight the reset button when text is currently toned up — gives
 * a quiet "you can undo this" affordance. */
html.ib-toned .ib_tone-btn--reset {
	color: var(--ib-accent);
	background: var(--ib-accent-soft);
}

/* Don't compete with WP admin bar on logged-in users */
.admin-bar .ib_tone-controls { bottom: 60px; }

/* Hide on print */
@media print { .ib_tone-controls { display: none !important; } }

/* "Built by" credit in footer legal tier */
.ib_footer-builtby {
	color: rgba(255, 255, 255, 0.4);
	margin-left: 4px;
}
.ib_footer-builtby a {
	color: rgba(255, 255, 255, 0.65);
	text-decoration: none;
	border-bottom: 1px dotted rgba(255, 255, 255, 0.25);
	transition: color .15s var(--ib-ease), border-color .15s var(--ib-ease);
}
.ib_footer-builtby a:hover {
	color: var(--ib-accent);
	border-bottom-color: var(--ib-accent);
}
