/**
Theme Name: Custom Shop Theme
Theme URI: https://yoursite.com/
Author: Your Name
Author URI: https://yoursite.com/
Description: Custom WooCommerce theme built on Astra foundation. Features custom colors (#1D7549 primary), Chewy display font, and Nunito body font. Optimized for e-commerce with full WooCommerce support and custom product page templates.
Version: 1.0.0
Requires at least: 5.3
WC requires at least: 3.0
WC tested up to: 9.6
Tested up to: 6.8
Requires PHP: 5.3
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: astra
Domain Path: /languages
Tags: custom-menu, custom-logo, entertainment, one-column, two-columns, left-sidebar, e-commerce, right-sidebar, custom-colors, editor-style, featured-images, full-width-template, microformats, post-formats, rtl-language-support, theme-options, threaded-comments, translation-ready, blog
AMP: true

Astra WordPress Theme, Copyright 2020 WPAstra.
Astra is distributed under the terms of the GNU GPL.

Astra is based on Underscores https://underscores.me/, (C) 2012-2020 Automattic, Inc.
Underscores is distributed under the terms of the GNU GPL v2 or later.

Normalizing styles have been helped along thanks to the fine work of.
Nicolas Gallagher and Jonathan Neal https://necolas.github.com/normalize.css/

Astra icon font is based on IcoMoon-Free vector icon by Keyamoon.
IcoMoon-Free vector icon distributed under terms of CC BY 4.0 or GPL. (https://creativecommons.org/licenses/by/4.0/ or https://www.gnu.org/licenses/gpl.html)
Source: http://keyamoon.com/

Flexibility is a JavaScript polyfill for Flexbox By Jonathan Neal, 10up. (https://github.com/jonathantneal/flexibility)
Licensed under MIT ( https://github.com/jonathantneal/flexibility/blob/master/LICENSE.md )

Screenshot image is a collage of actual sites created using the Astra WordPress Theme.

Icons used in the Screenshot image are all licensed under Creative Commons ( CC BY 4.0 ) License ( https://fontawesome.com/license/free )
https://fontawesome.com/v5.15/icons/store?style=solid
https://fontawesome.com/v5.15/icons/shopping-cart?style=solid
https://fontawesome.com/v5.15/icons/pen-square?style=solid
https://fontawesome.com/v5.15/icons/user-tie?style=solid
https://fontawesome.com/v5.15/icons/user-tie?style=solid

Illustrations used in the Screenshot images are all licensed under Creative Commons ( CC0 ) License ( https://gumroad.com/l/humaaans )
https://websitedemos.net/web-design-agency-08/wp-content/uploads/sites/796/2021/05/standing-24.png
https://websitedemos.net/web-design-agency-08/wp-content/uploads/sites/796/2021/05/sitting-2.png

Hand-drawn illustrations used are created by Brainstorm Force and released under Creative Commons ( CC0 ) License.
https://websitedemos.net/web-design-agency-08/wp-content/uploads/sites/796/2021/05/girl-with-image-container.png
https://websitedemos.net/web-design-agency-08/wp-content/uploads/sites/796/2021/05/boy-with-code-container.png
https://websitedemos.net/web-design-agency-08/wp-content/uploads/sites/796/2021/05/web-browser.png

The same site as screenshot can be imported from here https://websitedemos.net/web-design-agency-08/.

For more information, refer to this document on how to create a page like in the screenshot - https://wpastra.com/docs/replicating-the-screenshot/.

Astra default breadcrumb is based on Breadcrumb Trail by Justin Tadlock. (https://github.com/justintadlock/breadcrumb-trail)
Breadcrumb Trail is distributed under the terms of the GNU GPL v2 or later.

Astra local fonts feature is based on Webfonts Loader by WordPress Themes Team (WPTT). (https://github.com/WPTT/webfont-loader)
Licensed under MIT ( https://github.com/WPTT/webfont-loader/blob/master/LICENSE )

/* Note: The CSS files are loaded from assets/css/ folder. */

/* ========================================
   CUSTOM HEADER & NAVIGATION
   ======================================== */

.custom-top-banner {
	background: var(--theme-color-primary);
	color: var(--theme-color-white);
	padding: 8px 0;
	font-size: 0.85rem;
	width: 100%;
}

.header-wrapper {
	max-width: 1240px;
	margin: 0 auto;
	padding: 0 20px;
}
.top-banner-content {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 32px;
}
.banner-item span {
	font-weight: 500;
}

.custom-main-header {
	background: var(--theme-color-white);
	padding: 16px 0;
	border-bottom: 1px solid var(--theme-color-border);
	position: sticky;
	top: 0;
	z-index: 999;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
}
.header-row {
	display: flex;
	align-items: center;
	gap: 24px;
}
.header-logo {
	flex-shrink: 0;
}
.header-logo .custom-logo {
	max-height: 50px;
	width: auto;
	display: block;
}
.header-logo .site-title {
	font-family: var(--theme-font-display);
	font-size: 1.6rem;
	margin: 0;
}
.header-search {
	flex: 0 0 320px;
	position: relative;
}
.header-search form {
	position: relative;
}
.header-search .search-field {
	width: 100%;
	padding: 11px 18px;
	border: 1px solid var(--theme-color-border);
	border-radius: 30px;
	font-family: var(--theme-font-body);
	font-size: 0.95rem;
	background: var(--theme-color-off-white);
	transition: all 0.2s ease;
}
.header-search .search-field:focus {
	outline: none;
	border-color: var(--theme-color-primary);
	background: var(--theme-color-white);
}
.header-search .search-field::placeholder {
	color: var(--theme-color-text-muted);
}
.search-results-dropdown {
	display: none;
	position: absolute;
	top: 100%;
	left: 0;
	right: 0;
	background: var(--theme-color-white);
	border: 1px solid var(--theme-color-border);
	border-radius: 12px;
	box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15);
	margin-top: 8px;
	max-height: 400px;
	overflow-y: auto;
	z-index: 1000;
}
.search-result-item {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 12px 16px;
	text-decoration: none;
	color: var(--theme-color-black);
	border-bottom: 1px solid var(--theme-color-border);
	transition: background 0.2s ease;
}
.search-result-item:last-child {
	border-bottom: none;
}
.search-result-item:hover {
	background: var(--theme-color-off-white);
}
.search-result-item img {
	width: 50px;
	height: 50px;
	object-fit: cover;
	border-radius: 6px;
}
.search-result-item .result-info {
	flex: 1;
	display: flex;
	flex-direction: column;
	gap: 4px;
}
.search-result-item .result-title {
	font-weight: 600;
	color: var(--theme-color-black);
}
.search-result-item .result-price {
	color: var(--theme-color-primary);
	font-weight: 700;
	font-size: 0.9rem;
}
.search-result-item .result-count {
	color: var(--theme-color-text-light);
	font-size: 0.85rem;
}
.search-result-item.category {
	background: rgba(29, 117, 73, 0.03);
}
.search-result-item.category .result-title::before {
	content: '📁 ';
}

.header-nav {
	flex: 1;
	display: flex;
	justify-content: center;
}
.main-navigation {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	gap: 8px;
}
.main-navigation li {
	position: relative;
}
.main-navigation > li > a {
	display: block;
	padding: 10px 16px;
	text-decoration: none;
	color: var(--theme-color-black);
	font-weight: 600;
	font-size: 0.95rem;
	border-radius: 6px;
	transition: all 0.2s ease;
}
.main-navigation > li > a:hover,
.main-navigation > li.current-menu-item > a {
	color: var(--theme-color-primary);
	background: rgba(29, 117, 73, 0.08);
}
.main-navigation .sub-menu {
	display: none;
	position: absolute;
	top: 100%;
	left: 0;
	background: var(--theme-color-white);
	border: 1px solid var(--theme-color-border);
	border-radius: 8px;
	box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);
	min-width: 200px;
	list-style: none;
	padding: 8px 0;
	margin-top: 4px;
	z-index: 1000;
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.2s ease, visibility 0.2s ease;
	pointer-events: none;
}
.main-navigation li:hover > .sub-menu,
.main-navigation li.menu-item-has-children:hover > .sub-menu,
.main-navigation li.menu-item-has-children.show-submenu > .sub-menu {
	display: block;
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
}
.main-navigation .sub-menu a {
	display: block;
	padding: 10px 16px;
	color: var(--theme-color-black);
	text-decoration: none;
	font-size: 0.9rem;
	white-space: nowrap;
}
.main-navigation .sub-menu a:hover {
	background: var(--theme-color-off-white);
	color: var(--theme-color-primary);
}

/* Ensure no gap between menu item and dropdown */
.main-navigation > li.menu-item-has-children {
	position: relative;
}

.main-navigation > li.menu-item-has-children::after {
	content: '';
	position: absolute;
	bottom: -4px;
	left: 0;
	right: 0;
	height: 4px;
	background: transparent;
	z-index: 1001;
}

.cart-trigger {
	background: none;
	border: none;
	cursor: pointer;
	position: relative;
	padding: 8px;
	color: var(--theme-color-black);
	transition: color 0.2s ease;
}
.cart-trigger:hover {
	color: var(--theme-color-primary);
}
.cart-trigger .cart-count {
	position: absolute;
	top: 2px;
	right: 2px;
	background: var(--theme-color-primary);
	color: var(--theme-color-white);
	border-radius: 50%;
	min-width: 18px;
	height: 18px;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 0.7rem;
	font-weight: 700;
	padding: 0 4px;
}

/* ========================================
   Add to Cart Notification
   ======================================== */
.woocommerce-notices-wrapper {
	position: fixed;
	bottom: 0;
	left: 0;
	right: 0;
	z-index: 9999;
	pointer-events: none;
}

.woocommerce-message {
	position: relative;
	background: transparent;
	border: none;
	padding: 0;
	margin: 0;
	pointer-events: all;
}

.custom-cart-notification {
	position: fixed;
	bottom: -500px;
	left: 50%;
	transform: translateX(-50%);
	width: 100%;
	max-width: 1240px;
	background: var(--theme-color-white);
	border-radius: 16px 16px 0 0;
	box-shadow: 0 -4px 24px rgba(0, 0, 0, 0.15);
	padding: 32px 40px;
	transition: bottom 0.4s cubic-bezier(0.4, 0, 0.2, 1);
	z-index: 10000;
}

.custom-cart-notification.show {
	bottom: 0;
}

.close-notification {
	position: absolute;
	top: 16px;
	right: 16px;
	background: none;
	border: none;
	cursor: pointer;
	padding: 4px;
	color: var(--theme-color-text-muted);
	transition: color 0.2s ease;
	z-index: 10;
}

.close-notification:hover {
	color: var(--theme-color-black);
}

.notification-wrapper {
	display: flex;
	gap: 20px;
	align-items: center;
}

.notification-image {
	flex-shrink: 0;
	width: 80px;
	height: 80px;
	border-radius: 8px;
	overflow: hidden;
	background: var(--theme-color-off-white);
}

.notification-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.notification-content {
	flex: 1;
	display: flex;
	gap: 12px;
	align-items: center;
}

.notification-icon {
	flex-shrink: 0;
}

.notification-details {
	display: flex;
	flex-direction: column;
	gap: 4px;
}

.notification-details strong {
	font-size: 1.1rem;
	font-weight: 700;
	color: var(--theme-color-black);
	font-family: var(--theme-font-body);
}

.notification-product {
	font-size: 0.95rem;
	color: var(--theme-color-text-light);
	line-height: 1.4;
}

.notification-actions {
	flex-shrink: 0;
	margin-left: auto;
}

.btn-checkout {
	display: inline-block;
	text-align: center;
	padding: 14px 32px;
	border-radius: 8px;
	font-weight: 600;
	font-size: 1rem;
	text-decoration: none;
	transition: all 0.2s ease;
	font-family: var(--theme-font-body);
	background: var(--theme-color-primary);
	color: var(--theme-color-white);
	border: 1px solid var(--theme-color-primary);
	white-space: nowrap;
}

.btn-checkout:hover {
	background: var(--theme-color-primary-dark);
	color: var(--theme-color-white);
	transform: translateY(-1px);
	box-shadow: 0 4px 12px rgba(29, 117, 73, 0.3);
}

@media (max-width: 1024px) {
	.custom-cart-notification {
		padding: 24px 28px;
	}
	
	.notification-wrapper {
		gap: 16px;
	}
}

@media (max-width: 768px) {
	.custom-cart-notification {
		width: 100%;
		max-width: 100%;
		padding: 20px;
		border-radius: 16px 16px 0 0;
	}
	
	.notification-wrapper {
		flex-wrap: wrap;
		gap: 16px;
	}
	
	.notification-image {
		width: 60px;
		height: 60px;
	}
	
	.notification-content {
		flex: 1 1 auto;
		gap: 10px;
	}
	
	.notification-details strong {
		font-size: 1rem;
	}
	
	.notification-product {
		font-size: 0.85rem;
		line-height: 1.3;
	}
	
	.notification-actions {
		width: 100%;
		margin-left: 0;
		margin-top: 8px;
	}
	
	.btn-checkout {
		width: 100%;
		padding: 12px 24px;
		font-size: 0.95rem;
	}
	
	.close-notification {
		top: 12px;
		right: 12px;
	}
}

@media (max-width: 480px) {
	.notification-wrapper {
		gap: 12px;
	}
	
	.notification-image {
		width: 50px;
		height: 50px;
	}
	
	.notification-icon svg {
		width: 18px;
		height: 18px;
	}
	
	.notification-details strong {
		font-size: 0.95rem;
	}
	
	.notification-product {
		font-size: 0.8rem;
	}
}

.cart-sidebar-overlay {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background: rgba(0, 0, 0, 0.5);
	z-index: 9998;
	opacity: 0;
	visibility: hidden;
	transition: all 0.3s ease;
}
.cart-sidebar-overlay.active {
	opacity: 1;
	visibility: visible;
}
.cart-sidebar {
	position: fixed;
	top: 0;
	right: -420px;
	width: 420px;
	max-width: 90vw;
	height: 100vh;
	background: var(--theme-color-white);
	box-shadow: -4px 0 24px rgba(0, 0, 0, 0.15);
	z-index: 9999;
	display: flex;
	flex-direction: column;
	transition: right 0.3s ease;
}
.cart-sidebar.active {
	right: 0;
}
.cart-sidebar-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 20px;
	border-bottom: 1px solid var(--theme-color-border);
}
.cart-sidebar-header h3 {
	margin: 0;
	font-family: var(--theme-font-display);
	font-size: 1.4rem;
}
.cart-sidebar-close {
	background: none;
	border: none;
	cursor: pointer;
	padding: 8px;
	color: var(--theme-color-black);
	transition: color 0.2s ease;
}
.cart-sidebar-close:hover {
	color: var(--theme-color-primary);
}
.cart-sidebar-content {
	flex: 1;
	overflow-y: auto;
	padding: 20px;
}
.cart-empty {
	text-align: center;
	padding: 60px 20px;
	color: var(--theme-color-text-light);
}
.cart-empty svg {
	opacity: 0.3;
	margin-bottom: 16px;
}
.cart-items {
	display: flex;
	flex-direction: column;
	gap: 16px;
}
.cart-item {
	display: flex;
	gap: 12px;
	padding: 16px;
	background: var(--theme-color-off-white);
	border-radius: 12px;
	position: relative;
}
.cart-item-image {
	flex-shrink: 0;
	width: 80px;
	height: 80px;
	border-radius: 8px;
	overflow: hidden;
}
.cart-item-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.cart-item-details {
	flex: 1;
}
.cart-item-details h4 {
	margin: 0 0 8px 0;
	font-size: 0.95rem;
	font-weight: 600;
}
.cart-item-price {
	color: var(--theme-color-primary);
	font-weight: 700;
	margin-bottom: 8px;
}
.cart-item-quantity {
	display: flex;
	align-items: center;
	gap: 8px;
}
.qty-btn {
	width: 24px;
	height: 24px;
	border: 1px solid var(--theme-color-border);
	background: var(--theme-color-white);
	border-radius: 4px;
	cursor: pointer;
	font-size: 0.9rem;
	font-weight: 600;
	line-height: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: all 0.2s ease;
	color: var(--theme-color-text-light);
	padding: 0;
}
.qty-btn:hover:not(:disabled) {
	border-color: var(--theme-color-primary);
	color: var(--theme-color-primary);
	background: var(--theme-color-off-white);
}
.qty-btn:disabled {
	opacity: 0.5;
	cursor: not-allowed;
}
.qty {
	font-weight: 600;
	font-size: 0.9rem;
	min-width: 20px;
	text-align: center;
	color: var(--theme-color-black);
}
.cart-item-remove {
	position: absolute;
	top: 12px;
	right: 12px;
	background: none;
	border: none;
	cursor: pointer;
	color: var(--theme-color-text-light);
	padding: 4px;
	transition: color 0.2s ease;
}
.cart-item-remove:hover {
	color: #ef4444;
}
.cart-sidebar-footer {
	padding: 20px;
	border-top: 1px solid var(--theme-color-border);
	background: var(--theme-color-off-white);
}
.cart-totals {
	display: flex;
	flex-direction: column;
	gap: 12px;
	margin-bottom: 20px;
}
.cart-subtotal,
.cart-shipping,
.cart-total {
	display: flex;
	justify-content: space-between;
	font-size: 0.95rem;
}
.cart-total {
	font-size: 1.1rem;
	font-weight: 700;
	padding-top: 12px;
	border-top: 2px solid var(--theme-color-border);
}
.cart-actions {
	display: flex;
	flex-direction: column;
	gap: 12px;
}
.btn {
	display: block;
	text-align: center;
	padding: 14px 24px;
	border-radius: 8px;
	text-decoration: none;
	font-weight: 600;
	transition: all 0.2s ease;
}
.btn-primary {
	background: var(--theme-color-primary);
	color: var(--theme-color-white);
}
.btn-primary:hover {
	background: var(--theme-color-primary-dark);
}
.btn-secondary {
	background: var(--theme-color-white);
	color: var(--theme-color-black);
	border: 1px solid var(--theme-color-border);
}
.btn-secondary:hover {
	border-color: var(--theme-color-primary);
	color: var(--theme-color-primary);
}

.mobile-menu-toggle {
	display: none;
	background: none;
	border: none;
	padding: 8px;
	cursor: pointer;
	color: var(--theme-color-black);
}
.mobile-menu-toggle svg {
	display: block;
}
.mobile-search-toggle {
	display: none;
	background: none;
	border: none;
	padding: 8px;
	cursor: pointer;
	color: var(--theme-color-black);
}
.mobile-nav-overlay {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background: rgba(0, 0, 0, 0.5);
	z-index: 9996;
	opacity: 0;
	visibility: hidden;
	transition: all 0.3s ease;
}
.mobile-nav-overlay.active {
	opacity: 1;
	visibility: visible;
}
.mobile-nav-sidebar {
	position: fixed;
	top: 0;
	left: -300px;
	width: 300px;
	height: 100vh;
	background: var(--theme-color-white);
	box-shadow: 4px 0 24px rgba(0, 0, 0, 0.15);
	z-index: 9997;
	overflow-y: auto;
	transition: left 0.3s ease;
}
.mobile-nav-sidebar.active {
	left: 0;
}
.mobile-nav-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 20px;
	border-bottom: 1px solid var(--theme-color-border);
}
.mobile-nav-header h3 {
	margin: 0;
	font-family: var(--theme-font-display);
	font-size: 1.3rem;
}
.mobile-nav-close {
	background: none;
	border: none;
	cursor: pointer;
	padding: 8px;
	color: var(--theme-color-black);
}
.mobile-nav-content {
	padding: 20px;
}
.mobile-nav-content .main-navigation {
	flex-direction: column;
	gap: 0;
}
.mobile-nav-content .main-navigation > li {
	border-bottom: 1px solid var(--theme-color-border);
}
.mobile-nav-content .main-navigation > li:last-child {
	border-bottom: none;
}
.mobile-nav-content .main-navigation > li > a {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 16px 0;
	font-size: 1rem;
	border-radius: 0;
	background: none !important;
}
.mobile-nav-content .main-navigation .sub-menu {
	position: static;
	display: none;
	box-shadow: none;
	border: none;
	padding: 0;
	margin: 0;
	background: transparent;
	border-radius: 0;
	list-style: none;
}

.mobile-nav-content .main-navigation .sub-menu li {
	border-bottom: 1px solid var(--theme-color-border);
}

.mobile-nav-content .main-navigation .sub-menu li:last-child {
	border-bottom: none;
}

.mobile-nav-content .main-navigation .sub-menu a {
	padding: 16px 0;
	font-size: 0.95rem;
	display: block;
}

.mobile-nav-content .menu-item-has-children > a::after {
	content: '›';
	font-size: 1.5rem;
	font-weight: 300;
	transition: transform 0.2s ease;
	margin-left: auto;
}

/* Back button styling */
.mobile-nav-back {
	border-bottom: 1px solid var(--theme-color-border);
	margin-bottom: 8px;
	background: transparent;
}

.mobile-nav-back a {
	display: block;
	padding: 16px 0;
	font-size: 0.9rem;
	font-weight: 500;
	color: var(--theme-color-text-light);
	text-decoration: none;
}

@media (max-width: 1024px) {
	.header-row {
		gap: 16px;
	}
	.header-search {
		flex: 0 0 240px;
	}
	.main-navigation > li > a {
		padding: 8px 12px;
		font-size: 0.9rem;
	}
}

@media (max-width: 768px) {
	.custom-top-banner {
		padding: 6px 0;
		font-size: 0.75rem;
	}
	.top-banner-content {
		gap: 12px;
	}
	.banner-item span {
		font-size: 0.75rem;
	}
	
	.custom-main-header {
		padding: 12px 0;
	}
	.header-row {
		gap: 12px;
	}
	
	.header-logo {
		flex: 1;
	}
	.header-logo .custom-logo {
		max-height: 40px;
	}
	
	.header-search {
		position: fixed;
		top: 0;
		left: 0;
		right: 0;
		background: var(--theme-color-white);
		z-index: 9995;
		padding: 12px 16px;
		box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
		transform: translateY(-100%);
		transition: transform 0.3s ease;
	}
	.header-search.active {
		transform: translateY(0);
	}
	.header-search form {
		max-width: 100%;
	}
	.header-search .search-field {
		width: 100%;
	}
	
	.header-nav {
		display: none;
	}
	
	.mobile-menu-toggle,
	.mobile-search-toggle {
		display: block;
	}
	
	.cart-trigger {
		padding: 4px;
	}
	.cart-trigger .cart-count {
		top: 0;
		right: 0;
	}
	
	.cart-sidebar {
		width: 100%;
		max-width: 100vw;
		right: -100%;
	}
}
