/* =====================================================================
   bunnie girl — brand design system for Astra + WooCommerce
   Translates bunnie-girl-floral-v2.html into the live store: header +
   bag drawer, collection cards, single product, cart ("Your Bag"),
   checkout, footer w/ newsletter, and the below-the-fold sections
   (Our Story, Provenance, Reference, Store Policies, Consign, Privacy).
   Homepage hero/story/provenance markup lives in Elementor HTML widgets.
   ===================================================================== */

:root{
  --blush:#FBE9E4; --cream:#FDF7F0; --sage:#AABF9A; --sage-dark:#8C5F56;
  --pink:#F3B6C6; --pink-dark:#E08FA6; --ink:#4A4038; --gold:#9C8558;
  --line:#EEDCD2; --muted:#7a7166; --muted-2:#6b5f54;
  --card:#FEFAF5; --strip:#F9F2E8; --accent:#7E9470;
}

/* ---------- Global ---------- */
body,
.ast-separate-container,
.ast-plain-container,
#page{
  background:var(--cream);
  color:var(--ink);
  font-family:'Inter',sans-serif;
}
body{ font-size:15px; line-height:1.7; }
/* Alex Brush is reserved for the wordmark (.site-title) and footer brand line —
   page titles (my-account, 404, search, plain pages) default to Fraunces. */
h1,.entry-title{ font-family:'Fraunces',serif; font-weight:400; color:var(--ink); }
h2,h3,h4{ font-family:'Fraunces',serif; font-weight:400; color:var(--ink); }
/* Astra's inline dynamic CSS sets 600 on h1-h6 (via both bare `h2` and
   `.entry-content :where(h2)`, the latter at class specificity) and on
   .site-title a — the design is Regular. These selectors outrank Astra's
   without !important, so editor-set weights (Elementor widget rules are
   (0,2,0)+, Gutenberg uses inline styles) still win. */
body h1,body h2,body h3,body h4,body .entry-title,
body .entry-header .entry-title,
body .site-title,body .site-title a,
.entry-content h1,.entry-content h2,.entry-content h3,.entry-content h4{ font-weight:400; }
a{ color:var(--ink); }
a:hover{ color:var(--pink-dark); }
.ast-container,.site-content .ast-container{ max-width:1400px; }

/* Buttons (WooCommerce + theme) */
.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,.ast-button,.button,
.woocommerce button[name="update_cart"],
.woocommerce-cart .checkout-button,
#place_order{
  background:var(--ink)!important;
  color:var(--cream)!important;
  border:none!important;
  border-radius:0!important;
  font-family:'Inter',sans-serif!important;
  font-size:12px!important;
  letter-spacing:1.5px!important;
  text-transform:uppercase!important;
  font-weight:500!important;
  padding:14px 26px!important;
  transition:background .2s,color .2s!important;
}
.woocommerce a.button:hover,.woocommerce button.button:hover,
.woocommerce input.button:hover,.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,.button:hover,#place_order:hover{
  background:var(--sage-dark)!important; color:#fff!important;
}
/* ghost/secondary button */
.woocommerce a.button.wc-backward,.woocommerce button.button.wc-backward{
  background:transparent!important; color:var(--ink)!important;
  border:1px solid var(--ink)!important;
}
/* square the remaining theme/plugin chrome (mobile menu toggle, lightbox) */
.menu-toggle,.pswp__button{ border-radius:0!important; }

/* ---------- Header (Astra) ---------- */
.ast-primary-header-bar,.site-header,.ast-above-header,.main-header-bar{
  background:rgba(253,247,240,0.92)!important;
  -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px);
}
/* single hairline under the whole header — the comp's divider is a barely-there
   1px @ 50% opacity. Astra otherwise stacks a border on several nested bars,
   which reads as a thicker/doubled line, so scope it to the outer .site-header. */
.site-header{ border-bottom:1px solid rgba(238,220,210,.5)!important; }
.ast-primary-header-bar,.main-header-bar,.ast-above-header{ border-bottom:0!important; }
/* compact header: Astra sizes the primary row to 80px three ways — a min-height
   on the wrap, an 80px line-height on each menu item, and an 80px line-height on
   the cart. All three must collapse or padding just stacks on top; the comp is
   ~12px top/bottom padding (~60px tall) with the hero flush beneath. */
.ast-primary-header-bar .site-primary-header-wrap,
.ast-mobile-header-wrap .ast-primary-header-bar{ min-height:0!important; }
.ast-primary-header-bar .site-primary-header-wrap{
  padding-top:12px!important; padding-bottom:12px!important;
}
.ast-primary-header-bar .main-header-menu > .menu-item{ line-height:1!important; }
/* Astra pads .site-branding 15px top/bottom — the row's tallest element; zero it
   so the 12px wrap padding alone sets the header's vertical rhythm. */
.ast-primary-header-bar .site-branding{ padding-top:0!important; padding-bottom:0!important; }
.ast-desktop .ast-primary-header-bar .ast-header-woo-cart{
  line-height:1!important; min-height:0!important;
}
.site-title,.ast-site-title-wrap .site-title{
  font-family:'Alex Brush',cursive!important;
  font-weight:400!important;
  line-height:1!important;
}
.site-title a,.ast-site-title-wrap .site-title a{
  font-family:'Alex Brush',cursive!important;
  font-size:34px!important;
  color:var(--ink)!important;
  text-transform:none!important;
  letter-spacing:0!important;
}
.main-header-menu,.main-header-menu a,.ast-menu-toggle,
.main-navigation ul li a{
  font-family:'Inter',sans-serif!important;
  font-size:12px!important;
  letter-spacing:1.5px!important;
  text-transform:uppercase!important;
  font-weight:400!important;
  color:var(--sage-dark)!important;
}
.main-header-menu a:hover,.main-navigation ul li a:hover{ color:var(--pink-dark)!important; }

/* Header cart element → the "Bag" button */
.ast-site-header-cart{ padding:0!important; }
.ast-site-header-cart .ast-site-header-cart-li{ padding:0!important; }
.ast-site-header-cart a.cart-container{
  display:inline-flex!important; align-items:center; gap:8px;
  border:1px solid var(--ink); border-radius:0;
  padding:8px 16px!important; color:var(--ink)!important;
  font-size:12px; letter-spacing:1.5px; text-transform:uppercase;
  transition:background .2s,color .2s; line-height:1;
}
.ast-site-header-cart a.cart-container::before{
  content:"Bag";
  font-family:'Inter',sans-serif;
}
.ast-site-header-cart a.cart-container:hover{ background:var(--ink); }
.ast-site-header-cart a.cart-container:hover::before{ color:#fff; }
.ast-site-header-cart .ast-cart-menu-wrap{ height:auto!important; width:auto!important; line-height:1!important; }
.ast-site-header-cart .ast-cart-menu-wrap .count,
.ast-cart-menu-wrap .count{
  background:var(--sage-dark)!important; color:#fff!important;
  border:none!important; border-radius:50%!important;
  min-width:17px!important; width:17px!important; height:17px!important;
  font-size:10px!important; font-weight:700!important;
  display:inline-flex!important; align-items:center; justify-content:center;
  line-height:1!important;
}
/* kill Astra's CSS-drawn bag outline around the count */
.ast-site-header-cart .ast-cart-menu-wrap .count::after,
.ast-site-header-cart .ast-cart-menu-wrap .count::before,
.ast-site-header-cart .ast-icon,
.ast-site-header-cart .ast-addon-cart-wrap svg{
  display:none!important; content:none!important;
}
.ast-site-header-cart a.cart-container:hover .count{ background:var(--pink-dark)!important; }
/* icon-era markup: the count lives in i.astra-icon[data-cart-total]'s ::after.
   Neutralize Astra's outline/badge chrome and render it as the inline bubble.
   The bubble stays visible at "0" on purpose — the mockup's bag button shows
   the zero count at rest (bunnie-girl-floral-v2.html #bagCount). */
.ast-site-header-cart .ast-addon-cart-wrap{
  background:none!important; border:none!important; padding:0!important;
  width:auto!important; height:auto!important; line-height:1!important;
  display:inline-flex!important; align-items:center;
}
.ast-site-header-cart i.astra-icon{
  font-style:normal; line-height:1; height:auto!important; width:auto!important;
  display:inline-flex!important; align-items:center;
}
.ast-site-header-cart i.astra-icon::after{
  content:attr(data-cart-total)!important;
  position:static!important; top:auto!important; right:auto!important;
  transform:none!important; margin:0!important; padding:0!important;
  display:inline-flex!important; align-items:center!important; justify-content:center!important;
  background:var(--sage-dark)!important; color:#fff!important;
  border:none!important; border-radius:50%!important;
  min-width:17px!important; width:17px!important; height:17px!important;
  font-size:10px!important; font-weight:700!important;
  font-family:'Inter',sans-serif!important; line-height:1!important;
}
.ast-site-header-cart a.cart-container:hover i.astra-icon::after{ background:var(--pink-dark)!important; }
/* hide dropdown mini-cart (we use the flyout drawer) */
.ast-site-header-cart .ast-site-header-cart-data{ display:none; }

/* ---------- Bag drawer (Astra cart flyout) ---------- */
#astra-mobile-cart-drawer.astra-cart-drawer{
  background:var(--cream)!important;
  border-left:2px solid var(--pink);
  box-shadow:-10px 0 30px rgba(0,0,0,.12);
}
#astra-mobile-cart-drawer .astra-cart-drawer-header{
  padding:18px 24px!important; border-bottom:1px solid var(--line);
  display:flex!important; align-items:center; justify-content:space-between;
  flex-direction:row-reverse; text-align:left;
  position:relative;
}
#astra-mobile-cart-drawer .astra-cart-drawer-title{
  font-family:'Fraunces',serif!important; font-weight:400!important; font-size:26px!important;
  color:var(--pink-dark)!important; line-height:1.2;
}
#astra-mobile-cart-drawer .astra-cart-drawer-close{
  position:static!important; background:none!important; border:none;
  color:var(--sage-dark)!important; flex-shrink:0;
}
#astra-mobile-cart-drawer .widget_shopping_cart{ padding:0 24px; }
#astra-mobile-cart-drawer ul.woocommerce-mini-cart{ padding:0; margin:0; list-style:none; }
#astra-mobile-cart-drawer .woocommerce-mini-cart-item{
  display:block; position:relative;
  padding:16px 34px 16px 74px!important; min-height:108px;
  border-bottom:1px solid var(--line); margin:0!important;
}
#astra-mobile-cart-drawer .woocommerce-mini-cart-item a:not(.remove){
  font-family:'Fraunces',serif!important; font-size:15px!important;
  color:var(--ink)!important; font-weight:400!important; line-height:1.35;
}
#astra-mobile-cart-drawer .woocommerce-mini-cart-item img{
  position:absolute!important; left:0; top:16px;
  width:60px!important; height:76px!important; object-fit:cover;
  margin:0!important; float:none!important; border-radius:0; max-width:none;
}
#astra-mobile-cart-drawer .woocommerce-mini-cart-item a.remove{
  position:absolute!important; right:0; top:14px;
  font-family:'Inter',sans-serif; font-size:18px!important;
  color:var(--muted)!important; text-decoration:none;
}
#astra-mobile-cart-drawer .woocommerce-mini-cart-item a.remove:hover{
  color:var(--pink-dark)!important; background:none!important;
}
#astra-mobile-cart-drawer .woocommerce-mini-cart-item .quantity{
  display:block; font-size:13px!important; margin-top:4px;
  font-family:'Inter',sans-serif!important; font-weight:700; color:var(--ink)!important;
}
#astra-mobile-cart-drawer .widget_shopping_cart .woocommerce-mini-cart__total,
#astra-mobile-cart-drawer .woocommerce-mini-cart__total{
  display:flex; justify-content:space-between;
  font-family:'Fraunces',serif!important; font-weight:400; font-size:18px!important;
  color:var(--ink)!important; border-top:1px solid var(--line)!important;
  padding:16px 0 4px!important; margin:6px 0 8px;
}
#astra-mobile-cart-drawer .woocommerce-mini-cart__total .amount,
#astra-mobile-cart-drawer .woocommerce-mini-cart__total span,
#astra-mobile-cart-drawer .woocommerce-mini-cart__total strong{
  color:var(--ink)!important; font-family:'Fraunces',serif!important; font-weight:400!important;
}
#astra-mobile-cart-drawer .woocommerce-mini-cart__buttons{
  display:flex; flex-direction:column; gap:10px; margin:8px 0 10px;
}
#astra-mobile-cart-drawer .woocommerce-mini-cart__buttons a.button{
  width:100%; text-align:center; margin:0!important;
}
#astra-mobile-cart-drawer .woocommerce-mini-cart__buttons a.button:not(.checkout){
  background:transparent!important; color:var(--ink)!important;
  border:1px solid var(--ink)!important;
}
#astra-mobile-cart-drawer .woocommerce-mini-cart__buttons a.button:not(.checkout):hover{
  background:var(--ink)!important; color:#fff!important;
}
#astra-mobile-cart-drawer .woocommerce-mini-cart__empty-message{
  text-align:center; padding:60px 20px; color:var(--muted); font-size:14px;
}
#astra-mobile-cart-drawer .bunnie-bag-note{ padding-bottom:18px; margin:0; }

.bunnie-bag-note{
  font-size:11px; color:var(--muted); line-height:1.6; margin-top:12px; max-width:420px;
}

/* ---------- Section head (shop/collection) ---------- */
.woocommerce-products-header{ text-align:center; padding:48px 0 6px; }
.woocommerce-products-header__title.page-title{
  font-family:'Fraunces',serif!important; font-weight:400; font-size:34px; color:var(--ink);
}
.ast-archive-description .ast-archive-title{ font-family:'Fraunces',serif!important; }
.woocommerce-products-header .bunnie-count,
.ast-archive-description .bunnie-count{
  font-size:12px; letter-spacing:1.5px; text-transform:uppercase; color:var(--muted);
}
/* the mockup's collection grid has no sort UI — hide it on the homepage only;
   /shop/ and category archives keep WooCommerce's ordering control (styled below) */
.bunnie-home .woocommerce-result-count,
.bunnie-home .woocommerce-ordering{ display:none; }
.woocommerce .woocommerce-result-count{
  font-size:12px; letter-spacing:1px; text-transform:uppercase; color:var(--muted);
}
.woocommerce .woocommerce-ordering select{
  font-family:'Inter',sans-serif; font-size:12px; color:var(--ink);
  border:1px solid var(--line); background:#fff; border-radius:0; padding:6px 10px;
}

/* ---------- Product loop / cards ---------- */
.woocommerce ul.products,.woocommerce-page ul.products{
  display:grid!important;
  grid-template-columns:repeat(5,1fr)!important;
  gap:2px!important;
  max-width:1400px; margin:10px auto 0; padding:0 0 90px;
}
/* the homepage grid sits in a full-width stretched section and pads itself;
   /shop/ lives inside the already-padded .ast-container */
.bunnie-home ul.products{ padding:0 32px 90px; }
.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product{
  width:auto!important; margin:0!important; float:none!important;
  background:var(--card); border:1px solid var(--line);
  display:flex; flex-direction:column; overflow:hidden;
  transition:transform .25s ease,box-shadow .25s ease; padding:0!important;
  /* promote to its own compositing layer so the hover lift animates smoothly
     (no sub-pixel re-raster shimmer) — cards were "jittering" on hover. */
  will-change:transform; backface-visibility:hidden;
}
.woocommerce ul.products li.product:hover{
  transform:translate3d(0,-4px,0); box-shadow:0 14px 30px rgba(74,64,56,.10);
}
.woocommerce ul.products li.product .astra-shop-thumbnail-wrap{
  position:relative;
}
.woocommerce ul.products li.product a img{
  margin:0!important; border-radius:0; aspect-ratio:3/4; object-fit:cover; width:100%;
}
/* Nº badge over the media */
.bunnie-card-num{
  position:absolute; top:12px; left:12px; z-index:2;
  font-size:10px; letter-spacing:1.5px; color:var(--ink);
  background:rgba(253,247,240,.9); padding:4px 8px;
  border:1px solid var(--line); line-height:1;
}
/* wishlist heart over the media (YITH, php templates) */
.bunnie-like{
  position:absolute; bottom:10px; right:10px; z-index:2; line-height:1;
}
.bunnie-like .yith-wcwl-add-to-wishlist{ margin:0!important; }
.bunnie-like .yith-wcwl-add-to-wishlist a{
  display:flex; align-items:center; justify-content:center;
  width:30px; height:30px; color:var(--pink-dark)!important;
  font-size:0!important; text-decoration:none!important;
  transition:transform .15s ease;
}
.bunnie-like .yith-wcwl-add-to-wishlist a:hover{ transform:scale(1.15); }
.bunnie-like .yith-wcwl-add-to-wishlist a i{
  font-size:18px!important; margin:0!important; color:var(--pink-dark)!important;
}
/* Current YITH renders an inline <svg class="yith-wcwl-icon-svg"> whose
   stroke=currentColor resolves to a 25px BLACK heart. The comp is an 18px pink
   outline (fill:none, stroke #E08FA6), so force colour + size on the svg. */
.bunnie-like .yith-wcwl-icon-svg,
.bunnie-like a svg.yith-wcwl-icon-svg{
  width:18px!important; height:18px!important;
  fill:none!important; stroke:var(--pink-dark)!important; color:var(--pink-dark)!important;
}
.bunnie-like .yith-wcwl-add-to-wishlist a span{ display:none; }
.bunnie-like .yith-wcwl-add-to-wishlist .feedback{ font-size:0; }
.bunnie-like .yith-wcwl-add-to-wishlist .feedback i{ font-size:18px; color:var(--pink-dark); }
/* added/exists state: YITH renders the heart in the inert .feedback span and a
   text-only "View wishlist" anchor. Stack the anchor over the heart so the
   heart itself is the (visible) tap target instead of an invisible link. */
.bunnie-like .yith-wcwl-wishlistaddedbrowse,
.bunnie-like .yith-wcwl-wishlistexistsbrowse{
  position:relative; display:block; width:30px; height:30px;
}
.bunnie-like .yith-wcwl-wishlistaddedbrowse .feedback,
.bunnie-like .yith-wcwl-wishlistexistsbrowse .feedback{
  position:absolute; inset:0; z-index:2; pointer-events:none;
  display:flex; align-items:center; justify-content:center;
}
.bunnie-like .yith-wcwl-wishlistaddedbrowse a,
.bunnie-like .yith-wcwl-wishlistexistsbrowse a{
  position:absolute; inset:0; z-index:1; width:30px; height:30px;
}
/* hide Astra's on-card cart trigger + loop add-to-cart (cards are click-through) */
.woocommerce ul.products li.product .ast-on-card-button,
.woocommerce ul.products li.product .astra-shop-summary-wrap .button,
.woocommerce ul.products li.product .added_to_cart{
  display:none!important;
}
.woocommerce ul.products li.product .astra-shop-summary-wrap{
  padding:16px 18px 18px; display:flex; flex-direction:column; gap:4px; flex:1;
  text-align:left;
}
/* category eyebrow */
.woocommerce ul.products li.product .ast-woo-product-category{
  font-size:10px; letter-spacing:1.5px; text-transform:uppercase;
  color:var(--sage-dark); margin:0;
}
.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce ul.products li.product h2{
  font-family:'Fraunces',serif!important; font-weight:400!important;
  font-size:19px!important; line-height:1.25; color:var(--ink);
  padding:0!important;
}
.woocommerce ul.products li.product .bunnie-designer-line{
  font-size:12px; color:var(--sage-dark); font-weight:600; letter-spacing:.3px;
}
.woocommerce ul.products li.product .bunnie-card-meta{
  font-size:12px; color:var(--muted); font-weight:600;
}
.woocommerce ul.products li.product .price{
  margin:auto 0 0!important; padding-top:10px; border-top:1px solid var(--line);
  display:flex; align-items:center; justify-content:space-between;
  font-size:15px; color:var(--ink)!important; font-weight:700;
}
.woocommerce ul.products li.product .star-rating{ display:none; }
.woocommerce ul.products li.product .onsale{ display:none; }
/* sold pieces */
.woocommerce ul.products li.product .ast-shop-product-out-of-stock{
  position:absolute; top:12px; right:12px; z-index:2;
  font-size:9px; letter-spacing:1px; text-transform:uppercase; font-weight:700;
  color:var(--gold); background:rgba(253,247,240,.92);
  padding:4px 8px; border:1px solid var(--line); line-height:1;
}
.woocommerce ul.products li.product.outofstock a img{ opacity:.6; }

/* ---------- Single product ---------- */
.single-product div.product{ margin-top:24px; }
.woocommerce-breadcrumb,.ast-breadcrumbs-wrapper,.ast-breadcrumbs{ display:none!important; }
.single-product div.product .product_title.entry-title{
  font-family:'Fraunces',serif!important; font-weight:400!important;
  font-size:32px!important; color:var(--ink); margin:2px 0 12px;
}
.single-product-category{ display:none !important; }
.single-product .bunnie-eyebrow{
  display:block; font-size:11px; letter-spacing:2px; text-transform:uppercase;
  color:var(--sage-dark); margin-bottom:4px; font-weight:500;
}
.single-product div.product p.price,
.single-product div.product span.price{
  color:var(--ink)!important; font-weight:700; font-size:22px; margin-bottom:16px;
}
.single-product .woocommerce-product-details__short-description{
  font-size:14px; line-height:1.75; color:var(--muted-2); margin-bottom:18px;
}
/* provenance detail list (mirrors mockup modal) */
.bunnie-detail-list{ list-style:none; margin:0 0 22px; padding:0; font-size:13px; }
.bunnie-detail-list li{
  display:flex; justify-content:space-between; gap:20px;
  padding:9px 0; border-bottom:1px solid var(--line);
  margin:0;
}
.bunnie-detail-list li span:first-child{ color:var(--muted); flex-shrink:0; font-weight:600; }
.bunnie-detail-list li span:last-child{ color:var(--ink); text-align:left; flex:1; }
/* availability + add to cart */
.single-product .stock.in-stock,
.woocommerce div.product p.stock.in-stock{ color:var(--accent)!important; font-size:12px; letter-spacing:1px; text-transform:uppercase; }
.single-product .stock.out-of-stock,
.woocommerce div.product p.stock.out-of-stock{ color:var(--pink-dark)!important; font-size:12px; letter-spacing:1px; text-transform:uppercase; }
.single-product form.cart{ margin-bottom:8px; display:block; max-width:360px; }
.single-product .single_add_to_cart_button{ width:100%!important; max-width:360px; display:block; }
/* the modal has no SKU/category meta line */
.single-product .product_meta{ display:none; }
.bunnie-continue{
  display:block; max-width:360px; text-align:center;
  border:1px solid var(--ink); color:var(--ink);
  padding:13px; font-size:12px; letter-spacing:1.5px; text-transform:uppercase;
  border-radius:0; margin:2px 0 4px; transition:background .2s,color .2s;
  text-decoration:none;
}
.bunnie-continue:hover{ background:var(--ink); color:#fff; }
.bunnie-authenticity{
  display:flex; align-items:center; gap:8px; margin-top:16px;
  font-size:11px; color:var(--muted);
}
.bunnie-authenticity .tick{ color:var(--sage-dark); font-weight:700; }
/* single product wishlist button (if rendered) stays quiet */
.single-product .yith-wcwl-add-to-wishlist{ margin:6px 0 0; font-size:12px; }
/* tabs / additional info */
.woocommerce-tabs .wc-tab h2{ font-family:'Fraunces',serif!important; }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a{ color:var(--pink-dark); }
.single-product .product_meta .sku_wrapper{ color:var(--muted); font-size:12px; }

/* ---------- Cart page — "Your Bag" ---------- */
.woocommerce-cart h1.entry-title,
.woocommerce-cart .ast-archive-title{
  font-family:'Fraunces',serif!important; font-weight:400;
  color:var(--pink-dark); font-size:34px;
}
.woocommerce table.shop_table{ border:1px solid var(--line)!important; border-radius:0; }
.woocommerce table.shop_table th,.woocommerce table.shop_table td{ border-color:var(--line)!important; }
.woocommerce table.shop_table thead th{
  font-size:11px; letter-spacing:1.5px; text-transform:uppercase; color:var(--muted); font-weight:600;
}
.woocommerce-cart table.cart img{ width:60px; height:76px; object-fit:cover; border-radius:0; }
.woocommerce-cart table.cart td.product-name a{
  font-family:'Fraunces',serif; font-size:16px; color:var(--ink);
}
.woocommerce a.remove{
  color:var(--muted)!important; font-weight:400;
}
.woocommerce a.remove:hover{ color:var(--pink-dark)!important; background:none!important; }
/* one-of-one: quantity is always 1 */
.woocommerce-cart table.cart td.product-quantity .quantity{ color:var(--muted); }
.woocommerce-cart .cart_totals h2{
  font-family:'Fraunces',serif!important; font-weight:400; font-size:24px;
}
.woocommerce-cart .cart-collaterals .cart_totals table{ border-color:var(--line)!important; border-radius:0; }
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button{ width:100%; text-align:center; }
.woocommerce-cart .cross-sells{ display:none; }
.cart-empty.woocommerce-info{ text-align:center; }

/* ---------- Checkout ---------- */
.woocommerce-checkout h1.entry-title{
  font-family:'Fraunces',serif!important; font-weight:400;
  color:var(--pink-dark); font-size:34px;
}
.woocommerce-checkout h3,#order_review_heading{
  font-family:'Fraunces',serif!important; font-weight:400;
}
.woocommerce form .form-row label{
  font-size:11px; letter-spacing:1px; text-transform:uppercase; color:var(--muted);
}
.select2-container--default .select2-selection--single,
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea{
  border:1px solid var(--line)!important; border-radius:0!important;
  background:#fff!important; color:var(--ink)!important;
  font-family:'Inter',sans-serif; font-size:14px; padding:10px 12px;
}
.woocommerce-checkout #payment{
  background:var(--strip)!important; border-radius:0;
}
.woocommerce-checkout #payment div.payment_box{
  background:var(--blush)!important; color:var(--ink);
}
.woocommerce-checkout #payment div.payment_box::before{ border-bottom-color:var(--blush); }
.woocommerce-info,.woocommerce-message{
  border-top-color:var(--sage-dark)!important; background:#F5EDE2;
}
.woocommerce-info::before,.woocommerce-message::before{ color:var(--sage-dark)!important; }
.woocommerce-account .woocommerce-MyAccount-content h2{ font-family:'Fraunces',serif!important; }
.woocommerce-MyAccount-navigation ul li.is-active a{ color:var(--pink-dark); }

/* =====================================================================
   Homepage sections (Elementor HTML widgets output pure markup)
   ===================================================================== */
/* Astra gives #primary a 60px block margin — the comp runs the hero image
   flush against the header's divider line, so drop it on the homepage.
   The second selector mirrors Astra's `.yes-js.js_active .ast-plain-container
   .ast-single-post #primary{margin:4em 0}` (and its <=921px padding variant),
   which otherwise outranks anything simpler. */
body.bunnie-home #primary,
.yes-js.js_active .ast-plain-container.ast-single-post.bunnie-home #primary{ margin:0; padding:0; }
/* body-qualified to beat Elementor's .elementor-widget:not(:last-child)
   20px margin on an equal-specificity tie (its sheet loads after ours) */
body.bunnie-home .elementor-widget-html,
body.bunnie-home .elementor-widget-shortcode{ margin:0; }
/* fallback if the section is ever switched back from full-width to boxed */
.bunnie-home.elementor-section-boxed > .elementor-container,
section.bunnie-home.elementor-section-boxed > .elementor-container{ max-width:1400px; }

/* Hero */
.bunnie-hero{
  position:relative; display:flex; flex-direction:column; align-items:center;
  text-align:center; padding:0 24px 60px; background:var(--cream); overflow:hidden;
}
.bunnie-hero .bh-media{ position:relative; width:100%; max-width:1100px; margin:0 auto; }
.bunnie-hero .bh-banner{ width:100%; display:block; margin-bottom:16px; }
/* sway daisy */
.bunnie-hero .bh-daisy-wrap{
  position:absolute; left:5.08%; top:32.79%; width:10.16%; z-index:4; cursor:pointer;
}
.bunnie-hero .bh-daisy{
  width:100%; display:block; transform-origin:48% 90%;
  transition:transform .3s ease;
}
.bunnie-hero .bh-daisy-wrap:hover .bh-daisy{
  animation:bh-daisy-sway 1.4s ease-in-out infinite;
}
@keyframes bh-daisy-sway{
  0%,100%{ transform:rotate(-5deg); }
  50%{ transform:rotate(5deg); }
}
/* sparkle hover zones */
.bunnie-hero .bh-bow,.bunnie-hero .bh-bird,.bunnie-hero .bh-tummy{
  position:absolute; transform:translate(-50%,-50%); border-radius:50%; cursor:pointer;
}
.bunnie-hero .bh-bow{ top:4.6%; left:50.8%; width:6%; padding-top:6%; }
.bunnie-hero .bh-bird{ top:63.8%; left:75.1%; width:6%; padding-top:6%; }
.bunnie-hero .bh-tummy{ top:88%; left:50%; width:16%; padding-top:16%; }
.bunnie-hero .bh-spark-layer{ position:absolute; inset:-25px; pointer-events:none; overflow:visible; }
.bunnie-hero .bh-spark{ position:absolute; font-size:14px; opacity:0; }
.bunnie-hero .bh-bow .bh-spark{ font-size:22px; color:#F3B6C6; text-shadow:0 0 7px rgba(243,182,198,1),0 0 14px rgba(224,143,166,.9); }
.bunnie-hero .bh-bird .bh-spark{ color:#A9C9E8; text-shadow:0 0 5px rgba(169,201,232,1),0 0 10px rgba(120,160,210,.8); }
.bunnie-hero .bh-tummy .bh-spark{ color:#fff; text-shadow:0 0 6px rgba(255,255,255,1),0 0 12px rgba(230,220,215,.8); }
.bunnie-hero .bh-bow:hover .bh-spark,
.bunnie-hero .bh-bird:hover .bh-spark,
.bunnie-hero .bh-tummy:hover .bh-spark{ animation:bh-spark-shoot 1.3s ease-out infinite; }
@keyframes bh-spark-shoot{
  0%{ opacity:0; transform:translate(0,0) scale(.4); }
  20%{ opacity:1; }
  100%{ opacity:0; transform:translate(var(--sx),var(--sy)) scale(1); }
}
.bunnie-hero .bh-tag{
  font-family:'Fraunces',serif; font-weight:400; font-size:clamp(24px,4vw,32px);
  color:var(--ink); margin:6px 0 10px; line-height:1.15;
}
.bunnie-hero .bh-tag span{ color:var(--pink-dark); font-style:italic; }
.bunnie-hero .bh-eyebrow{
  display:block; font-size:11px; letter-spacing:2px; text-transform:uppercase;
  color:var(--pink-dark); margin-bottom:14px; font-weight:400;
}
.bunnie-hero .bh-lead{ max-width:460px; font-size:15px; line-height:1.7; color:var(--muted-2); margin:0 auto 28px; }
.bunnie-hero .bh-cta{
  display:inline-flex; align-items:center; gap:8px; font-size:14px; font-weight:400;
  padding:12px 26px; color:var(--sage-dark); border:1px solid var(--sage-dark);
  border-radius:0; transition:background .2s,color .2s; text-decoration:none!important;
}
.bunnie-hero .bh-cta:hover{ background:var(--sage-dark); color:#fff; }

/* Section head */
.bunnie-sechead{
  display:flex; align-items:baseline; justify-content:space-between;
  max-width:1400px; margin:0 auto; padding:56px 32px 20px; scroll-margin-top:90px;
}
.bunnie-sechead h2{ font-size:30px; margin:0; }
.bunnie-sechead .count{ font-size:12px; letter-spacing:1.5px; text-transform:uppercase; color:var(--muted); }

/* Our Story */
.bunnie-about{ max-width:640px; margin:0 auto; padding:56px 32px 10px; text-align:center; scroll-margin-top:80px; }
.bunnie-about .ba-eyebrow{ font-size:11px; letter-spacing:2px; text-transform:uppercase; color:var(--sage-dark); margin-bottom:12px; display:block; }
.bunnie-about h2{ font-size:30px; margin:0 0 18px; }
.bunnie-about p{ font-size:14px; line-height:1.8; color:var(--muted-2); max-width:520px; margin:0 auto; }

/* Provenance strip */
.bunnie-prov{ background:var(--strip); color:var(--ink); padding:60px 32px; text-align:center; margin-top:40px; scroll-margin-top:80px; }
.bunnie-prov .bp-eyebrow{ font-size:11px; letter-spacing:2px; text-transform:uppercase; color:var(--sage-dark); margin-bottom:12px; display:block; }
.bunnie-prov .bp-quote{ font-family:'Fraunces',serif; font-size:26px; max-width:640px; margin:0 auto 14px; line-height:1.4; }
.bunnie-prov .bp-sub{ font-size:13px; max-width:520px; margin:0 auto; line-height:1.7; opacity:.7; }

/* Reference — condition guide (revealed from footer) */
.bunnie-condition{ max-width:640px; margin:0 auto; padding:56px 32px 0; scroll-margin-top:90px; }
.bunnie-condition .br-eyebrow{ font-size:11px; letter-spacing:2px; text-transform:uppercase; color:var(--sage-dark); margin-bottom:14px; display:block; text-align:center; }
.bunnie-condition h2{ font-size:26px; margin:0 0 24px; text-align:center; }
.bunnie-condition .br-rows{ display:flex; flex-direction:column; gap:10px; text-align:left; }
.bunnie-condition .br-rows p{ font-size:13px; line-height:1.6; color:var(--muted-2); margin:0; }
.bunnie-condition .br-rows strong{ color:var(--ink); font-weight:600; }

/* Store policies (revealed from footer) */
.bunnie-policies{ max-width:760px; margin:0 auto; padding:60px 32px 40px; scroll-margin-top:90px; }
.bunnie-policies .bp2-eyebrow{ font-size:11px; letter-spacing:2px; text-transform:uppercase; color:var(--sage-dark); margin-bottom:14px; display:block; text-align:center; }
.bunnie-policies h2{ font-size:30px; margin:0 0 32px; text-align:center; }
.bunnie-policies .bp2-grid{
  display:grid; grid-template-columns:repeat(2,1fr); gap:28px;
  max-width:520px; margin:0 auto; text-align:center;
}
.bunnie-policies h3{ font-size:16px; margin:0 0 8px; }
.bunnie-policies .bp2-grid p{ font-size:13px; line-height:1.7; color:var(--muted-2); margin:0; }

/* Consign With Us */
.bunnie-consign{ background:var(--strip); padding:60px 32px; text-align:center; scroll-margin-top:90px; }
.bunnie-consign .bc-eyebrow{ font-size:11px; letter-spacing:2px; text-transform:uppercase; color:var(--sage-dark); margin-bottom:14px; display:block; }
.bunnie-consign h2{ font-size:30px; margin:0 0 12px; }
.bunnie-consign .bc-lead{ font-size:14px; line-height:1.7; color:var(--muted-2); max-width:480px; margin:0 auto 28px; }
.bunnie-consign .bc-lead.bc-split{ font-size:13px; }
.bunnie-consign-form{
  max-width:420px; margin:0 auto; display:flex; flex-direction:column; gap:12px; text-align:left;
}
.bunnie-consign-form .bc-field label{
  font-size:11px; letter-spacing:1px; text-transform:uppercase; color:#8a7d70;
  display:block; margin-bottom:5px;
}
.bunnie-consign-form input[type="text"],
.bunnie-consign-form input[type="email"],
.bunnie-consign-form textarea{
  width:100%; font-family:'Inter',sans-serif; font-size:14px; padding:10px 12px;
  border:1px solid var(--line); background:#fff; color:var(--ink); border-radius:0;
}
.bunnie-consign-form textarea{ resize:vertical; }
.bunnie-consign-form .bc-submit{
  margin-top:6px; font-size:13px; letter-spacing:1px; text-transform:uppercase;
  padding:12px; background:transparent; color:var(--sage-dark);
  border:1px solid var(--sage-dark); cursor:pointer; font-family:'Inter',sans-serif;
  transition:background .2s,color .2s; border-radius:0;
}
.bunnie-consign-form .bc-submit:hover{ background:var(--sage-dark); color:#fff; }
.bunnie-consign-confirm{ font-size:13px; color:var(--sage-dark); margin:16px 0 0; }

/* Privacy (revealed from footer) */
.bunnie-privacy{ max-width:640px; margin:0 auto; padding:56px 32px 40px; scroll-margin-top:90px; }
.bunnie-privacy .bpr-eyebrow{ font-size:11px; letter-spacing:2px; text-transform:uppercase; color:var(--sage-dark); margin-bottom:14px; display:block; text-align:center; }
.bunnie-privacy h2{ font-size:26px; margin:0 0 24px; text-align:center; }
.bunnie-privacy .bpr-rows{ display:flex; flex-direction:column; gap:16px; text-align:left; }
.bunnie-privacy .bpr-rows p{ font-size:13px; line-height:1.7; color:var(--muted-2); margin:0; }

/* honeypot */
.bg-hp{ position:absolute!important; left:-9999px!important; width:1px; height:1px; opacity:0; }

/* form validation/error message (consign section + footer newsletter) */
.bunnie-form-error{
  font-size:12px; color:var(--pink-dark); margin:0 0 12px;
  text-transform:none; letter-spacing:.3px; font-weight:400;
}

/* ---------- Footer ---------- */
.site-footer .ast-builder-footer-grid-columns,
.site-footer .footer-adv,.ast-small-footer{ display:none; }
.bunnie-footer{
  padding:40px 32px; text-align:center; font-size:11px;
  letter-spacing:1.5px; color:var(--pink-dark); text-transform:uppercase;
  border-top:1px solid var(--line); font-weight:600; background:var(--cream);
}
.bunnie-footer .bf-brand{
  font-family:'Alex Brush',cursive; font-size:20px; text-transform:none;
  letter-spacing:0; font-weight:400;
}
.bunnie-footer .bf-links{
  margin-top:10px; display:flex; align-items:center; justify-content:center;
  gap:16px; flex-wrap:wrap;
}
/* both footer lines are semi-bold in the comp — the brand line already inherits
   600 from .bunnie-footer; match it on the links (were 400). */
.bunnie-footer .bf-brand-line{ font-weight:600; }
.bunnie-footer .bf-links a{
  display:inline-flex; align-items:center; gap:6px;
  color:var(--sage-dark); text-decoration:none; text-transform:none;
  letter-spacing:.5px; font-size:12px; font-weight:600; transition:color .2s;
}
.bunnie-footer .bf-links a:hover{ color:#5a3f38; }
.bunnie-footer .bf-dot{ color:var(--line); }
.bunnie-footer .bf-newsletter{
  margin-top:20px; padding-top:20px; border-top:1px solid var(--line);
}
.bunnie-footer .bf-newsletter-lead{
  font-size:11px; letter-spacing:.5px; text-transform:none; color:#8a7d70;
  margin:0 0 10px; font-weight:400;
}
.bunnie-newsletter-form{
  display:flex; gap:6px; justify-content:center; max-width:300px; margin:0 auto;
}
.bunnie-newsletter-form input[type="email"]{
  flex:1; font-family:'Inter',sans-serif; font-size:12px; padding:8px 10px;
  border:1px solid var(--line); background:#fff; color:var(--ink);
  text-transform:none; letter-spacing:0; border-radius:0; min-height:36px;
}
.bunnie-newsletter-form button{
  width:36px; height:36px; flex-shrink:0; padding:0;
  background:var(--pink-dark); color:#fff; border:none; cursor:pointer;
  display:flex; align-items:center; justify-content:center; border-radius:0;
}
.bunnie-newsletter-form button:hover{ background:var(--sage-dark); }
.bunnie-newsletter-confirm{
  font-size:12px; color:var(--sage-dark); margin:10px 0 0; text-transform:none; font-weight:400;
}

/* ---------- Responsive ---------- */
@media (max-width:900px){
  .woocommerce ul.products,.woocommerce-page ul.products{ grid-template-columns:repeat(2,1fr)!important; }
}
@media (max-width:560px){
  .woocommerce ul.products,.woocommerce-page ul.products{ grid-template-columns:1fr!important; }
  .bunnie-home ul.products{ padding:0 20px 70px; }
  /* must repeat the base rule's full selector — an equal-specificity tie is
     won by this later rule, a weaker `.site-title a` alone would lose */
  .site-title a,.ast-site-title-wrap .site-title a{ font-size:28px!important; }
  .bunnie-sechead{ padding:40px 20px 8px; }
  .bunnie-policies .bp2-grid{ grid-template-columns:1fr; }
}
