/* ========== FOUNDATION ==========
	 Desktop-first styling framework (current scope: desktop only) */
* {
	margin: 0;
	padding: 0;
	box-sizing: border-box;
	font-family: "Outfit", sans-serif
}

body {
	min-height: 100vh;
	display: flex;
	flex-direction: column;
}

:root {
	/* Colors */
	--color-bg: #fff;
	--color-text: #000;
	--color-dark: #1C2D1C;
	--color-green: #45C951;
	--color-green-dark: #1F5E3B;
	--color-accent: #F58727;
	--color-accent-soft: #A8E6A1;
	--color-gray-50: #fafafa;
	--color-gray-100: #F2F5F2;
	--color-gray-150: #E5E5E5;
	--color-gray-200: #E3E7E3;
	--color-gray-400: #5D5D5D;
	--color-gray-600: #222;
	--color-white: #fff;

	/* Spacing scale */
	--space-1: 4px;
	--space-2: 8px;
	--space-3: 12px;
	--space-4: 16px;
	--space-5: 20px;
	--space-6: 24px;
	--space-7: 28px;
	--space-8: 32px;
	--space-9: 36px;
	--space-10: 40px;
	--space-12: 48px;
	--space-14: 56px;
	--space-16: 64px;
	--space-20: 80px;
	--space-24: 96px;

	/* Radius */
	--radius-sm: 6px;
	--radius-md: 12px;
	--radius-lg: 18px;
	--radius-xl: 22px;
	--radius-pill: 999px;

	/* Container */
	--container-max: 1440px;
	--container-gutter-min: 40px;
	/* min left/right padding */
	--container-gutter-max: 188px;
	/* design large padding */
	/* Computed via clamp below */
}

body {
	background: var(--color-bg);
	color: var(--color-text);
	width: 100%;
}

/* Fluid container: centers content and adapts horizontal gutters on very large screens */
.container {
	width: 100%;
	margin-inline: auto;
	padding-inline: clamp(var(--container-gutter-min), 6vw, var(--container-gutter-max));
}

/* Utility flex / grid (minimal set for now) */
.u-flex {
	display: flex;
}

.u-flex-center {
	display: flex;
	align-items: center;
	justify-content: center;
}

.u-grid {
	display: grid;
	gap: var(--space-6);
}

/* Buttons */
.btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-weight: 600;
	font-size: 14px;
	border-radius: var(--radius-pill);
	cursor: pointer;
	line-height: 1;
	white-space: nowrap;
	transition: .25s;
	background: var(--color-gray-100);
	color: var(--color-text);
	border: 2px solid transparent;
	padding: 10px 22px;
	text-decoration: none;
}

.btn--green {
	background: var(--color-green);
	color: var(--color-white);
}

.btn--green:hover {
	background: #38a243;
}

.btn--outline {
	background: transparent;
	border: 2px solid var(--color-text);
}

.btn--outline:hover {
	background: var(--color-text);
	color: var(--color-white);
}

.btn--white {
	background: var(--color-white);
	color: var(--color-text);
}

.btn--white:hover {
	box-shadow: 0 0 0 3px rgba(0, 0, 0, .08);
}

/* Aside menu items (account sidebar) */

.account-details-buttons > button {
	cursor: pointer;
	border: none;
}

aside > nav {
	margin-left: 0;
}

.aside-menu-item {
	display: flex;
	padding: 12px;
	border-radius: 12px;
	background: transparent;
	color: var(--color-text);
	text-align: center;
	text-decoration: none;
	font-weight: 500;
	text-align: left;
	width: 100%;
	align-items: center;
	justify-content: space-between;
	font-size: 16px;
}

.aside-menu-item::after {
	content: '';
}

.aside-menu-item:hover {
	color: #45C951;
}

.aside-menu-item-active {
	color: #45C951;
	font-weight: 600;
}

/* Account subpages – cards */
.address-card {
	width: calc(50% - 8px);
	box-sizing: border-box;
}

.myjars-product {
	box-sizing: border-box;
}

/* Badge */
.badge-rounded {
	position: absolute;
	top: 100%;
	left: 50%;
	transform: translate(-50%, -50%);
	background: var(--color-accent-soft);
	color: #111;
	font-size: 10px;
	font-weight: 600;
	width: 18px;
	height: 18px;
	border-radius: 50%;
	line-height: 18px;
	text-align: center;
	display: none;
}

/* Footer */
.site-footer {
	margin-top: auto;
	padding: var(--space-16) 0;
	background: #111;
	color: var(--color-white);
	font-family: "Outfit", sans-serif;
}

.footer-grid {
	display: grid;
	grid-template-columns: 160px 1fr 1fr 1fr 300px;
	gap: 40px;
	align-items: start;
}

.footer-logo img {
	filter: invert(1);
	width: 140px;
}

.footer-links a {
	color: var(--color-white);
	text-decoration: none;
	display: block;
	margin-bottom: 8px;
	font-size: 14px;
	font-weight: 500;
}

.footer-links a:hover {
	opacity: .8;
}

.footer-app-box {
	background: var(--color-white);
	color: #111;
	border-radius: var(--radius-xl);
	padding: 20px;
	text-align: center;
	font-size: 14px;
	font-weight: 600;
}

.footer-actions {
	display: flex;
	flex-direction: column;
	gap: 20px;
}

.footer-auth {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 16px;
}

.footer-auth .login-btn {
	background: none;
	border: none;
	color: var(--color-white);
	font-size: 14px;
	cursor: pointer;
	padding: 0;
	font-weight: 500;
}

.footer-seller {
	font-size: 12px;
	display: flex;
	align-items: flex-start;
	gap: 8px;
}

.footer-seller-text {
	font-size: 12px;
	line-height: 1.3;
	font-weight: 500;
	white-space: pre-wrap;
}

/* ========== CART (desktop) ========== */
.cart-title {
	font-size: 40px;
	font-weight: 700;
	margin: 10px 0 40px;
	text-align: center;
}

.cart-section {
	background: var(--color-white);
	border-radius: 14px;
	margin-bottom: 28px;
	overflow: hidden;
}

.cart-section-header {
	background: var(--color-gray-100);
	padding: 14px 22px;
}

.cart-section-header-top {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 12px;
}

.cart-section-header h3 {
	margin: 0;
	font-size: 18px;
	font-weight: 600;
}

.cart-progress {
	height: 6px;
	background: #bcbcbc;
	border-radius: 4px;
	margin-top: 8px;
	position: relative;
	width: 100%;
}

.cart-progress-bar {
	height: 6px;
	border-radius: 4px;
	background: var(--color-accent);
	width: 0;
	transition: width .3s, background .3s;
}

.cart-items {
	padding: 14px 0;
}

.cart-item {
	display: grid;
	grid-template-columns: 90px 1fr 90px;
	gap: 18px;
	padding: 14px 8px;
	align-items: center;
}

.cart-item:last-child {
	border-bottom: none;
}

.cart-thumb img {
	width: 90px;
	height: 90px;
	object-fit: cover;
	border-radius: 12px;
	display: block;
	background: var(--color-gray-50);
}

.cart-info .name {
	font-weight: 600;
	font-size: 16px;
	margin-bottom: 4px;
}

.price-wrap {
	display: flex;
	align-items: baseline;
	gap: 6px;
	font-weight: 700;
	font-size: 20px;
}

.price-wrap small {
	font-size: 12px;
	font-weight: 500;
}

.deposit {
	color: var(--color-accent);
	font-size: 14px;
	font-weight: 600;
}

.qty-box {
	display: flex;
	align-items: center;
	border: 1px solid var(--color-gray-200);
	border-radius: 28px;
	height: 38px;
	overflow: hidden;
}

.qty-box button {
	background: none;
	border: 0;
	width: 38px;
	height: 38px;
	font-size: 22px;
	cursor: pointer;
}

.qty-val {
	width: 34px;
	text-align: center;
	font-weight: 600;
}

.remove-btn {
	background: #F4DADA;
	border: none;
	color: #b40000;
	font-weight: 600;
	border-radius: 8px;
	padding: 6px 10px;
	cursor: pointer;
	font-size: 13px;
}

.cart-empty {
	padding: 80px 20px;
	text-align: center;
	font-size: 22px;
	font-weight: 600;
}

.add-more {
	padding: 20px 0;
	font-size: 14px;
}

.additional-list {
	display: flex;
	overflow-x: auto;
	gap: 14px;
	margin-top: 16px;
}

.add-card {
	flex: 0 0 170px;
	border: 1px solid var(--color-gray-200);
	border-radius: 12px;
	padding: 10px;
	background: #fff;
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.add-card img {
	width: 100%;
	height: 120px;
	object-fit: cover;
	border-radius: 10px;
	background: var(--color-gray-100);
}

.add-card .p-name {
	font-size: 14px;
	font-weight: 600;
	line-height: 1.2;
	flex: 1;
}

.add-card .p-price {
	font-size: 14px;
	font-weight: 500;
}

.add-card button {
	margin-top: 4px;
	background: var(--color-green-dark);
	color: #fff;
	border: none;
	padding: 6px 10px;
	font-size: 13px;
	border-radius: 40px;
	cursor: pointer;
}

.section-footer {
	display: flex;
	justify-content: flex-end;
	gap: 24px;
	padding: 10px 14px 16px;
	align-items: center;
	flex-wrap: wrap;
}

.summary-box {
	background: #fff;
	border: 0;
	border-radius: 31px;
	padding: 24px 30px;
	max-width: 420px;
	margin: 50px auto;
	box-shadow: 0 0 10px rgba(0, 0, 0, .15);
}

.summary-row {
	display: flex;
	justify-content: space-between;
	margin-bottom: 10px;
	font-size: 15px;
}

.summary-row.total {
	font-size: 22px;
	font-weight: 700;
	margin-top: 12px;
}

.checkout-btn {
	display: block;
	width: 100%;
	background: var(--color-green-dark);
	color: #fff;
	text-align: center;
	border: none;
	padding: 18px 24px;
	font-size: 16px;
	font-weight: 600;
	border-radius: 60px;
	cursor: pointer;
	margin-top: 10px;
}

.checkout-btn[disabled] {
	opacity: .5;
	cursor: not-allowed;
}

.summary-row .muted {
	opacity: .7;
	font-weight: 400;
}

.loading-overlay {
	position: fixed;
	inset: 0;
	background: rgba(255, 255, 255, .6);
	display: flex;
	align-items: center;
	justify-content: center;
	z-index: 1000;
	font-size: 18px;
	font-weight: 600;
}

.manufacturer-link {
	cursor: pointer;
	text-decoration: underline;
	font-size: 13px;
	color: var(--color-green-dark);
}

.progress-count {
	font-weight: 700;
}

.badge {
	position: absolute;
	top: -6px;
	right: -6px;
	background: var(--color-accent);
	color: #fff;
	font-size: 11px;
	font-weight: 600;
	width: 20px;
	height: 20px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
}

/* Cart 2-column layout */
.cart-layout {
	display: grid;
	grid-template-columns: 2fr 1fr;
	gap: 40px;
	align-items: start;
}

@media (max-width: 1200px) {
	.cart-layout {
		grid-template-columns: 1fr;
	}

	.cart-layout .cart-right {
		margin: 0 0 2rem !important;
	}

	.cart-layout .summary-box {
		max-width: unset;
		margin: 0 !important;
	}
}

.cart-left {
	min-width: 0;
}

.cart-right {
	position: relative;
	margin-top: 80px;
}

.cart-summary-sticky {
	position: sticky;
	top: 120px;
}

/* Columns header and row grid mapping */
.cart-columns-grid {
	display: flex;
	gap: 12px;
	align-items: center;
	margin: 0 8px 10px 8px;
}

.cart-columns-grid .col-product {
	width: 30%;
}

.cart-columns-grid .col-qty {
	width: 20%;
}

.cart-columns-grid .col-unit {
	width: 15%;
}

.cart-columns-grid .col-deposit {
	width: 15%;
}

.cart-columns-grid .col-sum {
	width: 15%;
}

.cart-columns-header {
	color: #5D5D5D;
	font-size: 14px;
	text-align: center;
	font-weight: 600;
}

/* Map cart-item to the same grid */
.cart-item {
	position: relative;
	display: flex;
	gap: 12px;
	align-items: center;
	padding: 0;
	margin-bottom: 12px;
}

.cart-item .cart-info {
	width: 30%;
}

.cart-item .cart-qty {
	width: 20%;
}

.cart-item .cart-unit {
	width: 15%;
}

.cart-item .cart-deposit {
	width: 15%;
}

.cart-item .cart-sum {
	width: 15%;
}

.cart-item .cart-remove {
	width: 5%;
	text-align: end;
	justify-content: flex-end;
}

.cart-item>div:not(.cart-info):not(.cart-remove) {
	text-align: center;
	justify-content: center;
}

.cart-thumb {
	grid-column: 1/2
}

.cart-info {
	grid-column: 1/2;
	display: flex;
	align-items: center;
	gap: 10px;
}

.cart-info img {
	height: 100px;
	width: 100px;
	object-fit: cover;
	border-radius: 12px;
}

.cart-placeholder-img {
	width: 100px;
	height: 100px;
	background: #eee;
	border-radius: 12px;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 11px;
	color: #666;
}

.cart-qty {
	grid-column: 2/3;
	display: flex;
	justify-content: center
}

.cart-unit {
	grid-column: 3/4;
	font-weight: 700;
	justify-content: center;
	display: flex
}

.cart-deposit {
	grid-column: 4/5;
	color: var(--color-accent);
	font-weight: 700;
	justify-content: center;
	display: flex
}

.cart-sum {
	grid-column: 5/6;
	font-weight: 700;
	justify-content: flex-end !important;
	display: flex;
}

/* .cart-remove {
	position: absolute;
	right: 8px;
	top: 50%;
	transform: translateY(-50%);
} */

/* Fix sizes & spacing */
.cart-thumb img {
	width: 100px;
	height: 100px;
	object-fit: cover;
	border-radius: 12px;
	display: block;
	background: var(--color-gray-50);
}

.cart-info .name {
	margin-left: 6px;
}

/* Align text inside numeric columns to left so headers and rows align visually */
.cart-qty,
.cart-unit,
.cart-deposit,
.cart-sum {
	display: flex;
	align-items: center;
}

.cart-unit,
.cart-deposit {
	justify-content: flex-start;
}

.cart-qty {
	justify-content: flex-start;
}

/* Small quantity box to match request */
.qty-box {
	height: 32px
}

.qty-box button {
	width: 32px;
	height: 32px
}

.qty-val {
	width: 28px
}

/* ========== LEGACY (homepage specific, kept but refactored to vars) ========== */

/* ================= CHECKOUT (desktop) ================= */
.checkout-title {
	font-size: 34px;
	font-weight: 700;
	margin: 12px 0 24px
}

.checkout-layout {
	display: grid;
	grid-template-columns: 2fr 1fr 1fr;
	gap: 32px;
	align-items: start
}

.checkout-col {
	background: #fff;
	border-radius: 18px
}

.checkout-left {
	padding: 16px 20px
}

.checkout-middle {
	padding: 16px 20px
}

.checkout-right {
	position: sticky;
	top: 120px;
	padding: 16px 20px
}

.checkout-section-title {
	font-size: 18px;
	font-weight: 700;
	margin: 6px 0 12px
}

.address-select-row {
	margin-bottom: 12px
}

@media (max-width: 992px) {
	.address-select-row select {
		width: 100%;
	}
}

.grid-2 {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 12px
}

.grid-2 .form-field {
	display: flex;
	flex-direction: column
}

.form-field label {
	font-size: 13px;
	margin-bottom: 6px;
	font-weight: 600
}

/* Floating label input styling to match app */
.input {
	height: 48px;
	border: 1px solid #BCBCBC;
	border-radius: 30px;
	padding: 0 26px;
	background: #fff;
	font-size: 16px;
	position: relative
}

.input.textarea {
	height: auto;
	min-height: 100px;
	padding: 12px 26px;
	border-radius: 30px;
	width: 100%;
}

.input.select {
	appearance: auto;
	background-image: none
}

.input:disabled {
	background: #f9f9f9;
	color: #666
}

.btn-block {
	width: 100%
}

/* Radio pills - match app exactly */
.radio-pill {
	display: flex;
	align-items: center;
	gap: 16px;
	background: #F2F5F2;
	border-radius: 30px;
	padding: 20px;
	margin-bottom: 12px;
	width: 100%
}

.radio-dot {
	width: 26px;
	height: 26px;
	border-radius: 50%;
	background: var(--color-green);
	position: relative;
	flex-shrink: 0
}

.radio-dot::after {
	content: '';
	position: absolute;
	top: 4px;
	left: 4px;
	width: 18px;
	height: 18px;
	border-radius: 50%;
	background: #F2F5F2
}

/* Locker button and selection styles */
.locker-button {
	background: var(--color-green);
	color: #fff;
	border: none;
	border-radius: 25px;
	padding: 12px 24px;
	font-size: 16px;
	font-weight: bold;
	cursor: pointer;
	margin-top: 10px;
	margin-bottom: 10px;
	width: 100%
}

/* Selected locker container to match app */
.selected-locker-container {
	background: #F9FAFA;
	border-radius: 15px;
	margin-bottom: 15px;
	border: 1px solid #E5E9EA;
	overflow: hidden
}

.locker-header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	background: #F2F5F2;
	padding: 15px;
	border-bottom: 1px solid #E5E9EA
}

.locker-title {
	font-weight: 600;
	font-size: 16px;
	color: #333
}

.locker-code-badge {
	background: var(--color-green);
	padding: 4px 10px;
	border-radius: 12px;
	color: #fff;
	font-weight: bold;
	font-size: 14px
}

.locker-address-container {
	padding: 15px;
	display: flex;
	align-items: center;
	gap: 12px
}

.locker-image {
	width: 80px;
	height: 80px;
	border-radius: 8px;
	object-fit: cover
}

.locker-image-placeholder {
	width: 80px;
	height: 80px;
	border-radius: 8px;
	background: #eee;
	display: flex;
	align-items: center;
	justify-content: center
}

.locker-address-info {
	display: flex;
	flex-direction: column
}

.locker-street {
	font-size: 16px;
	font-weight: 600;
	margin-bottom: 2px
}

.locker-city-code {
	font-size: 14px;
	color: #555
}

/* Order summary styles matching app colors */
.order-summary-box {
	background: #fff;
	border-radius: 31px;
	padding: 16px;
	box-shadow: 0 0 26px rgba(0, 0, 0, .15)
}

.summary-row {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: 8px
}

.summary-row.total {
	font-size: 25px;
	font-weight: 700;
	border-top: 1px solid #F2F5F2;
	padding-top: 8px;
	margin-top: 8px
}

.summary-row .muted {
	font-weight: 400;
	color: #000
}

.summary-row .orange {
	color: #F58727;
	font-weight: 600
}

.summary-row .blue {
	color: #45A0C9;
	font-weight: 600
}

.place-order {
	margin-top: 16px
}

.order-note {
	font-size: 13px;
	color: #1E2539;
	margin-top: 10px;
	text-align: center
}

/* Advanced locker picker modal */
.locker-modal {
	position: fixed;
	inset: 0;
	z-index: 1000;
	background: rgba(0, 0, 0, .5)
}

.locker-modal-content {
	position: fixed;
	bottom: 0;
	left: 0;
	right: 0;
	background: #fff;
	height: 90vh;
	border-radius: 20px 20px 0 0;
	display: flex;
	flex-direction: column;
	overflow: hidden
}

.locker-modal-header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 15px;
	border-bottom: 1px solid #eee
}

.locker-modal-title {
	font-size: 18px;
	font-weight: bold
}

.locker-close-btn {
	font-size: 16px;
	color: var(--color-green);
	font-weight: bold;
	background: none;
	border: none;
	cursor: pointer
}

.locker-search-container {
	padding: 15px;
	display: flex;
	align-items: center;
	gap: 10px
}

.locker-search-input {
	flex: 1;
	height: 45px;
	border: 1px solid #ddd;
	border-radius: 22px;
	padding: 0 15px;
	font-size: 16px;
	background: #f9f9f9
}

.locker-location-btn {
	width: 45px;
	height: 45px;
	border-radius: 22px;
	background: #f9f9f9;
	border: 1px solid #ddd;
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer
}

.locker-list {
	flex: 1;
	overflow-y: auto;
	padding: 15px
}

.locker-item {
	display: flex;
	align-items: center;
	gap: 15px;
	padding: 8px;
	border-radius: 10px;
	margin-bottom: 10px;
	border: 2px solid #ddd;
	cursor: pointer
}

.locker-item.selected {
	border-color: var(--color-green)
}

.locker-item-image {
	width: 80px;
	height: 80px;
	border-radius: 5px;
	object-fit: cover
}

.locker-item-placeholder {
	width: 80px;
	height: 80px;
	background: #eee;
	border-radius: 5px;
	display: flex;
	align-items: center;
	justify-content: center
}

.locker-item-info {
	flex: 1
}

.locker-item-header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: 5px
}

.locker-item-name {
	font-size: 18px;
	font-weight: bold
}

.locker-item-distance {
	font-size: 14px;
	color: #555
}

.locker-item-address {
	font-size: 16px;
	color: #333
}

.locker-item-city {
	font-size: 14px;
	color: #535353
}

.locker-confirm-btn {
	margin: 15px;
	height: 50px;
	border-radius: 25px;
	background: var(--color-green);
	color: #fff;
	font-size: 18px;
	font-weight: bold;
	border: none;
	cursor: pointer
}

.locker-loading,
.locker-error,
.locker-empty {
	padding: 40px;
	text-align: center;
	font-size: 16px
}

.locker-error {
	color: #d32f2f
}

/* Top bar */
.top-bar {
	height: 40px;
	background: var(--color-dark);
	color: #fff;
	width: 100%
}

.top-bar .container {
	height: 100%;
	display: flex;
	align-items: center;
	font-size: 14px;
	font-weight: 500
}

/* Header */
header {
	height: 100px;
	width: 100%;
	display: block;
	padding: 30px 0;
}

header .container {
	display: flex;
	align-items: center;
	height: 100%;
}

.logo img {
	width: 130px;
	display: block
}

nav {
	display: flex;
	align-items: center;
	margin-left: 130px;
	flex-grow: 1
}

.menu-item {
	font-size: 16px;
	font-weight: 500;
	margin-right: 48px;
	cursor: pointer;
	user-select: none;
	color: #000;
	text-decoration: none;
}

.with-icon {
	display: flex;
	align-items: center
}

.plus-icon {
	margin-left: 7px;
	color: var(--color-green);
	font-size: 18px;
	font-weight: 700;
	display: flex;
	align-items: center
}

.search input {
	width: 292px;
	height: 40px;
	border-radius: 40px;
	background: var(--color-gray-100);
	border: none;
	padding: 0 15px;
	margin-right: 48px
}

.search input::placeholder {
	color: #000
}

.icons {
	display: flex;
	align-items: center;
	margin-left: auto;
}

.icons img {
	margin-right: 20px;
	cursor: pointer
}

.icons > img:last-child {
	margin-right: 0
}

/* ========== Hamburger button (hidden on large screens) ========== */
.hamburger {
	display: none;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	gap: 5px;
	width: 40px;
	height: 40px;
	padding: 0;
	background: none;
	border: none;
	cursor: pointer;
	margin-right: 12px;
	flex-shrink: 0;
}
.hamburger__line {
	display: block;
	width: 22px;
	height: 2.5px;
	background: var(--color-dark, #1C2D1C);
	border-radius: 2px;
	transition: transform 0.25s ease, opacity 0.2s ease;
}

/* ========== Nav overlay (dark backdrop) ========== */
.nav-overlay {
	display: none;
	position: fixed;
	inset: 0;
	background: rgba(0, 0, 0, 0.45);
	z-index: 999;
	opacity: 0;
	transition: opacity 0.3s ease;
}
.nav-overlay--visible {
	display: block;
	opacity: 1;
}

/* ========== Nav drawer (slide-in panel) ========== */
.nav-drawer {
	position: fixed;
	top: 0;
	right: 0;
	width: 380px;
	max-width: 100vw;
	height: 100vh;
	height: 100dvh;
	background: #fff;
	z-index: 1000;
	transform: translateX(100%);
	transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
	display: flex;
	flex-direction: column;
	padding: 32px 28px;
	box-shadow: -4px 0 24px rgba(0, 0, 0, 0.1);
	overflow-y: auto;
}
.nav-drawer--open {
	transform: translateX(0);
}
.nav-drawer__close {
	align-self: flex-end;
	background: none;
	border: none;
	font-size: 32px;
	line-height: 1;
	cursor: pointer;
	color: var(--color-dark, #1C2D1C);
	width: 40px;
	height: 40px;
	display: flex;
	align-items: center;
	justify-content: center;
	margin-bottom: 16px;
	flex-shrink: 0;
}
.nav-drawer__search {
	margin-bottom: 24px;
}
.nav-drawer__search input {
	width: 100%;
	height: 44px;
	border-radius: 40px;
	background: var(--color-gray-100, #F2F5F2);
	border: none;
	padding: 0 18px;
	font-size: 15px;
	font-family: inherit;
}
.nav-drawer__search input::placeholder {
	color: #999;
}
.nav-drawer__item {
	display: block;
	padding: 14px 0;
	font-size: 18px;
	font-weight: 500;
	color: var(--color-dark, #1C2D1C);
	text-decoration: none;
	border-bottom: 1px solid var(--color-gray-150, #E5E5E5);
	transition: color 0.15s;
}
.nav-drawer__item:first-of-type {
	border-top: 1px solid var(--color-gray-150, #E5E5E5);
}
.nav-drawer__item:hover {
	color: var(--color-green, #45C951);
}
.nav-drawer__item--active {
	color: var(--color-green, #45C951);
	font-weight: 600;
}

/* ================= NOTIFICATION PANEL ================= */
/* Wrapper – positioning anchor for the dropdown on desktop */
.notif-wrap {
	position: relative;
	display: inline-flex;
	align-items: center;
}

.notif-bell {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: none;
	border: none;
	padding: 0;
	cursor: pointer;
	outline: none;
}
.notif-badge {
	position: absolute;
	top: -4px;
	right: -6px;
	min-width: 18px;
	height: 18px;
	border-radius: 50%;
	background: var(--color-green, #45C951);
	color: #fff;
	font-size: 10px;
	font-weight: 700;
	display: flex;
	align-items: center;
	justify-content: center;
	line-height: 1;
	padding: 0 4px;
}

/* Overlay – used only on mobile */
.notif-overlay {
	position: fixed;
	inset: 0;
	background: rgba(0,0,0,0.35);
	z-index: 9998;
	opacity: 0;
	pointer-events: none;
	transition: opacity 0.2s;
	display: none;           /* hidden on desktop */
}
.notif-overlay--visible {
	opacity: 1;
	pointer-events: auto;
}

/* Desktop: dropdown box anchored near the bell icon */
.notif-panel {
	position: absolute;
	top: calc(100% + 12px);
	right: -40px;
	width: 380px;
	max-height: 460px;
	background: #fff;
	z-index: 9999;
	display: none;                 /* hidden by default */
	flex-direction: column;
	border-radius: 12px;
	box-shadow: 0 8px 32px rgba(0,0,0,0.14), 0 2px 8px rgba(0,0,0,0.08);
	overflow: hidden;
}
.notif-panel--open {
	display: flex;                 /* show the dropdown */
}

/* Small triangle / pointer at top */
.notif-panel::before {
	content: '';
	position: absolute;
	top: -8px;
	right: 48px;
	width: 16px;
	height: 16px;
	background: #fff;
	transform: rotate(45deg);
	box-shadow: -2px -2px 4px rgba(0,0,0,0.05);
	border-radius: 3px 0 0 0;
}

.notif-panel__header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 16px 20px 12px;
	border-bottom: 1px solid #E5E5E5;
	flex-shrink: 0;
}
.notif-panel__title {
	font-size: 18px;
	font-weight: 700;
}
.notif-panel__close {
	background: none;
	border: none;
	font-size: 24px;
	cursor: pointer;
	color: #333;
	padding: 0 4px;
	line-height: 1;
}

.notif-panel__body {
	flex: 1;
	overflow-y: auto;
	padding: 0;
}

.notif-panel__empty,
.notif-panel__loading {
	text-align: center;
	padding: 32px 20px;
	color: #888;
	font-size: 15px;
	font-style: italic;
}

.notif-item {
	padding: 14px 20px;
	border-bottom: 1px solid #E5E5E5;
	cursor: pointer;
	transition: background 0.15s;
}
.notif-item:last-child {
	border-bottom: none;
}
.notif-item:hover {
	background: #FAFAFA;
}
.notif-item--unread {
	cursor: pointer;
}
.notif-item--unread .notif-item__content {
	font-weight: 600;
}
.notif-item__date {
	font-size: 13px;
	color: #5D5D5D;
	margin-bottom: 3px;
	font-weight: 500;
}
.notif-item__content {
	font-size: 15px;
	line-height: 1.4;
	font-weight: 400;
	color: var(--color-dark, #1C2D1C);
}

/* Mild desktop-only responsive shrink (1401–1500px range) */
@media (max-width:1500px) {
	nav {
		margin-left: 50px
	}

	.menu-item {
		margin-right: 44px
	}

	.search input {
		margin-right: 44px
	}
}

/* Clamp-based scalable typography for section and heading elements */
.section-title {
	font-size: clamp(30px, 3vw, 42px);
}

.about-text h2,
.gray-section-text h2 {
	font-size: clamp(30px, 3.2vw, 44px);
}

/* Features: convert rigid spacing to flexible wrapping grid */
.features .container {
	display: flex;
	flex-wrap: wrap;
	gap: clamp(32px, 4vw, 60px);
	justify-content: space-between;
}

@media (max-width: 1620px) {
	.features .container {
		gap: 20px;
	}
}

@media (max-width: 1475px) {
	.feature {
		max-width: unset !important;
		width: calc(50% - 10px);
		flex: unset !important;
		margin: 0 !important;
	}
}

@media (max-width: 992px) {
	.feature {
		max-width: unset !important;
		width: 100%;
		flex: unset !important;
		margin: 0 !important;
	}

	.feature-icon {
		width: 120px;
		display: flex;
		justify-content: center;
	}
}

.feature {
	flex: 1 1 clamp(220px, 22%, 260px);
	display: flex;
	align-items: flex-start;
	max-width: 260px;
	margin-right: 0;
}

/* removes manual margin-right chain */
.feature-icon img {
	max-height: 80px;
	margin-right: 16px;
	flex: 0 0 auto;
}

/* FAQ switches fluid scaling */
.faq-switch {
	font-size: clamp(28px, 2.8vw, 40px);
}

/* Cart page minor fluid adjustments */
.cart-item {
	grid-template-columns: 80px 1fr 80px;
}

@media (max-width:1150px) {
	.cart-item {
		grid-template-columns: 70px 1fr 70px;
		gap: 14px;
	}

	.cart-thumb img {
		width: 70px;
		height: 70px;
	}
}

@media (max-width:1000px) {
	.cart-item {
		grid-template-columns: 60px 1fr 60px;
	}

	.price-wrap {
		font-size: 18px;
	}
}

/* Banner */
.banner img {
	width: 100%;
	display: block
}

/* Features */
.features .container {
	display: flex;
	justify-content: space-between;
	margin: 60px 0;
}

.feature {
	display: flex;
	align-items: flex-start;
	margin-right: 60px;
	max-width: 260px
}

.feature:last-child {
	margin-right: 0
}

.feature-icon img {
	max-height: 80px;
	margin-right: 16px
}

.feature-text h3 {
	font-size: 18px;
	font-weight: 700;
	margin-bottom: 5px
}

.feature-text p {
	font-size: 16px;
	color: var(--color-gray-400);
	line-height: 22px
}

/* Latest Products */
.latest-products {
	padding: 60px 0
}

.section-title {
	font-size: 42px;
	font-weight: 700;
	margin-bottom: 40px
}

/* ---------- products grid ---------- */
.products-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 24px;
	min-height: 200px;
}
.products-grid.loading {
	opacity: .6;
	position: relative;
}
.loading-indicator {
	grid-column: 1/-1;
	text-align: center;
	font-size: 16px;
	color: #555;
}

/* ---------- product card (shared – used on homepage, listing, favourites) ---------- */
.product-card {
	border: 1px solid var(--color-gray-150);
	border-radius: 16px;
	padding: 16px;
	display: flex;
	flex-direction: column;
	gap: 8px;
	transition: box-shadow .2s, transform .2s;
	background: #fff;
}
.product-card:hover {
	box-shadow: 0 4px 18px rgba(0, 0, 0, .08);
	transform: translateY(-3px);
}

/* link wrapper – reset anchor styles */
.product-card__link {
	text-decoration: none;
	color: inherit;
	display: flex;
	flex-direction: column;
	gap: 8px;
}

/* thumbnail */
.product-card__thumb {
	width: 100%;
	aspect-ratio: 1/1;
	background: var(--color-gray-100);
	border-radius: 12px;
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
	position: relative;
}
.product-card__thumb img {
	width: 100%;
	height: 100%;
	object-fit: contain;
}
.product-card__no-img {
	font-size: 12px;
	color: #666;
}

/* favourite heart overlay */
.product-card__fav {
	position: absolute;
	top: 8px;
	right: 8px;
	background: transparent;
	border: none;
	padding: 4px;
	cursor: pointer;
	z-index: 2;
}
.product-card__fav img {
	width: 24px;
	height: 24px;
	pointer-events: none;
}

/* jar size – between image and name */
.product-card__size {
	font-size: 14px;
	color: var(--color-green);
	font-weight: 500;
	min-height: 18px;
}

/* name */
.product-card__name {
	font-size: 22px;
	font-weight: 700;
	line-height: 1.25;
	min-height: 28px;
}

/* bottom row: price + cart button */
.product-card__bottom {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-top: auto;
	padding-top: 4px;
}
.product-card__price {
	font-size: 35px;
	font-weight: 700;
	line-height: 1;
	color: var(--color-dark);
}
.product-card__price sup {
	font-size: 16px;
	vertical-align: top;
	font-weight: 700;
}

/* round cart button */
.product-card__cart-btn {
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background: var(--color-gray-100);
	border: none;
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	flex-shrink: 0;
	transition: background .2s, opacity .15s;
}
.product-card__cart-btn img {
	width: 20px;
	height: 20px;
}
.product-card__cart-btn:hover {
	background: var(--color-gray-150);
}
.product-card__cart-btn--loading {
	opacity: .5;
	pointer-events: none;
}
.product-card__cart-btn--done {
	background: var(--color-green);
}
.product-card__cart-btn--done img {
	filter: brightness(0) invert(1);
}

/* legacy .btn-add kept for backwards compat but hidden when new cards are used */
.btn-add {
	margin-top: auto;
	background: var(--color-green);
	color: #fff;
	border: none;
	height: 40px;
	border-radius: 40px;
	font-size: 14px;
	font-weight: 600;
	cursor: pointer;
	transition: background .2s;
}
.btn-add:hover {
	background: #38a243;
}

/* ---------- responsive grid ---------- */
@media (max-width: 1200px) {
	.products-grid {
		grid-template-columns: repeat(3, 1fr);
	}
}
@media (max-width: 768px) {
	.products-grid {
		grid-template-columns: repeat(2, 1fr);
		gap: 16px;
	}
	.product-card__name {
		font-size: 18px;
	}
	.product-card__price {
		font-size: 26px;
	}
	.product-card__price sup {
		font-size: 13px;
	}
}

@media (max-width: 600px) {
	.products-grid {
		grid-template-columns: repeat(1, 1fr);
	}
}

/* About Section */
.about-section {
	padding: 60px 0
}

.about-section .container {
	display: flex;
	align-items: center
}

.about-image {
	flex: 0 0 570px
}

.about-image img {
	width: 100%;
	height: auto;
	max-height: 35vw;
	object-fit: cover;
	border-radius: 12px
}

.about-text {
	flex: 0 0 50%;
	padding-left: 80px
}

.green-title {
	font-size: 20px;
	font-weight: 500;
	color: var(--color-green);
	margin-bottom: 12px
}

.about-text h2 {
	font-size: 44px;
	font-weight: 700;
	margin-bottom: 18px;
	line-height: 1.1
}

.about-text .content {
	font-size: 18px;
	line-height: 30px;
	margin-bottom: 24px
}

.read-more-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	height: 48px;
	padding: 0 30px;
	border-radius: 50px;
	border: 2px solid #000;
	font-size: 16px;
	font-weight: 700;
	color: #000;
	text-decoration: none;
	transition: .25s
}

.read-more-btn:hover {
	background: #000;
	color: #fff
}

/* How it works */
.how-it-works {
	padding: 60px 0
}

.how-it-works .section-title {
	margin-bottom: 36px
}

.steps-container {
	display: flex;
	justify-content: space-between;
	align-items: stretch;
	gap: 50px
}

.step {
	flex: 1;
	display: flex;
	flex-direction: column
}

.animation-container {
	width: 100%;
	aspect-ratio: 1/1;
	margin-bottom: 28px
}

.step-title-align {
	min-height: 96px;
	display: flex;
	align-items: flex-start
}

.step h3 {
	font-size: 24px;
	font-weight: 700;
	margin: 0 0 24px
}

.step-content-align {
	flex: 1;
	display: flex;
	align-items: flex-start
}

.step p {
	font-size: 16px;
	line-height: 28px;
	margin: 0
}

/* Gray Section */
.gray-section {
	background: var(--color-gray-100);
	padding: 80px 0
}

.gray-section-content {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 64px
}

.gray-section-text {
	max-width: 40%
}

.gray-section-text h2 {
	font-size: 44px;
	font-weight: 700;
	margin-bottom: 20px
}

.gray-section-desc {
	font-size: 18px;
	line-height: 30px;
	color: var(--color-gray-600)
}

.gray-section-image {
	max-width: 50%;
	display: flex;
	justify-content: flex-end
}

.gray-section-image img {
	max-width: 400px;
	width: 100%;
	border-radius: 12px
}

/* FAQ */
.faq-section {
	background: var(--color-dark);
	padding: 80px 0 300px;
	position: relative;
	overflow: hidden
}

.faq-bg-img {
	position: absolute;
	left: 0;
	bottom: 0;
	z-index: 0;
	width: 50%;
	pointer-events: none
}

.faq-bg-img img {
	max-width: 100%
}

.faq-container {
	position: relative;
	z-index: 1;
	display: flex;
	gap: 80px
}

.faq-left {
	flex: 0 0 50%;
	display: flex;
	flex-direction: column;
	gap: 32px
}

.faq-switch {
	display: flex;
	align-items: center;
	font-size: 40px;
	font-weight: 700;
	color: #fff;
	cursor: pointer;
	opacity: .4;
	gap: 20px;
	transition: opacity .2s
}

.faq-switch.active {
	opacity: 1
}

.faq-arrow-wrap {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 32px;
	height: 32px
}

.faq-switch:not(.active) .faq-arrow-wrap {
	display: none
}

.faq-right {
	flex: 1;
	display: flex;
	flex-direction: column;
	gap: 32px
}

.faq-content {
	display: block
}

.faq-item {
	margin-bottom: 28px;
	border-bottom: 1px solid rgba(255, 255, 255, .15);
	padding-bottom: 18px
}

.faq-question {
	display: flex;
	align-items: center;
	cursor: pointer;
	font-size: 20px;
	font-weight: 700;
	color: #fff;
	gap: 20px
}

.faq-q-text {
	font-size: 20px;
	font-weight: 700;
	color: #fff
}

.faq-toggle {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 24px;
	height: 24px;
	position: relative
}

.faq-toggle.plus::before,
.faq-toggle.plus::after {
	content: "";
	position: absolute;
	background: #9CFFA5;
	border-radius: 2px
}

.faq-toggle.plus::before {
	width: 20px;
	height: 3px;
	left: 2px;
	top: 10px
}

.faq-toggle.plus::after {
	width: 3px;
	height: 20px;
	left: 10px;
	top: 2px
}

.faq-toggle.minus::before {
	content: "";
	position: absolute;
	width: 20px;
	height: 3px;
	left: 2px;
	top: 10px;
	background: #9CFFA5;
	border-radius: 2px
}

.faq-answer {
	display: none;
	margin-left: 44px;
	margin-top: 16px;
	font-size: 15px;
	line-height: 26px;
	color: #fff
}

/* ================= HOW IT WORKS (separate page) ================= */
.hiw-page {
	padding-top: 24px;
	padding-bottom: 16px
}

.hiw-banner {
	width: 100%;
	display: block
}

.hiw-banner img {
	width: 100%;
	display: block;
	object-fit: cover;
	max-height: 260px;
	border-radius: 30px;
}

.hiw-subtitles {
	padding: 24px 0
}

.hiw-subtitles-inner {
	position: relative;
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 14px;
	flex-direction: column;
}

.hiw-subtitle {
	font-size: 36px;
	font-weight: 700;
	margin: 0;
	white-space: nowrap
}

.hiw-subtitle--left {
	transform: translateX(-10%)
}

.hiw-subtitle--right {
	transform: translateX(10%)
}

.hiw-subtitle--center {
	display: block;
	text-align: center;
	margin: 6px 0
}

.hiw-lead-section {
	padding: 10px 0
}

.hiw-lead {
	color: #666;
	font-size: 16px;
	line-height: 26px;
	max-width: 1000px;
	text-align: center;
	margin: 0 auto;
}

.hiw-animation {
	padding: 24px 0
}

.hiw-animation-box {
	border-radius: 20px;
	overflow: hidden;
	max-height: 100vh;
	display: flex;
	justify-content: center;
	align-items: center;
}

.hiw-animation-box lottie-player {
	width: auto;
	min-height: 360px;
	display: block;
	height: 100%;
}

.hiw-tiles {
	padding: 10px 0
}

.hiw-tile {
	padding: 18px 0
}

.hiw-tile--gray {
	background: var(--color-gray-100);
	border-radius: 40px
}

.hiw-tile-inner {
	display: flex;
	align-items: center;
	gap: 28px;
	padding: 18px 64px 18px;
	justify-content: space-between;
}

.hiw-tile-anim {
	max-height: 600px;
	display: flex;
	justify-content: center;
	width: 45%;
}

.hiw-tile-anim lottie-player {
	max-height: 100%;
	width: auto;
	display: block
}

.hiw-tile-text {
	position: relative;
}

.hiw-tile:nth-child(odd) .hiw-tile-text {
	width: 45%;
}

.hiw-tile:nth-child(even) .hiw-tile-text {
	width: 50%;
}

.hiw-tile-text h3 {
	font-size: 28px;
	font-weight: 700;
	margin: 0 0 8px
}

.hiw-tile-text p {
	font-size: 18px;
	color: #444;
	margin: 0
}

.hiw-tile-text *:not(.hiw-tile-number) {
	z-index: 1;
	position: relative;
}

.hiw-tile-text .hiw-tile-number {
	color: #9CFFA5;
	font-size: 120px;
	font-weight: bold;
	z-index: 0;
	top: 0;
	left: 0;
	transform: translate(-80%, -50%);
	position: absolute;
}

.hiw-dual-center {
	padding: 24px 0
}

.hiw-paragraph {
	color: #666;
	font-size: 16px;
	line-height: 26px;
	text-align: center;
	margin-top: 8px
}

.hiw-underline {
	text-decoration: underline;
	font-weight: 600
}

@media (max-width:1100px) {
	.hiw-subtitle {
		font-size: 32px;
		white-space: normal;
		text-align: center
	}

	.hiw-subtitle--left,
	.hiw-subtitle--right {
		transform: none
	}

	.hiw-subtitles-inner {
		flex-direction: column
	}

	.hiw-tile-inner {
		flex-direction: column
	}

	.hiw-tile-anim lottie-player {
		min-height: unset;
	}
}

/* ========== REUSABLE PAGE COMPONENTS ==========
   Shared across about, contact, etc. */

/* Generic page title (used at top of subpages) */
.page-title {
	font-size: clamp(30px, 3.2vw, 42px);
	font-weight: 700;
	margin: 24px 0 32px;
}

/* ---------- Content section (image + text side-by-side) ---------- */
.content-section {
	padding-top: 32px;
	padding-bottom: 32px;
	margin-top: 5rem;
	margin-bottom: 5rem;
}

.content-section__inner {
	display: flex;
	align-items: center;
	gap: clamp(32px, 4vw, 80px);
}

.content-section__media {
	flex: 0 0 45%;
	max-width: 45%;
}

.content-section__media img {
	width: 100%;
	height: auto;
	border-radius: 24px;
	display: block;
	object-fit: cover;
}

.content-section__text {
	flex: 1;
	min-width: 0;
}

.content-section__title {
	font-size: clamp(26px, 2.8vw, 36px);
	font-weight: 700;
	margin-bottom: 18px;
	line-height: 1.15;
}

.content-section__text p {
	font-size: 16px;
	line-height: 26px;
	margin-bottom: 16px;
}

.content-section__text p:last-child {
	margin-bottom: 0;
}

/* Reversed variant: image on right */
.content-section--reverse .content-section__inner {
	flex-direction: row-reverse;
}

/* ---------- Overlay section (text on dark image background) ---------- */
.overlay-section {
	border-radius: 24px;
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
	overflow: hidden;
	margin: 5rem 0;
}

.overlay-section__inner {
	background: rgba(0, 0, 0, 0.6);
	padding: clamp(32px, 4vw, 64px);
	color: #fff;
}

.overlay-section__inner.big-padding {
	padding-top: 10rem;
	padding-bottom: 10rem;
}

.overlay-section__title {
	font-size: clamp(26px, 2.8vw, 36px);
	font-weight: 700;
	margin-bottom: 18px;
	color: #fff;
}

.overlay-section__inner p {
	font-size: 16px;
	line-height: 26px;
	margin-bottom: 16px;
	color: #fff;
}

.overlay-section__inner p:last-child {
	margin-bottom: 0;
}

.overlay-section__highlight {
	font-weight: 700;
	color: #8ce28c;
}

/* Two equal columns inside overlay (used in Społeczność) */
.overlay-section__cols {
	display: flex;
	gap: clamp(24px, 3vw, 56px);
	align-items: flex-start;
}

.overlay-section__cols p {
	flex: 1;
	margin-bottom: 0;
}

/* ---------- Tick list (checkmark items, reusable) ---------- */
.tick-list {
	list-style: none;
	padding: 0;
	margin: 16px 0;
}

.tick-list li {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	margin-bottom: 14px;
	font-size: 16px;
	line-height: 24px;
	font-weight: 500;
}

.tick-list li:last-child {
	margin-bottom: 0;
}

.tick-list__icon {
	flex-shrink: 0;
	width: 26px;
	height: 26px;
	border-radius: 50%;
	background: var(--color-green);
	color: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 14px;
	font-weight: 700;
	margin-top: 1px;
}

/* ---------- About banner ---------- */
.about-banner {
	border-radius: 24px;
	overflow: hidden;
	margin-bottom: 16px;
}

.about-banner img {
	width: 100%;
	height: auto;
	display: block;
	object-fit: cover;
	max-height: 340px;
}

/* ---------- "How it works" section on About page ---------- */
.about-how-section {
	background: var(--color-gray-100);
	padding: 56px 0;
	margin: 32px 0;
}

.about-how-section__lead {
	font-size: clamp(18px, 1.6vw, 22px);
	margin-bottom: 8px;
	line-height: 1.4;
}

.about-how-section__green-underline {
	color: #8ce28c;
	text-decoration: underline;
	font-weight: 600;
}

.about-how-section__sub {
	font-size: 16px;
	line-height: 26px;
	margin-bottom: 36px;
	max-width: 700px;
}

.about-how-cards {
	display: flex;
	gap: 20px;
	margin-bottom: 36px;
}

.about-how-card {
	flex: 1;
	background: #fff;
	border-radius: 24px;
	padding: 28px 24px;
	display: flex;
	flex-direction: column;
}

.about-how-card__number {
	font-size: 28px;
	font-weight: 700;
	color: var(--color-green);
	margin-bottom: 12px;
}

.about-how-card p {
	font-size: 15px;
	line-height: 24px;
	margin: 0;
}

.about-how-section__cta {
	text-align: center;
}

/* ========== LOGIN PAGE ========== */
.login-wrapper {
	padding-bottom: 50px;
}

.login-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 16px;
	margin-bottom: 24px;
}

.login-form,
.register-form {
	background: var(--color-gray-100);
	border-radius: var(--radius-xl);
	padding: 16px;
}

.login-form h1,
.register-form h1 {
	font-size: 26px;
	font-weight: 700;
	text-align: center;
}

.login-form .login-subtitle,
.register-form .login-subtitle {
	font-size: 20px;
	font-weight: 500;
	text-align: center;
	margin-bottom: 32px;
}

.login-fields {
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.login-fields label {
	font-weight: 600;
}

.login-fields input[type="email"],
.login-fields input[type="password"],
.login-fields input[type="text"] {
	height: 50px;
	border-radius: 50px;
	padding: 13px 26px;
	background: #fff;
	border: 1px solid #BCBCBC;
	width: 100%;
	font-family: inherit;
	font-size: 15px;
}

.login-forgot {
	color: #45A0C9;
	text-decoration: underline;
	text-align: center;
	margin-bottom: 8px;
	display: block;
}

.login-submit-btn {
	background: var(--color-dark);
	border-radius: var(--radius-xl);
	height: 72px;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 16px;
	width: 100%;
	border: none;
	cursor: pointer;
}

.login-submit-btn span {
	font-size: 18px;
	color: #9CFFA5;
	font-weight: 600;
}

.login-checkbox-label {
	display: flex;
	gap: 8px;
	align-items: center;
}

.login-seller-section {
	background: var(--color-green);
	border-radius: var(--radius-xl);
	padding: 32px;
	text-align: center;
}

.login-seller-section h2 {
	font-size: 26px;
	font-weight: 700;
	margin-bottom: 16px;
	color: #fff;
}

.login-seller-section p {
	font-size: 20px;
	font-weight: 500;
	margin-bottom: 16px;
	color: #fff;
}

.login-seller-btn {
	background: #000;
	color: #fff;
	height: 55px;
	border-radius: 55px;
	padding: 0 50px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border: none;
	cursor: pointer;
	font-weight: 500;
	font-size: 16px;
	text-decoration: none;
}

/* ========== RESPONSIVE ========== */

/* --- 1200px: Homepage image+text sections stack vertically --- */
@media (max-width:1200px) {
	.about-section .container {
		flex-direction: column;
		gap: 32px;
	}
	.about-image {
		flex: none;
		width: 100%;
	}
	.about-image img {
		max-height: 400px;
		width: 100%;
	}
	.about-text {
		flex: none;
		width: 100%;
		padding-left: 0;
	}
	.gray-section-content {
		flex-direction: column;
		gap: 32px;
	}
	.gray-section-text {
		max-width: 100%;
	}
	.gray-section-image {
		max-width: 100%;
	}
	.gray-section-image img {
		max-width: 100%;
	}
}

/* --- 1400px: Hamburger kicks in, text nav links hide --- */
@media (max-width:1400px) {
	.container {
		padding-inline: clamp(40px, 5vw, 120px);
	}

	.features .container {
		padding-top: 60px;
		padding-bottom: 60px;
	}

	/* Show hamburger (now outside nav, next to logo) */
	.hamburger {
		display: flex;
	}

	.nav-link {
		display: none !important;
	}

	/* Nav holds only search + icons, pushed to the right */
	nav {
		margin-left: auto;
		gap: 0;
		justify-content: flex-end;
	}

	.search {
		margin-right: 0;
	}

	.search input {
		margin-right: 16px;
		width: 220px;
	}

	.icons {
		margin-left: 16px;
	}
}

@media (max-width:1100px) {
	.search input {
		width: 180px;
	}
}

@media (max-width:992px) {
	/* ===== MOBILE breakpoint ===== */

	/* Content sections: stack vertically */
	.content-section__inner {
		flex-direction: column;
	}

	.content-section--reverse .content-section__inner {
		flex-direction: column;
	}

	.content-section__media {
		flex: none;
		max-width: 100%;
		width: 100%;
	}

	/* How-it-works cards: stack */
	.about-how-cards {
		flex-direction: column;
	}

	/* Overlay columns: stack on mobile */
	.overlay-section__cols {
		flex-direction: column;
	}

	/* Page title smaller on mobile */
	.page-title {
		font-size: 28px;
		margin: 16px 0 24px;
	}

	/* Footer: stack vertically */
	.footer-grid {
		grid-template-columns: 1fr;
		gap: 28px;
		text-align: center;
	}

	.footer-logo {
		text-align: center;
	}

	.footer-links {
		display: flex;
		flex-direction: column;
		align-items: center;
		gap: 6px;
	}

	.footer-app-box {
		max-width: 300px;
		margin-inline: auto;
	}

	.footer-actions {
		align-items: center;
	}

	.footer-auth {
		justify-content: center;
	}

	.footer-seller {
		flex-direction: column;
		align-items: center;
		text-align: center;
	}

	/* Header: smaller padding */
	header {
		padding: 20px 0;
		height: auto;
	}

	.logo img {
		width: 110px;
	}

	.search input {
		width: 160px;
		height: 36px;
		font-size: 14px;
	}

	.icons img {
		width: 22px;
		height: 22px;
		margin-right: 14px;
	}

	/* ===== HOMEPAGE MOBILE ADJUSTMENTS ===== */

	/* --- Banner --- */
	.banner {
		padding: 0;
	}
	.banner .container {
		padding-inline: 0;
	}
	.banner .container img {
		border-radius: 0;
	}

	/* --- Features --- */
	.features {
		margin: 32px 0;
	}
	.features .container {
		flex-direction: column;
		gap: 20px;
		padding-top: 0;
		padding-bottom: 0;
	}
	.feature {
		max-width: 100%;
		flex: none;
	}

	/* --- Section titles --- */
	.section-title {
		font-size: 26px;
		margin-bottom: 20px;
	}

	/* --- Latest products --- */
	.latest-products {
		padding: 32px 0;
	}

	.products-grid {
		grid-template-columns: repeat(2, 1fr);
		gap: 12px;
	}

	/* --- About section (image + text) --- */
	.about-section {
		padding: 32px 0;
	}
	.about-section .container {
		flex-direction: column;
		gap: 24px;
	}
	.about-image {
		flex: none;
		width: 100%;
	}
	.about-image img {
		width: 100%;
		border-radius: 16px;
	}
	.about-text {
		flex: none;
		width: 100%;
		padding-left: 0;
	}
	.about-text h2 {
		font-size: 26px;
	}

	/* --- How-it-works (homepage steps) --- */
	.how-it-works {
		padding: 32px 0;
	}
	.steps-container {
		flex-direction: column;
		gap: 24px;
	}
	.step {
		flex: none;
		width: 100%;
	}
	.animation-container {
		aspect-ratio: auto;
		max-height: 260px;
		overflow: hidden;
	}

	/* --- Gray section (text + image reversed) --- */
	.gray-section {
		padding: 32px 0;
	}
	.gray-section-content {
		flex-direction: column;
		gap: 24px;
	}
	.gray-section-text {
		max-width: 100%;
	}
	.gray-section-text h2 {
		font-size: 26px;
	}
	.gray-section-image {
		width: 100%;
	}
	.gray-section-image img {
		width: 100%;
		border-radius: 16px;
	}

	/* --- FAQ section --- */
	.faq-section {
		padding: 40px 0;
	}
	.faq-container {
		flex-direction: column;
		gap: 32px;
	}
	.faq-left {
		flex: none;
		width: 100%;
	}
	.faq-switch {
		font-size: 24px;
	}
	.faq-right {
		width: 100%;
	}
	.faq-bg-img {
		display: none;
	}
	/* --- God section mobile: stacked column (box – image – box) --- */
	.god-section {
		position: static;
		display: flex;
		flex-direction: column;
		gap: 16px;
		margin-top: 40px;
		margin-bottom: 40px;
	}
	.god-section .god-bg {
		border-radius: 16px;
		order: 1;
	}
	.god-section .god-boxes {
		position: static;
		transform: none;
		display: contents;
		width: auto;
		max-width: none;
	}
	.god-section .god-box {
		min-width: unset;
		max-width: 100%;
		width: 100%;
		border-radius: 16px;
		padding: 24px 20px;
		background: var(--color-gray-100, #F2F5F2);
		box-shadow: none;
		margin: 0 auto;
	}
	.god-section .god-box:first-child {
		order: 0;
	}
	.god-section .god-box:last-child {
		order: 2;
	}
	.god-section .god-box .section-title {
		font-size: 24px;
	}

	/* --- Checkout mobile --- */
	.checkout-layout {
		grid-template-columns: 1fr;
		gap: 20px;
	}
	.checkout-right {
		position: static;
	}
	.grid-2 {
		grid-template-columns: 1fr;
	}

	/* --- Account panel mobile --- */
	#my-pantry-panel {
		padding: 20px 16px !important;
		border-radius: 16px !important;
	}
	.pantry-grid {
		grid-template-columns: 1fr !important;
		gap: 8px !important;
	}
	.account-layout {
		display: flex !important;
		flex-direction: column !important;
		gap: 16px !important;
	}
	.account-layout > aside,
	.account-sidebar {
		width: 100% !important;
	}
	.account-layout > main,
	.account-content {
		width: 100% !important;
	}
	.account-form-grid {
		grid-template-columns: 1fr !important;
	}
	.account-details-buttons {
		flex-direction: column !important;
	}
	.account-details-buttons button {
		width: 100% !important;
	}
	.feedback-cards {
		flex-direction: column !important;
	}
	.feedback-card {
		width: 100% !important;
	}
	.address-card {
		width: 100% !important;
	}
	#myjars-list {
		flex-wrap: wrap !important;
	}
	.myjars-product {
		width: 100% !important;
		flex-direction: row !important;
		align-items: center !important;
	}
	.myjars-product img {
		width: 100px !important;
		min-width: unset !important;
		max-width: unset !important;
	}
	.myjars-product-img {
		width: 100px !important;
		min-width: unset !important;
		max-width: unset !important;
	}

	/* --- HIW separate page tiles at ≤992px --- */
	.hiw-tile-inner {
		padding: 18px;
	}
	.hiw-tile-anim {
		width: 100%;
	}
	.hiw-tile:nth-child(odd) .hiw-tile-text,
	.hiw-tile:nth-child(even) .hiw-tile-text {
		width: 100%;
	}
	.hiw-animation-box lottie-player {
		min-height: unset;
	}
	.hiw-tile-anim lottie-player {
		min-height: unset;
	}
	.hiw-tile-text .hiw-tile-number {
		transform: translate(0, -100%);
	}

	/* --- Cart mobile layout (matching mobile app) --- */
	.cart-title {
		font-size: 26px;
		margin: 16px 0 20px;
		text-align: center;
	}

	.cart-layout {
		grid-template-columns: 1fr;
		gap: 0;
	}

	.cart-right {
		margin-top: 0;
	}

	.cart-summary-sticky {
		position: static;
	}

	/* Hide desktop column headers */
	.cart-columns-header {
		display: none;
	}

	/* Cart item: mobile layout matching mobile app
	   ┌──────┬──────────────────────┬───┐
	   │ IMG  │  Product name        │ X │
	   │ 80px │  Price +Dep   [±Qty] │30 │
	   └──────┴──────────────────────┴───┘
	   We re-use the existing flex children with absolute positioning.
	   The .name is inside .cart-info, so we use overflow:visible. */
	.cart-item {
		position: relative;
		display: flex;
		flex-wrap: nowrap;
		gap: 0;
		padding: 8px 0;
		margin: 0 0 16px 12px;
		min-height: 96px;
		align-items: flex-start;
	}

	/* Reset all child widths from desktop */
	.cart-item .cart-info,
	.cart-item .cart-qty,
	.cart-item .cart-unit,
	.cart-item .cart-deposit,
	.cart-item .cart-sum,
	.cart-item .cart-remove {
		width: auto;
		flex: none;
	}

	/* Image column */
	.cart-item .cart-info {
		flex: 0 0 80px;
		width: 80px;
		overflow: visible;
		position: relative;
	}
	.cart-item .cart-info img {
		width: 80px;
		height: 80px;
		border-radius: 13px;
		display: block;
	}
	.cart-item .cart-placeholder-img {
		width: 80px;
		height: 80px;
		border-radius: 13px;
		font-size: 10px;
	}
	/* Name: break out of .cart-info using absolute + wide width */
	.cart-item .cart-info .name {
		position: absolute;
		top: 0;
		left: 92px;
		width: max(120px, calc(100vw - 200px));
		font-size: 16px;
		font-weight: 700;
		white-space: nowrap;
		overflow: hidden;
		text-overflow: ellipsis;
		margin: 0;
		line-height: 1.3;
	}

	/* Hide sum column on mobile — app doesn't show it */
	.cart-item .cart-sum {
		display: none;
	}

	/* Bottom row: price, deposit, qty — use flex */
	.cart-item .cart-unit,
	.cart-item .cart-deposit,
	.cart-item .cart-qty {
		position: absolute;
		bottom: 10px;
	}

	/* Unit price */
	.cart-item .cart-unit {
		left: 92px;
		font-size: 24px;
		font-weight: 700;
		display: flex;
		align-items: baseline;
	}
	.cart-item .cart-unit small {
		font-size: 12px;
	}

	/* Deposit: offset from left, after price */
	.cart-item .cart-deposit {
		left: 164px;
		font-size: 14px;
		font-weight: 600;
		display: flex;
		align-items: baseline;
		bottom: 13px;
	}
	.cart-item .cart-deposit small {
		font-size: 10px;
	}

	/* Qty: right side of bottom row */
	.cart-item .cart-qty {
		right: 36px;
		display: flex;
		justify-content: flex-end;
	}
	.cart-item .qty-box {
		height: 35px;
	}
	.cart-item .qty-box button {
		width: 32px;
		height: 35px;
		font-size: 20px;
	}

	/* Remove button: full-height right strip (matching app) */
	.cart-item .cart-remove {
		position: absolute;
		right: 0;
		top: 0;
		bottom: 0;
		width: 30px;
		display: flex;
		align-items: stretch;
		text-align: center;
	}
	.cart-item .cart-remove .remove-btn {
		background: #F4DADA;
		border-radius: 8px 0 0 8px;
		padding: 0;
		height: 100%;
		width: 100%;
		display: flex;
		align-items: center;
		justify-content: center;
		font-size: 16px;
	}

	/* Cart section header mobile */
	.cart-section-header {
		padding: 10px 20px;
		border-radius: 18px 18px 0 0;
	}
	.cart-section-header h3 {
		font-size: 16px;
	}
	.cart-progress {
		height: 3px;
	}
	.cart-progress-bar {
		height: 3px;
	}

	/* Additional products: horizontal scroll, smaller cards */
	.add-more {
		padding: 12px 16px;
	}
	.add-card {
		flex: 0 0 140px;
	}
	.add-card img {
		height: 90px;
	}

	/* Summary box mobile */
	.summary-box {
		max-width: 100% !important;
		margin: 16px 0 !important;
		padding: 16px 20px;
		border-radius: 24px;
	}
	.summary-row {
		font-size: 14px;
	}
	.checkout-btn {
		padding: 16px 20px;
		font-size: 15px;
		border-radius: 100px;
	}

	/* --- Login page --- */
	.login-grid {
		grid-template-columns: 1fr !important;
	}
}

@media (max-width:780px) {
	/* Nav drawer full-width on smaller screens */
	.nav-drawer {
		width: 100vw;
	}

	/* Hide desktop search — drawer has its own */
	.search {
		display: none;
	}

	.icons img {
		margin-right: 10px;
	}
}

@media (max-width:520px) {
	.container {
		padding-inline: 16px;
	}

	header .container {
		gap: 8px;
	}

	.logo img {
		width: 90px;
	}

	.icons img {
		width: 20px;
		height: 20px;
		margin-right: 8px;
	}

	/* Even tighter homepage spacing on small screens */
	.products-grid {
		grid-template-columns: 1fr;
	}

	.section-title {
		font-size: 22px;
		margin-bottom: 16px;
	}

	.features {
		margin: 20px 0;
	}

	.latest-products {
		padding: 20px 0;
	}

	.about-section {
		padding: 20px 0;
	}

	.how-it-works {
		padding: 20px 0;
	}

	.gray-section {
		padding: 20px 0;
	}

	.faq-section {
		padding: 24px 0;
	}

	.god-section {
		margin-top: 24px;
		margin-bottom: 24px;
	}

	.god-section .god-box {
		padding: 20px 16px;
	}

	.about-text h2,
	.gray-section-text h2 {
		font-size: 22px;
	}

	.hiw-tile-text h3 {
		font-size: 22px;
	}
}

/* ===== Custom full-width section under FAQ ===== */
/* Desktop: image as hero, boxes overlaid side-by-side at the bottom */
.god-section {
	position: relative;
	width: 100%;
	margin: 80px 0;
	padding: 0;
}

.god-section .god-bg {
	display: block;
	width: 100%;
	height: auto;
	border-radius: 20px;
}

.god-section .god-boxes {
	position: absolute;
	bottom: -40px;
	left: 50%;
	transform: translateX(-50%);
	display: flex;
	gap: 24px;
	justify-content: center;
	z-index: 2;    
	width: 100%;
    max-width: unset;
    justify-content: space-around;
}

.god-section .god-box {
	background: #fff;
	border-radius: 20px;
	box-shadow: 0 4px 24px rgba(0,0,0,0.08);
	padding: 28px 36px;
	flex: 1 1 0;
	min-width: 280px;
	max-width: 504px;
	text-align: center;
	font-weight: 700;
}

.god-section .god-box .section-title {
	margin: 0 0 10px;
	font-size: clamp(28px, 2.6vw, 38px);
}

.god-section .god-box .content {
	font-size: 16px;
	line-height: 26px;
	color: var(--color-gray-600);
	font-weight: 500;
}

/* Space below to accommodate the overlapping boxes */
.god-section {
	margin-bottom: 120px;
}

@media (max-width: 992px) {
	#cartPageRoot {
		padding: 0;
	}

	.cart-right {
		padding-inline: clamp(40px, 5vw, 120px);
	}

	.cart-title {
		padding-inline: clamp(40px, 5vw, 120px);
	}
}

/* ── Notification panel – mobile (full-screen slide-in) ── */
@media (max-width: 992px) {
	.notif-overlay {
		display: block;          /* enable overlay on mobile */
	}
	.notif-panel {
		position: fixed;
		top: 0;
		right: -100vw;
		width: 100vw;
		max-height: none;
		height: 100vh;
		border-radius: 0;
		display: flex;
		transition: right 0.25s ease;
		box-shadow: -4px 0 24px rgba(0,0,0,0.12);
	}
	.notif-panel::before {
		display: none;           /* hide the triangle pointer */
	}
	.notif-panel--open {
		display: flex;
		right: 0;
	}
	.notif-panel__header {
		padding: 20px 20px 16px;
	}
	.notif-panel__title {
		font-size: 22px;
	}
	.notif-panel__close {
		font-size: 28px;
	}
	.notif-item {
		padding: 16px 20px;
	}
}