/* Nature Boy Digital: WooCommerce cart / checkout / product page and shared content styles. */

/* Content tables */
.nbd-table-wrap { overflow-x: auto; border: 1px solid var(--nbd-line); border-radius: 6px; background: #fff; }
.nbd-table { width: 100%; border-collapse: collapse; margin: 0; font-size: 1.05rem; border: 0; }
.nbd-table th, .nbd-table td { padding: 12px 16px; text-align: left; border: 0; border-bottom: 1px solid var(--nbd-line); background: transparent; }
.nbd-table thead th { background: var(--nbd-paper); font: 600 1.05rem/1.2 var(--nbd-font-head); letter-spacing: .06em; text-transform: uppercase; }
.nbd-table tbody tr:last-child > * { border-bottom: 0; }
.nbd-table .num { text-align: right; white-space: nowrap; }
.nbd-table tbody tr:nth-child(odd) > * { background: transparent; }
.nbd-note { background: #fff8d6; border: 1px solid #e6d66b; border-radius: 6px; padding: 12px 16px; color: #4a4210; }
.nbd-prose ul { padding-left: 1.2em; }
.nbd-prose li { margin-bottom: .4em; }

/* Numbered steps (also used on Pricing) */
.nbd-step-num .elementor-heading-title { display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; border-radius: 50%; background: var(--nbd-ink); }

/* Single photo page */
.nbd-product-cat { margin: 0 0 4px; color: var(--nbd-ink-3); }
.nbd-product-cat a { color: var(--nbd-ink-2); }
.nbd-product-info .from-price { font-size: 1.1rem; margin: 0; }
.nbd-product-details h2 { font: 600 1.45rem/1.15 var(--nbd-font-head); margin: 8px 0 8px; }
.nbd-product-details ul { padding-left: 1.2em; margin: 0 0 16px; }
.nbd-related-title { font: 600 2.2rem/1.1 var(--nbd-font-head); margin: 0 0 8px; }
.nbd-related-more { margin-top: 28px; }
.single-product .elementor-widget-woocommerce-product-images .woocommerce-product-gallery { opacity: 1 !important; }
.single-product .woocommerce-product-gallery__image img { border-radius: 6px; background: #e7e3da; }
.single-product .flex-control-thumbs { display: none; }
.single-product .woocommerce-variation-add-to-cart, .single-product table.variations { display: none; }
.elementor-widget-woocommerce-product-add-to-cart .quantity { display: none; }

/* Woo pages: title + width */
.woocommerce-cart .site-main, .woocommerce-checkout .site-main, .woocommerce-account .site-main { max-width: 1240px; margin: 0 auto; padding: 32px 32px 88px; }
@media (max-width: 767px) { .woocommerce-cart .site-main, .woocommerce-checkout .site-main { padding: 20px 16px 56px; } }
.woocommerce-cart .page-header .entry-title, .woocommerce-checkout .page-header .entry-title {
	font: 600 clamp(2.2rem, 5vw, 3.2rem)/1.05 var(--nbd-font-head); text-transform: uppercase; letter-spacing: .03em; margin: 0 0 24px; max-width: none; }

/* WooCommerce blocks: cart + checkout */
.wc-block-cart, .wc-block-checkout { font-family: var(--nbd-font-body); color: var(--nbd-ink); }
.wc-block-cart .wc-block-cart__main, .wc-block-checkout__main { background: #fff; border: 1px solid var(--nbd-line); border-radius: 6px; padding: 8px 24px 24px; }
.wc-block-cart .wc-block-cart__sidebar, .wc-block-checkout__sidebar { background: #fff; border: 1px solid var(--nbd-line); border-radius: 6px; padding: 24px; align-self: flex-start; }
@media (max-width: 767px) { .wc-block-cart .wc-block-cart__main, .wc-block-checkout__main { padding: 8px 14px 16px; } }
.wc-block-cart-items__header, .wc-block-cart__totals-title, .wc-block-components-checkout-step__title, .wc-block-components-title {
	font-family: var(--nbd-font-head) !important; font-weight: 600 !important; text-transform: uppercase; letter-spacing: .06em; }
.wc-block-components-product-name { font: 600 1.25rem/1.2 var(--nbd-font-head) !important; color: var(--nbd-ink) !important; text-decoration: none !important; }
.wc-block-components-product-name:hover { text-decoration: underline !important; }
.wc-block-cart-item__image img { border-radius: 4px; background: #e7e3da; }
.wc-block-components-product-details { font-size: .98rem; color: var(--nbd-ink-2); }
.wc-block-components-totals-footer-item .wc-block-components-totals-item__value,
.wc-block-components-totals-footer-item .wc-block-components-totals-item__label { font-size: 1.4rem; font-weight: 600; }
.wc-block-components-button:not(.is-link), .wc-block-cart__submit-button, .wc-block-components-checkout-place-order-button {
	background: var(--nbd-ink) !important; color: #fff !important; border: 2px solid var(--nbd-ink) !important; border-radius: 6px !important;
	min-height: 52px; font: 600 1.1rem/1 var(--nbd-font-body) !important; text-decoration: none !important; }
.wc-block-components-button:not(.is-link):hover { background: #000 !important; border-color: #000 !important; }
.wc-block-components-text-input input, .wc-block-components-combobox .wc-block-components-combobox-control input, .wc-blocks-components-select__select, .wc-block-components-textarea {
	border-color: #8c877d !important; border-radius: 6px !important; }
.wc-block-components-text-input input:focus, .wc-blocks-components-select__select:focus { box-shadow: 0 0 0 2px var(--nbd-focus) !important; border-color: var(--nbd-focus) !important; }
.wc-block-components-radio-control__option--checked-option-highlighted, .wc-block-components-radio-control-accordion-option--checked-option-highlighted { box-shadow: inset 0 0 0 2px var(--nbd-ink) !important; border-radius: 6px; }
.wc-block-cart a, .wc-block-checkout a { color: var(--nbd-ink); }
.wc-block-components-quantity-selector { border-color: #8c877d !important; border-radius: 6px !important; }
.wc-block-cart__empty-cart__title { font-family: var(--nbd-font-head); }

/* Elementor form (Contact) */
.elementor-form .elementor-field-textual { border-color: #8c877d !important; border-radius: 6px !important; min-height: 48px; background: #fff !important; }
.elementor-form .elementor-field-textual:focus { box-shadow: 0 0 0 2px var(--nbd-focus) !important; border-color: var(--nbd-focus) !important; }
.elementor-form .elementor-field-label { font-weight: 600; }

/* Align Hello's page header/content with the boxes on Woo pages. */
.woocommerce-cart .site-main .page-header, .woocommerce-checkout .site-main .page-header,
.woocommerce-cart .site-main .page-content, .woocommerce-checkout .site-main .page-content { max-width: none; padding-left: 0; padding-right: 0; margin-left: 0; margin-right: 0; width: 100%; }

/* Order received (thank you) */
.woocommerce-order-received .wc-block-order-confirmation-status, .woocommerce-order-received .woocommerce-thankyou-order-received {
	font: 600 clamp(1.8rem, 4vw, 2.6rem)/1.1 var(--nbd-font-head); text-transform: uppercase; letter-spacing: .03em; }
.woocommerce-order-received .wc-block-order-confirmation-summary, .woocommerce-order-received .wc-block-order-confirmation-totals-wrapper,
.woocommerce-order-received .wc-block-order-confirmation-billing-wrapper, .woocommerce-order-received .wc-block-order-confirmation-shipping-wrapper,
.woocommerce-order-received .woocommerce-order-overview, .woocommerce-order-received .woocommerce-order-details {
	background: #fff; border: 1px solid var(--nbd-line); border-radius: 6px; padding: 20px 24px; margin-bottom: 20px; }
.woocommerce-order-received h2, .woocommerce-order-received h3 { font-family: var(--nbd-font-head); font-weight: 600; }
.wc-block-cart__empty-cart__title + p a, .wc-block-cart .wp-block-woocommerce-empty-cart-block a.wp-block-button__link { background: var(--nbd-ink); color: #fff; border-radius: 6px; }

/* Photo page: keep the picker in view beside the photo + details on desktop. */
@media (min-width: 1025px) {
	.single-product .nbd-product-buy { position: sticky; top: 104px; align-self: start; }
	.admin-bar.single-product .nbd-product-buy { top: 136px; }
}

/* ---------- Responsive fixes ---------- */
/* Header on tablet/phone: logo … cart, menu (no box around the cart). */
.nbd-header .elementor-menu-cart__toggle .elementor-button { border: 0 !important; background: transparent !important; padding: 10px !important; }
@media (max-width: 1024px) {
	.nbd-header .elementor-widget-nav-menu { order: 3; flex-grow: 0 !important; }
	.nbd-header .elementor-widget-woocommerce-menu-cart { order: 2; margin-left: auto; }
	.nbd-header .elementor-menu-toggle { padding: 10px; }
}
/* Photo page: no extra space under the photo; tighter stacking on tablet/phone. */
.single-product .woocommerce-product-gallery { margin-bottom: 0 !important; }
@media (max-width: 1024px) {
	.single-product .e-grid:has(.elementor-widget-woocommerce-product-images) { row-gap: 20px !important; }
	.single-product .nbd-product-buy { position: static; }
}
/* Gallery tabs: swipeable, no visible scrollbar. */
.gallery-tabs { scrollbar-width: none !important; -webkit-overflow-scrolling: touch; }
.gallery-tabs::-webkit-scrollbar { display: none; }
/* Compact one-line order bar on phones. */
@media (max-width: 600px) {
	.order-bar { flex-wrap: nowrap !important; padding: 6px 6px 6px 12px !important; gap: 8px !important; }
	.order-bar strong { display: none; }
	.order-bar p { font-size: .95rem; line-height: 1.2; }
	.order-bar .nbd-btn { min-height: 40px !important; padding: 0 12px !important; font-size: .92rem !important; white-space: nowrap; }
}
.elementor-form .elementor-field-group .elementor-field-label, .elementor-form .elementor-field, .elementor-form .elementor-button { font-family: var(--nbd-font-body) !important; }
.elementor-form .elementor-field-label { font-size: 1.05rem; color: var(--nbd-ink); }
.elementor-form .elementor-button { font-weight: 600; font-size: 1.05rem; }
/* Cart/checkout blocks are "alignwide" (negative margins) — keep them inside the content area. */
.woocommerce-cart .wp-block-woocommerce-cart.alignwide, .woocommerce-checkout .wp-block-woocommerce-checkout.alignwide,
.woocommerce-cart .alignwide, .woocommerce-checkout .alignwide { margin-left: 0 !important; margin-right: 0 !important; max-width: 100% !important; width: auto !important; }
@media (max-width: 767px) { .woocommerce-cart .site-main, .woocommerce-checkout .site-main { padding-left: 16px !important; padding-right: 16px !important; } }

/* ---------- Smaller headlines (non-Elementor parts) ---------- */
.woocommerce-cart .page-header .entry-title, .woocommerce-checkout .page-header .entry-title { font-size: clamp(2rem, 4vw, 2.6rem) !important; }
.nbd-related-title { font-size: 1.8rem !important; }
.nbd-product-details h2 { font-size: 1.3rem !important; }

/* ---------- Contact form spacing ---------- */
.elementor-form .elementor-field-group > .elementor-field-label { display: block; margin-bottom: 8px !important; line-height: 1.3; }
.elementor-form .elementor-field-group { margin-bottom: 20px; }
/* Checkbox: show its text once, beside the box. */
.elementor-form .elementor-field-type-acceptance > .elementor-field-label { display: none !important; }
.elementor-form .elementor-field-type-acceptance .elementor-field-subgroup label { font-size: 1.05rem; padding-left: 6px; cursor: pointer; }
.elementor-form .elementor-field-type-acceptance input[type="checkbox"] { width: 20px; height: 20px; accent-color: var(--nbd-ink); vertical-align: middle; }

/* Header: menu items sit on the vertical centre of the bar. */
.nbd-header .elementor-widget-nav-menu, .nbd-header .elementor-widget-nav-menu > .elementor-widget-container { display: flex; align-items: center; height: 100%; }
.nbd-header .elementor-nav-menu--main .elementor-nav-menu > li > a { padding-top: 14px; padding-bottom: 14px; line-height: 1; }
.nbd-header .elementor-widget-image img { display: block; }
/* Taller header -> sticky bars sit below it. */
.order-bar { top: 116px; } .admin-bar .order-bar { top: 148px; }
@media (min-width: 1025px) { .single-product .nbd-product-buy { top: 124px; } .admin-bar.single-product .nbd-product-buy { top: 156px; } }
@media (max-width: 1024px) { .order-bar { top: 96px; } .admin-bar .order-bar { top: 142px; } }
@media (max-width: 767px) { .order-bar { top: 84px; } .admin-bar .order-bar { top: 130px; } }

/* Shipping per size in the product size table */
.nbd-table .ship-add { display: block; font-size: .8rem; font-weight: 400; color: var(--nbd-ink-3); }

/* Cart caption */
.nbd-ship-caption { margin: 10px 0 0; font-size: .85rem; color: var(--nbd-ink-3); }
