:root {
	--taupe: #bda994;
	--text-dark: #333;
	--border-color: #eeeeee;
	--bg-light: #fdfdfd;
    --img-bg: #dcd0c4; /* sensible fallback for image background areas */
}

/* Cart — pixel-perfect adjustments */
.cart-left .shop_table {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
}

/* Header styling */
.cart-left .shop_table thead th {
  text-transform: uppercase;
  letter-spacing: 2px;
  font-weight: 700;
  font-size: 13px;
  color: #6b6b6b;
  padding: 26px 12px;
  vertical-align: middle;
  background: transparent;
}

/* Make the Price header taupe to match screenshot */
.cart-left .shop_table thead th.product-price {
  color: var(--taupe);
  text-align: center;
}

/* Column widths: remove (automatically distribute) but fix thumbnail and subtotal */
.cart-left .shop_table td,
.cart-left .shop_table th {
  padding: 22px 12px;
  vertical-align: middle;
}

/* Thumbnail column */
.cart-left .shop_table td.product-thumbnail {
  width: 240px;
  padding-right: 30px;
}
.cart-left .shop_table td.product-thumbnail img,
.cart-left .shop_table td.product-thumbnail a img {
  display: block;
  width: 220px;
  max-width: 100%;
  height: auto;
  object-fit: contain;
  margin: 0;
}

/* Remove column */
.cart-left .shop_table td.product-remove {
  width: 48px;
  text-align: left;
  padding-left: 8px;
}

/* Style the remove link so it sits top-left nicely */
.cart-left .shop_table td.product-remove .remove {
  display: inline-block;
  color: #777;
  font-size: 20px;
  line-height: 1;
  padding: 6px 4px;
}

/* Product name */
.cart-left .shop_table td.product-name {
  text-align: left;
  padding-left: 14px;
}
.cart-left .shop_table td.product-name a {
  display: block;
  color: #3a3a3a;
  text-decoration: none;
  font-weight: 600;
  font-size: 14px;
  line-height: 1.3;
  max-width: 520px; /* prevent overflow, allows wrapping like screenshot */
  word-wrap: break-word;
}
.cart-left .shop_table td.product-name a:hover {
  color: var(--taupe);
  text-decoration: underline;
}

/* Price column (in-row) */
.cart-left .shop_table td.product-price {
  text-align: center;
  color: var(--taupe);
  font-weight: 700;
  font-size: 18px;
  padding: 22px 12px;
  white-space: nowrap;
}

/* Quantity column */
.cart-left .shop_table td.product-quantity {
  text-align: center;
  width: 120px;
  padding: 22px 8px;
}
.cart-left .shop_table td.product-quantity .quantity,
.cart-left .shop_table td.product-quantity input.input-text.qty {
  display: inline-block;
  vertical-align: middle;
}
.cart-left .shop_table td.product-quantity input.input-text.qty {
  width: 48px;
  text-align: center;
  padding: 6px 8px;
  border: 1px solid #e6e6e6;
  border-radius: 2px;
  font-weight: 600;
  font-size: 13px;
}

/* Subtotal column */
.cart-left .shop_table td.product-subtotal {
  text-align: right;
  width: 140px;
  padding-right: 16px;
  color: #666;
  font-weight: 600;
}

/* Row rhythm / separator */
.cart-left .shop_table tbody tr.cart_item {
  border-bottom: 1px solid #f2f2f2;
}
.cart-left .shop_table tbody tr.cart_item td {
  padding-top: 26px;
  padding-bottom: 26px;
}

/* Coupon / actions row: keep full width and aligned */
.cart-left .shop_table tr td.actions { padding: 18px 12px; }

/* Totals card refinements */
.cart-right .cart_totals {
  padding: 30px;
  border: 1px solid #e9e0d8;
  background: #fff;
  box-shadow: none;
}
.cart-right .cart_totals h2 {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 2px;
  color: #4a4a4a;
  margin-bottom: 18px;
  text-transform: uppercase;
}

/* Totals table rows */
.cart-right .cart_totals table tr th {
  font-weight: 600;
  color: #888;
  font-size: 13px;
  text-align: left;
  padding: 10px 0;
}
.cart-right .cart_totals table tr td {
  text-align: right;
  padding: 10px 0;
  font-size: 14px;
}
.cart-right .cart_totals .order-total td strong {
  font-size: 18px;
  color: var(--taupe);
  font-weight: 700;
}

/* CTA inside totals card — make identical to the screenshot */
.cart-right .cart_totals .checkout-button.taupe-btn,
.cart-right .cart_totals .taupe-btn {
  display: block;
  background: var(--taupe);
  color: #fff;
  text-align: center;
  border: none;
  padding: 14px 18px;
  font-weight: 700;
  letter-spacing: 1px;
  margin-top: 18px;
  text-decoration: none;
}

/* Two-column cart layout (left: products, right: totals) */
.cart-layout {
  display: grid;
  grid-template-columns: 1fr 360px;
  gap: 40px;
  align-items: start;
  margin-top: 30px;
}
.cart-left { }
.cart-right { }

/* Small responsive tweaks to match screenshot on tablets/phones */
@media (max-width: 1200px) {
  .cart-left .shop_table td.product-thumbnail { width: 200px; }
  .cart-left .shop_table td.product-thumbnail img { width: 180px; }
}

@media (max-width: 768px) {
  .cart-layout { grid-template-columns: 1fr; gap: 20px; }
  .cart-right { order: 2; }
  .cart-left { order: 1; }
  .cart-left .shop_table td.product-thumbnail { width: 140px; padding-right: 16px; }
  .cart-left .shop_table td.product-thumbnail img { width: 120px; }
  .cart-left .shop_table thead { display: none; } /* compact table on small screens */
  .cart-left .shop_table td { display: block; width: 100%; padding: 12px 0; }
  .cart-left .shop_table td.product-subtotal { text-align: left; padding-top: 6px; }
  .cart-right .cart_totals { width: 100%; }
  .cart-right .cart_totals .checkout-button.taupe-btn { padding: 12px; }
}

* { margin: 0; padding: 0; box-sizing: border-box; }
body { font-family: 'Montserrat', sans-serif; overflow-x: hidden; color: var(--text-dark); background: #fff; }

/* ANNOUNCEMENT */
.announcement-bar { background: var(--taupe); height: 35px; }

/* HEADER DESKTOP (Restored) */
.top-utility {
	display: grid;
	grid-template-columns: 1fr auto 1fr;
	align-items: center;
	padding: 15px 40px;
	border-bottom: 1px solid var(--border-color);
}
.header-left { display: flex; align-items: center; } /* Empty on desktop */
.logo img { height: 55px; display: block; }

.user-actions { display: flex; justify-content: flex-end; align-items: center; gap: 25px; }
.account-link { text-decoration: none; color: #000; font-size: 11px; text-transform: uppercase; letter-spacing: 1px; }
.icon-group { display: flex; gap: 18px; align-items: center; }
.nav-icon { width: 20px; height: 20px; fill: #333; cursor: pointer; transition: 0.2s; }
.nav-icon:hover { fill: var(--taupe); }
.header-search { position: relative; }
.header-search-toggle, .header-search-submit { display: flex; align-items: center; justify-content: center; padding: 0; border: 0; background: transparent; cursor: pointer; }
.header-search-popover { position: absolute; z-index: 1000; top: 100%; right: -15px; width: min(450px, calc(100vw - 30px)); padding-top: 20px; }
.header-search-popover[hidden], .header-search-all[hidden] { display: none; }
.header-search-box { background: #fff; border: 1px solid #eee; box-shadow: 0 2px 8px rgba(0,0,0,.08); }
.header-search-box form { display: flex; align-items: center; gap: 12px; padding: 20px 22px; }
.header-search-box input { flex: 1; min-width: 0; border: 0; outline: 0; background: transparent; color: #555; font-family: 'Playfair Display', serif; font-size: 19px; }
.header-search-box input::placeholder { color: #888; opacity: 1; }
.header-search-label { position: absolute; width: 1px; height: 1px; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; }
.header-search-toggle:focus-visible, .header-search-submit:focus-visible, .header-search-box input:focus-visible, .header-search-box a:focus-visible { outline: 2px solid var(--taupe); outline-offset: 3px; }
.header-search-results { font-size: 13px; }
.header-search-status:not(:empty) { padding: 0 22px 10px; color: #777; }
.header-search-scroll { max-height: 400px; overflow-y: auto; }
.header-search-list { list-style: none; margin: 0; padding: 0; }
.header-search-list a { box-sizing: border-box; display: flex; align-items: center; gap: 16px; height: 100px; padding: 10px 22px; border-top: 1px solid #f3f3f3; color: #555; text-decoration: none; }
.header-search-list a:hover, .header-search-list a:focus { background: #f8f7f5; color: #8c7564; }
.header-search-image { width: 60px; height: 78px; object-fit: cover; background: #f7f5f3; flex: none; }
.header-search-product { min-width: 0; display: flex; flex-direction: column; gap: 7px; }
.header-search-name { display: -webkit-box; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 2; line-height: 1.4; }
.header-search-price { display: flex; gap: 8px; align-items: baseline; }
.header-search-all { display: block; padding: 13px 22px; border-top: 1px solid #eee; color: #8c7564; font-weight: 600; }
.search-results-heading { margin-bottom: 30px; }
.search-results-heading h1 { font-family: 'Playfair Display', serif; color: #555; font-size: 32px; font-weight: 400; margin-bottom: 10px; }
.search-results-heading p, .search-results-empty { color: #777; font-size: 13px; line-height: 1.6; overflow-wrap: anywhere; }
.search-results-empty { margin-bottom: 25px; }
.cart-wrapper { position: relative; }
.cart-count { position: absolute; top: -5px; right: -8px; background: var(--taupe); color: white; font-size: 9px; padding: 2px 5px; border-radius: 10px; }

/* DESKTOP MENU */
.category-nav { border-bottom: 1px solid var(--border-color); }
.nav-menu { list-style: none; display: flex; justify-content: center; align-items: center; gap: 30px; padding: 14px 0; }
.nav-menu > li > a { text-decoration: none; color: var(--text-dark); font-size: 13px; letter-spacing: 0.5px; }
.has-dropdown { position: relative; }
.dropdown {
	position: absolute; top: 100%; left: 0; margin-top: 15px; background: white; list-style: none; min-width: 180px;
	box-shadow: 0 10px 30px rgba(0,0,0,0.05); opacity: 0; visibility: hidden; transition: 0.3s; z-index: 1000; border: 1px solid #eee;
}
.has-dropdown:hover .dropdown { opacity: 1; visibility: visible; }
.dropdown li a { display: block; padding: 12px 20px; text-decoration: none; color: #444; font-size: 12px; }
.mini-logo { height: 22px; margin-right: 10px; }

/* HERO SLIDER */
.hero-slider { position: relative; width: 100%; height: 80vh; overflow: hidden; }
.slider-wrapper { display: flex; width: 400%; height: 100%; transition: transform 0.8s ease-in-out; }
.slide { width: 25%; height: 100%; }
.panel { width: 100%; height: 100%; background-size: cover; background-position: center; }
.p1, .p2, .p3, .p4 { background-color: var(--img-bg); }
.hero-slider .p1 { background-image: url('../images/slider/1.jpg'); }
.hero-slider .p2 { background-image: url('../images/slider/2.jpg'); }
.hero-slider .p3 { background-image: url('../images/slider/3.jpg'); }
.hero-slider .p4 { background-image: url('../images/slider/4.jpg'); }

.slider-arrow {
	position: absolute; top: 50%; transform: translateY(-50%); background: rgba(255,255,255,0.5);
	border: none; width: 50px; height: 50px; border-radius: 50%; font-size: 30px; cursor: pointer; z-index: 10;
}
.prev { left: 20px; } .next { right: 20px; }
.slider-dots { position: absolute; bottom: 25px; width: 100%; display: flex; justify-content: center; gap: 12px; }
.dot { width: 8px; height: 8px; border: 1px solid #fff; border-radius: 50%; cursor: pointer; }
.dot.active { background: #fff; }

/* GRID */
.container { max-width: 1400px; margin: 0 auto; padding: 80px 20px; }
.essentials-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.product-card { text-align: left; }
.product-card img { width: 100%; margin-bottom: 15px; }
.taupe-btn { display: inline-block; width: 100%; background: var(--taupe); color: white; border: none; padding: 15px; font-size: 11px; cursor: pointer; text-align: center; }
/* Product Links */
.product-link {
	text-decoration: none; /* Removes underline */
	color: inherit;       /* Keeps text dark as defined in body */
	display: block;       /* Makes the whole area clickable */
}

.product-link:hover img {
	opacity: 0.9;         /* Slight visual feedback on hover */
	transition: 0.3s;
}

/* ABOUT US FOOTER */
.about-footer { background: var(--bg-light); padding: 80px 20px; border-top: 1px solid #eee; }
.frame-container { max-width: 1100px; margin: 0 auto; border: 1px solid var(--taupe); position: relative; padding: 60px 40px; }
.frame-header { position: absolute; top: -18px; left: 50%; transform: translateX(-50%); background: var(--bg-light); padding: 0 30px; }
.frame-header h2 { font-family: 'Playfair Display', serif; font-size: 28px; color: var(--taupe); }
.about-grid { display: grid; grid-template-columns: 1fr 1.5fr 1fr; align-items: center; text-align: center; }
.about-col { display: flex; flex-direction: column; align-items: center; gap: 10px; }
.social-icon { fill: var(--taupe); }
/* Social Link Blocks in Footer */
.social-link-block {
	text-decoration: none;
	color: inherit;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 10px;
	transition: transform 0.3s ease;
}

.social-link-block:hover {
	transform: translateY(-3px); /* Gentle lift effect */
}

.social-link-block:hover .social-icon {
	fill: #000; /* Optional: darken the icon on hover */
}

/* BACK TO TOP */
.back-to-top {
	position: fixed; bottom: 30px; right: 30px; width: 45px; height: 45px; border-radius: 50%;
	background: white; border: 1px solid #ddd; display: flex; align-items: center; justify-content: center;
	cursor: pointer; opacity: 0; visibility: hidden; transition: 0.4s; z-index: 2000;
}
.back-to-top.visible { opacity: 1; visibility: visible; }

/* --- MOBILE SPECIFIC (Fixed Issues) --- */
.mobile-menu-toggle { display: none; }
#menu-check { display: none; }

@media (max-width: 1024px) {
	.essentials-grid { grid-template-columns: repeat(2, 1fr); }
	.about-grid { grid-template-columns: 1fr; gap: 40px; }
}

@media (max-width: 768px) {
	.desktop-only, .account-link { display: none; }
	.mobile-menu-toggle { display: block; }

	.top-utility { position: relative; grid-template-columns: auto minmax(0, 1fr) auto; gap: 10px; padding: 10px 15px; }
	.header-search { position: static; }
	.header-search-popover { right: 15px; }
	.logo img { height: 40px; margin: 0 auto; }

	/* Hamburger Icon */
	.hamburger { display: flex; flex-direction: column; gap: 5px; cursor: pointer; position: relative; z-index: 2001; }
	.hamburger span { width: 22px; height: 2px; background: #333; }

	/* Mobile Drawer */
	.mobile-nav {
		position: fixed; top: 0; left: -100%; width: 280px; height: 100vh; height: 100dvh;
		background: #fff; z-index: 3000; transition: 0.4s; padding: 60px 30px;
		box-shadow: 10px 0 30px rgba(0,0,0,0.1);
		overflow-y: auto; overscroll-behavior: contain; -webkit-overflow-scrolling: touch;
		box-sizing: border-box;
	}
	body.mobile-menu-open { overflow: hidden; }
	.close-menu {
		position: absolute; top: 20px; right: 20px; font-size: 30px; cursor: pointer; color: #333;
	}

	#menu-check:checked ~ .mobile-nav { left: 0; }

	/* Overlay to click and close */
	.menu-overlay {
		position: fixed; top: 0; left: 0; width: 100%; height: 100%;
		background: rgba(0,0,0,0.3); visibility: hidden; opacity: 0; transition: 0.3s; z-index: 2500;
	}
	#menu-check:checked ~ .menu-overlay { visibility: visible; opacity: 1; }

	/* Mobile Menu Items + Subcategories */
	.mobile-menu-list { list-style: none; }
	.mobile-menu-list > li { margin-bottom: 20px; border-bottom: 1px solid #f5f5f5; padding-bottom: 10px; }
	.mobile-menu-list a { text-decoration: none; color: #333; font-size: 16px; display: block; }

	.mob-dropdown { list-style: none; padding-left: 15px; margin-top: 10px; display: none; }
	.mob-has-dropdown.open .mob-dropdown { display: block; }
	.mob-has-dropdown > a { position: relative; padding-right: 24px; }
	.mob-has-dropdown > a::after { content: '+'; position: absolute; right: 0; top: 0; color: #777; }
	.mob-has-dropdown.open > a::after { content: '\2212'; }
	.mob-dropdown li { margin-top: 8px; }
	.mob-dropdown li a { font-size: 14px; color: #777; }

	.essentials-grid { grid-template-columns: 1fr; }
	.hero-slider { height: 50vh; }
}

/* --- CATEGORY PAGE LAYOUT --- */
.category-layout {
	display: grid;
	grid-template-columns: 280px 1fr;
	gap: 40px;
	margin-top: 50px;
	align-items: start;
}

/* SIDEBAR STYLING */
.sidebar-title {
	font-size: 16px;
	letter-spacing: 2px;
	margin-bottom: 25px;
	border-bottom: 1px solid #eee;
	padding-bottom: 10px;
	font-weight: 600;
}

.sidebar-menu { list-style: none; }
.sidebar-menu > li {
	margin-bottom: 15px;
	position: relative;
}

.sidebar-menu > li > a {
	text-decoration: none;
	color: #333;
	font-size: 13px;
	font-weight: 600;
	text-transform: uppercase;
	display: flex;
	justify-content: space-between;
	align-items: center;
	transition: 0.3s;
}

/* Sidebar Toggle Arrow (Mimicking the image) */
.sidebar-menu > li > a::after {
	content: '';
	display: inline-block;
	width: 6px;
	height: 6px;
	border-right: 2px solid #ccc;
	border-bottom: 2px solid #ccc;
	transform: rotate(45deg);
	transition: 0.3s;
	margin-left: 10px;
}

.sidebar-menu > li > a.expanded::after {
	transform: rotate(-135deg);
}

.sub-sidebar {
	list-style: none;
	padding-left: 15px;
	max-height: 0;
	overflow: hidden;
	transition: max-height 0.4s ease-out;
}

.sub-sidebar.open {
	max-height: 500px; /* Adjust as needed */
	margin-top: 15px;
}

.sub-sidebar li {
	margin-bottom: 10px;
	font-size: 13px;
	color: #777;
	cursor: pointer;
}

.sub-sidebar li:hover { color: var(--taupe); }

/* SHOP GRID & PRODUCT CARDS (Matching Image) */
.shop-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 30px;
}

.img-box {
	background-color: #dcd0c4; /* The beige/taupe background from image */
	padding: 30px;
	position: relative;
	margin-bottom: 15px;
	display: flex;
	align-items: center;
	justify-content: center;
}

.img-box img {
	width: 100%;
	height: auto;
	mix-blend-mode: multiply; /* Helps transparent images blend with beige bg */
}

/* Circular Badge */
.badge {
	position: absolute;
	top: 15px;
	left: 15px;
	background: white;
	width: 60px;
	height: 60px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: center;
	font-size: 10px;
	font-weight: 600;
	line-height: 1.2;
	color: #333;
	box-shadow: 0 2px 10px rgba(0,0,0,0.05);
	z-index: 2;
}

.shop-grid .info h4 {
	font-size: 14px;
	text-transform: uppercase;
	font-weight: 500;
	margin-bottom: 5px;
	letter-spacing: 0.5px;
}

.price-box {
	margin: 15px 0;
}

.cur-price {
	font-weight: 700;
	color: var(--taupe);
}

.old-price {
	text-decoration: line-through;
	color: #ccc;
	margin-right: 10px;
}

/* Secondary button for Out of Stock */
.btn-gray {
	background-color: #848484 !important;
}

/* Responsive for Category Page */
@media (max-width: 1024px) {
	.category-layout { grid-template-columns: 1fr; }
	.sidebar { display: none; }
	.shop-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 480px) {
	.shop-grid { grid-template-columns: 1fr; }
}

/* Back to Top Icon Fix */
.back-to-top svg {
	fill: none;
	stroke: #333;
	stroke-width: 2;
}

/* --- SUB-SIDEBAR LINK UPDATES --- */

.sub-sidebar li {
	margin-bottom: 0; /* Remove margin from li to handle it in the link padding */
}

.sub-sidebar li a {
	text-decoration: none;
	color: #777; /* Grey color from the image */
	font-size: 13px;
	display: block; /* Makes the entire line clickable */
	padding: 5px 0;
	transition: 0.3s;
}

.sub-sidebar li a:hover {
	color: var(--taupe);
	padding-left: 5px; /* Subtle shift effect on hover */
}

/* Ensure the active/current sub-category stands out if needed */
.sub-sidebar li a.active-sub {
	color: var(--taupe);
	font-weight: 600;
}

/* SUB-HERO SECTION */
.sub-hero {
	display: flex;
	gap: 30px;
	margin-bottom: 50px;
}

.sub-hero-video {
	flex: 1.2; /* Takes up slightly more space than the text side */
	min-height: 400px;
	max-height: 520px;
}

.featured-video {
	width: 100%;
	height: 100%;
	object-fit: cover; /* Ensures the video fills the area like an image */
	display: block;
}

.sub-hero-details {
	flex: 1;
	display: flex;
	flex-direction: column;
}

.sub-hero-text {
	margin-bottom: 25px;
}

.sub-title-main {
	font-family: 'Playfair Display', serif;
	font-size: 32px;
	font-weight: 400;
	letter-spacing: 2px;
	text-transform: uppercase;
	color: #4a4a4a;
}

.sub-description {
	font-size: 14px;
	color: var(--taupe);
	margin-top: 5px;
}

/* PRODUCT GRID INSIDE HERO */
.sub-hero-products {
	display: grid;
	grid-template-columns: 1fr 1fr; /* Two products side by side */
	gap: 20px;
}

/* Adjusting the size of info text inside the sub-hero to fit better */
.sub-hero-products .info h4 {
	font-size: 12px;
}
.sub-hero-products .info p {
	font-size: 10px;
}

/* --- RESPONSIVE FIXES --- */
@media (max-width: 1200px) {
	.sub-hero {
		flex-direction: column; /* Stacks video on top of products for tablet/mobile */
	}

	.sub-hero-video {
		min-height: 300px;
	}
}

@media (max-width: 480px) {
	.sub-hero-products {
		grid-template-columns: 1fr; /* Stack products on small phones */
	}
}

/* --- PRODUCT PAGE SPECIFIC --- */

.product-page {
	padding-top: 20px;
	padding-bottom: 150px; /* Space for sticky bar */
}

.product-header-meta {
	display: flex;
	justify-content: space-between;
	align-items: center; /* Vertically centers breadcrumbs and icons */
	padding-bottom: 15px;
	border-bottom: 1px solid #f2f2f2;
	margin-bottom: 20px;
}

.breadcrumbs {
	font-size: 11px;
	color: #bbb;
	letter-spacing: 0.5px;
	text-transform: uppercase;
}

.breadcrumbs a {
	text-decoration: none;
	color: #999;
	transition: color 0.3s;
}

.breadcrumbs a:hover {
	color: var(--taupe);
}

.breadcrumbs span {
	color: #333;
	font-weight: 600;
}

.product-main-view {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: 60px;
	margin-bottom: 80px;
}

.product-nav-icons {
	display: flex;
	align-items: center; /* Ensures icons and arrows are on same line */
	gap: 15px;
}

.product-nav-icons a {
	display: flex;
	align-items: center;
	justify-content: center;
	text-decoration: none;
	color: #ccc;
	font-size: 16px; /* Size of chevrons */
	line-height: 1;
	transition: 0.3s;
}

.product-nav-icons svg {
	fill: #ccc;
	transition: fill 0.3s;
}

/* Hover States */
.product-nav-icons a:hover,
.product-nav-icons a:hover svg {
	color: var(--taupe);
	fill: var(--taupe);
}

/* ADD TO CART UI */
.add-to-cart-container {
	display: flex;
	gap: 15px;
	margin: 30px 0;
}

.quantity-input {
	display: flex;
	border: 1px solid #ddd;
	height: 50px;
}

.qty-btn {
	background: none;
	border: none;
	width: 35px;
	cursor: pointer;
	font-size: 18px;
}

.quantity-input input {
	width: 45px;
	text-align: center;
	border: none;
	font-family: inherit;
	font-weight: 600;
	-moz-appearance: textfield;
}

.quantity-input input::-webkit-inner-spin-button {
	-webkit-appearance: none;
}

.add-btn {
	flex: 1;
	max-width: 250px;
}

/* Image Side */
.main-img-box {
	background-color: var(--img-bg);
	padding: 40px;
	position: relative;
}
.main-img-box img { display: block; max-width: 100%; height: auto; margin: 0 auto; }
.product-images, .product-details-content { min-width: 0; }
.product-description { overflow-wrap: anywhere; }
.product-description img, .product-description video, .product-description iframe { max-width: 100%; height: auto; }

.large-badge {
	width: 80px;
	height: 80px;
	font-size: 11px;
}

/* Info Side */
.product-title {
	font-family: 'Playfair Display', serif;
	font-size: 36px;
	text-transform: uppercase;
	margin: 15px 0;
	font-weight: 400;
}

.product-price {
	font-size: 24px;
	color: var(--taupe);
	font-weight: 600;
	margin-bottom: 30px;
}

.product-description {
	font-size: 14px;
	color: #666;
	line-height: 1.8;
}

.product-description ul {
	margin: 20px 0;
	padding-left: 20px;
}

.stock-status {
	font-weight: 600;
	font-size: 14px;
	margin: 25px 0;
}

.out-of-stock {
	color: #cc0000;
}

.product-actions {
	display: flex;
	gap: 30px;
	border-bottom: 1px solid #eee;
	padding-bottom: 20px;
	margin-bottom: 20px;
}

.action-link {
	background: none;
	border: none;
	font-family: inherit;
	font-size: 13px;
	font-weight: 600;
	cursor: pointer;
	color: #333;
}

/* Related Products */
.section-title-serif {
	font-family: 'Playfair Display', serif;
	font-size: 28px;
	margin-bottom: 40px;
	font-weight: 400;
}

.related-grid {
	display: grid;
	grid-template-columns: repeat(5, 1fr);
	gap: 15px;
}

.related-products .shop-grid {
	grid-template-columns: repeat(4, 1fr); /* 4 columns like in listing */
	gap: 25px;
	margin-top: 30px;
}

/* Ensure font and price consistency in related products */
.related-products .info h4 {
	font-size: 13px;
	text-transform: uppercase;
	font-weight: 500;
	margin-bottom: 5px;
}

.related-products .info p {
	font-size: 11px;
	color: #999;
}

.related-products .cur-price {
	font-size: 14px;
	font-weight: 700;
	color: var(--taupe);
}

/* STICKY BOTTOM BAR */
.sticky-product-bar {
	position: fixed;
	bottom: 0;
	left: 0;
	width: 100%;
	background: #fff;
	box-shadow: 0 -5px 15px rgba(0,0,0,0.05);
	padding: 15px 0;
	z-index: 2000;
}

.bar-content {
	display: flex;
	justify-content: space-between;
	align-items: center;
}

.bar-left {
	display: flex;
	align-items: center;
	gap: 15px;
}

.bar-thumb {
	width: 50px;
	height: 50px;
	background: var(--img-bg);
	object-fit: contain;
}

.bar-title { font-weight: 600; font-size: 14px; }

.bar-right {
	display: flex;
	align-items: center;
	gap: 30px;
}

.bar-price { font-weight: 600; color: #888; }

.bar-icons span {
	font-size: 18px;
	margin-left: 20px;
	cursor: pointer;
	color: #333;
}

/* Sticky Header Adjustment */
.sticky-header {
	position: sticky;
	top: 0;
	z-index: 2100;
	background: #fff;
}

/* Responsive */
@media (max-width: 992px) {
	.product-main-view { grid-template-columns: minmax(0, 1fr); }
	.related-grid { grid-template-columns: repeat(2, 1fr); }
	.sticky-product-bar { display: none; }
}

@media (max-width: 1024px) {
	.related-products .shop-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 600px) {
	.product-header-meta {
		flex-direction: column;
		align-items: flex-start;
		gap: 15px;
	}
	.add-to-cart-container {
		flex-direction: column;
	}
	.add-btn {
		max-width: 100%;
	}
}

.inner-wrap {
	max-width: 1400px; /* Match this to your main container width */
	margin: 0 auto;    /* Centers the content */
	padding: 0 40px;   /* Standardized side padding for desktop */
	width: 100%;       /* Ensures it takes up space correctly */
}

/* Adjust the Header top-utility to play nice with inner-wrap */
.top-utility.inner-wrap {
	display: grid;
	grid-template-columns: 1fr auto 1fr;
	align-items: center;
	padding-top: 15px;
	padding-bottom: 15px;
}

/* Adjust the Navigation to play nice with inner-wrap */
.nav-menu.inner-wrap {
	display: flex;
	justify-content: center;
	gap: 30px;
}

/* Adjust the Sticky Bar to play nice with inner-wrap */
.bar-content.inner-wrap {
	display: flex;
	justify-content: space-between;
	align-items: center;
}

/* --- MOBILE TWEAK --- */
@media (max-width: 768px) {
	.inner-wrap {
		padding: 0 15px; /* Smaller padding for mobile screens */
	}

	.top-utility.inner-wrap {
		grid-template-columns: auto minmax(0, 1fr) auto;
		gap: 10px;
	}
	.logo { min-width: 0; }
	.logo img { max-width: 100%; height: auto; max-height: 40px; }

	.product-header-meta {
		padding: 10px 0;
	}
	.breadcrumbs {
		font-size: 10px;
	}
}

/* Minimal styles for disabled add-to-cart and cart toast (moved from style.css) */
.is-disabled,
button.is-disabled {
	opacity: 0.6;
	cursor: not-allowed;
}

.taupe-btn.loading {
	opacity: 0.8;
	pointer-events: none;
}

.cart-toast {
	position: fixed;
	left: 50%;
	transform: translateX(-50%);
	bottom: 24px;
	background: rgba(0,0,0,0.85);
	color: #fff;
	padding: 10px 16px;
	border-radius: 6px;
	font-size: 14px;
	z-index: 9999;
	display: none;
}

.cart-toast.success {
	background: rgba(40,167,69,0.95);
}
.cart-toast.error {
	background: rgba(220,53,69,0.95);
}

/* Ensure aria-live element is visually visible when used */
#cart-toast[aria-live] {
	display: none;
}

/* small spinner for loading state inside buttons */
.btn-spinner {
	display: inline-block;
	width: 14px;
	height: 14px;
	border: 2px solid rgba(255,255,255,0.6);
	border-top-color: transparent;
	border-radius: 50%;
	margin-right: 8px;
	vertical-align: middle;
	animation: cart-spin 0.8s linear infinite;
}

@keyframes cart-spin {
	from { transform: rotate(0deg); }
	to { transform: rotate(360deg); }
}

.btn-loading-text { vertical-align: middle; }

/* --- CART SIDEBAR --- */

/* The dark background overlay */
.cart-overlay {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: rgba(0,0,0,0.4);
	z-index: 2999;
	visibility: hidden;
	opacity: 0;
	transition: 0.3s;
}

.cart-sidebar {
	position: fixed;
	top: 0;
	right: -400px; /* Hidden by default */
	width: 400px;
	height: 100vh;
	background: #fff;
	z-index: 3000;
	transition: 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);
	display: flex;
	flex-direction: column;
	box-shadow: -5px 0 15px rgba(0,0,0,0.05);
}

/* When cart is active */
body.cart-open .cart-sidebar { right: 0; }
body.cart-open .cart-overlay { visibility: visible; opacity: 1; }

.cart-header {
	padding: 20px 30px;
	display: flex;
	justify-content: space-between;
	align-items: center;
	border-bottom: 1px solid #f2f2f2;
}

.cart-header h2 { font-size: 24px; font-weight: 400; }

.close-cart {
	font-size: 13px;
	text-transform: uppercase;
	cursor: pointer;
	color: #333;
	letter-spacing: 1px;
}

/* Item List */
.cart-items {
	flex: 1;
	overflow-y: auto;
	padding: 20px 30px;
}

/* Empty cart / loading state inside the sidebar */
.cart-empty {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 12px;
	padding: 36px 20px;
}
.cart-empty .empty-icon {
	width: 96px;
	height: 96px;
	color: #333;
}
.cart-empty h3 {
	font-family: 'Playfair Display', serif;
	font-size: 20px;
	font-weight: 700;
	color: #222;
	margin: 0;
}
.cart-empty .muted {
	color: #777;
	font-size: 14px;
	max-width: 320px;
	line-height: 1.4;
}
.cart-empty .taupe-btn {
	width: auto;
	padding: 12px 22px;
	background: var(--taupe);
	color: #fff;
	text-decoration: underline;
	display: inline-block;
	margin-top: 8px;
	border: none;
	text-transform: uppercase;
	letter-spacing: 1px;
	font-weight: 600;
}
.cart-empty .taupe-btn:hover { opacity: 0.95; }

/* Loading spinner for the sidebar */
.cart-loading {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 200px;
}
.spinner-large {
	width: 40px;
	height: 40px;
	border: 4px solid rgba(0,0,0,0.08);
	border-top-color: var(--taupe);
	border-radius: 50%;
	animation: cart-spin 1s linear infinite;
}

/* Infinite scroll loader (small centered) */
.infinite-loader {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	color: var(--taupe);
	font-weight: 600;
}
.infinite-loader .loader-text {
	font-size: 14px;
}

/* Small spinner used inside the remove-item button */
.spinner-small {
	width: 14px;
	height: 14px;
	border: 2px solid rgba(0,0,0,0.08);
	border-top-color: var(--taupe);
	border-radius: 50%;
	animation: cart-spin 1s linear infinite;
	display: inline-block;
	vertical-align: middle;
}

.cart-item {
	display: flex;
	gap: 15px;
	margin-bottom: 25px;
}

.cart-item-img {
	width: 70px;
	height: 70px;
	background: var(--img-bg);
	padding: 5px;
}

.cart-item-details { flex: 1; }

.cart-item-title-row {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
}

.cart-item-details h4 {
	font-size: 13px;
	font-weight: 500;
	text-transform: uppercase;
	line-height: 1.4;
	max-width: 80%;
}

.remove-item {
	cursor: pointer;
	color: #666;
	background: transparent;
	border: none;
	padding: 4px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: 12px;
	line-height: 1;
	border-radius: 4px;
}
.remove-item:focus { outline: 2px solid rgba(0,0,0,0.08); }
.remove-item svg { display: block; width: 12px; height: 12px; }

.cart-item-meta {
	font-size: 12px;
	color: #999;
	margin-top: 5px;
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 6px;
}
.cart-qty { display: inline-flex; align-items: center; border: 1px solid #ddd; border-radius: 4px; }
.cart-qty-btn { width: 26px; height: 26px; border: 0; background: none; cursor: pointer; font-size: 16px; color: #333; }
.cart-qty-btn:disabled, .cart-qty-input:disabled { opacity: .5; cursor: default; }
.cart-qty-input { width: 36px; height: 26px; border: 0; text-align: center; font-size: 13px; -moz-appearance: textfield; appearance: textfield; background: none; }
.cart-qty-input::-webkit-outer-spin-button, .cart-qty-input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }

/* Footer Section */
.cart-footer {
	padding: 30px;
	border-top: 1px solid #f2f2f2;
}

.cart-total {
	display: flex;
	justify-content: space-between;
	font-family: 'Playfair Display', serif;
	font-size: 18px;
	margin-bottom: 20px;
}

.total-price { color: var(--taupe); font-weight: 700; }

.btn-secondary {
	display: block;
	text-align: center;
	background: #f7f7f7;
	color: #333;
	padding: 15px;
	font-size: 11px;
	letter-spacing: 1px;
	margin-bottom: 10px;
	text-decoration: none;
	font-weight: 600;
}

.payment-btn {
	display: block;
	text-align: center;
	padding: 18px;
	font-weight: 600;
}

/* cart layout handled by final design rules appended later */

/* --- MOBILE RESPONSIVE --- */
@media (max-width: 480px) {
	.cart-sidebar {
		width: 100%;
		right: -100%;
	}
}

/* --- EMPTY CART PAGE STYLES (from new design v4) --- */
.bg-alt {
	background-color: #f6f5f3; /* Slightly grayish/beige background from image */
}

.empty-cart-container {
	padding: 120px 20px;
	display: flex;
	justify-content: center;
	align-items: center;
	text-align: center;
}

/* Storefront 404 */
.not-found-page { padding: 80px 0 100px; }
.not-found-content { max-width: 700px; text-align: center; }
.not-found-code { color: var(--taupe); font-family: 'Playfair Display', serif; font-size: clamp(72px, 16vw, 128px); line-height: 1; }
.not-found-content h1 { margin: 20px 0; font-family: 'Playfair Display', serif; font-size: clamp(30px, 6vw, 42px); font-weight: 400; }
.not-found-description { color: #777; font-size: 14px; line-height: 1.8; }
.not-found-search { max-width: 480px; margin: 32px auto; text-align: left; }
.not-found-search label { display: block; margin-bottom: 10px; font-size: 13px; font-weight: 600; }
.not-found-search-fields { display: flex; gap: 10px; }
.not-found-search input { min-width: 0; flex: 1; padding: 14px; border: 1px solid #ddd; font: inherit; }
.not-found-search .taupe-btn { width: auto; padding: 14px 24px; }
.not-found-actions { display: flex; justify-content: center; align-items: center; flex-wrap: wrap; gap: 24px; }
.not-found-actions .taupe-btn { width: auto; padding: 15px 26px; }
.not-found-home { color: #555; font-size: 11px; letter-spacing: 1px; }
.not-found-page :focus-visible { outline: 2px solid var(--taupe); outline-offset: 3px; }
@media (max-width: 480px) {
	.not-found-page { padding: 55px 0 70px; }
	.not-found-search-fields { flex-direction: column; }
}

.empty-cart-content {
	max-width: 600px;
	width: 100%;
}

.empty-cart-icon {
	margin-bottom: 40px;
	display: flex;
	justify-content: center;
}

.empty-cart-icon svg {
	width: 200px;
	height: auto;
	color: #e2e1df; /* Very light gray for the icon */
	fill: #e2e1df;
}

.empty-cart-title {
	font-family: 'Playfair Display', serif;
	font-size: 52px;
	font-weight: 400;
	color: #555351;
	margin-bottom: 25px;
	letter-spacing: -0.5px;
}

.empty-cart-text {
	font-family: 'Montserrat', sans-serif;
	font-size: 15px;
	line-height: 1.8;
	color: #888684;
	margin-bottom: 45px;
	letter-spacing: 0.2px;
}

.back-to-store-btn {
	display: inline-block;
	padding: 18px 50px;
	font-weight: 600;
	letter-spacing: 1.5px;
	text-decoration: none;
	transition: 0.3s ease;
}

.back-to-store-btn:hover {
	background-color: #a38e7a; /* Darker taupe on hover */
	transform: translateY(-2px);
}

@media (max-width: 768px) {
	.empty-cart-title {
		font-size: 32px;
	}
	.empty-cart-container {
		padding: 80px 20px;
	}
	.empty-cart-icon svg {
		width: 150px;
	}
}

/* --- CART PAGE STYLES --- */

.cart-page {
	padding-top: 40px;
	padding-bottom: 80px;
}

/* Rewards Banner */
.rewards-banner {
	border: 1px solid #d4edda;
	background-color: #fff;
	padding: 15px 25px;
	display: flex;
	align-items: center;
	gap: 15px;
	margin-bottom: 40px;
	border-radius: 5px;
}

.rewards-banner .star-icon {
	color: #8cc63f;
	font-size: 24px;
}

.rewards-banner p {
	color: #8cc63f;
	font-size: 14px;
	font-weight: 500;
}

/* Layout Wrapper */
.cart-content-wrapper {
	display: grid;
	grid-template-columns: 1fr 380px;
	gap: 40px;
	align-items: start;
}

/* Table Area */
.cart-table {
	width: 100%;
	border-collapse: collapse;
}

.cart-table th {
	text-align: left;
	padding: 15px 0;
	color: #999;
	font-size: 13px;
	font-weight: 400;
	letter-spacing: 1px;
	border-bottom: 1px solid #eee;
}

.cart-table td {
	padding: 20px 0;
	border-bottom: 1px solid #eee;
	vertical-align: middle;
}

.td-remove { width: 40px; }

.td-remove a.remove-btn {
	text-decoration: none;
	color: #ccc;
	font-size: 24px;
	line-height: 1;
	display: inline-block;
	transition: color 0.3s ease;
}

.td-remove a.remove-btn:hover {
	color: #333; /* Darkens on hover */
}

.cart-prod-info {
	display: flex;
	align-items: center;
	gap: 20px;
}

.cart-img-box {
	width: 80px;
	height: 80px;
	background: var(--img-bg);
	padding: 5px;
	display: flex;
	align-items: center;
}

.cart-img-box a {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	transition: opacity 0.3s ease;
}

.cart-img-box a:hover {
	opacity: 0.8;
}

a.prod-name {
	text-decoration: none;
	color: var(--text-dark);
	font-weight: 500;
	font-size: 14px;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	transition: color 0.3s ease;
}

a.prod-name:hover {
	color: var(--taupe); /* Changes to brand color on hover */
}

.td-price, .td-total { font-size: 14px; color: #888; }
.td-total { color: var(--taupe); font-weight: 600; text-align: right; }
.cart-table th.col-total { text-align: right; }

/* Coupon & Actions Row */
.cart-actions-row {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-top: 30px;
}

.coupon-box {
	display: flex;
	gap: 10px;
}

.coupon-input {
	border: 1px solid #eee;
	padding: 10px 15px;
	width: 250px;
	background: #f9f9f9;
}

.coupon-btn {
	font-size: 10px;
	padding: 12px 20px;
	background: var(--taupe);
}

button.cart-update-link {
	/* Reset Button Defaults */
	background: none;
	border: none;
	padding: 0;
	margin: 0;
	cursor: pointer;
	font-family: 'Montserrat', sans-serif; /* Explicitly set to match site */

	/* Text Styling to match image */
	font-size: 12px;
	font-weight: 600;
	color: #999;
	letter-spacing: 1px;
	text-transform: uppercase;
	transition: color 0.3s ease;
}

button.cart-update-link:hover {
	color: #333; /* Darkens slightly on hover */
}

/* Summary Sidebar */
.summary-card {
	border: 1px solid #eee;
	padding: 30px;
	background: #fdfdfd;
}

.summary-title {
	font-family: 'Playfair Display', serif;
	font-size: 18px;
	font-weight: 400;
	color: #555;
	margin-bottom: 30px;
	letter-spacing: 1px;
}

.summary-row {
	display: flex;
	justify-content: space-between;
	padding: 15px 0;
	border-bottom: 1px solid #eee;
	font-size: 14px;
	color: #888;
}

.delivery-row {
	align-items: flex-start;
}

.free-text { color: var(--taupe); font-weight: 600; }
.delivery-note { font-size: 11px; margin-top: 10px; line-height: 1.6; text-align: right; }

.total-big-row {
	border-bottom: none;
	padding-top: 30px;
	align-items: flex-end;
}

.total-final { text-align: right; }
.total-price { display: block; font-size: 22px; color: var(--taupe); font-weight: 700; }
.total-final small { font-size: 10px; color: #aaa; }

.pay-btn {
	width: 100%;
	margin-top: 30px;
	padding: 18px;
	font-weight: 600;
}

.cart-qty .qty-btn {
	background: none;
	border: none;
	width: 30px;
	height: 100%;
	cursor: pointer;
	font-size: 16px;
	color: #333;
	display: flex;
	align-items: center;
	justify-content: center;
}

/* Responsive */
@media (max-width: 1024px) {
	.cart-content-wrapper { grid-template-columns: 1fr; }
	.cart-qty { height: 40px; }
}

@media (max-width: 768px) {
	.cart-table thead { display: none; }
	.cart-table td { display: block; text-align: right; padding: 10px 0; }
	.td-product { text-align: left; }
	.cart-prod-info { flex-direction: column; align-items: flex-start; }
	.cart-actions-row { flex-direction: column; gap: 20px; align-items: flex-start; }
	button.cart-update-link {
		width: 100%;
		text-align: right;
		padding: 10px 0;
	}
}

/* --- CART SUCCESS ALERT --- */
.cart-alert-success {
	background-color: #459345; /* The specific green from your image */
	color: #ffffff;
	padding: 18px 30px;
	margin-bottom: 20px;
	display: flex;
	align-items: center;
}
.cart-alert-success a {
	color: #fff;
}

.alert-content {
	display: flex;
	align-items: center;
	gap: 15px;
	font-size: 15px;
	font-weight: 400;
}

.alert-check {
	width: 20px;
	height: 20px;
	fill: #ffffff;
}

/* Mobile Tweak */
@media (max-width: 768px) {
	.cart-alert-success {
		padding: 15px 20px;
		font-size: 14px;
	}
}

/* --- CHECKOUT PAGE --- */

.checkout-page {
	padding-top: 30px;
	padding-bottom: 80px;
}

.checkout-notice {
	font-size: 14px;
	color: #888;
	margin-bottom: 40px;
}

.checkout-notice a {
	color: var(--taupe);
	text-decoration: none;
}

.checkout-grid {
	display: grid;
	grid-template-columns: 1fr 420px;
	gap: 60px;
	align-items: start;
}

/* Form Styling */
.checkout-section-title {
	font-family: 'Playfair Display', serif;
	font-size: 20px;
	color: #666;
	margin-bottom: 30px;
	letter-spacing: 1px;
}

.form-row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 20px;
}

.form-group {
	margin-bottom: 25px;
}

.form-group label {
	display: block;
	font-size: 13px;
	color: #555;
	margin-bottom: 8px;
}

.required { color: #cc0000; }

.checkout-form input[type="text"],
.checkout-form input[type="email"],
.checkout-form input[type="tel"],
.checkout-form input[type="password"],
.checkout-form textarea,
.custom-select {
	width: 100%;
	padding: 12px 15px;
	background: #f9f9f9;
	border: 1px solid #eeeeee;
	font-family: inherit;
	font-size: 14px;
	color: #333;
}

.m-bottom { margin-bottom: 10px; }

.static-val { font-size: 15px; color: #333; margin: 5px 0; }

.custom-select {
	appearance: none;
	background-image: url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%3E%3Cpath%20fill%3D%22%23ccc%22%20d%3D%22M7%2010l5%205%205-5z%22/%3E%3C/svg%3E');
	background-repeat: no-repeat;
	background-position: right 10px center;
}

.checkbox-group {
	display: flex;
	align-items: center;
	gap: 10px;
}

.checkbox-group label { margin-bottom: 0; cursor: pointer; }

/* Order Summary Box */
.order-box {
	border: 1px solid #f2f2f2;
	padding: 35px;
	background: #fff;
}

.order-title {
	text-align: center;
	font-family: 'Playfair Display', serif;
	font-size: 18px;
	color: #555;
	margin-bottom: 30px;
	letter-spacing: 1.5px;
}

.order-row {
	display: flex;
	justify-content: space-between;
	padding: 15px 0;
	border-bottom: 1px solid #f2f2f2;
	font-size: 13px;
	color: #888;
}

.order-row.header {
	font-weight: 600;
	color: #333;
	letter-spacing: 1px;
}

.order-row.total {
	border-bottom: none;
	padding-top: 25px;
	align-items: flex-start;
}

.final-price {
	display: block;
	font-size: 20px;
	color: var(--taupe);
	font-weight: 700;
	text-align: right;
}

.total-wrap small { font-size: 10px; color: #aaa; text-align: right; display: block; }

/* Payment Methods */
.payment-methods {
	margin-top: 30px;
	border-bottom: 1px solid #f2f2f2;
	padding-bottom: 20px;
}

.method-item { margin-bottom: 20px; }

.method-item label {
	font-size: 13px;
	font-weight: 500;
	color: #444;
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	gap: 10px;
	width: 90%;
}

.pay-logo { height: 25px; margin-left: 5px; }

.method-desc {
	background: #f9f9f9;
	padding: 20px;
	margin-top: 15px;
	font-size: 13px;
	color: #777;
	line-height: 1.6;
	display: none; /* Controlled by JS or CSS radio hack */
}

input[type="radio"]:checked ~ .method-desc { display: block; }

.checkout-grid > .woocommerce-NoticeGroup {
	grid-column: 1 / -1;
	margin-bottom: -35px;
}

.checkout-page .woocommerce-error,
.checkout-page .checkout-notice-error,
.checkout-page .cart-alert-error {
	list-style: none;
	margin: 0 0 20px;
	padding: 16px 20px;
	border: 1px solid #e8d4cf;
	border-left: 3px solid #b67a70;
	background: #fbf6f4;
	color: #794d46;
	font-size: 13px;
	line-height: 1.6;
}

.checkout-page .woocommerce-error .woocommerce-error {
	margin: 0;
	padding: 0;
	border: 0;
	background: transparent;
}

.checkout-page .woocommerce-error li + li { margin-top: 6px; }
.checkout-page .woocommerce-error strong { color: inherit; }

.checkout-page [aria-invalid="true"]:not([type="checkbox"]) {
	border-color: #b67a70;
	background-color: #fffaf8;
}

.checkout-page [aria-invalid="true"]:focus {
	outline: 2px solid #b67a70;
	outline-offset: 2px;
}

.checkout-field-error {
	display: block;
	margin-top: 7px;
	color: #9c5e55;
	font-size: 12px;
	line-height: 1.4;
}

.terms-group { flex-wrap: wrap; }
.terms-group .checkout-field-error {
	flex-basis: 100%;
	margin-top: 0;
}

.checkout-login, .checkout_coupon {
	max-width: 560px;
	margin: -20px 0 40px;
	padding: 25px;
	border: 1px solid #f2f2f2;
	background: #fff;
}

.checkout-panel-intro {
	color: #888;
	font-size: 13px;
	line-height: 1.6;
	margin-bottom: 20px;
}

.checkout-panel-actions {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 20px;
}

.checkout-login .taupe-btn, .checkout_coupon .taupe-btn {
	width: auto;
	min-width: 140px;
	padding: 15px 25px;
	letter-spacing: 1px;
	font-weight: 600;
}

.checkout-panel-actions a {
	color: var(--taupe);
	font-size: 13px;
}

.checkout-visually-hidden {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

/* Checkout Footer */
.checkout-footer { margin-top: 30px; }

.privacy-note { font-size: 12px; color: #999; line-height: 1.6; margin-bottom: 20px; }

.terms-group {
	display: flex;
	gap: 10px;
	font-size: 13px;
	color: #555;
	margin-bottom: 30px;
}

.order-btn {
	width: 100%;
	padding: 18px;
	font-weight: 600;
}

/* --- ORDER RECEIVED --- */
.order-received {
	padding-top: 70px;
	padding-bottom: 90px;
}

.order-received-header {
	text-align: center;
	margin: 0 auto 55px;
}

.order-received-icon {
	width: 52px;
	height: 52px;
	margin: 0 auto 25px;
	color: var(--taupe);
}

.order-received-icon svg {
	width: 100%;
	stroke: currentColor;
	stroke-width: 1.5;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.order-received-header h1 {
	font-family: 'Playfair Display', serif;
	font-size: 42px;
	font-weight: 400;
	color: #555351;
	margin-bottom: 15px;
}

.order-received-header p {
	color: #888684;
	font-size: 15px;
	line-height: 1.7;
}

.order-received-layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 360px;
	gap: 30px;
	align-items: start;
}

.order-received-card {
	min-width: 0;
	padding: 35px;
	border: 1px solid #f2f2f2;
	background: #fff;
}

.order-received-table {
	width: 100%;
	border-collapse: collapse;
	font-size: 13px;
	color: #777;
}

.order-received-table th,
.order-received-table td {
	padding: 15px 0;
	border-bottom: 1px solid #f2f2f2;
	text-align: left;
	vertical-align: top;
	font-weight: 400;
}

.order-received-table thead th {
	color: #333;
	font-weight: 600;
	letter-spacing: 1px;
}

.order-received-table th:last-child,
.order-received-table td:last-child {
	text-align: right;
	white-space: nowrap;
	padding-left: 20px;
}

.order-received-table tbody th { overflow-wrap: anywhere; }
.order-received-table a { color: #555; text-decoration: none; }
.order-received-table a:hover { color: var(--taupe); }
.order-received-quantity, .order-received-shipping { color: #999; }
.order-received-shipping { display: block; font-size: 12px; margin-top: 4px; }
.order-received-table .order-received-total th,
.order-received-table .order-received-total td {
	border-bottom: 0;
	padding-top: 22px;
	color: #555;
	font-weight: 600;
}
.order-received-table .order-received-total td { color: var(--taupe); font-size: 18px; }

.order-received-summary dl { margin: 0; }
.order-received-summary dl div {
	display: flex;
	justify-content: space-between;
	gap: 20px;
	padding: 14px 0;
	border-bottom: 1px solid #f2f2f2;
	font-size: 13px;
}
.order-received-summary dt { color: #888; font-weight: 400; }
.order-received-summary dd { margin: 0; color: #555; text-align: right; overflow-wrap: anywhere; }
.order-received-summary .order-received-summary-total { border-bottom: 0; padding-top: 20px; }
.order-received-summary-total dd { color: var(--taupe); font-size: 18px; font-weight: 600; }
.order-received-shop { display: block; margin-top: 25px; padding: 18px; text-align: center; text-decoration: none; font-weight: 600; }

.order-received-note { margin-top: 24px; color: #777; font-size: 13px; line-height: 1.6; overflow-wrap: anywhere; }
.order-received-note h3 { margin-bottom: 8px; color: #555; font-size: 13px; font-weight: 600; }
.order-received-addresses { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 30px; margin-top: 30px; }
.order-received-addresses address { color: #777; font-size: 13px; line-height: 1.8; font-style: normal; overflow-wrap: anywhere; }

/* Mobile Responsiveness */
@media (max-width: 992px) {
	.checkout-grid { grid-template-columns: 1fr; }
	.order-review { margin-top: 40px; }
	.order-received-layout { grid-template-columns: 1fr; }
}

@media (max-width: 600px) {
	.order-received { padding-top: 50px; padding-bottom: 60px; }
	.order-received-header { margin-bottom: 35px; }
	.order-received-header h1 { font-size: 32px; }
	.order-received-card { padding: 25px 20px; }
	.order-received-addresses { grid-template-columns: 1fr; }
}

.account-login-page {
	background: #f8f7f5;
	padding: 70px 0 90px;
}
.account-login-content { max-width: 1100px; }
.account-recovery-content { max-width: 600px; }
.account-login-header { text-align: center; margin-bottom: 45px; }
.account-login-header h1 {
	font-family: 'Playfair Display', serif;
	font-size: 40px;
	font-weight: 400;
	color: #555;
	margin-bottom: 12px;
}
.account-login-header p, .account-login-intro, .account-login-help {
	color: #777;
	font-size: 13px;
	line-height: 1.7;
}
.account-login-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 30px;
	align-items: stretch;
}
.account-login-card {
	background: #fff;
	border: 1px solid #eee;
	padding: 35px;
}
.account-login-card .checkout-section-title { margin-bottom: 12px; }
.account-login-intro { margin-bottom: 28px; }
.account-login-help { margin-bottom: 18px; }
.account-login-card a { color: var(--taupe); }
.account-login-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 20px; }
.account-login-actions .taupe-btn, .account-register-button {
	width: auto;
	min-width: 140px;
	font-weight: 600;
	letter-spacing: 1px;
}
.account-login-actions a { font-size: 13px; }
.account-register-button { margin-top: 4px; }
.account-notice {
	margin-bottom: 25px;
	padding: 16px 20px;
	font-size: 13px;
	line-height: 1.6;
}
.account-notice-error { color: #8d3c3c; background: #fff5f4; border: 1px solid #ecd2cf; list-style-position: inside; }
.account-notice-success { color: #596a53; background: #f3f7f1; border: 1px solid #d5e1d0; }
.account-login-page :focus-visible { outline: 2px solid var(--taupe); outline-offset: 3px; }

.account-area { max-width: 1300px; }
.account-area-layout { display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: 30px; align-items: start; }
.account-navigation { background: #fff; border: 1px solid #eee; }
.account-navigation ul { list-style: none; margin: 0; padding: 0; }
.account-navigation a { display: block; padding: 17px 20px; border-bottom: 1px solid #f1f1f1; color: #777; font-size: 13px; text-decoration: none; }
.account-navigation li:last-child a { border-bottom: 0; }
.account-navigation a:hover, .account-navigation a.is-active { color: #8c7564; background: #f8f7f5; }
.account-navigation a.is-active { border-left: 3px solid var(--taupe); padding-left: 17px; font-weight: 600; }
.account-area-content { min-width: 0; }
.account-panel { color: #666; font-size: 13px; line-height: 1.7; overflow-wrap: anywhere; }
.account-panel > p { margin-bottom: 20px; }
.account-panel .checkout-section-title { margin-bottom: 25px; }
.account-panel a { color: var(--taupe); }
.account-dashboard-links, .account-address-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin-top: 25px; }
.account-dashboard-links a { display: block; padding: 20px; border: 1px solid #eee; color: #555; text-decoration: none; }
.account-dashboard-links a:hover { border-color: var(--taupe); }
.account-dashboard-links strong, .account-dashboard-links span { display: block; }
.account-dashboard-links span { color: #888; margin-top: 5px; }
.account-address-card { border: 1px solid #eee; padding: 20px; }
.account-address-card header { display: flex; justify-content: space-between; gap: 15px; }
.account-address-card h3, .account-subtitle, .account-address-form h3, .account-password-fields legend { color: #555; font-family: 'Playfair Display', serif; font-size: 18px; font-weight: 400; margin-bottom: 15px; }
.account-address-card address { font-style: normal; color: #777; line-height: 1.8; }
.account-table-wrap { overflow-x: auto; }
.account-orders-table { border-collapse: collapse; width: 100%; text-align: left; }
.account-orders-table th, .account-orders-table td { padding: 15px 10px; border-bottom: 1px solid #eee; vertical-align: top; }
.account-orders-table th { color: #888; font-size: 11px; text-transform: uppercase; letter-spacing: 1px; }
.account-muted { color: #999; }
.account-button { display: inline-block; width: auto; min-width: 140px; padding: 15px 22px; color: #fff !important; font-weight: 600; letter-spacing: 1px; text-decoration: none; }
.account-back-link { display: inline-block; margin-top: 25px; }
.account-field-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.account-password-fields { border: 0; border-top: 1px solid #eee; padding: 25px 0 0; margin: 15px 0 0; min-width: 0; }
.account-password-fields legend { padding-right: 15px; }
.account-address-form .form-row { display: block; margin-bottom: 22px; }
.account-address-form .form-row label { display: block; font-size: 13px; color: #555; margin-bottom: 8px; }
.account-address-form input:not([type="hidden"]), .account-address-form select { width: 100%; padding: 12px 15px; background: #f9f9f9; border: 1px solid #eee; font: inherit; color: #333; }
.account-address-form .button { width: auto; background: var(--taupe); color: #fff; border: 0; padding: 15px 22px; font-size: 11px; font-weight: 600; letter-spacing: 1px; cursor: pointer; }
.account-visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }

@media (max-width: 768px) {
	.account-login-page { padding: 50px 0 60px; }
	.account-login-header { margin-bottom: 35px; }
	.account-login-header h1 { font-size: 32px; }
	.account-login-grid { grid-template-columns: 1fr; gap: 20px; }
	.account-login-card { padding: 25px 20px; }
	.account-area-layout { grid-template-columns: 1fr; gap: 20px; }
	.account-navigation ul { display: flex; flex-wrap: wrap; }
	.account-navigation a { padding: 12px 15px; border: 0; }
	.account-navigation a.is-active { border-left: 0; border-bottom: 3px solid var(--taupe); padding-left: 15px; padding-bottom: 9px; }
	.account-field-grid, .account-address-grid, .account-dashboard-links { grid-template-columns: 1fr; }
	.account-orders-table, .account-orders-table tbody, .account-orders-table tr, .account-orders-table td { display: block; }
	.account-orders-table thead { display: none; }
	.account-orders-table tr { padding: 12px 0; border-bottom: 1px solid #eee; }
	.account-orders-table td { display: flex; justify-content: space-between; gap: 15px; border: 0; padding: 5px 0; text-align: right; }
	.account-orders-table td::before { content: attr(data-label); color: #888; text-align: left; }
}