/*
Theme Name: Shree Hari Takeaway
Theme URI: 
Author: 
Author URI: 
Description: Custom WordPress theme for Shree Hari Takeaway purely vegetarian restaurant. Designed with a Modern Indian Botanical aesthetic.
Version: 1.0.0
License: 
License URI: 
Text Domain: shree-hari
Tags: custom, restaurant, modern, indian, botanical
*/

:root {
	/* Brand Colors */
	--sh-green: #718B48;
	--sh-deep-green: #536A32;
	--sh-saffron: #EEAD46;
	--sh-dark-gold: #D6952E;
	--sh-charcoal: #1B1A18;
	--sh-warm-white: #FFFDF8;
	--sh-cream: #F8F3E8;
	--sh-light-green: #EEF3E6;
	--sh-light-gold: #FFF3D9;
	--sh-border: #E7E1D5;
	--sh-muted: #6E6A63;

	/* Typography */
	--sh-font-display: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
	--sh-font-ui: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
}

/* Base Styles */
body {
	margin: 0;
	padding: 0;
	font-family: var(--sh-font-ui);
	background-color: var(--sh-warm-white);
	color: var(--sh-charcoal);
	line-height: 1.6;
}

h1, h2, h3, h4, h5, h6 {
	font-family: var(--sh-font-ui);
	color: var(--sh-charcoal);
	margin-top: 0;
}

a {
	color: var(--sh-green);
	text-decoration: none;
	transition: color 0.2s ease;
}

a:hover {
	color: var(--sh-deep-green);
}

/* Buttons */
.button {
	display: inline-block;
	padding: 12px 24px;
	border-radius: 4px;
	font-weight: 600;
	text-align: center;
	cursor: pointer;
	border: none;
	transition: background 0.2s ease, color 0.2s ease;
}

.button-primary {
	background-color: var(--sh-green);
	color: white;
}

.button-primary:hover {
	background-color: var(--sh-deep-green);
	color: white;
}

.button-block {
	display: block;
	width: 100%;
	box-sizing: border-box;
}

.button.disabled {
	background-color: var(--sh-muted);
	cursor: not-allowed;
	opacity: 0.7;
}

/* Layout */
.site-header {
	background-color: var(--sh-warm-white);
	border-bottom: 1px solid var(--sh-border);
	padding: 1rem 2rem;
	position: sticky;
	top: 0;
	z-index: 100;
	display: flex;
	justify-content: space-between;
	align-items: center;
}

/* Hero Section */
.sh-hero {
	background-color: var(--sh-cream);
	padding: 3rem 2rem;
	text-align: center;
	border-bottom: 1px solid var(--sh-border);
}

.sh-hero-title {
	font-size: 3rem;
	margin-bottom: 1rem;
	line-height: 1.2;
}

.sh-hero-subtitle {
	font-size: 1.125rem;
	color: var(--sh-muted);
	max-width: 600px;
	margin: 0 auto 1.5rem auto;
}

.status-indicator {
	font-size: 1.5rem;
	vertical-align: middle;
}
.status-open {
	color: var(--sh-green);
}

.sh-hero-actions {
	margin-top: 2rem;
}

.sh-delivery-options {
	margin-top: 1rem;
	font-size: 0.875rem;
	color: var(--sh-muted);
}

.delivery-link {
	margin: 0 0.5rem;
	font-weight: 600;
}

/* Menu Layout */
.sh-menu-section {
	padding: 2rem;
	max-width: 1440px;
	margin: 0 auto;
}

.sh-menu-layout {
	display: flex;
	gap: 2rem;
}

.sh-menu-main {
	flex: 1;
}

/* Categories */
.sh-menu-categories ul {
	display: flex;
	list-style: none;
	padding: 0;
	margin: 0 0 2rem 0;
	overflow-x: auto;
	gap: 1rem;
	border-bottom: 1px solid var(--sh-border);
	padding-bottom: 1rem;
}

.sh-menu-categories a {
	display: block;
	padding: 0.5rem 1rem;
	background-color: var(--sh-cream);
	color: var(--sh-charcoal);
	border-radius: 20px;
	white-space: nowrap;
	font-weight: 500;
}

.sh-menu-categories a.active {
	background-color: var(--sh-green);
	color: white;
}

/* Product List */
.sh-category-group {
	margin-bottom: 3rem;
}

.sh-category-group h3 {
	font-size: 2rem;
	border-bottom: 2px solid var(--sh-saffron);
	padding-bottom: 0.5rem;
	margin-bottom: 1.5rem;
}

.sh-product-card {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 1rem;
	background: white;
	border: 1px solid var(--sh-border);
	border-radius: 8px;
	margin-bottom: 1rem;
	box-shadow: 0 2px 4px rgba(0,0,0,0.02);
}

.sh-product-name {
	font-size: 1.125rem;
	margin-bottom: 0.25rem;
	color: var(--sh-charcoal);
	font-family: var(--sh-font-ui);
}

.sh-product-desc {
	font-size: 0.875rem;
	color: var(--sh-muted);
	margin-bottom: 0.5rem;
}

.sh-product-price {
	font-weight: 600;
	color: var(--sh-deep-green);
}

.sh-btn-add {
	background: none;
	border: 1px solid var(--sh-border);
	padding: 0.5rem 1rem;
	border-radius: 20px;
	color: var(--sh-green);
	font-weight: 600;
	cursor: pointer;
	font-size: 1.25rem;
	transition: background 0.2s;
}

.sh-btn-add:hover {
	background: var(--sh-light-green);
}

/* Desktop Cart */
.sh-cart-sidebar {
	width: 350px;
	flex-shrink: 0;
}

.sh-cart-container {
	position: sticky;
	top: 100px;
	background: white;
	border: 1px solid var(--sh-border);
	border-radius: 8px;
	padding: 1.5rem;
	box-shadow: 0 4px 12px rgba(0,0,0,0.05);
}

.sh-cart-container h3 {
	margin-bottom: 1.5rem;
	font-size: 1.5rem;
	text-align: center;
}

.sh-cart-empty {
	text-align: center;
	color: var(--sh-muted);
	padding: 2rem 0;
}

.sh-cart-summary {
	margin-top: 1.5rem;
	padding-top: 1.5rem;
	border-top: 1px dashed var(--sh-border);
}

.sh-cart-subtotal {
	display: flex;
	justify-content: space-between;
	font-weight: 600;
	font-size: 1.125rem;
	margin-bottom: 1rem;
}

/* Mobile Cart */
.sh-mobile-cart-banner {
	position: fixed;
	bottom: 0;
	left: 0;
	right: 0;
	background: white;
	border-top: 1px solid var(--sh-border);
	padding: 1rem;
	display: flex;
	justify-content: space-between;
	align-items: center;
	box-shadow: 0 -4px 12px rgba(0,0,0,0.05);
	z-index: 1000;
}

.sh-mc-count {
	font-weight: 600;
	margin-right: 1rem;
}

.sh-mc-total {
	font-weight: 600;
	color: var(--sh-deep-green);
}

/* Responsive */
@media (max-width: 1023px) {
	.sh-cart-sidebar {
		display: none;
	}
	.sh-menu-layout {
		display: block;
	}
}

@media (min-width: 1024px) {
	.sh-mobile-cart-banner {
		display: none !important;
	}
}

/* WooCommerce Overrides */
.woocommerce form .form-row input.input-text, 
.woocommerce form .form-row textarea,
.woocommerce form .form-row select {
	-webkit-appearance: none;
	appearance: none;
	padding: 0.75rem;
	border: 1px solid var(--sh-border);
	border-radius: 0.5rem;
	width: 100%;
	font-family: var(--sh-font-ui);
	outline: none;
	transition: border-color 0.2s, box-shadow 0.2s;
	background: white;
	box-sizing: border-box;
}

.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus,
.woocommerce form .form-row select:focus {
	border-color: var(--sh-green);
	box-shadow: 0 0 0 1px var(--sh-green);
}

.woocommerce form .form-row label {
	display: block;
	margin-bottom: 0.25rem;
	font-weight: 500;
	font-size: 0.875rem;
	color: var(--sh-charcoal);
}

/* Force perfect grid alignment for form fields */
.woocommerce form .woocommerce-billing-fields__field-wrapper,
.woocommerce form .woocommerce-shipping-fields__field-wrapper,
.woocommerce form .woocommerce-additional-fields__field-wrapper {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1.25rem;
	margin-bottom: 1.5rem;
}

.woocommerce form .form-row {
	padding: 0;
	margin: 0;
	width: 100%;
	float: none;
	grid-column: 1 / -1; /* default wide */
}

.woocommerce form .form-row-first {
	grid-column: 1 / 2;
}

.woocommerce form .form-row-last {
	grid-column: 2 / 3;
}

.woocommerce #respond input#submit, 
.woocommerce a.button, 
.woocommerce button.button, 
.woocommerce input.button,
.woocommerce #place_order,
.woocommerce-page #place_order {
	-webkit-appearance: none;
	appearance: none;
	background-color: var(--sh-green) !important;
	color: white !important;
	padding: 0.875rem 1.5rem;
	border-radius: 0.5rem;
	font-weight: 600;
	border: none;
	transition: background-color 0.2s;
	font-size: 1rem;
}

.woocommerce #place_order,
.woocommerce-page #place_order {
	width: 100% !important;
	float: none !important;
	display: block !important;
	text-align: center;
	margin-top: 1rem;
}

.woocommerce #respond input#submit:hover, 
.woocommerce a.button:hover, 
.woocommerce button.button:hover, 
.woocommerce input.button:hover,
.woocommerce #place_order:hover,
.woocommerce-page #place_order:hover {
	background-color: var(--sh-deep-green) !important;
}

.woocommerce form.checkout_coupon, 
.woocommerce form.login, 
.woocommerce form.register {
	border: 1px solid var(--sh-border);
	border-radius: 0.75rem;
	padding: 1.5rem;
}

.woocommerce-MyAccount-navigation ul {
	list-style: none;
	padding: 0;
	margin: 0;
}

.woocommerce-MyAccount-navigation ul li {
	margin-bottom: 0.5rem;
}

.woocommerce-MyAccount-navigation ul li a {
	display: block;
	padding: 0.75rem 1rem;
	background: var(--sh-gray-bg);
	border-radius: 0.5rem;
	color: var(--sh-charcoal);
	font-weight: 500;
}

.woocommerce-MyAccount-navigation ul li.is-active a,
.woocommerce-MyAccount-navigation ul li a:hover {
	background: var(--sh-green);
	color: white;
}

/* Tables */
.woocommerce table.shop_table {
	border: 1px solid var(--sh-border);
	border-radius: 0.5rem;
	border-collapse: separate;
	margin-bottom: 2rem;
}

.woocommerce table.shop_table th, 
.woocommerce table.shop_table td {
	padding: 0.75rem 0.5rem;
	border-bottom: 1px solid var(--sh-border);
}

@media (min-width: 768px) {
	.woocommerce table.shop_table th, 
	.woocommerce table.shop_table td {
		padding: 1rem;
	}
}

.woocommerce table.shop_table tbody tr:last-child td {
	border-bottom: none;
}

/* Notices */
.woocommerce-message, 
.woocommerce-info, 
.woocommerce-error {
	background: var(--sh-gray-bg);
	border-top: 3px solid var(--sh-green);
	padding: 1rem 1.5rem;
	border-radius: 0.5rem;
	margin-bottom: 2rem;
	list-style: none;
}
.woocommerce-error {
	border-top-color: #e2401c;
}

/* Payment Box */
.woocommerce-checkout #payment {
	background: var(--sh-gray-bg);
	border-radius: 0.75rem;
	border: 1px solid var(--sh-border);
	padding: 1.5rem;
	margin-top: 1.5rem;
}

.woocommerce-checkout #payment ul.payment_methods {
	border-bottom: 1px solid var(--sh-border);
	padding: 0 0 1rem 0;
	margin: 0;
	list-style: none;
}

.woocommerce-checkout #payment ul.payment_methods li {
	margin-bottom: 0.75rem;
}

.woocommerce-checkout #payment div.payment_box {
	background: white;
	border: 1px solid var(--sh-border);
	border-radius: 0.5rem;
	padding: 1rem;
	margin-top: 0.5rem;
	font-size: 0.875rem;
	color: var(--sh-muted);
}

.woocommerce-checkout #payment div.payment_box::before {
	display: none;
}

/* Modern Checkout Layout */
.woocommerce-checkout #customer_details {
	background: white;
	border: 1px solid var(--sh-border);
	border-radius: 0.75rem;
	padding: 1.25rem;
	margin-bottom: 2rem;
	box-shadow: 0 4px 12px rgba(0,0,0,0.02);
}

@media (min-width: 1024px) {
    .woocommerce-checkout form.checkout {
        display: grid;
        grid-template-columns: 1fr 450px;
        grid-template-rows: max-content 1fr;
        column-gap: 2.5rem;
        row-gap: 1.5rem;
        align-items: start;
    }
    
    .woocommerce-checkout #customer_details {
        grid-column: 1 / 2;
        grid-row: 1 / 3;
        margin-bottom: 0;
        padding: 2rem;
    }

    
    .woocommerce-checkout #order_review_heading {
        grid-column: 2 / 3;
        grid-row: 1 / 2;
        margin-top: 0;
        margin-bottom: 0;
        padding-top: 0;
    }
    
    .woocommerce-checkout #order_review {
        grid-column: 2 / 3;
        grid-row: 2 / 3;
        position: sticky;
        top: 120px;
    }
}

.woocommerce-checkout .col2-set {
	display: block;
	width: 100%;
	margin: 0 0 2rem 0;
	padding: 0;
}

.woocommerce-checkout .col2-set .col-1,
.woocommerce-checkout .col2-set .col-2 {
	display: block;
	width: 100%;
	float: none;
	padding: 0;
	margin: 0;
}

/* Mobile App-Like Place Order Button */
@media (max-width: 1023px) {
	.woocommerce-checkout #payment .place-order {
		margin-top: 1.5rem;
		padding-top: 1.5rem;
		border-top: 1px solid var(--sh-border);
	}
	
	.woocommerce-checkout #payment .place-order .button {
		width: 100%;
		padding: 1rem;
		font-size: 1rem;
	}
}

.woocommerce-billing-fields,
.woocommerce-shipping-fields {
	margin: 0;
	padding: 0;
}

.woocommerce-form-coupon-toggle {
	display: none !important;
}

/* Additional Information / Order Notes Spacing & Styling */
.woocommerce-additional-fields h3 {
	margin-top: 2.5rem !important; /* Fix spacing between password field and this heading */
}

.woocommerce-additional-fields textarea {
	border: 1px solid var(--sh-border) !important; /* Match other inputs */
	border-radius: 0.5rem !important;
	padding: 0.75rem !important;
	font-size: 0.875rem !important;
	box-shadow: none !important; /* Remove Woo's default inner shadow */
	outline: none !important;
}

.woocommerce-additional-fields textarea:focus {
	border-color: var(--sh-green) !important;
	box-shadow: 0 0 0 1px var(--sh-green) !important;
}

/* Privacy Policy Text Formatting */
.woocommerce-checkout .woocommerce-privacy-policy-text p,
.woocommerce-account .woocommerce-privacy-policy-text p {
	font-size: 0.75rem !important;
	line-height: 1.4 !important;
	color: var(--sh-muted) !important;
	text-align: center !important;
	margin-top: 1.5rem !important;
	margin-bottom: 1.5rem !important;
}

/* Uniform Headings */
.woocommerce-checkout h3 {
	font-size: 1.25rem;
	font-weight: 700;
	margin-top: 0;
	margin-bottom: 1.5rem;
	color: var(--sh-charcoal);
	border-bottom: 1px solid var(--sh-border);
	padding-bottom: 0.75rem;
}

#order_review_heading {
	font-size: 1.5rem;
}

#order_review {
	background: white;
	border: 1px solid var(--sh-border);
	border-radius: 0.75rem;
	padding: 1rem;
	box-shadow: 0 4px 12px rgba(0,0,0,0.02);
}

@media (min-width: 768px) {
	#order_review {
		padding: 2rem;
	}
}

.woocommerce table.shop_table.woocommerce-checkout-review-order-table th {
	background: var(--sh-gray-bg);
	font-weight: 600;
	text-transform: uppercase;
	font-size: 0.75rem;
	letter-spacing: 0.05em;
	color: var(--sh-muted);
}

.woocommerce table.shop_table.woocommerce-checkout-review-order-table td {
	font-size: 0.9rem;
}

.woocommerce-checkout-review-order-table tfoot th,
.woocommerce-checkout-review-order-table tfoot td {
	border-top: 2px solid var(--sh-border);
}

.woocommerce-checkout-review-order-table .order-total th,
.woocommerce-checkout-review-order-table .order-total td {
	font-size: 1.25rem;
	color: var(--sh-charcoal);
	font-weight: 700;
}

/* ==========================================================================
   WooCommerce My Account Styling
   ========================================================================== */

/* Global Main Container Width Fix */
main.site-main {
    width: 100% !important;
}

/* Main Layout & Fix Container Height (Only for logged in users) */
.logged-in.woocommerce-account .woocommerce {
    display: grid !important;
    grid-template-columns: 100%;
    gap: 2rem;
    min-height: 500px;
    width: 100% !important;
    max-width: 100% !important;
    justify-content: stretch !important;
    justify-items: stretch !important;
    align-content: start !important;
    align-items: start !important;
    box-sizing: border-box !important;
}

@media (min-width: 768px) {
    .logged-in.woocommerce-account .woocommerce {
        grid-template-columns: 240px minmax(0, 1fr) !important;
        gap: 3rem;
    }
}

/* Force override of WooCommerce default floats and widths */
.logged-in.woocommerce-account .woocommerce-MyAccount-navigation,
.logged-in.woocommerce-account .woocommerce-MyAccount-content {
    float: none !important;
    width: 100% !important;
    max-width: 100% !important;
    flex: none !important;
    box-sizing: border-box !important;
}

.logged-in.woocommerce-account .woocommerce::before,
.logged-in.woocommerce-account .woocommerce::after {
    display: none !important;
}

/* ==========================================================================
   Login / Register Page Styling
   ========================================================================== */
/* Hide the redundant "My account" Title and its border on the login page */
.woocommerce-account:not(.logged-in) .entry-header,
.woocommerce-account:not(.logged-in) .page-title {
    display: none !important;
}

/* Remove the default white page box so our custom login card can stand alone */
body.woocommerce-account:not(.logged-in) .site-main {
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    padding: 0 !important;
    max-width: 1000px !important;
}

.woocommerce-account:not(.logged-in) .woocommerce {
    max-width: 1000px;
    margin: 0 auto;
    background: transparent;
    padding: 0;
    border: none;
    box-shadow: none;
}

.woocommerce-account:not(.logged-in) .u-columns.col2-set {
    display: grid !important;
    grid-template-columns: 1fr;
    gap: 2rem;
}

@media (min-width: 768px) {
    .woocommerce-account:not(.logged-in) .u-columns.col2-set {
        grid-template-columns: 1fr 1fr;
        gap: 3rem;
    }
}

/* Hide clearfix pseudo-elements that break the grid layout */
.woocommerce-account:not(.logged-in) .u-columns.col2-set::before,
.woocommerce-account:not(.logged-in) .u-columns.col2-set::after {
    display: none !important;
}

.woocommerce-account:not(.logged-in) .u-column1,
.woocommerce-account:not(.logged-in) .u-column2,
.woocommerce-account:not(.logged-in) .col-1,
.woocommerce-account:not(.logged-in) .col-2 {
    background: #ffffff;
    border: 1px solid var(--sh-border);
    padding: 2.5rem;
    border-radius: 12px;
    box-shadow: 0 4px 12px rgba(0,0,0,0.02);
    float: none !important;
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
}

.woocommerce-account:not(.logged-in) .u-column1 h2,
.woocommerce-account:not(.logged-in) .u-column2 h2,
.woocommerce-account:not(.logged-in) .col-1 h2,
.woocommerce-account:not(.logged-in) .col-2 h2 {
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--sh-charcoal);
    margin-top: 0;
    margin-bottom: 2rem;
    padding-bottom: 0;
    border-bottom: none;
    text-align: center;
}

/* Remove default borders/padding from forms inside the custom columns */
.woocommerce-account:not(.logged-in) form.login,
.woocommerce-account:not(.logged-in) form.register {
    border: none !important;
    padding: 0 !important;
    margin: 0 !important;
    box-shadow: none !important;
    background: transparent !important;
}

/* Input Field Tweaks */
.woocommerce-account:not(.logged-in) form.login .woocommerce-Input,
.woocommerce-account:not(.logged-in) form.register .woocommerce-Input {
    border: 1px solid var(--sh-border) !important;
    border-radius: 0.5rem !important;
    width: 100% !important;
    box-shadow: none !important;
    background: white !important;
}

.woocommerce-account:not(.logged-in) form.login .woocommerce-Input:focus,
.woocommerce-account:not(.logged-in) form.register .woocommerce-Input:focus {
    border-color: var(--sh-green) !important;
    box-shadow: 0 0 0 1px var(--sh-green) !important;
    outline: none !important;
}

/* Navigation Sidebar */
.woocommerce-account .woocommerce-MyAccount-navigation ul {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.woocommerce-account .woocommerce-MyAccount-navigation li {
    margin: 0;
}

.woocommerce-account .woocommerce-MyAccount-navigation li a {
    display: block;
    padding: 12px 20px;
    background: var(--sh-gray-bg);
    color: var(--sh-charcoal);
    border-radius: 8px;
    font-size: 0.95rem;
    font-weight: 600;
    text-decoration: none;
    transition: all 0.2s ease;
    border: 1px solid transparent;
}

.woocommerce-account .woocommerce-MyAccount-navigation li:hover a {
    background: var(--sh-light-green);
    color: var(--sh-green);
}

.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a {
    background: var(--sh-green);
    color: #ffffff;
    border-color: var(--sh-dark-green);
}

/* Content Area */
.woocommerce-account .woocommerce-MyAccount-content {
    background: transparent;
    padding-bottom: 2rem;
}

/* Address Cards Styling */
.woocommerce-account .u-columns.woocommerce-Addresses {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 2rem;
    margin-top: 1.5rem;
}

.woocommerce-account .u-column.woocommerce-Address {
    background: var(--sh-gray-bg);
    border: 1px solid var(--sh-border);
    border-radius: 12px;
    padding: 1.5rem;
    box-shadow: 0 2px 8px rgba(0,0,0,0.01);
    float: none !important;
    width: 100% !important;
    max-width: 100% !important;
}

.woocommerce-account .woocommerce-Address-title {
    display: flex;
    justify-content: space-between;
    align-items: center;
    border-bottom: 2px solid var(--sh-border);
    padding-bottom: 0.75rem;
    margin-bottom: 1rem;
}

.woocommerce-account .woocommerce-Address-title h3 {
    margin: 0;
    font-size: 1.1rem;
    color: var(--sh-charcoal);
}

.woocommerce-account .woocommerce-Address-title .edit {
    font-size: 0.85rem;
    color: var(--sh-green);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    text-decoration: none;
}

.woocommerce-account .woocommerce-Address address {
    font-style: normal;
    line-height: 1.6;
    color: var(--sh-muted);
}

/* Fix "The following addresses will be used..." text */
.woocommerce-account .woocommerce-MyAccount-content > p:first-child {
    font-size: 0.95rem;
    color: var(--sh-muted);
    margin-bottom: 2rem;
    padding: 1rem;
    background: #f8fafc;
    border-left: 4px solid var(--sh-gold);
    border-radius: 4px;
}

/* Fix generic notice boxes globally (My Account, Checkout, Cart) */
.woocommerce-info,
.woocommerce-message,
.woocommerce-error {
    background: #f8fafc;
    border: 1px solid var(--sh-border);
    border-left: 4px solid var(--sh-green);
    padding: 1.5rem;
    border-radius: 8px;
    color: var(--sh-charcoal);
    font-size: 0.95rem;
    display: block;
    margin-bottom: 2rem;
    list-style: none; /* For errors which are ul */
}

.woocommerce-error {
    border-left-color: #ef4444; /* Red for errors */
}

/* Hide the broken WooCommerce font-icons */
.woocommerce-info::before,
.woocommerce-message::before,
.woocommerce-error::before {
    display: none !important;
}

.woocommerce-info .button,
.woocommerce-message .button,
.woocommerce-error .button {
    background: var(--sh-green) !important;
    color: white !important;
    padding: 8px 16px !important;
    border-radius: 8px !important;
    font-weight: 600 !important;
    text-decoration: none !important;
    float: right;
    margin-left: 1rem;
    margin-top: -6px;
}

.woocommerce-info a:not(.button),
.woocommerce-message a:not(.button),
.woocommerce-error a:not(.button) {
    color: var(--sh-green);
    font-weight: 600;
}

/* Also style the coupon form that appears when you click the info link */
.woocommerce-form-coupon {
    padding: 1.5rem;
    background: var(--sh-gray-bg);
    border: 1px solid var(--sh-border);
    border-radius: 8px;
    margin-bottom: 2rem;
    display: flex;
    gap: 1rem;
}

/* ==========================================================================
   WooCommerce Thank You / Order Received Page Styling
   ========================================================================== */

/* The 'Thank you. Your order has been received.' notice */
.woocommerce-order .woocommerce-notice--success.woocommerce-thankyou-order-received {
    display: block !important;
    clear: both !important;
    float: none !important;
    width: 100% !important;
    background: var(--sh-light-green);
    color: var(--sh-dark-green);
    border: 1px solid rgba(113, 139, 72, 0.2);
    border-radius: 8px;
    padding: 1.5rem;
    font-size: 1.1rem;
    font-weight: 600;
    text-align: center;
    margin-bottom: 2.5rem;
    box-shadow: 0 4px 15px rgba(113, 139, 72, 0.05);
}

/* The Order Overview Details block (Order number, date, email, total, method) */
.woocommerce-order ul.woocommerce-order-overview {
    display: flex !important;
    flex-wrap: wrap;
    gap: 1rem;
    margin: 0 0 3rem 0;
    padding: 0;
    list-style: none;
    border: none;
    clear: both !important;
    width: 100% !important;
}

.woocommerce-order ul.woocommerce-order-overview li {
    background: var(--sh-gray-bg);
    border: 1px solid var(--sh-border) !important;
    border-radius: 8px;
    padding: 1.5rem;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    text-transform: uppercase;
    font-size: 0.75rem;
    color: var(--sh-muted);
    font-weight: 600;
    letter-spacing: 0.05em;
    float: none !important;
    flex: 1 1 auto !important;
    margin: 0 !important;
    word-break: break-word; /* Fix long email overflow */
    overflow-wrap: anywhere;
}

.woocommerce-order ul.woocommerce-order-overview li strong {
    text-transform: none;
    font-size: 1.1rem;
    color: var(--sh-charcoal);
    font-weight: 700;
    letter-spacing: 0;
}

/* Clear WooCommerce floats and dashed borders */
.woocommerce-order ul.woocommerce-order-overview::before,
.woocommerce-order ul.woocommerce-order-overview::after,
.woocommerce-order ul.woocommerce-order-overview li::after,
.woocommerce-order ul.woocommerce-order-overview li::before {
    display: none !important;
}

/* Remove the WooCommerce default dotted right borders */
.woocommerce-order ul.woocommerce-order-overview li {
    border-right: 1px solid var(--sh-border); /* Replace dotted with solid theme border */
}

.woocommerce-order .woocommerce-customer-details h2,
.woocommerce-order .woocommerce-order-details h2 {
    font-size: 1.5rem;
    color: var(--sh-charcoal);
    margin-bottom: 1.5rem;
    padding-bottom: 0.75rem;
    border-bottom: 2px solid var(--sh-border);
}

.woocommerce-order .woocommerce-order-details {
    margin-bottom: 3rem;
}

/* ==========================================================================
   Page & Article Content Typography (.sh-page-content)
   ========================================================================== */
.sh-page-content {
	font-size: 15px;
	line-height: 1.75;
	color: #2D2B28;
}

.sh-page-content h2 {
	font-size: 1.45rem;
	font-weight: 700;
	color: #1B1A18;
	margin-top: 2rem;
	margin-bottom: 0.75rem;
	padding-bottom: 0.5rem;
	border-bottom: 1px solid var(--sh-border);
	letter-spacing: -0.02em;
}

.sh-page-content h2:first-child {
	margin-top: 0;
}

.sh-page-content h3 {
	font-size: 1.2rem;
	font-weight: 700;
	color: #1B1A18;
	margin-top: 1.5rem;
	margin-bottom: 0.5rem;
	letter-spacing: -0.01em;
}

.sh-page-content h4 {
	font-size: 1rem;
	font-weight: 600;
	color: #1B1A18;
	margin-top: 1.25rem;
	margin-bottom: 0.35rem;
}

.sh-page-content p {
	margin-bottom: 1.25rem;
	color: #3F3D38;
}

.sh-page-content p:last-child {
	margin-bottom: 0;
}

.sh-page-content ul, 
.sh-page-content ol {
	margin-top: 0.5rem;
	margin-bottom: 1.25rem;
	padding-left: 1.5rem;
}

.sh-page-content ul {
	list-style-type: disc;
}

.sh-page-content ol {
	list-style-type: decimal;
}

.sh-page-content li {
	margin-bottom: 0.5rem;
	color: #3F3D38;
}

.sh-page-content a {
	color: var(--sh-green);
	font-weight: 500;
	text-decoration: underline;
	text-underline-offset: 2px;
}

.sh-page-content a:hover {
	color: var(--sh-deep-green);
}

.sh-page-content strong {
	color: #1B1A18;
	font-weight: 600;
}

.sh-page-content blockquote {
	margin: 1.5rem 0;
	padding: 1rem 1.25rem;
	background: #F9F8F6;
	border-left: 4px solid var(--sh-green);
	border-radius: 0 0.5rem 0.5rem 0;
	font-style: italic;
	color: #4A4742;
}

.sh-page-content table {
	width: 100%;
	border-collapse: collapse;
	margin: 1.5rem 0;
	font-size: 14px;
}

.sh-page-content th, 
.sh-page-content td {
	padding: 0.75rem 1rem;
	border: 1px solid var(--sh-border);
	text-align: left;
}

.sh-page-content th {
	background-color: #F9F8F6;
	font-weight: 600;
	color: #1B1A18;
}

.sh-page-content tr:nth-child(even) {
	background-color: #FCFBF9;
}

/* Custom Callout Box for Notices / Allergens */
.sh-callout {
	background: #EEF3E6;
	border: 1px solid #D5E2C5;
	border-radius: 0.75rem;
	padding: 1.25rem;
	margin: 1.5rem 0;
}

.sh-callout-warning {
	background: #FFF8EB;
	border-color: #F8E1B7;
}

/* ==========================================================================
   Contact Form 7 Modern Theme Styling
   ========================================================================== */
.wpcf7-form-control-wrap {
	display: block !important;
	width: 100% !important;
	position: relative;
}

.wpcf7 form input:focus,
.wpcf7 form select:focus,
.wpcf7 form textarea:focus {
	background-color: #ffffff !important;
	border-color: var(--sh-green) !important;
	outline: none !important;
	box-shadow: 0 0 0 1px var(--sh-green) !important;
}

/* CF7 Response Output Box */
.wpcf7 form .wpcf7-response-output {
	margin: 1.25rem 0 0 0 !important;
	padding: 1rem 1.25rem !important;
	border-radius: 0.75rem !important;
	font-size: 0.875rem !important;
	font-weight: 500 !important;
	line-height: 1.5 !important;
}

.wpcf7 form.sent .wpcf7-response-output {
	background-color: #ecfdf5 !important;
	border: 1px solid #a7f3d0 !important;
	color: #065f46 !important;
}

.wpcf7 form.failed .wpcf7-response-output,
.wpcf7 form.aborted .wpcf7-response-output,
.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.unaccepted .wpcf7-response-output {
	background-color: #fff1f2 !important;
	border: 1px solid #fecdd3 !important;
	color: #9f1239 !important;
}

/* CF7 Inline Validation Error Tips */
.wpcf7-not-valid-tip {
	color: #e11d48 !important;
	font-size: 0.75rem !important;
	font-weight: 600 !important;
	margin-top: 0.35rem !important;
	display: block !important;
}

/* CF7 Loading Spinner */
.wpcf7-spinner {
	margin: 0 0 0 0.5rem !important;
	vertical-align: middle !important;
}

