/*
Theme Name: phase1
Author: Amrinder
Author URI:
Theme URI:
Tags: full-site-editing
Text Domain: phase1
Requires at least: 6.1
Requires PHP: 7.4
Tested up to: 6.4
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
*/

:root {
  /* Colours */
  --green:      #3aaa35;
  --green-dk:   #2d8829;
  --green-lt:   #eef8eb;
  --green-mid:  #c8edbe;
  --text:       #111827;
  --muted:      #6b7280;
  --border:     #e5e7eb;
  --bg:         #ffffff;
  --surface:    #f9fafb;
  --dark:       #111827;

  /* Extended palette */
  --amber:      #f59e0b;
  --amber-dk:   #d97706;
  --amber-lt:   #fffbeb;
  --amber-mid:  #fde68a;
  --navy:       #1e3a5f;
  --navy-lt:    #e8eef6;
  --coral:      #ef6c4a;
  --coral-lt:   #fdf0ec;
  --teal:       #0d9488;
  --teal-lt:    #e6f7f6;
  --surface-2:  #f3f4f6;

  /* Radii */
  --r-sm:   0.375rem;
  --r-md:   0.75rem;
  --r-lg:   1.25rem;
  --r-pill: 62.5rem;

  /* Shadows */
  --sh-sm: 0 0.0625rem 0.25rem rgba(0,0,0,.07);
  --sh-md: 0 0.25rem 1rem rgba(0,0,0,.10);
  --sh-lg: 0 0.625rem 2.25rem rgba(0,0,0,.13);

  /* Animation */
  --t: .2s ease;

  /* Layout */
  --nav-w:  16.25rem;   /* 260px */
  --bar-h:   5rem;      /* 80px  */
  --wrap:   77.5rem;    /* 1240px */

  /* Type scale */
  --fs-xs:   0.75rem;
  --fs-sm:   0.875rem;
  --fs-base: 1rem;
  --fs-md:   1.125rem;
  --fs-lg:   1.375rem;
  --fs-xl:   1.75rem;
  --fs-2xl:  2.25rem;
  --fs-3xl:  3rem;

  /* Font families
     Headings  → Poppins  (bold, geometric, strong hierarchy)
     Body text → Inter    (highly legible at all sizes)
     UI/meta   → Roboto   (clean, neutral for labels/dates/captions) */
  --font-heading: 'Poppins', system-ui, sans-serif;
  --font-body:    'Inter',   system-ui, sans-serif;
  --font-ui:      'Roboto',  system-ui, sans-serif;
}

/* ═══════════════════════════════════════════════════════
   RESET
═══════════════════════════════════════════════════════ */

.shop-product-grid {
  --phase1-shop-image-h: 13rem;
}
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; font-size: 17.5px; }
body {
  font-family: var(--font-body);
  color: var(--text);
  background: var(--bg);
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
  /* Offset the body so content isn't hidden behind the fixed sidebar and topbar.
     var(--wp-admin--admin-bar--height, 0px) accounts for the WP admin bar,
     which adds 32 px when logged in and 0 px on the front end for visitors. */
  padding-left: var(--nav-w);
  padding-top: calc(var(--bar-h) + var(--wp-admin--admin-bar--height, 0px));
  padding-right: 0;
}
img { max-width: 100%; height: auto; display: block; }
a   { color: inherit; text-decoration: none; }
a:hover { color: var(--green); }
ul, ol { list-style: none; }
button { cursor: pointer; font: inherit; }
input, select, textarea { font: inherit; }

/* ═══════════════════════════════════════════════════════
   LAYOUT SYSTEM
   Desktop ≥ 1025px : sidebar always fixed left, header offset right
   Mobile  < 1025px : full-width topbar + slide-in drawer
═══════════════════════════════════════════════════════ */

/* Hidden checkbox — CSS-only toggle engine for the mobile sidebar.
   Checking it via a <label> trigger shows the sidebar and overlay
   without any JavaScript. Visually hidden but kept in the DOM so
   :checked can be used as a state selector in later rules. */
.phase1-nav-checkbox {
  position: fixed;
  width: 0.0625rem; height: 0.0625rem;
  opacity: 0; pointer-events: none;
  margin: 0; padding: 0; z-index: -1;
}

/* ── SIDEBAR ─────────────────────────────────────────── */
.phase1-sidebar {
  position: fixed;
  top: calc(var(--wp-admin--admin-bar--height, 0px) + var(--bar-h)); left: 0;
  width: var(--nav-w);
  height: calc(100vh - var(--wp-admin--admin-bar--height, 0px) - var(--bar-h));
  z-index: 900;
  background: #fff;
  border-right: 0.0625rem solid var(--border);
  display: flex;
  flex-direction: column;
  overflow: hidden;
  transition: transform .28s cubic-bezier(.4,0,.2,1);
}

/* Sidebar head — only shown on mobile (as slide-in drawer header) */
.phase1-sidebar-head {
  display: none;
  align-items: center;
  justify-content: space-between;
  padding: 0 1.25rem;
  height: var(--bar-h);
  border-bottom: 0.0625rem solid rgba(255,255,255,.15);
  flex-shrink: 0;
  background: var(--green);
}
.phase1-sidebar-logo { display: flex; align-items: center; }
.phase1-sidebar-brand {
  display: none;
  font-size: var(--fs-sm);
  font-weight: 700;
  color: #fff;
}

/* Close btn — mobile only */
.phase1-sidebar-close {
  display: none;
  background: rgba(255,255,255,.15);
  border: none;
  font-size: 1.375rem;
  color: #fff;
  line-height: 1;
  width: 2.125rem; height: 2.125rem;
  border-radius: var(--r-sm);
  cursor: pointer;
  align-items: center;
  justify-content: center;
  transition: background var(--t);
  flex-shrink: 0;
}
.phase1-sidebar-close:hover { background: rgba(255,255,255,.28); }

/* Sidebar brand label — shown only on desktop above nav (since no sidebar head) */
.phase1-sidebar-label {
  padding: 0.875rem 1.25rem 0.25rem;
  font-size: 0.6875rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--muted);
}

/* Sidebar nav links — vertical stack inside the slide-in menu */
.phase1-sidebar-nav { flex: 1; padding: 0.25rem 0 0.5rem; }
.phase1-sidebar-nav ul { display: flex; flex-direction: column; }
.nav-icon { font-size: 0.95rem; width: 1.375rem; text-align: center; flex-shrink: 0; }

.phase1-sidebar-nav ul li a {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.75rem 1.25rem;
  font-size: 1.08rem;
  font-weight: 600;
  color: var(--muted);
  border-left: 0.1875rem solid transparent;
  border-radius: 0 var(--r-sm) var(--r-sm) 0;
  margin: 0.0625rem 0.5rem 0.0625rem 0;
  transition: background var(--t), border-color var(--t), color var(--t);
}
.phase1-sidebar-nav ul li a:hover {
  background: var(--green-lt);
  border-left-color: var(--green);
  color: var(--green);
}

/* ── OVERLAY (mobile only) ──────────────────────────── */
.phase1-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,.5);
  z-index: 1099;
  opacity: 0;
  visibility: hidden;
  cursor: pointer;
  transition: opacity var(--t), visibility var(--t);
  display: none; /* enabled via media query */
}

/* ── HEADER SHELL ────────────────────────────────────── */
.phase1-shell-header {
  position: fixed !important;
  top: var(--wp-admin--admin-bar--height, 0px) !important;
  left: 0 !important;
  right: 0 !important;
  z-index: 1100 !important;
  background: linear-gradient(180deg, #eef8eb 0%, #f7faf7 100%) !important;
  border-bottom: 2px solid var(--green) !important;
  box-shadow: 0 2px 12px rgba(58,170,53,0.1), 0 1px 3px rgba(0,0,0,0.06) !important;
  padding: 0 !important;
  max-width: none !important;
  width: 100% !important;
  height: var(--bar-h) !important;
}
.phase1-shell-header .is-layout-constrained,
.phase1-shell-header > .wp-block-group {
  max-width: none !important;
  padding-inline: 0 !important;
}

/* ── TOP BAR ─────────────────────────────────────────── */
.phase1-topbar {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  flex-wrap: nowrap !important;
  gap: 1.25rem !important;
  padding: 0 2rem !important;
  height: var(--bar-h) !important;
}

/* Hamburger — hidden on desktop, shown on mobile to open the sidebar */
.phase1-hamburger {
  display: none;
  flex-direction: column;
  justify-content: center;
  gap: 0.3125rem;
  width: 2.5rem; height: 2.5rem;
  cursor: pointer;
  border-radius: var(--r-sm);
  padding: 0.5rem;
  flex-shrink: 0;
  transition: background var(--t);
}
.phase1-hamburger:hover { background: var(--surface); }
.phase1-hamburger span {
  display: block;
  width: 1.25rem; height: 0.15625rem;
  background: var(--text);
  border-radius: 0.125rem;
  transition: transform var(--t), opacity var(--t);
}

/* Top bar logo — sizing and flex alignment inside the header */
.phase1-topbar-brand {
  flex-shrink: 0 !important;
  display: flex !important;
  align-items: center !important;
  padding-left: 1rem !important;
  margin-left: 0.5rem !important;
}
.phase1-topbar-brand .wp-block-site-logo,
.phase1-topbar-brand .wp-block-site-logo a {
  display: flex !important; align-items: center !important;
}
.phase1-topbar-brand img {
  height: 3.5rem !important;
  width: auto !important;
  object-fit: contain !important;
}

/* Header search bar — centered layout and interactive focus styling */
.wp-block-search.phase1-top-search {
  flex: 1 1 0% !important;
  max-width: 32.5rem !important;
  margin: 0 auto !important;
}
.phase1-top-search .wp-block-search__inside-wrapper {
  display: flex !important;
  align-items: center !important;
  background: var(--surface) !important;
  border: 0.09375rem solid var(--border) !important;
  border-radius: var(--r-pill) !important;
  overflow: hidden !important;
  height: 2.75rem !important;
  transition: border-color var(--t), box-shadow var(--t) !important;
  padding: 0 !important;
}
.phase1-top-search .wp-block-search__inside-wrapper:focus-within {
  border-color: var(--green) !important;
  box-shadow: 0 0 0 0.1875rem rgba(58,170,53,.15) !important;
  background: #fff !important;
}
.phase1-top-search .wp-block-search__input {
  flex: 1 !important;
  border: none !important;
  background: transparent !important;
  padding: 0 1rem !important;
  font-size: var(--fs-sm) !important;
  color: var(--text) !important;
  outline: none !important;
  box-shadow: none !important;
  height: 100% !important;
}
.phase1-top-search .wp-block-search__input::placeholder { color: var(--muted); }
.phase1-top-search .wp-block-search__button {
  border: none !important;
  background: var(--green) !important;
  color: #fff !important;
  width: 2.75rem !important;
  height: 2.75rem !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  border-radius: 0 var(--r-pill) var(--r-pill) 0 !important;
  flex-shrink: 0 !important;
  transition: background var(--t) !important;
  padding: 0 !important;
}
.phase1-top-search .wp-block-search__button:hover { background: var(--green-dk) !important; }
.phase1-top-search .wp-block-search__button svg { width: 1rem; height: 1rem; fill: #fff; }

/* Header cart badge — pill button with live item count in the top bar */
.phase1-topbar-right {
  flex-shrink: 0 !important;
  display: flex !important;
  align-items: center !important;
}
.phase1-cart-link-wrap { margin: 0 !important; line-height: 1 !important; }
.phase1-cart-link {
  display: inline-flex !important;
  align-items: center !important;
  gap: 0.5rem !important;
  height: 2.625rem !important;
  padding: 0 1rem !important;
  background: var(--green-lt) !important;
  border: 0.09375rem solid var(--green-mid) !important;
  border-radius: var(--r-pill) !important;
  font-size: 1.2rem !important;
  color: var(--text) !important;
  white-space: nowrap !important;
  transition: background var(--t), border-color var(--t) !important;
  margin-right: .8rem;
}
.phase1-cart-link:hover {
  background: var(--green-mid) !important;
  border-color: var(--green) !important;
}
.phase1-cart-count {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-width: 1.25rem !important;
  height: 1.25rem !important;
  background: var(--green) !important;
  color: #fff !important;
  font-size: 0.6875rem !important;
  font-weight: 700 !important;
  border-radius: var(--r-pill) !important;
  padding: 0 0.25rem !important;
}


/* ═══════════════════════════════════════════════════════
   TYPOGRAPHY
═══════════════════════════════════════════════════════ */
h1 { font-size: var(--fs-2xl); font-weight: 800; line-height: 1.2; }
h2 { font-size: 1.85rem;  font-weight: 800; line-height: 1.25; }
h3 { font-size: var(--fs-md);  font-weight: 700; line-height: 1.3; }
h4, h5, h6 { font-size: var(--fs-base); font-weight: 700; }
p { font-size: var(--fs-base); color: var(--text); }

/* ── Heading colour + text-shadow system ──────────────────
   All h1–h3 get the deep navy colour so there's one
   consistent tone across every page.
   A very soft shadow adds depth without being dramatic —
   it reads as "weight" not "glow". ── */

h1, h2, h3,
.wp-block-heading,
.wp-block-post-title,
.entry-title,
.page-title {
  color: var(--navy) !important;
  text-shadow: 0 1px 3px rgba(30, 58, 95, 0.12) !important;
}

/* h4–h6: same navy, no shadow (too small to need depth) */
h4, h5, h6 {
  color: var(--navy) !important;
}

/* Section titles — slightly stronger shadow for bigger size */
.section-title {
  font-size: var(--fs-xl);
  font-weight: 800;
  color: var(--navy) !important;
  text-shadow: 0 2px 6px rgba(30, 58, 95, 0.13) !important;
}
.section-intro { font-size: var(--fs-base); color: var(--muted); }

/* ═══════════════════════════════════════════════════════
   DIVIDER
═══════════════════════════════════════════════════════ */
.section-divider,
.wp-block-separator {
  border: none !important;
  height: 0.1875rem !important;
  background: linear-gradient(90deg, transparent, var(--green-mid) 30%, var(--green) 50%, var(--green-mid) 70%, transparent) !important;
  margin: 2.75rem auto !important;
  opacity: 1 !important;
  border-radius: var(--r-pill) !important;
}

/* ═══════════════════════════════════════════════════════
   BUTTONS — unified height/padding everywhere
═══════════════════════════════════════════════════════ */
.wp-block-button__link,
.wp-element-button {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  height: 2.875rem !important;
  padding: 0 1.75rem !important;
  border-radius: var(--r-pill) !important;
  font-size: var(--fs-sm) !important;
  font-weight: 700 !important;
  white-space: nowrap !important;
  background: var(--green) !important;
  color: #fff !important;
  border: 0.125rem solid var(--green) !important;
  transition: background var(--t), color var(--t), transform var(--t), box-shadow var(--t) !important;
  box-shadow: 0 0.125rem 0.5rem rgba(58,170,53,.25) !important;
  text-decoration: none !important;
}
.wp-block-button__link:hover,
.wp-element-button:hover {
  background: var(--green-dk) !important;
  border-color: var(--green-dk) !important;
  color: #fff !important;
  transform: translateY(-0.125rem) !important;
  box-shadow: 0 0.25rem 0.875rem rgba(58,170,53,.35) !important;
}
/* Outline variant — second button in a group */
.wp-block-buttons .wp-block-button:last-child:not(:first-child) .wp-block-button__link {
  background: transparent !important;
  color: var(--green) !important;
  border: 0.125rem solid var(--green) !important;
  box-shadow: none !important;
}
.wp-block-buttons .wp-block-button:last-child:not(:first-child) .wp-block-button__link:hover {
  background: var(--green-lt) !important;
  color: var(--green) !important;
}

/* ═══════════════════════════════════════════════════════
   PAGE WRAPPER
═══════════════════════════════════════════════════════ */
main.wp-block-group {
  min-height: 55vh;
  max-width: 100% !important;
  width: 100% !important;
  box-sizing: border-box !important;
  overflow-x: hidden !important;
  padding-left: max(2rem, 4vw) !important;
  padding-right: max(2rem, 4vw) !important;
  padding-top: 2.5rem !important;
  padding-bottom: 3rem !important;
}
/* Override WP constrained layout — let content fill all available width */
.wp-block-group.is-layout-constrained,
.is-layout-constrained {
  padding-inline: 0 !important;
  max-width: 100% !important;
}
main.wp-block-group.is-layout-constrained,
main.is-layout-constrained {
  padding-left: max(2rem, 4vw) !important;
  padding-right: max(2rem, 4vw) !important;
}
main.wp-block-group > * {
  max-width: 100% !important;
  box-sizing: border-box !important;
}

/* Section-level spacing — consistent vertical rhythm between blocks */
main.wp-block-group > .wp-block-group,
main.wp-block-group > .wp-block-columns,
main.wp-block-group > .wp-block-query,
main.wp-block-group > .wp-block-heading,
main.wp-block-group > .wp-block-separator {
  margin-top: 3rem !important;
  margin-bottom: 0 !important;
}
main.wp-block-group > *:first-child { margin-top: 0 !important; }

body.home main.wp-block-group {
  padding-top: 0 !important;
}

/* ═══════════════════════════════════════════════════════
   HOME HERO — image background, text overlay
═══════════════════════════════════════════════════════ */

/* Hero container: full-bleed, image fills it as background */
.home-hero {
  position: relative !important;
  max-width: 64rem !important;
  margin: 0 auto 1.25rem !important;
  border-radius: 0 !important;
  border: none !important;
  background: transparent !important;
  overflow: hidden !important;
  min-height: clamp(22rem, 42vw, 30rem) !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: flex-end !important;
  padding: 0 !important;
  text-align: center !important;
}

/* Image block — pulled out of flow, fills container */
.home-hero .home-hero-image {
  position: absolute !important;
  inset: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  max-width: none !important;
  width: 100% !important;
  height: 100% !important;
  z-index: 0 !important;
}
.home-hero .home-hero-image img {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center !important;
  border-radius: var(--r-lg) !important;
  border: none !important;
  box-shadow: none !important;
  margin: 0 !important;
  display: block !important;
  filter: brightness(0.62) saturate(1.02) !important;
}

/* Gradient overlay — dark at bottom so text is readable */
.home-hero::after {
  content: none !important;
}

/* Title, text, buttons — above overlay */
.home-hero .home-hero-title,
.home-hero .home-hero-text,
.home-hero .wp-block-buttons {
  position: relative !important;
  z-index: 2 !important;
}

/* Hero title — Poppins, white */
.home-hero-title {
  font-family: var(--font-heading) !important;
  font-size: clamp(2rem, 5vw, var(--fs-3xl)) !important;
  font-weight: 900 !important;
  line-height: 1.1 !important;
  letter-spacing: -0.02em !important;
  margin-bottom: 1rem !important;
  color: #ffffff !important;
  text-shadow: 0 0.1875rem 1rem rgba(0, 0, 0, 0.72), 0 0.0625rem 0.1875rem rgba(0,0,0,.65) !important;
}

/* Hero subtitle — Inter, soft white */
.home-hero-text {
  font-family: var(--font-body) !important;
  font-size: var(--fs-md) !important;
  color: #f8fffb !important;
  max-width: 38rem !important;
  margin: 0 auto 2rem !important;
  line-height: 1.75 !important;
  text-shadow: 0 0.125rem 0.75rem rgba(0, 0, 0, 0.68) !important;
}

.home-hero .wp-block-buttons {
  position: relative !important;
  z-index: 2 !important;
  justify-content: center !important;
  gap: 1rem !important;
  flex-wrap: wrap !important;
}

/* ═══════════════════════════════════════════════════════
   CARDS — shared shell
═══════════════════════════════════════════════════════ */
.feature-card,
.category-card,
.blog-card,
.contact-card {
  background: #fff;
  border: 0.09375rem solid var(--border);
  border-radius: var(--r-md);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  height: 100%;
  transition: box-shadow var(--t), transform var(--t), border-color var(--t);
}
.feature-card:hover,
.category-card:hover,
.blog-card:hover,
.contact-card:hover {
  box-shadow: var(--sh-md);
  transform: translateY(-0.25rem);
  border-color: var(--green);
}
.feature-card,
.category-card,
.contact-card { padding: 1.75rem 1.5rem !important; }

.feature-card h3,
.category-card h3,
.contact-card h3 {
  font-size: var(--fs-md) !important;
  font-weight: 700 !important;
  color: var(--navy) !important;
  margin-bottom: 0.75rem !important;
  text-align: center !important;
}
.feature-card p,
.category-card > p,
.contact-card p {
  font-size: var(--fs-sm) !important;
  color: var(--muted) !important;
  line-height: 1.7 !important;
  flex: 1;
  padding: .2rem;
  text-align: center !important;
}

.category-card > p {
  padding-left: 0.5rem !important;
  padding-right: 0.5rem !important;
  max-width: 18rem;
  margin-left: auto !important;
  margin-right: auto !important;
}
.category-card a {
  color: var(--green);
  font-size: var(--fs-sm);
  font-weight: 600;
  margin-top: 0.75rem;
  display: inline-block;
}
.category-card a:hover { text-decoration: underline; }

.home-feature-grid.wp-block-columns,
.home-categories-grid.wp-block-columns,
.contact-grid.wp-block-columns { gap: 1.5rem !important; margin-top: 1.75rem !important; }

.home-feature-grid .wp-block-column,
.home-categories-grid .wp-block-column,
.contact-grid .wp-block-column { flex: 1 1 0% !important; min-width: 0 !important; }

/* ═══════════════════════════════════════════════════════
   BLOG QUERY GRID — centered 2-column layout
═══════════════════════════════════════════════════════ */
.wp-block-query {
  width: 100% !important;
}

/* WP renders the query block's post list as a <ul> with multiple possible class
   names depending on the WordPress version. All three selectors are needed to
   cover the different markup WP may output. */
.wp-block-query > .wp-block-post-template,
.wp-block-query ul.wp-block-post-template,
.wp-block-query .is-layout-grid {
  display: grid !important;
  grid-template-columns: repeat(2, 1fr) !important;
  gap: 1.35rem !important;
  max-width: 60rem !important;
  margin-left: auto !important;
  margin-right: auto !important;
  width: 100% !important;
  padding: 0 !important;
  list-style: none !important;
}

/* Each post item in the blog query */
.wp-block-query > .wp-block-post-template > li,
.wp-block-query ul.wp-block-post-template > li {
  width: 100% !important;
  min-width: 0 !important;
}

/* ═══════════════════════════════════════════════════════
   BLOG CARDS
═══════════════════════════════════════════════════════ */
.blog-card { padding: 0 !important; }
.blog-card .wp-block-post-featured-image,
.blog-card figure { flex-shrink: 0; height: 17rem; overflow: hidden; }
.blog-card .wp-block-post-featured-image img,
.blog-card figure img {
  width: 100%; height: 17rem;
  object-fit: cover; border-radius: 0;
}
.blog-card-title,
.blog-card .wp-block-post-title {
  font-size: 1.38rem !important;
  font-weight: 700 !important;
  line-height: 1.4 !important;
  padding: 1.6rem 1.5rem 0.375rem !important;
}
.blog-card-title a,
.blog-card .wp-block-post-title a { color: var(--text); transition: color var(--t); }
.blog-card-title a:hover,
.blog-card .wp-block-post-title a:hover { color: var(--green); }
.blog-card-date,
.blog-card .wp-block-post-date {
  font-size: var(--fs-xs) !important;
  color: var(--muted) !important;
  padding: 0 1.5rem 0.5rem !important;
}
.blog-card-excerpt,
.blog-card .wp-block-post-excerpt {
  font-size: var(--fs-sm) !important;
  color: var(--muted) !important;
  padding: 0 1.125rem 1.25rem !important;
  flex: 1; line-height: 1.65 !important;
}

/* ═══════════════════════════════════════════════════════
   BLOG ARCHIVE
═══════════════════════════════════════════════════════ */
.blog-archive-hero {
  background: linear-gradient(135deg, #eef8eb 0%, #f4fbf0 60%, #fff 100%) !important;
  border: 0.0625rem solid var(--green-mid) !important;
  border-radius: var(--r-lg) !important;
  padding: 2.5rem 2rem !important;
  max-width: 64rem;
  margin: 0 auto 1.25rem !important;
  text-align: center !important;
}
.blog-archive-title {
  font-size: clamp(1.5rem, 3vw, var(--fs-2xl));
  font-weight: 900;
  margin-bottom: 0.75rem !important;
}
.blog-archive-intro {
  color: var(--muted);
  max-width: 38rem;
  margin: 0 auto;
  line-height: 1.75;
}

.wp-block-query-pagination {
  display: flex !important;
  justify-content: center !important;
  gap: 0.375rem !important;
  margin-top: 3rem !important;
}
.wp-block-query-pagination-numbers a,
.wp-block-query-pagination-previous,
.wp-block-query-pagination-next {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 2.375rem;
  min-width: 2.375rem;
  padding: 0 0.75rem;
  border: 0.09375rem solid var(--border);
  border-radius: var(--r-sm);
  font-size: var(--fs-sm);
  font-weight: 500;
  color: var(--text);
  transition: background var(--t), border-color var(--t), color var(--t);
}
.wp-block-query-pagination-numbers a:hover,
.wp-block-query-pagination-previous:hover,
.wp-block-query-pagination-next:hover {
  background: var(--green-lt);
  border-color: var(--green);
  color: var(--green);
}
.wp-block-query-pagination-numbers .current {
  background: var(--green);
  color: #fff;
  border-color: var(--green);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 2.375rem;
  min-width: 2.375rem;
  padding: 0 0.75rem;
  border-radius: var(--r-sm);
  font-size: var(--fs-sm);
  font-weight: 700;
}

/* ═══════════════════════════════════════════════════════
   RECIPE / QUERY LOOP CARD ALIGNMENT
   Fixed image, title, and excerpt heights keep all cards
   visually even inside Query Loop output, regardless of
   how much content each post has.
═══════════════════════════════════════════════════════ */
.wp-block-query .wp-block-post-template > li {
  display: flex !important;
  height: 100% !important;
}

.wp-block-query .wp-block-post-template > li > .wp-block-group {
  width: 100% !important;
  display: flex !important;
  flex-direction: column !important;
  height: 100% !important;
}

.wp-block-query .wp-block-post-template > li .wp-block-post-featured-image,
.wp-block-query .wp-block-post-template > li figure {
  height: 16rem !important;
  min-height: 16rem !important;
  max-height: 16rem !important;
  overflow: hidden !important;
  margin-bottom: 0 !important;
  flex-shrink: 0 !important;
}

.wp-block-query .wp-block-post-template > li .wp-block-post-featured-image img,
.wp-block-query .wp-block-post-template > li figure img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  display: block !important;
}

.wp-block-query .wp-block-post-template > li .wp-block-post-title {
  min-height: 5.4rem !important;
  line-height: 1.25 !important;
  margin: 0 !important;
  padding: 1.1rem 0 0.5rem !important;
  display: -webkit-box !important;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden !important;
}

.wp-block-query .wp-block-post-template > li .wp-block-post-title :where(a) {
  display: block !important;
  margin: 0 1.5rem !important;
}

.wp-block-query .wp-block-post-template > li .wp-block-post-excerpt,
.wp-block-query .wp-block-post-template > li .wp-block-post-excerpt p {
  min-height: 0 !important;
  line-height: 1.6 !important;
  margin-bottom: 0 !important;
}

.wp-block-query .wp-block-post-template > li .wp-block-post-excerpt {
  padding: 0 1.5rem 1.25rem !important;
}

.wp-block-query .wp-block-post-template > li .wp-block-post-excerpt p {
  min-height: 4.8rem !important;
  display: -webkit-box !important;
  -webkit-line-clamp: 3;
  line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden !important;
  margin: 0 !important;
}

/* ═══════════════════════════════════════════════════════
   SINGLE POST
═══════════════════════════════════════════════════════ */

/* Featured image — full width, fixed height, rounded */
.single .wp-block-post-featured-image,
.single-post .wp-block-post-featured-image {
  margin: 0 0 2.5rem !important;
  border-radius: var(--r-lg) !important;
  overflow: hidden !important;
  max-height: 28rem !important;
}
/* .single .wp-block-post-featured-image img, */
.single-post .wp-block-post-featured-image img {
  width: 100% !important;
  height: 28rem !important;
  object-fit: cover !important;
  object-position: center !important;
  display: block !important;
  border-radius: var(--r-lg) !important;
}

/* Post title */
.single-post-title {
  font-size: clamp(1.75rem, 4vw, 2.75rem);
  font-weight: 900;
  line-height: 1.15;
  color: var(--text);
  margin-bottom: 1rem !important;
}

/* Category label above title */
.single-post-category {
  margin-bottom: 0.75rem !important;
}
.single-post-category a {
  display: inline-block;
  background: var(--green-lt);
  color: var(--green);
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.07em;
  padding: 0.25rem 0.75rem;
  border-radius: var(--r-pill);
  border: 0.0625rem solid var(--green-mid);
}

/* Meta row — date · author */
.single-post-meta {
  display: flex;
  align-items: center;
  gap: 1.25rem;
  flex-wrap: wrap;
  font-size: var(--fs-sm);
  color: var(--muted);
  margin-bottom: 2rem !important;
  padding-bottom: 1.5rem !important;
  border-bottom: 0.0625rem solid var(--border) !important;
}
.single-post-meta .wp-block-post-terms a { color: var(--green); font-weight: 600; }
.single-post-meta .wp-block-post-date,
.single-post-meta .wp-block-post-author-name { color: var(--muted); }

/* Post body typography */
.single-post-body,
.single .wp-block-post-content,
.single-post .wp-block-post-content {
  font-size: 1.0625rem !important;
  line-height: 1.85 !important;
  color: var(--text) !important;
  padding: 2rem;
}
.single-post-body p,
.single .wp-block-post-content p,
.single-post .wp-block-post-content p {
  margin-bottom: 1.5rem !important;
  line-height: 1.85 !important;
}
.single-post-body h2,
.single .wp-block-post-content h2,
.single-post .wp-block-post-content h2 {
  font-size: 1.5rem !important;
  font-weight: 800 !important;
  margin: 2.5rem 0 1rem !important;
  color: var(--text) !important;
}
.single-post-body h3,
.single .wp-block-post-content h3,
.single-post .wp-block-post-content h3 {
  font-size: 1.2rem !important;
  font-weight: 700 !important;
  margin: 2rem 0 0.75rem !important;
  color: var(--text) !important;
}
.single-post-body ul,
.single-post-body ol,
.single .wp-block-post-content ul,
.single .wp-block-post-content ol {
  padding-left: 1.5rem !important;
  margin-bottom: 1.5rem !important;
  list-style: disc !important;
}
.single-post-body ol,
.single .wp-block-post-content ol { list-style: decimal !important; }
.single-post-body li,
.single .wp-block-post-content li {
  margin-bottom: 0.5rem !important;
  line-height: 1.75 !important;
}
.single-post-body strong,
.single .wp-block-post-content strong { font-weight: 700; color: var(--text); }
.single-post-body img,
.single .wp-block-post-content img {
  border-radius: var(--r-md);
  margin: 1.5rem 0 !important;
  max-width: 100%;
}

/* ═══════════════════════════════════════════════════════
   GENERIC PAGE
═══════════════════════════════════════════════════════ */
.page-header { text-align: left; }
.page-title {
  font-size: clamp(1.5rem, 3vw, var(--fs-2xl));
  font-weight: 900;
}

/* ═══════════════════════════════════════════════════════
   SHOP PAGE
═══════════════════════════════════════════════════════ */

/* Hero banner */
.shop-hero-box {
  background: linear-gradient(135deg, #eef8eb 0%, #f4fbf0 55%, #fff 100%);
  border: 0.0625rem solid var(--green-mid);
  border-radius: var(--r-md);
  padding: 1.75rem 2rem;
  margin-bottom: 1.25rem;
  text-align: center;
}
.shop-hero-title {
  font-size: clamp(1.25rem, 2.5vw, var(--fs-xl));
  font-weight: 900;
  color: var(--text);
  margin: 0 0 0.5rem;
  line-height: 1.2;
}
.shop-hero-text {
  font-size: var(--fs-sm);
  color: var(--muted);
  max-width: 34rem;
  margin: 0 auto;
  line-height: 1.6;
}

/* Toolbar row — results count left, sorting right */
.shop-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-bottom: 1.5rem;
  padding: 0.625rem 1rem;
  background: var(--surface);
  border: 0.0625rem solid var(--border);
  border-radius: var(--r-sm);
}

/* RECIPE SINGLE - FORCE FALLBACK (live template safe)
   The .single:not(.single-product) guard keeps these rules
   off the WooCommerce single product page, which shares
   the .single body class but has its own layout. */
.single:not(.single-product) main.wp-block-group,
.single-recipe main.wp-block-group {
  padding-left: max(2rem, 4vw) !important;
  padding-right: max(2rem, 4vw) !important;
}

.single:not(.single-product) main.wp-block-group .single-post-title,
.single:not(.single-product) main.wp-block-group .wp-block-post-title,
.single:not(.single-product) main.wp-block-group .wp-block-post-excerpt,
.single:not(.single-product) main.wp-block-group .wp-block-post-content,
.single-recipe main.wp-block-group .single-post-title,
.single-recipe main.wp-block-group .wp-block-post-title,
.single-recipe main.wp-block-group .wp-block-post-excerpt,
.single-recipe main.wp-block-group .wp-block-post-content {
  padding-left: 0.5rem !important;
  padding-right: 0.5rem !important;
}

@media (min-width: 60rem) {
  .single:not(.single-product) main.wp-block-group,
  .single-recipe main.wp-block-group {
    position: relative !important;
    padding-right: calc(9rem + max(2rem, 4vw)) !important;
  }

  .single:not(.single-product) main.wp-block-group .wp-block-post-featured-image:first-of-type,
  .single-recipe main.wp-block-group .wp-block-post-featured-image:first-of-type {
    position: absolute !important;
    top: 2.5rem !important;
    right: max(2.5rem, 3vw) !important;
    width: 18.5rem !important;
    height: 18.5rem !important;
    margin: 0 !important;
    padding: 0.45rem !important;
    border: 0.0625rem solid var(--border) !important;
    border-radius: var(--r-lg) !important;
    background: #fff !important;
    box-shadow: var(--sh-md) !important;
    overflow: hidden !important;
    max-height: none !important;
    z-index: 2;
  }

  .single:not(.single-product) main.wp-block-group .wp-block-post-featured-image:first-of-type img,
  .single-recipe main.wp-block-group .wp-block-post-featured-image:first-of-type img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    border-radius: calc(var(--r-lg) - 0.25rem) !important;
  }

  .single:not(.single-product) main.wp-block-group .single-post-title,
  .single:not(.single-product) main.wp-block-group .wp-block-post-title,
  .single:not(.single-product) main.wp-block-group .wp-block-post-excerpt,
  .single-recipe main.wp-block-group .single-post-title,
  .single-recipe main.wp-block-group .wp-block-post-title,
  .single-recipe main.wp-block-group .wp-block-post-excerpt {
    max-width: 42rem !important;
    margin-right: auto !important;
  }
}

.single:not(.single-product) .wp-block-post-content h2,
.single:not(.single-product) .wp-block-post-content h3,
.single-recipe .wp-block-post-content h2,
.single-recipe .wp-block-post-content h3 {
  border-left: 0.25rem solid var(--green) !important;
  padding-left: 0.75rem !important;
}

.single:not(.single-product) .wp-block-post-content ul,
.single:not(.single-product) .wp-block-post-content ol,
.single-recipe .wp-block-post-content ul,
.single-recipe .wp-block-post-content ol {
  margin: 0 0 1.25rem !important;
  padding: 1rem 1.25rem 1rem 1.6rem !important;
  border: 0.0625rem solid var(--border) !important;
  border-radius: var(--r-md) !important;
  background: var(--surface) !important;
}

.single:not(.single-product) .wp-block-post-content blockquote,
.single-recipe .wp-block-post-content blockquote,
.single:not(.single-product) .wp-block-post-content .recipe-tip,
.single-recipe .wp-block-post-content .recipe-tip {
  margin: 1.5rem 0 !important;
  padding: 1.125rem 1.375rem !important;
  border-left: 0.25rem solid var(--green) !important;
  background: var(--green-lt) !important;
  border-radius: var(--r-md) !important;
}

@media (max-width: 59.9375rem) {
  .single:not(.single-product) main.wp-block-group,
  .single-recipe main.wp-block-group {
    padding-left: 1.25rem !important;
    padding-right: 1.25rem !important;
  }

  .single:not(.single-product) main.wp-block-group .single-post-title,
  .single:not(.single-product) main.wp-block-group .wp-block-post-title,
  .single:not(.single-product) main.wp-block-group .wp-block-post-excerpt,
  .single:not(.single-product) main.wp-block-group .wp-block-post-content,
  .single-recipe main.wp-block-group .single-post-title,
  .single-recipe main.wp-block-group .wp-block-post-title,
  .single-recipe main.wp-block-group .wp-block-post-excerpt,
  .single-recipe main.wp-block-group .wp-block-post-content {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  .single:not(.single-product) main.wp-block-group .wp-block-post-featured-image:first-of-type,
  .single-recipe main.wp-block-group .wp-block-post-featured-image:first-of-type {
    position: static !important;
    width: auto !important;
    height: auto !important;
    margin: 0 0 1rem !important;
    padding: 0 !important;
    border: none !important;
    box-shadow: none !important;
  }
}

/* =========================================================
   RECIPE SINGLE - CLASS-BASED LAYOUT (single.html)
   ========================================================= */
.single .single-recipe-layout {
  display: grid;
  gap: 1rem 2rem;
  align-items: start;
}

.single .single-recipe-layout .single-recipe-title {
  grid-area: title;
  margin: 0 !important;
  line-height: 1.1;
}

.single .single-recipe-layout .single-recipe-excerpt {
  grid-area: excerpt;
  margin: 0 !important;
  color: var(--muted);
}

.single .single-recipe-layout .single-recipe-excerpt p {
  margin: 0;
}

.single .single-recipe-layout .single-recipe-content {
  grid-area: content;
  margin-top: 0.5rem;
  padding-left: 0.5rem;
  padding-right: 0.5rem;
}

.single .single-recipe-layout .single-recipe-image {
  grid-area: image;
  margin: 0 !important;
  padding: 0.5rem !important;
  border: 0.0625rem solid var(--border) !important;
  border-radius: var(--r-lg) !important;
  background: #fff !important;
  box-shadow: var(--sh-md) !important;
  overflow: hidden !important;
  max-height: none !important;
  transition: transform 220ms ease, box-shadow 220ms ease, border-color 220ms ease;
}

.single .single-recipe-layout .single-recipe-image img {
  width: 100% !important;
  height: 100% !important;
  max-height: none !important;
  display: block !important;
  object-fit: cover !important;
  object-position: center !important;
  border-radius: calc(var(--r-lg) - 0.25rem) !important;
}

.single .single-recipe-layout .single-recipe-image:hover {
  transform: translateY(-0.25rem);
  border-color: color-mix(in srgb, var(--green) 40%, var(--border));
  box-shadow: 0 1rem 2rem rgba(0, 0, 0, 0.14) !important;
}

.single .single-recipe-layout .single-recipe-content h2,
.single .single-recipe-layout .single-recipe-content h3 {
  border-left: 0.25rem solid var(--green);
  padding-left: 0.75rem;
}

.single .single-recipe-layout .single-recipe-content ul,
.single .single-recipe-layout .single-recipe-content ol {
  margin: 0 0 1.25rem;
  padding: 1rem 1.25rem 1rem 1.6rem;
  border: 0.0625rem solid var(--border);
  border-radius: var(--r-md);
  background: var(--surface);
}

.single .single-recipe-layout .single-recipe-content blockquote,
.single .single-recipe-layout .single-recipe-content .recipe-tip {
  margin: 1.5rem 0;
  padding: 1.125rem 1.375rem;
  border-left: 0.25rem solid var(--green);
  background: var(--green-lt);
  border-radius: var(--r-md);
}

@media (min-width: 60rem) {
  .single .single-recipe-layout {
    grid-template-columns: minmax(0, 1fr) 20rem;
    grid-template-areas:
      "title image"
      "excerpt image"
      "content content";
    max-width: 68.75rem;
    margin-left: auto;
    margin-right: auto;
    padding-left: max(2.5rem, 5vw) !important;
    padding-right: max(2.5rem, 5vw) !important;
  }

  .single .single-recipe-layout .single-recipe-image {
    position: static !important;
    top: auto !important;
    right: auto !important;
    justify-self: end;
    align-self: start;
    width: 20rem !important;
    height: 20rem !important;
    aspect-ratio: 1 / 1 !important;
  }
}

@media (max-width: 59.9375rem) {
  .single .single-recipe-layout {
    grid-template-columns: 1fr;
    grid-template-areas:
      "title"
      "excerpt"
      "image"
      "content";
    gap: 1rem;
    padding-left: 1.5rem !important;
    padding-right: 1.5rem !important;
  }

  .single .single-recipe-layout .single-recipe-content {
    padding-left: 0.25rem;
    padding-right: 0.25rem;
  }

  .single .single-recipe-layout .single-recipe-image {
    width: 100% !important;
    height: auto !important;
    aspect-ratio: auto !important;
    padding: 0.35rem !important;
  }

  .single .single-recipe-layout .single-recipe-image img {
    max-height: 22rem;
  }
}

.single .single-recipe-image img,
.single-post .single-recipe-image img {
  width: 100% !important;
  height: 100% !important;
  max-height: none !important;
  min-height: 0 !important;
  object-fit: cover !important;
  object-position: center !important;
  display: block !important;
  border-radius: 1.5rem !important;
}

.single .single-recipe-layout,
.single-post .single-recipe-layout {
  max-width: 1180px;
  margin: 0 auto;
  padding: 2rem 1.5rem 4rem;
}

.single .single-recipe-title,
.single-post .single-recipe-title {
  margin: 0 0 0.75rem;
  font-size: clamp(2.2rem, 4vw, 3.2rem);
  line-height: 1.08;
  font-weight: 800;
  color: #142018;
}

.single .single-recipe-excerpt,
.single-post .single-recipe-excerpt {
  margin: 0 0 1.25rem;
  font-size: 1.08rem;
  line-height: 1.7;
  color: #536458;
}

.single .single-recipe-content,
.single-post .single-recipe-content {
  font-size: 1rem;
  line-height: 1.85;
  color: #1d281f;
}

.single .single-recipe-layout,
.single-post .single-recipe-layout {
  display: block !important;
}

.single .single-recipe-layout .recipe-top,
.single-post .single-recipe-layout .recipe-top {
  display: flex !important;
  flex-direction: row !important;
  align-items: flex-start;
  justify-content: space-between;
  gap: 2rem;
  flex-wrap: nowrap !important;
}

.single .single-recipe-layout .recipe-top-content,
.single-post .single-recipe-layout .recipe-top-content {
  flex: 1 1 auto;
  min-width: 0;
  max-width: calc(100% - 22rem);
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
}

.single .single-recipe-layout .recipe-top .single-recipe-image,
.single-post .single-recipe-layout .recipe-top .single-recipe-image {
  flex: 0 0 20rem;
  width: 20rem !important;
  height: 20rem !important;
  margin-left: auto !important;
  margin-bottom: 0 !important;
  position: relative;
  padding: 0.4rem !important;
  border: 0.09375rem solid var(--border) !important;
  border-radius: var(--r-lg) !important;
  background: #fff !important;
  overflow: hidden !important;
  box-shadow: var(--sh-md) !important;
  transition: transform 220ms ease, box-shadow 220ms ease, border-color 220ms ease;
}

.single .single-recipe-layout .recipe-top .single-recipe-image img,
.single-post .single-recipe-layout .recipe-top .single-recipe-image img {
  border-radius: calc(var(--r-lg) - 0.25rem) !important;
}

.single .single-recipe-layout .recipe-top .single-recipe-image:hover,
.single-post .single-recipe-layout .recipe-top .single-recipe-image:hover {
  transform: translateY(-0.2rem);
  border-color: color-mix(in srgb, var(--green) 40%, var(--border));
  box-shadow: 0 1rem 2rem rgba(0, 0, 0, 0.14) !important;
}

.single .single-recipe-layout .recipe-top .single-recipe-image::after,
.single-post .single-recipe-layout .recipe-top .single-recipe-image::after {
  content: "";
  position: absolute;
  left: 0.75rem;
  right: 0.75rem;
  bottom: 0.45rem;
  height: 0.1875rem;
  background: var(--green);
  border-radius: 999px;
  transform: scaleX(0);
  transform-origin: center;
  transition: transform 220ms ease;
}

.single .single-recipe-layout .recipe-top .single-recipe-image:hover::after,
.single-post .single-recipe-layout .recipe-top .single-recipe-image:hover::after {
  transform: scaleX(1);
}

.single .single-recipe-layout .single-recipe-content,
.single-post .single-recipe-layout .single-recipe-content {
  margin-top: 1.25rem !important;
}

@media (max-width: 47.9375rem) {
  .single .single-recipe-layout .recipe-top,
  .single-post .single-recipe-layout .recipe-top {
    flex-direction: column;
    gap: 1rem;
  }

  .single .single-recipe-layout .recipe-top-content,
  .single-post .single-recipe-layout .recipe-top-content {
    max-width: 100%;
  }

  .single .single-recipe-layout .recipe-top .single-recipe-image,
  .single-post .single-recipe-layout .recipe-top .single-recipe-image {
    width: 100% !important;
    height: auto !important;
    flex: none;
  }
}

@media (min-width: 63.5rem) and (max-width: 64.5rem) and (min-height: 84rem) and (max-height: 86.5rem) and (hover: none) and (pointer: coarse) {
  .single .single-recipe-layout .recipe-top,
  .single-post .single-recipe-layout .recipe-top {
    flex-direction: column !important;
    gap: 1rem !important;
  }

  .single .single-recipe-layout .recipe-top-content,
  .single-post .single-recipe-layout .recipe-top-content {
    max-width: 100% !important;
    flex: 1 1 auto !important;
  }

  .single .single-recipe-layout .recipe-top .single-recipe-image,
  .single-post .single-recipe-layout .recipe-top .single-recipe-image {
    width: 100% !important;
    height: auto !important;
    flex: none !important;
    margin-left: 0 !important;
  }
}

/* Override WC block spacing for results & sorting when inside toolbar */
.shop-results-count,
.woocommerce-result-count {
  font-size: var(--fs-sm);
  color: var(--muted);
  margin: 0 !important;
}
.shop-sorting .woocommerce-ordering,
.woocommerce-ordering {
  margin: 0 !important;
}
.woocommerce-ordering select,
.shop-sorting select {
  border: 0.09375rem solid var(--border);
  border-radius: var(--r-sm);
  padding: 0.5rem 0.875rem;
  font-size: var(--fs-sm);
  color: var(--text);
  background: #fff;
  outline: none;
  cursor: pointer;
  transition: border-color var(--t);
}
.woocommerce-ordering select:focus,
.shop-sorting select:focus { border-color: var(--green); }

/* Fallback alignment when native Woo blocks render outside .shop-toolbar */
.woocommerce .woocommerce-ordering {
  float: right;
  margin: 0 0 1.25rem 1rem !important;
}

.woocommerce .woocommerce-result-count {
  float: left;
  margin: 0.4rem 0 1.25rem !important;
}

.wp-block-woocommerce-catalog-sorting,
.wc-block-catalog-sorting {
  display: flex !important;
  justify-content: flex-end !important;
  margin: 0 0 1.25rem auto !important;
}

.wp-block-woocommerce-product-results-count,
.wc-block-product-results-count {
  margin: 0.4rem 0 1.25rem !important;
}

.woocommerce ul.products,
.wp-block-woocommerce-product-collection,
.shop-product-grid {
  clear: both;
}

/* Keep toolbar behavior unchanged where the custom wrapper exists */
.shop-toolbar .woocommerce-ordering,
.shop-toolbar .woocommerce-result-count {
  float: none;
  margin: 0 !important;
}

/* Legacy shop title classes */
.shop-title {
  font-size: clamp(1.5rem, 3vw, var(--fs-2xl));
  font-weight: 900;
  text-align: center;
}
.shop-subtitle { color: var(--muted); text-align: center; font-size: var(--fs-md); }

/* ═══════════════════════════════════════════════════════
   PRODUCT CARDS  — flex-based, stylish
   Block structure:
     .wp-block-woocommerce-product-collection
       ul.wp-block-post-template
         li.wp-block-post   ← card
═══════════════════════════════════════════════════════ */

/* Outer wrapper */
.wp-block-woocommerce-product-collection {
  display: block !important;
  padding: 0 !important;
  margin: 0 !important;
  width: 100% !important;
  box-sizing: border-box !important;
  overflow: visible !important;
}

/* Grid row */
.wp-block-woocommerce-product-collection ul.wp-block-post-template,
ul.wp-block-post-template,
.woocommerce ul.products {
  display: grid !important;
  grid-template-columns: repeat(4, 1fr) !important;
  gap: 1.25rem !important;
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
  width: 100% !important;
  box-sizing: border-box !important;
}

/* ── PRODUCT CARD ───────────────────────────────────── */
.wp-block-woocommerce-product-collection ul.wp-block-post-template > li,
ul.wp-block-post-template > li.wp-block-post,
.woocommerce ul.products li.product,
li.product {
  flex: unset !important;
  width: 100% !important;
  min-width: 0 !important;
  list-style: none !important;
  background: #fff !important;
  border: 0.0625rem solid #e3e8ef !important;
  border-radius: 1rem !important;
  overflow: visible !important;
  display: flex !important;
  flex-direction: column !important;
  position: relative !important;
  margin: 0 !important;
  padding: 1rem !important;
  box-shadow: 0 0.125rem 0.75rem rgba(17,24,39,.07) !important;
  transition: box-shadow .22s ease, transform .22s ease, border-color .22s ease !important;
}

/* Hover lift */
.wp-block-woocommerce-product-collection ul.wp-block-post-template > li:hover,
ul.wp-block-post-template > li.wp-block-post:hover,
.woocommerce ul.products li.product:hover,
li.product:hover {
  transform: translateY(-0.3rem) !important;
  box-shadow: 0 0.75rem 2rem rgba(58,170,53,.15), 0 0.25rem 0.75rem rgba(0,0,0,.07) !important;
  border-color: var(--green) !important;
}

/* ── IMAGE BOX — fixed-size framed container inside the card ── */
.wp-block-woocommerce-product-image,
.wc-block-product-image,
.wc-block-components-product-image,
.woocommerce ul.products li.product a:first-child,
ul.wp-block-post-template > li > a:first-child {
  display: block !important;
  width: 100% !important;
  height: var(--phase1-shop-image-h) !important;
  min-height: var(--phase1-shop-image-h) !important;
  max-height: var(--phase1-shop-image-h) !important;
  flex-shrink: 0 !important;
  border: 0.0625rem solid #dde4ed !important;
  border-radius: 0.75rem !important;
  background: #f4f7fb !important;
  overflow: hidden !important;
  margin: 0 0 0.45rem !important;
  padding: 0 !important;
}

/* Shop grid only — clearer gap between image and title */
.shop-product-grid .wc-block-grid__product-image,
.shop-product-grid .wc-block-components-product-image,
.shop-product-grid .wp-block-woocommerce-product-image,
.shop-product-grid li.product > a:first-child,
.shop-product-grid li.product .woocommerce-LoopProduct-link {
  margin-bottom: 0.85rem !important;
}

/* Images fill the box exactly */
.wp-block-woocommerce-product-image img,
.wc-block-product-image img,
.wc-block-components-product-image img,
.woocommerce ul.products li.product a img,
li.product a img,
ul.wp-block-post-template > li > a:first-child img {
  width: 100% !important;
  height: 100% !important;
  min-height: 100% !important;
  max-height: 100% !important;
  object-fit: cover !important;
  object-position: center !important;
  border-radius: 0.75rem !important;
  display: block !important;
  transition: transform .4s ease !important;
}

/* Image zoom on hover */
.wp-block-woocommerce-product-collection ul.wp-block-post-template > li:hover img,
ul.wp-block-post-template > li.wp-block-post:hover img,
.woocommerce ul.products li.product:hover a img,
li.product:hover a img { transform: scale(1.06) !important; }

/* ── TEXT AREA — sits below image box ── */
/* Product title */
.woocommerce-loop-product__title,
.wp-block-woocommerce-product-title {
  font-size: 0.95rem !important;
  font-weight: 700 !important;
  color: var(--text) !important;
  line-height: 1.5 !important;
  padding: 0.9rem 0 0.35rem !important;
  margin: 0 !important;
  display: block !important;
  text-align: left !important;
  transition: color .2s ease !important;
}
.wp-block-woocommerce-product-title a { color: var(--text) !important; }
.wp-block-woocommerce-product-collection ul.wp-block-post-template > li:hover .wp-block-woocommerce-product-title,
ul.wp-block-post-template > li.wp-block-post:hover .wp-block-woocommerce-product-title,
.wp-block-woocommerce-product-title a:hover,
.woocommerce ul.products li.product:hover .woocommerce-loop-product__title { color: var(--green) !important; }

/* Price */
.woocommerce-Price-amount bdi { color: var(--green) !important; font-weight: 800 !important; }
.wp-block-woocommerce-product-price,
.woocommerce ul.products li.product .price,
li.product .price {
  color: var(--green) !important;
  font-size: 1rem !important;
  font-weight: 800 !important;
  display: block !important;
  text-align: left !important;
  letter-spacing: -0.01em !important;
  padding: 0 0 0.75rem !important;
  margin: 0 !important;
}
.price del {
  color: var(--muted) !important;
  font-weight: 400 !important;
  font-size: 0.75rem !important;
  margin-right: 0.25rem !important;
  text-decoration: line-through !important;
}
.price ins { text-decoration: none !important; }

/* Shop grid only — circular price badge over product image */
.shop-product-grid ul.wp-block-post-template > li,
.shop-product-grid li.product {
  position: relative !important;
}

.shop-product-grid .wc-block-grid__product-price,
.shop-product-grid .wc-block-components-product-price,
.shop-product-grid .wp-block-woocommerce-product-price,
.shop-product-grid li.product .price {
  position: absolute !important;
  top: 1.05rem !important;
  right: 1.05rem !important;
  z-index: 3 !important;
  width: 4.5rem !important;
  height: 4.5rem !important;
  min-width: 4.5rem !important;
  min-height: 4.5rem !important;
  margin: 0 !important;
  padding: 0.55rem !important;
  border-radius: 999rem !important;
  border: 0.125rem solid #ffffff !important;
  background: var(--green) !important;
  box-shadow: 0 0.375rem 1rem rgba(0,0,0,.2) !important;
  color: #fff !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  text-align: center !important;
  pointer-events: none !important;
  line-height: 1.1 !important;
  font-size: 0.95rem !important;
  font-weight: 800 !important;
}

.shop-product-grid .wc-block-grid__product-price .woocommerce-Price-amount,
.shop-product-grid .wc-block-components-product-price .woocommerce-Price-amount,
.shop-product-grid .wp-block-woocommerce-product-price .woocommerce-Price-amount bdi,
.shop-product-grid li.product .price .woocommerce-Price-amount bdi {
  color: #fff !important;
}

/* ── ADD TO CART BUTTON ── */
.wp-block-woocommerce-product-button,
.wc-block-components-product-button {
  margin-top: auto !important;
  padding: 0 0 0 !important;
}
.woocommerce ul.products li.product .button,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.add_to_cart_button,
.wc-block-components-product-button__button,
.wp-block-woocommerce-product-button a,
.wp-block-woocommerce-product-button button {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  height: 2.5rem !important;
  padding: .6rem !important;
  background: var(--green) !important;
  color: #fff !important;
  border: none !important;
  border-radius: var(--r-pill) !important;
  font-size: 0.8rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.05em !important;
  text-transform: uppercase !important;
  cursor: pointer !important;
  transition: background .2s ease, transform .2s ease, box-shadow .2s ease !important;
  box-shadow: 0 0.1875rem 0.75rem rgba(58,170,53,.3) !important;
}
.woocommerce ul.products li.product .button:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.add_to_cart_button:hover,
.wc-block-components-product-button__button:hover,
.wp-block-woocommerce-product-button a:hover,
.wp-block-woocommerce-product-button button:hover {
  background: var(--green-dk) !important;
  transform: translateY(-0.125rem) !important;
  box-shadow: 0 0.375rem 1.25rem rgba(58,170,53,.45) !important;
  color: #fff !important;
}
/* Classic WC — keep full width */
.woocommerce ul.products li.product .button {
  width: 100% !important;
  margin: auto 0 0 !important;
}

/* Sorting / results */
.woocommerce-result-count { color: var(--muted); font-size: var(--fs-sm); }
.woocommerce-ordering select {
  border: 0.09375rem solid var(--border);
  border-radius: var(--r-sm);
  padding: 0.5rem 0.875rem;
  font-size: var(--fs-sm);
  color: var(--text);
  background: #fff;
  outline: none;
}

/* Shop grid gap */
.shop-product-grid { margin-bottom: 3rem !important; }
.shop-product-grid ul.wp-block-post-template { gap: 1.5rem !important; }
.shop-product-grid ul.wp-block-post-template > li { align-items: flex-start !important; }

/* Strict uniform product image sizing (shop grid) */
.post-type-archive-product .shop-product-grid li.product > a:first-child,
.post-type-archive-product .shop-product-grid li.wc-block-product > a:first-child,
.post-type-archive-product .shop-product-grid .wp-block-woocommerce-product-image,
.post-type-archive-product .shop-product-grid .wc-block-product-image,
.post-type-archive-product .shop-product-grid .wc-block-components-product-image,
.post-type-archive-product .shop-product-grid .wp-block-post-featured-image,
.tax-product_cat .shop-product-grid li.product > a:first-child,
.tax-product_cat .shop-product-grid li.wc-block-product > a:first-child,
.tax-product_cat .shop-product-grid .wp-block-woocommerce-product-image,
.tax-product_cat .shop-product-grid .wc-block-product-image,
.tax-product_cat .shop-product-grid .wc-block-components-product-image,
.tax-product_cat .shop-product-grid .wp-block-post-featured-image,
.tax-product_tag .shop-product-grid li.product > a:first-child,
.tax-product_tag .shop-product-grid li.wc-block-product > a:first-child,
.tax-product_tag .shop-product-grid .wp-block-woocommerce-product-image,
.tax-product_tag .shop-product-grid .wc-block-product-image,
.tax-product_tag .shop-product-grid .wc-block-components-product-image,
.tax-product_tag .shop-product-grid .wp-block-post-featured-image {
  height: var(--phase1-shop-image-h) !important;
  min-height: var(--phase1-shop-image-h) !important;
  max-height: var(--phase1-shop-image-h) !important;
  overflow: hidden !important;
}

.post-type-archive-product .shop-product-grid li.product > a:first-child img,
.post-type-archive-product .shop-product-grid li.wc-block-product > a:first-child img,
.post-type-archive-product .shop-product-grid .wp-block-woocommerce-product-image img,
.post-type-archive-product .shop-product-grid .wc-block-product-image img,
.post-type-archive-product .shop-product-grid .wc-block-components-product-image img,
.post-type-archive-product .shop-product-grid .wp-block-post-featured-image img,
.tax-product_cat .shop-product-grid li.product > a:first-child img,
.tax-product_cat .shop-product-grid li.wc-block-product > a:first-child img,
.tax-product_cat .shop-product-grid .wp-block-woocommerce-product-image img,
.tax-product_cat .shop-product-grid .wc-block-product-image img,
.tax-product_cat .shop-product-grid .wc-block-components-product-image img,
.tax-product_cat .shop-product-grid .wp-block-post-featured-image img,
.tax-product_tag .shop-product-grid li.product > a:first-child img,
.tax-product_tag .shop-product-grid li.wc-block-product > a:first-child img,
.tax-product_tag .shop-product-grid .wp-block-woocommerce-product-image img,
.tax-product_tag .shop-product-grid .wc-block-product-image img,
.tax-product_tag .shop-product-grid .wc-block-components-product-image img,
.tax-product_tag .shop-product-grid .wp-block-post-featured-image img {
  width: 100% !important;
  height: 100% !important;
  min-height: 100% !important;
  max-height: 100% !important;
  object-fit: cover !important;
  object-position: center center !important;
  display: block !important;
}

/* Pagination */
.wp-block-woocommerce-product-collection-pagination,
.woocommerce nav.woocommerce-pagination {
  margin-top: 1.5rem !important;
  margin-bottom: 2.25rem !important;
}

/* Breadcrumbs */
.post-type-archive-product main.wp-block-group,
.tax-product_cat main.wp-block-group,
.tax-product_tag main.wp-block-group {
  padding-top: 1rem !important;
}

.post-type-archive-product .woocommerce-breadcrumb,
.post-type-archive-product .wc-block-breadcrumbs,
.tax-product_cat .woocommerce-breadcrumb,
.tax-product_cat .wc-block-breadcrumbs,
.tax-product_tag .woocommerce-breadcrumb,
.tax-product_tag .wc-block-breadcrumbs {
  margin-top: 0 !important;
}

.woocommerce-breadcrumb,
.wc-block-breadcrumbs {
  font-size: var(--fs-sm);
  color: var(--muted);
  margin-bottom: 1rem !important;
}
.woocommerce-breadcrumb a,
.wc-block-breadcrumbs a { color: var(--green); }

/* ═══════════════════════════════════════════════════════
   SINGLE PRODUCT
═══════════════════════════════════════════════════════ */
.woocommerce-product-gallery__image img {
  border-radius: var(--r-md);
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.single-product .woocommerce-product-gallery__image {
  border: 0.0625rem solid var(--border);
  border-radius: var(--r-md);
  background: #fff;
  overflow: hidden;
}
.single-product .woocommerce div.product {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 3.5rem !important;
  align-items: start !important;
}

.single-product .woocommerce div.product .images,
.single-product .wp-block-woocommerce-product-image-gallery {
  width: 100% !important;
  max-width: 100% !important;
}
.single-product .woocommerce-product-gallery__image a {
  display: block;
  width: 100%;
  aspect-ratio: 1 / 1;
}
.single-product .woocommerce-product-gallery__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.woocommerce div.product p.price,
.woocommerce div.product span.price {
  font-size: var(--fs-xl);
  font-weight: 800;
  color: var(--green);
  margin: 0.75rem 0 1rem;
  display: inline-flex;
  align-items: center;
  padding: 0.45rem 0.85rem;
  border: 0.09375rem solid #b9e2b5;
  border-radius: var(--r-pill);
  background: #eff9ed;
}
.single-product-price-note { font-size: var(--fs-sm); color: var(--muted); font-style: italic; }
.single-product .woocommerce div.product .summary,
.single-product .woocommerce div.product .summary *:not(.button) {
  text-align: left !important;
}
.single-product .woocommerce div.product .summary h1,
.single-product .woocommerce div.product .summary .product_title {
  font-size: clamp(1.75rem, 3vw, 2.5rem) !important;
  line-height: 1.2 !important;
  margin-bottom: 1.25rem !important;
}
.single-product .woocommerce div.product .summary p,
.single-product .woocommerce div.product .woocommerce-product-details__short-description,
.single-product .woocommerce div.product .woocommerce-product-details__short-description p {
  font-size: 1.05rem !important;
  line-height: 1.85 !important;
  margin-bottom: 1.5rem !important;
  color: var(--muted) !important;
}
.single-product .woocommerce div.product .summary {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  padding-top: 1rem;
}
.single-product .woocommerce div.product p.price,
.single-product .woocommerce div.product span.price {
  font-size: var(--fs-2xl) !important;
  margin: 0 0 1.75rem !important;
  padding: 0.5rem 1.25rem !important;
}
.single-product .single-product-price-note {
  margin: 0 0 1rem !important;
  line-height: 1.75 !important;
}
.single-product .woocommerce div.product form.cart {
  display: flex;
  align-items: center;
  gap: 0.85rem;
  flex-wrap: wrap;
  margin-top: 0.15rem !important;
}
.single-product .woocommerce div.product form.cart .quantity {
  display: inline-flex;
  align-items: center;
  gap: 0;
  background: #fff;
  border: 0.0625rem solid var(--border);
  border-radius: var(--r-pill);
  padding: 0.25rem;
  box-shadow: 0 0.125rem 0.5rem rgba(0,0,0,.05);
  height: 2.75rem;
}
.single-product .woocommerce div.product form.cart .phase1-qty-control {
  width: 2.25rem;
  min-width: 2.25rem;
  height: 2.25rem;
  border: none;
  border-radius: 999px;
  background: #eef8eb;
  color: var(--green-dk);
  font-size: 1.2rem;
  font-weight: 800;
  line-height: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  padding: 0 !important;
  flex-shrink: 0;
  appearance: none;
  transition: background var(--t), color var(--t), transform var(--t);
}
.single-product .woocommerce div.product form.cart .phase1-qty-control:hover {
  background: var(--green);
  color: #fff;
  transform: scale(1.08);
}
.woocommerce div.product form.cart .qty {
  border: none;
  border-radius: 0;
  padding: 0;
  width: 3rem;
  min-width: 3rem;
  height: 2.25rem;
  font-size: var(--fs-base);
  font-weight: 700;
  text-align: center;
  background: transparent;
  line-height: 2.25rem;
  outline: none;
  -moz-appearance: textfield;
  appearance: textfield;
}
/* Remove browser number-input spinners — replaced by the custom +/- buttons
   injected via phase1_single_product_quantity_controls_script in functions.php. */
.woocommerce div.product form.cart .qty::-webkit-outer-spin-button,
.woocommerce div.product form.cart .qty::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}
.woocommerce div.product form.cart .single_add_to_cart_button {
  background: var(--green) !important;
  color: #fff !important;
  border: none !important;
  border-radius: var(--r-pill) !important;
  height: 2.875rem !important;
  padding: 0 2rem !important;
  font-size: var(--fs-base) !important;
  font-weight: 700 !important;
  transition: background var(--t), transform var(--t) !important;
  vertical-align: middle;
}
.woocommerce div.product form.cart .single_add_to_cart_button:hover {
  background: var(--green-dk) !important;
  transform: translateY(-0.0625rem) !important;
}

/* Tabs */
.woocommerce div.product .woocommerce-tabs ul.tabs {
  border-bottom: 0.125rem solid var(--border);
  display: flex; gap: 0; padding: 0; margin-bottom: 1.5rem;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li {
  background: none; border: none; margin: 0;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li a {
  display: block;
  padding: 0.625rem 1.25rem;
  font-size: var(--fs-sm);
  font-weight: 600;
  color: var(--muted);
  border-bottom: 0.1875rem solid transparent;
  margin-bottom: -0.125rem;
  transition: color var(--t), border-color var(--t);
}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a {
  color: var(--green);
  border-bottom-color: var(--green);
}

/* Related */
.related.products h2, .upsells.products h2 {
  font-size: var(--fs-lg); font-weight: 800; margin-bottom: 1.25rem;
}
.related.products ul.products,
.upsells.products ul.products {
  display: grid !important;
  grid-template-columns: repeat(4, 1fr) !important;
  gap: 1.25rem !important;
}
.related.products ul.products li.product,
.upsells.products ul.products li.product {
  flex: unset !important;
  width: 100% !important;
}

/* WC notices */
.woocommerce-message, .woocommerce-info {
  border-left: 0.25rem solid var(--green);
  background: var(--green-lt);
  border-radius: var(--r-sm);
  padding: 0.875rem 1.125rem;
  margin-bottom: 1.25rem;
  font-size: var(--fs-sm);
}
.woocommerce-error {
  border-left: 0.25rem solid #dc2626;
  background: #fef2f2;
  border-radius: var(--r-sm);
  padding: 0.875rem 1.125rem;
  margin-bottom: 1.25rem;
}

/* ═══════════════════════════════════════════════════════
   CART — side-by-side layout
   Real DOM: .woocommerce > form.woocommerce-cart-form
                           + div.cart-collaterals > div.cart_totals
═══════════════════════════════════════════════════════ */

/* Cart page — tighten top whitespace under header */
.woocommerce-cart main.wp-block-group {
  padding-top: 1rem !important;
}

.woocommerce-cart main.wp-block-group > .wp-block-heading,
.woocommerce-cart main.wp-block-group > h1,
.woocommerce-cart main.wp-block-group > .page-title {
  margin-top: 0 !important;
}

.woocommerce-cart main.wp-block-group > .section-divider,
.woocommerce-cart main.wp-block-group > .wp-block-separator {
  margin-top: 0.5rem !important;
}

/* .phase1-cart-layout is injected by phase1_cart_layout_open/close in functions.php.
   WooCommerce outputs the cart form and totals as siblings with no shared parent,
   so a wrapper div is the only reliable way to put them in a flex row. */
.phase1-cart-layout {
  display: flex !important;
  align-items: flex-start !important;
  gap: 1.75rem !important;
  flex-wrap: wrap !important;
  width: 100% !important;
  box-sizing: border-box !important;
}

/* Keep add-to-cart notices on their own full-width row above cart + totals */
.phase1-cart-layout > .woocommerce-notices-wrapper,
.phase1-cart-layout > .woocommerce-message,
.phase1-cart-layout > .woocommerce-info,
.phase1-cart-layout > .woocommerce-error {
  flex: 0 0 100% !important;
  width: 100% !important;
  margin: 0 0 1rem !important;
}

/* Fallback: WC shortcode .woocommerce wrapper */
.woocommerce-cart .woocommerce,
.woocommerce-cart.woocommerce-page .woocommerce {
  display: grid !important;
  align-items: flex-start !important;
  gap: 1.75rem !important;
  flex-wrap: nowrap !important;
  width: 100% !important;
  box-sizing: border-box !important;
}

/* cart-collaterals is the sibling of the form — make it the right column */
.cart-collaterals {
  width: 22rem !important;
  flex-shrink: 0 !important;
  min-width: 0 !important;
}

/* Cart form — takes remaining space */
.woocommerce-cart-form {
  flex: 1 1 0% !important;
  min-width: 0 !important;
  background: #fff !important;
  border: 0.0625rem solid var(--border) !important;
  border-radius: var(--r-md) !important;
  padding: 1.5rem !important;
  box-shadow: 0 0.125rem 0.5rem rgba(0,0,0,.05) !important;
  transition: box-shadow .25s ease, border-color .25s ease !important;
}
.woocommerce-cart-form:hover {
  box-shadow: 0 0.375rem 1.25rem rgba(58,170,53,.10) !important;
  border-color: var(--green) !important;
}

/* Cart table */
.woocommerce-cart-form table { width: 100%; border-collapse: collapse; }
.woocommerce-cart-form th.product-thumbnail,
.woocommerce-cart-form td.product-thumbnail {
  display: none !important;
}
.woocommerce-cart-form th.product-remove,
.woocommerce-cart-form td.product-remove {
  width: 1.5rem !important;
  padding-right: 0 !important;
  text-align: center !important;
}
.woocommerce-cart-form th.product-name,
.woocommerce-cart-form td.product-name {
  padding-left: 0 !important;
}
.woocommerce-cart-form td.product-name img,
.woocommerce-cart-form td.product-name .attachment-woocommerce_thumbnail,
.woocommerce-cart-form td.product-name .size-woocommerce_thumbnail {
  display: none !important;
}
.woocommerce-cart-form thead th {
  text-align: left;
  padding: 0.625rem 0.875rem;
  border-bottom: 0.125rem solid var(--border);
  font-size: var(--fs-xs);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--muted);
}
.woocommerce-cart-form tbody td {
  padding: 0.875rem;
  border-bottom: 0.0625rem solid var(--border);
  vertical-align: middle;
  font-size: var(--fs-sm);
}
.woocommerce-cart-form tbody tr:last-child td { border-bottom: none; }
.woocommerce-cart-form tbody tr:hover td { background: var(--surface); }
.woocommerce-cart-form .product-thumbnail img {
  width: 5.5rem; height: 5.5rem;
  object-fit: cover;
  border-radius: var(--r-md);
  border: 0.0625rem solid var(--border);
  box-shadow: var(--sh-sm);
}
.woocommerce-cart-form .product-name a {
  font-weight: 600;
  color: var(--text);
  transition: color var(--t);
}
.woocommerce-cart-form .product-name a:hover { color: var(--green); }
.woocommerce-cart-form .product-remove a {
  color: var(--muted) !important;
  font-size: 1.125rem !important;
  transition: color var(--t) !important;
}
.woocommerce-cart-form .product-remove a:hover { color: #dc2626 !important; }

/* Coupon + update row */
.woocommerce-cart-form .actions {
  display: flex !important;
  align-items: center !important;
  gap: 0.75rem !important;
  flex-wrap: wrap !important;
  padding-top: 1rem !important;
}
.woocommerce-cart-form .coupon {
  display: flex !important;
  gap: 0.5rem !important;
  flex: 1 !important;
}
.woocommerce-cart-form .coupon input {
  border: 0.09375rem solid var(--border);
  border-radius: var(--r-sm);
  padding: 0.5rem 0.875rem;
  font-size: var(--fs-sm);
  flex: 1;
  min-width: 0;
  transition: border-color var(--t);
}
.woocommerce-cart-form .coupon input:focus {
  outline: none;
  border-color: var(--green);
  box-shadow: 0 0 0 0.1875rem rgba(58,170,53,.13);
}
/* Apply Coupon — green fill */
.woocommerce-cart-form .coupon .button {
  height: 2.375rem !important;
  padding: 0 1.25rem !important;
  border-radius: var(--r-pill) !important;
  font-size: var(--fs-xs) !important;
  font-weight: 700 !important;
  letter-spacing: 0.03em !important;
  white-space: nowrap !important;
  background: var(--green) !important;
  color: #fff !important;
  border: none !important;
  transition: background var(--t), transform var(--t) !important;
}
.woocommerce-cart-form .coupon .button:hover {
  background: var(--green-dk) !important;
  transform: translateY(-1px) !important;
}

/* Update Cart — outline style */
.woocommerce-cart-form button[name="update_cart"] {
  height: 2.375rem !important;
  padding: 0 1.25rem !important;
  border-radius: var(--r-pill) !important;
  font-size: var(--fs-xs) !important;
  font-weight: 700 !important;
  letter-spacing: 0.03em !important;
  white-space: nowrap !important;
  background: transparent !important;
  color: var(--navy) !important;
  border: 1.5px solid var(--navy) !important;
  transition: background var(--t), color var(--t), border-color var(--t) !important;
}
.woocommerce-cart-form button[name="update_cart"]:hover {
  background: var(--navy) !important;
  color: #fff !important;
}

/* Cart totals box — fixed width sidebar */
.cart_totals {
  width: 100% !important;
  flex-shrink: 0 !important;
  background: #fff !important;
  border-radius: var(--r-md) !important;
  border: 0.0625rem solid var(--border) !important;
  padding: 1.5rem !important;
  box-shadow: 0 0.125rem 0.5rem rgba(0,0,0,.05) !important;
  max-width: none !important;
  margin-left: 0 !important;
  position: sticky !important;
  top: calc(var(--bar-h) + var(--wp-admin--admin-bar--height, 0px) + 1rem) !important;
  transition: box-shadow .25s ease, border-color .25s ease !important;
}
.cart_totals:hover {
  box-shadow: 0 0.375rem 1.25rem rgba(58,170,53,.10) !important;
  border-color: var(--green) !important;
}
.cart_totals h2 {
  font-size: var(--fs-md);
  font-weight: 800;
  margin-bottom: 1.125rem;
  padding-bottom: 0.625rem;
  border-bottom: 0.1875rem solid var(--green);
}
.cart_totals table { width: 100%; border-collapse: collapse; }
.cart_totals th, .cart_totals td {
  padding: 0.625rem 0;
  border-bottom: 0.0625rem solid var(--border);
  font-size: var(--fs-sm);
}
.cart_totals tr:last-child th,
.cart_totals tr:last-child td { border-bottom: none; font-weight: 800; font-size: var(--fs-base); color: var(--navy); }
.cart_totals th { font-size: var(--fs-xs); font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em; color: var(--muted); }
.cart_totals tr:last-child th { font-size: var(--fs-sm); color: var(--navy); text-transform: uppercase; letter-spacing: 0.05em; }
.cart_totals .woocommerce-Price-amount { color: var(--green); font-weight: 700; padding: 0; }
.cart_totals tr:last-child .woocommerce-Price-amount { font-size: var(--fs-md); }

/* Checkout button */
.wc-proceed-to-checkout { margin-top: 1.25rem !important; }
.wc-proceed-to-checkout .checkout-button {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  height: 3rem !important;
  background: linear-gradient(135deg, var(--green) 0%, var(--green-dk) 100%) !important;
  color: #fff !important;
  border-radius: var(--r-pill) !important;
  font-size: var(--fs-sm) !important;
  font-weight: 700 !important;
  letter-spacing: 0.02em !important;
  border: none !important;
  box-shadow: 0 0.25rem 0.875rem rgba(58,170,53,.3) !important;
  transition: opacity .2s ease, transform .2s ease, box-shadow .2s ease !important;
}
.wc-proceed-to-checkout .checkout-button:hover {
  opacity: .9 !important;
  transform: translateY(-0.125rem) !important;
  box-shadow: 0 0.5rem 1.375rem rgba(58,170,53,.40) !important;
  color: #fff !important;
}

/* Cart responsive */
@media (max-width: 56rem) {
  .phase1-cart-layout,
  .woocommerce-cart .woocommerce,
  .woocommerce-page .woocommerce { flex-direction: column !important; }
  .cart-collaterals { width: 100% !important; }
  .cart_totals { position: static !important; }
}

@media (min-width: 48.0625rem) and (max-width: 52rem) {
  .woocommerce-cart .woocommerce-cart-form {
    padding: 1rem !important;
  }

  .woocommerce-cart .woocommerce-cart-form .shop_table {
    display: block !important;
    width: 100% !important;
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch !important;
  }

  .woocommerce-cart .woocommerce-cart-form .shop_table thead th,
  .woocommerce-cart .woocommerce-cart-form .shop_table tbody td {
    white-space: nowrap !important;
    font-size: 0.75rem !important;
    padding: 0.5rem !important;
  }

  .woocommerce-cart .woocommerce-cart-form .actions {
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 0.5rem !important;
  }

  .woocommerce-cart .woocommerce-cart-form .coupon {
    width: 100% !important;
  }

  .woocommerce-cart .woocommerce-cart-form .coupon input,
  .woocommerce-cart .woocommerce-cart-form .coupon .button,
  .woocommerce-cart .woocommerce-cart-form button[name="update_cart"] {
    width: 100% !important;
  }
}

/* iPad Pro landscape (1366×1024 class) — reduce cart panel widths */
@media (min-width: 80rem) and (max-width: 88rem) and (min-height: 60rem) and (max-height: 68.75rem) and (hover: none) and (pointer: coarse) {
  .woocommerce-cart .phase1-cart-layout {
    max-width: 55rem !important;
    margin-left: auto !important;
    margin-right: auto !important;
    gap: 1rem !important;
  }

  .woocommerce-cart .phase1-cart-layout .woocommerce-cart-form {
    flex: 0 1 36rem !important;
  }

  .woocommerce-cart .phase1-cart-layout .cart-collaterals {
    width: 17.5rem !important;
  }
}

/* ═══════════════════════════════════════════════════════
   CHECKOUT
═══════════════════════════════════════════════════════ */

/* Page title */
.woocommerce-checkout .woocommerce-checkout-page-title,
.woocommerce-checkout h1.entry-title,
.woocommerce-checkout h1.page-title {
  font-family: var(--font-heading) !important;
  color: var(--navy) !important;
  font-size: clamp(1.75rem, 3.5vw, var(--fs-2xl)) !important;
  font-weight: 900 !important;
  margin-bottom: 0.25rem !important;
}

/* Two-column checkout layout */
.woocommerce-checkout form.checkout {
  /* display: grid !important; */
  grid-template-columns: 1fr 1.1fr !important;
  gap: 2rem !important;
  align-items: start !important;
}

/* Billing + Additional info panels */
.woocommerce-checkout #order_review_heading,
.woocommerce-checkout #order_review {
  background: #fff !important;
  border: 0.0625rem solid var(--border) !important;
  border-radius: var(--r-md) !important;
  padding: 1.75rem !important;
  box-shadow: var(--sh-sm) !important;
}

/* #customer_details is just a layout container — no card styling */
.woocommerce-checkout #customer_details {
  background: transparent !important;
  border: none !important;
  padding: 0 !important;
  box-shadow: none !important;
}

/* #customer_details already spans its column; order review panel goes right */
.woocommerce-checkout form.checkout .col2-set {
  grid-column: 1 !important;
}
.woocommerce-checkout form.checkout #order_review_heading,
.woocommerce-checkout form.checkout #order_review {
  grid-column: 2 !important;
}
.woocommerce-checkout form.checkout #order_review_heading {
  border-bottom: none !important;
  border-radius: var(--r-md) var(--r-md) 0 0 !important;
  padding-bottom: 0.75rem !important;
  margin-bottom: 0 !important;
  box-shadow: none !important;
  border-bottom: 0 !important;
}
.woocommerce-checkout form.checkout #order_review {
  border-top: 0.125rem solid var(--green-mid) !important;
  border-radius: 0 0 var(--r-md) var(--r-md) !important;
  padding-top: 1.25rem !important;
  box-shadow: var(--sh-sm) !important;
}

/* Section headings (h3) */
.woocommerce-checkout h3 {
  font-size: var(--fs-md) !important;
  font-weight: 700 !important;
  color: var(--navy) !important;
  margin-bottom: 1.25rem !important;
  padding-bottom: 0.5rem !important;
  border-bottom: 0.125rem solid var(--green-mid) !important;
}

/* col2-set inner columns */
.woocommerce-checkout .col2-set .col-1,
.woocommerce-checkout .col2-set .col-2 {
  background: #fff !important;
  border: 0.0625rem solid var(--border) !important;
  border-radius: var(--r-md) !important;
  padding: 1.75rem !important;
  box-shadow: var(--sh-sm) !important;
  margin-bottom: 1.25rem !important;
}

/* Labels */
.woocommerce-checkout .form-row label {
  font-size: var(--fs-sm);
  font-weight: 600;
  color: var(--text);
  display: block;
  margin-bottom: 0.3125rem;
  letter-spacing: 0.03em;
  text-transform: uppercase;
}
.woocommerce-checkout .form-row label .required {
  color: var(--coral) !important;
}

/* Inputs, selects, textareas */
.woocommerce-checkout .form-row input[type="text"],
.woocommerce-checkout .form-row input[type="email"],
.woocommerce-checkout .form-row input[type="tel"],
.woocommerce-checkout .form-row input[type="number"],
.woocommerce-checkout .form-row input[type="password"],
.woocommerce-checkout .form-row select,
.woocommerce-checkout .form-row textarea {
  border: 0.09375rem solid var(--border) !important;
  border-radius: var(--r-sm) !important;
  padding: 0.7rem 1rem !important;
  width: 100% !important;
  font-size: var(--fs-sm) !important;
  color: var(--text) !important;
  background: var(--surface) !important;
  transition: border-color var(--t), box-shadow var(--t), background var(--t) !important;
}
.woocommerce-checkout .form-row input:focus,
.woocommerce-checkout .form-row select:focus,
.woocommerce-checkout .form-row textarea:focus {
  outline: none !important;
  border-color: var(--green) !important;
  background: #fff !important;
  box-shadow: 0 0 0 0.1875rem rgba(58,170,53,.14) !important;
}

/* Coupon notice banner — override WooCommerce blue defaults */
.woocommerce-checkout .woocommerce-info,
.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info,
.woocommerce-form-coupon-toggle .woocommerce-info {
  background: var(--green-lt) !important;
  border: 0.0625rem solid var(--green-mid) !important;
  border-left: 0.25rem solid var(--green) !important;
  border-top: none !important;
  border-right: none !important;
  border-bottom: none !important;
  border-left-width: 0.25rem !important;
  border-radius: var(--r-sm) !important;
  color: var(--text) !important;
  padding: 0.875rem 1.25rem !important;
  font-size: var(--fs-sm) !important;
  margin-bottom: 1.5rem !important;
  box-shadow: none !important;
  /* kill WooCommerce's default blue top border */
  border-top-color: transparent !important;
}
.woocommerce-checkout .woocommerce-info::before,
.woocommerce-form-coupon-toggle .woocommerce-info::before {
  color: var(--green) !important;
}
.woocommerce-checkout .woocommerce-info a,
.woocommerce-form-coupon-toggle .woocommerce-info a {
  color: var(--green-dk) !important;
  font-weight: 600 !important;
  text-decoration: underline !important;
}

/* Coupon form */
.woocommerce-checkout .checkout_coupon {
  background: var(--surface) !important;
  border: 0.0625rem solid var(--border) !important;
  border-radius: var(--r-sm) !important;
  padding: 1.25rem !important;
  margin-bottom: 1.5rem !important;
}
.woocommerce-checkout .checkout_coupon .form-row {
  display: flex !important;
  gap: 0.75rem !important;
  align-items: flex-end !important;
}
.woocommerce-checkout .checkout_coupon input[name="coupon_code"] {
  flex: 1 !important;
}
.woocommerce-checkout .checkout_coupon button[type="submit"] {
  background: var(--green) !important;
  color: #fff !important;
  border: none !important;
  border-radius: var(--r-pill) !important;
  padding: 0.7rem 1.5rem !important;
  font-size: var(--fs-sm) !important;
  font-weight: 700 !important;
  white-space: nowrap !important;
  transition: background var(--t), transform var(--t) !important;
}
.woocommerce-checkout .checkout_coupon button[type="submit"]:hover {
  background: var(--green-dk) !important;
  transform: translateY(-0.125rem) !important;
}

/* Order review table */
.woocommerce-checkout table.shop_table {
  width: 100% !important;
  border-collapse: collapse !important;
  margin-bottom: 1.25rem !important;
}
.woocommerce-checkout table.shop_table th,
.woocommerce-checkout table.shop_table td {
  padding: 0.65rem 0.5rem !important;
  border-bottom: 0.0625rem solid var(--border) !important;
  font-size: var(--fs-sm) !important;
  vertical-align: middle !important;
}
.woocommerce-checkout table.shop_table thead th {
  font-size: var(--fs-xs) !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.05em !important;
  color: var(--muted) !important;
  border-bottom: 0.125rem solid var(--green-mid) !important;
}
.woocommerce-checkout table.shop_table tfoot tr:last-child td,
.woocommerce-checkout table.shop_table tfoot tr:last-child th {
  border-bottom: none !important;
  font-weight: 700 !important;
  font-size: var(--fs-base) !important;
  color: var(--navy) !important;
}
.woocommerce-checkout table.shop_table .order-total td,
.woocommerce-checkout table.shop_table .order-total th {
  font-size: var(--fs-md) !important;
  font-weight: 900 !important;
  color: var(--navy) !important;
  border-top: 0.125rem solid var(--green-mid) !important;
}
.woocommerce-checkout table.shop_table .order-total .amount {
  color: var(--green) !important;
}

/* Payment box */
.woocommerce-checkout #payment {
  background: var(--surface) !important;
  border: 0.0625rem solid var(--border) !important;
  border-radius: var(--r-md) !important;
  padding: 1.25rem !important;
  margin-top: 1rem !important;
}
.woocommerce-checkout #payment ul.payment_methods {
  border-bottom: 0.0625rem solid var(--border) !important;
  padding-bottom: 1rem !important;
  margin-bottom: 1rem !important;
}
.woocommerce-checkout #payment ul.payment_methods li {
  margin-bottom: 0.5rem !important;
  font-size: var(--fs-sm) !important;
}
.woocommerce-checkout #payment ul.payment_methods li label {
  font-weight: 600 !important;
  color: var(--text) !important;
}
.woocommerce-checkout #payment .payment_box {
  background: var(--green-lt) !important;
  border-radius: var(--r-sm) !important;
  padding: 0.875rem 1rem !important;
  font-size: var(--fs-sm) !important;
  color: var(--muted) !important;
  margin-top: 0.5rem !important;
}

/* Terms & conditions */
.woocommerce-checkout #payment .woocommerce-terms-and-conditions-wrapper {
  font-size: var(--fs-xs) !important;
  color: var(--muted) !important;
  margin-bottom: 1rem !important;
}
.woocommerce-checkout #payment .woocommerce-terms-and-conditions-wrapper a {
  color: var(--green-dk) !important;
  text-decoration: underline !important;
}

/* Place order button */
#place_order {
  width: 100% !important;
  height: 3.25rem !important;
  background: var(--green) !important;
  color: #fff !important;
  border: none !important;
  border-radius: var(--r-pill) !important;
  font-size: var(--fs-base) !important;
  font-weight: 700 !important;
  letter-spacing: 0.02em !important;
  transition: background var(--t), transform var(--t), box-shadow var(--t) !important;
}
#place_order:hover {
  background: var(--green-dk) !important;
  transform: translateY(-0.125rem) !important;
  box-shadow: 0 4px 14px rgba(58,170,53,.35) !important;
}

/* Stripe button override if present */
.woocommerce-checkout #payment #place_order + .stripe-button-el { display: none !important; }

/* Responsive: stack to single column on tablet/mobile */
@media (max-width: 900px) {
  .woocommerce-checkout form.checkout {
    grid-template-columns: 1fr !important;
    gap: 1.25rem !important;
  }
  .woocommerce-checkout form.checkout .col2-set,
  .woocommerce-checkout form.checkout #order_review_heading,
  .woocommerce-checkout form.checkout #order_review {
    grid-column: 1 !important;
  }
  .woocommerce-checkout form.checkout #order_review_heading {
    border-radius: var(--r-md) var(--r-md) 0 0 !important;
    margin-top: 0 !important;
  }

  /* Tighter card padding on mobile */
  .woocommerce-checkout .col2-set .col-1,
  .woocommerce-checkout .col2-set .col-2,
  .woocommerce-checkout #order_review_heading,
  .woocommerce-checkout #order_review {
    padding: 1.125rem !important;
  }

  /* Reduce gap between billing/additional cards */
  .woocommerce-checkout .col2-set .col-1,
  .woocommerce-checkout .col2-set .col-2 {
    margin-bottom: 1rem !important;
  }

  /* Full-width page content on mobile — remove any horizontal overflow */
  .woocommerce-checkout .woocommerce {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  /* Coupon banner full width, tighter on mobile */
  .woocommerce-checkout .woocommerce-info,
  .woocommerce-form-coupon-toggle .woocommerce-info {
    padding: 0.75rem 1rem !important;
    margin-bottom: 1rem !important;
  }

  /* First Name / Last Name side-by-side → stack on very small screens */
  .woocommerce-checkout .col2-set .form-row-first,
  .woocommerce-checkout .col2-set .form-row-last {
    width: 100% !important;
    float: none !important;
    clear: both !important;
    margin-right: 0 !important;
  }
}

/* iPad Pro portrait only (around 1024px, touch devices) — keep checkout readable */
@media (min-width: 1000px) and (max-width: 1060px) and (orientation: portrait) and (hover: none) and (pointer: coarse) {
  .woocommerce-checkout form.checkout {
    grid-template-columns: 1fr !important;
    gap: 1.25rem !important;
  }

  .woocommerce-checkout form.checkout .col2-set,
  .woocommerce-checkout form.checkout #order_review_heading,
  .woocommerce-checkout form.checkout #order_review {
    grid-column: 1 !important;
  }

  .woocommerce-checkout .col2-set .col-1,
  .woocommerce-checkout .col2-set .col-2,
  .woocommerce-checkout #order_review_heading,
  .woocommerce-checkout #order_review,
  .woocommerce-checkout #payment {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
  }

  .woocommerce-checkout .col2-set .form-row-first,
  .woocommerce-checkout .col2-set .form-row-last {
    width: 100% !important;
    float: none !important;
    clear: both !important;
    margin-right: 0 !important;
  }
}

/* ═══════════════════════════════════════════════════════
   ORDER RECEIVED (THANK YOU)
═══════════════════════════════════════════════════════ */

/* Outer wrapper */
.woocommerce-order-received .woocommerce-order {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  padding: 0 !important;
}

/* Success banner — "Order received" heading + subtitle */
.woocommerce-order-received .entry-title,
.woocommerce-order-received h1.page-title {
  font-family: var(--font-heading) !important;
  color: var(--navy) !important;
  font-size: clamp(1.75rem, 3.5vw, var(--fs-2xl)) !important;
  font-weight: 900 !important;
  margin-bottom: 0.25rem !important;
}

.woocommerce-order-received .woocommerce-thankyou-order-received {
  display: flex !important;
  align-items: center !important;
  gap: 0.5rem !important;
  background: var(--green-lt) !important;
  border: 0.0625rem solid var(--green-mid) !important;
  border-left: 0.25rem solid var(--green) !important;
  border-radius: var(--r-sm) !important;
  padding: 0.875rem 1.25rem !important;
  font-size: var(--fs-sm) !important;
  font-weight: 600 !important;
  color: var(--green-dk) !important;
  margin: 0 0 1.5rem !important;
}
.woocommerce-order-received .woocommerce-thankyou-order-received::before {
  content: "✓" !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 1.5rem !important;
  height: 1.5rem !important;
  background: var(--green) !important;
  color: #fff !important;
  border-radius: 50% !important;
  font-size: 0.75rem !important;
  font-weight: 900 !important;
  flex-shrink: 0 !important;
}

/* Order meta strip — Order#, Date, Total, Email, Payment */
.woocommerce-order-received .woocommerce-order-overview {
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(9rem, 1fr)) !important;
  gap: 0.75rem !important;
  margin: 0 0 1.75rem !important;
  padding: 0 !important;
  list-style: none !important;
}

.woocommerce-order-received .woocommerce-order-overview li {
  background: #fff !important;
  border: 0.0625rem solid var(--border) !important;
  border-top: 0.1875rem solid var(--green) !important;
  border-radius: var(--r-sm) !important;
  padding: 0.875rem 1rem !important;
  margin: 0 !important;
  font-size: var(--fs-xs) !important;
  font-weight: 600 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.05em !important;
  color: var(--muted) !important;
  line-height: 1.4 !important;
  box-shadow: var(--sh-sm) !important;
}

.woocommerce-order-received .woocommerce-order-overview li strong,
.woocommerce-order-received .woocommerce-order-overview li .amount {
  display: block !important;
  margin-top: 0.375rem !important;
  color: var(--navy) !important;
  font-size: var(--fs-base) !important;
  font-weight: 700 !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
}
.woocommerce-order-received .woocommerce-order-overview li .woocommerce-Price-amount {
  color: var(--green) !important;
}

/* Order details + Billing address cards */
.woocommerce-order-received .woocommerce-order-details,
.woocommerce-order-received .woocommerce-customer-details {
  background: #fff !important;
  border: 0.0625rem solid var(--border) !important;
  border-radius: var(--r-md) !important;
  padding: 1.5rem !important;
  margin: 0 0 1.25rem !important;
  box-shadow: var(--sh-sm) !important;
}

/* Section headings */
.woocommerce-order-received .woocommerce-order-details h2,
.woocommerce-order-received .woocommerce-customer-details h2 {
  font-size: var(--fs-md) !important;
  font-weight: 700 !important;
  color: var(--navy) !important;
  margin: 0 0 1rem !important;
  padding-bottom: 0.5rem !important;
  border-bottom: 0.125rem solid var(--green-mid) !important;
}

/* Order items table */
.woocommerce-order-received table.shop_table.order_details {
  width: 100% !important;
  border-collapse: collapse !important;
  border: 0 !important;
  margin: 0 !important;
}

.woocommerce-order-received table.shop_table.order_details thead {
  background: var(--navy) !important;
}

.woocommerce-order-received table.shop_table.order_details thead th {
  color: #fff !important;
  text-transform: uppercase !important;
  letter-spacing: 0.05em !important;
  font-size: var(--fs-xs) !important;
  font-weight: 700 !important;
  padding: 0.75rem 1rem !important;
}

.woocommerce-order-received table.shop_table.order_details tbody td {
  padding: 0.875rem 1rem !important;
  border-bottom: 0.0625rem solid var(--border) !important;
  font-size: var(--fs-sm) !important;
  vertical-align: middle !important;
}

.woocommerce-order-received table.shop_table.order_details tbody tr:last-child td {
  border-bottom: none !important;
}

.woocommerce-order-received table.shop_table.order_details tbody tr:hover td {
  background: var(--surface) !important;
}

/* Product name */
.woocommerce-order-received table.shop_table.order_details .product-name {
  font-weight: 600 !important;
  color: var(--text) !important;
}
.woocommerce-order-received table.shop_table.order_details .product-name a {
  color: var(--text) !important;
  transition: color var(--t) !important;
}
.woocommerce-order-received table.shop_table.order_details .product-name a:hover {
  color: var(--green) !important;
}
.woocommerce-order-received table.shop_table.order_details .product-quantity {
  color: var(--muted) !important;
}

/* Tfoot — subtotal/total rows */
.woocommerce-order-received table.shop_table.order_details tfoot tr {
  border-top: 0.0625rem solid var(--border) !important;
}
.woocommerce-order-received table.shop_table.order_details tfoot th,
.woocommerce-order-received table.shop_table.order_details tfoot td {
  padding: 0.75rem 1rem !important;
  font-size: var(--fs-sm) !important;
  font-weight: 700 !important;
  color: var(--text) !important;
  border-bottom: 0.0625rem solid var(--border) !important;
}
.woocommerce-order-received table.shop_table.order_details tfoot tr:last-child th,
.woocommerce-order-received table.shop_table.order_details tfoot tr:last-child td {
  border-bottom: none !important;
  font-size: var(--fs-base) !important;
  color: var(--navy) !important;
}
.woocommerce-order-received table.shop_table.order_details tfoot tr:last-child .woocommerce-Price-amount {
  color: var(--green) !important;
  font-size: var(--fs-md) !important;
}
.woocommerce-order-received table.shop_table.order_details .woocommerce-Price-amount {
  color: var(--green) !important;
  font-weight: 700 !important;
}

/* Billing address */
.woocommerce-order-received .woocommerce-customer-details address {
  margin: 0 !important;
  font-style: normal !important;
  line-height: 1.8 !important;
  color: var(--text) !important;
  font-size: var(--fs-sm) !important;
  background: var(--surface) !important;
  border-radius: var(--r-sm) !important;
  padding: 1rem 1.25rem !important;
  border: 0.0625rem solid var(--border) !important;
}

@media (max-width: 48rem) {
  .woocommerce-order-received .woocommerce-order-overview {
    grid-template-columns: repeat(2, 1fr) !important;
  }
  .woocommerce-order-received .woocommerce-order-details,
  .woocommerce-order-received .woocommerce-customer-details {
    padding: 1rem !important;
  }
}

@media (max-width: 48rem) {
  .woocommerce-order-received .woocommerce-order {
    padding: 1rem !important;
  }

  .woocommerce-order-received .woocommerce-order-overview {
    grid-template-columns: 1fr 1fr !important;
  }

  .woocommerce-order-received .woocommerce-order-details,
  .woocommerce-order-received .woocommerce-customer-details {
    padding: 0.95rem !important;
  }
}

/* ═══════════════════════════════════════════════════════
   MY ACCOUNT
═══════════════════════════════════════════════════════ */
.account-page-subtitle { color: var(--muted); margin-bottom: 1.25rem; font-size: var(--fs-sm); }

.woocommerce-account main.wp-block-group {
  padding-top: 1rem !important;
}

.woocommerce-account .section-divider,
.woocommerce-account .wp-block-separator {
  margin: 0.75rem 0 1rem !important;
}

.woocommerce-account .woocommerce-notices-wrapper:empty {
  display: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* .woocommerce-account .woocommerce,
.woocommerce-account .woocommerce-MyAccount-navigation,
.woocommerce-account .woocommerce-MyAccount-content {
  margin-top: 0 !important;
} */

/* Two-column layout: sidebar nav + content */
.woocommerce-account .woocommerce {
  display: flex;
  align-items: flex-start;
  gap: 2rem;
}
.woocommerce-MyAccount-navigation {
  width: 13rem;
  flex-shrink: 0;
  background: #fff;
  border: 0.0625rem solid var(--border);
  border-radius: var(--r-md);
  padding: 1rem 0.75rem;
  box-shadow: 0 0.125rem 0.5rem rgba(0,0,0,.04);
}
.woocommerce-MyAccount-navigation ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}
.woocommerce-MyAccount-content {
  flex: 1;
  min-width: 0;
}

.woocommerce-MyAccount-navigation ul li a {
  display: block;
  padding: 0.625rem 1rem;
  border-radius: var(--r-sm);
  font-size: var(--fs-sm);
  font-weight: 600;
  color: var(--text);
  transition: background var(--t), color var(--t);
}
.woocommerce-MyAccount-navigation ul li.is-active a,
.woocommerce-MyAccount-navigation ul li a:hover {
  background: var(--green-lt);
  color: var(--green);
}

.phase1-account-nav-toggle {
  display: none;
}

@media (max-width: 64rem) {
  .woocommerce-account .woocommerce-MyAccount-navigation {
    padding: 0.75rem !important;
    width: 100% !important;
    box-sizing: border-box !important;
  }

  .woocommerce-account .phase1-account-nav-toggle {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    width: 100% !important;
    min-height: 2.75rem !important;
    border: 0.0625rem solid var(--green-mid) !important;
    border-radius: var(--r-sm) !important;
    background: var(--green-lt) !important;
    color: var(--green) !important;
    font-family: var(--font-ui, inherit) !important;
    font-size: var(--fs-sm) !important;
    font-weight: 700 !important;
    padding: 0.55rem 0.8rem !important;
    margin: 0 !important;
  }

  .woocommerce-account .phase1-account-nav-toggle::after {
    content: '\25BE';
    font-size: 0.8rem;
    line-height: 1;
  }

  .woocommerce-account .woocommerce-MyAccount-navigation.is-open .phase1-account-nav-toggle::after {
    content: '\25B4';
  }

  .woocommerce-account .woocommerce-MyAccount-navigation.is-collapsed ul {
    display: none !important;
  }

  .woocommerce-account .woocommerce-MyAccount-navigation.is-open ul {
    display: flex !important;
    margin-top: 0.5rem !important;
  }
}

.woocommerce-account .woocommerce-MyAccount-content > p {
  text-align: left !important;
  margin-bottom: 1rem !important;
}

.woocommerce-account .woocommerce-Addresses {
  display: flex !important;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
  align-items: start;
}

.woocommerce-account .woocommerce-Address {
  text-align: left !important;
  background: #fff !important;
  border: 0.0625rem solid var(--border) !important;
  border-radius: var(--r-md) !important;
  padding: 1rem 1.1rem !important;
  box-shadow: 0 0.125rem 0.5rem rgba(0,0,0,.05) !important;
}

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

.woocommerce-account .woocommerce-Address-title h3 {
  margin: 0 !important;
  font-size: 1.35rem !important;
  text-align: left !important;
}

.woocommerce-account .woocommerce-Address-title .edit,
.woocommerce-account .woocommerce-Address-title a {
  font-family: var(--font-ui, inherit) !important;
  font-size: 0.85rem !important;
  font-weight: 600 !important;
  color: var(--green) !important;
  text-decoration: underline;
}

.woocommerce-account .woocommerce-Address address {
  margin: 0 !important;
  text-align: left !important;
  font-style: normal;
  line-height: 1.65;
  color: var(--text);
}

@media (max-width: 48rem) {
  .woocommerce-account .woocommerce-Addresses {
    grid-template-columns: 1fr;
  }
}

.woocommerce-account form.woocommerce-EditAccountForm {
  background: #fff !important;
  border: 0.0625rem solid var(--border) !important;
  border-radius: var(--r-md) !important;
  padding: 1.25rem 1.25rem 1.4rem !important;
  box-shadow: 0 0.125rem 0.5rem rgba(0,0,0,.05) !important;
}

.woocommerce-account form.woocommerce-EditAccountForm .form-row {
  margin-bottom: 1rem !important;
}

.woocommerce-account form.woocommerce-EditAccountForm label {
  display: block;
  text-align: left !important;
  font-family: var(--font-ui, inherit) !important;
  font-size: 0.82rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.04em !important;
  color: var(--navy) !important;
  margin-bottom: 0.4rem !important;
}

.woocommerce-account form.woocommerce-EditAccountForm .required {
  color: #dc2626;
}

.woocommerce-account form.woocommerce-EditAccountForm input[type="text"],
.woocommerce-account form.woocommerce-EditAccountForm input[type="email"],
.woocommerce-account form.woocommerce-EditAccountForm input[type="password"] {
  width: 100% !important;
  min-height: 3rem !important;
  border: 0.09375rem solid #cfd7e2 !important;
  border-radius: var(--r-sm) !important;
  padding: 0.75rem 0.9rem !important;
  background: #fff !important;
  color: var(--text) !important;
  box-shadow: none !important;
  transition: border-color 200ms ease, box-shadow 200ms ease !important;
}

.woocommerce-account form.woocommerce-EditAccountForm input[type="text"]:focus,
.woocommerce-account form.woocommerce-EditAccountForm input[type="email"]:focus,
.woocommerce-account form.woocommerce-EditAccountForm input[type="password"]:focus {
  border-color: var(--green) !important;
  box-shadow: 0 0 0 0.1875rem rgba(58,170,53,.14) !important;
  outline: none !important;
}

.woocommerce-account form.woocommerce-EditAccountForm span em {
  display: block;
  margin-top: 0.35rem;
  font-size: 0.85rem;
  color: var(--muted);
  text-align: left;
}

.woocommerce-account form.woocommerce-EditAccountForm fieldset {
  border: 0.0625rem solid var(--border) !important;
  border-radius: var(--r-sm) !important;
  padding: 0.9rem 0.9rem 0.25rem !important;
  margin-top: 1rem !important;
  background: var(--surface) !important;
}

.woocommerce-account form.woocommerce-EditAccountForm fieldset legend {
  text-align: left !important;
  font-family: var(--font-ui, inherit) !important;
  font-size: 1rem !important;
  font-weight: 700 !important;
  color: var(--navy) !important;
  padding: 0 0.35rem;
}

.woocommerce-account form.woocommerce-EditAccountForm .password-input {
  width: 100%;
}

.woocommerce-account form.woocommerce-EditAccountForm button[type="submit"] {
  margin-top: 0.75rem !important;
}

@media (max-width: 48rem) {
  .woocommerce-account form.woocommerce-EditAccountForm {
    padding: 1rem !important;
  }
}

/* ═══════════════════════════════════════════════════════
   ABOUT PAGE
═══════════════════════════════════════════════════════ */

/* Hero banner */
.about-hero-box {
  background: linear-gradient(135deg, #eef8eb 0%, #f4fbf0 60%, #fff 100%);
  border: 0.0625rem solid var(--green-mid);
  border-radius: var(--r-lg);
  padding: 3rem 2.5rem;
  margin-bottom: 0;
  text-align: center;
}
.about-hero-title {
  font-size: clamp(1.75rem, 4vw, var(--fs-2xl));
  font-weight: 900;
  color: var(--text);
  margin: 0 0 0.875rem;
  line-height: 1.2;
  text-align: center !important;
}
.about-hero-text {
  font-size: var(--fs-md);
  color: var(--muted);
  max-width: 38rem;
  margin: 0 auto;
  line-height: 1.75;
  text-align: center !important;
}

/* 3-column cards row */
.about-cards-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
  margin-bottom: 0;
}

/* Shared card shell */
.about-card {
  background: #fff;
  border: 0.0625rem solid var(--border);
  border-radius: var(--r-md);
  padding: 2rem 1.75rem;
  box-shadow: 0 0.125rem 0.5rem rgba(0,0,0,.05);
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  transition: box-shadow .25s ease, border-color .25s ease, transform .25s ease;
  position: relative;
  overflow: hidden;
}
.about-card::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 0.1875rem;
  background: linear-gradient(90deg, var(--green) 0%, #7ed957 100%);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .3s ease;
  border-radius: var(--r-md) var(--r-md) 0 0;
}
.about-card:hover {
  box-shadow: 0 0.5rem 2rem rgba(58,170,53,.14), 0 0.125rem 0.5rem rgba(0,0,0,.06);
  border-color: var(--green);
  transform: translateY(-0.25rem);
}
.about-card:hover::before { transform: scaleX(1); }

.about-card-icon {
  font-size: 2rem;
  display: block;
  margin-bottom: 0.25rem;
}
.about-card-title {
  font-size: var(--fs-md);
  font-weight: 800;
  color: var(--text);
  margin: 0;
}
.about-card-text {
  font-size: var(--fs-sm);
  color: var(--muted);
  line-height: 1.7;
  margin: 0;
}

/* 2-column org + values layout */
.about-org-layout {
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  gap: 2rem;
  align-items: start;
}

/* Org box */
.about-org-box {
  background: #fff;
  border: 0.0625rem solid var(--border);
  border-radius: var(--r-md);
  padding: 2.25rem 2rem;
  box-shadow: 0 0.125rem 0.5rem rgba(0,0,0,.05);
  transition: box-shadow .25s ease, border-color .25s ease, transform .25s ease;
}
.about-org-box:hover {
  box-shadow: 0 0.5rem 2rem rgba(58,170,53,.14), 0 0.125rem 0.5rem rgba(0,0,0,.06);
  border-color: var(--green);
  transform: translateY(-0.1875rem);
}
.about-org-heading {
  font-size: var(--fs-lg);
  font-weight: 900;
  color: var(--text);
  margin: 0 0 1rem;
  padding-bottom: 0.75rem;
  border-bottom: 0.1875rem solid var(--green);
}
.about-org-subheading {
  font-size: var(--fs-base);
  font-weight: 700;
  color: var(--text);
  margin: 1.5rem 0 0.5rem;
}
.about-org-text {
  font-size: var(--fs-sm);
  color: var(--muted);
  line-height: 1.75;
  margin: 0;
}
.about-org-section { margin-top: 1.25rem; }

/* Values box */
.about-values-box {
  background: #fff;
  border: 0.0625rem solid var(--border);
  border-radius: var(--r-md);
  padding: 2.25rem 2rem;
  box-shadow: 0 0.125rem 0.5rem rgba(0,0,0,.05);
  transition: box-shadow .25s ease, border-color .25s ease, transform .25s ease;
}
.about-values-box:hover {
  box-shadow: 0 0.5rem 2rem rgba(58,170,53,.14), 0 0.125rem 0.5rem rgba(0,0,0,.06);
  border-color: var(--green);
  transform: translateY(-0.1875rem);
}
.about-values-heading {
  font-size: var(--fs-md);
  font-weight: 800;
  color: var(--text);
  margin: 0 0 1.5rem;
  padding-bottom: 0.75rem;
  border-bottom: 0.1875rem solid var(--green);
}
.about-values-list {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
}
.about-values-item {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
  padding: 1rem;
  border: 0.0625rem solid var(--border);
  border-radius: var(--r-sm);
  background: var(--surface);
  transition: border-color .2s ease, background .2s ease, transform .2s ease;
}
.about-values-item:hover {
  border-color: var(--green);
  background: var(--green-lt);
  transform: translateX(0.25rem);
}
.about-values-icon {
  font-size: 1.375rem;
  flex-shrink: 0;
  width: 2.5rem;
  height: 2.5rem;
  background: #fff;
  border: 0.0625rem solid var(--green-mid);
  border-radius: var(--r-sm);
  display: flex;
  align-items: center;
  justify-content: center;
}
.about-values-item strong {
  display: block;
  font-size: var(--fs-sm);
  font-weight: 700;
  color: var(--text);
  margin-bottom: 0.1875rem;
}
.about-values-item p {
  font-size: var(--fs-xs);
  color: var(--muted);
  margin: 0;
  line-height: 1.55;
}

/* About responsive */
@media (max-width: 56rem) {
  .about-cards-grid { grid-template-columns: repeat(2, 1fr); }
  .about-org-layout  { grid-template-columns: 1fr; }
}
@media (max-width: 36rem) {
  .about-cards-grid { grid-template-columns: 1fr; }
  .about-hero-box   { padding: 2rem 1.25rem; }
}

/* ═══════════════════════════════════════════════════════
   CONTACT PAGE
═══════════════════════════════════════════════════════ */

/* Contact intro banner (same visual style as About hero) */
.contact-hero {
  background: linear-gradient(135deg, #eef8eb 0%, #f4fbf0 60%, #fff 100%) !important;
  border: 0.0625rem solid var(--green-mid) !important;
  border-radius: var(--r-lg) !important;
  padding: 2.5rem 2rem !important;
  text-align: center !important;
}

.contact-hero .page-title,
.contact-hero .wp-block-heading,
.contact-hero p {
  text-align: center !important;
}

.contact-hero p {
  max-width: 44rem;
  margin: 0.25rem auto 0 !important;
  color: var(--muted) !important;
  padding: 1.3rem
}

/* Two-column layout wrapper */
.contact-layout {
  display: grid;
  grid-template-columns: 1fr 1.6fr;
  gap: 2rem;
  align-items: start;
  margin-top: 2rem;
}

/* ── Shared box shell ──────────────────────────────── */
.contact-info-box,
.contact-form-box {
  background: #fff;
  border: 0.0625rem solid var(--border);
  border-radius: var(--r-md);
  padding: 2.25rem 2rem;
  box-shadow: 0 0.125rem 0.75rem rgba(0,0,0,.06);
  transition: box-shadow .25s ease, border-color .25s ease, transform .25s ease;
}
.contact-info-box:hover,
.contact-form-box:hover {
  box-shadow: 0 0.5rem 2rem rgba(58,170,53,.14), 0 0.125rem 0.5rem rgba(0,0,0,.06);
  border-color: var(--green);
  transform: translateY(-0.1875rem);
}

/* ── Contact Info Box ──────────────────────────────── */
.contact-info-box {
  position: sticky;
  top: calc(var(--bar-h) + var(--wp-admin--admin-bar--height, 0px) + 1.5rem);
}
.contact-info-heading,
.contact-form-heading {
  font-size: var(--fs-md);
  font-weight: 800;
  color: var(--text);
  margin: 0 0 1.5rem;
  padding-bottom: 0.75rem;
  border-bottom: 0.1875rem solid var(--green);
  display: block;
}
.contact-info-list {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
  display: flex;
  flex-direction: column;
  gap: 1.375rem;
}
.contact-info-list li {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
}
.contact-info-icon {
  font-size: 1rem;
  flex-shrink: 0;
  width: 2.25rem;
  height: 2.25rem;
  background: var(--green-lt);
  border: 0.0625rem solid var(--green-mid);
  border-radius: var(--r-sm);
  display: flex;
  align-items: center;
  justify-content: center;
}
.contact-info-label {
  display: block;
  font-size: 0.6875rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.07em;
  color: var(--muted);
  margin-bottom: 0.1875rem;
}
.contact-info-value {
  display: block;
  font-size: var(--fs-sm);
  color: var(--text);
  font-weight: 500;
  line-height: 1.55;
  text-decoration: none;
  transition: color var(--t);
}
a.contact-info-value:hover { color: var(--green); }

/* ── Contact Form Box ──────────────────────────────── */
.contact-form-heading {
  margin-bottom: 1.75rem;
}
.contact-form {
  display: flex;
  flex-direction: column;
  gap: 0;
}
.contact-form-row {
  display: flex;
  flex-direction: column;
  margin-bottom: 1.25rem;
}
.contact-form-label {
  font-size: var(--fs-sm);
  font-weight: 600;
  color: var(--text);
  margin-bottom: 0.375rem;
  display: block;
}
.contact-form-optional {
  font-weight: 400;
  color: var(--muted);
  font-size: var(--fs-xs);
}
.contact-form-input {
  width: 100%;
  border: 0.09375rem solid var(--border);
  border-radius: var(--r-sm);
  padding: 0.75rem 1rem;
  font-size: var(--fs-sm);
  font-family: inherit;
  color: var(--text);
  background: var(--surface);
  outline: none;
  box-shadow: none;
  transition: border-color .2s ease, box-shadow .2s ease, background .2s ease;
  display: block;
}
.contact-form-input::placeholder { color: #adb5bd; }
.contact-form-input:focus {
  border-color: var(--green);
  box-shadow: 0 0 0 0.1875rem rgba(58,170,53,.15);
  background: #fff;
}
.contact-form-input:hover:not(:focus) { border-color: #9ca3af; }
.contact-form-textarea {
  min-height: 9rem;
  resize: vertical;
  line-height: 1.6;
}
.contact-form-submit {
  align-self: flex-start;
  height: 2.875rem;
  padding: 0 2.25rem;
  background: linear-gradient(135deg, var(--green) 0%, var(--green-dk) 100%);
  color: #fff;
  border: none;
  border-radius: var(--r-pill);
  font-size: var(--fs-sm);
  font-weight: 700;
  letter-spacing: 0.02em;
  cursor: pointer;
  box-shadow: 0 0.25rem 0.875rem rgba(58,170,53,.3);
  transition: opacity .2s ease, transform .2s ease, box-shadow .2s ease;
  margin-top: 0.25rem;
}
.contact-form-submit:hover {
  opacity: .92;
  transform: translateY(-0.125rem);
  box-shadow: 0 0.5rem 1.375rem rgba(58,170,53,.4);
}

/* Responsive */
@media (max-width: 48rem) {
  .contact-layout { grid-template-columns: 1fr; }
  .contact-info-box { position: static; }
}

@media (min-width: 48.0625rem) and (max-width: 52rem) {
  .contact-layout {
    grid-template-columns: 1fr !important;
    gap: 1.25rem !important;
  }

  .contact-info-box {
    position: static !important;
    top: auto !important;
  }

  .contact-info-box,
  .contact-form-box {
    min-width: 0 !important;
    padding: 1.5rem 1.25rem !important;
  }
}

/* ═══════════════════════════════════════════════════════
   LEGAL PAGES — Privacy Policy & Terms and Conditions
═══════════════════════════════════════════════════════ */
.legal-page {
  max-width: 52rem !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding: 2.5rem 2rem 4rem !important;
}

/* Title banner box */
.legal-page .page-title,
.legal-page h1.wp-block-heading {
  font-size: clamp(1.5rem, 3vw, var(--fs-2xl)) !important;
  font-weight: 900 !important;
  text-align: center !important;
  background: linear-gradient(135deg, #eef8eb 0%, #f4fbf0 60%, #fff 100%) !important;
  border: 0.0625rem solid var(--green-mid) !important;
  border-radius: var(--r-md) !important;
  padding: 1.5rem 2rem !important;
  margin-bottom: 2rem !important;
  color: var(--text) !important;
  border-left: 0.25rem solid var(--green) !important;
}

/* Content box */
.legal-page .wp-block-post-content,
.legal-page > .entry-content,
.legal-page [class*="is-layout"] {
  background: #fff !important;
  border: 0.0625rem solid var(--border) !important;
  border-radius: var(--r-md) !important;
  padding: 2rem 2.75rem !important;
  box-shadow: 0 0.125rem 0.5rem rgba(0,0,0,.05) !important;
  transition: box-shadow .25s ease, border-color .25s ease !important;
}
.legal-page .wp-block-post-content:hover,
.legal-page > .entry-content:hover {
  box-shadow: 0 0.375rem 1.5rem rgba(58,170,53,.10) !important;
  border-color: var(--green) !important;
}

@media (max-width: 48rem) {
  .legal-page .wp-block-post-content,
  .legal-page > .entry-content,
  .legal-page [class*="is-layout"] {
    padding: 1.5rem 1.25rem !important;
  }
}

/* Typography inside legal content */
.legal-page h2 {
  font-size: 1.5rem !important;
  font-weight: 800 !important;
  color: var(--text) !important;
  margin: 1.75rem 0 0.625rem !important;
  padding-bottom: 0.5rem !important;
  border-bottom: 0.0625rem solid var(--border) !important;
}
.legal-page h3 {
  font-size: var(--fs-md) !important;
  font-weight: 700 !important;
  color: var(--text) !important;
  margin: 1.25rem 0 0.375rem !important;
}
.legal-page p {
  font-size: var(--fs-sm) !important;
  color: #374151 !important;
  line-height: 1.8 !important;
  margin-bottom: 1rem !important;
}
.legal-page ul, .legal-page ol {
  padding-left: 1.25rem !important;
  margin-bottom: 1rem !important;
}
.legal-page li {
  font-size: var(--fs-sm) !important;
  color: #374151 !important;
  line-height: 1.75 !important;
  margin-bottom: 0.375rem !important;
  list-style: disc !important;
}
.legal-page a {
  color: var(--green) !important;
  text-decoration: underline !important;
  transition: color var(--t) !important;
}
.legal-page a:hover { color: var(--green-dk) !important; }

/* ── Terms page — match privacy layout exactly ── */

/* page-id-66 is the Terms & Conditions page ID in this install.
   Using the ID here because the page uses wp:post-title (a dynamic block)
   rather than a static h1, so a class-based rule on the template alone
   is not enough to override WP block-theme spacing. */
.page-id-66 h1.wp-block-post-title,
.page-id-66 .page-title {
  font-size: clamp(1.5rem, 3vw, var(--fs-2xl)) !important;
  font-weight: 900 !important;
  text-align: center !important;
  background: linear-gradient(135deg, #eef8eb 0%, #f4fbf0 60%, #fff 100%) !important;
  border: 0.0625rem solid var(--green-mid) !important;
  border-left: 0.25rem solid var(--green) !important;
  border-radius: var(--r-md) !important;
  padding: 1.5rem 2rem !important;
  margin-bottom: 2rem !important;
  color: var(--text) !important;
  max-width: 52rem !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* Constrain terms content same as privacy */
.page-id-66 .entry-content,
.page-id-66 .wp-block-post-content {
  max-width: 52rem !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding: 0 2rem 4rem !important;
}

/* Content box wrapper — same card as privacy */
.legal-page--terms {
  background: #fff !important;
  border: 0.0625rem solid var(--border) !important;
  border-radius: var(--r-md) !important;
  padding: 2.5rem 3rem !important;
  box-shadow: 0 0.125rem 0.5rem rgba(0,0,0,.05) !important;
  transition: box-shadow .25s ease, border-color .25s ease !important;
  /* override WP global padding */
  --wp--style--root--padding-left: 0px !important;
  --wp--style--root--padding-right: 0px !important;
}

/* Force padding — override WP block theme inline style */
div.legal-page--terms.has-global-padding.is-layout-constrained,
div.wp-block-group.legal-page--terms {
  padding: 2.5rem 3rem !important;
}

/* prevent nested constrained blocks from re-adding side padding */
.legal-page--terms .is-layout-constrained > *,
.legal-page--terms .has-global-padding > * {
  padding-left: 0 !important;
  padding-right: 0 !important;
  max-width: none !important;
}

.legal-page--terms:hover {
  box-shadow: 0 0.375rem 1.5rem rgba(58,170,53,.10) !important;
  border-color: var(--green) !important;
}

/* ═══════════════════════════════════════════════════════
   FOOTER
═══════════════════════════════════════════════════════ */
.phase1-footer {
  background: #3d2510 !important;
  color: #f0e0cc !important;
  padding: 0 !important;
  max-width: none !important;
  width: 100% !important;
  margin-top: 2rem !important;
  border-top: 3px solid var(--green) !important;
  border-top-left-radius: var(--r-lg) !important;
  border-top-right-radius: var(--r-lg) !important;
  overflow: hidden !important;
}
.phase1-footer-inner {
  max-width: var(--wrap) !important;
  margin: 0 auto !important;
  padding: 2.25rem 2.5rem 0 !important;
}
.phase1-footer-top {
  display: flex !important;
  align-items: flex-start !important;
  justify-content: center !important;
  gap: 1.5rem !important;
  text-align: center !important;
}
.phase1-footer-top > .wp-block-column {
  flex: 1 1 0% !important;
  min-width: 0 !important;
}
.phase1-footer-links {
  background: rgba(255,255,255,.04) !important;
  border: 0.0625rem solid rgba(255,200,150,.12) !important;
  border-top: 2px solid var(--amber) !important;
  border-radius: var(--r-md) !important;
  padding: 1rem 1.25rem 0.9rem !important;
  text-align: center !important;
  transition: border-color 200ms ease, background 200ms ease !important;
}
.phase1-footer-links:hover {
  background: rgba(255,255,255,.07) !important;
  border-color: rgba(255,200,150,.25) !important;
  border-top-color: var(--green) !important;
}
.phase1-footer-links h3 {
  font-family: var(--font-ui) !important;
  font-size: var(--fs-sm) !important;
  font-weight: 600 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  color: #fcd9a0 !important;
  margin-bottom: 0.875rem !important;
  padding-bottom: 0.5rem !important;
  border-bottom: 0.0625rem solid rgba(255,200,150,.15) !important;
}
.phase1-footer-links ul {
  display: flex !important;
  flex-direction: column !important;
  gap: 0.3rem !important;
  align-items: center !important;
}
.phase1-footer-links ul li a {
  color: #e8c99a !important;
  font-size: 0.875rem !important;
  line-height: 1.5 !important;
  display: block !important;
  border-radius: var(--r-sm) !important;
  padding: 0.2rem 0.5rem !important;
  transition: color 180ms ease, background 180ms ease !important;
  text-align: center !important;
}
.phase1-footer-links ul li a:hover {
  color: #ffffff !important;
  background: rgba(58,170,53,.15) !important;
}
.phase1-footer-bottom {
  margin-top: 1.75rem !important;
  padding: 1rem 0 !important;
  border-top: 0.0625rem solid rgba(255,200,150,.1) !important;
  color: #64748b !important;
  font-size: var(--fs-sm) !important;
  justify-content: center !important;
  text-align: center !important;
}
.phase1-footer-bottom p { color: #c9a97a !important; font-size: var(--fs-sm) !important; }
.phase1-footer-disclaimer {
  color: #a87d52 !important;
  font-size: var(--fs-xs) !important;
  text-align: center !important;
  padding: 0.5rem 0 1.25rem !important;
}

/* ═══════════════════════════════════════════════════════
   RESPONSIVE — ≤ 48rem (768px) — mobile core
═══════════════════════════════════════════════════════ */
@media (max-width: 48rem) {
  body { padding-left: 0; padding-right: 0; }

  main.wp-block-group,
  main.wp-block-group.is-layout-constrained,
  main.is-layout-constrained {
    padding-left: 1.25rem !important;
    padding-right: 1.25rem !important;
  }

  .phase1-sidebar {
    top: var(--wp-admin--admin-bar--height, 0px) !important;
    height: calc(100vh - var(--wp-admin--admin-bar--height, 0px)) !important;
    transform: translateX(-100%);
    box-shadow: var(--sh-lg);
    z-index: 900 !important;
  }

  .phase1-sidebar-head { display: flex; }
  .phase1-sidebar-brand { display: block; }
  .phase1-sidebar-close { display: flex; }

  .phase1-overlay {
    display: block;
    z-index: 899 !important;
    pointer-events: none !important;
  }

  .phase1-nav-checkbox:checked ~ .phase1-sidebar { transform: translateX(0); }
  .phase1-nav-checkbox:checked ~ .phase1-overlay { opacity: 1; visibility: visible; }
  .phase1-nav-checkbox:checked ~ .phase1-overlay { pointer-events: auto !important; }

  .phase1-hamburger { display: flex; }
  .phase1-topbar-right {
    order: 4 !important;
  }
  .phase1-topbar {
    padding: 0.5rem 0.75rem 0.65rem !important;
    gap: 0.75rem !important;
    flex-wrap: wrap !important;
    align-items: center !important;
    row-gap: 0.5rem !important;
  }
  .phase1-top-search {
    display: block !important;
    order: 3 !important;
    flex: 0 0 100% !important;
    max-width: 100% !important;
    margin: 0.2rem auto 0 !important;
  }
  .phase1-top-search .wp-block-search__inside-wrapper {
    height: 2.5rem !important;
    width: 60% !important;
    margin-left: 4rem !important;
  }
  .phase1-topbar-brand img { height: 2.375rem !important; }
}

/* ═══════════════════════════════════════════════════════
   RESPONSIVE — ≤ 64rem (1024px) — tablet + product grid
═══════════════════════════════════════════════════════ */
@media (max-width: 64rem) {
  /* 2 cards per row on tablet */
  .wp-block-woocommerce-product-collection ul.wp-block-post-template,
  ul.wp-block-post-template,
  .woocommerce ul.products {
    grid-template-columns: repeat(2, 1fr) !important;
  }
  .related.products ul.products,
  .upsells.products ul.products {
    grid-template-columns: repeat(2, 1fr) !important;
  }
  /* Stack feature/category columns */
  .wp-block-columns.home-feature-grid,
  .wp-block-columns.home-categories-grid,
  .wp-block-columns.contact-grid { flex-direction: column !important; }
  .wp-block-columns.home-feature-grid > .wp-block-column,
  .wp-block-columns.home-categories-grid > .wp-block-column,
  .wp-block-columns.contact-grid > .wp-block-column {
    width: 100% !important; flex-basis: 100% !important;
  }
  /* Footer — 2-column grid on tablet, columns fill full width */
  .phase1-footer-top {
    display: grid !important;
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 1rem !important;
    align-items: start !important;
  }
  /* Third column (Flyers) spans both columns at the bottom */
  .phase1-footer-top > .wp-block-column:last-child {
    grid-column: 1 / -1 !important;
  }
  .phase1-footer-top > .wp-block-column {
    flex: unset !important;
    width: 100% !important;
    min-width: 0 !important;
  }
  .phase1-footer-inner { padding: 2rem 1.5rem 0 !important; }
  .phase1-footer-links { padding: 1rem 1.25rem !important; }
  /* My account */
  .woocommerce-account .woocommerce { flex-direction: column !important; }
  .woocommerce-MyAccount-navigation { width: 100%; }
  .woocommerce-MyAccount-content { padding-left: 0; padding-top: 1.5rem; }
  /* Cart — use grid stack on tablet so checkout totals stays visible */
  .phase1-cart-layout,
  .woocommerce-cart .woocommerce,
  .woocommerce-page .woocommerce {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 1rem !important;
  }
  .cart-collaterals {
    width: 100% !important;
  }
  .cart_totals {
    position: static !important;
    width: 100% !important;
    max-width: 100% !important;
  }
  /* Single product */
  .woocommerce div.product .wp-block-columns { flex-direction: column !important; }
  .single-product .woocommerce div.product { grid-template-columns: 1fr !important; gap: 2rem !important; }
  /* Hero */
  .home-hero { padding: 2.5rem 1.5rem !important; }
  .home-hero-title { font-size: 1.75rem; }
}

/* ═══════════════════════════════════════════════════════
   RESPONSIVE — ≤ 47.9375rem (767px) — phone
═══════════════════════════════════════════════════════ */
@media (max-width: 47.9375rem) {

  /* Hero — reduce padding from the 64rem value (2.5rem 1.5rem) to something tighter */
  .home-hero {
    padding: 1.75rem 1rem !important;
    border-radius: var(--r-md) !important;
  }
  .home-hero-title { font-size: clamp(1.4rem, 6vw, 1.75rem) !important; }
  .home-hero-text  { font-size: var(--fs-sm) !important; }

  /* Feature / category card columns — single column on phone */
  .home-feature-grid .wp-block-column,
  .home-categories-grid .wp-block-column {
    flex-basis: 100% !important;
    width: 100% !important;
  }

  /* About cards — 1 column on phone */
  .about-cards-grid { grid-template-columns: 1fr !important; }
  .about-hero-box   { padding: 1.75rem 1.25rem !important; }
  .about-org-layout { grid-template-columns: 1fr !important; }
  .about-org-box,
  .about-values-box { padding: 1.5rem 1.25rem !important; }

  /* Single product — stack image above details */
  .single-product .woocommerce div.product {
    grid-template-columns: 1fr !important;
    gap: 1.5rem !important;
  }

  /* Product grid — 2 columns is usable on most phones; collapse to 1 below 30rem */
  /* (already handled by the 30rem block below) */

  /* Shop hero / toolbar — tighter padding on phone */
  .shop-hero-box { padding: 1.25rem 1rem !important; }
  .shop-toolbar  { padding: 0.5rem 0.75rem !important; }

  /* Cart — full-width coupon input on phone */
  .woocommerce-cart-form .coupon { flex-direction: column !important; }
  .woocommerce-cart-form .coupon input { width: 100% !important; }

  /* My account — stack nav above content (already at 64rem, keep gap tighter) */
  .woocommerce-account .woocommerce { gap: 1rem !important; }
  .woocommerce-MyAccount-content    { padding-top: 0.75rem !important; }

  /* Footer — clean single-column layout on phone */
  .phase1-footer {
    border-top-left-radius: var(--r-md) !important;
    border-top-right-radius: var(--r-md) !important;
    margin-top: 1rem !important;
  }
  .phase1-footer-inner  { padding: 1.25rem 0.875rem 0 !important; }
  .phase1-footer-top {
    flex-direction: column !important;
    gap: 0.625rem !important;
    align-items: stretch !important;
  }
  /* Each column must fill full width — WP block columns fight this */
  .phase1-footer-top > .wp-block-column {
    flex: 0 0 100% !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }
  .phase1-footer-links {
    padding: 0.875rem 1rem !important;
    border-radius: var(--r-sm) !important;
    text-align: left !important;
  }
  .phase1-footer-links h3 {
    font-size: var(--fs-xs) !important;
    margin-bottom: 0.5rem !important;
    padding-bottom: 0.375rem !important;
  }
  /* Horizontal scrolling link row on phone — saves vertical space */
  .phase1-footer-links ul {
    flex-direction: row !important;
    flex-wrap: wrap !important;
    justify-content: flex-start !important;
    gap: 0.25rem 0.5rem !important;
    align-items: flex-start !important;
  }
  .phase1-footer-links ul li a {
    font-size: var(--fs-xs) !important;
    padding: 0.15rem 0.4rem !important;
    text-align: left !important;
    background: rgba(255,255,255,.06) !important;
    border-radius: var(--r-sm) !important;
  }
  .phase1-footer-bottom {
    margin-top: 1rem !important;
    padding: 0.75rem 0 !important;
    font-size: var(--fs-xs) !important;
  }
  .phase1-footer-bottom p { font-size: var(--fs-xs) !important; }
  .phase1-footer-disclaimer {
    font-size: 0.65rem !important;
    padding: 0.25rem 0 1rem !important;
  }

  /* Legal pages — tighter outer padding on phone */
  .legal-page { padding: 1.25rem 1rem 3rem !important; }

  /* Section dividers — reduce vertical breathing room */
  .section-divider,
  .wp-block-separator { margin: 1.5rem 0 !important; }

  /* Blog query grid — 1 column on phone */
  .wp-block-query > .wp-block-post-template,
  .wp-block-query ul.wp-block-post-template,
  .wp-block-query .is-layout-grid {
    grid-template-columns: 1fr !important;
  }

  /* Blog archive hero */
  .blog-archive-title { font-size: clamp(1.35rem, 5.5vw, 1.75rem) !important; }

  /* Contact layout already 1-col at 48rem — ensure form is full width */
  .contact-info-box,
  .contact-form-box { padding: 1.25rem 1rem !important; }
}

/* ═══════════════════════════════════════════════════════
   RESPONSIVE — ≤ 30rem (480px) — small phone
═══════════════════════════════════════════════════════ */
@media (max-width: 30rem) {
  .wp-block-woocommerce-product-collection ul.wp-block-post-template,
  ul.wp-block-post-template,
  .woocommerce ul.products {
    grid-template-columns: 1fr !important;
  }
  .related.products ul.products,
  .upsells.products ul.products {
    grid-template-columns: 1fr !important;
  }
  .home-hero .wp-block-buttons { flex-direction: column !important; align-items: center !important; }
  .home-hero .wp-block-button { width: 100% !important; max-width: 17.5rem !important; }
  .home-hero .wp-block-button__link { width: 100% !important; }
  .phase1-cart-link { padding: 0 0.625rem !important; font-size: 1.1rem !important; }
}

/* ═══════════════════════════════════════════════════════
   ACCESSIBILITY
═══════════════════════════════════════════════════════ */
:focus-visible { outline: 0.125rem solid var(--green); outline-offset: 0.1875rem; }
.screen-reader-text {
  position: absolute; width: 0.0625rem; height: 0.0625rem;
  overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap;
}

/* =========================================================
   RECIPE TOP - FINAL FORCE OVERRIDE
   ========================================================= */
.single .single-recipe-layout .recipe-top,
.single-post .single-recipe-layout .recipe-top {
  display: flex !important;
  flex-direction: row !important;
  align-items: flex-start !important;
  justify-content: space-between !important;
  gap: 2rem !important;
  flex-wrap: nowrap !important;
}

.single .single-recipe-layout .recipe-top-content,
.single-post .single-recipe-layout .recipe-top-content {
  flex: 1 1 auto !important;
  min-width: 0 !important;
  max-width: calc(100% - 22rem) !important;
}

.single .single-recipe-layout .recipe-top .single-recipe-image,
.single-post .single-recipe-layout .recipe-top .single-recipe-image {
  flex: 0 0 20rem !important;
  width: 20rem !important;
  height: 20rem !important;
  margin-left: auto !important;
  margin-bottom: 0 !important;
  padding: 0.4rem !important;
  border: 0.125rem solid var(--green) !important;
  border-radius: var(--r-lg) !important;
  background: #fff !important;
  box-shadow: 0 0.75rem 1.75rem rgba(0, 0, 0, 0.1) !important;
  overflow: hidden !important;
  position: relative !important;
  transition: transform 220ms ease, box-shadow 220ms ease, border-color 220ms ease !important;
}

.single .single-recipe-layout .recipe-top .single-recipe-image img,
.single-post .single-recipe-layout .recipe-top .single-recipe-image img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center !important;
  border-radius: calc(var(--r-lg) - 0.25rem) !important;
}

.single .single-recipe-layout .recipe-top .single-recipe-image:hover,
.single-post .single-recipe-layout .recipe-top .single-recipe-image:hover {
  transform: translateY(-0.25rem) !important;
  border-color: var(--green) !important;
  box-shadow: 0 1rem 2.2rem rgba(0, 0, 0, 0.16) !important;
}

@media (max-width: 47.9375rem) {
  .single .single-recipe-layout .recipe-top,
  .single-post .single-recipe-layout .recipe-top {
    flex-direction: column !important;
  }

  .single .single-recipe-layout .recipe-top-content,
  .single-post .single-recipe-layout .recipe-top-content {
    max-width: 100% !important;
  }

  .single .single-recipe-layout .recipe-top .single-recipe-image,
  .single-post .single-recipe-layout .recipe-top .single-recipe-image {
    width: 100% !important;
    height: auto !important;
    flex: none !important;
  }
}

/* ═══════════════════════════════════════════════════════
   ORDER RECEIVED — FINAL THEME OVERRIDE
═══════════════════════════════════════════════════════ */
.woocommerce-order-received main.wp-block-group {
  padding-top: 1.25rem !important;
}

.woocommerce-order-received .wp-block-post-title,
.woocommerce-order-received .entry-title,
.woocommerce-order-received h1.page-title {
  color: var(--navy) !important;
  font-size: clamp(1.9rem, 3.8vw, 2.5rem) !important;
  font-weight: 900 !important;
  margin-bottom: 0.5rem !important;
}

.woocommerce-order-received .woocommerce-order {
  max-width: 60rem !important;
}

.woocommerce-order-received .woocommerce-thankyou-order-received {
  background: var(--green-lt) !important;
  border: 0.0625rem solid var(--green-mid) !important;
  border-left: 0.25rem solid var(--green) !important;
  border-radius: var(--r-sm) !important;
  padding: 0.875rem 1.125rem !important;
  color: var(--green-dk) !important;
  font-weight: 600 !important;
}

.woocommerce-order-received ul.woocommerce-order-overview,
.woocommerce-order-received .woocommerce-order-overview {
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr)) !important;
  gap: 0.75rem !important;
  margin: 0 0 1.5rem !important;
  padding: 0 !important;
}

.woocommerce-order-received ul.woocommerce-order-overview li,
.woocommerce-order-received .woocommerce-order-overview li {
  background: #fff !important;
  border: 0.0625rem solid var(--border) !important;
  border-top: 0.1875rem solid var(--green) !important;
  border-radius: var(--r-sm) !important;
  box-shadow: var(--sh-sm) !important;
  padding: 0.875rem 1rem !important;
  margin: 0 !important;
}

.woocommerce-order-received .woocommerce-order-details,
.woocommerce-order-received .woocommerce-customer-details {
  background: #fff !important;
  border: 0.0625rem solid var(--border) !important;
  border-radius: var(--r-md) !important;
  box-shadow: var(--sh-sm) !important;
  padding: 1.25rem !important;
  margin-bottom: 1rem !important;
}

.woocommerce-order-received .woocommerce-order-details h2,
.woocommerce-order-received .woocommerce-customer-details h2 {
  color: var(--navy) !important;
  border-bottom: 0.125rem solid var(--green-mid) !important;
  padding-bottom: 0.5rem !important;
  margin-bottom: 1rem !important;
}

.woocommerce-order-received .woocommerce-order-details table.shop_table thead,
.woocommerce-order-received table.shop_table.order_details thead {
  background: linear-gradient(135deg, var(--green-dk), var(--green)) !important;
}

.woocommerce-order-received .woocommerce-order-details table.shop_table thead th,
.woocommerce-order-received table.shop_table.order_details thead th {
  color: #fff !important;
  text-transform: uppercase !important;
  letter-spacing: 0.05em !important;
  font-size: var(--fs-xs) !important;
}

.woocommerce-order-received .woocommerce-customer-details address {
  background: var(--surface) !important;
  border: 0.0625rem solid var(--border) !important;
  border-radius: var(--r-sm) !important;
  padding: 1rem 1.125rem !important;
}

.wc-block-order-confirmation-billing-wrapper .wp-block-heading {
  margin-bottom: 1.7rem;
}

/* Order confirmation (Blocks) — smaller type + themed cards */
.woocommerce-order-received .wc-block-order-confirmation-status .wp-block-heading,
.woocommerce-order-received .wc-block-order-confirmation-status h1,
.woocommerce-order-received .wc-block-order-confirmation-status h2,
.woocommerce-order-received .wp-block-post-title,
.woocommerce-order-received h1.page-title {
  font-size: clamp(1.7rem, 3vw, 2.15rem) !important;
  line-height: 1.15 !important;
}

.woocommerce-order-received .wc-block-order-confirmation-totals-wrapper .wp-block-heading,
.woocommerce-order-received .wc-block-order-confirmation-billing-wrapper .wp-block-heading,
.woocommerce-order-received .wc-block-order-confirmation-shipping-wrapper .wp-block-heading,
.woocommerce-order-received .woocommerce-order-details h2,
.woocommerce-order-received .woocommerce-customer-details h2 {
  font-size: clamp(1.35rem, 2.2vw, 1.85rem) !important;
  line-height: 1.2 !important;
  color: var(--navy) !important;
}

.woocommerce-order-received .wc-block-order-confirmation-summary-list {
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr)) !important;
  gap: 0.75rem !important;
  margin: 0 0 1.25rem !important;
}

.woocommerce-order-received .wc-block-order-confirmation-summary-list-item {
  background: #fff !important;
  border: 0.0625rem solid var(--border) !important;
  border-top: 0.1875rem solid var(--green) !important;
  border-radius: var(--r-sm) !important;
  padding: 0.875rem 1rem !important;
  box-shadow: var(--sh-sm) !important;
  min-width: 0 !important;
  overflow-wrap: anywhere !important;
  word-break: break-word !important;
}

.woocommerce-order-received .wc-block-order-confirmation-summary-list-item *,
.woocommerce-order-received .woocommerce-order-overview li,
.woocommerce-order-received .woocommerce-order-overview li strong,
.woocommerce-order-received .woocommerce-order-overview li .amount {
  overflow-wrap: anywhere !important;
  word-break: break-word !important;
}

.woocommerce-order-received .wc-block-order-confirmation-totals-wrapper,
.woocommerce-order-received .wc-block-order-confirmation-billing-wrapper,
.woocommerce-order-received .wc-block-order-confirmation-shipping-wrapper {
  background: #fff !important;
  border: 0.0625rem solid var(--border) !important;
  border-radius: var(--r-md) !important;
  box-shadow: var(--sh-sm) !important;
  padding: 1.125rem 1.25rem !important;
  margin-bottom: 1rem !important;
}

.woocommerce-order-received .wc-block-order-confirmation-totals-wrapper table,
.woocommerce-order-received .wc-block-order-confirmation-totals-wrapper .shop_table {
  width: 100% !important;
  border-collapse: collapse !important;
}

.woocommerce-order-received .wc-block-order-confirmation-totals-wrapper th,
.woocommerce-order-received .wc-block-order-confirmation-totals-wrapper td {
  font-size: var(--fs-sm) !important;
  padding: 0.7rem 0.8rem !important;
  border-bottom: 0.0625rem solid var(--border) !important;
}

.woocommerce-order-received .wc-block-order-confirmation-totals-wrapper thead th {
  background: linear-gradient(135deg, var(--green-dk), var(--green)) !important;
  color: #fff !important;
  text-transform: uppercase !important;
  letter-spacing: 0.05em !important;
  font-size: var(--fs-xs) !important;
}

.woocommerce-order-received .wc-block-order-confirmation-totals-wrapper tr:last-child th,
.woocommerce-order-received .wc-block-order-confirmation-totals-wrapper tr:last-child td {
  border-bottom: none !important;
}

.woocommerce-order-received .wc-block-order-confirmation-totals-wrapper .woocommerce-Price-amount,
.woocommerce-order-received .wc-block-order-confirmation-summary-list .woocommerce-Price-amount {
  color: var(--green) !important;
  font-weight: 700 !important;
}

@media (max-width: 48rem) {
  .woocommerce-order-received ul.woocommerce-order-overview,
  .woocommerce-order-received .woocommerce-order-overview {
    grid-template-columns: 1fr 1fr !important;
  }

  .woocommerce-order-received .woocommerce-order-details,
  .woocommerce-order-received .woocommerce-customer-details {
    padding: 1rem !important;
  }
}

/* ═══════════════════════════════════════════════════════
   SITEWIDE COLOUR ENHANCEMENT
   Amber accent · Navy depth · Coral highlights · Teal touches
═══════════════════════════════════════════════════════ */

/* ── Sidebar nav ── */
.phase1-nav {
  background: linear-gradient(180deg, #0f2a1e 0%, #1a3a28 60%, #0f2a1e 100%) !important;
  border-right: 1px solid rgba(58,170,53,0.2) !important;
}

.phase1-nav a {
  color: #d1e8cc !important;
}

.phase1-nav a:hover,
.phase1-nav .current-menu-item a,
.phase1-nav li.current_page_item a {
  color: #ffffff !important;
  background: rgba(58,170,53,0.18) !important;
  border-radius: var(--r-sm) !important;
}

.phase1-nav .nav-icon {
  filter: brightness(0) invert(0.7) !important;
}

.phase1-nav a:hover .nav-icon,
.phase1-nav .current-menu-item .nav-icon {
  filter: brightness(0) invert(1) !important;
}

/* ── Top header bar ── */
.phase1-topbar,
header.wp-block-template-part {
  background: #ffffff !important;
  border-bottom: 2px solid var(--green-lt) !important;
  box-shadow: 0 2px 12px rgba(30,58,95,0.07) !important;
}

/* ── Page headings (h1, h2 on non-recipe pages) ── */
.wp-block-post-title:not(.single-recipes .wp-block-post-title),
.entry-title,
.page-title {
  color: var(--navy) !important;
}

h2.wp-block-heading,
h3.wp-block-heading {
  color: var(--navy) !important;
}

/* Section-level h2 headings — consistent sizing and spacing */
main h2.wp-block-heading {
  font-size: clamp(1.6rem, 3vw, 2.25rem) !important;
  font-weight: 800 !important;
  margin-bottom: 0.5rem !important;
  letter-spacing: -0.03em !important;
}
main h2.wp-block-heading + p,
main h2.wp-block-heading + .wp-block-paragraph {
  color: var(--muted) !important;
  font-size: var(--fs-md) !important;
  margin-top: 0.5rem !important;
  margin-bottom: 1.75rem !important;
}

/* ── Home hero — override block (canonical rules are above in HOME HERO section) ── */
/* All hero layout/image/text rules live in the HOME HERO section ~line 522.
   Only button style tweaks go here. */
.home-hero .wp-block-buttons .wp-block-button__link {
  box-shadow: 0 0.375rem 1.25rem rgba(0, 0, 0, 0.28) !important;
}
.home-hero .wp-block-buttons .wp-block-button:last-child .wp-block-button__link {
  background: var(--amber) !important;
  color: #ffffff !important;
  border: 0.125rem solid var(--amber) !important;
}
.home-hero .wp-block-buttons .wp-block-button:last-child .wp-block-button__link:hover {
  background: var(--green-dk) !important;
  border-color: var(--green-dk) !important;
}

/* ── "Why Us" section — subtle green tinted background strip ── */
.home-feature-grid.wp-block-columns {
  background: var(--green-lt) !important;
  border-radius: var(--r-lg) !important;
  padding: 2rem !important;
}

/* Feature card colours: green / amber / teal */
.feature-card:nth-child(1) {
  border-top: 3px solid var(--green) !important;
  background: #fff !important;
}
.feature-card:nth-child(1) h3 {
  color: var(--green-dk) !important;
  text-shadow: 0 1px 4px rgba(45, 136, 41, 0.18) !important;
}

.feature-card:nth-child(2) {
  border-top: 3px solid var(--amber) !important;
  background: #fff !important;
}
.feature-card:nth-child(2) h3 {
  color: var(--amber-dk) !important;
  text-shadow: 0 1px 4px rgba(217, 119, 6, 0.18) !important;
}

.feature-card:nth-child(3) {
  border-top: 3px solid var(--teal) !important;
  background: #fff !important;
}
.feature-card:nth-child(3) h3 {
  color: var(--teal) !important;
  text-shadow: 0 1px 4px rgba(13, 148, 136, 0.18) !important;
}

.feature-card {
  transition: transform 220ms ease, box-shadow 220ms ease !important;
}
.feature-card:hover {
  transform: translateY(-4px) !important;
  box-shadow: var(--sh-lg) !important;
}

/* ── "Shop by Category" section — warm amber-lt strip ── */
.home-categories-grid.wp-block-columns {
  background: var(--amber-lt) !important;
  border-radius: var(--r-lg) !important;
  padding: 2rem !important;
}

/* Category cards: distinct soft colour each */
.category-card:nth-child(1) {
  border-top: 3px solid var(--green) !important;
  background: linear-gradient(160deg, #fff, var(--green-lt)) !important;
}
.category-card:nth-child(1) h3 {
  color: var(--green-dk) !important;
  text-shadow: 0 1px 4px rgba(45, 136, 41, 0.18) !important;
}

.category-card:nth-child(2) {
  border-top: 3px solid var(--amber) !important;
  background: linear-gradient(160deg, #fff, var(--amber-lt)) !important;
}
.category-card:nth-child(2) h3 {
  color: var(--amber-dk) !important;
  text-shadow: 0 1px 4px rgba(217, 119, 6, 0.18) !important;
}

.category-card:nth-child(3) {
  border-top: 3px solid var(--navy) !important;
  background: linear-gradient(160deg, #fff, var(--navy-lt)) !important;
}
.category-card:nth-child(3) h3 {
  color: var(--navy) !important;
  text-shadow: 0 1px 4px rgba(30, 58, 95, 0.18) !important;
}

.category-card {
  transition: transform 220ms ease, box-shadow 220ms ease !important;
}
.category-card:hover {
  transform: translateY(-4px) !important;
  box-shadow: var(--sh-lg) !important;
}

/* ── "Latest Grocery Tips" section — navy-lt tinted strip ── */
.home-latest-posts.wp-block-query {
  background: var(--navy-lt) !important;
  border-radius: var(--r-lg) !important;
  padding: 2rem !important;
}

/* Section title accent bar above centered headings */
.section-title.has-text-align-center,
h2.section-title {
  display: table !important;
  position: relative !important;
  margin-left: auto !important;
  margin-right: auto !important;
  text-align: center !important;
}
h2.section-title::after {
  content: none !important;
}

/* ── Shop product cards ── */
.woocommerce ul.products li.product,
li.product,
.wp-block-woocommerce-product-collection ul.wp-block-post-template > li {
  border-radius: var(--r-md) !important;
  border: 1.5px solid var(--border) !important;
  background: #ffffff !important;
  transition: transform 220ms ease, box-shadow 220ms ease, border-color 220ms ease !important;
  overflow: hidden !important;
}

.woocommerce ul.products li.product:nth-child(3n+1),
li.product:nth-child(3n+1) {
  border-top: 3px solid var(--green) !important;
}

.woocommerce ul.products li.product:nth-child(3n+2),
li.product:nth-child(3n+2) {
  border-top: 3px solid var(--amber) !important;
}

.woocommerce ul.products li.product:nth-child(3n+3),
li.product:nth-child(3n+3) {
  border-top: 3px solid var(--teal) !important;
}

/* ADD TO CART button — amber on hover for contrast */
.woocommerce ul.products li.product .button:hover,
.wp-block-button__link:hover,
a.add_to_cart_button:hover,
button.add_to_cart_button:hover {
  background: var(--amber-dk) !important;
  border-color: var(--amber-dk) !important;
  box-shadow: 0 4px 14px rgba(245,158,11,0.35) !important;
}

/* ── Blog cards ── */
.wp-block-post-template li.wp-block-post,
.blog-card,
ul.wp-block-post-template > li {
  border-radius: var(--r-md) !important;
  border: 1.5px solid var(--border) !important;
  background: #ffffff !important;
  overflow: hidden !important;
  transition: transform 220ms ease, box-shadow 220ms ease, border-color 220ms ease !important;
}

.wp-block-post-template li.wp-block-post:hover,
ul.wp-block-post-template > li:hover {
  transform: translateY(-4px) !important;
  box-shadow: 0 12px 30px rgba(30,58,95,0.12) !important;
  border-color: var(--amber-mid) !important;
}

/* Blog post title on hover — amber */
.wp-block-post-template li.wp-block-post:hover .wp-block-post-title a,
ul.wp-block-post-template > li:hover .wp-block-post-title,
ul.wp-block-post-template > li:hover h2,
ul.wp-block-post-template > li:hover h3 {
  color: var(--amber-dk) !important;
}

/* ── Contact page ── */
.contact-card,
.wp-block-group:has(.contact-card) {
  border-radius: var(--r-lg) !important;
}

/* Contact info card — navy tinted */
.contact-card:first-of-type,
.page-contact .wp-block-group > .wp-block-group:first-of-type {
  background: linear-gradient(135deg, var(--navy-lt), #ffffff) !important;
  border-left: 4px solid var(--navy) !important;
}

/* Contact form card — amber tinted */
.contact-card:last-of-type,
.page-contact .wp-block-group > .wp-block-group:last-of-type {
  background: linear-gradient(135deg, var(--amber-lt), #ffffff) !important;
  border-left: 4px solid var(--amber) !important;
}

/* Contact form inputs focus */
.wpcf7 input:focus,
.wpcf7 textarea:focus,
.wpcf7 select:focus {
  border-color: var(--amber) !important;
  box-shadow: 0 0 0 3px rgba(245,158,11,0.15) !important;
  outline: none !important;
}

/* Contact submit button — amber */
.wpcf7 input[type="submit"],
.wpcf7 .wpcf7-submit {
  background: var(--amber) !important;
  color: #ffffff !important;
  border: none !important;
  border-radius: var(--r-pill) !important;
  padding: 0.75rem 2rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.02em !important;
  transition: background 220ms ease, box-shadow 220ms ease, transform 220ms ease !important;
  cursor: pointer !important;
}

.wpcf7 input[type="submit"]:hover,
.wpcf7 .wpcf7-submit:hover {
  background: var(--amber-dk) !important;
  box-shadow: 0 6px 18px rgba(245,158,11,0.35) !important;
  transform: translateY(-2px) !important;
}

/* ── Cart page ── */
.woocommerce-cart-form {
  border-radius: var(--r-lg) !important;
  border: 1.5px solid var(--border) !important;
  background: #ffffff !important;
}

.woocommerce-cart-form thead {
  background: linear-gradient(135deg, var(--green-dk), var(--green)) !important;
  color: #ffffff !important;
}

.woocommerce-cart-form thead th {
  color: #ffffff !important;
  border-bottom: 0.0625rem solid color-mix(in srgb, var(--green-mid) 75%, #ffffff) !important;
  font-weight: 700 !important;
  letter-spacing: 0.05em !important;
  font-size: var(--fs-xs) !important;
  text-transform: uppercase !important;
}

.cart_totals {
  border-radius: var(--r-lg) !important;
  border: 1.5px solid var(--green-mid) !important;
  background: linear-gradient(160deg, var(--green-lt), #ffffff) !important;
}

.cart_totals h2 {
  color: var(--navy) !important;
  border-bottom-color: var(--green) !important;
}

/* Proceed to checkout — green (matches site primary CTA) */
.wc-proceed-to-checkout .checkout-button,
a.checkout-button {
  background: var(--green) !important;
  border-color: var(--green) !important;
  transition: background 220ms ease, box-shadow 220ms ease, transform 220ms ease !important;
}

.wc-proceed-to-checkout .checkout-button:hover,
a.checkout-button:hover {
  background: var(--green-dk) !important;
  border-color: var(--green-dk) !important;
  box-shadow: 0 6px 20px rgba(58,170,53,0.35) !important;
  transform: translateY(-2px) !important;
}

/* ── Page section headings — no asymmetric padding ── */
.wp-block-heading.has-text-align-center,
h2.wp-block-heading {
  position: relative !important;
  padding-left: 0 !important;
}

/* ── Footer ── */
footer.wp-block-template-part,
.wp-block-template-part[data-slug="footer"],
footer {
  /* background: linear-gradient(180deg, #0f2a1e 0%, #0a1f15 100%) !important; */
  color: #c8e6c0 !important;
  /* border-top: 3px solid var(--green) !important; */
}

footer h2, footer h3, footer h4,
footer .wp-block-heading {
  color: #ffffff !important;
}

footer a {
  color: #a3d99a !important;
  transition: color 200ms ease !important;
}

footer a:hover {
  color: var(--amber) !important;
}

footer p, footer li {
  color: #9dbf95 !important;
}

/* ── Breadcrumb ── */
.woocommerce-breadcrumb,
.breadcrumb {
  background: var(--navy-lt) !important;
  padding: 0.5rem 1rem !important;
  border-radius: var(--r-sm) !important;
  font-size: var(--fs-sm) !important;
  color: var(--navy) !important;
  display: inline-block !important;
}

.woocommerce-breadcrumb a {
  color: var(--navy) !important;
  font-weight: 600 !important;
}

.woocommerce-breadcrumb a:hover {
  color: var(--amber-dk) !important;
}

/* ── Coupon / update cart buttons ── */
.woocommerce .coupon .button,
.woocommerce button[name="apply_coupon"] {
  background: var(--teal) !important;
  border-color: var(--teal) !important;
  color: #ffffff !important;
  transition: background 220ms ease, box-shadow 220ms ease !important;
}

.woocommerce .coupon .button:hover,
.woocommerce button[name="apply_coupon"]:hover {
  background: var(--teal) !important;
  filter: brightness(0.9) !important;
  box-shadow: 0 4px 12px rgba(13,148,136,0.3) !important;
}

.woocommerce button[name="update_cart"] {
  background: transparent !important;
  border: 2px solid var(--navy) !important;
  color: var(--navy) !important;
  transition: background 220ms ease, color 220ms ease !important;
}

.woocommerce button[name="update_cart"]:hover {
  background: var(--navy) !important;
  color: #ffffff !important;
}

/* ── Sidebar active nav item indicator ── */
.phase1-nav li.current-menu-item,
.phase1-nav li.current_page_item {
  border-left: 3px solid var(--amber) !important;
  padding-left: 0 !important;
}

/* ── Horizontal rule / dividers ── */
hr.wp-block-separator {
  border-color: var(--green-mid) !important;
  opacity: 1 !important;
}

/* ── Price tag accent ── */
.woocommerce-Price-amount bdi,
.price bdi {
  color: var(--green-dk) !important;
  font-weight: 800 !important;
}


/* ═══════════════════════════════════════════════════════
   TYPOGRAPHY SYSTEM
   Body     → Inter   (highly legible, modern)
   Headings → Poppins (bold, geometric hierarchy)
   UI/meta  → Roboto  (clean labels, nav, captions)
═══════════════════════════════════════════════════════ */

/* ── Base body font ── */
body, p, li, td, input, textarea, select {
  font-family: var(--font-body) !important;
}

/* ── All headings → Poppins ── */
h1, h2, h3, h4, h5, h6,
.wp-block-heading,
.wp-block-post-title,
.entry-title,
.page-title,
.woocommerce-loop-product__title,
.product_title,
.cart_totals h2,
.woocommerce-cart-form h2 {
  font-family: var(--font-heading) !important;
  font-weight: 700 !important;
  letter-spacing: -0.02em !important;
  line-height: 1.2 !important;
}

/* ── Default heading alignment: left
   Hero/marketing sections may override with text-align: center ── */
h1:not(.has-text-align-center):not(.blog-archive-title):not(.shop-title),
h2:not(.has-text-align-center):not(.blog-archive-title):not(.shop-title),
h3:not(.has-text-align-center),
h4:not(.has-text-align-center),
h5:not(.has-text-align-center),
h6:not(.has-text-align-center),
.entry-title,
.page-title,
.woocommerce-loop-product__title,
.product_title {
  text-align: center !important;
}

/* ── Nav links → Roboto ── */
.phase1-nav a,
.phase1-nav li,
.wp-block-navigation a,
.wp-block-navigation li {
  font-family: var(--font-ui) !important;
  font-size: 1rem !important;
  font-weight: 500 !important;
  letter-spacing: 0.01em !important;
}

/* ── Buttons → Poppins ── */
.wp-block-button__link,
button,
.button,
input[type="submit"],
a.button {
  font-family: var(--font-ui) !important;
  font-weight: 600 !important;
  letter-spacing: 0.03em !important;
}

/* ── Prices → Poppins ── */
.woocommerce-Price-amount,
.price {
  font-family: var(--font-ui) !important;
  font-weight: 700 !important;
}

/* ── Blog meta (date, category) → Roboto italic ── */
.wp-block-post-date,
.wp-block-post-terms,
time {
  font-family: var(--font-body) !important;
  font-style: italic !important;
  font-size: 0.95rem !important;
  color: var(--muted) !important;
}

/* ── Form labels & table headers → Poppins ── */
label, .wpcf7 label, th {
  font-family: var(--font-ui) !important;
  font-weight: 600 !important;
  font-size: 0.9rem !important;
  letter-spacing: 0.04em !important;
  text-transform: uppercase !important;
}

/* ── Excerpts → Inter, slightly larger ── */
.wp-block-post-excerpt__excerpt,
.wp-block-post-excerpt p {
  font-family: var(--font-body) !important;
  font-size: 1.1rem !important;
  line-height: 1.8 !important;
  padding-left: 1.5rem;
  padding-right: 1.5rem;
}

/* ── Blockquotes → Roboto italic ── */
blockquote, .wp-block-quote {
  font-family: var(--font-ui) !important;
  font-style: italic !important;
  font-size: 1.35rem !important;
  color: var(--navy) !important;
  border-left: 4px solid var(--amber) !important;
  padding-left: 1.25rem !important;
}

/* ── Back button — shared base for legal, blog, and single post pages ── */
.phase1-back-btn {
  position: relative !important;
  top: auto !important;
  left: auto !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 0.4rem !important;
  font-family: var(--font-ui) !important;
  font-size: 0.85rem !important;
  font-weight: 600 !important;
  color: var(--navy) !important;
  background: #fff !important;
  border: 0.0625rem solid var(--border) !important;
  border-radius: var(--r-pill) !important;
  padding: 0.4rem 0.9rem !important;
  text-decoration: none !important;
  box-shadow: var(--sh-sm) !important;
  transition: background 200ms ease, color 200ms ease, border-color 200ms ease, box-shadow 200ms ease, transform 200ms ease !important;
  z-index: 999 !important;
  margin-left: .4rem;
}

.phase1-back-btn:hover {
  background: var(--navy) !important;
  color: #fff !important;
  border-color: var(--navy) !important;
  box-shadow: 0 0.25rem 0.75rem rgba(30,58,95,0.2) !important;
  transform: translateX(-0.15rem) !important;
}

/* Blog / single post variant — amber accent instead of navy */
.phase1-back-btn--blog {
  color: var(--amber-dk) !important;
  border-color: var(--amber-mid) !important;
}
.phase1-back-btn--blog:hover {
  background: var(--amber-dk) !important;
  color: #fff !important;
  border-color: var(--amber-dk) !important;
  box-shadow: 0 0.25rem 0.75rem rgba(217,119,6,0.2) !important;
}

/* On mobile, back button keeps relative flow — no offset needed */
@media (max-width: 48rem) {
  .phase1-back-btn {
    left: auto !important;
    top: auto !important;
  }
}

/* ═══════════════════════════════════════════════════════
   ALL RECIPE PAGES — Poppins bold green gradient title
═══════════════════════════════════════════════════════ */
.single-recipes .single-recipe-title {
  font-family: var(--font-heading) !important;
  font-weight: 900 !important;
  font-style: normal !important;
  font-size: clamp(2.2rem, 4.5vw, 3.5rem) !important;
  line-height: 1.1 !important;
  letter-spacing: -0.01em !important;
  background: linear-gradient(135deg, #0d7a5f 0%, #3aaa35 50%, #7ec84a 100%) !important;
  -webkit-background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  background-clip: text !important;
  text-shadow: none !important;
  border-radius: 0 !important;
  background-color: transparent !important;
  /* padding: 0 0 0 1.25rem !important; */
  display: inline !important;
  position: relative !important;
}

@media (max-width: 47.9rem) {
  .single-recipes .single-recipe-title,
  .single-post .single-recipe-title,
  .single .single-recipe-title {
    font-size: clamp(1.45rem, 7.2vw, 1.95rem) !important;
    line-height: 1.18 !important;
    letter-spacing: -0.01em !important;
    display: block !important;
    white-space: normal !important;
    word-break: normal !important;
    overflow-wrap: normal !important;
    margin: 0 0 0.75rem !important;
  }
}

/* ═══════════════════════════════════════════════════════
   RECIPE PAGE — content box with margin
═══════════════════════════════════════════════════════ */
.single-recipes .entry-content.wp-block-post-content {
  max-width: 52rem !important;
  margin: 1.5rem auto 3rem !important;
  background: #ffffff !important;
  border: 0.0625rem solid var(--border) !important;
  border-top: 3px solid var(--green) !important;
  border-radius: var(--r-lg) !important;
  padding: 2.25rem 2.75rem !important;
  box-shadow: 0 0.25rem 1.25rem rgba(0,0,0,0.06) !important;
}

.single-recipes .entry-content.wp-block-post-content:hover {
  box-shadow: 0 0.5rem 2rem rgba(58,170,53,0.1) !important;
  border-color: var(--green-mid) !important;
  border-top-color: var(--green) !important;
}

/* ═══════════════════════════════════════════════════════
   SINGLE PRODUCT PAGE
═══════════════════════════════════════════════════════ */

/* ── Overall layout wrapper ── */
.single-product .wp-block-woocommerce-product-image-gallery,
.single-product .woocommerce-product-gallery {
  max-width: 100% !important;
}

/* ── Fix image gallery white space — fit to image ── */
.single-product .woocommerce-product-gallery {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
}

.single-product .woocommerce-product-gallery__wrapper {
  margin: 0 !important;
}

.single-product .woocommerce-product-gallery .woocommerce-product-gallery__image {
  background: transparent !important;
  border-radius: var(--r-lg) !important;
  overflow: hidden !important;
}

.single-product .woocommerce-product-gallery .woocommerce-product-gallery__image a,
.single-product .woocommerce-product-gallery .woocommerce-product-gallery__image img {
  display: block !important;
  width: 100% !important;
  height: auto !important;
  aspect-ratio: auto !important;
  border-radius: var(--r-lg) !important;
  object-fit: cover !important;
}

/* Remove empty thumbnail strip whitespace */
.single-product .flex-viewport {
  border-radius: var(--r-lg) !important;
  overflow: hidden !important;
  height: auto !important;
  min-height: 0 !important;
}

.single-product ol.flex-control-nav.flex-control-thumbs {
  margin-top: 0.5rem !important;
}

/* ── Product title ── */
.single-product .product_title,
.single-product h1.product_title {
  font-family: var(--font-heading) !important;
  font-size: clamp(1.75rem, 3vw, 2.5rem) !important;
  font-weight: 900 !important;
  color: var(--navy) !important;
  letter-spacing: -0.02em !important;
  line-height: 1.15 !important;
  margin-bottom: 0.75rem !important;
}

/* ── Price ── */
.single-product .woocommerce-Price-amount,
.single-product p.price {
  font-family: var(--font-ui) !important;
  font-size: 1.75rem !important;
  font-weight: 800 !important;
  color: var(--green) !important;
  display: block !important;
  margin-bottom: 1rem !important;
}

/* ── Short description ── */
.single-product .woocommerce-product-details__short-description,
.single-product .single-product-price-note {
  font-family: var(--font-body) !important;
  font-size: 1.05rem !important;
  font-style: italic !important;
  color: var(--muted) !important;
  line-height: 1.7 !important;
  margin-bottom: 1.5rem !important;
  padding-bottom: 1.25rem !important;
  border-bottom: 0.0625rem solid var(--border) !important;
}

/* ── Quantity + Add to cart row ── */
.single-product form.cart,
.single-product .wc-block-add-to-cart-form form.cart {
  display: flex !important;
  align-items: center !important;
  gap: 1rem !important;
  flex-wrap: wrap !important;
  margin-top: 1.5rem !important;
}

/* Quantity stepper */
.single-product .wc-block-components-quantity-selector,
.single-product .quantity {
  display: inline-flex !important;
  align-items: center !important;
  border: 0.125rem solid var(--border) !important;
  border-radius: var(--r-pill) !important;
  overflow: hidden !important;
  background: #fff !important;
  height: 3rem !important;
  transition: border-color 200ms ease !important;
}

.single-product .wc-block-components-quantity-selector:focus-within,
.single-product .quantity:focus-within {
  border-color: var(--green) !important;
}

.single-product .wc-block-components-quantity-selector__button,
.single-product .quantity button {
  background: var(--surface-2) !important;
  border: none !important;
  width: 2.5rem !important;
  height: 100% !important;
  font-size: 1.1rem !important;
  font-weight: 700 !important;
  color: var(--text) !important;
  cursor: pointer !important;
  transition: background 180ms ease, color 180ms ease !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}

.single-product .wc-block-components-quantity-selector__button:hover,
.single-product .quantity button:hover {
  background: var(--green) !important;
  color: #fff !important;
}

.single-product .wc-block-components-quantity-selector__input,
.single-product .quantity input.qty {
  border: none !important;
  width: 3rem !important;
  text-align: center !important;
  font-family: var(--font-ui) !important;
  font-size: 1rem !important;
  font-weight: 600 !important;
  background: transparent !important;
  outline: none !important;
}

/* Add to cart button */
.single-product .single_add_to_cart_button,
.single-product button.single_add_to_cart_button {
  font-family: var(--font-ui) !important;
  font-weight: 700 !important;
  font-size: 0.95rem !important;
  letter-spacing: 0.06em !important;
  text-transform: uppercase !important;
  background: var(--green) !important;
  color: #fff !important;
  border: none !important;
  border-radius: var(--r-pill) !important;
  padding: 0.85rem 2.25rem !important;
  height: 3rem !important;
  cursor: pointer !important;
  transition: background 220ms ease, box-shadow 220ms ease, transform 220ms ease !important;
  flex: 1 !important;
  max-width: 18rem !important;
}

.single-product .single_add_to_cart_button:hover {
  background: var(--green-dk) !important;
  box-shadow: 0 0.375rem 1.25rem rgba(58,170,53,0.35) !important;
  transform: translateY(-0.125rem) !important;
}

/* ── Tabs (Description / Reviews) ── */
.single-product .woocommerce-tabs {
  margin-top: 2.5rem !important;
  border-top: 0.125rem solid var(--border) !important;
  padding-top: 0 !important;
}

.single-product .woocommerce-tabs ul.tabs {
  display: flex !important;
  gap: 0 !important;
  padding: 0 !important;
  margin: 0 0 1.5rem !important;
  border-bottom: 0.125rem solid var(--border) !important;
  list-style: none !important;
}

.single-product .woocommerce-tabs ul.tabs li {
  list-style: none !important;
  margin: 0 !important;
}

.single-product .woocommerce-tabs ul.tabs li a {
  display: block !important;
  font-family: var(--font-ui) !important;
  font-size: 0.9rem !important;
  font-weight: 600 !important;
  color: var(--muted) !important;
  padding: 0.75rem 1.5rem !important;
  border-bottom: 2px solid transparent !important;
  margin-bottom: -0.125rem !important;
  transition: color 180ms ease, border-color 180ms ease !important;
}

.single-product .woocommerce-tabs ul.tabs li.active a,
.single-product .woocommerce-tabs ul.tabs li a:hover {
  color: var(--green) !important;
  border-bottom-color: var(--green) !important;
}

.single-product .woocommerce-tabs .panel {
  font-family: var(--font-body) !important;
  font-size: 1rem !important;
  line-height: 1.8 !important;
  color: var(--text) !important;
}

.single-product .woocommerce-tabs .panel h2 {
  font-family: var(--font-heading) !important;
  font-size: 1.4rem !important;
  color: var(--navy) !important;
  margin-bottom: 0.75rem !important;
}

/* ── Product gallery — remove white space + box ── */
.single-product .woocommerce-product-gallery {
  border: none !important;
  box-shadow: none !important;
  background: transparent !important;
  border-radius: 0 !important;
}

.single-product .woocommerce-product-gallery .flex-viewport {
  border-radius: var(--r-lg) !important;
  overflow: hidden !important;
  line-height: 0 !important;
}

.single-product .woocommerce-product-gallery__wrapper {
  margin: 0 !important;
  line-height: 0 !important;
}

.single-product .woocommerce-product-gallery__image {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  line-height: 0 !important;
  font-size: 0 !important;
}

.single-product .woocommerce-product-gallery__image a {
  display: block !important;
  line-height: 0 !important;
}

.single-product .woocommerce-product-gallery__image img {
  width: 100% !important;
  height: auto !important;
  display: block !important;
  border-radius: var(--r-lg) !important;
  object-fit: cover !important;
  line-height: 0 !important;
}

/* Remove the outer box/card around the gallery block */
.single-product .wp-block-woocommerce-product-image-gallery {
  border: none !important;
  box-shadow: none !important;
  background: transparent !important;
  padding: 0 !important;
  border-radius: 0 !important;
}

/* ═══════════════════════════════════════════════════════
   SINGLE BLOG POST — styled layout
   body.single-post using single.html template
═══════════════════════════════════════════════════════ */

/* ── Top section: title left, image right ── */
.single-post .single-recipe-layout {
  max-width: 75rem !important;
  margin: 0 auto !important;
}

.single-post .recipe-top {
  display: flex !important;
  flex-direction: row !important;
  align-items: flex-start !important;
  justify-content: space-between !important;
  gap: 3rem !important;
  padding: 2rem 0 2.5rem !important;
  border-bottom: 0.0625rem solid var(--border) !important;
  margin-bottom: 2rem !important;
}

.single-post .recipe-top-content {
  flex: 1 1 auto !important;
  max-width: 55% !important;
  padding: 0 !important;
}

/* ── Title ── */
.single-post .single-recipe-title {
  font-family: var(--font-heading) !important;
  font-size: clamp(2.2rem, 4vw, 3.2rem) !important;
  font-weight: 900 !important;
  line-height: 1.1 !important;
  letter-spacing: -0.025em !important;
  color: var(--navy) !important;
  margin-bottom: 1.25rem !important;
  text-shadow: none !important;
  background: none !important;
  border-radius: 0 !important;
  padding: 0 !important;
  display: block !important;
  -webkit-text-fill-color: var(--navy) !important;
}

/* Amber underline accent */
.single-post .single-recipe-title::after {
  content: "" !important;
  display: block !important;
  width: 4rem !important;
  height: 0.25rem !important;
  background: linear-gradient(90deg, var(--amber) 0%, color-mix(in srgb, var(--amber) 30%, transparent) 100%) !important;
  border-radius: 999px !important;
  margin-top: 0.75rem !important;
  position: static !important;
}

/* ── Excerpt ── */
.single-post .single-recipe-excerpt p,
.single-post .wp-block-post-excerpt__excerpt {
  font-family: var(--font-body) !important;
  font-size: 1.05rem !important;
  line-height: 1.8 !important;
  color: var(--muted) !important;
  font-style: normal !important;
}

/* ── Featured image ── */
.single-post .single-recipe-image {
  flex: 0 0 38% !important;
  width: 38% !important;
  max-width: 26rem !important;
  border-radius: var(--r-lg) !important;
  overflow: hidden !important;
  box-shadow: var(--sh-lg) !important;
  border: none !important;
  background: transparent !important;
  padding: 0 !important;
  height: auto !important;
  aspect-ratio: 4/3 !important;
  transition: transform 300ms ease, box-shadow 300ms ease !important;
}

.single-post .single-recipe-image:hover {
  transform: translateY(-0.3rem) !important;
  box-shadow: 0 1.5rem 3rem rgba(0,0,0,0.15) !important;
}

.single-post .single-recipe-image img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  border-radius: var(--r-lg) !important;
  display: block !important;
}

/* ── Post meta bar (date, category) ── */
.single-post .single-recipe-layout .wp-block-post-date,
.single-post .single-recipe-layout time {
  font-family: var(--font-ui) !important;
  font-size: 0.82rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.06em !important;
  text-transform: uppercase !important;
  color: var(--amber-dk) !important;
  font-style: normal !important;
  display: block !important;
  margin-bottom: 0.75rem !important;
}

/* ── Content body ── */
.single-post .single-recipe-content,
.single-post .entry-content.single-recipe-content {
  max-width: 52rem !important;
  background: #fff !important;
  border: 0.0625rem solid var(--border) !important;
  border-top: 3px solid var(--amber) !important;
  border-radius: var(--r-lg) !important;
  padding: 2.25rem 2.75rem !important;
  box-shadow: 0 0.25rem 1.25rem rgba(0,0,0,0.05) !important;
  margin: 0 auto !important;
}

.single-post .single-recipe-content:hover {
  box-shadow: 0 0.5rem 2rem rgba(245,158,11,0.08) !important;
  border-color: var(--border) !important;
  border-top-color: var(--amber) !important;
}

.single-post .single-recipe-content h2 {
  font-family: var(--font-heading) !important;
  font-size: 1.5rem !important;
  font-weight: 800 !important;
  color: var(--navy) !important;
  margin: 1.75rem 0 0.75rem !important;
  padding-bottom: 0.4rem !important;
  border-bottom: 0.0625rem solid var(--border) !important;
}

.single-post .single-recipe-content p {
  font-family: var(--font-body) !important;
  font-size: 1.05rem !important;
  line-height: 1.85 !important;
  color: #374151 !important;
  margin-bottom: 1.1rem !important;
}

.single-post .single-recipe-content ul,
.single-post .single-recipe-content ol {
  padding-left: 1.5rem !important;
  margin-bottom: 1.1rem !important;
}

.single-post .single-recipe-content .wp-block-group {
  clear: both !important;
  width: min(100%, 44rem) !important;
  margin-left: auto !important;
  margin-right: auto !important;
  margin-top: 1.25rem !important;
}

.single-post .single-recipe-content li {
  font-size: 1.05rem !important;
  line-height: 1.8 !important;
  color: #374151 !important;
  margin-bottom: 0.4rem !important;
}

@media (min-width: 63.5rem) and (max-width: 64.5rem) and (min-height: 84rem) and (max-height: 86.5rem) {
  .single-post .recipe-top {
    flex-direction: column !important;
    gap: 1rem !important;
  }

  .single-post .recipe-top-content {
    max-width: 100% !important;
    flex: 1 1 auto !important;
  }

  .single-post .single-recipe-image {
    flex: none !important;
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    margin-left: 0 !important;
    aspect-ratio: auto !important;
  }
}

/* ── Mobile ── */
@media (max-width: 47.9rem) {
  html {
    margin-top: 0 !important;
  }

  .single-post .single-recipe-content .wp-block-post-featured-image,
  .single .single-recipe-content .wp-block-post-featured-image {
    display: none !important;
  }

  .single-post .single-recipe-title,
  .single-recipes .single-recipe-title,
  .single .single-recipe-title {
    font-size: clamp(1.6rem, 8.2vw, 2.1rem) !important;
    line-height: 1.2 !important;
    letter-spacing: -0.01em !important;
  }

  header.wp-block-template-part {
    margin-top: 0 !important;
    padding-top: 0 !important;
  }

  .phase1-shell-header {
    top: 0 !important;
    height: auto !important;
  }

  .admin-bar .phase1-shell-header {
    top: var(--wp-admin--admin-bar--height, 0px) !important;
  }

  .phase1-topbar {
    flex-wrap: wrap !important;
    height: auto !important;
  }
  .phase1-topbar {
    align-items: center !important;
    row-gap: 0.5rem !important;
    padding: 0.5rem 0.75rem 0.65rem !important;
  }

  .phase1-hamburger {
    order: 1 !important;
  }

  .phase1-topbar-brand {
    order: 2 !important;
    margin-left: 0 !important;
    padding-left: 0 !important;
  }

  .phase1-topbar-right {
    order: 3 !important;
  }

  .phase1-top-search {
    display: block !important;
    order: 4 !important;
    flex: 0 0 100% !important;
    max-width: 100% !important;
    margin: 0.2rem auto 0 !important;
  }

  .phase1-top-search .wp-block-search__inside-wrapper {
    height: 2.5rem !important;
    width: 60% !important;
    margin-left: 4rem !important;
  }

  body {
    padding-top: calc(var(--bar-h) + 3.1rem + var(--wp-admin--admin-bar--height, 0px)) !important;
  }

  .phase1-back-btn {
    top: auto !important;
    left: auto !important;
  }

  .blog main.wp-block-group,
  .single-post main.wp-block-group {
    padding-top: 3.25rem !important;
  }

  .phase1-overlay {
    z-index: 899 !important;
    pointer-events: none !important;
  }

  .phase1-sidebar {
    z-index: 900 !important;
  }

  .phase1-nav-checkbox:checked ~ .phase1-overlay {
    pointer-events: auto !important;
  }

  .woocommerce-account .woocommerce-MyAccount-navigation {
    padding: 0.75rem !important;
    width: 100% !important;
    box-sizing: border-box !important;
  }

  .woocommerce-account .phase1-account-nav-toggle {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    width: 100% !important;
    min-height: 2.75rem !important;
    border: 0.0625rem solid var(--green-mid) !important;
    border-radius: var(--r-sm) !important;
    background: var(--green-lt) !important;
    color: var(--green) !important;
    font-family: var(--font-ui, inherit) !important;
    font-size: var(--fs-sm) !important;
    font-weight: 700 !important;
    padding: 0.55rem 0.8rem !important;
    margin: 0 !important;
  }

  .woocommerce-account .phase1-account-nav-toggle::after {
    content: '\25BE';
    font-size: 0.8rem;
    line-height: 1;
  }

  .woocommerce-account .woocommerce-MyAccount-navigation.is-open .phase1-account-nav-toggle::after {
    content: '\25B4';
  }

  .woocommerce-account .woocommerce-MyAccount-navigation.is-collapsed ul {
    display: none !important;
  }

  .woocommerce-account .woocommerce-MyAccount-navigation.is-open ul {
    display: flex !important;
    margin-top: 0.5rem !important;
  }

  .woocommerce-account .woocommerce-Addresses {
    display: flex !important;
    flex-direction: column !important;
    gap: 0.75rem !important;
    width: 100% !important;
  }

  .woocommerce-account .woocommerce-Address {
    width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
    overflow-wrap: anywhere;
  }

  .woocommerce-checkout,
  .woocommerce-checkout .woocommerce,
  .woocommerce-checkout main.wp-block-group {
    overflow-x: hidden !important;
  }

  .woocommerce-checkout form.checkout,
  .woocommerce-checkout #customer_details,
  .woocommerce-checkout .col2-set,
  .woocommerce-checkout .col2-set .col-1,
  .woocommerce-checkout .col2-set .col-2,
  .woocommerce-checkout #order_review_heading,
  .woocommerce-checkout #order_review,
  .woocommerce-checkout #payment,
  .woocommerce-checkout .woocommerce-form-coupon-toggle,
  .woocommerce-checkout .woocommerce-info,
  .woocommerce-checkout .checkout_coupon {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
  }

  .woocommerce-checkout .checkout_coupon .form-row {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 0.6rem !important;
  }

  .woocommerce-checkout .checkout_coupon button[type="submit"],
  .woocommerce-checkout .checkout_coupon input[name="coupon_code"],
  .woocommerce-checkout .form-row input,
  .woocommerce-checkout .form-row select,
  .woocommerce-checkout .form-row textarea {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
  }

  .woocommerce-checkout .woocommerce-info,
  .woocommerce-checkout .checkout_coupon,
  .woocommerce-checkout #payment {
    overflow-wrap: anywhere;
    word-break: break-word;
  }

  .woocommerce-checkout #payment .wc-stripe-payment-request-wrapper,
  .woocommerce-checkout #payment .wc-stripe-payment-request-button-separator,
  .woocommerce-checkout #payment iframe {
    width: 100% !important;
    max-width: 100% !important;
  }

  .single-post .recipe-top {
    flex-direction: column !important;
    gap: 1.5rem !important;
  }
  .single-post .recipe-top-content {
    max-width: 100% !important;
  }
  .single-post .single-recipe-image {
    flex: none !important;
    width: 100% !important;
    max-width: 100% !important;
    aspect-ratio: 16/9 !important;
  }
  .single-post .single-recipe-content {
    padding: 1.5rem !important;
  }
}
