/*
Theme Name: Crazy Daizy
Theme URI: https://crazydaizycakeshop.co.za
Description: Custom child theme for Crazy Daizy Cake Shop. Hand-coded on top of Storefront, no page builder. Token-driven design system, mobile-first.
Author: Edweb Media
Author URI: https://edwebmedia.com
Template: storefront
Version: 4.6.16
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: crazy-daizy
*/

/* ============================================================
   01. DESIGN TOKENS — every colour derives from 4 brand roots
   ============================================================ */
:root{
  --cd-brown:#80461b;
  --cd-cream:#fdf5ee;
  --cd-ink:#2b2320;
  --cd-white:#ffffff;

  --cd-brown-dark:color-mix(in srgb, var(--cd-brown) 80%, black);
  --cd-brown-soft:color-mix(in srgb, var(--cd-brown) 10%, var(--cd-cream));
  --cd-tile:color-mix(in srgb, var(--cd-brown) 4%, var(--cd-cream));
  --cd-ink-soft:color-mix(in srgb, var(--cd-ink) 62%, var(--cd-cream));
  --cd-line:color-mix(in srgb, var(--cd-ink) 12%, transparent);
  --cd-line-dark:color-mix(in srgb, var(--cd-white) 14%, transparent);

  --cd-font:"Plus Jakarta Sans", system-ui, -apple-system, "Segoe UI", sans-serif;

  --cd-r-sm:10px;
  --cd-r-lg:16px;
  --cd-r-pill:999px;

  --cd-shadow-sm:0 6px 18px -12px color-mix(in srgb, var(--cd-ink) 45%, transparent);
  --cd-shadow-md:0 16px 40px -20px color-mix(in srgb, var(--cd-ink) 45%, transparent);
  --cd-shadow-brown:0 10px 24px -12px color-mix(in srgb, var(--cd-brown) 75%, transparent);

  --cd-maxw:1200px;
  --cd-ease:cubic-bezier(0.16, 1, 0.3, 1);
}

/* ============================================================
   02. BASE
   ============================================================ */
body{
  font-family:var(--cd-font);
  color:var(--cd-ink);
  background:var(--cd-white);
  font-size:16px;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4,h5,h6,.page-title,.entry-title{
  font-family:var(--cd-font);
  color:var(--cd-ink);
  font-weight:700;
  line-height:1.12;
  letter-spacing:-0.02em;
  text-wrap:balance;
}
p{ text-wrap:pretty; }
a{ color:var(--cd-brown); }
a:hover{ color:var(--cd-brown-dark); }
.col-full,.storefront-full-width-content .col-full{ max-width:var(--cd-maxw); }
.edit-link{ display:none !important; }

/* ============================================================
   03. ANNOUNCEMENT BAR
   ============================================================ */
.cd-topbar{
  background:var(--cd-ink);
  color:color-mix(in srgb, var(--cd-white) 78%, var(--cd-ink));
  text-align:center;
  font-size:.8rem;
  letter-spacing:.03em;
  padding:8px 16px;
  display:flex;
  justify-content:center;
  gap:12px;
  flex-wrap:wrap;
}
.cd-topbar span[aria-hidden]{ color:var(--cd-brown); font-weight:700; }
@media (max-width:640px){
  .cd-topbar span:nth-child(n+4){ display:none; }
}

/* ============================================================
   04. HEADER — slim, sticky, single row on desktop
   ============================================================ */
.site-header{
  position:sticky; top:0; z-index:500;
  padding:0 !important;
  background:color-mix(in srgb, var(--cd-cream) 92%, transparent) !important;
  -webkit-backdrop-filter:saturate(140%) blur(10px);
  backdrop-filter:saturate(140%) blur(10px);
  border-bottom:1px solid var(--cd-line);
  box-shadow:0 8px 24px -22px color-mix(in srgb, var(--cd-ink) 60%, transparent);
}
.admin-bar .site-header{ top:32px; }
.site-search{ display:none !important; }
.site-header .site-branding{ margin:0 !important; padding:12px 0 !important; }
.site-header .site-title{ font-size:1.5rem !important; margin:0 !important; line-height:1 !important; font-weight:800; letter-spacing:-.02em; }
.site-header .site-title a{ color:var(--cd-ink) !important; }
.site-header .site-description{ display:none !important; }
.storefront-primary-navigation{ background:transparent !important; margin:0 !important; border:0 !important; }

@media (min-width:768px){
  .site-header .col-full{ display:flex; align-items:center; min-height:70px; position:relative; }
  .storefront-primary-navigation{ position:absolute; left:0; right:0; top:0; height:70px; pointer-events:none; }
  .storefront-primary-navigation .col-full{
    display:flex; align-items:center; justify-content:flex-end;
    height:70px; margin:0 auto; padding:0 20px; min-height:0;
  }
  .main-navigation,.site-header-cart{ pointer-events:auto; }
  .main-navigation{ width:100% !important; flex:1 1 auto !important; float:none !important; margin:0 !important; }
  .main-navigation ul.menu{ display:flex !important; justify-content:flex-end !important; align-items:center; gap:6px; margin:0 !important; width:auto; }
  .main-navigation ul.menu > li{ float:none !important; position:relative; }

  .main-navigation ul.menu > li > a{
    position:relative; padding:8px 2px !important; margin:0 13px !important;
    color:var(--cd-ink) !important; font-weight:600; font-size:.98rem;
    transition:color .25s var(--cd-ease);
  }
  .main-navigation ul.menu > li > a::after{
    content:""; position:absolute; left:0; right:0; bottom:0; height:2px;
    background:var(--cd-brown); transform:scaleX(0); transform-origin:left;
    transition:transform .3s var(--cd-ease);
  }
  .main-navigation ul.menu > li:hover > a::after,
  .main-navigation ul.menu > li.current-menu-item > a::after{ transform:scaleX(1); }
  .main-navigation ul.menu > li > a:hover{ color:var(--cd-brown) !important; }

  /* dropdown */
  .main-navigation ul.menu ul.sub-menu{
    position:absolute !important; left:auto; right:0; top:100%;
    width:230px !important; padding:8px !important; margin:0;
    background:var(--cd-white) !important;
    border:1px solid var(--cd-line); border-radius:14px;
    box-shadow:var(--cd-shadow-md);
  }
  .main-navigation ul.menu ul.sub-menu li a{
    display:block; padding:10px 14px !important; border-radius:10px;
    color:var(--cd-ink) !important; font-weight:500; font-size:.93rem;
    transition:background .2s var(--cd-ease), color .2s var(--cd-ease);
  }
  .main-navigation ul.menu ul.sub-menu li a:hover{ background:var(--cd-brown-soft); color:var(--cd-brown) !important; }

  /* CTA pill */
  .main-navigation ul.menu > li.menu-item-cta{ margin-left:16px; }
  .main-navigation ul.menu > li.menu-item-cta > a{
    background:var(--cd-brown) !important; color:#fff !important;
    padding:9px 22px !important; border-radius:var(--cd-r-pill) !important; margin:0 !important;
    box-shadow:var(--cd-shadow-brown);
    transition:transform .25s var(--cd-ease), box-shadow .25s var(--cd-ease), background .25s var(--cd-ease);
  }
  .main-navigation ul.menu > li.menu-item-cta > a::after{ display:none !important; }
  .main-navigation ul.menu > li.menu-item-cta > a:hover{
    background:var(--cd-ink) !important; transform:translateY(-2px);
  }

  /* cart */
  .site-header-cart{ flex:0 0 auto !important; margin:0 0 0 22px !important; padding:0 !important; display:flex; align-items:center; }
  .site-header-cart .cart-contents{ display:inline-flex; align-items:center; gap:9px; color:var(--cd-ink) !important; font-weight:700; }
  .site-header-cart .cart-contents .count{
    background:color-mix(in srgb, var(--cd-brown) 12%, var(--cd-white));
    color:var(--cd-brown); font-weight:700; font-size:.72rem;
    padding:2px 10px; border-radius:var(--cd-r-pill); line-height:1.7;
  }
}
@media (max-width:767px){
  .site-header .col-full{ display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; min-height:56px; }
  .button.menu-toggle{
    background:transparent !important; color:var(--cd-ink) !important;
    border:1.5px solid var(--cd-line) !important; border-radius:var(--cd-r-pill) !important;
    padding:7px 18px !important; font-weight:600; box-shadow:none !important;
  }
  .main-navigation{ width:100%; }
  .main-navigation.toggled ul.menu{ padding-bottom:12px; }
  .main-navigation ul.menu > li > a{
    padding:13px 0 !important; border-bottom:1px solid var(--cd-line);
    font-size:1.05rem; font-weight:600; color:var(--cd-ink) !important;
  }
  .main-navigation ul.menu ul.sub-menu{ margin-left:16px; }
  .main-navigation ul.menu ul.sub-menu li a{ padding:11px 0; color:var(--cd-ink-soft) !important; }
  .main-navigation ul.menu > li.menu-item-cta > a{
    background:var(--cd-brown); color:#fff !important; border-radius:var(--cd-r-pill);
    text-align:center; margin-top:14px; padding:12px 0 !important; border-bottom:0;
  }
}

/* ============================================================
   05. BUTTONS — one system, pill
   ============================================================ */
button,input[type="button"],input[type="submit"],
.button,a.button,
.woocommerce a.button,.woocommerce button.button,.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce a.button.alt,.woocommerce button.button.alt,
.wp-block-button__link{
  background:var(--cd-brown);
  color:var(--cd-white);
  border-radius:var(--cd-r-pill);
  font-family:var(--cd-font);
  font-weight:700;
  letter-spacing:.01em;
  padding:.78em 1.7em;
  border:1px solid var(--cd-brown);
  transition:background .25s var(--cd-ease), color .25s var(--cd-ease), transform .2s var(--cd-ease), box-shadow .25s var(--cd-ease);
}
@media (hover:hover){
button:hover,input[type="button"]:hover,input[type="submit"]:hover,
.button:hover,a.button:hover,
.woocommerce a.button:hover,.woocommerce button.button:hover,.woocommerce input.button:hover,
.woocommerce a.button.alt:hover,.woocommerce button.button.alt:hover,
.wp-block-button__link:hover{
  background:var(--cd-ink);
  color:var(--cd-white);
  border-color:var(--cd-ink);
  transform:translateY(-1px);
  box-shadow:var(--cd-shadow-sm);
}
}
.button:disabled,button:disabled,.woocommerce a.button.disabled,.woocommerce button.button:disabled{
  opacity:.5; cursor:not-allowed; transform:none !important; box-shadow:none !important;
}
/* ghost variant (hero secondary) */
.cd-ghost .wp-block-button__link{
  background:transparent !important;
  border:1.5px solid color-mix(in srgb, var(--cd-white) 60%, transparent) !important;
  color:var(--cd-white) !important;
  box-shadow:none;
}
.cd-ghost .wp-block-button__link:hover{
  background:var(--cd-white) !important; color:var(--cd-ink) !important; border-color:var(--cd-white) !important;
}
.wp-block-buttons{ gap:14px; }

/* ============================================================
   06. HOMEPAGE — hero, how-it-works, section rhythm
   ============================================================ */
.home .site-main{ padding-top:0 !important; }
.home .entry-header,.page-id-318 .entry-header{ display:none !important; }
.home .entry-content{ margin-top:0 !important; }

.home .entry-content > .wp-block-cover:first-of-type{
  min-height:min(104vh, 940px) !important;
  margin-top:0;
}
.home .entry-content > .wp-block-cover:first-of-type .wp-block-cover__background{
  background:
    linear-gradient(180deg, rgba(43,35,32,.58) 0%, rgba(43,35,32,.34) 42%, rgba(43,35,32,.70) 100%),
    radial-gradient(95% 75% at 50% 42%, transparent 34%, rgba(43,35,32,.28)) !important;
  opacity:1 !important;
}
.home .entry-content > .wp-block-cover:first-of-type .wp-block-cover__inner-container{ max-width:780px; }
.home .entry-content > .wp-block-cover:first-of-type h1{
  font-size:clamp(2.6rem, 5.4vw, 4.4rem) !important;
  max-width:17ch; margin-inline:auto;
  text-shadow:0 2px 30px rgba(0,0,0,.25);
}

/* section headings + rhythm */
.home .entry-content .wp-block-heading{
  font-size:clamp(2rem, 3.6vw, 2.9rem) !important;
  margin-bottom:.45em !important;
}
.home .entry-content .wp-block-heading::after{
  content:""; display:block; width:56px; height:3px; border-radius:var(--cd-r-pill);
  background:var(--cd-brown); margin:18px auto 4px;
}
.home .entry-content > .wp-block-group{ padding-block:clamp(48px, 6.5vw, 92px); }

/* how-it-works band */
.cd-hiw{
  margin-inline:calc(50% - 50vw);
  background:var(--cd-cream);
  padding:clamp(48px, 6vw, 84px) 20px;
}
.cd-hiw-inner{
  position:relative; max-width:1080px; margin-inline:auto;
  display:grid; grid-template-columns:repeat(4, 1fr); gap:28px;
}
.cd-hiw-inner::before{
  content:""; position:absolute; top:34px; left:12.5%; right:12.5%; height:2px; z-index:0;
  background:repeating-linear-gradient(90deg, color-mix(in srgb, var(--cd-brown) 30%, transparent) 0 8px, transparent 8px 16px);
}
.cd-hiw-step{ position:relative; z-index:1; text-align:center; }
.cd-hiw-num{
  display:inline-flex; align-items:center; justify-content:center;
  width:68px; height:68px; border-radius:var(--cd-r-pill);
  background:var(--cd-brown); color:#fff; font-weight:800; font-size:1.5rem;
  box-shadow:var(--cd-shadow-brown);
  outline:6px solid var(--cd-cream);
  transition:transform .3s var(--cd-ease), background .3s var(--cd-ease);
}
.cd-hiw-step:hover .cd-hiw-num{ transform:translateY(-4px); background:var(--cd-brown-dark); }
.cd-hiw-step h3{ margin:18px 0 6px; font-size:1.12rem; }
.cd-hiw-step p{ margin:0; color:var(--cd-ink-soft); font-size:.95rem; }

/* ============================================================
   07. PRODUCT LOOPS — clean, borderless, photo-first
   ============================================================ */
.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product{
  background:transparent !important;
  border:none !important; border-radius:0 !important; box-shadow:none !important;
  padding:0 0 14px !important; margin-bottom:40px !important;
  text-align:center;
}
.woocommerce ul.products li.product > a{ display:block; overflow:hidden; border-radius:var(--cd-r-lg); }
.woocommerce ul.products li.product a img{
  width:100% !important; aspect-ratio:1/1; height:auto !important;
  object-fit:contain !important;
  background:transparent !important; border-radius:0 !important; padding:0 !important;
  margin:0 0 14px !important;
  transition:transform .55s var(--cd-ease);
}
.woocommerce ul.products li.product:hover a img{ transform:scale(1.05); }
.woocommerce ul.products li.product .woocommerce-loop-product__title{
  font-weight:700; font-size:1.04rem; color:var(--cd-ink); padding:0 0 .35em;
}
.woocommerce ul.products li.product .price{
  color:var(--cd-brown); font-weight:700; font-size:.98rem; margin-bottom:.9em;
}
.woocommerce ul.products li.product .button,
.woocommerce ul.products li.product .added_to_cart{
  background:transparent !important; color:var(--cd-brown) !important;
  border:1.5px solid color-mix(in srgb, var(--cd-brown) 55%, transparent) !important;
  border-radius:var(--cd-r-pill) !important;
  padding:9px 26px !important; font-weight:700 !important; font-size:.88rem !important;
  margin-top:2px; box-shadow:none !important;
}
@media (hover:hover){
.woocommerce ul.products li.product .button:hover,
.woocommerce ul.products li.product .added_to_cart:hover{
  background:var(--cd-brown) !important; color:#fff !important; border-color:var(--cd-brown) !important;
  transform:translateY(-2px);
  box-shadow:0 6px 16px color-mix(in srgb, var(--cd-brown) 26%, transparent) !important;
}
}
.woocommerce ul.products{ gap:14px 30px; }

/* sale badge */
.woocommerce span.onsale{
  background:var(--cd-brown); color:#fff;
  border-radius:var(--cd-r-pill); padding:4px 14px;
  font-weight:700; font-size:.8rem; min-height:0; line-height:1.7;
  top:10px; left:10px;
}
.woocommerce .star-rating span{ color:var(--cd-brown); }

/* category tiles */
.woocommerce ul.products li.product-category > a{ display:block; overflow:hidden; border-radius:var(--cd-r-lg); }
.woocommerce ul.products li.product-category img{ transition:transform .55s var(--cd-ease); }
.woocommerce ul.products li.product-category:hover img{ transform:scale(1.06); }
.woocommerce ul.products li.product-category h2.woocommerce-loop-category__title{
  font-weight:700 !important; font-size:1.08rem !important; color:var(--cd-ink) !important; margin-top:16px !important;
}
.woocommerce ul.products li.product-category h2 .count{
  background:none !important; color:var(--cd-brown) !important; font-weight:600; font-size:.92em;
}

/* ============================================================
   08. SHOP / ARCHIVE chrome
   ============================================================ */
.woocommerce-products-header{ padding:clamp(24px, 4vw, 44px) 0 4px; }
.woocommerce-products-header__title.page-title{ font-size:clamp(2rem, 3.6vw, 2.9rem); margin-bottom:14px; }
.woocommerce-breadcrumb{
  font-size:.85rem; color:var(--cd-ink-soft) !important; margin:18px 0 4px !important;
}
.woocommerce-breadcrumb a{ color:var(--cd-brown); font-weight:600; }
.woocommerce-result-count{ color:var(--cd-ink-soft); font-size:.92rem; padding-top:.6em; }
.woocommerce-ordering select{
  font:inherit; font-size:.92rem; color:var(--cd-ink);
  border:1.5px solid var(--cd-line); border-radius:var(--cd-r-sm);
  padding:9px 34px 9px 14px; background-color:#fff;
}
.woocommerce-pagination{ margin-top:10px; }
.woocommerce nav.woocommerce-pagination ul{ border:0; display:inline-flex; gap:6px; }
.woocommerce nav.woocommerce-pagination ul li{ border:0; }
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span{
  display:inline-flex; align-items:center; justify-content:center;
  min-width:42px; height:42px; padding:0 6px;
  border-radius:var(--cd-r-pill); background:transparent;
  color:var(--cd-ink); font-weight:600;
  transition:background .2s var(--cd-ease), color .2s var(--cd-ease);
}
.woocommerce nav.woocommerce-pagination ul li a:hover{ background:var(--cd-brown-soft); color:var(--cd-brown); }
.woocommerce nav.woocommerce-pagination ul li span.current{ background:var(--cd-brown); color:#fff; }

/* ============================================================
   09. SINGLE PRODUCT
   ============================================================ */
.single-product div.product .woocommerce-product-gallery{ margin-bottom:2em; }
.single-product div.product .woocommerce-product-gallery img{
  border-radius:var(--cd-r-lg);
  background:var(--cd-tile);
}
.single-product div.product .flex-control-thumbs{ margin-top:12px; display:flex; gap:10px; }
.single-product div.product .flex-control-thumbs li{ width:auto; }
.single-product div.product .flex-control-thumbs li img{
  width:72px; border-radius:var(--cd-r-sm); opacity:.55; border:2px solid transparent;
  transition:opacity .25s var(--cd-ease), border-color .25s var(--cd-ease);
}
.single-product div.product .flex-control-thumbs li img.flex-active,
.single-product div.product .flex-control-thumbs li img:hover{ opacity:1; border-color:var(--cd-brown); }

.single-product div.product .entry-summary .product_title{
  font-size:clamp(1.8rem, 3vw, 2.5rem);
}
.single-product div.product .entry-summary p.price,
.single-product div.product .entry-summary span.price{
  font-size:1.45rem; color:var(--cd-brown); font-weight:800; margin:14px 0 6px;
}
.single-product div.product .woocommerce-product-details__short-description{ color:var(--cd-ink-soft); max-width:56ch; }

.single-product div.product table.variations{ margin:10px 0 4px; }
.single-product div.product table.variations th.label{ font-weight:700; font-size:.92rem; padding-right:14px; }
.single-product div.product table.variations select{
  font:inherit; font-size:.95rem; padding:10px 34px 10px 14px;
  border:1.5px solid var(--cd-line); border-radius:var(--cd-r-sm); background-color:#fff;
}
.reset_variations{ font-size:.84rem; color:var(--cd-ink-soft) !important; }
.woocommerce-variation-price .price{ color:var(--cd-brown) !important; font-weight:800; }

/* variation swatch buttons (Variation Swatches plugin) */
.variable-items-wrapper .variable-item:not(.radio-variable-item){
  border:1.5px solid var(--cd-line) !important; border-radius:var(--cd-r-sm) !important;
  box-shadow:none !important; font-weight:600;
  transition:border-color .2s var(--cd-ease), background .2s var(--cd-ease);
}
.variable-items-wrapper .variable-item:not(.radio-variable-item):hover{ border-color:var(--cd-brown) !important; }
.variable-items-wrapper .variable-item.selected,
.variable-items-wrapper .variable-item.selected:hover{
  border-color:var(--cd-brown) !important; background:var(--cd-brown-soft) !important; box-shadow:none !important;
}

.single-product div.product form.cart{ margin:22px 0 !important; }
.single-product div.product form.cart .quantity .qty{
  width:76px; padding:11px 8px; text-align:center; font:inherit; font-weight:600;
  border:1.5px solid var(--cd-line); border-radius:var(--cd-r-sm); background:#fff;
}
.single-product div.product .single_add_to_cart_button{
  padding:14px 36px !important; font-size:1rem !important;
}
.single-product div.product .product_meta{
  margin-top:22px; padding-top:18px; border-top:1px solid var(--cd-line);
  font-size:.88rem; color:var(--cd-ink-soft);
}
.single-product div.product .product_meta a{ color:var(--cd-brown); font-weight:600; }

/* tabs */
.woocommerce-tabs{ clear:both; }
.woocommerce-tabs ul.tabs{
  list-style:none; margin:44px 0 0 !important; padding:0 !important;
  display:flex; gap:26px; border-bottom:1px solid var(--cd-line);
}
.woocommerce-tabs ul.tabs li{
  background:transparent !important; border:0 !important; margin:0 !important; padding:0 !important;
  border-radius:0 !important; box-shadow:none !important;
}
.woocommerce-tabs ul.tabs li::before,.woocommerce-tabs ul.tabs li::after{ display:none !important; }
.woocommerce-tabs ul.tabs li a{
  display:inline-block; padding:14px 2px !important;
  font-weight:700; font-size:.95rem; color:var(--cd-ink-soft) !important;
  border-bottom:2px solid transparent; margin-bottom:-1px;
  transition:color .2s var(--cd-ease), border-color .2s var(--cd-ease);
}
.woocommerce-tabs ul.tabs li.active a{ color:var(--cd-ink) !important; border-bottom-color:var(--cd-brown); }
.woocommerce-tabs .panel{ padding:26px 0 6px !important; background:transparent !important; margin:0 !important; box-shadow:none !important; }
.woocommerce-tabs .panel h2:first-of-type{ font-size:1.25rem; margin-bottom:12px; }

.related.products > h2, .upsells.products > h2{
  font-size:clamp(1.5rem, 2.6vw, 2.1rem); margin:24px 0 26px; text-align:center;
}
.related.products > h2::after, .upsells.products > h2::after{
  content:""; display:block; width:44px; height:3px; border-radius:var(--cd-r-pill);
  background:var(--cd-brown); margin:14px auto 0;
}

/* ============================================================
   10. CART
   ============================================================ */
.woocommerce-cart .entry-header{ display:block !important; }
.woocommerce-cart h1.entry-title{ font-size:clamp(1.9rem, 3.2vw, 2.6rem); margin-bottom:18px; }
.woocommerce-cart table.shop_table{
  border:1px solid var(--cd-line); border-radius:var(--cd-r-lg);
  border-collapse:separate; border-spacing:0; overflow:hidden;
}
.woocommerce-cart table.shop_table th{
  background:var(--cd-cream); font-size:.78rem; letter-spacing:.1em; text-transform:uppercase;
  color:var(--cd-ink-soft); padding:14px 12px;
}
.woocommerce-cart table.shop_table td{ border-top:1px solid var(--cd-line); padding:16px 12px; background:#fff; }
.woocommerce-cart table.shop_table td.product-thumbnail img{
  width:72px; border-radius:var(--cd-r-sm); background:var(--cd-tile);
}
.woocommerce-cart table.shop_table td.product-name a{ font-weight:700; color:var(--cd-ink); }
.woocommerce a.remove{
  color:var(--cd-ink-soft) !important; border:1.5px solid var(--cd-line);
  width:28px; height:28px; line-height:25px; border-radius:var(--cd-r-pill); font-weight:400;
  transition:all .2s var(--cd-ease);
}
.woocommerce a.remove:hover{ background:var(--cd-brown) !important; border-color:var(--cd-brown); color:#fff !important; }
.woocommerce-cart .quantity .qty{
  width:70px; padding:9px 6px; text-align:center; font:inherit; font-weight:600;
  border:1.5px solid var(--cd-line); border-radius:var(--cd-r-sm);
}
.woocommerce-cart td.actions .coupon .input-text{
  padding:11px 14px; border:1.5px solid var(--cd-line); border-radius:var(--cd-r-sm); font:inherit; font-size:.92rem;
}
.cart_totals h2{ font-size:1.3rem; }
.cart_totals table.shop_table{ border:1px solid var(--cd-line); border-radius:var(--cd-r-lg); }
.wc-proceed-to-checkout a.checkout-button{
  width:100%; text-align:center; padding:16px !important; font-size:1.02rem !important;
}

/* ============================================================
   11. CHECKOUT + FORMS
   ============================================================ */
.woocommerce-checkout .entry-header{ display:block !important; }
.woocommerce-checkout h1.entry-title{ font-size:clamp(1.9rem, 3.2vw, 2.6rem); margin-bottom:18px; }

#cd-pickup-fields{
  background:var(--cd-cream);
  border-left:4px solid var(--cd-brown);
  border-radius:var(--cd-r-sm);
  padding:24px 26px 16px;
  margin-bottom:30px;
}
#cd-pickup-fields h3{ margin:0 0 6px; font-size:1.2rem; }
#cd-pickup-fields > p{ color:var(--cd-ink-soft); font-size:.93rem; margin-bottom:16px; }
.cd-pickup-note{ font-size:.88rem; color:var(--cd-brown); font-weight:600; }

.woocommerce form .form-row label{ font-weight:600; font-size:.92rem; color:var(--cd-ink); }
.woocommerce form .form-row .required{ color:var(--cd-brown); text-decoration:none; }
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.select2-container--default .select2-selection--single{
  font:inherit; font-size:.96rem; color:var(--cd-ink);
  padding:12px 14px; background:#fff;
  border:1.5px solid var(--cd-line) !important; border-radius:var(--cd-r-sm) !important;
  box-shadow:none;
  transition:border-color .2s var(--cd-ease), box-shadow .2s var(--cd-ease);
}
.select2-container--default .select2-selection--single{ height:auto; padding:9px 14px; }
.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus,
.woocommerce form .form-row select:focus{
  outline:none; border-color:var(--cd-brown) !important;
  box-shadow:0 0 0 3px color-mix(in srgb, var(--cd-brown) 18%, transparent);
}

/* flatpickr brand accent */
.flatpickr-calendar{ border-radius:14px; box-shadow:var(--cd-shadow-md) !important; border:1px solid var(--cd-line); font-family:var(--cd-font); }
.flatpickr-day.selected,.flatpickr-day.selected:hover{
  background:var(--cd-brown) !important; border-color:var(--cd-brown) !important;
}
.flatpickr-day.today{ border-color:var(--cd-brown); }
.flatpickr-day:hover{ background:var(--cd-brown-soft); border-color:var(--cd-brown-soft); }

#order_review_heading{ font-size:1.3rem; margin-top:10px; }
#order_review{
  background:#fff; border:1px solid var(--cd-line); border-radius:var(--cd-r-lg); padding:24px;
}
#order_review table.shop_table{ border:0; }
#order_review table.shop_table td,#order_review table.shop_table th{ border-color:var(--cd-line); }
#payment{ background:var(--cd-cream) !important; border-radius:var(--cd-r-sm); }
#payment .payment_box{ background:color-mix(in srgb, var(--cd-ink) 6%, var(--cd-cream)) !important; border-radius:var(--cd-r-sm); }
#payment .payment_box::before{ display:none; }
#place_order{ width:100%; padding:16px !important; font-size:1.02rem !important; }

/* notices */
.woocommerce-message,.woocommerce-info{
  border-top-color:var(--cd-brown); background:var(--cd-cream); color:var(--cd-ink);
  border-radius:0 0 var(--cd-r-sm) var(--cd-r-sm);
}
.woocommerce-message::before,.woocommerce-info::before{ color:var(--cd-brown); }
.woocommerce-error{ border-radius:0 0 var(--cd-r-sm) var(--cd-r-sm); }

/* ============================================================
   12. FOOTER + handheld bar
   ============================================================ */
.site-footer{ background:var(--cd-ink) !important; color:color-mix(in srgb, #fff 72%, var(--cd-ink)); border-top:0 !important; }
.cd-footer{ padding:clamp(48px, 6vw, 80px) 0 clamp(30px, 4vw, 44px); }
.cd-footer-grid{ display:grid; grid-template-columns:1fr 1fr 1fr 1.3fr; gap:40px; }
.cd-footer-logo{ font-weight:800; font-size:1.6rem; color:#fff; letter-spacing:-.02em; display:block; }
.cd-footer-brand p{ margin:16px 0 20px; max-width:340px; font-size:.95rem; line-height:1.7; color:color-mix(in srgb, #fff 64%, var(--cd-ink)); }
.cd-footer-cta{
  display:inline-flex; align-items:center; gap:6px; color:var(--cd-cream) !important; font-weight:700;
  border-bottom:2px solid color-mix(in srgb, var(--cd-brown) 75%, transparent); padding-bottom:3px;
  transition:color .25s var(--cd-ease), border-color .25s var(--cd-ease);
}
.cd-footer-cta:hover{ color:#fff !important; border-color:var(--cd-brown); }
.cd-footer-col h4{ color:#fff; font-size:.82rem; letter-spacing:.14em; text-transform:uppercase; margin-bottom:16px; font-weight:700; }
.cd-footer-col ul{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:11px; }
.cd-footer-col a{
  color:color-mix(in srgb, #fff 68%, var(--cd-ink)) !important; font-size:.95rem; display:inline-block;
  transition:color .25s var(--cd-ease), transform .25s var(--cd-ease);
}
.cd-footer-col a:hover{ color:var(--cd-cream) !important; transform:translateX(3px); }
.cd-footer-contact li{ color:color-mix(in srgb, #fff 64%, var(--cd-ink)); font-size:.95rem; }
.site-footer .site-info{
  border-top:1px solid var(--cd-line-dark);
  padding:22px 0 8px; margin:0;
  display:flex; flex-wrap:wrap; justify-content:space-between; gap:10px;
  font-size:.86rem; color:color-mix(in srgb, #fff 55%, var(--cd-ink)); text-align:left;
}
.cd-foot-legal{ display:inline-flex; gap:22px; }
.cd-foot-legal a{ color:color-mix(in srgb, #fff 60%, var(--cd-ink)) !important; }
.cd-foot-legal a:hover{ color:var(--cd-cream) !important; }

.storefront-handheld-footer-bar{ background:var(--cd-ink); border-top:1px solid var(--cd-line-dark); }
.storefront-handheld-footer-bar ul li > a{ color:var(--cd-cream) !important; }
.storefront-handheld-footer-bar ul li.cart .count{ background:var(--cd-brown); color:#fff; border-color:var(--cd-brown); }

/* ============================================================
   13. CONTENT PAGES
   ============================================================ */
body.page:not(.woocommerce-page):not(.home):not(.blog) .entry-header{ display:none !important; }
.page .entry-content h2{ font-size:clamp(1.5rem, 2.6vw, 2.1rem); }

/* ============================================================
   14. ACCESSIBILITY + MOTION
   ============================================================ */
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,.button:focus-visible{
  outline:none;
  box-shadow:0 0 0 3px color-mix(in srgb, var(--cd-brown) 45%, transparent);
  border-radius:var(--cd-r-sm);
}
::selection{ background:var(--cd-brown); color:#fff; }
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{ animation-duration:.001ms !important; transition-duration:.001ms !important; scroll-behavior:auto !important; }
}

/* ============================================================
   15. MOBILE
   ============================================================ */
@media (max-width:768px){
  .home .entry-content > .wp-block-cover:first-of-type{ min-height:86vh !important; }
  .home .entry-content > .wp-block-cover:first-of-type h1{ font-size:clamp(2.2rem, 9vw, 3rem) !important; }

  .cd-hiw-inner{ grid-template-columns:1fr 1fr; gap:34px 20px; }
  .cd-hiw-inner::before{ display:none; }
  .cd-hiw-num{ width:56px; height:56px; font-size:1.25rem; }

  .woocommerce ul.products,.woocommerce-page ul.products{
    display:grid !important; grid-template-columns:1fr 1fr !important;
    gap:6px 14px !important; margin:0 !important;
  }
  .woocommerce ul.products::before,.woocommerce ul.products::after{ content:none !important; display:none !important; }
  .woocommerce ul.products li.product,.woocommerce-page ul.products li.product{
    width:auto !important; float:none !important; margin:0 0 22px !important;
  }
  .woocommerce ul.products li.product .button,
  .woocommerce ul.products li.product .added_to_cart{ padding:8px 16px !important; font-size:.8rem !important; }
  .woocommerce ul.products li.product-category h2{ font-size:.95rem !important; }

  .cd-footer-grid{ grid-template-columns:1fr 1fr; gap:34px; }

  .single-product div.product .entry-summary{ margin-top:20px; }
  .woocommerce-tabs ul.tabs{ gap:18px; overflow-x:auto; }
}
@media (max-width:560px){
  .cd-footer-grid{ grid-template-columns:1fr; gap:30px; }
  .site-footer .site-info{ flex-direction:column; }
  .woocommerce-cart table.shop_table td.actions .coupon{ display:flex; gap:8px; }
}


/* --- 2.0.1 fixes: hero flush under header, h1 accent leak --- */
.home .site-header{ margin-bottom:0 !important; }
.home .entry-content h1.wp-block-heading::after{ display:none !important; }
.home .entry-content h1.wp-block-heading{ margin-bottom:0 !important; }


/* --- 2.0.2: hero button pair consistency --- */
.home .wp-block-cover .wp-block-button__link{
  border-radius:var(--cd-r-pill) !important;
  padding:14px 34px !important;
  font-size:1rem;
}


/* --- 2.0.3: product-page floating nav off, pagination specificity --- */
.storefront-product-pagination{ display:none !important; }

.woocommerce-pagination .page-numbers li .page-numbers{
  display:inline-flex; align-items:center; justify-content:center;
  min-width:42px; height:42px; padding:0 8px;
  border-radius:var(--cd-r-pill); background:transparent;
  color:var(--cd-ink); font-weight:600;
  transition:background .2s var(--cd-ease), color .2s var(--cd-ease);
}
.woocommerce-pagination .page-numbers li a.page-numbers:hover{
  background:var(--cd-brown-soft); color:var(--cd-brown);
}
.woocommerce-pagination .page-numbers li .page-numbers.current{
  background:var(--cd-brown); color:#fff;
}


/* --- 2.0.4: form control accents + input backgrounds --- */
input[type="radio"],input[type="checkbox"]{ accent-color:var(--cd-brown); }
.woocommerce-info a,.woocommerce-message a{ color:var(--cd-brown); font-weight:700; }
.woocommerce-cart .quantity .qty,
.woocommerce-cart td.actions .coupon .input-text,
.single-product div.product form.cart .quantity .qty{ background:#fff !important; }


/* --- 2.0.5: contact page --- */
.cd-contact{ max-width:980px; margin-inline:auto; padding:clamp(4px,1.2vw,10px) 0 clamp(40px,6vw,72px); }
.cd-contact-head h1{ font-size:clamp(2rem, 3.6vw, 2.9rem); text-align:center; }
.cd-contact-head p{ text-align:center; color:var(--cd-ink-soft); max-width:52ch; margin:14px auto 0; }
.cd-contact-cards{ display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin:44px 0 60px; }
.cd-contact-card{
  display:flex; flex-direction:column; gap:6px;
  background:var(--cd-cream); border-radius:var(--cd-r-lg);
  padding:26px 24px;
  transition:transform .3s var(--cd-ease), box-shadow .3s var(--cd-ease);
}
a.cd-contact-card:hover{ transform:translateY(-4px); box-shadow:var(--cd-shadow-sm); }
.cd-cc-label{ font-size:.76rem; letter-spacing:.14em; text-transform:uppercase; color:var(--cd-brown); font-weight:700; }
.cd-contact-card strong{ font-size:1.12rem; color:var(--cd-ink); word-break:break-word; }
.cd-cc-sub{ font-size:.88rem; color:var(--cd-ink-soft); }
.cd-contact-sub{ text-align:center; font-size:clamp(1.5rem,2.6vw,2rem); }
.cd-contact-sub::after{
  content:""; display:block; width:44px; height:3px; border-radius:var(--cd-r-pill);
  background:var(--cd-brown); margin:14px auto 0;
}
.cd-contact-note{ text-align:center; color:var(--cd-ink-soft); margin:14px 0 26px; }
.cd-store-chips{ display:flex; flex-wrap:wrap; gap:10px; justify-content:center; }
.cd-store-chips a{
  padding:10px 20px; border:1.5px solid var(--cd-line); border-radius:var(--cd-r-pill);
  font-weight:600; font-size:.93rem; color:var(--cd-ink) !important;
  transition:background .25s var(--cd-ease), color .25s var(--cd-ease), border-color .25s var(--cd-ease), transform .25s var(--cd-ease);
}
.cd-store-chips a:hover{ background:var(--cd-brown); color:#fff !important; border-color:var(--cd-brown); transform:translateY(-2px); }
@media (max-width:760px){ .cd-contact-cards{ grid-template-columns:1fr; } }


/* ============================================================
   2.1.0 — HOME reorder: category slider, full-screen bands,
   product sections, closing CTA
   ============================================================ */

/* ---- product sections (Our Cakes / Cupcake Favourites) ---- */
.cd-prodsec{ padding-block:clamp(48px,6.5vw,92px); }
.cd-prodsec-inner{ max-width:var(--cd-maxw); margin-inline:auto; }
.cd-prodsec-inner > h2,.cd-cats-head h2{
  font-size:clamp(2rem,3.6vw,2.9rem); letter-spacing:-.02em; margin-bottom:.45em;
}
.cd-prodsec-inner > h2{ text-align:center; }
.cd-prodsec-inner > h2::after{
  content:""; display:block; width:56px; height:3px; border-radius:var(--cd-r-pill);
  background:var(--cd-brown); margin:18px auto 34px;
}
.cd-prodsec--cream{ margin-inline:calc(50% - 50vw); background:var(--cd-cream); padding-inline:20px; }

/* ---- category slider ---- */
.cd-cats{ max-width:var(--cd-maxw); margin-inline:auto; padding-block:clamp(48px,6.5vw,92px) clamp(28px,4vw,52px); }
.cd-cats-head{ display:flex; align-items:flex-end; justify-content:space-between; gap:20px; margin-bottom:30px; }
.cd-cats-head h2{ margin:0; }
.cd-cats-head h2::after{
  content:""; display:block; width:56px; height:3px; border-radius:var(--cd-r-pill);
  background:var(--cd-brown); margin-top:16px;
}
.cd-cats-nav{ display:flex; gap:10px; }
.cd-cat-arrow{
  width:52px; height:52px; border-radius:var(--cd-r-pill);
  border:1.5px solid var(--cd-line); background:transparent; color:var(--cd-ink);
  display:inline-flex; align-items:center; justify-content:center; padding:0;
  transition:background .25s var(--cd-ease), color .25s var(--cd-ease), border-color .25s var(--cd-ease), transform .25s var(--cd-ease);
}
.cd-cat-arrow:hover{ background:var(--cd-brown); color:#fff; border-color:var(--cd-brown); transform:translateY(-2px); }
.cd-cat-arrow:disabled{ opacity:.3; cursor:default; }
.cd-cat-arrow:disabled:hover{ background:transparent; color:var(--cd-ink); border-color:var(--cd-line); transform:none; }

.cd-cats ul.products{
  display:flex !important; flex-wrap:nowrap !important; gap:24px !important;
  overflow-x:auto; scroll-snap-type:x mandatory; scrollbar-width:none;
  margin:0 !important; padding-bottom:8px;
}
.cd-cats ul.products::-webkit-scrollbar{ display:none; }
.cd-cats ul.products::before,.cd-cats ul.products::after{ content:none !important; display:none !important; }
.cd-cats ul.products li.product-category{
  flex:0 0 calc((100% - 4 * 24px) / 5) !important;
  width:auto !important; float:none !important; margin:0 !important;
  scroll-snap-align:start;
}

/* ---- full-screen lifestyle bands ---- */
.cd-band{
  margin-inline:calc(50% - 50vw);
  display:grid; grid-template-columns:1fr 1fr;
  min-height:min(64vh, 560px);
  background:var(--cd-cream);
}
.cd-band-media{ position:relative; overflow:hidden; }
.cd-band-media img{
  position:absolute; inset:0; width:100%; height:100%;
  object-fit:cover; display:block;
}
.cd-band-copy{
  display:flex; flex-direction:column; justify-content:center; align-items:flex-start;
  padding:clamp(40px,6vw,110px);
}
.cd-band-copy h2{ font-size:clamp(2rem,3.4vw,3rem); max-width:16ch; }
.cd-band-copy p{ margin:20px 0 0; color:var(--cd-ink-soft); font-size:1.05rem; max-width:46ch; line-height:1.75; }
.cd-band-btn{
  display:inline-flex; align-items:center; margin-top:32px;
  background:var(--cd-brown); color:#fff !important; font-weight:700;
  padding:14px 34px; border-radius:var(--cd-r-pill);
  box-shadow:var(--cd-shadow-brown);
  transition:background .25s var(--cd-ease), transform .2s var(--cd-ease), box-shadow .25s var(--cd-ease);
}
.cd-band-btn:hover{ background:var(--cd-ink); transform:translateY(-2px); }
.cd-band--reverse .cd-band-media{ order:2; }
.cd-band--reverse .cd-band-copy{ order:1; align-items:flex-start; }

/* ---- closing CTA ---- */
.cd-cta{
  margin-inline:calc(50% - 50vw);
  background:var(--cd-ink);
  position:relative; overflow:hidden;
  padding:clamp(80px,10vw,140px) 20px;
  text-align:center;
}
.cd-cta::before{
  content:""; position:absolute; inset:0;
  background:radial-gradient(60% 120% at 50% 0%, color-mix(in srgb, var(--cd-brown) 26%, transparent), transparent 70%);
}
.cd-cta-inner{ position:relative; max-width:640px; margin-inline:auto; }
.cd-cta h2{ color:var(--cd-cream); font-size:clamp(2rem,4vw,3.2rem); }
.cd-cta p{ margin:18px 0 0; color:color-mix(in srgb, #fff 70%, var(--cd-ink)); font-size:1.05rem; }

/* ---- mobile ---- */
@media (max-width:768px){
  .cd-cats ul.products li.product-category{ flex:0 0 62vw !important; }
  .cd-cats-head{ flex-wrap:wrap; }
  .cd-band{ grid-template-columns:1fr; min-height:0; }
  .cd-band-media{ min-height:46vh; order:1 !important; }
  .cd-band-copy{ order:2 !important; padding:36px 22px 48px; }
  .cd-prodsec--cream{ padding-inline:16px; }
}


/* --- 2.1.1: CTA flush to footer, no underlines on pill links --- */
.home .site-main{ margin-bottom:0 !important; padding-bottom:0 !important; }
.home .hentry{ margin-bottom:0 !important; }
.home .entry-content > *:last-child{ margin-bottom:0 !important; }
.cd-band-btn,.cd-band-btn:hover,
.cd-store-chips a,.cd-footer-cta,
.woocommerce ul.products li.product .button{ text-decoration:none !important; }


/* ============================================================
   2.2.0 — PRODUCT PAGE upgrade
   ============================================================ */
/* wider gallery / balanced summary */
@media (min-width:768px){
  .single-product div.product .woocommerce-product-gallery,
  .single-product div.product .images{ width:48% !important; }
  .single-product div.product .entry-summary,
  .single-product div.product .summary{ width:47% !important; }
}

/* trust card under add-to-cart */
.cd-ptrust{
  margin-top:26px;
  background:var(--cd-cream);
  border-radius:var(--cd-r-lg);
  padding:8px 22px;
}
.cd-ptrust-row{
  display:flex; gap:14px; align-items:flex-start;
  padding:14px 0;
}
.cd-ptrust-row + .cd-ptrust-row{ border-top:1px solid var(--cd-line); }
.cd-ptrust-row svg{ width:22px; height:22px; color:var(--cd-brown); flex-shrink:0; margin-top:2px; }
.cd-ptrust-row strong{ display:block; font-size:.95rem; color:var(--cd-ink); }
.cd-ptrust-row span{ display:block; font-size:.86rem; color:var(--cd-ink-soft); margin-top:1px; }

/* quantity stepper group */
.quantity{
  display:inline-flex !important; align-items:center;
  border:1.5px solid var(--cd-line); border-radius:var(--cd-r-pill);
  overflow:hidden; background:#fff;
}
.quantity .qty{
  border:0 !important; border-radius:0 !important;
  width:52px !important; padding:11px 2px !important;
  text-align:center; font:inherit; font-weight:700; background:#fff !important;
  -moz-appearance:textfield; appearance:textfield;
}
.quantity .qty::-webkit-outer-spin-button,
.quantity .qty::-webkit-inner-spin-button{ -webkit-appearance:none; margin:0; }
.cd-qty-btn{
  width:42px; height:46px;
  background:transparent !important; border:0 !important; border-radius:0 !important;
  color:var(--cd-ink) !important; font-size:1.25rem; font-weight:600; line-height:1;
  display:inline-flex; align-items:center; justify-content:center;
  box-shadow:none !important; transform:none !important; padding:0 !important;
}
.cd-qty-btn:hover{ background:var(--cd-brown-soft) !important; color:var(--cd-brown) !important; }

/* meta cleanup */
.single-product div.product .product_meta .sku_wrapper{ display:none !important; }

/* tabs: hide duplicated panel heading, style attributes table */
.woocommerce-tabs .panel > h2:first-of-type{ display:none; }
table.woocommerce-product-attributes{ border:1px solid var(--cd-line); border-radius:var(--cd-r-sm); border-collapse:separate; border-spacing:0; overflow:hidden; max-width:560px; }
table.woocommerce-product-attributes th{
  background:var(--cd-cream); font-weight:700; font-size:.9rem; color:var(--cd-ink);
  padding:12px 16px !important; border:0 !important; width:34%;
}
table.woocommerce-product-attributes td{ padding:12px 16px !important; border:0 !important; color:var(--cd-ink-soft); font-style:normal !important; }
table.woocommerce-product-attributes tr + tr th,
table.woocommerce-product-attributes tr + tr td{ border-top:1px solid var(--cd-line) !important; }

/* variation price row */
.woocommerce-variation.single_variation{ margin-bottom:14px; }
.single-product .related.products,.single-product .upsells.products{ margin-top:clamp(40px,6vw,72px); clear:both; }
@media (max-width:767px){
  .cd-ptrust{ padding:6px 18px; }
}


/* ============================================================
   2.3.0 — CART + CHECKOUT layout polish
   ============================================================ */

/* ---- CART: table left, sticky totals card right ---- */
@media (min-width:901px){
  .woocommerce-cart .entry-content > .woocommerce{
    display:grid; grid-template-columns:1.62fr 1fr; gap:0 44px; align-items:start;
  }
  .woocommerce-cart .entry-content > .woocommerce > .woocommerce-notices-wrapper{ grid-column:1 / -1; }
  .woocommerce-cart form.woocommerce-cart-form{ grid-column:1; grid-row:2; margin:0; }
  .woocommerce-cart .cart-collaterals{ display:contents; }
  .woocommerce-cart .cart-collaterals .cart_totals{
    grid-column:2; grid-row:2;
    position:sticky; top:110px;
    width:100% !important; float:none !important;
  }
  .woocommerce-cart .cart-collaterals .cross-sells{
    grid-column:1; grid-row:3;
    width:100% !important; float:none !important; margin-top:48px;
  }
}
.woocommerce-cart .cart_totals{
  background:var(--cd-cream); border-radius:var(--cd-r-lg); padding:26px 26px 24px;
}
.woocommerce-cart .cart_totals h2{ font-size:1.3rem; margin:0 0 14px; }
.woocommerce-cart .cart_totals table.shop_table{ border:0; background:transparent; }
.woocommerce-cart .cart_totals table.shop_table th,
.woocommerce-cart .cart_totals table.shop_table td{
  background:transparent; border:0; border-top:1px solid var(--cd-line); padding:13px 4px;
}
.woocommerce-cart .cart_totals .order-total .woocommerce-Price-amount{ font-size:1.2rem; color:var(--cd-brown); }
.woocommerce-cart .wc-proceed-to-checkout{ padding-bottom:0; }
.woocommerce-cart .cross-sells > h2{ font-size:clamp(1.4rem,2.4vw,1.9rem); text-align:center; margin-bottom:26px; }
.woocommerce-cart .cross-sells > h2::after{
  content:""; display:block; width:44px; height:3px; border-radius:var(--cd-r-pill);
  background:var(--cd-brown); margin:14px auto 0;
}
/* empty cart state */
.woocommerce-cart .cart-empty{
  text-align:center; font-size:1.25rem; font-weight:700; color:var(--cd-ink);
  margin:48px 0 8px; border:0; padding:0; background:transparent;
}
.woocommerce-cart .return-to-shop{ text-align:center; margin:18px 0 60px; }

/* ---- CHECKOUT: pickup full-width, billing left, sticky summary right ---- */
@media (min-width:901px){
  form.woocommerce-checkout{
    display:grid; grid-template-columns:1.55fr 1fr; gap:0 48px; align-items:start;
  }
  form.woocommerce-checkout #cd-pickup-fields{ grid-column:1 / -1; grid-row:1; width:100%; margin-bottom:34px; }
  form.woocommerce-checkout .col2-set{ grid-column:1; grid-row:2 / 4; width:100% !important; }
  form.woocommerce-checkout #order_review_heading{ grid-column:2; grid-row:2; margin:0 0 16px; font-size:1.3rem; }
  form.woocommerce-checkout #order_review{
    grid-column:2; grid-row:3;
    position:sticky; top:110px; width:100%;
  }
  form.woocommerce-checkout .col2-set .col-1,
  form.woocommerce-checkout .col2-set .col-2{ width:100% !important; float:none !important; margin:0; }
  form.woocommerce-checkout .col2-set .col-2{ margin-top:26px; }
}
.woocommerce-checkout .woocommerce-billing-fields > h3,
.woocommerce-checkout .woocommerce-additional-fields > h3{ font-size:1.3rem; margin-bottom:14px; }
#order_review{ background:var(--cd-cream); border:0; padding:26px; }
#order_review table.shop_table{ background:transparent; border:0; }
#order_review table.shop_table th,#order_review table.shop_table td{
  background:transparent; border:0; border-top:1px solid var(--cd-line); padding:12px 4px;
}
#order_review table.shop_table thead th{ border-top:0; font-size:.78rem; letter-spacing:.1em; text-transform:uppercase; color:var(--cd-ink-soft); }
#order_review .order-total .woocommerce-Price-amount{ font-size:1.2rem; color:var(--cd-brown); }
#payment{ background:transparent !important; }
#payment .wc_payment_method > label{ font-weight:700; }
#payment .payment_box{ background:color-mix(in srgb, var(--cd-brown) 8%, var(--cd-cream)) !important; }
@media (max-width:900px){
  .woocommerce-cart .cart_totals{ margin-top:30px; }
}


/* ============================================================
   2.4.0 — SECOND REFINEMENT PASS
   Motion layer, sticky-bar branding, shop toolbar, tablet,
   account + order-received + form validation states
   ============================================================ */

/* ---- scroll reveal (classes applied by JS only) ---- */
.cd-reveal{
  opacity:0; transform:translateY(22px);
  transition:opacity .6s var(--cd-ease), transform .6s var(--cd-ease);
  will-change:opacity, transform;
}
.cd-reveal.in{ opacity:1; transform:none; }
@media (prefers-reduced-motion: reduce){
  .cd-reveal{ opacity:1 !important; transform:none !important; }
}

/* ---- hero entrance choreography ---- */
@media (prefers-reduced-motion: no-preference){
  .home .entry-content > .wp-block-cover:first-of-type h1,
  .home .entry-content > .wp-block-cover:first-of-type p,
  .home .entry-content > .wp-block-cover:first-of-type .wp-block-buttons{
    opacity:0; transform:translateY(26px);
    animation:cdRise .8s var(--cd-ease) forwards;
  }
  .home .entry-content > .wp-block-cover:first-of-type h1{ animation-delay:.05s; }
  .home .entry-content > .wp-block-cover:first-of-type p{ animation-delay:.18s; }
  .home .entry-content > .wp-block-cover:first-of-type .wp-block-buttons{ animation-delay:.32s; }
}
@keyframes cdRise{ to{ opacity:1; transform:none; } }

/* ---- product gallery zoom trigger ---- */
.woocommerce-product-gallery__trigger{
  border-radius:var(--cd-r-pill) !important;
  background:#fff !important;
  box-shadow:var(--cd-shadow-sm);
  width:42px !important; height:42px !important;
  top:14px !important; right:14px !important;
}

/* ---- sticky add-to-cart bar (Storefront) ---- */
.storefront-sticky-add-to-cart{
  background:color-mix(in srgb, var(--cd-cream) 94%, transparent) !important;
  -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px);
  box-shadow:0 1px 0 var(--cd-line), 0 10px 26px -20px color-mix(in srgb, var(--cd-ink) 55%, transparent);
}
.storefront-sticky-add-to-cart__content-title{ font-weight:700; color:var(--cd-ink); }
.storefront-sticky-add-to-cart__content-price{ color:var(--cd-brown); font-weight:700; }

/* ---- shop toolbar: single pagination (bottom only) ---- */
.site-main > .storefront-sorting:first-of-type .woocommerce-pagination{ display:none; }
.storefront-sorting{ margin-bottom:28px; }

/* ---- tablet: category slider 3-up, band copy comfort ---- */
@media (min-width:769px) and (max-width:1024px){
  .cd-cats ul.products li.product-category{ flex:0 0 calc((100% - 2 * 24px) / 3) !important; }
  .cd-band-copy{ padding:clamp(30px,4vw,54px); }
}

/* ---- account: login/register card + nav states ---- */
.woocommerce-form-login,.woocommerce-form-register{
  max-width:460px; margin:26px auto 60px;
  background:var(--cd-cream); border:0 !important;
  border-radius:var(--cd-r-lg); padding:30px 28px !important;
}
.woocommerce-form-login .woocommerce-form-login__rememberme{ display:block; margin-bottom:14px; }
.woocommerce-MyAccount-navigation ul{ list-style:none; margin:0; padding:0; }
.woocommerce-MyAccount-navigation li a{ display:block; padding:13px 2px; font-weight:600; color:var(--cd-ink-soft); }
.woocommerce-MyAccount-navigation li.is-active a{ color:var(--cd-brown); }
.woocommerce-MyAccount-navigation li a:hover{ color:var(--cd-brown); }

/* ---- order received (thank you) ---- */
.woocommerce-thankyou-order-received{
  font-size:clamp(1.3rem,2.4vw,1.7rem); font-weight:800; color:var(--cd-ink);
  margin:10px 0 6px;
}
ul.woocommerce-thankyou-order-details{
  background:var(--cd-cream); border-radius:var(--cd-r-lg);
  padding:22px 26px !important; margin:24px 0 !important;
  display:flex; flex-wrap:wrap; gap:18px 40px; list-style:none;
}
ul.woocommerce-thankyou-order-details li{
  border:0 !important; padding:0 !important; margin:0 !important;
  font-size:.8rem; letter-spacing:.08em; text-transform:uppercase; color:var(--cd-ink-soft); float:none !important;
}
ul.woocommerce-thankyou-order-details li strong{
  display:block; font-size:1.05rem; letter-spacing:0; text-transform:none; color:var(--cd-ink); margin-top:4px;
}

/* ---- form validation states ---- */
.woocommerce form .form-row.woocommerce-invalid input.input-text,
.woocommerce form .form-row.woocommerce-invalid select{
  border-color:#b23b3b !important;
}
.woocommerce form .form-row.woocommerce-invalid label{ color:#b23b3b; }
.woocommerce form .form-row.woocommerce-validated input.input-text,
.woocommerce form .form-row.woocommerce-validated select{
  border-color:color-mix(in srgb, var(--cd-brown) 50%, transparent) !important;
}


/* ============================================================
   2.4.1 — lifestyle bands: contained 3:2 photos on cream,
   shallow editorial style matching the old site's method
   ============================================================ */
.cd-band{
  min-height:0 !important;
  margin-inline:calc(50% - 50vw);
  background:var(--cd-cream);
  display:grid; grid-template-columns:1fr 1fr;
  gap:clamp(28px,5vw,64px); align-items:center;
  padding-block:clamp(34px,4.5vw,58px);
  padding-inline:calc(50vw - min(var(--cd-maxw), 100vw - 40px) / 2);
}
.cd-band + .cd-band{ padding-top:0; }
.cd-band-media{ position:relative; overflow:visible; }
.cd-band-media img{
  position:static !important; inset:auto !important;
  width:100%; height:auto !important;
  aspect-ratio:3 / 2; object-fit:cover;
  border-radius:var(--cd-r-lg);
  box-shadow:var(--cd-shadow-md);
}
.cd-band-copy{ padding:0 !important; }
@media (max-width:768px){
  .cd-band{ grid-template-columns:1fr; gap:22px; padding-inline:20px; }
  .cd-band-media{ min-height:0 !important; }
  .cd-band-copy{ padding:0 0 14px !important; }
}


/* --- 2.4.2: site logo in header --- */
.site-header .site-logo-anchor img,
.site-header .custom-logo-link img,
.site-header .custom-logo{
  max-height:56px !important; width:auto !important; display:block;
}
.site-header .site-branding{ display:flex; align-items:center; }
.site-header .site-branding .beta.site-title{ display:none; }
@media (max-width:767px){
  .site-header .site-logo-anchor img,
  .site-header .custom-logo-link img,
  .site-header .custom-logo{ max-height:44px !important; }
}


/* ============================================================
   2.4.3 — bands exactly like the old Divi site:
   white background, fixed 480x320 plain image, 30px heading,
   square brown button
   ============================================================ */
.cd-band{
  background:var(--cd-white);
  padding-block:clamp(40px,5vw,64px);
  gap:clamp(30px,4vw,60px);
}
.cd-band + .cd-band{ padding-top:0; }
.cd-band-media img{
  max-width:480px;
  margin-inline:auto;
  border-radius:0 !important;
  box-shadow:none !important;
}
.cd-band-copy h2{ font-size:30px !important; }
.cd-band-copy p{ font-size:1rem; margin-top:16px; }
.cd-band-btn{
  border-radius:0 !important;
  padding:12px 28px;
  font-weight:600;
  box-shadow:none !important;
}
@media (max-width:768px){
  .cd-band-media img{ max-width:100%; }
}


/* ============================================================
   2.4.4 — dropdown: hidden by default, opens on hover/focus
   ============================================================ */
@media (min-width:768px){
  .main-navigation ul.menu ul.sub-menu{
    display:block !important;
    opacity:0; visibility:hidden; pointer-events:none;
    transform:translateY(6px);
    transition:opacity .22s var(--cd-ease), transform .22s var(--cd-ease), visibility 0s linear .22s;
  }
  .main-navigation ul.menu > li:hover > ul.sub-menu,
  .main-navigation ul.menu > li:focus-within > ul.sub-menu{
    opacity:1; visibility:visible; pointer-events:auto;
    transform:none;
    transition:opacity .22s var(--cd-ease), transform .22s var(--cd-ease), visibility 0s;
  }
}


/* ============================================================
   2.5.0 — bands: full-bleed photos at shallow height,
   pill buttons everywhere, new cart icon
   ============================================================ */

/* ---- bands: photo fills its half edge-to-edge ---- */
.cd-band{
  margin-inline:calc(50% - 50vw);
  background:var(--cd-cream);
  display:grid; grid-template-columns:1fr 1fr;
  gap:0 !important; padding:0 !important;
  min-height:min(62vh, 540px) !important;
  align-items:stretch !important;
}
.cd-band + .cd-band{ padding-top:0 !important; }
.cd-band-media{ position:relative; overflow:hidden; }
.cd-band-media img{
  position:absolute !important; inset:0 !important;
  width:100%; height:100% !important; max-width:none;
  aspect-ratio:auto;
  object-fit:cover; object-position:50% 28%;
  border-radius:0 !important; box-shadow:none !important;
  margin:0 !important;
}
.cd-band-copy{
  display:flex; flex-direction:column; justify-content:center; align-items:flex-start;
  padding:clamp(36px, 5vw, 90px) !important;
}
.cd-band-copy h2{ font-size:clamp(1.9rem, 3vw, 2.6rem) !important; }
.cd-band--reverse .cd-band-media{ order:2; }
.cd-band--reverse .cd-band-copy{ order:1; }

/* ---- pill buttons, no more squares ---- */
.cd-band-btn{
  border-radius:var(--cd-r-pill) !important;
  padding:14px 34px !important;
  box-shadow:var(--cd-shadow-brown) !important;
  font-weight:700;
}

/* ---- header cart icon: clean shopping bag ---- */
.site-header-cart .cart-contents::after{
  font-family:inherit !important;
  content:"" !important;
  display:inline-block;
  width:22px; height:22px;
  background:var(--cd-ink);
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 7h12l1 14H5L6 7z'/%3E%3Cpath d='M9 10V7a3 3 0 0 1 6 0v3'/%3E%3C/svg%3E") no-repeat center / contain;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 7h12l1 14H5L6 7z'/%3E%3Cpath d='M9 10V7a3 3 0 0 1 6 0v3'/%3E%3C/svg%3E") no-repeat center / contain;
  margin-left:2px;
}

@media (max-width:768px){
  .cd-band{ grid-template-columns:1fr; min-height:0 !important; }
  .cd-band-media{ min-height:44vh; order:1 !important; }
  .cd-band-copy{ order:2 !important; padding:32px 22px 44px !important; }
}


/* --- 2.5.2: step icons inside the circles --- */
.cd-hiw-num svg{ width:30px; height:30px; color:#fff; display:block; }


/* ============================================================
   2.6.0 — hero ink text on light overlay, click-focus cleanup,
   white step circles, savoury tile fit, cream-section blending,
   location page polish
   ============================================================ */

/* no focus box on mouse clicks; keyboard keeps the ring */
a:focus:not(:focus-visible),
button:focus:not(:focus-visible),
.button:focus:not(:focus-visible){
  outline:none !important; box-shadow:none !important;
}
.main-navigation ul li a:focus{ background:transparent !important; }

/* hero: light cream overlay, ink headline */
.home .entry-content > .wp-block-cover:first-of-type .wp-block-cover__background{
  background:
    linear-gradient(180deg, rgba(253,245,238,.42) 0%, rgba(253,245,238,.10) 46%, rgba(253,245,238,.16) 100%) !important;
  opacity:1 !important;
}
.home .entry-content > .wp-block-cover:first-of-type h1{
  color:var(--cd-ink) !important;
  text-shadow:none !important;
}
.home .entry-content > .wp-block-cover:first-of-type p{
  color:color-mix(in srgb, var(--cd-ink) 78%, var(--cd-cream)) !important;
}

/* step circles: white with brown icons */
.cd-hiw-num{
  background:var(--cd-white) !important;
  border:1.5px solid var(--cd-line);
  box-shadow:var(--cd-shadow-sm) !important;
}
.cd-hiw-num svg{ color:var(--cd-brown) !important; }
.cd-hiw-step:hover .cd-hiw-num{ background:var(--cd-brown-soft) !important; transform:translateY(-4px); }

/* category tiles: never crop the photo */
.cd-cats ul.products li.product-category img{
  aspect-ratio:1 / 1; width:100% !important; height:auto !important;
  object-fit:contain !important;
}

/* cream sections: blend white-background product shots */
.cd-prodsec--cream ul.products img{ mix-blend-mode:multiply; }

/* location + content pages: headline breathing room, card blocks */
body.page:not(.home) .entry-content > .wp-block-group{ padding-top:0 !important; }
.page .entry-content .wp-block-group h1.wp-block-heading{
  margin:0 0 36px !important;
  font-size:clamp(2.1rem, 4vw, 2.9rem) !important;
}
.page .entry-content div[style*="border:1px solid"]{
  background:var(--cd-cream) !important;
  border:0 !important;
  border-radius:var(--cd-r-lg) !important;
}


/* --- 2.6.1: release will-change after reveal so blend modes work --- */
.cd-reveal.in{ will-change:auto; }


/* --- 2.6.2: inline-styled page buttons follow the pill system --- */
.page .entry-content a[style*="background:#80461b"],
.page .entry-content a[style*="background: #80461b"]{
  border-radius:var(--cd-r-pill) !important;
  box-shadow:var(--cd-shadow-brown);
}


/* --- 2.6.3: mobile band photos back (beat stale min-height:0) --- */
@media (max-width:768px){
  .cd-band-media{ min-height:44vh !important; }
}


/* ============================================================
   2.7.0 — hero content raised, shop category pills, store cards
   ============================================================ */
/* hero: content near the top, cakes clear at the bottom */
.home .entry-content > .wp-block-cover:first-of-type{
  align-items:flex-start !important;
}
.home .entry-content > .wp-block-cover:first-of-type .wp-block-cover__inner-container{
  margin-top:0;
  padding-top:clamp(34px, 6vh, 78px);
}

/* shop: category pill nav */
.cd-shop-cats{
  display:flex; flex-wrap:wrap; gap:4px;
  width:max-content; max-width:100%;
  background:color-mix(in srgb, var(--cd-brown) 10%, var(--cd-cream));
  padding:5px; border-radius:var(--cd-r-pill);
  margin:16px auto 10px;
}
/* sorting + result-count row now sits on its own line below the pills */
.woocommerce .storefront-sorting{ margin:4px 0 26px; padding-top:4px; }
.cd-shop-cats a{
  padding:9px 18px; border-radius:var(--cd-r-pill);
  border:0; background:transparent;
  font-weight:600; font-size:.92rem;
  color:color-mix(in srgb, var(--cd-ink) 68%, var(--cd-cream));
  text-decoration:none !important;
  transition:background .22s var(--cd-ease), color .22s var(--cd-ease), box-shadow .22s var(--cd-ease);
}
.cd-shop-cats a:hover{ color:var(--cd-brown); background:color-mix(in srgb, var(--cd-brown) 9%, transparent); }
.cd-shop-cats a.is-active,
.cd-shop-cats a.is-active:hover{
  background:#fff; color:var(--cd-brown);
  box-shadow:0 2px 8px color-mix(in srgb, var(--cd-brown) 20%, transparent);
}

/* contact: store card grid */
.cd-store-grid{
  display:grid; grid-template-columns:repeat(3, 1fr); gap:14px;
}
.cd-store-card{
  display:flex; flex-direction:column; gap:4px;
  background:var(--cd-cream); border-radius:var(--cd-r-lg);
  padding:20px 22px;
  text-decoration:none !important;
  transition:transform .3s var(--cd-ease), box-shadow .3s var(--cd-ease);
}
.cd-store-card:hover{ transform:translateY(-3px); box-shadow:var(--cd-shadow-sm); }
.cd-store-card strong{ color:var(--cd-ink); font-size:1.02rem; }
.cd-store-card span{ color:var(--cd-brown); font-size:.85rem; font-weight:600; }
@media (max-width:860px){ .cd-store-grid{ grid-template-columns:repeat(2, 1fr); } }
@media (max-width:520px){ .cd-store-grid{ grid-template-columns:1fr; } }


/* ============================================================
   2.8.0 — contact form
   ============================================================ */
.cd-form{
  background:var(--cd-cream);
  border-radius:var(--cd-r-lg);
  padding:clamp(24px, 4vw, 40px);
  max-width:760px;
  margin:0 auto 64px;
}
.cd-hp{ position:absolute !important; left:-9999px !important; height:0; overflow:hidden; }
.cd-form-row{
  display:grid; grid-template-columns:1fr 1fr; gap:18px;
  margin-bottom:18px;
}
.cd-form label{
  display:flex; flex-direction:column; gap:7px;
  font-weight:600; font-size:.92rem; color:var(--cd-ink);
}
.cd-form-full{ margin-bottom:22px; }
.cd-form input[type="text"],
.cd-form input[type="tel"],
.cd-form input[type="email"],
.cd-form select,
.cd-form textarea{
  font:inherit; font-size:.96rem; color:var(--cd-ink);
  padding:12px 14px; background:#fff;
  border:1.5px solid var(--cd-line); border-radius:var(--cd-r-sm);
  transition:border-color .2s var(--cd-ease), box-shadow .2s var(--cd-ease);
  width:100%;
}
.cd-form textarea{ resize:vertical; min-height:120px; }
.cd-form input:focus,.cd-form select:focus,.cd-form textarea:focus{
  outline:none; border-color:var(--cd-brown);
  box-shadow:0 0 0 3px color-mix(in srgb, var(--cd-brown) 18%, transparent);
}
.cd-form-btn{
  display:block; width:100%;
  background:var(--cd-brown); color:#fff;
  border:0; border-radius:var(--cd-r-pill);
  padding:15px 34px; font-weight:700; font-size:1rem;
  box-shadow:var(--cd-shadow-brown); cursor:pointer;
  transition:background .25s var(--cd-ease), transform .2s var(--cd-ease);
}
.cd-form-btn:hover{ background:var(--cd-ink); transform:translateY(-2px); }
.cd-form-note{
  max-width:760px; margin:0 auto 18px;
  padding:14px 20px; border-radius:var(--cd-r-sm);
  font-weight:600; text-align:center;
}
.cd-form-note.is-ok{ background:var(--cd-brown-soft); color:var(--cd-brown); }
.cd-form-note.is-err{ background:#f8e3e3; color:#8a2b2b; }
@media (max-width:600px){
  .cd-form-row{ grid-template-columns:1fr; }
}


/* --- 2.8.1: contact section rhythm without the info cards --- */
.cd-contact-head{ margin-bottom:56px; }
.cd-contact-sub{ margin-top:0; }
.cd-form + .cd-contact-sub{ margin-top:12px; }
.cd-contact-note{ margin-bottom:30px; }


/* --- 2.8.2: hero sits right under the header; contact form flush --- */
.home .entry-content > .wp-block-cover:first-of-type{
  padding-top:0 !important;
}
.cd-contact-head{ margin-bottom:40px; }
.cd-form{ margin-top:0; }


/* ============================================================
   2.9.0 — TRIAL: transparent overlay header on the homepage
   (remove this whole block to revert)
   ============================================================ */
:root{ --cd-header-h:70px; --cd-cream-rgb:253 245 238; }
@media (max-width:767px){ :root{ --cd-header-h:58px; } }

/* hero slides up under the header */
.home .site-content{ margin-top:calc(-1 * var(--cd-header-h)); }

/* header floats over the hero at the top of the page */
.home .site-header{
  /* rgba literals of --cd-cream (#fdf5ee): var()/color-mix values are not transitionable */
  background-color:rgba(253, 245, 238, 0) !important;
  background-image:none !important;
  border-bottom-color:transparent !important;
  box-shadow:none !important;
  -webkit-backdrop-filter:none !important; backdrop-filter:none !important;
  transition:box-shadow .35s var(--cd-ease), border-color .35s var(--cd-ease);
}
/* once scrolling starts it becomes the normal solid header */
.home .site-header.cd-scrolled{
  background-color:rgba(253, 245, 238, .92) !important;
  border-bottom-color:var(--cd-line) !important;
  -webkit-backdrop-filter:saturate(140%) blur(10px) !important;
  backdrop-filter:saturate(140%) blur(10px) !important;
  box-shadow:0 1px 0 var(--cd-line), 0 8px 24px -20px color-mix(in srgb, var(--cd-ink) 60%, transparent) !important;
}
/* keep hero copy clear of the overlaying header */
.home .entry-content > .wp-block-cover:first-of-type .wp-block-cover__inner-container{
  padding-top:calc(var(--cd-header-h) + clamp(34px, 6vh, 78px));
}


/* --- 2.9.6: restore position:sticky on the header ---
   Storefront sets overflow-x:hidden on body/.site, which makes them
   scroll containers and silently disables sticky. overflow:clip gives
   the same horizontal-overflow protection without that side effect. --- */
body,
.site{
  overflow-x:clip !important;
  overflow-y:visible !important;
}


/* --- 2.9.7: hero photo sits lower, less wash --- */
.home .entry-content > .wp-block-cover:first-of-type img.wp-block-cover__image-background{
  object-position:50% 12% !important;
}


/* --- 2.9.10: mobile hero — taller frame, photo lower so copy has room --- */
@media (max-width:768px){
  .home .entry-content > .wp-block-cover:first-of-type{
    min-height:min(118vh, 880px) !important;
  }
  .home .entry-content > .wp-block-cover:first-of-type img.wp-block-cover__image-background{
    object-position:50% 100% !important;
  }
  .home .entry-content > .wp-block-cover:first-of-type .wp-block-cover__inner-container{
    padding-top:calc(var(--cd-header-h) + 18px);
  }
}


/* --- 2.9.12: mobile hero copy tightened so it clears the cakes --- */
@media (max-width:768px){
  .home .entry-content > .wp-block-cover:first-of-type p{
    font-size:1rem !important; line-height:1.5 !important;
    max-width:30ch; margin-inline:auto;
  }
}


/* ============================================================
   3.0.0 — how-it-works: plain icons + column dividers
   (matches the old site's cleaner treatment)
   ============================================================ */
.cd-hiw{ background:var(--cd-cream); padding:clamp(52px,6vw,88px) 20px; }
.cd-hiw-inner{ gap:0; }
.cd-hiw-inner::before{ display:none !important; }
.cd-hiw-step{ padding:6px clamp(16px,2.4vw,34px); }
.cd-hiw-step + .cd-hiw-step{ border-left:1px solid var(--cd-line); }
.cd-hiw-num{
  width:auto !important; height:auto !important;
  background:transparent !important;
  border:0 !important; outline:0 !important; box-shadow:none !important;
  border-radius:0 !important;
  transition:transform .3s var(--cd-ease);
}
.cd-hiw-num svg{ width:34px; height:34px; color:var(--cd-ink) !important; stroke-width:1.5; }
.cd-hiw-step:hover .cd-hiw-num{ background:transparent !important; transform:translateY(-3px); }
.cd-hiw-step:hover .cd-hiw-num svg{ color:var(--cd-brown) !important; }
.cd-hiw-step h3{ margin:20px 0 8px; font-size:1.06rem; }
.cd-hiw-step p{ font-size:.94rem; max-width:26ch; margin-inline:auto; }
@media (max-width:768px){
  .cd-hiw-step{ padding:14px 10px; }
  .cd-hiw-step:nth-child(odd){ border-left:0; }
  .cd-hiw-step:nth-child(n+3){ border-top:1px solid var(--cd-line); }
  .cd-hiw-num svg{ width:28px; height:28px; }
}

/* ============================================================
   3.0.0 — mini cart dropdown
   ============================================================ */
.site-header-cart .widget_shopping_cart{
  background:var(--cd-white) !important;
  border:1px solid var(--cd-line);
  border-radius:16px;
  box-shadow:var(--cd-shadow-md);
  padding:8px 4px 4px;
}
.site-header-cart .widget_shopping_cart_content{ padding:14px 16px 16px; }
.site-header-cart ul.woocommerce-mini-cart{ margin:0; padding:0; }
.site-header-cart li.woocommerce-mini-cart-item{
  padding:12px 0 12px 44px !important; border-bottom:1px solid var(--cd-line);
}
.site-header-cart li.woocommerce-mini-cart-item a:not(.remove){
  color:var(--cd-ink) !important; font-weight:700; font-size:.95rem; line-height:1.35;
}
.site-header-cart li.woocommerce-mini-cart-item img{
  width:46px !important; border-radius:10px; background:var(--cd-tile); margin-left:10px;
}
.site-header-cart .woocommerce-mini-cart-item .quantity{
  display:block !important; border:0 !important; background:transparent !important;
  color:var(--cd-ink-soft); font-size:.86rem; margin-top:3px;
}
.site-header-cart .quantity .woocommerce-Price-amount{ color:var(--cd-brown); font-weight:700; }
.site-header-cart a.remove{
  width:22px !important; height:22px !important; line-height:19px !important; font-size:.9rem !important;
}
.site-header-cart .woocommerce-mini-cart__total{
  border:0 !important; border-top:1px solid var(--cd-line) !important;
  padding:14px 0 12px !important; margin:0 !important;
  display:flex; justify-content:space-between; align-items:center;
  font-weight:700; color:var(--cd-ink);
}
.site-header-cart .woocommerce-mini-cart__total .woocommerce-Price-amount{
  color:var(--cd-brown); font-size:1.1rem;
}
.site-header-cart .woocommerce-mini-cart__buttons{
  display:flex; flex-direction:column; gap:9px; margin:0 !important; padding:0 !important;
}
.site-header-cart .woocommerce-mini-cart__buttons a.button{
  width:100%; text-align:center; margin:0 !important;
  border-radius:var(--cd-r-pill) !important; padding:11px 20px !important; font-weight:700;
  background:transparent !important; color:var(--cd-brown) !important;
  border:1.5px solid color-mix(in srgb, var(--cd-brown) 55%, transparent) !important;
  box-shadow:none !important;
}
@media (hover:hover){
.site-header-cart .woocommerce-mini-cart__buttons a.button:hover{
  background:var(--cd-brown-soft) !important;
}
}
.site-header-cart .woocommerce-mini-cart__buttons a.checkout{
  background:var(--cd-brown) !important; color:#fff !important;
  border-color:var(--cd-brown) !important; box-shadow:var(--cd-shadow-brown) !important;
}
.site-header-cart .woocommerce-mini-cart__buttons a.checkout:hover{
  background:var(--cd-ink) !important; border-color:var(--cd-ink) !important;
}


/* --- 3.0.1: mini cart list must contain its floated items --- */
.site-header-cart ul.woocommerce-mini-cart{
  display:flow-root !important;
  list-style:none !important;
}
.site-header-cart li.woocommerce-mini-cart-item{
  float:none !important; display:block !important; overflow:hidden;
}
.site-header-cart li.woocommerce-mini-cart-item::before,
.site-header-cart li.woocommerce-mini-cart-item::after{ content:none !important; }
.site-header-cart li.woocommerce-mini-cart-item img{ float:right !important; }


/* --- 3.1.0: steps span the full width; CTA block tightened --- */
.cd-hiw{ padding-inline:clamp(20px, 4vw, 64px); }
.cd-hiw-inner{ max-width:1520px !important; }
.cd-hiw-step p{ max-width:30ch; }

.cd-cta{ padding:clamp(56px, 6vw, 88px) 20px !important; }
.cd-cta p{ margin-bottom:0; }
.cd-cta .cd-band-btn{ margin-top:26px; }


/* --- 3.2.0: kill the gap + white strip under the last home section --- */
/* Storefront leaves padding on .site-content below the last block */
.home .site-content{ padding-bottom:0 !important; }
.home .site-content > .col-full{ padding-bottom:0 !important; margin-bottom:0 !important; }
.home .site-main,
.home .hentry,
.home .entry-content{ margin-bottom:0 !important; padding-bottom:0 !important; }

/* last product row shouldn't carry its grid gutter into the section padding */
.cd-prodsec--cream{ padding-bottom:clamp(34px, 4vw, 52px) !important; }
.cd-prodsec ul.products li.product:last-child,
.cd-prodsec ul.products li.product{ margin-bottom:0 !important; }
.cd-prodsec ul.products{ row-gap:34px; }


/* --- 3.2.1: .content-area's bottom margin was the white strip --- */
.home .content-area{ margin-bottom:0 !important; }


/* --- 3.2.4: center constrained page headings (location pages) so their
   centered text lands on the page centre like Shop/Contact, not flush-left --- */
.entry-content .is-layout-constrained > h1.wp-block-heading.has-text-align-center{
  /* Gutenberg caps this heading at content-size (820px) and pins it flush-left,
     so its centred text lands left of the page. Let it fill the group and the
     text-align:center then sits it on the true page centre like Shop/Contact. */
  max-width:none !important;
  margin-inline:auto !important;
}


/* --- 3.2.7: on mobile the segmented category track wraps to a few rows;
   a full pill radius then reads as a lumpy oval, so use a tidy rounded
   panel that fills the width instead --- */
@media (max-width:600px){
  .cd-shop-cats{ display:flex; width:100%; border-radius:20px; padding:6px; }
}


/* --- 3.2.7: on mobile the segmented category track wraps to a few rows;
   full pill radius then reads as a lumpy oval, so use a tidy rounded panel --- */
@media (max-width:600px){
  .cd-shop-cats{ display:flex; width:100%; border-radius:20px; padding:6px; }
}


/* --- 3.2.9: storefront photo on location pages (copied from old site) --- */
.cd-store-photo{ margin:6px auto 30px !important; }
.cd-store-photo img{ width:100%; height:auto; border-radius:16px; display:block; box-shadow:0 10px 30px color-mix(in srgb, var(--cd-ink) 12%, transparent); }


/* --- 3.3.0: location pages — wide composed desktop layout --- */
.cd-loc-wrap{ max-width:1120px; margin:0 auto; padding:8px 0 24px; }
.cd-loc-h2{ margin:0 0 14px; font-size:26px; font-weight:700; color:var(--cd-ink); }
.cd-loc-hours{ background:var(--cd-cream); border-radius:18px; padding:30px 30px 22px; }
.cd-loc-cards{ display:flex; flex-direction:column; gap:4px; }
.cd-loc-cards > div, .cd-loc-cards > a{ width:100%; }
/* photo reads as a cinematic banner at the wider width, not a tall block */
.cd-store-photo img{ max-height:500px; object-fit:cover; object-position:center 60%; }
@media (min-width:900px){
  .cd-loc-wrap{
    display:grid; grid-template-columns:1.05fr .95fr;
    gap:10px 44px; align-items:start;
  }
  .cd-loc-hours{ grid-column:1; grid-row:1 / span 2; }
  .cd-loc-wrap > .cd-loc-h2{ grid-column:2; grid-row:1; margin-top:30px; padding-left:22px; }
  .cd-loc-cards{ grid-column:2; grid-row:2; }
}
@media (max-width:899px){
  .cd-loc-wrap > .cd-loc-h2{ margin-top:34px; }
}


/* --- 3.3.1: shop toolbar — cats bar hugs the heading; sorting row becomes
   its own quiet toolbar (count left, sort right) with clear separation --- */
.woocommerce .site-main > .cd-shop-cats{ margin:6px auto 26px; }
@media (min-width:601px){
  .woocommerce .site-main > .cd-shop-cats{ display:inline-flex; position:relative; left:50%; transform:translateX(-50%); }
}
.site-main > .storefront-sorting{
  display:flex; justify-content:space-between; align-items:center; gap:18px;
  margin:0 0 28px; padding-top:14px;
  border-top:1px solid color-mix(in srgb, var(--cd-ink) 8%, transparent);
}
.site-main > .storefront-sorting .woocommerce-result-count{ margin:0; float:none; order:-1; color:color-mix(in srgb, var(--cd-ink) 55%, var(--cd-cream)); }
.site-main > .storefront-sorting .woocommerce-ordering{ margin:0; float:none; }


/* --- 3.3.2b: kill Storefront's huge products-header bottom padding so the
   category bar sits directly under the Shop heading --- */
.woocommerce .woocommerce-products-header,
.woocommerce-page .woocommerce-products-header{ padding-bottom:6px !important; }


/* --- 3.4.0: quick-add modal for variable products --- */
.cd-qa[hidden]{ display:none; }
.cd-qa{ position:fixed; inset:0; z-index:100000; display:flex; align-items:center; justify-content:center; padding:20px; }
.cd-qa__backdrop{ position:absolute; inset:0; background:color-mix(in srgb, var(--cd-ink) 55%, transparent); backdrop-filter:blur(2px); }
.cd-qa__panel{ position:relative; width:min(880px, 100%); max-height:90vh; overflow:auto; background:var(--cd-white); border-radius:22px; box-shadow:0 30px 80px rgba(43,35,32,.34); padding:34px; }
.cd-qa__x{ position:absolute !important; top:14px !important; right:16px !important; width:40px !important; height:40px !important; min-width:0 !important; max-width:40px !important; padding:0 !important; margin:0 !important; border:0 !important; border-radius:50% !important; background:color-mix(in srgb, var(--cd-brown) 8%, var(--cd-cream)) !important; color:var(--cd-ink); font-size:20px; line-height:1; display:flex !important; align-items:center; justify-content:center; cursor:pointer; transition:.18s; box-shadow:none !important; }
.cd-qa__x:hover{ background:var(--cd-brown); color:#fff; }
.cd-qa__loading{ padding:60px; text-align:center; color:color-mix(in srgb, var(--cd-ink) 55%, var(--cd-cream)); font-weight:600; }
.cd-qa__grid{ display:grid; grid-template-columns:1fr 1fr; gap:30px; align-items:start; }
.cd-qa__media img{ width:100%; height:auto; border-radius:16px; display:block; }
.cd-qa__title{ margin:2px 0 10px; font-size:clamp(1.6rem,3vw,2rem); font-weight:800; color:var(--cd-ink); letter-spacing:-.01em; }
.cd-qa__price{ color:var(--cd-brown); font-weight:700; font-size:1.25rem; margin-bottom:18px; }
.cd-qa__price del{ color:color-mix(in srgb, var(--cd-ink) 45%, var(--cd-cream)); font-weight:500; margin-right:8px; }
.cd-qa__formwrap .variations_form{ margin:0; }
.cd-qa__formwrap table.variations{ margin:0 0 14px; }
.cd-qa__link{ display:inline-block; margin-top:16px; color:color-mix(in srgb, var(--cd-ink) 60%, var(--cd-cream)); text-decoration:underline; font-size:.9rem; }
.cd-qa__link:hover{ color:var(--cd-brown); }
.cd-qa__done{ text-align:center; padding:26px 10px; }
.cd-qa__check{ width:64px; height:64px; margin:0 auto 16px; border-radius:50%; background:var(--cd-brown); color:#fff; font-size:32px; display:flex; align-items:center; justify-content:center; }
.cd-qa__donemsg{ font-size:1.15rem; color:var(--cd-ink); margin:0 0 22px; }
.cd-qa__actions{ display:flex; gap:12px; justify-content:center; flex-wrap:wrap; }
.cd-qa__btn{ padding:13px 26px; border-radius:var(--cd-r-pill); font-weight:700; font-size:.95rem; cursor:pointer; text-decoration:none; transition:.2s; border:1.5px solid var(--cd-brown); }
.cd-qa__btn--solid{ background:var(--cd-brown); color:#fff; }
.cd-qa__btn--solid:hover{ transform:translateY(-2px); box-shadow:0 6px 16px color-mix(in srgb, var(--cd-brown) 26%, transparent); }
.cd-qa__btn--ghost{ background:transparent; color:var(--cd-brown); }
.cd-qa__btn--ghost:hover{ background:var(--cd-brown); color:#fff; }
@media (max-width:640px){
  .cd-qa__panel{ padding:24px 20px; border-radius:18px; }
  .cd-qa__grid{ grid-template-columns:1fr; gap:18px; }
  .cd-qa__media{ max-width:60%; margin:0 auto; }
}


/* --- 3.4.4: roomy mini-cart with live qty stepper (Option A) --- */
.site-header-cart .widget_shopping_cart,
.site-header-cart .widget_shopping_cart_content{
  width:372px; max-width:90vw; background:var(--cd-white); border:0;
  border-radius:20px; padding:8px 22px 22px; box-shadow:0 26px 64px rgba(43,35,32,.24);
}
.site-header-cart ul.cart_list{ margin:0; padding:0 4px 0 0; }
.site-header-cart ul.cart_list::-webkit-scrollbar{ width:6px; }
.site-header-cart ul.cart_list::-webkit-scrollbar-thumb{ background:color-mix(in srgb,var(--cd-brown) 38%,var(--cd-cream)); border-radius:6px; }
.site-header-cart li.mini_cart_item{
  display:grid !important; grid-template-columns:64px 1fr auto;
  grid-template-areas:"thumb name price" "thumb stepper price";
  column-gap:14px; row-gap:6px; align-items:center; position:relative;
  padding:16px 30px 16px 0 !important; margin:0; list-style:none; float:none; width:auto; box-sizing:border-box;
  border-top:1px solid color-mix(in srgb,var(--cd-ink) 8%,transparent);
}
.site-header-cart li.mini_cart_item:first-child{ border-top:0; }
.site-header-cart li.mini_cart_item > a:not(.remove){ display:contents; text-decoration:none !important; }
.site-header-cart li.mini_cart_item img{
  grid-area:thumb; width:64px !important; height:64px !important; object-fit:cover;
  max-width:none !important; min-width:64px; border-radius:12px; margin:0 !important; float:none !important;
}
.site-header-cart .cd-mc-name{ grid-area:name; align-self:end; font-weight:700; color:var(--cd-ink); font-size:.98rem; line-height:1.2; }
.site-header-cart .cd-mc-price{ grid-area:price; align-self:center; font-weight:800; color:var(--cd-brown); font-size:1rem; white-space:nowrap; }
.site-header-cart li.mini_cart_item .quantity{ display:none !important; }
.site-header-cart .cd-mc-qty{
  grid-area:stepper; align-self:start; width:max-content;
  display:inline-flex; align-items:center; border-radius:999px; overflow:hidden;
  border:1px solid color-mix(in srgb,var(--cd-ink) 14%,transparent);
}
.site-header-cart .cd-mc-qty button{ width:28px; height:26px; border:0; background:transparent; color:var(--cd-brown); font-size:15px; line-height:1; cursor:pointer; transition:.15s; }
.site-header-cart .cd-mc-qty button:hover{ background:color-mix(in srgb,var(--cd-brown) 10%,transparent); }
.site-header-cart .cd-mc-qty span{ min-width:26px; text-align:center; font-weight:700; font-size:.85rem; color:var(--cd-ink); }
.site-header-cart .cd-mc-qty.is-loading{ opacity:.5; pointer-events:none; }
.site-header-cart li.mini_cart_item a.remove.remove_from_cart_button{
  position:absolute !important; top:14px; right:0; left:auto !important; transform:none;
  margin:0 !important; width:20px; height:20px; line-height:18px; text-align:center;
  border-radius:50%; font-size:14px; font-weight:400; text-decoration:none;
  background:color-mix(in srgb,var(--cd-ink) 8%,transparent); color:var(--cd-ink) !important;
  opacity:.65; transition:.18s;
}
.site-header-cart li.mini_cart_item a.remove.remove_from_cart_button:hover{ background:var(--cd-brown); color:#fff !important; opacity:1; }
.site-header-cart .woocommerce-mini-cart__total{
  display:flex; justify-content:space-between; align-items:baseline;
  border-top:1px solid color-mix(in srgb,var(--cd-ink) 12%,transparent); border-bottom:0;
  padding:16px 2px 12px; margin:4px 0 12px;
}
.site-header-cart .woocommerce-mini-cart__total strong{ font-weight:600; color:var(--cd-ink); font-size:.98rem; }
.site-header-cart .woocommerce-mini-cart__total .amount{ font-size:1.2rem; font-weight:800; color:var(--cd-brown); }
.site-header-cart .woocommerce-mini-cart__buttons{ display:flex; flex-direction:column; gap:10px; margin:0; padding:0; }
.site-header-cart .woocommerce-mini-cart__buttons a.button{ width:100%; margin:0; text-align:center; padding:13px 20px; border-radius:var(--cd-r-pill); font-weight:700; font-size:.95rem; transition:.2s; border:1.5px solid var(--cd-brown); }
.site-header-cart .woocommerce-mini-cart__buttons a.button:not(.checkout){ background:transparent; color:var(--cd-brown); }
.site-header-cart .woocommerce-mini-cart__buttons a.button:not(.checkout):hover{ background:color-mix(in srgb,var(--cd-brown) 8%,transparent); }
.site-header-cart .woocommerce-mini-cart__buttons a.button.checkout{ background:var(--cd-brown); color:#fff; }
.site-header-cart .woocommerce-mini-cart__buttons a.button.checkout:hover{ transform:translateY(-2px); box-shadow:0 6px 16px color-mix(in srgb,var(--cd-brown) 28%,transparent); }


/* --- 3.4.7: legal pages (terms / privacy) --- */
.cd-legal{ max-width:860px; margin:0 auto; padding:8px 4px 40px; color:var(--cd-ink); }
.cd-legal .cd-legal-title{ font-size:clamp(1.9rem,3.4vw,2.6rem); font-weight:800; letter-spacing:-.01em; text-align:center; margin:0 0 8px; }
.cd-legal > p:first-of-type{ text-align:center; color:color-mix(in srgb,var(--cd-ink) 55%,var(--cd-cream)); font-weight:600; margin:0 0 26px; }
.cd-legal h2{ font-size:1.2rem; font-weight:700; color:var(--cd-brown); margin:34px 0 10px; padding-top:18px; border-top:1px solid color-mix(in srgb,var(--cd-ink) 9%,transparent); }
.cd-legal p{ font-size:1rem; line-height:1.7; margin:0 0 12px; max-width:70ch; }
.cd-legal ol{ margin:6px 0 14px; padding-left:26px; }
.cd-legal ol li{ line-height:1.6; margin:4px 0; }
.cd-legal a{ color:var(--cd-brown); text-decoration:underline; }
@media (max-width:640px){ .cd-legal{ padding:4px 2px 30px; } .cd-legal h2{ margin-top:26px; } }


/* --- 3.4.8: legal page TOC + PDF button + print; mini-cart motion --- */
html{ scroll-behavior:smooth; }
.cd-legal h2{ scroll-margin-top:120px; }
.cd-legal-bar{ display:flex; justify-content:flex-end; margin:2px 0 14px; }
.cd-legal-pdf{ display:inline-flex; align-items:center; gap:8px; background:transparent; color:var(--cd-brown); border:1.5px solid var(--cd-brown); border-radius:var(--cd-r-pill); padding:9px 20px; font-weight:700; font-size:.9rem; cursor:pointer; transition:.2s; }
.cd-legal-pdf::before{ content:"\2193"; font-weight:700; }
.cd-legal-pdf:hover{ background:var(--cd-brown); color:#fff; transform:translateY(-2px); box-shadow:0 6px 16px color-mix(in srgb,var(--cd-brown) 24%,transparent); }
.cd-legal-toc{ background:var(--cd-cream); border-radius:16px; padding:4px 22px; margin:0 0 32px; }
.cd-legal-toc summary{ cursor:pointer; font-weight:700; color:var(--cd-ink); padding:14px 0; list-style:none; font-size:1.02rem; }
.cd-legal-toc summary::-webkit-details-marker{ display:none; }
.cd-legal-toc summary::after{ content:"+"; float:right; color:var(--cd-brown); font-weight:700; font-size:1.2rem; line-height:1; }
.cd-legal-toc[open] summary::after{ content:"\2013"; }
.cd-legal-toc ol{ columns:2; column-gap:34px; margin:2px 0 16px; padding-left:18px; }
.cd-legal-toc li{ break-inside:avoid; margin:5px 0; font-size:.9rem; line-height:1.4; }
.cd-legal-toc a{ color:color-mix(in srgb,var(--cd-ink) 68%,var(--cd-cream)); text-decoration:none; }
.cd-legal-toc a:hover{ color:var(--cd-brown); text-decoration:underline; }
@media (max-width:640px){ .cd-legal-toc ol{ columns:1; } }

/* mini-cart: subtle slide + fade on open */
.site-header-cart .widget_shopping_cart{ transition:opacity .24s var(--cd-ease), transform .24s var(--cd-ease), visibility .24s; transform:translateY(-8px); }
.site-header-cart:hover .widget_shopping_cart,
.site-header-cart .widget_shopping_cart:hover,
.site-header-cart.focus .widget_shopping_cart{ transform:translateY(0); }
.site-header-cart li.mini_cart_item{ transition:background .18s var(--cd-ease); }
.site-header-cart li.mini_cart_item:hover{ background:color-mix(in srgb,var(--cd-cream) 60%, transparent); border-radius:12px; }

@media print{
  body > *{ visibility:hidden !important; }
  .site-header, .site-footer, #wpadminbar, .cd-topbar, .storefront-breadcrumb, .site-header-cart, .cd-legal-bar, .cd-legal-toc{ display:none !important; }
  .cd-legal, .cd-legal *{ visibility:visible !important; }
  .cd-legal{ position:absolute; left:0; top:0; width:100%; max-width:none; margin:0; padding:0; }
  .cd-legal h2{ color:#000; border-top:1px solid #bbb; }
  .cd-legal a{ color:#000; text-decoration:none; }
}


/* --- 3.4.9: sleeker mini-cart stepper + remove (perfect centering) --- */
.site-header-cart .widget_shopping_cart,
.site-header-cart .widget_shopping_cart_content{ padding-top:16px; }
.site-header-cart .cd-mc-qty{
  height:32px; padding:0; overflow:hidden;
  border:1px solid color-mix(in srgb,var(--cd-ink) 13%,transparent); background:var(--cd-white);
}
.site-header-cart .cd-mc-qty button{
  display:flex !important; align-items:center; justify-content:center;
  width:34px; height:100%; min-width:0; flex:0 0 auto;
  padding:0 !important; margin:0 !important; border:0 !important; box-shadow:none !important;
  background:transparent; color:var(--cd-brown); font-size:17px; font-weight:600; line-height:1;
  border-radius:0; cursor:pointer; transition:background .15s var(--cd-ease);
}
.site-header-cart .cd-mc-qty button:hover{ background:color-mix(in srgb,var(--cd-brown) 12%,transparent); }
.site-header-cart .cd-mc-qty button:active{ background:color-mix(in srgb,var(--cd-brown) 20%,transparent); }
.site-header-cart .cd-mc-qty span{
  display:flex !important; align-items:center; justify-content:center;
  min-width:30px; height:100%; padding:0 2px; flex:0 0 auto;
  font-weight:700; font-size:.86rem; color:var(--cd-ink);
  border-left:1px solid color-mix(in srgb,var(--cd-ink) 10%,transparent);
  border-right:1px solid color-mix(in srgb,var(--cd-ink) 10%,transparent);
}
.site-header-cart li.mini_cart_item a.remove.remove_from_cart_button{
  display:flex !important; align-items:center; justify-content:center;
  width:22px; height:22px; padding:0 !important; line-height:1; font-size:15px; text-indent:0;
  top:12px;
}


/* --- 3.5.0: sleek minimal remove — thin drawn x, no circle --- */
.site-header-cart li.mini_cart_item a.remove.remove_from_cart_button{
  position:absolute !important; top:11px; right:0; left:auto !important;
  width:24px; height:24px; padding:0 !important; margin:0 !important;
  background:transparent !important; border:0 !important; border-radius:0 !important;
  box-shadow:none !important; font-size:0 !important; color:transparent !important; text-indent:-9999px;
  opacity:1 !important; display:block !important; transform-origin:center;
  transition:transform .18s var(--cd-ease);
}
.site-header-cart li.mini_cart_item a.remove.remove_from_cart_button::before,
.site-header-cart li.mini_cart_item a.remove.remove_from_cart_button::after{
  content:""; position:absolute; top:50%; left:50%; width:13px; height:1.6px; border-radius:2px;
  background:color-mix(in srgb, var(--cd-ink) 40%, var(--cd-cream));
  transition:background .18s var(--cd-ease);
}
.site-header-cart li.mini_cart_item a.remove.remove_from_cart_button::before{ transform:translate(-50%,-50%) rotate(45deg); }
.site-header-cart li.mini_cart_item a.remove.remove_from_cart_button::after{ transform:translate(-50%,-50%) rotate(-45deg); }
.site-header-cart li.mini_cart_item a.remove.remove_from_cart_button:hover{ transform:scale(1.2); }
.site-header-cart li.mini_cart_item a.remove.remove_from_cart_button:hover::before,
.site-header-cart li.mini_cart_item a.remove.remove_from_cart_button:hover::after{ background:var(--cd-brown); }


/* ===== v3.5.1 mini-cart flat surface: kill inner card + grey blocks ===== */
.site-header-cart .widget_shopping_cart_content{
  background:transparent !important;
  box-shadow:none !important;
  border:0 !important;
  border-radius:0 !important;
  padding:0 !important;
}
.site-header-cart .woocommerce-mini-cart__total,
.site-header-cart .woocommerce-mini-cart__buttons{
  background:transparent !important;
  border:0 !important;
}
.site-header-cart .woocommerce-mini-cart__total{
  border-top:1px solid color-mix(in srgb, var(--cd-ink) 10%, transparent) !important;
  margin-top:2px !important;
}


/* ===== v3.5.2 mini-cart single divider + datepicker header ===== */
.site-header-cart .woocommerce-mini-cart__total{ border-top:0 !important; margin-top:0 !important; }
/* datepicker: stop global select styles bloating the month dropdown */
.flatpickr-calendar .flatpickr-current-month{ display:flex; align-items:center; justify-content:center; gap:.35em; }
.flatpickr-calendar .flatpickr-monthDropdown-months{
  -webkit-appearance:menulist; appearance:menulist;
  padding:2px 6px !important; width:auto !important; min-width:0 !important; height:auto !important;
  margin:0 !important; font-size:1rem !important; line-height:1.2 !important;
  background-color:transparent !important; border:0 !important; box-shadow:none !important; border-radius:0 !important;
}
.flatpickr-calendar .numInputWrapper{ width:4.6ch !important; }
.flatpickr-calendar .numInputWrapper input.cur-year{ padding:0 !important; font-size:1rem !important; }


/* ===== v3.5.4 mini-cart overflow + footer credit ===== */
.site-header-cart .widget_shopping_cart{ padding:0 !important; }
.site-header-cart .widget_shopping_cart_content{ padding:16px 22px 22px !important; box-sizing:border-box !important; width:100% !important; }
.site-footer .cd-foot-credit a{ color:#fff !important; font-weight:700; text-decoration:none; border-bottom:1px solid color-mix(in srgb, #fff 40%, transparent); transition:border-color .2s var(--cd-ease); }
.site-footer .cd-foot-credit a:hover{ border-color:#fff; }


/* ===== v3.5.5 EFT thank-you action buttons ===== */
.cd-eft-actions{ margin:20px 0 8px; display:flex; flex-direction:column; gap:12px; max-width:520px; }
.cd-eft-row{ display:flex; gap:10px; flex-wrap:wrap; }
.cd-eft-btn{ -webkit-appearance:none; appearance:none; cursor:pointer; font:inherit; font-weight:600; padding:11px 18px; border-radius:999px; border:1.5px solid color-mix(in srgb, var(--cd-brown) 45%, transparent); background:var(--cd-white); color:var(--cd-brown); transition:background .18s var(--cd-ease), color .18s var(--cd-ease), border-color .18s var(--cd-ease); text-decoration:none; text-align:center; line-height:1.2; }
.cd-eft-btn:hover{ background:color-mix(in srgb, var(--cd-brown) 8%, var(--cd-cream)); border-color:var(--cd-brown); }
.cd-eft-btn--primary{ background:var(--cd-brown); color:#fff; border-color:var(--cd-brown); }
.cd-eft-btn--primary:hover{ background:color-mix(in srgb, var(--cd-brown) 88%, #000); color:#fff; }
.cd-eft-hint{ margin:2px 0 0; font-size:.9rem; color:color-mix(in srgb, var(--cd-ink) 60%, var(--cd-cream)); }


/* ===== v3.5.6 homepage no white bands: transparent sections -> cream ===== */
.home{ background: var(--cd-cream); }
.home .cd-cats, .home .cd-prodsec, .home .site, .home .site-content, .home .content-area{ background: var(--cd-cream); }


/* ===== v3.5.7 tighten cats gap: pull Shop by Category up to the strip ===== */
.home .cd-hiw{ padding-bottom: clamp(34px, 4vw, 50px) !important; }
.home .cd-cats{ padding-top: clamp(20px, 2.4vw, 32px) !important; }


/* ===== v3.5.8 band contrast: warm latte tint on the two image bands to break the all-cream ===== */
.home .cd-band{ background: color-mix(in srgb, var(--cd-brown) 14%, var(--cd-cream)) !important; }


/* ===== v3.6.2 sitewide backgrounds: cream everywhere, warm-white on product-focused pages ===== */
body, .site-content, .content-area{ background: var(--cd-cream); }
/* product-focused pages get a soft warm white so white-bg product photos blend cleanly */
body.single-product, body.single-product .site-content, body.single-product .content-area,
body.woocommerce-shop, body.woocommerce-shop .site-content, body.woocommerce-shop .content-area,
body.tax-product_cat, body.tax-product_cat .site-content, body.tax-product_cat .content-area,
body.tax-product_tag, body.tax-product_tag .site-content, body.tax-product_tag .content-area{
  background: color-mix(in srgb, var(--cd-cream) 22%, #fff);
}


/* ===== v3.6.4 mobile header rework ===== */
@media (max-width:768px){
  .storefront-handheld-footer-bar{ display:none !important; }
  body.woocommerce-active .site-content{ padding-bottom:0 !important; }
  .cd-topbar{ font-size:.64rem !important; padding:5px 12px !important; line-height:1.55 !important; }
  .site-header{ position:relative; }
  .site-header > .col-full{ display:flex; align-items:center; min-height:58px; }
  .storefront-primary-navigation, .storefront-primary-navigation > .col-full{ position:static; }
  .menu-toggle{ position:absolute !important; top:12px; right:12px; z-index:80; background:transparent !important; border:0 !important; box-shadow:none !important; width:44px; height:44px; padding:0 !important; }
  .menu-toggle span{ font-size:0 !important; line-height:0 !important; }
  .menu-toggle::before, .menu-toggle::after{ content:"" !important; position:absolute; left:9px; width:26px; height:2.6px; border-radius:2px; background:var(--cd-ink) !important; }
  .menu-toggle::before{ top:15px; box-shadow:0 7px 0 var(--cd-ink) !important; }
  .menu-toggle::after{ top:29px; box-shadow:none !important; }
  #site-header-cart{ position:absolute !important; top:15px; right:64px; z-index:80; display:flex !important; align-items:center; margin:0 !important; padding:0 !important; }
  #site-header-cart .amount, #site-header-cart .count-text{ display:none !important; }
  #site-header-cart a.cart-contents{ padding:6px !important; }
  .home .entry-content > .wp-block-cover:first-of-type{ min-height:64vh !important; background-position:center bottom !important; }
  .home .entry-content > .wp-block-cover:first-of-type .wp-block-cover__inner-container{ padding-top:6px !important; }
}


/* === v3.6.6 mobile header rebuild (overrides earlier mobile block via cascade) === */
@media (max-width:768px){
  .storefront-handheld-footer-bar{ display:none !important; }
  body.woocommerce-active .site-content{ padding-bottom:0 !important; }
  .cd-topbar{ font-size:.64rem !important; padding:5px 12px !important; line-height:1.55 !important; }
  /* header = solid cream band; cancel transparent-header overlay pull */
  .site-content{ margin-top:0 !important; }
  #masthead.site-header{ position:relative !important; background:var(--cd-cream) !important; z-index:500; box-shadow:0 1px 0 rgba(43,35,32,.07); }
  #masthead > .col-full{ display:flex !important; align-items:center; min-height:62px; }
  .site-branding{ margin:0 !important; }
  .storefront-primary-navigation{ margin:0 !important; }
  .storefront-primary-navigation > .col-full{ min-height:0 !important; padding:0 !important; }
  /* burger: de-boxed icon, top-right, in line with CD logo */
  .menu-toggle{ position:absolute !important; top:10px; right:12px; z-index:80; background:transparent; border:0 !important; box-shadow:none !important; width:42px; height:42px; padding:0 !important; font-size:0 !important; text-indent:-9999px; overflow:hidden; background:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="%232b2320" stroke-width="2" stroke-linecap="round"><line x1="3" y1="6.5" x2="21" y2="6.5"/><line x1="3" y1="12" x2="21" y2="12"/><line x1="3" y1="17.5" x2="21" y2="17.5"/></svg>') center/27px no-repeat !important; }
  .menu-toggle span{ display:none !important; }
  .menu-toggle::before, .menu-toggle::after{ content:none !important; display:none !important; }
  /* cart: explicit bag icon, left of burger, same line */
  #site-header-cart{ position:absolute !important; top:0; bottom:0; right:60px; z-index:80; display:flex !important; align-items:center; margin:0 !important; padding:0 !important; }
  #site-header-cart > a.cart-contents{ display:block !important; width:28px; height:28px; padding:0 !important; font-size:0 !important; text-indent:-9999px; overflow:hidden; background:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="%232b2320" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"><path d="M6 2 3 6v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V6l-3-4Z"/><path d="M3 6h18"/><path d="M16 10a4 4 0 0 1-8 0"/></svg>') center/26px no-repeat !important; }
  #site-header-cart .amount, #site-header-cart .count, #site-header-cart .count-text{ display:none !important; }
  /* hero: sits below header now; cakes visible on load */
  .home .entry-content > .wp-block-cover:first-of-type{ min-height:90vh !important; min-height:calc(100svh - 88px) !important; justify-content:flex-start !important; background-position:center bottom !important; background-size:cover !important; }
  .home .entry-content > .wp-block-cover:first-of-type .wp-block-cover__inner-container{ padding-top:70px !important; padding-bottom:0 !important; }
}


/* === v3.6.9 mobile hero image swap (higher-quality portrait) === */
@media (max-width:768px){
  .home .entry-content > .wp-block-cover:first-of-type > img.wp-block-cover__image-background{ display:none !important; }
  .home .entry-content > .wp-block-cover:first-of-type{ background-image:url('/wp-content/uploads/2026/07/Untitled-design.png') !important; background-size:cover !important; background-position:center bottom !important; background-repeat:no-repeat !important; background-color:#fff !important; }
}


/* === v3.7.1 how-it-works one per row on mobile === */
@media (max-width:768px){
  .cd-hiw-inner{ grid-template-columns:1fr !important; }
}


/* === v3.7.2 topbar brown + drop stacked-step dividers === */
.cd-topbar{ background:var(--cd-brown) !important; }
@media (max-width:768px){
  .cd-hiw-step{ border-left:0 !important; }
}


/* === v3.7.3 topbar white text + consistent step underlines === */
.cd-topbar, .cd-topbar *{ color:#fdf5ee !important; }
@media (max-width:768px){
  .cd-hiw-step{ border-left:0 !important; border-bottom:1px solid var(--cd-line) !important; padding-bottom:20px !important; }
}


/* === v3.7.4 mobile category carousel full-bleed (products run off right edge) === */
@media (max-width:768px){
  .cd-cats ul.products{ margin-right:calc(50% - 50vw) !important; padding-right:24px !important; }
}


/* === v3.7.5 category carousel seamless white surface (photos are pure #fff, blend them in) === */
.cd-cats{ position:relative; z-index:0; background:#ffffff !important; }
.cd-cats::before{ content:""; position:absolute; top:0; bottom:0; left:calc(50% - 50vw); width:100vw; background:#ffffff; z-index:-1; }
.cd-cats-head h2, .cd-cats .woocommerce-loop-category__title{ color:var(--cd-ink) !important; }


/* === v3.7.6 two-tone homepage: white product sections, cream everywhere else === */
/* product sections -> seamless full-width white so cakes look background-less */
.cd-prodsec{ position:relative; z-index:0; background:#ffffff !important; }
.cd-prodsec::before{ content:""; position:absolute; top:0; bottom:0; left:calc(50% - 50vw); width:100vw; background:#ffffff; z-index:-1; }
/* image bands -> same cream as the how-it-works section */
.cd-band, .home .cd-band{ background:var(--cd-cream) !important; }


/* === v3.7.7 mobile section separation + full left+right bleed for category slider === */
@media (max-width:768px){
  .cd-hiw{ padding-bottom:clamp(40px,9vw,64px) !important; }
  .cd-cats{ padding-top:clamp(40px,9vw,60px) !important; }
  .cd-cats ul.products{ margin-left:calc(50% - 50vw) !important; margin-right:calc(50% - 50vw) !important; padding-left:0 !important; padding-right:24px !important; }
}


/* === v3.7.8 footer charcoal + no link underlines + tidy mobile credit === */
#colophon.site-footer{ background:#1a1a1a !important; }
#colophon a{ text-decoration:none !important; }
#colophon a:hover, #colophon a:focus{ text-decoration:underline !important; }
@media (max-width:768px){
  #colophon{ padding-bottom:24px !important; }
  #colophon .site-info{ text-align:center !important; align-items:center !important; padding-bottom:0 !important; gap:3px !important; }
}


/* === v3.7.9 match cats top spacing to Our Cakes (older .home .cd-cats rule out-specified the v3.7.7 attempt) === */
.home .cd-cats{ padding-top:clamp(48px,6.5vw,92px) !important; }


/* === v3.8.1 balance how-it-works top/bottom padding on mobile (was 52 top / 34 bottom) === */
@media (max-width:768px){
  .home .cd-hiw{ padding-top:42px !important; padding-bottom:48px !important; }
}


/* === v3.8.2 legal branch headings stand out === */
.cd-legal .cd-legal-branch{ margin:1.7em 0 .35em; font-size:1.2rem; font-weight:700; color:var(--cd-brown); letter-spacing:-.01em; line-height:1.25; }


/* === v3.8.4 location card icons (Phone/WhatsApp/Address), matches how-it-works line-icon style === */
.cd-loc-tag{ display:flex !important; align-items:center; gap:6px; }
.cd-loc-tag::before{ content:""; width:15px; height:15px; flex:0 0 15px; background-size:contain; background-repeat:no-repeat; background-position:center; }
.cd-loc-tag--phone::before{ background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="%2380461b" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72c.12.81.35 1.6.67 2.34a2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.74-1.24a2 2 0 0 1 2.11-.45c.74.32 1.53.55 2.34.67A2 2 0 0 1 22 16.92z"/></svg>'); }
.cd-loc-tag--whatsapp::before{ background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="%2380461b" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 11.5a8.38 8.38 0 0 1-.9 3.8 8.5 8.5 0 0 1-7.6 4.7 8.38 8.38 0 0 1-3.8-.9L3 21l1.9-5.7a8.38 8.38 0 0 1-.9-3.8 8.5 8.5 0 0 1 4.7-7.6 8.38 8.38 0 0 1 3.8-.9h.5a8.48 8.48 0 0 1 8 8v.5z"/></svg>'); }
.cd-loc-tag--address::before{ background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="%2380461b" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z"/><circle cx="12" cy="10" r="3"/></svg>'); }


/* === v3.8.6 CTA background photo (moved from Baked with Care band) === */
.cd-cta{ position:relative; background:#2b2320 url('/wp-content/uploads/2026/07/11-scaled-1.png') center/cover no-repeat !important; }
.cd-cta::before{ content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(43,35,32,.9), rgba(43,35,32,.86)); z-index:0; }
.cd-cta-inner{ position:relative; z-index:1; }


/* === v3.8.7 remove step underlines, equalize section top/bottom spacing === */
@media (max-width:768px){
  .cd-hiw-step{ border-bottom:0 !important; padding-bottom:14px !important; }
  .home .cd-hiw{ padding-top:38px !important; padding-bottom:38px !important; }
}


/* === v3.8.8 kill leftover 2-col-grid row-divider on mobile (nth-child(n+3) border-top) === */
@media (max-width:768px){
  .cd-hiw-step:nth-child(n+3){ border-top:0 !important; }
}


/* === v3.9.0 location page mobile fixes + icon size === */
/* bigger phone/whatsapp/address icons, all viewports */
.cd-loc-tag{ gap:9px !important; }
.cd-loc-tag::before{ width:21px !important; height:21px !important; flex:0 0 21px !important; }
@media (max-width:768px){
  /* mobile nav dropdown toggle: drop the circular border, keep just the arrow */
  .dropdown-toggle{ border:0 !important; background:transparent !important; box-shadow:none !important; padding:8px !important; }
  /* location page: Opening Hours + Find Us stack cleanly in one column */
  .cd-loc-wrap{ display:block !important; }
  .cd-loc-wrap > .cd-loc-h2{ grid-column:1 !important; grid-row:auto !important; margin-top:30px !important; display:block !important; }
  .cd-loc-hours{ grid-column:1 !important; grid-row:auto !important; }
}


/* === v3.9.1 opening hours row fix + heading alignment (mobile) === */
@media (max-width:768px){
  .cd-loc-hours{ padding:22px 18px 18px !important; }
  .cd-loc-hours > div{ flex-wrap:nowrap !important; gap:12px !important; }
  .cd-loc-hours > div > span:first-child{ white-space:nowrap !important; }
  .cd-loc-wrap > .cd-loc-h2{ padding-left:22px !important; }
}


/* === v3.9.2 location page tighter mobile gutter (photo + hours/find-us), scoped so it never touches other pages === */
@media (max-width:768px){
  .entry-content > .wp-block-group:has(.cd-loc-wrap){ padding-left:14px !important; padding-right:14px !important; }
}


/* === v3.9.3 location page vertical rhythm (mobile): tighter card gaps + kill huge bottom pad before footer === */
@media (max-width:768px){
  .cd-loc-cards{ gap:3px !important; }
  .entry-content > .wp-block-group:has(.cd-loc-wrap){ padding-bottom:4px !important; }
}


/* === v3.9.7 kill article/main default margin before footer on location pages === */
@media (max-width:768px){
  article:has(.cd-loc-wrap){ margin-bottom:12px !important; }
  #primary:has(.cd-loc-wrap), #main:has(.cd-loc-wrap){ margin-bottom:0 !important; }
}


/* === v4.0.1 desktop: align Monday-Friday row with PHONE row + kill big gap before footer === */
@media (min-width:900px){
  .cd-loc-cards{ margin-top:-42px; }
}
.entry-content > .wp-block-group:has(.cd-loc-wrap){ padding-bottom:6px !important; }
article:has(.cd-loc-wrap){ margin-bottom:6px !important; }


/* === v4.0.2 kill #main/#primary default margin-bottom on location pages, all viewports === */
#primary:has(.cd-loc-wrap), #main:has(.cd-loc-wrap){ margin-bottom:0 !important; }


/* === v4.0.3 row nudge + tighter footer gap === */
.cd-loc-hours > h2 + div{ margin-top:21px !important; }
.cd-loc-wrap{ padding-bottom:10px !important; }


/* === v4.0.9 store card touch-hover fix (kill stuck :hover on touch devices, desktop hover untouched) + tighter contact note === */
@media (hover:none){
  .cd-store-card:hover{ transform:none !important; box-shadow:none !important; }
}
.cd-contact-note{ line-height:1.4 !important; }


/* === v4.1.0 contact page: kill big gap before footer (same fix pattern as location pages) === */
.cd-contact{ padding-bottom:16px !important; }
article:has(.cd-contact){ margin-bottom:16px !important; }
#primary:has(.cd-contact), #main:has(.cd-contact){ margin-bottom:0 !important; }


/* === v4.1.2 quick-add modal brand match: Add to cart + swatches + close X === */
/* Add to cart -> solid brand brown, matches site primary buttons */
.cd-qa .single_add_to_cart_button, .cd-qa button.single_add_to_cart_button.alt{ background:var(--cd-brown) !important; color:#fff !important; border-color:var(--cd-brown) !important; }
@media (hover:hover){
  .cd-qa .single_add_to_cart_button:hover{ background:var(--cd-ink) !important; border-color:var(--cd-ink) !important; color:#fff !important; }
}
/* variation swatches -> brand brown selected + hover */
.cd-qa .variable-item.selected, .cd-qa .button-variable-item.selected, .cd-qa .variable-item[aria-checked="true"]{ border-color:var(--cd-brown) !important; color:var(--cd-brown) !important; background:color-mix(in srgb, var(--cd-brown) 8%, #fff) !important; box-shadow:0 0 0 1px var(--cd-brown) inset !important; }
@media (hover:hover){
  .cd-qa .variable-item:hover, .cd-qa .button-variable-item:hover{ border-color:var(--cd-brown) !important; color:var(--cd-brown) !important; }
}
/* close X -> perfectly centered SVG (text glyph never centers), clean hover */
.cd-qa__x{ font-size:0 !important; color:transparent !important; background:color-mix(in srgb, var(--cd-brown) 8%, var(--cd-cream)) url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="%232b2320" stroke-width="2" stroke-linecap="round"><line x1="6" y1="6" x2="18" y2="18"/><line x1="18" y1="6" x2="6" y2="18"/></svg>') center/20px no-repeat !important; transition:background-color .18s !important; }
@media (hover:hover){
  .cd-qa__x:hover{ background:var(--cd-brown) url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="%23ffffff" stroke-width="2" stroke-linecap="round"><line x1="6" y1="6" x2="18" y2="18"/><line x1="18" y1="6" x2="6" y2="18"/></svg>') center/20px no-repeat !important; color:transparent !important; transform:none !important; box-shadow:none !important; }
}


/* === v4.1.3 cta darker+flatter overlay + taller on desktop (show more of photo) === */
@media (min-width:769px){
  .cd-cta{ padding-top:132px !important; padding-bottom:132px !important; }
}


/* === v4.1.4 cart remove-x centered SVG + clean hover (was off-center text glyph) === */
.woocommerce .product-remove a.remove{ display:flex !important; align-items:center; justify-content:center; font-size:0 !important; color:transparent !important; text-indent:0 !important; background:transparent url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="%232b2320" stroke-width="2" stroke-linecap="round"><line x1="6" y1="6" x2="18" y2="18"/><line x1="18" y1="6" x2="6" y2="18"/></svg>') center/14px no-repeat !important; }
@media (hover:hover){
  .woocommerce .product-remove a.remove:hover{ background:var(--cd-brown) url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="%23ffffff" stroke-width="2" stroke-linecap="round"><line x1="6" y1="6" x2="18" y2="18"/><line x1="18" y1="6" x2="6" y2="18"/></svg>') center/14px no-repeat !important; border-color:var(--cd-brown) !important; color:transparent !important; }
}


/* === v4.1.5 make 'Milktarts (Small)' (#117) thumbnail render slightly smaller than the full Milktart (same image) === */
.woocommerce ul.products li.product.post-117 img{ transform:scale(.82); transform-origin:center; }


/* === v4.1.6 shop category switcher redesign: underline tabs, single-row horizontal scroll on mobile === */
.cd-shop-cats{ flex-wrap:nowrap !important; width:auto !important; max-width:100%; background:transparent !important; padding:0 !important; border-radius:0 !important; border-bottom:1px solid var(--cd-line); gap:2px !important; overflow-x:auto; scrollbar-width:none; -ms-overflow-style:none; justify-content:flex-start; margin:18px auto 16px; }
.cd-shop-cats::-webkit-scrollbar{ display:none; }
.cd-shop-cats a{ padding:10px 16px !important; border-radius:0 !important; background:transparent !important; box-shadow:none !important; white-space:nowrap; border-bottom:3px solid transparent; margin-bottom:-1px; color:color-mix(in srgb, var(--cd-ink) 52%, var(--cd-cream)); font-weight:600; }
.cd-shop-cats a:hover{ background:transparent !important; box-shadow:none !important; color:var(--cd-brown); }
.cd-shop-cats a.is-active, .cd-shop-cats a.is-active:hover{ background:transparent !important; box-shadow:none !important; color:var(--cd-brown); border-bottom-color:var(--cd-brown); font-weight:700; }
@media (max-width:768px){
  .cd-shop-cats{ margin-inline:calc(50% - 50vw) !important; width:100vw !important; max-width:100vw !important; padding-inline:16px !important; scroll-padding-left:16px; }
}


/* === v4.1.8 hide the visible category/tag descriptions (kept in DB for Yoast meta); cleaner shop look === */
.woocommerce-products-header .term-description, body.tax-product_cat .term-description, body.tax-product_tag .term-description{ display:none !important; }


/* === v4.1.9 tighten Storefront breadcrumb->heading gap on mobile (was ~59px mb + 22px pad) === */
@media (max-width:768px){
  .storefront-breadcrumb{ margin-bottom:16px !important; padding-top:10px !important; padding-bottom:6px !important; }
}



.cd-cta::before{ background: radial-gradient(55% 75% at 50% 45%, rgba(128,70,27,.42) 0%, transparent 62%), linear-gradient(180deg, rgba(35,27,24,.93) 0%, rgba(35,27,24,.82) 50%, rgba(35,27,24,.95) 100%) !important; }


/* v4.2.1 — CTA scroll-reveal: heading, copy, button rise + fade as the band slides into view; overlay deepens on arrival. Self-contained, no JS. Fully visible fallback where unsupported or reduced-motion. */
@media (prefers-reduced-motion: no-preference){
  @supports (animation-timeline: view()){
    .cd-cta-inner > *{
      animation: cd-cta-rise both cubic-bezier(.22,.61,.36,1);
      animation-timeline: view();
      animation-range: entry 4% cover 32%;
      will-change: transform, opacity;
    }
    .cd-cta-inner > *:nth-child(2){ animation-range: entry 11% cover 40%; }
    .cd-cta-inner > *:nth-child(3){ animation-range: entry 19% cover 48%; }
    .cd-cta::before{
      animation: cd-cta-deepen both linear;
      animation-timeline: view();
      animation-range: entry 0% cover 46%;
    }
  }
}
@keyframes cd-cta-rise{
  from{ opacity:0; transform: translateY(48px); }
  to{ opacity:1; transform: translateY(0); }
}
@keyframes cd-cta-deepen{
  from{ opacity:.62; }
  to{ opacity:1; }
}


/* v4.2.2 — CTA background parallax (desktop): the photo locks to the viewport so the band's heading, copy and button scroll past it. Mobile + reduced-motion keep normal scroll because background-attachment:fixed is janky/unsupported on iOS. */
@media (min-width:769px) and (prefers-reduced-motion: no-preference){
  .cd-cta.cd-cta{ background-attachment: fixed !important; }
}


/* v4.3.0 - checkout collection-timing notice: sets expectations on delivery timing, early-morning pickups and the no-Sunday-delivery rule. */
.cd-collect-info{
  margin: 18px 0 4px;
  padding: 16px 18px;
  border: 1px solid color-mix(in srgb, var(--cd-brown) 22%, transparent);
  border-left: 3px solid var(--cd-brown);
  border-radius: 8px;
  background: color-mix(in srgb, var(--cd-brown) 5%, #fff);
}
.cd-collect-info > strong{
  display:block;
  margin-bottom:8px;
  color: var(--cd-brown);
  font-size: 1rem;
}
.cd-collect-info p{
  margin: 0 0 8px;
  font-size: .92rem;
  line-height: 1.55;
}
.cd-collect-info p:last-child{ margin-bottom: 0; }


/* v4.3.1 - required confirmation that the collection info was read. */
.cd-collect-ack{
  margin: 10px 0 6px !important;
  padding: 12px 14px;
  border-radius: 8px;
  background: color-mix(in srgb, var(--cd-brown) 7%, #fff);
}
.cd-collect-ack label{
  display:flex;
  align-items:flex-start;
  gap:10px;
  font-size:.92rem;
  line-height:1.5;
  cursor:pointer;
  margin:0;
}
.cd-collect-ack input[type=checkbox]{
  flex:0 0 auto;
  width:18px;
  height:18px;
  margin-top:1px;
  accent-color: var(--cd-brown);
}
.cd-collect-ack .required{ color: var(--cd-brown); }


/* v4.3.2 - join the collection notice and its confirm tickbox into one component, and keep the required-field error on-brand instead of Storefront's harsh red. */
.cd-collect-info{
  margin-bottom: 0;
  border-radius: 8px 8px 0 0;
  border-bottom: 0;
}
.cd-collect-ack{
  margin: 0 0 18px !important;
  padding: 14px 18px;
  border: 1px solid color-mix(in srgb, var(--cd-brown) 22%, transparent);
  border-left: 3px solid var(--cd-brown);
  border-top: 1px dashed color-mix(in srgb, var(--cd-brown) 25%, transparent);
  border-radius: 0 0 8px 8px;
  background: color-mix(in srgb, var(--cd-brown) 9%, #fff);
}
.cd-collect-ack label{
  display:flex; align-items:center; gap:10px;
  font-size:.92rem; line-height:1.45; margin:0; cursor:pointer;
  color: var(--cd-ink);
}
.cd-collect-ack input[type=checkbox]{
  flex:0 0 auto; width:17px; height:17px; margin:0;
  accent-color: var(--cd-brown);
}
/* keep the 'you must tick this' state readable and on-brand */
.cd-collect-ack.woocommerce-invalid,
.cd-collect-ack.woocommerce-invalid-required-field{
  background: color-mix(in srgb, var(--cd-brown) 13%, #fff);
}
.cd-collect-ack.woocommerce-invalid label,
.cd-collect-ack.woocommerce-invalid-required-field label{
  color: var(--cd-ink) !important;
}
.cd-collect-ack.woocommerce-invalid input[type=checkbox],
.cd-collect-ack.woocommerce-invalid-required-field input[type=checkbox]{
  outline: 2px solid var(--cd-brown);
  outline-offset: 1px;
  border-radius: 3px;
}
.cd-collect-ack .required{ color: var(--cd-brown); text-decoration:none; }

/* v4.5.1 - CTA band: original shape kept (centred words, photo holds still while the page
   scrolls past). The overlay is EVEN across the whole band, but it darkens by multiplying a
   warm brand tone into the photo rather than laying a flat grey film on top, which is what
   made earlier versions look washed out. Multiply keeps the highlights and detail alive. */
.cd-cta.cd-cta{
  position: relative;
  isolation: isolate;
  display: block;
  min-height: 0;
  overflow: hidden;
  background-color: #4a352b !important;
  background-image: url("/wp-content/uploads/2026/07/11-scaled-1.png") !important;
  background-position: center !important;
  background-size: cover !important;
  background-repeat: no-repeat !important;
  background-blend-mode: multiply;
  padding: clamp(96px, 11vw, 148px) 24px !important;
}
/* photo holds still while the page scrolls over it */
@media (min-width: 861px) and (prefers-reduced-motion: no-preference){
  .cd-cta.cd-cta{ background-attachment: fixed !important; }
}
/* even, low scrim purely for text legibility - same strength corner to corner */
.cd-cta.cd-cta::before{
  content: "";
  display: block !important;
  position: absolute !important;
  inset: 0 !important;
  z-index: 0;
  opacity: 1 !important;
  animation: none !important;
  background: rgba(26,19,17,.34) !important;
}
.cd-cta.cd-cta .cd-cta-inner{
  position: relative;
  z-index: 2;
  max-width: 660px !important;
  margin: 0 auto !important;
  text-align: center !important;
  padding: 0 !important;
}
.cd-cta.cd-cta .cd-cta-inner > *{ text-align: center !important; }
.cd-cta.cd-cta h2{ margin: 0 0 14px !important; }
.cd-cta.cd-cta p{ margin: 0 0 28px !important; color: color-mix(in srgb, #fff 90%, var(--cd-brown)) !important; }
.cd-cta.cd-cta .cd-band-btn{ margin-top: 0 !important; }
/* the shared button turns dark ink on hover, which works on the cream sections but
   swallows the button against this dark band - keep it brand brown here and show the
   interaction with a small lift instead of a colour change. */
.cd-cta.cd-cta .cd-band-btn,
.cd-cta.cd-cta .cd-band-btn:hover,
.cd-cta.cd-cta .cd-band-btn:focus,
.cd-cta.cd-cta .cd-band-btn:active{
  background: var(--cd-brown) !important;
  color: #fff !important;
}
@media (hover:hover){
  .cd-cta.cd-cta .cd-band-btn{ transition: transform .18s cubic-bezier(.22,.61,.36,1), box-shadow .18s ease; }
  .cd-cta.cd-cta .cd-band-btn:hover{
    transform: translateY(-2px);
    box-shadow: 0 8px 20px rgba(0,0,0,.28);
  }
}
@media (max-width: 860px){
  .cd-cta.cd-cta{ padding: clamp(76px, 16vw, 110px) 22px !important; }
}

/* =========================================================
 * v4.6.0 - ONE consistent button interaction across the site.
 * Buttons previously each had their own hover colour swap (mostly to dark ink),
 * which looked inconsistent and made buttons disappear on dark backgrounds.
 * Rule now: a button NEVER changes colour on hover - it only lifts.
 * ========================================================= */

/* --- solid brand buttons: stay brown with white text in every state --- */
.cd-band-btn,
.cd-band-btn:hover, .cd-band-btn:focus, .cd-band-btn:active,
body .main-navigation ul.menu > li.menu-item-cta > a,
body .main-navigation ul.menu > li.menu-item-cta > a:hover,
body .main-navigation ul.menu > li.menu-item-cta > a:focus,
body .main-navigation ul.menu > li.menu-item-cta > a:active,
.wp-block-button__link,
.wp-block-button__link:hover, .wp-block-button__link:focus, .wp-block-button__link:active,
.woocommerce .single_add_to_cart_button,
.woocommerce .single_add_to_cart_button:hover,
.woocommerce .single_add_to_cart_button:focus,
.woocommerce .checkout-button,
.woocommerce .checkout-button:hover,
.woocommerce .checkout-button:focus,
.woocommerce #place_order,
.woocommerce #place_order:hover,
.woocommerce #place_order:focus{
  background: var(--cd-brown) !important;
  color: #fff !important;
  border-color: var(--cd-brown) !important;
}

/* --- outline buttons (product cards, "Select options", view cart): stay outlined --- */
.woocommerce ul.products li.product .button,
.woocommerce ul.products li.product .button:hover,
.woocommerce ul.products li.product .button:focus,
.woocommerce a.button.wc-forward,
.woocommerce a.button.wc-forward:hover,
.woocommerce a.button.wc-forward:focus{
  background: transparent !important;
  color: var(--cd-brown) !important;
  border-color: color-mix(in srgb, var(--cd-brown) 55%, transparent) !important;
}

/* --- the shared interaction: a small lift, nothing else --- */
@media (hover: hover){
  .cd-band-btn,
  body .main-navigation ul.menu > li.menu-item-cta > a,
  .wp-block-button__link,
  .woocommerce .single_add_to_cart_button,
  .woocommerce .checkout-button,
  .woocommerce #place_order,
  .woocommerce ul.products li.product .button,
  .woocommerce a.button.wc-forward{
    transition: transform .18s cubic-bezier(.22,.61,.36,1), box-shadow .18s ease !important;
  }
  .cd-band-btn:hover,
  body .main-navigation ul.menu > li.menu-item-cta > a:hover,
  .wp-block-button__link:hover,
  .woocommerce .single_add_to_cart_button:hover,
  .woocommerce .checkout-button:hover,
  .woocommerce #place_order:hover,
  .woocommerce ul.products li.product .button:hover,
  .woocommerce a.button.wc-forward:hover{
    transform: translateY(-2px) !important;
    box-shadow: 0 8px 18px rgba(43,35,32,.22) !important;
  }
  .cd-band-btn:active,
  body .main-navigation ul.menu > li.menu-item-cta > a:active,
  .wp-block-button__link:active,
  .woocommerce .single_add_to_cart_button:active,
  .woocommerce .checkout-button:active,
  .woocommerce #place_order:active,
  .woocommerce ul.products li.product .button:active,
  .woocommerce a.button.wc-forward:active{
    transform: translateY(0) !important;
    box-shadow: none !important;
  }
}

/* v4.6.2 - restore shop pagination.
   Storefront prints the .storefront-sorting toolbar both above and below the product grid,
   and the page links live in the lower one. An earlier rule hid pagination in BOTH, which
   left 80 of the 96 products unreachable on every device. Keep it hidden above the grid,
   bring it back below. */
.site-main ul.products ~ .storefront-sorting .woocommerce-pagination{
  display: block !important;
  margin-top: 18px;
  text-align: center;
}

/* v4.6.3 - cart count badge on phones.
   Below 768px the header cart hides its total and item count, leaving a bare bag icon with
   no sign that anything had been added. Draw a small count bubble on the icon instead. */
#site-header-cart .cart-contents,
#site-header-cart > li > a{ position: relative; }
/* v4.6.3 ::after count badge removed — replaced by v4.6.8 bag icon + ::before badge */

/* v4.6.4 - stop the shop toolbar pushing the page links off the screen.
   .site-main > .storefront-sorting is a flex row with no wrapping, so on a phone the
   result count, the sorting dropdown and the pagination were squeezed onto one line and
   the page numbers overflowed past the right edge (only a sliver of the current-page
   bubble was visible). Let it wrap everywhere, and stack it on small screens. */
.site-main > .storefront-sorting{ flex-wrap: wrap; }

@media (max-width: 768px){
  .site-main > .storefront-sorting{
    flex-direction: column;
    align-items: stretch;
    gap: 14px;
  }
  .site-main > .storefront-sorting .woocommerce-result-count{ order: 1; }
  .site-main > .storefront-sorting .woocommerce-ordering{ order: 2; width: 100%; }
  .site-main > .storefront-sorting .woocommerce-ordering select{ width: 100%; }
  .site-main ul.products ~ .storefront-sorting .woocommerce-pagination{
    order: 3;
    width: 100%;
    margin-top: 6px;
  }
  /* let the pills wrap and stay centred instead of running off the edge */
  .woocommerce nav.woocommerce-pagination ul{
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 6px;
    padding: 0;
    margin: 0 auto;
  }
}


/* ===== v4.6.5 footer credit — quieter, less bold ===== */
.site-footer .cd-foot-credit a{
  color: color-mix(in srgb, #fff 76%, transparent) !important;
  font-weight: 500;
  border-bottom-color: color-mix(in srgb, #fff 22%, transparent);
}
.site-footer .cd-foot-credit a:hover,
.site-footer .cd-foot-credit a:focus-visible{
  color: #fff !important;
  border-bottom-color: color-mix(in srgb, #fff 55%, transparent);
}


/* ===== v4.6.6 footer social icons ===== */
.cd-foot-social{ display:flex; gap:16px; margin-top:16px; }
.cd-foot-social a{
  display:inline-flex; align-items:center; justify-content:center;
  color: color-mix(in srgb, #fff 76%, transparent);
  transition: color .2s var(--cd-ease), transform .2s var(--cd-ease);
}
.cd-foot-social a:hover,
.cd-foot-social a:focus-visible{ color:#fff; transform: translateY(-2px); }


/* ===== v4.6.7 hide empty order-notes block (field removed) ===== */
.woocommerce-additional-fields{ display:none !important; }


/* ===== v4.6.8 mobile cart icon + live count badge ===== */
@media (max-width: 768px){
  #site-header-cart{ display:flex !important; position:absolute !important; top:0; right:66px; height:62px; align-items:center; margin:0 !important; padding:0 !important; z-index:601; }
  #site-header-cart .cart-contents{ display:inline-flex !important; align-items:center; justify-content:center; position:relative; width:36px; height:36px; gap:0 !important; font-size:0 !important; color:var(--cd-ink) !important; }
  #site-header-cart .cart-contents .amount,
  #site-header-cart .cart-contents .count{ display:none !important; }
  #site-header-cart .cart-contents::after{ margin:0 !important; width:25px; height:25px; }
  #site-header-cart .cart-contents[data-cd-count]::before{
    content: attr(data-cd-count);
    position:absolute; top:-3px; right:-5px;
    min-width:17px; height:17px; padding:0 4px; box-sizing:border-box;
    background:var(--cd-brown); color:#fff;
    font-size:10px; font-weight:800; line-height:17px; text-align:center;
    border-radius:10px; letter-spacing:0;
  }
  #site-header-cart .cart-contents[data-cd-count="0"]::before,
  #site-header-cart .cart-contents:not([data-cd-count])::before{ display:none !important; }
}


/* ===== v4.6.9 desktop centred nav (logo left, menu centred, cart right) ===== */
@media (min-width: 1100px){
  .storefront-primary-navigation > .col-full{ justify-content: center !important; }
  .main-navigation{ flex: 0 1 auto !important; }
  .main-navigation ul.menu{ width: auto !important; justify-content: center !important; }
  #site-header-cart{ position: absolute !important; right: 0; top: 50%; transform: translateY(-50%); margin: 0 !important; }
}


/* ===== v4.6.16 CTA cream card (FINAL — Edgar picked A) ===== */
.cd-cta.cd-cta{ background-blend-mode: normal !important; background-color: transparent !important; }
.cd-cta.cd-cta::before{ background: none !important; }
.cd-cta.cd-cta .cd-cta-inner{ background: rgba(253,247,239,.94) !important; border-radius:18px !important; box-shadow:0 24px 60px rgba(43,35,32,.24) !important; padding:32px 32px 34px !important; text-align:left !important; }
.cd-cta.cd-cta .cd-cta-inner *:not(a){ color:#2b2320 !important; }
.cd-cta.cd-cta .cd-cta-inner h2{ font-size:1.8rem !important; line-height:1.1 !important; text-align:left !important; margin:0 0 10px !important; }
.cd-cta.cd-cta .cd-cta-inner p{ font-size:1rem !important; text-align:left !important; color:#5a4a40 !important; margin:0 0 20px !important; }
@media (min-width:769px){ .cd-cta.cd-cta .cd-cta-inner{ margin:0 6% 0 auto !important; max-width:390px !important; } }
@media (max-width:768px){ .cd-cta.cd-cta .cd-cta-inner{ margin:0 auto !important; max-width:88% !important; } }
