/*
 Theme Name:   Bricks Child Theme
 Theme URI:    https://bricksbuilder.io/
 Description:  Use this child theme to extend Bricks.
 Author:       Bricks
 Author URI:   https://bricksbuilder.io/
 Template:     bricks
 Version:      1.1
 Text Domain:  bricks
*/

/* Legacy overrides kept intact */
.cart_item a { font-weight: bold; }
.cart_item dl { font-size: 16px; }
.cart_item dl dt, .cart_item dl dd { display: block; width: 100%; }
.cart_item dl dd { margin-bottom: 6px !important; }
.woocommerce-checkout #order_review_heading { margin-bottom: 20px; }


/* ============================================================
   STILLER BEGLEITER – CART & CHECKOUT
   Mobile-first. All sizes in px.
   ============================================================ */

/* ---- Variables ------------------------------------------- */
:root {
	--sb-dark:      #2B3A42;
	--sb-muted:     #607080;
	--sb-light:     #f5f4f1;
	--sb-white:     #ffffff;
	--sb-border:    #ddd8d0;
	--sb-accent:    #5a7e61;
	--sb-accent-h:  #4a6a51;
	--sb-red:       #c0392b;
	--sb-radius:    12px;
	--sb-shadow:    0 2px 20px rgba(0,0,0,.09);
}

/* ---- Base resets for our scope --------------------------- */
.sb-cart-wrap *,
.sb-checkout-wrap * {
	box-sizing: border-box;
}

/* ============================================================
   SHARED
   ============================================================ */

.sb-section-title {
	font-size: 22px;
	font-weight: 700;
	color: var(--sb-dark);
	margin: 0 0 24px;
	padding-bottom: 14px;
	border-bottom: 2px solid var(--sb-border);
	line-height: 1.3;
}

.sb-card {
	background: var(--sb-white);
	border-radius: var(--sb-radius);
	box-shadow: var(--sb-shadow);
	padding: 28px 24px;
}

/* Buttons */
.sb-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	height: 52px;
	padding: 0 24px;
	border-radius: 8px;
	font-size: 17px;
	font-weight: 600;
	cursor: pointer;
	border: 2px solid transparent;
	transition: background .18s, color .18s, border-color .18s;
	white-space: nowrap;
	text-decoration: none;
	line-height: 1;
}
.sb-btn--primary {
	background: var(--sb-accent);
	color: #fff;
	border-color: var(--sb-accent);
}
.sb-btn--primary:hover {
	background: var(--sb-accent-h);
	border-color: var(--sb-accent-h);
	color: #fff;
}
.sb-btn--secondary {
	background: transparent;
	color: var(--sb-accent);
	border-color: var(--sb-accent);
}
.sb-btn--secondary:hover {
	background: var(--sb-accent);
	color: #fff;
}
.sb-btn--full {
	width: 100%;
	height: 60px;
	font-size: 20px;
}

/* ============================================================
   TRUST BOX
   ============================================================ */

.sb-trust {
	background: var(--sb-white);
	border-radius: var(--sb-radius);
	box-shadow: var(--sb-shadow);
	padding: 28px 24px;
	display: flex;
	flex-direction: column;
	gap: 16px;
	margin-top: 20px;
}

/* Default: icon + text horizontal */
.sb-trust__item {
	display: flex;
	flex-direction: row;
	align-items: center;
	gap: 14px;
	font-size: 16px;
	color: var(--sb-muted);
	line-height: 1.45;
}

.sb-trust__icon {
	font-size: 22px;
	flex-shrink: 0;
	width: 30px;
	text-align: center;
}

/* Diocese: logo + text stacked and centred */
.sb-trust__item--diocese {
	flex-direction: column;
	align-items: center;
	text-align: center;
	gap: 10px;
	padding-top: 16px;
	border-top: 1px solid var(--sb-border);
	color: var(--sb-dark);
}

.sb-trust__logo {
	height: 48px;
	width: auto;
	display: block;
}

/* Contact: label + link stacked, no icon */
.sb-trust__item--contact {
	flex-direction: column;
	align-items: center;
	text-align: center;
	gap: 4px;
	padding-top: 16px;
	border-top: 1px solid var(--sb-border);
}
.sb-trust__item--contact .sb-trust__label {
	font-size: 15px;
	color: var(--sb-muted);
}
.sb-trust__item--contact a {
	font-size: 16px;
	font-weight: 600;
	color: var(--sb-dark);
	text-decoration: none;
}
.sb-trust__item--contact a:hover { text-decoration: underline; }

.sb-trust__item a { color: var(--sb-muted); text-decoration: none; }
.sb-trust__item a:hover { color: var(--sb-dark); text-decoration: underline; }


/* ============================================================
   CART – MOBILE FIRST
   ============================================================ */

.sb-cart-wrap {
	padding: 24px 16px 48px;
}

/* Single-column default (mobile) */
.sb-layout {
	display: flex;
	flex-direction: column;
	gap: 24px;
}

/* ---- Item list ------------------------------------------- */
.sb-col-main {
	background: var(--sb-white);
	border-radius: var(--sb-radius);
	box-shadow: var(--sb-shadow);
	padding: 28px 20px;
}

.sb-items-list {
	display: flex;
	flex-direction: column;
	gap: 0;
}

/* ---- Individual item ------------------------------------- */
.sb-item {
	display: flex;
	gap: 18px;
	padding: 24px 0;
	border-bottom: 1px solid var(--sb-border);
}
.sb-item:first-child { padding-top: 0; }
.sb-item:last-child  { border-bottom: none; padding-bottom: 0; }

.sb-item__img {
	flex-shrink: 0;
	width: 100px;
}
.sb-item__img img {
	width: 100px;
	height: 100px;
	object-fit: cover;
	border-radius: 8px;
	display: block;
}
.sb-item__img a { display: block; }

.sb-item__body {
	flex: 1;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.sb-item__top {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 12px;
}

.sb-item__name {
	font-size: 20px;
	font-weight: 700;
	color: var(--sb-dark);
	line-height: 1.35;
	flex: 1;
}
.sb-item__name a { color: inherit; text-decoration: none; }
.sb-item__name a:hover { text-decoration: underline; }

.sb-item__price {
	font-size: 22px;
	font-weight: 700;
	color: var(--sb-dark);
	white-space: nowrap;
	flex-shrink: 0;
}

/* Meta: person, cemetery, delivery date selector */
.sb-item__meta {
	font-size: 16px;
	color: var(--sb-muted);
	line-height: 1.5;
}
.sb-item__meta dl {
	margin: 0;
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 2px 10px;
}
.sb-item__meta dt {
	font-weight: 600;
	color: var(--sb-dark);
}
.sb-item__meta dd { margin: 0; }

/* Delivery date dropdown */
.delivery-date-wrapper {
	margin-top: 10px !important;
}
.delivery-date-wrapper label {
	display: block;
	font-size: 16px !important;
	font-weight: 600;
	color: var(--sb-dark);
	margin-bottom: 6px;
}
.delivery-date-wrapper select {
	display: block;
	width: 100%;
	max-width: 280px;
	padding: 12px 40px 12px 14px;
	border: 1px solid var(--sb-border);
	border-radius: 7px;
	font-size: 16px;
	background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23607080' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E") no-repeat right 12px center;
	background-size: 18px 18px;
	color: var(--sb-dark);
	cursor: pointer;
	appearance: none;
	-webkit-appearance: none;
}

.sb-item__footer {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-top: 4px;
}

/* Hide quantity (intentional: single-service products) */
.sb-item__qty-hidden { display: none; }

/* Remove link */
.sb-item__remove a.remove {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-size: 15px;
	color: var(--sb-muted);
	text-decoration: none;
	padding: 6px 0;
	transition: color .18s;
}
.sb-item__remove a.remove:hover { color: var(--sb-red); }

/* ---- Coupon / actions ------------------------------------ */
.sb-cart-actions {
	margin-top: 24px;
	padding-top: 20px;
	border-top: 1px solid var(--sb-border);
}

.sb-coupon {
	display: flex;
	gap: 10px;
}
.sb-coupon__input {
	flex: 1;
	height: 52px;
	padding: 0 16px;
	border: 1px solid var(--sb-border);
	border-radius: 8px;
	font-size: 17px;
	background: var(--sb-light);
	color: var(--sb-dark);
}
.sb-coupon__input:focus {
	outline: none;
	border-color: var(--sb-accent);
}

/* ---- Cart summary / totals ------------------------------- */
.sb-col-side {
	display: flex;
	flex-direction: column;
}

/* WooCommerce renders .cart_totals inside sb-col-side via hook */
.sb-col-side .cart_totals {
	background: var(--sb-white);
	border-radius: var(--sb-radius);
	box-shadow: var(--sb-shadow);
	padding: 28px 24px;
}

.sb-col-side .cart_totals h2 {
	font-size: 22px;
	font-weight: 700;
	color: var(--sb-dark);
	margin: 0 0 20px;
	padding-bottom: 14px;
	border-bottom: 2px solid var(--sb-border);
}

/* Totals table */
.sb-col-side .cart_totals table.shop_table {
	width: 100%;
	border-collapse: collapse;
	font-size: 17px;
}
.sb-col-side .cart_totals table.shop_table th {
	text-align: left;
	font-weight: 600;
	color: var(--sb-dark);
	padding: 12px 0;
	border-bottom: 1px solid var(--sb-border);
	vertical-align: middle;
	width: 55%;
}
.sb-col-side .cart_totals table.shop_table td {
	text-align: right;
	padding: 12px 0;
	border-bottom: 1px solid var(--sb-border);
	vertical-align: middle;
	color: var(--sb-dark);
}
.sb-col-side .cart_totals table.shop_table .order-total th,
.sb-col-side .cart_totals table.shop_table .order-total td {
	font-size: 19px;
	font-weight: 700;
	border-bottom: none;
	padding-top: 18px;
}

/* Checkout button from WC collaterals */
.sb-col-side .wc-proceed-to-checkout {
	margin-top: 20px;
}
.sb-col-side .wc-proceed-to-checkout a.checkout-button,
.sb-col-side a.checkout-button {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 64px;
	background: var(--sb-accent);
	color: #fff;
	font-size: 20px;
	font-weight: 700;
	border-radius: 10px;
	text-decoration: none;
	transition: background .18s;
}
.sb-col-side .wc-proceed-to-checkout a.checkout-button:hover,
.sb-col-side a.checkout-button:hover {
	background: var(--sb-accent-h);
}

/* ---- Empty cart ------------------------------------------ */
.sb-cart-empty {
	background: var(--sb-white);
	border-radius: var(--sb-radius);
	box-shadow: var(--sb-shadow);
	padding: 64px 24px;
	text-align: center;
	font-size: 20px;
	color: var(--sb-muted);
}


/* ============================================================
   CHECKOUT – MOBILE FIRST
   ============================================================ */

.sb-checkout-wrap {
	padding: 24px 16px 56px;
}

.sb-checkout-wrap .sb-layout {
	gap: 24px;
}

/* ---- Left: billing form ---------------------------------- */
.sb-checkout-left {
	background: var(--sb-white);
	border-radius: var(--sb-radius);
	box-shadow: var(--sb-shadow);
	padding: 28px 20px;
}

/* WooCommerce generates h3 for "Rechnungsadresse" */
.sb-checkout-left .woocommerce-billing-fields > h3,
.sb-checkout-left .woocommerce-shipping-fields > h3 {
	font-size: 20px;
	font-weight: 700;
	color: var(--sb-dark);
	margin: 0 0 20px;
	padding-bottom: 12px;
	border-bottom: 1px solid var(--sb-border);
}

/* WooCommerce col2-set wraps first/last name side-by-side */
.sb-checkout-left .col2-set {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 16px;
}

.sb-checkout-left .form-row {
	margin-bottom: 18px;
}

.sb-checkout-left .form-row label {
	display: block;
	font-size: 16px;
	font-weight: 600;
	color: var(--sb-dark);
	margin-bottom: 7px;
}
.sb-checkout-left .form-row .required {
	color: var(--sb-red);
}

.sb-checkout-left .form-row input.input-text,
.sb-checkout-left .form-row select,
.sb-checkout-left .form-row textarea {
	display: block;
	width: 100%;
	height: 54px;
	padding: 0 16px;
	border: 1.5px solid var(--sb-border);
	border-radius: 8px;
	font-size: 17px;
	background: #fff;
	color: var(--sb-dark);
	transition: border-color .18s, box-shadow .18s;
	appearance: none;
}
.sb-checkout-left .form-row select {
	padding-right: 40px;
	background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23607080' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E") no-repeat right 14px center;
	background-size: 18px 18px;
	-webkit-appearance: none;
}
.sb-checkout-left .form-row textarea {
	height: auto;
	padding: 14px 16px;
	resize: vertical;
}
.sb-checkout-left .form-row input.input-text:focus,
.sb-checkout-left .form-row select:focus {
	outline: none;
	border-color: var(--sb-accent);
	box-shadow: 0 0 0 3px rgba(90,126,97,.15);
}

/* Validation states */
.sb-checkout-left .form-row.woocommerce-invalid input,
.sb-checkout-left .form-row.woocommerce-invalid select {
	border-color: var(--sb-red);
}
.sb-checkout-left .form-row.woocommerce-validated input,
.sb-checkout-left .form-row.woocommerce-validated select {
	border-color: var(--sb-accent);
}

/* ---- Right: order review --------------------------------- */
.sb-checkout-right {
	display: flex;
	flex-direction: column;
	gap: 20px;
}

.sb-order-review-wrap {
	background: var(--sb-white);
	border-radius: var(--sb-radius);
	box-shadow: var(--sb-shadow);
	padding: 28px 20px;
}

/* Order review table */
#order_review table.shop_table,
#order_review table.woocommerce-checkout-review-order-table {
	width: 100%;
	border-collapse: collapse;
	font-size: 17px;
}
#order_review table.shop_table thead th {
	font-size: 14px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .05em;
	color: var(--sb-muted);
	padding: 0 0 14px;
	border-bottom: 2px solid var(--sb-border);
	text-align: left;
}
#order_review table.shop_table thead th:last-child {
	text-align: right;
}
#order_review table.shop_table tbody td,
#order_review table.shop_table tbody th {
	padding: 14px 0;
	border-bottom: 1px solid var(--sb-border);
	vertical-align: top;
}
#order_review table.shop_table tbody .cart-subtotal th,
#order_review table.shop_table tbody td.product-name {
	font-weight: 600;
	color: var(--sb-dark);
}
/* Product name column: left; price column: right */
#order_review table.shop_table td.product-name { text-align: left; }
#order_review table.shop_table td.product-total { text-align: right; }

/* Item meta inside order review */
#order_review table.shop_table .woocommerce-table__product-name dl {
	font-size: 15px;
	color: var(--sb-muted);
	margin: 4px 0 0;
}

/* Subtotals / totals rows */
#order_review table.shop_table tfoot th {
	text-align: left;
	font-size: 17px;
	font-weight: 600;
	color: var(--sb-dark);
	padding: 12px 0;
	border-bottom: 1px solid var(--sb-border);
}
#order_review table.shop_table tfoot td {
	text-align: right;
	font-size: 17px;
	padding: 12px 0;
	border-bottom: 1px solid var(--sb-border);
	color: var(--sb-dark);
}
#order_review table.shop_table tfoot .order-total th,
#order_review table.shop_table tfoot .order-total td {
	font-size: 19px;
	font-weight: 700;
	border-bottom: none;
	padding-top: 18px;
}

/* Remove WooCommerce default borders on checkout */
.woocommerce-checkout .woocommerce-checkout-payment,
.woocommerce-checkout .woocommerce-checkout-review-order-table {
	border: none !important;
	box-shadow: none !important;
}

/* ---- Payment methods ------------------------------------- */
#payment {
	background: var(--sb-white);
	border-radius: var(--sb-radius);
	box-shadow: var(--sb-shadow);
	padding: 24px 0px;
	border: none !important;
}

#payment ul.wc_payment_methods {
	list-style: none;
	padding: 0;
	margin: 0 0 20px;
	border-bottom: 1px solid var(--sb-border);
}
#payment ul.wc_payment_methods li.wc_payment_method {
	padding: 16px 0;
	border-top: 1px solid var(--sb-border);
	font-size: 17px;
}
#payment ul.wc_payment_methods li.wc_payment_method:first-child {
	border-top: none;
}
#payment ul.wc_payment_methods label {
	font-size: 17px;
	font-weight: 600;
	color: var(--sb-dark);
	cursor: pointer;
	display: flex;
	align-items: center;
	gap: 10px;
}
#payment ul.wc_payment_methods .payment_box {
	padding: 12px 0 4px 28px;
	font-size: 15px;
	color: var(--sb-muted);
}

#payment .place-order {
	margin-top: 4px;
}
#payment #place_order {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 68px;
	background: var(--sb-accent);
	color: #fff;
	font-size: 21px;
	font-weight: 700;
	border: none;
	border-radius: 10px;
	cursor: pointer;
	transition: background .18s;
}
#payment #place_order:hover { background: var(--sb-accent-h); }

/* ---- Trust box in checkout ------------------------------ */
.sb-checkout-trust {
	background: var(--sb-white);
	border-radius: var(--sb-radius);
	box-shadow: var(--sb-shadow);
	padding: 24px;
	display: flex;
	flex-direction: column;
	gap: 16px;
}

#payment {
	padding: 0 !important;
}

/* ---- WC Notices ----------------------------------------- */
.woocommerce-notices-wrapper .woocommerce-message,
.woocommerce-notices-wrapper .woocommerce-error,
.woocommerce-notices-wrapper .woocommerce-info {
	border-radius: 8px;
	font-size: 17px;
	margin-bottom: 20px;
}


/* ============================================================
   RESPONSIVE – two-column from 900px up
   ============================================================ */

@media (min-width: 900px) {

	.sb-cart-wrap {
		max-width: 1240px;
		margin: 0 auto;
		padding: 40px 32px 64px;
	}

	.sb-checkout-wrap {
		max-width: 1240px;
		margin: 0 auto;
		padding: 40px 32px 64px;
	}

	.sb-layout {
		display: grid;
		grid-template-columns: 1fr 400px;
		gap: 32px;
		align-items: start;
	}

	/* Checkout: slightly wider summary */
	.sb-checkout-wrap .sb-layout {
		grid-template-columns: 1fr 440px;
	}

	.sb-col-main,
	.sb-checkout-left {
		padding: 36px 32px;
	}

	.sb-col-side .cart_totals,
	.sb-order-review-wrap,
	#payment {
		padding: 32px 28px;
	}

	.sb-section-title { font-size: 24px; }
	.sb-item__name    { font-size: 21px; }
	.sb-item__price   { font-size: 23px; }
	.sb-item__img     { width: 120px; }
	.sb-item__img img { width: 120px; height: 120px; }

	/* Trust box spacing in sidebar */
	.sb-col-side .sb-trust,
	.sb-checkout-right .sb-trust { margin-top: 0; }
}

.sb-item__remove {
	display: none !important;
}

@media (min-width: 1100px) {
	.sb-layout {
		grid-template-columns: 1fr 460px;
	}
	.sb-checkout-wrap .sb-layout {
		grid-template-columns: 1fr 480px;
	}
}

/* ---- Narrow mobile adjustments (< 400px) ----------------  */
@media (max-width: 399px) {
	.sb-item {
		flex-direction: column;
		gap: 14px;
	}
	.sb-item__img { width: 100%; }
	.sb-item__img img { width: 100%; height: 220px; border-radius: 10px; }
	.sb-checkout-left .col2-set { grid-template-columns: 1fr; }
	#payment #place_order { font-size: 19px; height: 62px; }
}
