/* Entdeckerweine Brotvorbestellung — storefront styles.
 * Scoped under .ewb-root so nothing leaks into the rest of the theme.
 * Checkout tweaks (#ewb-checkout-fields) are intentionally minimal + global. */

.ewb-root {
	--ewb-bordeaux: #7d1a2b;
	--ewb-dark: #14161f;
	--ewb-cream: #faf7f2;
	--ewb-gold: #c9a15a;
	--ewb-text: #2b2b2f;
	--ewb-text-soft: #5a564f;
	--ewb-muted: #8a857b;
	--ewb-border: #ece5da;
	--ewb-border-strong: #ddd4c7;

	font-family: 'Work Sans', system-ui, sans-serif;
	color: var(--ewb-text);
	background: #fff;
	-webkit-font-smoothing: antialiased;
	line-height: 1.5;
	width: 100%;
	overflow-x: hidden;
}

.ewb-root *,
.ewb-root *::before,
.ewb-root *::after {
	box-sizing: border-box;
}

.ewb-container {
	max-width: 1120px;
	margin: 0 auto;
}

.ewb-container--narrow {
	max-width: 1080px;
}

/* ---------- shared bits ---------- */
.ewb-eyebrow {
	text-transform: uppercase;
	letter-spacing: .36em;
	font-size: 12px;
	font-weight: 600;
	color: var(--ewb-bordeaux);
}

.ewb-eyebrow--gold {
	letter-spacing: .42em;
	color: var(--ewb-gold);
}

.ewb-h2 {
	font-family: 'Cormorant Garamond', serif;
	font-weight: 600;
	font-size: clamp(28px, 3.4vw, 40px);
	margin: 12px 0 0;
	color: var(--ewb-dark);
}

.ewb-section-head {
	text-align: center;
}

.ewb-section-head__sub {
	font-size: 15px;
	line-height: 1.6;
	color: var(--ewb-text-soft);
	max-width: 46ch;
	margin: 12px auto 0;
}

.ewb-btn {
	display: inline-block;
	border: none;
	cursor: pointer;
	text-decoration: none;
	text-transform: uppercase;
	font-family: inherit;
	font-weight: 600;
	border-radius: 2px;
	transition: opacity .2s, background .2s;
}

.ewb-btn--primary {
	margin-top: 34px;
	background: var(--ewb-bordeaux);
	color: #fff;
	letter-spacing: .16em;
	font-size: 13px;
	padding: 15px 34px;
}

.ewb-btn--primary:hover {
	opacity: .9;
}

/* ---------- hero ---------- */
.ewb-hero {
	background: var(--ewb-dark);
	color: #f4f1ec;
	padding: 72px 24px 84px;
	text-align: center;
}

.ewb-hero__inner {
	max-width: 1120px;
	margin: 0 auto;
}

.ewb-hero__title {
	font-family: 'Cormorant Garamond', serif;
	font-weight: 600;
	font-size: clamp(38px, 6.2vw, 72px);
	line-height: 1.04;
	margin: 18px auto 0;
	max-width: 14ch;
	letter-spacing: .5px;
	color: #fff;
}

.ewb-hero__sub {
	font-size: clamp(15px, 1.7vw, 19px);
	line-height: 1.6;
	color: rgba(244, 241, 236, .72);
	max-width: 52ch;
	margin: 22px auto 0;
	font-weight: 300;
}

/* ---------- steps ---------- */
.ewb-steps {
	background: #fff;
	padding: 78px 24px 64px;
}

.ewb-steps__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
	gap: 34px;
	margin-top: 52px;
}

.ewb-step {
	text-align: center;
	padding: 0 8px;
}

.ewb-step__num {
	width: 62px;
	height: 62px;
	border-radius: 50%;
	border: 1px solid rgba(125, 26, 43, .25);
	background: var(--ewb-cream);
	color: var(--ewb-bordeaux);
	display: flex;
	align-items: center;
	justify-content: center;
	margin: 0 auto;
	font-family: 'Cormorant Garamond', serif;
	font-size: 26px;
	font-weight: 600;
}

.ewb-step__label {
	text-transform: uppercase;
	letter-spacing: .2em;
	font-size: 11px;
	font-weight: 600;
	color: var(--ewb-muted);
	margin-top: 20px;
}

.ewb-step__title {
	font-family: 'Cormorant Garamond', serif;
	font-weight: 600;
	font-size: 23px;
	margin: 6px 0 0;
	color: var(--ewb-dark);
}

.ewb-step__body {
	font-size: 15px;
	line-height: 1.6;
	color: var(--ewb-text-soft);
	margin: 10px auto 0;
	max-width: 30ch;
}

.ewb-notice {
	max-width: 820px;
	margin: 52px auto 0;
	background: var(--ewb-cream);
	border: 1px solid rgba(125, 26, 43, .28);
	border-left: 4px solid var(--ewb-bordeaux);
	border-radius: 3px;
	padding: 24px 28px;
	display: flex;
	gap: 18px;
	align-items: flex-start;
}

.ewb-notice__icon {
	flex: none;
	width: 26px;
	height: 26px;
	border-radius: 50%;
	background: var(--ewb-bordeaux);
	color: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 15px;
	font-weight: 700;
	font-family: 'Cormorant Garamond', serif;
}

.ewb-notice__text {
	margin: 0;
	font-size: 14.5px;
	line-height: 1.62;
	color: #4a463f;
}

/* ---------- products ---------- */
.ewb-products {
	background: var(--ewb-cream);
	padding: 76px 24px 84px;
}

.ewb-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
	gap: 28px;
	margin-top: 48px;
}

.ewb-card {
	background: #fff;
	border: 1px solid var(--ewb-border);
	border-radius: 6px;
	overflow: hidden;
	display: flex;
	flex-direction: column;
	box-shadow: 0 10px 30px -18px rgba(20, 22, 31, .28);
}

.ewb-card__media {
	background: #fff;
	aspect-ratio: 4 / 3;
	display: flex;
	align-items: center;
	justify-content: center;
	border-bottom: 1px solid #f0ebe2;
	padding: 14px;
}

.ewb-card__media img {
	max-width: 100%;
	max-height: 100%;
	object-fit: contain;
	mix-blend-mode: multiply;
}

.ewb-card__body {
	padding: 22px 22px 24px;
	display: flex;
	flex-direction: column;
	flex: 1;
}

.ewb-card__head {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 12px;
}

.ewb-card__name {
	font-family: 'Cormorant Garamond', serif;
	font-weight: 700;
	font-size: 24px;
	margin: 0;
	color: var(--ewb-dark);
}

.ewb-card__price {
	flex: none;
	font-weight: 700;
	font-size: 19px;
	color: var(--ewb-bordeaux);
	white-space: nowrap;
}

.ewb-card__weight {
	text-transform: uppercase;
	letter-spacing: .14em;
	font-size: 10.5px;
	font-weight: 600;
	color: #a79f92;
	margin-top: 6px;
}

.ewb-card__desc {
	font-size: 13.5px;
	line-height: 1.6;
	color: var(--ewb-text-soft);
	margin: 12px 0 0;
	flex: 1;
}

.ewb-card__actions {
	display: flex;
	align-items: center;
	gap: 14px;
	margin-top: 20px;
}

.ewb-qty {
	display: flex;
	align-items: center;
	flex: 0 0 auto;
	border: 1px solid var(--ewb-border-strong);
	border-radius: 3px;
	overflow: hidden;
}

.ewb-qty__btn {
	flex: 0 0 38px;
	width: 38px;
	height: 40px;
	padding: 0;
	border: none;
	background: var(--ewb-cream);
	color: var(--ewb-bordeaux);
	font-size: 19px;
	cursor: pointer;
	line-height: 1;
}

/* Fixed width + no padding, forced past the theme's global input styles that
   otherwise pad the field and let it shrink until the number is clipped. */
.ewb-qty__input {
	flex: 0 0 46px !important;
	width: 46px !important;
	min-width: 46px !important;
	height: 40px;
	padding: 0 !important;
	box-sizing: border-box !important;
	text-align: center !important;
	font-weight: 600;
	font-size: 15px;
	color: var(--ewb-dark);
	border: none;
	background: #fff;
	font-family: inherit;
	-moz-appearance: textfield;
}

.ewb-qty__input::-webkit-outer-spin-button,
.ewb-qty__input::-webkit-inner-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

.ewb-btn--add {
	flex: 1;
	height: 44px;
	background: var(--ewb-bordeaux);
	color: #fff;
	letter-spacing: .1em;
	font-size: 12px;
	border-radius: 3px;
}

.ewb-btn--add:hover {
	opacity: .92;
}

.ewb-btn--add.is-loading {
	opacity: .6;
	cursor: wait;
}

.ewb-btn--add.is-done {
	background: #4a7c46;
}

.ewb-empty-products {
	text-align: center;
	color: var(--ewb-muted);
	margin-top: 40px;
}

/* ---------- order / cart ---------- */
.ewb-order {
	background: #fff;
	padding: 78px 24px 88px;
}

.ewb-order__grid {
	display: grid;
	grid-template-columns: 1fr 1.15fr;
	gap: 34px;
	margin-top: 48px;
	align-items: start;
}

.ewb-cart {
	background: var(--ewb-cream);
	border: 1px solid var(--ewb-border);
	border-radius: 6px;
	padding: 28px 26px;
}

.ewb-cart__title {
	text-transform: uppercase;
	letter-spacing: .2em;
	font-size: 12px;
	font-weight: 600;
	color: var(--ewb-dark);
	padding-bottom: 16px;
	border-bottom: 1px solid #e6ded2;
}

.ewb-cart__empty {
	font-size: 14px;
	color: var(--ewb-muted);
	line-height: 1.6;
	margin: 20px 0 0;
}

.ewb-cart__item {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 14px 0;
	border-bottom: 1px solid var(--ewb-border);
}

.ewb-cart__thumb {
	flex: none;
	width: 44px;
	height: 44px;
	border-radius: 4px;
	background: #fff;
	border: 1px solid var(--ewb-border);
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
}

.ewb-cart__thumb img {
	max-width: 82%;
	max-height: 82%;
	object-fit: contain;
	mix-blend-mode: multiply;
}

.ewb-cart__meta {
	flex: 1;
	min-width: 0;
}

.ewb-cart__name {
	font-weight: 600;
	font-size: 14.5px;
	color: var(--ewb-dark);
}

.ewb-cart__qty {
	font-size: 12.5px;
	color: var(--ewb-muted);
}

.ewb-cart__line {
	font-weight: 600;
	font-size: 14.5px;
	color: var(--ewb-dark);
	white-space: nowrap;
}

.ewb-cart__total {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	margin-top: 18px;
}

.ewb-cart__total-label {
	text-transform: uppercase;
	letter-spacing: .16em;
	font-size: 12px;
	font-weight: 600;
	color: var(--ewb-dark);
}

.ewb-cart__total-value {
	font-family: 'Cormorant Garamond', serif;
	font-weight: 700;
	font-size: 26px;
	color: var(--ewb-bordeaux);
}

.ewb-order__aside {
	background: #fff;
	border: 1px solid var(--ewb-border);
	border-radius: 6px;
	padding: 30px;
	box-shadow: 0 12px 34px -22px rgba(20, 22, 31, .35);
}

.ewb-order__pickup {
	display: flex;
	gap: 10px;
	align-items: flex-start;
	font-size: 13.5px;
	color: var(--ewb-text-soft);
	line-height: 1.55;
}

.ewb-order__pickup-icon {
	color: var(--ewb-bordeaux);
	font-weight: 700;
}

.ewb-btn--checkout {
	display: block;
	width: 100%;
	text-align: center;
	margin-top: 22px;
	padding: 17px 20px;
	background: var(--ewb-bordeaux);
	color: #fff;
	letter-spacing: .1em;
	font-size: 13px;
	border-radius: 3px;
}

.ewb-btn--checkout:hover {
	opacity: .92;
}

.ewb-order__fineprint {
	font-size: 12.5px;
	line-height: 1.5;
	color: var(--ewb-muted);
	text-align: center;
	margin: 14px 0 0;
}

/* ---------- responsive ---------- */
@media (max-width: 860px) {
	.ewb-order__grid {
		grid-template-columns: 1fr;
	}
}

/* ---------- sticky mobile cart bar ---------- */
.ewb-mobilebar {
	display: none;
}

@media (max-width: 768px) {
	.ewb-mobilebar.is-active {
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: 14px;
		position: fixed;
		left: 0;
		right: 0;
		bottom: 0;
		z-index: 9990;
		background: #fff;
		border-top: 1px solid #e7cfd4;
		box-shadow: 0 -4px 18px rgba(0, 0, 0, .14);
		/* extra left inset so the bottom-left cookie-consent badge doesn't
		   cover the count/total */
		padding: 12px 16px 12px 70px;
		padding-bottom: calc(12px + env(safe-area-inset-bottom));
	}

	.ewb-mobilebar__info {
		display: flex;
		flex-direction: column;
		line-height: 1.2;
	}

	.ewb-mobilebar__count {
		font-size: 13px;
		color: #6a6a6a;
	}

	.ewb-mobilebar__total {
		font-size: 18px;
		font-weight: 700;
		color: var(--ewb-dark);
	}

	.ewb-mobilebar__btn {
		background: var(--ewb-bordeaux);
		color: #fff;
		text-decoration: none;
		padding: 13px 24px;
		border-radius: 6px;
		font-weight: 600;
		font-size: 15px;
		white-space: nowrap;
	}

	/* reserve space so the fixed bar never hides the checkout button */
	.ewb-order {
		padding-bottom: 96px;
	}
}

/* ---------- checkout fields (global, minimal) ---------- */
#ewb-checkout-fields {
	margin: 1.5em 0;
	padding: 20px 22px;
	background: #faf7f2;
	border: 1px solid #ece5da;
	border-left: 4px solid #7d1a2b;
	border-radius: 3px;
}

#ewb-checkout-fields h3 {
	margin: 0 0 14px;
	color: #14161f;
}

#ewb-checkout-fields .ewb-pickup-hint {
	font-size: 13px;
	color: #5a564f;
	margin: 6px 0 14px;
}

.ewb-order-pickup {
	margin-top: 1.5em;
}
