/* JB – site-wide purchase flow styles: header mini-cart, attendee registration, cart page */

:root {
	--jb-ink: #111418;
	--jb-muted: #6b7079;
	--jb-line: #e6e1da;
	--jb-field: #d9d3ca;
	--jb-bg: #f6f4f1;
}

/* ===================== Header mini-cart (shopping bag) ===================== */
.top-icon-wrap #shopdock #cart-wrap {
	width: 380px;
	right: -6px;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 18px !important;
	overflow: hidden;
	background: #fff !important;
	color: var(--jb-ink) !important;
	box-shadow: 0 30px 60px -24px rgba(17, 20, 24, 0.45), 0 0 0 1px rgba(17, 20, 24, 0.06) !important;
	text-align: left;
}
.top-icon-wrap #shopdock #cart-list {
	padding: 6px 18px !important;
	max-height: min(56vh, 430px) !important;
	overflow-y: auto !important;
	overscroll-behavior: contain;
}
.top-icon-wrap #shopdock .jspContainer,
.top-icon-wrap #shopdock .jspPane {
	position: static !important;
	width: 100% !important;
	height: auto !important;
	top: 0 !important;
	left: 0 !important;
	overflow: visible !important;
}
.top-icon-wrap #shopdock .jspVerticalBar { display: none !important; }

.top-icon-wrap #shopdock #cart-wrap .product {
	display: grid !important;
	grid-template-columns: 60px minmax(0, 1fr) auto;
	align-items: center;
	gap: 12px;
	margin: 0 !important;
	padding: 14px 0 !important;
	border-bottom: 1px solid var(--jb-line) !important;
	overflow: visible !important;
}
.top-icon-wrap #shopdock #cart-wrap .product:last-child { border-bottom: 0 !important; }
.top-icon-wrap #shopdock #cart-wrap .product-image {
	float: none !important;
	width: 60px !important;
	margin: 0 !important;
}
.top-icon-wrap #shopdock #cart-wrap .product-image img {
	display: block;
	width: 60px !important;
	height: 60px !important;
	object-fit: cover;
	border-radius: 12px;
}
.top-icon-wrap #shopdock #cart-wrap .product-details { color: var(--jb-ink) !important; overflow: hidden; }
.top-icon-wrap #shopdock #cart-wrap .product-title {
	margin: 0 0 4px !important;
	font-size: 14px !important;
	font-weight: 700 !important;
	line-height: 1.3 !important;
	letter-spacing: 0 !important;
	text-transform: none !important;
}
.top-icon-wrap #shopdock #cart-wrap .product-title a,
.top-icon-wrap #shopdock #cart-wrap .product-title a:hover {
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	color: var(--jb-ink) !important;
	text-decoration: none !important;
}
.top-icon-wrap #shopdock #cart-wrap .product-price {
	margin: 0 !important;
	font-size: 14px !important;
	font-weight: 600 !important;
	color: var(--jb-muted) !important;
}
.top-icon-wrap #shopdock #cart-wrap .product-actions {
	display: flex !important;
	flex-direction: column;
	align-items: flex-end;
	gap: 8px;
}
.top-icon-wrap #shopdock #cart-wrap .quantity-count.ms-qty {
	display: inline-flex !important;
	align-items: center;
	height: 30px;
	border: 1px solid var(--jb-field) !important;
	border-radius: 999px !important;
	overflow: hidden;
	background: #fff;
}
.top-icon-wrap #shopdock #cart-wrap .ms-qty__btn {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	width: 28px !important;
	height: 28px !important;
	min-height: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 0 !important;
	background: transparent !important;
	color: var(--jb-ink) !important;
	font-size: 16px !important;
	line-height: 1 !important;
	box-shadow: none !important;
	cursor: pointer;
}
.top-icon-wrap #shopdock #cart-wrap .ms-qty__btn:hover { background: #f2f0ec !important; }
.top-icon-wrap #shopdock #cart-wrap .ms-qty__num {
	min-width: 22px;
	text-align: center;
	font-size: 13px;
	font-weight: 700;
	color: var(--jb-ink) !important;
}
.top-icon-wrap #shopdock #cart-wrap .remove-item {
	display: inline-flex !important;
	align-items: center;
	gap: 4px;
	float: none !important;
	width: auto !important;
	height: auto !important;
	padding: 0 !important;
	margin: 0 !important;
	color: var(--jb-muted) !important;
	font-size: 12px !important;
	text-decoration: none !important;
	opacity: 1 !important;
}
.top-icon-wrap #shopdock #cart-wrap .remove-item:hover { color: #c9372c !important; }
.top-icon-wrap #shopdock #cart-wrap .remove-item i { font-size: 13px; }
.top-icon-wrap #shopdock #cart-wrap .remove-item__text { font-size: 11px; letter-spacing: 0.04em; text-transform: uppercase; }

.top-icon-wrap #shopdock #cart-wrap .cart-total-checkout-wrap {
	margin: 0 !important;
	padding: 16px 18px 18px !important;
	background: var(--jb-bg) !important;
	border-top: 1px solid var(--jb-line);
}
.top-icon-wrap #shopdock #cart-wrap .cart-total {
	display: flex !important;
	align-items: baseline;
	justify-content: space-between;
	flex-wrap: wrap;
	margin: 0 0 14px !important;
	padding: 0 !important;
	border: 0 !important;
	color: var(--jb-ink) !important;
}
.top-icon-wrap #shopdock #cart-wrap .cart-total .amount-label { font-size: 15px !important; font-weight: 600; color: var(--jb-ink) !important; }
.top-icon-wrap #shopdock #cart-wrap .cart-total > .amount { font-size: 20px !important; font-weight: 800 !important; color: var(--jb-ink) !important; text-align: right; }
.top-icon-wrap #shopdock #cart-wrap .cart-total .tax_label { display: block; font-size: 12px; font-weight: 400; color: var(--jb-muted) !important; }
.top-icon-wrap #shopdock #cart-wrap .checkout-button {
	display: grid !important;
	grid-template-columns: 1fr 1fr;
	gap: 10px;
	margin: 0 !important;
	padding: 0 !important;
}
.top-icon-wrap #shopdock #cart-wrap .checkout-button .btn {
	display: flex !important;
	align-items: center;
	justify-content: center;
	width: 100% !important;
	height: 46px !important;
	margin: 0 !important;
	padding: 0 12px !important;
	border-radius: 999px !important;
	font-size: 13px !important;
	font-weight: 700 !important;
	letter-spacing: 0.05em !important;
	text-transform: uppercase !important;
	text-decoration: none !important;
	line-height: 1 !important;
	box-shadow: none !important;
}
.top-icon-wrap #shopdock #cart-wrap .checkout-button #view-cart {
	background: #fff !important;
	color: var(--jb-ink) !important;
	border: 1px solid var(--jb-ink) !important;
}
.top-icon-wrap #shopdock #cart-wrap .checkout-button .but-cart {
	background: var(--jb-ink) !important;
	color: #fff !important;
	border: 1px solid var(--jb-ink) !important;
}
.top-icon-wrap #shopdock #cart-wrap .checkout-button .btn:hover { filter: brightness(1.15); }
.top-icon-wrap #shopdock #cart-wrap .empty-cart { padding: 30px 20px !important; color: var(--jb-muted) !important; font-size: 14px !important; }

@media (max-width: 767px) {
	.top-icon-wrap #shopdock #cart-wrap { width: min(380px, calc(100vw - 24px)); }
}

/* ===================== Attendee registration (before checkout) ===================== */
body.page-tribe-attendee-registration { background-color: var(--jb-bg); }
body.page-tribe-attendee-registration .sidebar { display: none !important; }
body.page-tribe-attendee-registration .right-sidebar[class*="col-lg-"] {
	flex: 0 0 100% !important;
	max-width: 1180px !important;
	width: 100% !important;
	margin: 0 auto !important;
	padding-left: 20px !important;
	padding-right: 20px !important;
}
body.page-tribe-attendee-registration .tribe-tickets__registration-actions { margin: 10px 0 12px; }
body.page-tribe-attendee-registration .tribe-tickets__registration-back-to-cart {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 8px 14px;
	border: 1px solid var(--jb-line);
	border-radius: 999px;
	background: #fff;
	color: var(--jb-ink) !important;
	font-size: 13px;
	font-weight: 600;
	text-decoration: none !important;
}
body.page-tribe-attendee-registration .tribe-tickets__registration-page-title {
	margin: 4px 0 26px !important;
	padding: 0 !important;
	border: 0 !important;
	font-size: clamp(30px, 4vw, 44px) !important;
	font-weight: 800 !important;
	letter-spacing: -0.02em !important;
	color: var(--jb-ink) !important;
}
body.page-tribe-attendee-registration .tribe-tickets__registration-grid {
	display: grid !important;
	grid-template-columns: minmax(0, 1fr) 360px;
	gap: 28px;
	align-items: start;
}
body.page-tribe-attendee-registration .tribe-tickets__registration-grid > .tribe-tickets__notice { grid-column: 1 / -1; }
body.page-tribe-attendee-registration .tribe-tickets__registration-content { grid-column: 1; grid-row: 2; min-width: 0; }
body.page-tribe-attendee-registration .tribe-tickets__mini-cart {
	grid-column: 2;
	grid-row: 2;
	position: sticky;
	top: 24px;
	width: auto !important;
	margin: 0 !important;
	padding: 22px !important;
	background: #fff !important;
	border: 1px solid var(--jb-line) !important;
	border-radius: 20px !important;
	box-shadow: 0 24px 50px -30px rgba(17, 20, 24, 0.35);
}
body.page-tribe-attendee-registration .tribe-tickets__mini-cart-title {
	margin: 0 0 14px !important;
	padding: 0 0 12px !important;
	border-bottom: 1px solid var(--jb-line) !important;
	font-size: 18px !important;
	font-weight: 700 !important;
	color: var(--jb-ink) !important;
}
body.page-tribe-attendee-registration .tribe-tickets__mini-cart .tribe-tickets__tickets-item {
	display: grid !important;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 6px 12px;
	padding: 0 0 14px !important;
	margin: 0 !important;
	border: 0 !important;
}
body.page-tribe-attendee-registration .tribe-tickets__tickets-item-content-title { font-size: 15px !important; font-weight: 700 !important; color: var(--jb-ink) !important; }
body.page-tribe-attendee-registration .tribe-tickets__tickets-item-content-subtitle { display: none !important; }
body.page-tribe-attendee-registration .tribe-tickets__tickets-item-extra,
body.page-tribe-attendee-registration .tribe-ticket-quantity { display: none !important; }
body.page-tribe-attendee-registration .tribe-tickets__tickets-item-total-wrap { font-weight: 700; color: var(--jb-ink); }
body.page-tribe-attendee-registration .tribe-tickets__tickets-footer {
	display: flex !important;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
	padding: 14px 0 0 !important;
	margin: 0 !important;
	border-top: 1px solid var(--jb-line) !important;
}
body.page-tribe-attendee-registration .tribe-tickets__tickets-footer-back-link { color: var(--jb-ink) !important; font-size: 13px; }
body.page-tribe-attendee-registration .tribe-tickets__tickets-footer-total { font-size: 18px; font-weight: 800; color: var(--jb-ink); }

body.page-tribe-attendee-registration .tribe-tickets__registration-event {
	padding: 26px 28px !important;
	background: #fff !important;
	border: 1px solid var(--jb-line) !important;
	border-radius: 20px !important;
	box-shadow: 0 1px 2px rgba(17, 20, 24, 0.04), 0 12px 28px -22px rgba(17, 20, 24, 0.25) !important;
}
body.page-tribe-attendee-registration .tribe-tickets__registration-summary { margin: 0 0 18px !important; }
body.page-tribe-attendee-registration .tribe-tickets__registration-description { color: var(--jb-muted) !important; font-size: 14px !important; }
body.page-tribe-attendee-registration .tribe-tickets__registration-title h2,
body.page-tribe-attendee-registration .tribe-tickets__registration-title h2 a {
	margin: 4px 0 0 !important;
	font-size: clamp(22px, 2.6vw, 28px) !important;
	font-weight: 800 !important;
	line-height: 1.2 !important;
	letter-spacing: -0.01em;
	color: var(--jb-ink) !important;
	text-decoration: none !important;
}
body.page-tribe-attendee-registration .tribe-ticket__tickets-heading { display: none !important; }
body.page-tribe-attendee-registration .tribe-tickets__attendee-tickets-item {
	margin: 0 0 14px !important;
	padding: 20px !important;
	border: 1px solid var(--jb-line) !important;
	border-left: 1px solid var(--jb-line) !important;
	border-radius: 16px !important;
	background: #fcfbf9 !important;
}
body.page-tribe-attendee-registration .tribe-tickets__attendee-tickets-item-title {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 0 0 14px !important;
	font-size: 16px !important;
	font-weight: 700 !important;
	color: var(--jb-ink) !important;
}
body.page-tribe-attendee-registration .tribe-tickets__attendee-tickets-item-title::before {
	content: "";
	width: 10px;
	height: 10px;
	border-radius: 50%;
	background: #e9234b;
}
body.page-tribe-attendee-registration .tribe-tickets__form-field {
	display: block !important;
	margin: 0 0 14px !important;
}
body.page-tribe-attendee-registration .tribe-tickets__form-field-label {
	display: block !important;
	width: auto !important;
	margin: 0 0 6px !important;
	font-size: 13px !important;
	font-weight: 600 !important;
	color: var(--jb-ink) !important;
}
body.page-tribe-attendee-registration .tribe-tickets__form-field-input-wrapper { width: 100% !important; }
body.page-tribe-attendee-registration .tribe-tickets__form-field-input-wrapper input,
body.page-tribe-attendee-registration .tribe-tickets__form-field-input-wrapper select,
body.page-tribe-attendee-registration .tribe-tickets__form-field-input-wrapper textarea {
	width: 100% !important;
	min-height: 52px;
	padding: 12px 16px !important;
	border: 1px solid var(--jb-field) !important;
	border-radius: 14px !important;
	background: #fff !important;
	color: var(--jb-ink) !important;
	font-size: 16px !important;
	box-shadow: none !important;
}
body.page-tribe-attendee-registration .tribe-tickets__form-field-input-wrapper input:focus {
	outline: none !important;
	border-color: var(--jb-ink) !important;
	box-shadow: 0 0 0 3px rgba(17, 20, 24, 0.08) !important;
}
body.page-tribe-attendee-registration .tribe-tickets__iac-email-disclaimer {
	grid-column: 1;
	margin: 14px 4px 0 !important;
	color: var(--jb-muted) !important;
	font-size: 13px !important;
}
body.page-tribe-attendee-registration #tribe-tickets__registration-form button[type="submit"],
body.page-tribe-attendee-registration .tribe-tickets__registration-footer button {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	width: 100%;
	max-width: 420px;
	min-height: 58px !important;
	margin: 18px 0 0 !important;
	padding: 0 24px !important;
	border: 0 !important;
	border-radius: 16px !important;
	background: var(--jb-ink) !important;
	color: #fff !important;
	font-size: 16px !important;
	font-weight: 700 !important;
	letter-spacing: 0.02em !important;
	text-transform: none !important;
	box-shadow: 0 14px 30px -14px rgba(17, 20, 24, 0.55) !important;
}
body.page-tribe-attendee-registration .tribe-tickets__registration-footer { display: flex !important; justify-content: flex-start !important; margin: 0 !important; padding: 0 !important; }
body.page-tribe-attendee-registration .tribe-tickets__registration-page-title + * , body.page-tribe-attendee-registration hr { border-color: var(--jb-line) !important; }

@media (max-width: 900px) {
	body.page-tribe-attendee-registration .tribe-tickets__registration-grid { grid-template-columns: 1fr; gap: 18px; }
	body.page-tribe-attendee-registration .tribe-tickets__mini-cart { grid-column: 1; grid-row: 2; position: static; }
	body.page-tribe-attendee-registration .tribe-tickets__registration-content { grid-row: 3; }
	body.page-tribe-attendee-registration .tribe-tickets__registration-event { padding: 20px 18px !important; }
	body.page-tribe-attendee-registration #tribe-tickets__registration-form button[type="submit"] { max-width: none; }
}

/* ===================== Cart page ===================== */
body.woocommerce-cart { background-color: var(--jb-bg); }
body.woocommerce-cart .wp-block-woocommerce-cart { max-width: 1180px; margin: 0 auto; padding: 0 20px 40px; }
body.woocommerce-cart .wc-block-cart-items,
body.woocommerce-cart .wp-block-woocommerce-cart-totals-block {
	background: #fff;
	border: 1px solid var(--jb-line) !important;
	border-radius: 20px;
	padding: 6px 20px !important;
	box-shadow: 0 1px 2px rgba(17, 20, 24, 0.04);
}
body.woocommerce-cart .wc-block-cart-item__image img { width: 72px; height: 72px; object-fit: cover; border-radius: 12px; }
body.woocommerce-cart .wc-block-components-product-name { font-weight: 700; color: var(--jb-ink) !important; }
body.woocommerce-cart .wc-block-cart__submit-button {
	min-height: 58px !important;
	border-radius: 16px !important;
	background: var(--jb-ink) !important;
	color: #fff !important;
	font-weight: 700 !important;
	text-transform: none !important;
	font-size: 16px !important;
}
