:root{
  --gp-ink:#13231f; --gp-muted:#5b6b66; --gp-line:#e3ebe8;
  --gp-teal:#1f8f76; --gp-pine:#0f5c4c; --gp-sun:#ffd23f; --gp-berry:#d23a4f;
}

/* 1. Keep the grid inside a normal page width with side padding */
body.archive.woocommerce #primary{
  max-width:1240px; margin-left:auto !important; margin-right:auto !important;
  padding-left:20px !important; padding-right:20px !important; box-sizing:border-box;
}

/* 2. Even grid: same size cards in every row */
body.archive.woocommerce ul.products,
body.single-product .related ul.products,
body.single-product .upsells ul.products{
  display:grid !important; grid-template-columns:repeat(4,minmax(0,1fr)); gap:20px; margin:0 !important;
  clear:both; width:100%;
}
body.archive.woocommerce ul.products::before, body.archive.woocommerce ul.products::after,
body.single-product .related ul.products::before, body.single-product .related ul.products::after,
body.single-product .upsells ul.products::before, body.single-product .upsells ul.products::after{display:none !important}

body.archive.woocommerce ul.products li.product,
body.single-product .related ul.products li.product,
body.single-product .upsells ul.products li.product{
  width:auto !important; margin:0 !important; float:none !important;
  display:flex !important; flex-direction:column;
  background:#fff; border:1px solid var(--gp-line); border-radius:14px; overflow:hidden;
  transition:box-shadow .2s ease, transform .2s ease;
}
body.archive.woocommerce ul.products li.product:hover,
body.single-product .related ul.products li.product:hover{
  box-shadow:0 10px 24px rgba(19,35,31,.10); transform:translateY(-2px);
}

/* 3. Every product photo in the same square frame, whole product visible, never stretched or cropped */
body.archive.woocommerce .astra-shop-thumbnail-wrap,
body.single-product .related .astra-shop-thumbnail-wrap,
body.single-product .upsells .astra-shop-thumbnail-wrap{
  position:relative; aspect-ratio:1/1; background:#fff; overflow:hidden; border-bottom:1px solid var(--gp-line);
}
body.archive.woocommerce .astra-shop-thumbnail-wrap > a.woocommerce-LoopProduct-link,
body.single-product .related .astra-shop-thumbnail-wrap > a.woocommerce-LoopProduct-link,
body.single-product .upsells .astra-shop-thumbnail-wrap > a.woocommerce-LoopProduct-link{position:absolute; inset:0; display:block}
body.archive.woocommerce .astra-shop-thumbnail-wrap img,
body.single-product .related .astra-shop-thumbnail-wrap img,
body.single-product .upsells .astra-shop-thumbnail-wrap img{
  position:absolute !important; top:6%; left:6%; width:88% !important; height:88% !important;
  max-width:none !important; object-fit:contain !important; margin:0 !important;
  transition:transform .3s ease;
}
body.archive.woocommerce li.product:hover .astra-shop-thumbnail-wrap img{transform:scale(1.04)}
/* hide Astra's hover bag icon: the card already has an Add to cart button */
body.archive.woocommerce .ast-on-card-button,
body.single-product .related .ast-on-card-button{display:none !important}

/* 4. Text block: readable name, clear price, button always at the bottom */
body.archive.woocommerce .astra-shop-summary-wrap,
body.single-product .related .astra-shop-summary-wrap,
body.single-product .upsells .astra-shop-summary-wrap{
  display:flex; flex-direction:column; flex:1; gap:4px; padding:12px 14px 14px !important; text-align:left;
}
body.archive.woocommerce .ast-woo-product-category{
  font-size:11px !important; letter-spacing:.08em; text-transform:uppercase; color:var(--gp-muted) !important; margin:0 !important;
}
body.archive.woocommerce .woocommerce-loop-product__title,
body.single-product .related .woocommerce-loop-product__title,
body.single-product .upsells .woocommerce-loop-product__title{
  font-family:"Poppins",system-ui,sans-serif !important; font-size:14.5px !important; font-weight:600 !important;
  line-height:1.35 !important; text-transform:none !important; letter-spacing:0 !important; color:var(--gp-ink) !important;
  margin:0 !important; padding:0 !important;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; min-height:2.7em;
}
body.archive.woocommerce li.product .price,
body.single-product .related li.product .price,
body.single-product .upsells li.product .price{
  font-size:19px !important; font-weight:700 !important; color:var(--gp-ink) !important; margin:auto 0 0 !important; padding-top:6px;
}
body.archive.woocommerce li.product .price del{font-size:13px; font-weight:400; color:var(--gp-muted); opacity:1}
body.archive.woocommerce li.product .price ins{text-decoration:none; color:var(--gp-berry)}
body.archive.woocommerce li.product a.button,
body.single-product .related li.product a.button,
body.single-product .upsells li.product a.button{
  display:block !important; width:100%; text-align:center; margin:10px 0 0 !important;
  padding:11px 10px !important; border-radius:10px !important; font-size:14px !important; font-weight:600 !important;
  background:var(--gp-teal) !important; color:#fff !important; border:0 !important;
}
body.archive.woocommerce li.product a.button:hover{background:var(--gp-pine) !important}
body.archive.woocommerce li.product a.added_to_cart{
  display:block; text-align:center; margin-top:6px; font-weight:600; color:var(--gp-pine);
}
body.archive.woocommerce li.product .onsale{
  top:10px !important; left:10px !important; right:auto !important; min-height:0; min-width:0; line-height:1;
  padding:6px 9px !important; border-radius:6px !important; background:var(--gp-berry) !important; font-size:12px !important; z-index:2;
}

/* 5. Toolbar: result count and sort on one tidy line */
body.archive.woocommerce .woocommerce-result-count{color:var(--gp-muted); font-size:14px}
body.archive.woocommerce .woocommerce-ordering select{border:1px solid var(--gp-line); border-radius:10px; padding:8px 12px}

/* 6. Tablet and phone */
@media (max-width:921px){
  body.archive.woocommerce ul.products,
  body.single-product .related ul.products{grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px}
}
@media (max-width:600px){
  body.archive.woocommerce #primary{padding-left:12px !important; padding-right:12px !important}
  body.archive.woocommerce ul.products,
  body.single-product .related ul.products,
  body.single-product .upsells ul.products{grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px}
  body.archive.woocommerce .astra-shop-summary-wrap{padding:10px !important}
  body.archive.woocommerce .woocommerce-loop-product__title{font-size:13.5px !important}
  body.archive.woocommerce li.product .price{font-size:17px !important}
  body.archive.woocommerce li.product a.button{font-size:13px !important; padding:10px 6px !important}
}

:root{
  --gp-ink:#13231f;       /* headings */
  --gp-text:#3d4a46;      /* body text */
  --gp-muted:#5b6b66;
  --gp-teal:#1f8f76; --gp-pine:#0f5c4c; --gp-berry:#d23a4f;
  --gp-display:"Anton","Impact","Arial Narrow",sans-serif;
  --gp-sans:"Poppins",system-ui,-apple-system,"Segoe UI",Arial,sans-serif;
}

/* 1. Body text: a little larger and softer for easy reading */
body:not(.gp-x){font-family:var(--gp-sans); font-size:16px; line-height:1.65; color:var(--gp-text)}
body:not(.gp-x) :is(button,input,select,textarea){font-family:var(--gp-sans)}

/* 2. Default for every heading: clean Poppins (never fake-bold Anton) */
body:not(.gp-x) :is(h1,h2,h3,h4,h5,h6,.entry-title):not(.gpv *){
  font-family:var(--gp-sans); font-weight:700; letter-spacing:-.01em; line-height:1.25;
  text-transform:none;  /* colours stay as set in Elementor (white on photos etc.) */
}
body:not(.gp-x) h3:not(.gpv *), body:not(.gp-x) h4:not(.gpv *){font-weight:600}

/* 3. Big marketing headlines keep the Anton brand look (regular weight, never bold) */
body.home:not(.gp-x) :is(h1,h2):not(.gpv *),
body:not(.gp-x) :is(.woocommerce-products-header__title,.ast-archive-title):not(.gpv *),
body:not(.gp-x) .gp-display:not(.gpv *){
  font-family:var(--gp-display); font-weight:400; letter-spacing:.01em; line-height:1.1;
}
body.home:not(.gp-x) h1:not(.gpv *){font-size:clamp(36px,5vw,56px)}
body.home:not(.gp-x) h2:not(.gpv *){font-size:clamp(26px,3.2vw,38px)}
/* small homepage headings (DOG TOYS, product names, sub-heads): clean Poppins */
body.home:not(.gp-x) h3:not(.gpv *){font-family:var(--gp-sans); font-weight:600; font-size:clamp(16px,1.5vw,20px); letter-spacing:.01em}

/* 4. Product page */
body.single-product:not(.gp-x) h1.product_title{
  font-family:var(--gp-sans); font-weight:700; font-size:clamp(22px,2.2vw,28px);
  line-height:1.25; letter-spacing:-.015em; margin-bottom:.4em; color:var(--gp-ink);
}
body.single-product:not(.gp-x) .single-product-category,
body.single-product:not(.gp-x) .summary .ast-woo-product-category{
  font-size:12px; font-weight:600; letter-spacing:.08em; text-transform:uppercase; color:var(--gp-teal);
}
body.single-product:not(.gp-x) .summary .price{
  font-family:var(--gp-sans); font-size:26px !important; font-weight:700; color:var(--gp-ink) !important; margin:.3em 0 .6em;
}
body.single-product:not(.gp-x) .summary .price del{font-size:17px; font-weight:400; color:var(--gp-muted)}
body.single-product:not(.gp-x) .summary .price ins{text-decoration:none; color:var(--gp-berry)}
body.single-product:not(.gp-x) .woocommerce-product-details__short-description{font-size:16px; line-height:1.7; color:var(--gp-text)}
body.single-product:not(.gp-x) .single_add_to_cart_button{
  font-family:var(--gp-sans) !important; font-size:16px !important; font-weight:600 !important;
  padding:14px 28px !important; border-radius:10px !important; background:var(--gp-teal) !important;
}
body.single-product:not(.gp-x) .single_add_to_cart_button:hover{background:var(--gp-pine) !important}
body.single-product:not(.gp-x) .woocommerce-tabs ul.tabs li a{font-family:var(--gp-sans) !important; font-weight:600 !important; font-size:15px !important}
body.single-product:not(.gp-x) :is(.related,.upsells) > h2{font-size:22px; margin-bottom:18px}
body.single-product:not(.gp-x) .woocommerce-breadcrumb{font-size:13px; color:var(--gp-muted)}

/* 5. Small headings inside page content */
body:not(.gp-x) .entry-content :is(h2):not(.gpv *){font-size:clamp(22px,2.6vw,28px)}
body:not(.gp-x) .entry-content :is(h3):not(.gpv *){font-size:clamp(18px,2vw,21px)}

@media (max-width:600px){
  body:not(.gp-x){font-size:15.5px}
  body.single-product:not(.gp-x) .summary .price{font-size:23px !important}
}