/**
 * Theme Name:   B&M Child
 * Theme URI:    https://example.com/bm
 * Description:  Astra child theme for B&M Restaurant — kitchen management, meal prep, and a-la-carte ordering powered by WooCommerce.
 * Author:       B&M Dev
 * Author URI:   https://example.com
 * Template:     astra
 * Version:      1.7.5
 * Requires at least: 6.0
 * Tested up to: 6.9
 * Requires PHP: 7.4
 * License:      GNU General Public License v2 or later
 * License URI:  https://www.gnu.org/licenses/gpl-2.0.html
 * Text Domain:  bm-child
 * Tags:         restaurant, meal-prep, woocommerce, food-ordering
 */

/* ==========================================================================
   B&M Design System — Custom Properties
   Derived from three inspiration palettes:
     1. Mediterranean (vibrant, warm)
     2. Smoke and Char (smoky, earthy)
     3. Infusion and Zest (fresh, herbal)
   ========================================================================== */

:root {

	/* -------------------------------------------------------------------
	   Core Brand Colors
	   Curated from across all three palettes for a cohesive identity.
	   ------------------------------------------------------------------- */

	/* Primary — Roasted Orange: warm, appetizing, calls to action */
	--bm-primary:            #D86A3D;
	--bm-primary-light:      #E8845E;
	--bm-primary-dark:       #B5542E;

	/* Secondary — Herb Green: fresh, natural, health-conscious */
	--bm-secondary:          #6A8E23;
	--bm-secondary-light:    #7D8E74;
	--bm-secondary-dark:     #4C5F40;

	/* Accent — Golden Amber: warm, rich, readable on light backgrounds */
	--bm-accent:             #D4A017;
	--bm-accent-light:       #FFF3D0;
	--bm-accent-dark:        #A67C00;

	/* -------------------------------------------------------------------
	   Neutral Palette
	   ------------------------------------------------------------------- */
	--bm-black:              #1E1D1F;
	--bm-dark:               #3D3D3F;
	--bm-grey:               #686F7B;
	--bm-silver:             #A6A6A6;
	--bm-light:              #F0EDEA;
	--bm-cream:              #F7F5F2;
	--bm-white:              #FFFFFF;

	/* -------------------------------------------------------------------
	   Warm / Earthy Tones (food & texture)
	   ------------------------------------------------------------------- */
	--bm-terracotta:         #C87E4C;
	--bm-umber:              #B1825B;
	--bm-golden-brown:       #A87D4D;
	--bm-rust:               #8A4F3F;
	--bm-wood:               #8D674B;
	--bm-dark-brown:         #4B382F;
	--bm-smoked-clay:        #C99F80;
	--bm-toasted-tan:        #D9C3A6;
	--bm-thyme-tan:          #D9A06F;

	/* -------------------------------------------------------------------
	   Cool Tones (contrast & UI)
	   ------------------------------------------------------------------- */
	--bm-blue:               #4A60A0;
	--bm-blue-grey:          #4D5E7A;
	--bm-steel:              #A0A5A9;

	/* -------------------------------------------------------------------
	   Semantic Colors
	   ------------------------------------------------------------------- */
	--bm-success:            #6A8E23;
	--bm-warning:            #F4C430;
	--bm-error:              #D25243;
	--bm-info:               #4A60A0;

	/* -------------------------------------------------------------------
	   Typography
	   ------------------------------------------------------------------- */
	--bm-font-heading:       'Playfair Display', Georgia, serif;
	--bm-font-body:          'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
	--bm-font-accent:        'DM Sans', sans-serif;

	--bm-text-base:          1rem;
	--bm-text-sm:            0.875rem;
	--bm-text-lg:            1.125rem;
	--bm-text-xl:            1.5rem;
	--bm-text-2xl:           2rem;
	--bm-text-3xl:           2.5rem;

	--bm-line-height:        1.6;
	--bm-line-height-tight:  1.2;

	/* -------------------------------------------------------------------
	   Spacing
	   ------------------------------------------------------------------- */
	--bm-space-xs:           0.25rem;
	--bm-space-sm:           0.5rem;
	--bm-space-md:           1rem;
	--bm-space-lg:           1.5rem;
	--bm-space-xl:           2rem;
	--bm-space-2xl:          3rem;
	--bm-space-3xl:          4rem;

	/* -------------------------------------------------------------------
	   Borders & Radii
	   ------------------------------------------------------------------- */
	--bm-radius-sm:          4px;
	--bm-radius-md:          8px;
	--bm-radius-lg:          12px;
	--bm-radius-full:        9999px;

	--bm-border-color:       var(--bm-toasted-tan);
	--bm-border-light:       rgba(0, 0, 0, 0.08);

	/* -------------------------------------------------------------------
	   Shadows
	   ------------------------------------------------------------------- */
	--bm-shadow-sm:          0 1px 2px rgba(30, 29, 31, 0.06);
	--bm-shadow-md:          0 4px 12px rgba(30, 29, 31, 0.1);
	--bm-shadow-lg:          0 8px 24px rgba(30, 29, 31, 0.14);

	/* -------------------------------------------------------------------
	   Transitions
	   ------------------------------------------------------------------- */
	--bm-transition:         200ms ease;
	--bm-transition-slow:    400ms ease;
}

/* ==========================================================================
   Base Overrides
   ========================================================================== */

body {
	color: var(--bm-black);
	background-color: var(--bm-white);
	font-family: var(--bm-font-body);
	line-height: var(--bm-line-height);
}

h1, h2, h3, h4, h5, h6 {
	font-family: var(--bm-font-heading);
	line-height: var(--bm-line-height-tight);
	color: var(--bm-dark);
}

a {
	color: var(--bm-primary);
	transition: color var(--bm-transition);
}

a:hover,
a:focus {
	color: var(--bm-primary-dark);
}

/* ==========================================================================
   Astra Global Palette Mapping
   Maps B&M tokens to Astra's CSS custom properties so Customizer
   and Spectra blocks inherit our palette automatically.
   ========================================================================== */

:root {
	--ast-global-color-0: var(--bm-primary);       /* Astra primary */
	--ast-global-color-1: var(--bm-secondary);      /* Astra secondary */
	--ast-global-color-2: var(--bm-black);           /* Astra heading */
	--ast-global-color-3: var(--bm-dark);            /* Astra body text */
	--ast-global-color-4: var(--bm-cream);           /* Astra light bg */
	--ast-global-color-5: var(--bm-white);           /* Astra white bg */
	--ast-global-color-6: var(--bm-border-light);    /* Astra border */
	--ast-global-color-7: var(--bm-accent);          /* Astra accent */
	--ast-global-color-8: var(--bm-light);           /* Astra extra */
}

/* ==========================================================================
   Button Styles
   ========================================================================== */

.ast-button,
.wp-block-button__link,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit {
	background-color: var(--bm-primary);
	color: var(--bm-white);
	border: none;
	border-radius: var(--bm-radius-md);
	font-family: var(--bm-font-accent);
	font-weight: 600;
	letter-spacing: 0.02em;
	padding: var(--bm-space-sm) var(--bm-space-lg);
	transition: background-color var(--bm-transition), box-shadow var(--bm-transition);
}

.ast-button:hover,
.wp-block-button__link:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover {
	background-color: var(--bm-primary-dark);
	color: var(--bm-white);
	box-shadow: var(--bm-shadow-md);
}

/* Secondary button variant */
.wp-block-button.is-style-outline .wp-block-button__link,
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt,
.woocommerce #respond input#submit.alt {
	background-color: var(--bm-secondary);
}

.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.woocommerce input.button.alt:hover,
.woocommerce #respond input#submit.alt:hover {
	background-color: var(--bm-secondary-dark);
	color: var(--bm-white);
}

/* ==========================================================================
   WooCommerce Product Cards
   ========================================================================== */

.woocommerce ul.products li.product {
	border-radius: var(--bm-radius-lg);
	overflow: hidden;
	transition: box-shadow var(--bm-transition), transform var(--bm-transition);
	border: 1px solid var(--bm-border-light);
}

.woocommerce ul.products li.product:hover {
	box-shadow: var(--bm-shadow-lg);
	transform: translateY(-2px);
}

.woocommerce ul.products li.product .woocommerce-loop-product__title {
	font-family: var(--bm-font-heading);
	color: var(--bm-dark);
}

.woocommerce ul.products li.product .price {
	color: var(--bm-primary);
	font-weight: 700;
}

/* ==========================================================================
   Utility Classes
   ========================================================================== */

.bm-bg-primary     { background-color: var(--bm-primary); }
.bm-bg-secondary   { background-color: var(--bm-secondary); }
.bm-bg-accent      { background-color: var(--bm-accent); }
.bm-bg-cream       { background-color: var(--bm-cream); }
.bm-bg-light       { background-color: var(--bm-light); }
.bm-bg-dark        { background-color: var(--bm-dark); }
.bm-bg-wood        { background-color: var(--bm-wood); }

.bm-text-primary   { color: var(--bm-primary); }
.bm-text-secondary { color: var(--bm-secondary); }
.bm-text-accent    { color: var(--bm-accent); }
.bm-text-muted     { color: var(--bm-grey); }
.bm-text-light     { color: var(--bm-white); }

.bm-card {
	background: var(--bm-white);
	border-radius: var(--bm-radius-lg);
	box-shadow: var(--bm-shadow-sm);
	padding: var(--bm-space-lg);
	border: 1px solid var(--bm-border-light);
	transition: box-shadow var(--bm-transition);
}

.bm-card:hover {
	box-shadow: var(--bm-shadow-md);
}

.bm-badge {
	display: inline-block;
	font-size: var(--bm-text-sm);
	font-family: var(--bm-font-accent);
	font-weight: 600;
	padding: var(--bm-space-xs) var(--bm-space-sm);
	border-radius: var(--bm-radius-full);
	text-transform: uppercase;
	letter-spacing: 0.05em;
}

.bm-badge--fresh   { background: var(--bm-accent-light); color: var(--bm-secondary-dark); }
.bm-badge--hot     { background: #FDEAE5; color: var(--bm-primary-dark); }
.bm-badge--prep    { background: #E8F0D8; color: var(--bm-secondary-dark); }

/* ==========================================================================
   Transparent Header (used on front page hero)
   ========================================================================== */

.bm-header--transparent {
	background: transparent !important;
	position: fixed;
	width: 100%;
	z-index: 999;
	transition: background var(--bm-transition-slow);
}

.bm-header--transparent .ast-site-identity a,
.bm-header--transparent .ast-header-link,
.bm-header--transparent .main-navigation a,
.bm-header--transparent .ast-builder-menu a {
	color: var(--bm-white) !important;
	transition: color var(--bm-transition);
}

.bm-header--transparent .main-navigation a:hover,
.bm-header--transparent .ast-builder-menu a:hover {
	color: var(--bm-accent) !important;
}
