/*
Theme Name: Ferncub
Theme URI: https://ferncub.com
Author: Store Team
Description: Block theme for Ferncub — kids daytime tees and family matching sets (ferncub.com).
Version: 1.0.5
Requires at least: 6.7
Requires PHP: 8.1
License: GPL-2.0-or-later
Text Domain: ferncub
*/

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { text-rendering: optimizeLegibility; }
a { text-underline-offset: .18em; }
img { height: auto; max-width: 100%; }
.wp-site-blocks { overflow: hidden; }
header .wp-block-site-title a,
.wp-block-template-part[data-area="header"] .wp-block-site-title a {
  color: inherit;
  font-size: clamp(1.75rem, 3.2vw, 2.35rem);
  font-weight: 800;
  letter-spacing: -0.02em;
  line-height: 1.1;
  text-decoration: none;
}
.kv-pill { border-radius: 999px; }
.kv-card { border: 1px solid var(--wp--preset--color--sand); border-radius: 1.25rem; overflow: hidden; }
.kv-eyebrow { font-size: .78rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.kv-hero { min-height: auto; padding-bottom: 0 !important; }
.kv-hero .wp-block-columns { margin-bottom: 0; }
.kv-hero-art {
  align-items: center;
  display: flex;
  justify-content: center;
  min-height: 16rem;
  position: relative;
}
.kv-hero-art img,
.kv-hero-art__img {
  border-radius: 1.25rem;
  display: block;
  height: auto;
  max-width: 100%;
  object-fit: cover;
  width: 100%;
}
.kv-home-spotlight { margin-top: 0; padding-top: 0 !important; }
.kv-home-spotlight > .alignwide { margin-top: 0; }
.kv-home-featured { margin-top: .5rem !important; }
body.home main.wp-block-group {
  gap: 0;
}
body.home main.wp-block-group > .kv-hero {
  margin-bottom: 0;
}

.woocommerce div.product div.images img { border-radius: 1rem; }
.woocommerce ul.products li.product {
  background: #fff;
  border: 1px solid #eadfc9;
  border-radius: 1rem;
  overflow: hidden;
  padding-bottom: 1.1rem;
}
.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce ul.products li.product .price,
.woocommerce ul.products li.product .button { margin-left: 1rem; margin-right: 1rem; }
.woocommerce .price del,
.woocommerce div.product p.price del {
  color: inherit;
  margin-right: .35rem;
  opacity: .55;
  text-decoration: line-through;
}
.woocommerce .price ins,
.woocommerce div.product p.price ins {
  background: transparent;
  color: inherit;
  font-weight: 700;
  text-decoration: none;
}
.woocommerce ul.products li.product a img,
.woocommerce ul.products li.product .woocommerce-loop-product__link img {
  border-radius: 1rem 1rem 0 0;
  display: block;
  object-fit: cover;
  width: 100%;
}
.woocommerce ul.products li.product .woocommerce-loop-product__title {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  overflow: hidden;
  text-overflow: ellipsis;
  line-height: 1.35;
  max-height: calc(1.35em * 2);
  min-height: calc(1.35em * 2);
}
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button {
  background: #1e4237;
  border-radius: 999px;
  color: #fff;
}

/* Homepage / catalog product grid: match wide layout, equal 4 columns */
.kv-shop .alignwide,
.kv-shop .wp-block-woocommerce-product-collection,
.wp-block-woocommerce-product-collection.alignwide {
  width: 100%;
  max-width: var(--wp--style--global--wide-size);
}
.kv-shop .kv-open-categories {
  box-sizing: border-box;
  margin: 0 0 1.5rem;
  max-width: none;
  width: 100%;
}
.wc-block-product-template.is-flex-container {
  box-sizing: border-box;
  gap: 1.25rem;
  margin-left: 0 !important;
  margin-right: 0 !important;
  max-width: none !important;
  width: 100% !important;
}
.wc-block-product-template.is-flex-container > li.product,
.wc-block-product-template.is-flex-container > li.wc-block-product {
  box-sizing: border-box;
  clear: none !important;
  float: none !important;
  margin: 0 !important;
}
@media (min-width: 600px) {
  .wc-block-product-template.is-flex-container.columns-4 > li {
    flex: 1 1 calc(25% - 0.9375rem);
    max-width: calc(25% - 0.9375rem);
    width: calc(25% - 0.9375rem) !important;
  }
}
.wc-block-product-template .wc-block-components-product-image,
.wc-block-product-template .wc-block-components-product-image a,
.wc-block-product-template .wc-block-components-product-image img {
  border-radius: 1rem;
  overflow: hidden;
  width: 100%;
}
.wc-block-product-template .wc-block-components-product-image img {
  display: block;
  object-fit: cover;
}
.wc-block-product-template .wp-block-post-title,
.wc-block-product-template .wp-block-post-title a {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  overflow: hidden;
  text-overflow: ellipsis;
  line-height: 1.35;
  max-height: calc(1.35em * 2);
  word-break: break-word;
}
.wc-block-product-template .wp-block-post-title,
.wc-block-product-template .wc-block-components-product-price,
.wc-block-product-template .wp-block-button {
  margin-left: 0;
  margin-right: 0;
  padding-left: .15rem;
  padding-right: .15rem;
}
.kv-compliance, .kv-delivery-card {
  background: #f7f3e9;
  border-radius: 1rem;
  margin: 1rem 0;
  padding: 1rem 1.2rem;
}
.kv-free-shipping { font-size: .9rem; margin: .5rem 0; }
.kv-free-shipping progress { accent-color: #457b6a; display: block; height: .7rem; margin-top: .35rem; width: 100%; }
.kv-language-switcher select { border: 1px solid #d3c7b2; border-radius: 999px; padding: .55rem .8rem; }
.kv-language-switcher { display: inline-block; }
.kv-cookie-banner {
  background: #1e4237;
  bottom: 1rem;
  color: #fff;
  display: none;
  left: 50%;
  max-width: 48rem;
  padding: 1rem;
  position: fixed;
  transform: translateX(-50%);
  width: calc(100% - 2rem);
  z-index: 99999;
}
.kv-cookie-banner.is-visible { display: block; }
.kv-cookie-banner button { margin: .4rem .3rem 0 0; }
.kv-cookie-banner label { display: inline-block; margin-right: 1rem; }
.kv-cookie-settings {
  background: #fffaf0;
  border: 1px solid #1e4237;
  border-radius: 999px;
  bottom: .7rem;
  color: #1e4237;
  cursor: pointer;
  font-size: .75rem;
  left: .7rem;
  padding: .45rem .7rem;
  position: fixed;
  z-index: 9998;
}
.kv-test-mode {
  background: #8a210f;
  bottom: 0;
  color: #fff;
  font-size: .8rem;
  font-weight: 800;
  left: 50%;
  letter-spacing: .04em;
  padding: .45rem 1rem;
  position: fixed;
  text-transform: uppercase;
  transform: translateX(-50%);
  z-index: 9997;
}
@media (max-width: 781px) {
  .kv-hero-art { min-height: 12rem; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
}
