body {
  font-family: var(--font-body);
  font-size: 17px;
  font-weight: var(--font-weight-body);
  line-height: 1.62;
  color: var(--color-ink);
  background-color: var(--color-bg);
}
@media (max-width: 767px) {
  body {
    font-size: 16px;
    line-height: 1.60;
  }
}

h1, h2, h3, h4, .shoptimizer-heading, .product_title {
  font-family: var(--font-heading);
  font-weight: var(--font-weight-heading);
  color: var(--color-ink);
}

.main-navigation a, .site-header .menu-item > a {
  font-family: var(--font-body);
  font-size: 15px;
  font-weight: var(--font-weight-heading);
  letter-spacing: 0.01em;
}
@media (max-width: 767px) {
  .main-navigation a, .mobile-menu a {
    font-size: 16px;
  }
}

.woocommerce ul.products li.product .woocommerce-loop-product__title {
  font-family: var(--font-heading);
  font-size: 18px;
  font-weight: var(--font-weight-heading);
  line-height: 1.25;
  color: var(--color-ink);
}
@media (max-width: 767px) {
  .woocommerce ul.products li.product .woocommerce-loop-product__title {
    font-size: 17px;
  }
}

.woocommerce div.product p.price, .woocommerce ul.products li.product .price {
  font-family: var(--font-body);
  font-size: 24px;
  font-weight: var(--font-weight-accent);
  color: var(--color-ink);
}
.woocommerce div.product p.price ins, .woocommerce ul.products li.product .price ins {
  color: var(--color-toasted-gold);
}
@media (max-width: 767px) {
  .woocommerce div.product p.price, .woocommerce ul.products li.product .price {
    font-size: 22px;
  }
}

.button, button, input[type='button'], input[type='reset'], input[type='submit'], .woocommerce a.button {
  font-family: var(--font-body);
  font-size: 16px;
  font-weight: var(--font-weight-accent);
  border-radius: var(--radius-sm);
  min-height: 48px;
  padding: 14px 24px;
  background-color: var(--color-ink);
  color: var(--color-surface);
  border: 1px solid var(--color-ink);
  transition: all 0.2s ease;
}
.button:hover, button:hover, input[type='button']:hover, input[type='reset']:hover, input[type='submit']:hover, .woocommerce a.button:hover {
  background-color: var(--color-deep-navy);
}
@media (max-width: 767px) {
  .button, button, input[type='button'], input[type='reset'], input[type='submit'], .woocommerce a.button {
    min-height: 52px;
    padding: 16px 20px;
  }
}

.woocommerce-breadcrumb {
  font-family: var(--font-body);
  font-size: 13px;
  font-weight: var(--font-weight-heading);
}

input[type='text'], input[type='email'], input[type='password'], textarea, select {
  font-family: var(--font-body);
  font-size: 16px;
  font-weight: var(--font-weight-body);
  border-radius: var(--radius-sm);
  border: 1px solid var(--color-crock-edge);
  background-color: var(--color-surface);
}
input:focus, textarea:focus, select:focus {
  outline: 3px solid var(--color-toasted-gold);
  outline-offset: 3px;
}

/* Product Cards */
.woocommerce ul.products li.product {
  background-color: var(--color-surface);
  border: 1px solid var(--color-flour-rule);
  border-radius: var(--radius-md);
  padding: 16px;
}
.woocommerce ul.products li.product img {
  border-radius: 8px 8px 0 0;
  object-fit: cover;
  aspect-ratio: 4/5;
}
.woocommerce ul.products li.product:hover {
  border-color: var(--color-crock-edge);
  box-shadow: 0 8px 24px rgba(29,58,77,0.10);
}
@media (max-width: 767px) {
  .woocommerce ul.products li.product {
    padding: 12px;
  }
  .woocommerce ul.products li.product:hover {
    box-shadow: none;
  }
}

/* Stars */
.woocommerce .star-rating span:before, .woocommerce p.stars a {
  color: var(--color-accent) !important;
}
.woocommerce .star-rating:before {
  color: transparent !important;
  -webkit-text-stroke: 1px var(--color-crock-edge);
}

/* Header and Announcement */
.shoptimizer-topbar {
  min-height: 36px;
  display: flex;
  align-items: center;
}

span.logo .custom-logo, .site-logo img {
  width: 132px !important;
  max-width: 132px !important;
  max-height: none !important;
  height: auto !important;
}
@media (max-width: 767px) {
  .shoptimizer-topbar {
    min-height: 40px;
  }
  
  span.logo .custom-logo, .site-logo img {
    width: 108px !important;
    max-width: 108px !important;
  }
}
.site-header {
  background-color: var(--color-surface);
  border-bottom: 1px solid var(--color-flour-rule);
}
/* Footer Newsletter band setup */
.site-footer {
  background-color: var(--color-bg) !important;
  border-top: 1px solid var(--color-flour-rule);
  padding: 64px 0 40px;
}
@media (max-width: 767px) {
  .site-footer {
    padding: 48px 0 32px;
  }
}

.site { background-color: var(--color-bg); }

.product-label.sale-item {
    font-size: 0 !important;
    background-color: var(--color-toasted-gold) !important;
    color: var(--color-surface) !important;
    padding: 6px 9px !important;
    border-radius: var(--radius-pill) !important;
}
.product-label.sale-item::before {
    content: "SALE";
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 0.08em;
}

.top-bar .desktop-text { display: inline !important; }
.top-bar .mobile-text { display: none !important; }

@media (max-width: 767px) {
    .product-label.sale-item {
        padding: 5px 8px !important;
    }
    .product-label.sale-item::before {
        font-size: 11px;
    }
    .top-bar .desktop-text { display: none !important; }
    .top-bar .mobile-text { display: inline !important; }
}

@media (max-width: 992px) {
    .hide-on-mobile.topbar-wrapper {
        display: block !important;
    }
}

.main-navigation ul.menu > li > a {
    font-family: 'Source Sans 3', sans-serif !important;
    font-weight: 600 !important;
    font-size: 15px !important;
}

/* Stage B: Shop Grid */
.products .product {
    background-color: var(--color-pantry-white) !important;
    border: 1px solid var(--color-flour-rule) !important;
    border-radius: var(--radius-card) !important;
    padding: 16px !important;
    text-align: left;
    display: flex;
    flex-direction: column;
}

@media (max-width: 767px) {
    .products .product {
        padding: 12px !important;
    }
}

.products .product img {
    aspect-ratio: 4/5;
    object-fit: cover;
    border-radius: var(--radius-card) var(--radius-card) 0 0;
    width: 100%;
    margin-bottom: 16px;
}

.products .product .woocommerce-loop-product__title {
    font-family: 'Bitter', serif !important;
    font-weight: 600 !important;
    font-size: 18px !important;
    color: var(--color-mothers-navy) !important;
    margin-bottom: 4px;
}

.mcs-sensory-descriptor {
    font-family: 'Source Sans 3', sans-serif;
    font-size: 14px;
    color: var(--color-slate-copy);
    margin-bottom: 8px;
}

.products .product .price {
    font-family: 'Source Sans 3', sans-serif !important;
    font-size: 18px !important;
    font-weight: 700 !important;
    color: var(--color-mothers-navy) !important;
    margin-top: auto;
    margin-bottom: 16px;
}

.products .product .price ins {
    color: var(--color-toasted-gold) !important;
    text-decoration: none;
}

.products .product .button {
    width: 100%;
    min-height: 44px;
    border-radius: 4px;
    font-family: 'Source Sans 3', sans-serif;
    font-weight: 600;
}

@media (max-width: 767px) {
    .products .product .button {
        min-height: 48px;
    }
}


/* Stage B: Shop Grid */
.products .product {
    background-color: var(--color-pantry-white) !important;
    border: 1px solid var(--color-flour-rule) !important;
    border-radius: var(--radius-card) !important;
    padding: 16px !important;
    text-align: left;
    display: flex;
    flex-direction: column;
}

@media (max-width: 767px) {
    .products .product {
        padding: 12px !important;
    }
}

.products .product img {
    aspect-ratio: 4/5;
    object-fit: cover;
    border-radius: var(--radius-card) var(--radius-card) 0 0;
    width: 100%;
    margin-bottom: 16px;
}

.products .product .woocommerce-loop-product__title {
    font-family: 'Bitter', serif !important;
    font-weight: 600 !important;
    font-size: 18px !important;
    color: var(--color-mothers-navy) !important;
    margin-bottom: 4px;
}

.mcs-sensory-descriptor {
    font-family: 'Source Sans 3', sans-serif;
    font-size: 14px;
    color: var(--color-slate-copy);
    margin-bottom: 8px;
}

.products .product .price {
    font-family: 'Source Sans 3', sans-serif !important;
    font-size: 18px !important;
    font-weight: 700 !important;
    color: var(--color-mothers-navy) !important;
    margin-top: auto;
    margin-bottom: 16px;
}

.products .product .price ins {
    color: var(--color-toasted-gold) !important;
    text-decoration: none;
}

.products .product .button {
    width: 100%;
    min-height: 44px;
    border-radius: 4px;
    font-family: 'Source Sans 3', sans-serif;
    font-weight: 600;
}

@media (max-width: 767px) {
    .products .product .button {
        min-height: 48px;
    }
}

/* Stage B: Single Product */
.mcs-lineage-statement {
    font-family: 'Source Sans 3', sans-serif;
    font-size: 16px;
    color: var(--color-slate-copy);
    margin-bottom: 16px;
}

.mcs-dispatch-note {
    font-family: 'Source Sans 3', sans-serif;
    font-size: 14px;
    color: var(--color-slate-copy);
    margin-bottom: 16px;
    padding: 8px;
    background-color: var(--color-pantry-white);
    border: 1px solid var(--color-flour-rule);
    border-radius: 4px;
}

.mcs-free-shipping {
    font-family: 'Source Sans 3', sans-serif;
    font-size: 14px;
    font-weight: 600;
    color: var(--color-mothers-navy);
    margin-top: 16px;
    text-align: center;
}

.mcs-trust-row {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
    margin-top: 16px;
    padding-top: 16px;
    border-top: 1px solid var(--color-flour-rule);
    font-family: 'Source Sans 3', sans-serif;
    font-size: 13px;
    color: var(--color-slate-copy);
}

.mcs-trust-row span {
    flex: 1 1 50%;
    margin-bottom: 8px;
    text-align: left;
}

/* Stage 3 fix: the logo rule only matched span.logo, but inner pages render the
   logo inside div.site-branding, so it filled the header. Appended to assets/theme.css. */
.site-branding .custom-logo, .site-branding img, .custom-logo-link img {
  width: 132px !important;
  max-width: 132px !important;
  max-height: none !important;
  height: auto !important;
}
@media (max-width: 767px) {
  .site-branding .custom-logo, .site-branding img, .custom-logo-link img {
    width: 108px !important;
    max-width: 108px !important;
  }
}

/* ===== Stage 4 chrome fixes (appended to assets/theme.css) ===== */

/* QA-11: phone header. Top bar in flow, header below it, sticky header opaque. */
@media (max-width: 767px) {
  .topbar-wrapper { position: static !important; display: block !important; }
  .site-header { position: relative; padding-top: 8px; padding-bottom: 8px; background: #FFFCF5 !important; }
  .site-header .custom-logo-link { display: inline-block; margin-top: 0; }
}
.col-full-nav.is_stuck, .site-header.is_stuck, .sticky-header, .shoptimizer-sticky-header { background: #FFFCF5 !important; box-shadow: 0 1px 0 #D8D1C3; }

/* QA-17: announcement bar link */
.topbar-wrapper a { color: #1D3A4D; text-decoration: underline; text-underline-offset: 2px; font-weight: 600; }

/* Product page: Stage 4 hook styles */
.mcs-lineage-statement { font-size: 17px; color: #4F5E67; margin: 0 0 12px; }
.mcs-format-notes { list-style: none; margin: 0 0 16px; padding: 0; font-size: 14px; color: #4F5E67; }
.mcs-format-notes li { padding: 4px 0; }
.mcs-shipping-line, .mcs-guarantee-line { font-size: 14px; color: #4F5E67; margin: 12px 0 0; }
.mcs-guarantee-line { margin-top: 4px; }
.mcs-trust-row { list-style: none; margin: 24px 0 0; padding: 16px 0 0; border-top: 1px solid #D8D1C3; display: grid; grid-template-columns: 1fr 1fr; gap: 12px 24px; }
.mcs-trust-row li { display: flex; flex-direction: column; gap: 2px; padding-left: 12px; border-left: 2px solid #DFA71D; }
.mcs-trust-row strong { font: 700 14px/1.3 "Source Sans 3", sans-serif; color: #1D3A4D; }
.mcs-trust-row span { font-size: 13px; line-height: 1.4; color: #4F5E67; }
.mcs-free-price { font: 700 24px/1.15 "Source Sans 3", sans-serif; color: #7A5200; }
.mcs-free-note { display: block; font-size: 14px; font-weight: 400; color: #4F5E67; }
.woocommerce ul.products li.product .price .mcs-free-price { font-size: 18px; }
.call-back-feature, .shoptimizer-product-prevnext { display: none !important; }
.woocommerce div.product form.cart .variations label { font: 700 12px/1.3 "Source Sans 3", sans-serif; letter-spacing: 0.10em; text-transform: uppercase; color: #1D3A4D; }
.woocommerce div.product form.cart .variations select { min-height: 48px; border: 1px solid #818F96; border-radius: 4px; font-size: 16px; color: #1D3A4D; background: #FFFCF5; }

/* QA-07: footer. Values follow brief 7 until the footer template is written. */
#colophon, .site-footer { background: #F7F3E8 !important; border-top: 1px solid #D8D1C3; padding: 64px 0 40px; }
#colophon .widget-title, .site-footer .widget-title { font: 700 12px/1.3 "Source Sans 3", sans-serif; letter-spacing: 0.10em; text-transform: uppercase; color: #1D3A4D; margin-bottom: 16px; }
#colophon a, .site-footer a { color: #1D3A4D; }
#colophon .site-info, .site-footer .site-info { font-size: 14px; color: #4F5E67; border-top: 1px solid #D8D1C3; padding-top: 24px; margin-top: 40px; }

/* ===== Round 3: phone header (QA-11, cause found) =====
   Shoptimizer's Elementor Pro compatibility sheet sets .main-header and .site-branding to height 0
   below 993px (meant for sites whose header is an Elementor template). This site uses the theme header. */
@media (max-width: 992px) {
  .site-header .main-header, .site-header .site-branding { height: 70px !important; }
  .site-header { padding-top: 0 !important; padding-bottom: 0 !important; }
  .site-branding button.menu-toggle { top: 20px; }
  .site-header .site-header-cart { top: 20px; }
}

/* ===== Round 4 ===== */
/* Floating cart icon hidden once the header icon drives the drawer; the toggler stays in the DOM for the script. */
body.mcs-header-cart-bound #fkcart-floating-toggler { opacity: 0; pointer-events: none; position: fixed; width: 1px; height: 1px; overflow: hidden; }
/* Phone hero: keep the primary CTA inside the first screen on shorter phones (was at 769px of 844). */
@media (max-width: 767px) {
  .mcs-section--hero { padding-top: 16px; }
  .mcs-hero { gap: 16px; }
  .mcs-hero__media { aspect-ratio: 16 / 10; }
}

/* ===== Round 5: header (brief 7.1) and shop grid ===== */
@media (min-width: 993px) {
  .site-header { position: sticky !important; top: 0; z-index: 60; background: #FFFCF5 !important; border-bottom: 1px solid #D8D1C3; padding: 0 !important; }
  body.mcs-scrolled .site-header { box-shadow: 0 4px 16px rgba(29, 58, 77, 0.08); }
  .site-header .main-header { display: flex !important; align-items: center; gap: 24px; min-height: 80px; padding-top: 0 !important; padding-bottom: 0 !important; }
  .site-header .site-branding { flex: 0 0 132px; margin: 0 !important; padding: 0 !important; line-height: 0; }
  .site-header .menu-overlay { display: none; }
  body.mcs-nav-moved .col-full-nav { display: none !important; }
  body.mcs-nav-moved #site-navigation { flex: 1 1 auto; display: flex; justify-content: center; margin: 0; }
  #site-navigation ul.menu, #site-navigation > ul { display: flex; align-items: center; gap: 4px; margin: 0; padding: 0; list-style: none; }
  #site-navigation ul.menu > li > a, #site-navigation > ul > li > a { display: inline-block; padding: 0 14px; line-height: 80px; font: 600 15px/80px "Source Sans 3", "Segoe UI", Arial, sans-serif; letter-spacing: 0.01em; color: #1D3A4D !important; text-decoration: none; box-shadow: none; }
  #site-navigation ul.menu > li > a:hover, #site-navigation ul.menu > li.current-menu-item > a, #site-navigation > ul > li > a:hover { color: #1D3A4D !important; box-shadow: inset 0 -2px 0 #DFA71D; }
  #site-navigation ul.menu > li > a::after, #site-navigation > ul > li > a::after { display: none !important; }
  #site-navigation .sub-menu { background: #FFFCF5; border: 1px solid #D8D1C3; border-radius: 8px; padding: 12px 0; box-shadow: 0 8px 24px rgba(29, 58, 77, 0.10); }
  #site-navigation .sub-menu a { padding: 8px 24px; color: #1D3A4D; font-size: 15px; }
  .site-header .site-search { flex: 0 0 240px; margin: 0 0 0 auto !important; width: 240px !important; }
  .site-header .site-search form, .site-header .site-search .widget { margin: 0; }
  .site-header .site-search input[type="search"], .site-header .site-search input[type="text"] { height: 44px; padding: 0 16px 0 40px; border: 1px solid #D8D1C3; border-radius: 22px; background: #F7F3E8; font: 400 15px/44px "Source Sans 3", sans-serif; color: #1D3A4D; }
  .site-header .site-search input:focus { outline: 2px solid #7A5200; outline-offset: 2px; border-color: #818F96; }
  body.mcs-nav-moved .site-header .main-header > .site-header-cart { display: block !important; flex: 0 0 auto; margin: 0 0 0 16px !important; line-height: 1 !important; }
  .site-header .main-header > .site-header-cart .shoptimizer-cart { display: block; }
  .site-header .site-header-cart a.cart-contents::before { content: ''; display: inline-block; width: 22px; height: 22px; background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231D3A4D' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'><path d='M6 8h12l1 13H5L6 8z'/><path d='M9 8V6a3 3 0 0 1 6 0v2'/></svg>") center/contain no-repeat; }
  .site-header .site-header-cart a.cart-contents { display: flex; align-items: center; gap: 8px; color: #1D3A4D !important; font: 700 15px/1 "Source Sans 3", sans-serif; text-decoration: none; }
  .site-header .site-header-cart .amount { color: #1D3A4D !important; font-weight: 700; }
  .site-header .site-header-cart .count { display: inline-flex; align-items: center; justify-content: center; min-width: 18px; height: 18px; padding: 0 5px; border-radius: 999px; background: #DFA71D !important; color: #1D3A4D !important; font: 700 11px/1 "Source Sans 3", sans-serif; border: 0 !important; }
  .site-header .site-header-cart svg, .site-header .site-header-cart i { color: #1D3A4D; fill: #1D3A4D; }
}
/* Announcement bar */
.topbar-wrapper { background: #1D3A4D !important; color: #FFFCF5 !important; min-height: 36px; display: flex; align-items: center; justify-content: center; font: 400 14px/1.3 "Source Sans 3", sans-serif; }
.topbar-wrapper a { color: #DFA71D !important; text-decoration: underline; text-underline-offset: 2px; font-weight: 600; }
.topbar-wrapper .col-full { padding: 8px 20px; }

/* Shop and category grid (brief 6.2): no sidebar, four columns, badge and label spacing */
body.woocommerce #secondary, body.woocommerce-page #secondary { display: none !important; }
body.woocommerce #primary, body.woocommerce-page #primary { width: 100% !important; float: none !important; }
.woocommerce ul.products li.product .product__categories { font: 700 11px/1.3 "Source Sans 3", sans-serif; letter-spacing: 0.08em; text-transform: uppercase; color: #7A5200; margin: 0 0 6px; }
.woocommerce ul.products li.product .product__categories a { color: #7A5200; }
.woocommerce ul.products li.product .woocommerce-loop-product__title { margin: 0 0 4px; }
.woocommerce ul.products li.product .mcs-sensory-descriptor { font-size: 14px; line-height: 1.45; color: #4F5E67; margin: 0 0 8px; }
.woocommerce ul.products li.product .price { margin: 0 0 12px; font-size: 18px; }
.woocommerce ul.products li.product .woocommerce-card__header { padding: 16px; }
.woocommerce ul.products li.product { background: #FFFCF5; border: 1px solid #D8D1C3; border-radius: 8px; overflow: hidden; }
.woocommerce ul.products li.product:hover { border-color: #818F96; }
.woocommerce ul.products li.product .button, .woocommerce ul.products li.product .added_to_cart { width: 100%; text-align: center; min-height: 44px; border-radius: 4px; }
.woocommerce-result-count, .woocommerce-ordering select { font-size: 14px; color: #4F5E67; }
.woocommerce .woocommerce-breadcrumb { font: 600 13px/1.4 "Source Sans 3", sans-serif; color: #818F96; }

/* Round 5b: let the navigation take the free space so it centres between logo and search. */
@media (min-width: 993px) {
  .site-header .site-search { margin-left: 0 !important; }
  body.mcs-nav-moved #site-navigation { flex: 1 1 0; }
}

/* ===== Round 6 ===== */
/* Nav items were wrapping onto two lines on inner pages once the nav became flexible. */
@media (min-width: 993px) {
  #site-navigation ul.menu > li > a, #site-navigation > ul > li > a { white-space: nowrap; }
  body.mcs-nav-moved #site-navigation { min-width: max-content; }
  .site-header .site-search { flex: 0 1 240px; min-width: 160px; }
}
/* Product page buy box: brief 6.1 primary button, quantity control, no stray "Sale!" text. */
.woocommerce div.product form.cart .single_add_to_cart_button, .woocommerce div.product form.cart .button { background: #1D3A4D !important; color: #FFFCF5 !important; border: 1px solid #1D3A4D !important; border-radius: 4px !important; min-height: 48px; font: 700 16px/1 "Source Sans 3", "Segoe UI", Arial, sans-serif; letter-spacing: 0.01em; box-shadow: none !important; }
.woocommerce div.product form.cart .single_add_to_cart_button:hover { background: #122B3A !important; }
.woocommerce div.product form.cart .quantity .qty { border: 1px solid #818F96; border-radius: 4px; min-height: 48px; font-size: 16px; color: #1D3A4D; background: #FFFCF5; }
.woocommerce div.product .summary > .onsale, .woocommerce div.product .summary > span.onsale { display: none !important; }
.woocommerce div.product .summary .sale-item.product-label { background: #7A5200 !important; color: #FFFCF5 !important; border-radius: 4px; font: 700 12px/1 "Source Sans 3", sans-serif; letter-spacing: 0.08em; text-transform: uppercase; padding: 6px 9px; }
.woocommerce div.product .woocommerce-tabs ul.tabs li a { font: 700 14px/1.3 "Source Sans 3", sans-serif; color: #1D3A4D; }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a { box-shadow: inset 0 -2px 0 #DFA71D; }
.woocommerce div.product .woocommerce-tabs .panel h2 { font: 600 30px/1.2 "Bitter", Georgia, serif; color: #1D3A4D; margin: 32px 0 12px; }
.woocommerce div.product .woocommerce-tabs .panel h3 { font: 600 22px/1.28 "Bitter", Georgia, serif; color: #1D3A4D; margin: 24px 0 8px; }
.woocommerce div.product .woocommerce-tabs .panel p, .woocommerce div.product .woocommerce-tabs .panel li { max-width: 68ch; }

/* ===== Round 7: utility pages, mobile menu, side cart ===== */
/* Pages (Our story, Learn, Contact, Shipping, policies): reading column and type scale (brief 4, 5). */
body.page:not(.home):not(.woocommerce-page) #secondary { display: none !important; }
body.page:not(.home):not(.woocommerce-page) #primary { width: 100% !important; float: none !important; }
body.page:not(.home):not(.woocommerce-page) .entry-header, body.page:not(.home):not(.woocommerce-page) .entry-content { max-width: 720px; margin-left: auto; margin-right: auto; }
body.page:not(.home):not(.woocommerce-page) .entry-header { padding: 48px 0 8px; }
body.page:not(.home):not(.woocommerce-page) h1.entry-title { font: 600 44px/1.12 "Bitter", Georgia, serif; letter-spacing: -0.02em; color: #1D3A4D; margin: 0 0 24px; }
body.page:not(.home):not(.woocommerce-page) .entry-content h2 { font: 600 30px/1.2 "Bitter", Georgia, serif; color: #1D3A4D; margin: 40px 0 12px; }
body.page:not(.home):not(.woocommerce-page) .entry-content h3 { font: 600 22px/1.28 "Bitter", Georgia, serif; color: #1D3A4D; margin: 28px 0 8px; }
body.page:not(.home):not(.woocommerce-page) .entry-content p, body.page:not(.home):not(.woocommerce-page) .entry-content li { font-size: 17px; line-height: 1.62; color: #1D3A4D; }
body.page:not(.home):not(.woocommerce-page) .entry-content a { color: #1D3A4D; text-decoration: underline; text-underline-offset: 3px; }
body.page:not(.home):not(.woocommerce-page) .entry-content { padding-bottom: 64px; }
@media (max-width: 767px) {
  body.page:not(.home):not(.woocommerce-page) h1.entry-title { font-size: 32px; }
  body.page:not(.home):not(.woocommerce-page) .entry-content h2 { font-size: 24px; }
  body.page:not(.home):not(.woocommerce-page) .entry-content p, body.page:not(.home):not(.woocommerce-page) .entry-content li { font-size: 16px; }
}

/* Mobile menu (brief 7.1 phone: 16px, 600) */
@media (max-width: 992px) {
  body.mobile-toggled #site-navigation .menu > li > a { font: 600 16px/1.3 "Source Sans 3", sans-serif; color: #1D3A4D; padding: 14px 0; }
  body.mobile-toggled #site-navigation .sub-menu a { font-size: 15px; color: #4F5E67; padding: 10px 0 10px 16px; }
}

/* FunnelKit side cart: type, buttons and badge in the brand (brief 6.1). Structure stays FunnelKit's. */
.fkcart-modal, .fkcart-modal * { font-family: "Source Sans 3", "Segoe UI", Arial, sans-serif; }
.fkcart-modal .fkcart-title { font: 600 22px/1.28 "Bitter", Georgia, serif !important; color: #1D3A4D !important; }
.fkcart-modal .fkcart-modal-container { background: #FFFCF5 !important; }
.fkcart-modal .fkcart-slider-header { border-bottom: 1px solid #D8D1C3 !important; }
.fkcart-modal .fkcart-item-wrap { border-bottom: 1px solid #D8D1C3 !important; }
.fkcart-modal .fkcart--item-parent .fkcart-item-title, .fkcart-modal .fkcart-item-title a { font: 600 17px/1.25 "Bitter", Georgia, serif !important; color: #1D3A4D !important; text-decoration: none !important; }
.fkcart-modal .fkcart-item-price, .fkcart-modal .fkcart-summary-price, .fkcart-modal .fkcart-subtotal-price { color: #1D3A4D !important; font-weight: 700 !important; }
.fkcart-modal .fkcart-primary-button, .fkcart-modal a.fkcart-checkout-button, .fkcart-modal .fkcart-checkout-button, .fkcart-modal button[class*="checkout"], .fkcart-modal a[class*="checkout"] { background: #1D3A4D !important; color: #FFFCF5 !important; border: 1px solid #1D3A4D !important; border-radius: 4px !important; font: 700 16px/1 "Source Sans 3", sans-serif !important; min-height: 52px; box-shadow: none !important; }
.fkcart-modal .fkcart-primary-button:hover, .fkcart-modal .fkcart-checkout-button:hover { background: #122B3A !important; }
.fkcart-modal .fkcart-quantity-wrap, .fkcart-modal .fkcart-qty-wrap { border: 1px solid #818F96 !important; border-radius: 4px !important; }
.fkcart-modal .fkcart-item-remove, .fkcart-modal .fkcart-remove-item { color: #818F96 !important; }
.fkcart-modal a { color: #1D3A4D; }
.fkcart-modal .fkcart-coupon-toggle, .fkcart-modal .fkcart-coupon-wrap { color: #4F5E67 !important; }

/* ===== Round 8: side-cart checkout button, mobile menu size (2026-09-23) ===== */
/* FunnelKit renders the Checkout control as an <a> with no class inside .fkcart-checkout-info (observed live 2026-09-23). */
.fkcart-modal .fkcart-checkout-wrap .fkcart-checkout-info > a,
.fkcart-modal .fkcart-checkout-wrap a,
.fkcart-modal .fkcart-checkout-info a {
  background: #1D3A4D !important; color: #FFFCF5 !important; border: 1px solid #1D3A4D !important;
  border-radius: 4px !important; box-shadow: none !important; min-height: 52px;
  font: 700 16px/1 "Source Sans 3", sans-serif !important; letter-spacing: .01em;
}
.fkcart-modal .fkcart-checkout-wrap a:hover, .fkcart-modal .fkcart-checkout-info a:hover { background: #122B3A !important; border-color: #122B3A !important; }
.fkcart-modal .fkcart-checkout--text, .fkcart-modal .fkcart-checkout--price { color: #FFFCF5 !important; font-weight: 700 !important; }
.fkcart-modal .fkcart-checkout--icon svg, .fkcart-modal .fkcart-checkout--icon svg path { fill: #FFFCF5 !important; stroke: #FFFCF5 !important; }
.fkcart-modal .fkcart-select-options { color: #7A5200 !important; text-decoration: underline; }
.fkcart-modal .fkcart-shopping-link { color: #1D3A4D !important; }
/* Mobile menu: Shoptimizer's own rule beat round 7's 16px (computed 15px). */
@media (max-width: 992px) {
  body.mobile-toggled #site-navigation .menu > li > a,
  #site-navigation .menu > li > a { font-size: 16px !important; font-weight: 600 !important; line-height: 1.3 !important; color: #1D3A4D !important; }
  #site-navigation .sub-menu a { font-size: 15px !important; }
}

/* ===== Round 9: shop grid cards (2026-09-23) =====
   Shoptimizer's card CTA is absolutely positioned at the card's bottom edge, opacity 0 until hover, at
   calc(100% - 30px) wide; the round-5 `width: 100%` made it overflow the card on hover, and the parent's
   ::before hover panel drew a second white box with a shadow below the card. The card is now static:
   CTA always visible in the flow, no hover panel, no image scale, packs shown whole on a white 1:1 tile. */
.woocommerce ul.products li.product { position: relative; display: flex; flex-direction: column; overflow: visible; }
.woocommerce ul.products li.product::before { display: none !important; content: none !important; }
.woocommerce ul.products li.product:hover .woocommerce-image__wrapper { transform: none !important; }
.woocommerce ul.products li.product .woocommerce-image__wrapper { background: #FFFFFF; border-radius: 8px 8px 0 0; }
.woocommerce ul.products li.product img,
.products .product img {
  aspect-ratio: 1 / 1 !important; object-fit: contain !important; background: #FFFFFF; padding: 14px;
  width: 100%; height: auto; margin: 0 0 16px !important; border-radius: 8px 8px 0 0;
}
.woocommerce ul.products li.product .woocommerce-card__header { flex: 1 1 auto; }
.woocommerce ul.products li.product .button,
.woocommerce ul.products li.product .added_to_cart,
.woocommerce ul.products li.product .add_to_cart_button {
  position: static !important; opacity: 1 !important; visibility: visible !important;
  display: flex !important; align-items: center; justify-content: center;
  width: 100% !important; height: auto !important; min-height: 44px; margin: 14px 0 0 !important; padding: 0 16px !important;
  background: #1D3A4D !important; color: #FFFCF5 !important; border: 1px solid #1D3A4D !important; border-radius: 4px !important;
  font: 600 15px/1 "Source Sans 3", sans-serif !important; letter-spacing: .01em; box-shadow: none !important; transform: none !important;
}
.woocommerce ul.products li.product .button:hover, .woocommerce ul.products li.product .add_to_cart_button:hover { background: #122B3A !important; border-color: #122B3A !important; }
.woocommerce ul.products li.product .added_to_cart { background: #FFFFFF !important; color: #1D3A4D !important; }
.woocommerce ul.products li.product:hover { border-color: #818F96; box-shadow: 0 8px 24px rgba(29, 58, 77, .10); }
@media (max-width: 992px) {
  .woocommerce ul.products li.product .button, .woocommerce ul.products li.product .add_to_cart_button { min-height: 42px; font-size: 14px !important; }
  .woocommerce ul.products li.product img { padding: 8px; }
}
