/* Custom Shop Page Styles */
.custom-shop-page {
	background-color: var(--color-bg-cream, #f5efdf);
	color: var(--color-text-dark, #1f1f1f);
}

.custom-shop-page .container {
    max-width: 1320px !important;
    margin: 0 auto;
    padding: 0 2rem;
    width: 100%;
}

/* Force all sections to not be 100vh */
.custom-shop-page section {
	min-height: unset !important;
}

/* Hero Section */
.csp-hero {
	background-color: #f5efdf;
	height: 700px !important;
	min-height: unset !important;
	display: block;
	width: 100%;
	/* Removed overflow: hidden to prevent button clipping */
}

.csp-hero-inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	height: 100%;
}

.csp-hero-content {
	flex: 1;
	max-width: 50%;
	padding-right: 40px;
	padding-top: 130px; /* Adjusted so it sits just under the logo without pushing buttons off screen */
}

.csp-hero-title {
	font-size: 4.5rem;
	font-weight: 900;
	line-height: 1.05;
	color: #2e4a1a;
	margin-bottom: 20px;
	font-family: var(--font-heading, sans-serif);
	letter-spacing: -0.02em;
}

.csp-hero-desc {
	font-size: 1.15rem;
	line-height: 1.6;
	margin-bottom: 30px;
	color: #111;
	font-weight: 500;
}

.csp-hero-actions {
	display: flex;
	gap: 16px;
}

.csp-hero-actions .btn {
	border-radius: 8px !important; /* Original rounded corners, not pill */
	padding: 15px 35px;
}

.btn {
	display: inline-block;
	padding: 15px 30px;
	font-weight: 700;
	text-decoration: none;
	border-radius: 8px;
	transition: all 0.3s ease;
	text-transform: uppercase;
	font-size: 0.95rem;
}

.csp-btn-primary {
	background-color: #2e4a1a;
	color: #fff;
	border: 2px solid #2e4a1a;
}

.csp-btn-primary:hover {
	background-color: #1e3311;
	color: #fff;
}

.csp-btn-secondary {
	background-color: transparent;
	color: #111;
	border: 1px solid #111;
}

.csp-btn-secondary:hover {
	background-color: #111;
	color: #fff;
}

.csp-hero-image {
	flex: 1;
	height: 100%;
	display: flex;
	justify-content: flex-end;
	align-items: center;
	position: relative;
}

.csp-bowl-img {
	height: 120%;
	width: auto;
	max-width: none;
	object-fit: cover;
	transform: translateX(10%);
	/* Removed the CSS mask to restore the solid look if using original image */
}

/* Build Your Own Section */
.csp-build-section {
	padding: 60px 0;
	text-align: center;
	background-color: #fff;
}

.csp-section-header {
	margin-bottom: 40px;
}

.csp-section-title {
	font-size: 2.75rem;
	font-weight: 900;
	color: #2e4a1a;
	margin-bottom: 5px;
	text-transform: uppercase;
	font-family: var(--font-heading, sans-serif);
}

.csp-section-subtitle {
	font-size: 1.2rem;
	font-weight: 700;
	text-transform: uppercase;
	color: #000;
	font-family: var(--font-heading, sans-serif);
}

.csp-build-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
	gap: 30px;
	max-width: 900px;
	margin: 0 auto;
}

.csp-build-card {
	background: #faf8f2;
	border-radius: 12px;
	overflow: hidden;
	text-align: center;
	border: 1px solid #eee;
}

.csp-build-bg {
	width: 100%;
	height: 250px;
	background-size: cover;
	background-position: center;
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
}

.csp-build-bg::after {
	content: '';
	position: absolute;
	top: 0; left: 0; right: 0; bottom: 0;
	background: rgba(0,0,0,0.3);
}

.csp-build-overlay-link {
	position: relative;
	z-index: 2;
	text-decoration: none;
}

.csp-build-overlay-title {
	color: #fff;
	font-size: 22px;
	font-weight: 900;
	margin: 0;
	text-transform: uppercase;
	text-shadow: 2px 2px 10px rgba(0,0,0,0.5);
}

.csp-build-content {
	padding: 25px;
}

.csp-build-desc {
	font-size: 0.95rem;
	color: #444;
	margin-bottom: 20px;
	line-height: 1.5;
}

.csp-build-link {
	display: inline-block;
	color: #2e4a1a;
	font-weight: 700;
	text-decoration: none;
	text-transform: uppercase;
}

.csp-build-link:hover {
	text-decoration: underline;
}

/* Entrees Section */
.csp-entrees-section {
	padding: 60px 0;
	background-color: #f5efdf;
}

.csp-group-header {
	display: flex;
	align-items: center;
	margin-bottom: 30px;
}

.csp-group-title {
	font-size: 2rem;
	font-weight: 900;
	color: #2e4a1a;
	margin-right: 20px;
	white-space: nowrap;
}

.csp-group-line {
	height: 1px;
	background-color: rgba(46, 74, 26, 0.2);
	flex-grow: 1;
}

.csp-product-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
	gap: 25px;
}

.csp-product-card {
	background: #fff;
	border-radius: 12px;
	overflow: hidden;
	display: flex;
	flex-direction: column;
	border: 1px solid #e0dfd5;
}

.csp-product-img {
	height: 200px;
	width: 100%;
}

.csp-product-img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.csp-product-info {
	padding: 20px;
	flex-grow: 1;
	display: flex;
	flex-direction: column;
}

.csp-product-name {
	font-size: 1.1rem;
	font-weight: 900;
	margin-bottom: 10px;
	text-transform: uppercase;
}

.csp-product-name a {
	color: #111;
	text-decoration: none;
}

.csp-product-name a:hover {
	color: #2e4a1a;
}

.csp-product-desc {
	font-size: 0.9rem;
	color: #666;
	line-height: 1.4;
	margin-bottom: 15px;
	flex-grow: 1;
}

.csp-product-price {
	font-weight: 800;
	color: #2e4a1a;
	font-size: 1.15rem;
}

/* Responsive */
@media (max-width: 1199px) {
	.csp-hero-title {
		font-size: 3.8rem;
	}
	.csp-hero-content {
		padding-top: 100px;
	}
}

@media (max-width: 991px) {
	.csp-hero {
		height: auto !important; /* Allow natural stacking height on tablet/mobile */
		padding: 40px 0;
	}
	
	.csp-hero-inner {
		flex-direction: column;
		justify-content: flex-start;
		text-align: center;
		height: auto;
		gap: 30px;
	}
	
	.csp-hero-content {
		max-width: 100%;
		padding-right: 0;
		padding-top: 20px;
		margin-bottom: 20px;
	}
	
	.csp-hero-title {
		font-size: 3.5rem;
	}
	
	.csp-hero-actions {
		justify-content: center;
	}
	
	.csp-hero-image {
		width: 100%;
		justify-content: center;
		height: auto;
	}
	
	.csp-bowl-img {
		height: auto;
		width: 100%;
		max-width: 500px;
		transform: none;
	}
	
	.csp-build-overlay-title {
		font-size: 2.25rem;
	}
}

@media (max-width: 767px) {
	.csp-hero {
		padding: 30px 0;
	}
	
	.csp-hero-title {
		font-size: 2.75rem;
		margin-bottom: 15px;
	}
	
	.csp-hero-desc {
		font-size: 1rem;
		margin-bottom: 25px;
	}
	
	.csp-hero-actions {
		flex-direction: column;
		width: 100%;
		max-width: 300px;
		margin: 0 auto;
	}
	
	.csp-hero-actions .btn {
		width: 100%;
	}
	
	.csp-section-title {
		font-size: 2.25rem;
	}
	
	.csp-section-subtitle {
		font-size: 1rem;
	}
	
	.csp-group-header {
		flex-direction: column;
		text-align: center;
	}
	
	.csp-group-title {
		margin-right: 0;
		margin-bottom: 15px;
		font-size: 1.75rem;
	}
	
	.csp-group-line {
		width: 100%;
	}
}
