/**
 * Content and WooCommerce layout layer.
 * Loaded after the selected visual design so all six designs share the same
 * responsive geometry while retaining their own colours and personality.
 */

/* Compact, consistent page header */
.kc-subpage .kc-page-hero {
  border-bottom: 1px solid var(--kc-line);
  background: color-mix(in srgb, var(--kc-surface) 82%, var(--kc-bg));
}

.kc-page-hero-inner {
  display: grid;
  align-content: end;
  min-height: clamp(220px, 28vw, 360px);
  padding-block: clamp(54px, 8vw, 92px) clamp(42px, 6vw, 72px);
}

.kc-page-hero .kc-eyebrow { margin-bottom: 16px; }

.kc-page-hero h1 {
  max-width: 18ch;
  margin: 0;
  font-size: clamp(2.65rem, 6.2vw, 5.8rem);
  line-height: .98;
  overflow-wrap: anywhere;
}

.kc-subpage .kc-content-shell {
  padding-block: clamp(44px, 7vw, 92px) clamp(76px, 10vw, 132px);
}

.kc-subpage .kc-entry {
  max-width: 1080px;
  margin-inline: auto;
}

.kc-subpage .kc-entry-content {
  max-width: 820px;
  margin-inline: auto;
}

.kc-subpage .kc-entry-content > * {
  max-width: none;
  margin-inline: 0;
}

.kc-entry-content > :first-child { margin-top: 0; }

.kc-entry-content h2 {
  max-width: 22ch;
  margin-top: clamp(64px, 9vw, 108px);
  margin-bottom: 24px;
  font-size: clamp(2rem, 4.3vw, 3.65rem);
  line-height: 1.03;
}

.kc-entry-content h3 {
  max-width: 34ch;
  margin-top: 48px;
  margin-bottom: 15px;
  font-size: clamp(1.3rem, 2.4vw, 1.85rem);
  line-height: 1.2;
  letter-spacing: -.025em;
}

.kc-entry-content p,
.kc-entry-content li {
  color: color-mix(in srgb, var(--kc-text) 88%, var(--kc-muted));
  font-size: clamp(1rem, 1.4vw, 1.08rem);
  line-height: 1.78;
  hyphens: auto;
  text-align: justify;
  text-justify: inter-word;
}

.kc-entry-content ul,
.kc-entry-content ol {
  margin: 1.4em 0 2em;
  padding-left: 1.35em;
}

.kc-entry-content blockquote {
  margin: 48px 0;
  border-left: 5px solid var(--kc-secondary);
  border-radius: 0 var(--kc-small-radius) var(--kc-small-radius) 0;
  padding: 24px 28px;
  background: var(--kc-surface);
  box-shadow: 0 12px 35px color-mix(in srgb, var(--kc-dark) 7%, transparent);
}

.kc-entry-content figure,
.kc-entry-content > p:has(> img:only-child) {
  width: min(100%, 980px);
  margin-block: clamp(36px, 7vw, 70px);
}

.kc-entry-content > p:has(> img:only-child) { text-align: center; }

.kc-entry-content img {
  width: auto;
  max-height: min(72vh, 720px);
  margin-inline: auto;
  object-fit: contain;
}

.kc-entry-content iframe,
.kc-entry-content video {
  width: 100%;
  max-width: 100%;
  border: 0;
  border-radius: var(--kc-radius);
}

.kc-entry-content table {
  width: 100%;
  border-collapse: collapse;
  margin-block: 32px;
  background: var(--kc-surface);
}

.kc-entry-content th,
.kc-entry-content td {
  border: 1px solid var(--kc-line);
  padding: 12px 14px;
  text-align: left;
  vertical-align: top;
}

/* Links that occupy their own paragraph are legacy Elementor buttons. */
.kc-entry-content .kc-cta-row { margin: 20px 0 38px; text-align: left; }

.kc-entry-content .kc-content-button,
.kc-entry-content .elementor-button,
.kc-entry-content .wp-element-button,
.kc-entry-content .wp-block-button__link {
  min-height: 50px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid transparent;
  border-radius: 999px;
  padding: 13px 22px;
  background: var(--kc-primary);
  color: #fff;
  box-shadow: 0 12px 30px color-mix(in srgb, var(--kc-primary) 22%, transparent);
  font-size: .88rem;
  font-weight: 800;
  line-height: 1.2;
  text-align: center;
  text-decoration: none;
  transition: transform .2s ease, box-shadow .2s ease;
}

.kc-entry-content .kc-content-button::after { content: " →"; margin-left: 9px; }
.kc-entry-content .kc-content-button:hover { transform: translateY(-2px); }

.kc-entry-content .kc-content-question {
  display: block;
  border-left: 4px solid var(--kc-secondary);
  padding: 12px 16px;
  background: color-mix(in srgb, var(--kc-secondary) 12%, transparent);
  color: var(--kc-text);
  font-weight: 850;
  text-decoration: none;
}

.kc-entry-content .kc-broken-media,
.kc-entry-content .kc-broken-media-wrap { display: none !important; }

/* WooCommerce global shell and hierarchy */
.woocommerce .kc-shop-shell,
.kc-shop-main .kc-shop-shell {
  padding-block: clamp(34px, 5vw, 68px) clamp(76px, 9vw, 120px);
}

.woocommerce .woocommerce-breadcrumb {
  max-width: 100%;
  margin: 0 0 clamp(30px, 4vw, 48px);
  overflow: hidden;
  color: var(--kc-muted);
  font-size: .82rem;
  line-height: 1.5;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.woocommerce .woocommerce-breadcrumb a { font-weight: 750; text-decoration: none; }

.woocommerce-products-header__title.page-title,
.woocommerce .kc-shop-shell > h1.page-title {
  max-width: 18ch;
  margin: 0 0 clamp(42px, 6vw, 72px);
  font-size: clamp(2.9rem, 6vw, 5.6rem);
  line-height: .96;
  overflow-wrap: anywhere;
}

.woocommerce .woocommerce-result-count {
  color: var(--kc-muted);
  font-size: .92rem;
  line-height: 48px;
}

.woocommerce .woocommerce-ordering select {
  max-width: 100%;
  cursor: pointer;
}

/* Shop cards: compact media, equal rhythm and bottom-aligned actions. */
.woocommerce ul.products { gap: clamp(16px, 2.2vw, 28px); }

.woocommerce ul.products li.product {
  display: flex;
  min-width: 0;
  min-height: 100%;
  flex-direction: column;
  padding: 14px 14px 18px !important;
}

.woocommerce ul.products li.product > a.woocommerce-LoopProduct-link,
.woocommerce ul.products li.product > a.woocommerce-loop-product__link {
  display: block;
  min-width: 0;
  text-decoration: none;
}

.woocommerce ul.products li.product a img {
  width: 100%;
  aspect-ratio: 4 / 3;
  margin: 0 0 8px !important;
  padding: clamp(10px, 2vw, 22px);
  object-fit: contain;
}

.woocommerce ul.products li.product .woocommerce-loop-product__title {
  min-height: 3.1em;
  margin: 0;
  padding: 14px 4px 6px !important;
  font-size: clamp(1rem, 1.5vw, 1.18rem);
  line-height: 1.35;
  overflow-wrap: anywhere;
}

.woocommerce ul.products li.product .price {
  min-height: 1.7em;
  margin: 0;
  padding-inline: 4px;
}

.woocommerce ul.products li.product .kc-stock-note {
  margin: 10px 4px 12px;
}

.woocommerce ul.products li.product .button {
  align-self: flex-start;
  margin-top: auto !important;
}

.woocommerce nav.woocommerce-pagination { margin-top: clamp(34px, 6vw, 64px); }
.woocommerce nav.woocommerce-pagination ul { overflow: hidden; border: 1px solid var(--kc-line); border-radius: 999px; }
.woocommerce nav.woocommerce-pagination ul li { border-color: var(--kc-line); }
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span { min-width: 44px; min-height: 44px; display: grid; place-items: center; padding: 8px 13px; }
.woocommerce nav.woocommerce-pagination ul li span.current { background: var(--kc-primary); color: #fff; }

/* Single product: contained gallery, readable title and balanced summary. */
.single-product .kc-shop-shell { max-width: 1240px; }

.woocommerce div.product {
  min-width: 0;
  gap: clamp(34px, 5vw, 72px);
}

.woocommerce div.product div.images,
.woocommerce div.product div.summary { min-width: 0; margin-bottom: 0; }

.woocommerce div.product div.images {
  align-self: start;
  overflow: hidden;
  border-radius: var(--kc-radius);
}

/* Do not force display:flex or widths on FlexSlider's wrapper/slides. Woo's
   inline slide widths are required; overriding them caused the 13,000px gallery. */
.woocommerce-product-gallery .woocommerce-product-gallery__wrapper { margin: 0 !important; }
.woocommerce-product-gallery .woocommerce-product-gallery__image { margin: 0; }

.woocommerce-product-gallery .woocommerce-product-gallery__image {
  margin: 0;
  max-height: min(70vh, 760px);
  overflow: hidden;
}

.woocommerce-product-gallery .woocommerce-product-gallery__image a {
  display: block;
  width: 100%;
  max-height: inherit;
  overflow: hidden;
}

.woocommerce-product-gallery .flex-viewport {
  overflow: hidden;
  border: 1px solid var(--kc-line);
  border-radius: var(--kc-radius);
  background: var(--kc-surface);
  max-height: min(70vh, 760px);
}

.woocommerce-product-gallery .woocommerce-product-gallery__image img {
  display: block;
  width: 100%;
  height: auto;
  max-width: 100%;
  max-height: min(70vh, 760px);
  object-fit: contain;
  background: color-mix(in srgb, var(--kc-secondary) 10%, var(--kc-surface));
}

.woocommerce-product-gallery .flex-control-thumbs {
  display: grid !important;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 8px;
  margin: 10px 0 0 !important;
  padding: 0 !important;
}

.woocommerce-product-gallery .flex-control-thumbs li {
  width: auto !important;
  float: none !important;
  margin: 0 !important;
}

.woocommerce-product-gallery .flex-control-thumbs img {
  width: 100%;
  aspect-ratio: 1;
  border: 1px solid transparent;
  border-radius: 12px !important;
  padding: 4px;
  object-fit: cover;
  background: var(--kc-surface);
}

.woocommerce-product-gallery .flex-control-thumbs img.flex-active {
  border-color: var(--kc-primary);
  opacity: 1;
}

.woocommerce div.product .summary {
  padding-top: clamp(4px, 1vw, 14px);
}

.woocommerce div.product .product_title {
  max-width: 16ch;
  margin-bottom: 22px;
  font-size: clamp(2.35rem, 4vw, 3.65rem);
  line-height: 1.02;
  overflow-wrap: anywhere;
}

.woocommerce div.product p.price {
  margin-bottom: 14px;
  font-size: clamp(1.45rem, 2.5vw, 2rem) !important;
}

.woocommerce div.product .stock {
  width: fit-content;
  margin: 0 0 22px;
  border-radius: 999px;
  padding: 7px 12px;
  background: color-mix(in srgb, var(--kc-accent) 14%, var(--kc-surface));
  color: var(--kc-accent);
  font-size: .78rem;
  font-weight: 850;
  line-height: 1.2;
  text-transform: uppercase;
}

.woocommerce-product-details__short-description,
.woocommerce-Tabs-panel--description {
  color: color-mix(in srgb, var(--kc-text) 88%, var(--kc-muted));
  font-size: 1.02rem;
  line-height: 1.76;
  hyphens: auto;
  text-align: justify;
  text-justify: inter-word;
}

.woocommerce-product-details__short-description p,
.woocommerce-Tabs-panel--description p { margin-bottom: 1.25em; }

.woocommerce div.product .product_meta {
  border-top: 1px solid var(--kc-line);
  padding-top: 20px;
  color: var(--kc-muted);
  font-size: .84rem;
  line-height: 1.7;
}

.woocommerce div.product .woocommerce-tabs {
  margin-top: clamp(48px, 8vw, 96px);
}

.woocommerce div.product .woocommerce-tabs ul.tabs {
  margin: 0 0 34px !important;
  scrollbar-width: thin;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li a {
  min-height: 48px;
  display: flex;
  align-items: center;
  padding: 0 16px !important;
}

.woocommerce div.product .woocommerce-tabs .panel {
  max-width: 820px;
  margin-inline: auto;
}

.woocommerce div.product .woocommerce-tabs .panel > h2,
.woocommerce div.product .related > h2 {
  font-size: clamp(2rem, 4vw, 3.5rem);
  line-height: 1.05;
}

.woocommerce div.product .related {
  margin-top: clamp(64px, 9vw, 112px);
}

/* Cart, checkout and account pages. */
.woocommerce-notices-wrapper { width: 100%; }

.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
  margin-bottom: 28px;
  border-top-color: var(--kc-primary);
  padding: 18px 22px 18px 54px;
  box-shadow: 0 12px 32px color-mix(in srgb, var(--kc-dark) 6%, transparent);
}

.woocommerce .cart-empty,
.woocommerce .return-to-shop {
  max-width: 680px;
  margin-inline: auto;
  text-align: center;
}

.woocommerce .cart-empty {
  border: 1px solid var(--kc-line);
  border-radius: var(--kc-radius);
  padding: clamp(32px, 6vw, 64px);
  background: var(--kc-surface);
  font-size: 1.15rem;
}

.woocommerce table.shop_table { overflow: hidden; }

.woocommerce-cart .cart-collaterals .cart_totals,
.woocommerce-checkout #order_review,
.woocommerce-account .woocommerce-MyAccount-content,
.woocommerce-account form.login,
.woocommerce-account form.register {
  border: 1px solid var(--kc-line);
  border-radius: var(--kc-radius);
  padding: clamp(20px, 4vw, 36px);
  background: var(--kc-surface);
  box-shadow: 0 18px 50px color-mix(in srgb, var(--kc-dark) 7%, transparent);
}

.woocommerce-account form.login,
.woocommerce-account form.register { max-width: 620px; margin-inline: auto; }

.woocommerce form .form-row label { margin-bottom: 6px; font-size: .84rem; font-weight: 800; }
.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus,
.woocommerce form .form-row select:focus { border-color: var(--kc-primary); outline: 3px solid color-mix(in srgb, var(--kc-primary) 14%, transparent); }

.woocommerce-checkout .col2-set,
.woocommerce-checkout #order_review_heading,
.woocommerce-checkout #order_review { min-width: 0; }

@media (min-width: 960px) {
  .single-product .woocommerce div.product {
    grid-template-columns: minmax(0, 1.04fr) minmax(420px, .88fr);
  }

  .single-product .woocommerce div.product div.summary {
    position: sticky;
    top: 118px;
  }

  .woocommerce-checkout form.checkout {
    display: grid;
    grid-template-columns: minmax(0, 1.08fr) minmax(360px, .72fr);
    gap: 32px clamp(32px, 5vw, 72px);
    align-items: start;
  }

  .woocommerce-checkout #customer_details { grid-row: 1 / span 2; }
  .woocommerce-checkout #order_review_heading { grid-column: 2; margin: 0; }
  .woocommerce-checkout #order_review { grid-column: 2; }
}

@media (max-width: 767px) {
  .kc-page-hero-inner { min-height: 190px; padding-block: 44px 38px; }
  .kc-page-hero h1 { font-size: clamp(2.35rem, 12vw, 3.65rem); }
  .kc-subpage .kc-content-shell { padding-block: 38px 78px; }

  .kc-entry-content h2 { margin-top: 58px; }
  .kc-entry-content h3 { margin-top: 38px; }
  .kc-entry-content p,
  .kc-entry-content li,
  .woocommerce-product-details__short-description,
  .woocommerce-Tabs-panel--description {
    line-height: 1.7;
    text-align: left;
  }

  .kc-entry-content .kc-content-button { width: 100%; }

  .woocommerce .kc-shop-shell,
  .kc-shop-main .kc-shop-shell { padding-block: 26px 76px; }

  .woocommerce .woocommerce-breadcrumb { margin-bottom: 26px; font-size: .75rem; }
  .woocommerce-products-header__title.page-title,
  .woocommerce .kc-shop-shell > h1.page-title { margin-bottom: 34px; font-size: clamp(2.55rem, 14vw, 4rem); }

  .woocommerce .woocommerce-result-count,
  .woocommerce .woocommerce-ordering { width: 100%; float: none; margin-bottom: 12px; line-height: 1.5; }
  .woocommerce .woocommerce-ordering select { width: 100%; }

  .woocommerce ul.products { margin-top: 28px !important; }
  .woocommerce ul.products li.product a img { aspect-ratio: 5 / 4; }

  .woocommerce div.product .product_title { max-width: none; font-size: clamp(2.15rem, 10vw, 3.2rem); }
  .woocommerce-product-gallery .flex-viewport,
  .woocommerce-product-gallery .woocommerce-product-gallery__image,
  .woocommerce-product-gallery .woocommerce-product-gallery__image a,
  .woocommerce-product-gallery .woocommerce-product-gallery__image img { max-height: 66svh; }
  .woocommerce-product-gallery .flex-control-thumbs { grid-template-columns: repeat(4, minmax(0, 1fr)); }

  .woocommerce div.product .woocommerce-tabs { min-width: 0; margin-top: 56px; }
  .woocommerce div.product .woocommerce-tabs ul.tabs { margin-right: -16px !important; }
  .woocommerce div.product .woocommerce-tabs .panel > h2,
  .woocommerce div.product .related > h2 { font-size: clamp(1.85rem, 9vw, 2.8rem); }

  .woocommerce table.shop_table_responsive tr,
  .woocommerce-page table.shop_table_responsive tr { border-bottom: 1px solid var(--kc-line); padding: 12px; }
}

@media (max-width: 420px) {
  .kc-shell { width: min(calc(100% - 24px), var(--kc-shell)); }
  .kc-entry-content .kc-content-button { padding-inline: 16px; }
  .woocommerce ul.products li.product { padding: 10px 10px 16px !important; }
  .woocommerce ul.products li.product .woocommerce-loop-product__title { min-height: 0; }
}
