/* Baskets 'N' Joy look: black & white, Poppins, centred logo, square buttons.
   Loaded after style.css and overrides it. */
:root {
	--bnj-ink: #111111;
	--bnj-muted: #5f5f5f;
	--bnj-line: #e3e3e3;
	--bnj-soft: #f1f1f1;
	--bnj-accent: #111111;
	--bnj-accent-dark: #111111;
	--bnj-gold: #f4a51c;
	--bnj-radius: 0px;
	--bnj-font: "Poppins", -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
	--bnj-serif: "Poppins", -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
}
body { font-size: 15px; }
h1, h2, h3, h4 { font-weight: 500; letter-spacing: .01em; }
a { color: var(--bnj-ink); }
a:hover { color: #555; }

/* Buttons: square, black, uppercase */
.bnj-button, .button, button[type=submit], input[type=submit], .wpcf7-submit,
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button, .woocommerce #respond input#submit,
.bnj-signup__row button {
	border-radius: 0 !important; text-transform: uppercase; font-size: .82rem; font-weight: 500; letter-spacing: .04em; min-height: 42px;
	background: #111; border-color: #111; color: #fff !important;
}
.bnj-button:hover, .button:hover, button[type=submit]:hover, .woocommerce a.button:hover, .woocommerce button.button:hover { background: #333; border-color: #333; }
.bnj-button--ghost { background: #fff; color: #111 !important; border: 1px solid #111; }
.bnj-button--ghost:hover { color: #fff !important; }
.bnj-button--ghost:hover { background: #111; color: #fff; }
.woocommerce a.button.alt, .woocommerce button.button.alt, .single_add_to_cart_button, .woocommerce .checkout-button { background: #111 !important; border-color: #111 !important; }
input[type=text], input[type=email], input[type=tel], input[type=password], input[type=number], input[type=search], select, textarea, .bnj-signup__row input { border-radius: 0 !important; border-color: #cfcfcf; }

/* Top bar: black, small uppercase */
.topbar { background: #000; border: 0; color: #fff; font-size: 11px; text-transform: uppercase; letter-spacing: .03em; }
.topbar .wrap { min-height: 34px; padding-top: 4px; padding-bottom: 4px; }
.topbar a { color: #fff; }
.topbar a:hover { color: #ccc; }
.topbar__contact { gap: 22px; }
.topbar__social { display: flex; gap: 10px; margin-right: auto; margin-left: 40px; }
.topbar__social svg { width: 14px; height: 14px; fill: #fff; display: block; }
.topbar .menu { gap: 0; }
.topbar .menu li + li { border-left: 1px solid #444; }
.topbar .menu a { padding: 0 10px; }

/* Header: menus left, logo centred, account/search/cart right. Sticky. */
.site-header { border-bottom: 1px solid var(--bnj-line); transition: box-shadow .2s; }
.site-header.is-stuck { box-shadow: 0 2px 12px rgba(0,0,0,.08); }
.site-header__bar { display: grid; grid-template-columns: 1fr auto 1fr; gap: 20px; min-height: 84px; transition: min-height .2s; }
.site-header.is-stuck .site-header__bar { min-height: 62px; }
.site-header.is-stuck .site-logo img { max-height: 44px; }
.header-left { display: flex; align-items: center; }
.header-logo { display: flex; justify-content: center; }
.site-logo img { max-height: 62px; transition: max-height .2s; }
.header-right { display: flex; align-items: center; justify-content: flex-end; gap: 14px; font-size: 12px; text-transform: uppercase; letter-spacing: .03em; }
.header-right a { color: #111; text-decoration: none; }
.header-cart { display: inline-flex; align-items: center; gap: 6px; position: relative; }
.header-cart svg, .header-search summary svg { width: 20px; height: 20px; display: block; }
.bnj-cart-count { position: absolute; top: -6px; left: 12px; right: auto; background: #111; min-width: 16px; height: 16px; line-height: 16px; font-size: 10px; }
.bnj-cart-total { font-size: 12px; margin-left: 4px; }

.header-search { position: relative; }
.header-search summary { list-style: none; cursor: pointer; padding: 6px; }
.header-search summary::-webkit-details-marker { display: none; }
.header-search .site-search { position: absolute; right: 0; top: calc(100% + 12px); width: 340px; max-width: 80vw; display: flex; gap: 0; background: #fff; border: 1px solid var(--bnj-line); padding: 10px; box-shadow: 0 10px 30px rgba(0,0,0,.08); z-index: 70; margin: 0; }
.header-search .site-search input[type=search] { border-radius: 0; background: #fff; padding: 0 12px; }
.header-search .site-search button { position: static; transform: none; width: auto; padding: 0 16px; background: #111; color: #fff; border-radius: 0; min-height: 44px; font-size: 12px; text-transform: uppercase; }

/* Main menu sits in the left column */
.main-nav { border: 0; }
.main-nav .menu > li > a { font-size: 11.5px; font-weight: 500; text-transform: uppercase; color: #444; padding: 12px 18px 12px 0; letter-spacing: .03em; }
.main-nav .sub-menu { border-radius: 0; min-width: 240px; }
.main-nav .sub-menu a { font-size: 13px; }

/* Home page: drop the old empty spacer section under the header */
.home .site-main { padding-top: 24px; }
.home-content .elementor-element-6eb6e14 { display: none !important; }

/* Content: pages use the full width, blog posts a centred reading column */
.entry-content { margin-left: auto; margin-right: auto; }
.page .entry-content { max-width: none; }
.single-post .entry-content { max-width: 860px; }

/* Content */
.page-header { border-bottom: 0; text-align: center; margin-bottom: 26px; }
.page-title { font-size: clamp(1.5rem, 1.2rem + 1vw, 2rem); text-transform: uppercase; letter-spacing: .04em; }
.breadcrumbs, .woocommerce-breadcrumb { text-align: center; }
.section-head h2, .home-section h2.line-title { display: flex; align-items: center; gap: 16px; font-size: 1rem; text-transform: uppercase; letter-spacing: .04em; color: #555; font-weight: 400; }
.section-head h2::before, .section-head h2::after { content: ""; flex: 1; height: 1px; background: #bdbdbd; }
.section-head { max-width: none; }
.eyebrow { display: none; }
.hero { border-radius: 0; }
.usp div, .cat-grid a, .bnj-review, .bnj-contact-item, .bnj-faq details, .widget, .post-card, .notice-final, .footer-signup,
ul.products li.product, .woocommerce .cart-collaterals .cart_totals, .woocommerce-checkout-review-order, .woocommerce table.shop_table { border-radius: 0 !important; }
.notice-final { background: #000; color: #fff; border-color: #000; font-weight: 600; text-transform: uppercase; }
.notice-final a, .notice-final strong { color: #fff; }
.bnj-stars { color: #f4a51c; }
.logo-row img { filter: grayscale(1); }

/* Product cards: square, like the old category tiles */
ul.products li.product { border-color: #ececec; }
ul.products li.product .woocommerce-loop-product__title, ul.products li.product .woocommerce-loop-category__title { font-weight: 500 !important; text-transform: uppercase; font-size: .86rem !important; letter-spacing: .02em; }
ul.products li.product .price { color: #111 !important; font-weight: 500; }
.onsale { background: #111; border-radius: 0; }

/* Footer: light grey with column dividers */
.site-footer { background: #efefef; border-top: 0; font-size: 13px; }
.footer-grid > div + div { border-left: 1px solid #c9c9c9; padding-left: 26px; }
.footer-grid h2 { color: #333; font-weight: 500; font-size: 12px; }
.social a { border-radius: 0; }

/* Mobile */
@media (max-width: 860px) {
	.site-header__bar { grid-template-columns: auto 1fr auto; min-height: 64px; }
	.header-logo { justify-content: center; }
	.site-logo img { max-height: 46px; }
	.header-account, .bnj-cart-total { display: none; }
	.main-nav { position: absolute; left: 0; right: 0; top: 100%; background: #fff; border-top: 1px solid var(--bnj-line); border-bottom: 1px solid var(--bnj-line); padding: 6px 20px 14px; display: none; z-index: 60; }
	.main-nav.is-open { display: block; }
	.main-nav .menu > li > a { padding: 12px 0; font-size: 13px; }
	.topbar__social { display: none; }
	.topbar .menu { display: none; }
	.topbar__contact { width: 100%; justify-content: center; }
	.footer-grid > div + div { border-left: 0; padding-left: 0; }
}

/* Home page (no page builder) */
.bnj-promo { display: grid; grid-template-columns: 1fr 1fr; background: #000; color: #fff; margin: 0 0 18px; }
.bnj-promo__media { position: relative; min-height: 320px; overflow: hidden; }
.bnj-promo__media video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.bnj-promo__form { display: flex; align-items: center; justify-content: center; padding: 40px 28px; }
.bnj-promo .bnj-signup { width: 100%; }
.bnj-promo .bnj-signup__title { color: #fff; font-size: clamp(1.2rem, 1rem + .8vw, 1.6rem); font-weight: 500; letter-spacing: .02em; margin-bottom: 1.2em; }
.bnj-promo .bnj-signup__row { flex-direction: column; align-items: center; }
.bnj-promo .bnj-signup__row input { width: 100%; flex: none; border-radius: 0; border: 0; }
.bnj-promo .bnj-signup__row button { background: #fff !important; color: #111 !important; border-radius: 0 !important; margin-top: 4px; }
.bnj-promo .bnj-signup__row button:hover { background: #ddd !important; }
.bnj-season { font-size: 1.05rem; margin: 0 0 10px; }
.bnj-block { padding: 34px 0 10px; }
.line-title { display: flex; align-items: center; gap: 16px; font-size: 1.15rem; text-transform: uppercase; letter-spacing: .04em; color: #555; font-weight: 400; margin: 0 0 26px; }
.line-title::before, .line-title::after { content: ""; flex: 1; height: 1px; background: #bdbdbd; }
.bnj-cat-buttons { list-style: none; margin: 28px 0 0; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
.bnj-cat-buttons a { display: flex; align-items: center; justify-content: center; min-height: 52px; padding: 8px 10px; border: 1px solid #111; color: #111; text-align: center; text-decoration: none; font-size: .9rem; font-weight: 500; letter-spacing: .03em; transition: background .15s, color .15s; }
.bnj-cat-buttons a:hover { background: #111; color: #fff; }
.bnj-intro { text-align: center; max-width: 900px; margin: 0 auto; }
.bnj-intro h1 { font-size: 1.15rem; text-transform: uppercase; letter-spacing: .05em; font-weight: 500; margin: 0 0 12px; }
.bnj-center { text-align: center; }
.bnj-review figcaption { color: #111; font-size: 1rem; margin: 6px 0 8px; }
.bnj-stars span { color: #555; font-size: .85rem; margin-left: 4px; }
.bnj-final { background: #000; color: #fff; text-align: center; font-weight: 600; font-size: 1.1rem; letter-spacing: .05em; text-transform: uppercase; padding: 18px; margin: 40px 0 0; }
@media (max-width: 860px) {
	.bnj-promo { grid-template-columns: 1fr; }
	.bnj-promo__media { min-height: 220px; }
	.bnj-cat-buttons { grid-template-columns: repeat(2, 1fr); }
}
