/* Kartabla catalogue refinement. Keeps the established blue and Astra typefaces. */
body.kartabla-ux-active { --kux-surface: #f2f6fa; --kux-ink: #182b42; }
.kartabla-ux-active ::selection { background: #c7e2ff; color: #132d4c; }
.kartabla-ux-active input, .kartabla-ux-active textarea { caret-color: var(--kux-blue); }
.kartabla-ux-active a { text-underline-offset: .2em; }
.kartabla-ux-active :focus-visible { outline: 3px solid #046bd2; outline-offset: 4px; }
#masthead .custom-logo-link { display: inline-flex; align-items: center; gap: 8px; width: max-content; max-width: none; text-decoration: none; }
#masthead .custom-logo-link img { flex: 0 0 auto; width: 58px; max-width: 58px; height: auto; }
.kux-wordmark { flex: 0 0 auto; white-space: nowrap; color: #163b66; font-size: 25px; font-weight: 750; letter-spacing: -.035em; line-height: 1; }
.kux-home { max-width: 1200px; margin-inline: auto; color: var(--kux-ink); padding: 0 28px 64px; }
body.home.kartabla-ux-active #primary:has(.kux-home) { margin-block: 0; padding-block: 0; }
.kux-home *, .kux-home *::before, .kux-home *::after { box-sizing: border-box; }
.kux-home h1, .kux-home h2, .kux-home h3 { color: var(--kux-ink); font-family: inherit; font-weight: 700; text-wrap: balance; }
.kux-home p { max-width: 66ch; }
.kux-home-hero { display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: 64px; padding-block: 48px; }
.kux-hero-copy h1 { font-size: clamp(36px, 4.4vw, 62px); line-height: 1.07; letter-spacing: -.035em; margin: 0 0 24px; max-width: 12ch; }
.kux-hero-copy > p { font-size: 19px; line-height: 1.65; margin: 0 0 28px; max-width: 40ch; color: #425469; }
.kux-home a { color: #045cb4; }
.kux-home .kux-primary-link { display: inline-flex; justify-content: center; align-items: center; min-height: 52px; padding: 14px 24px; border-radius: 8px; color: #fff; background: #046bd2; font-size: 16px; font-weight: 700; text-decoration: none; }
.kux-home .kux-primary-link:hover { background: #045cb4; }
.kux-hero-copy > .kux-text-link { display: block; margin-top: 16px; width: fit-content; padding-block: 8px; }
.kux-home .kux-text-link { font-weight: 600; text-decoration: underline; }
.kux-hero-product { display: block; min-width: 0; text-decoration: none; }
.kux-hero-product > img { display: block; width: 100%; height: 400px; object-fit: contain; background: transparent; border-radius: 16px; }
.kux-hero-caption { display: flex; justify-content: space-between; gap: 16px; align-items: start; padding: 18px 0 0; color: var(--kux-ink); font-weight: 600; }
.kux-hero-caption small { display: block; color: #526274; font-size: 14px; font-weight: 400; margin-top: 4px; }
.kux-hero-caption strong { white-space: nowrap; font-size: 24px; font-variant-numeric: tabular-nums; }
.kux-service-line { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; border-block: 1px solid #cbd5e1; padding: 22px 0; scroll-margin-top: 24px; }
.kux-service-line p { margin: 0; font-size: 15px; line-height: 1.7; }
.kux-service-line strong, .kux-service-line span, .kux-service-line a { display: block; }
.kux-service-line span { color: #526274; }
.kux-collections, .kux-selection { margin-block: 64px 0; scroll-margin-top: 24px; }
.kux-home h2 { font-size: clamp(26px, 3vw, 36px); line-height: 1.2; letter-spacing: -.025em; margin: 0 0 12px; }
.kux-collections > p { color: #526274; margin: 0 0 28px; }
.kux-collection-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 20px; }
.kux-collection, .kux-product { display: block; min-width: 0; text-decoration: none; }
.kux-home .kux-collections .kux-collection > img { display: block; width: 100%; height: auto; aspect-ratio: 1 / 1; object-fit: contain; object-position: center; border-radius: 12px; background: #f2f6fa; padding: 10px; }
.kux-home .kux-collections .kux-collection > img.kux-home-photo-portrait { padding: 0; border: 10px solid #f2f6fa; background: #fff; }
.kux-home h3 { font-size: 18px; line-height: 1.35; margin: 16px 0 6px; }
.kux-home .kux-collections .kux-collection > h3 { margin-top: 8px; }
.kux-collection p { font-size: 14px; line-height: 1.5; margin: 0; color: #526274; }
.kux-collection:hover h3, .kux-product:hover h3 { color: #045cb4; text-decoration: underline; text-underline-offset: .2em; }
.kux-product-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 28px; margin-top: 28px; }
.kux-product img { display: block; width: 100%; height: 245px; object-fit: contain; background: #f2f6fa; border-radius: 12px; padding: 12px; }
.kux-home .kux-selection .kux-product > img.kux-home-photo-portrait { padding: 0; border: 12px solid #f2f6fa; background: #fff; }
.kux-product-price { color: var(--kux-ink); font-size: 22px; font-weight: 700; font-variant-numeric: tabular-nums; margin-block: 8px; }
.kux-product .kux-text-link { display: inline-flex; align-items: center; min-height: 44px; font-size: 15px; }
.kux-help { display: grid; grid-template-columns: .9fr 1.1fr; gap: 80px; margin-top: 72px; padding-top: 48px; border-top: 1px solid #cbd5e1; scroll-margin-top: 24px; }
.kux-help > div > p { color: #526274; line-height: 1.65; }
.kux-questions details { border-bottom: 1px solid #cbd5e1; }
.kux-questions summary { cursor: pointer; padding-block: 18px; font-weight: 600; line-height: 1.5; }
.kux-questions details > p { font-size: 15px; line-height: 1.7; margin: 0 0 20px; color: #425469; }
.kux-delivery-note { margin: 12px 0 24px; padding-block: 12px; border-block: 1px solid #dbe3ed; font-size: 14px; line-height: 1.65; color: #425469; }
.kux-delivery-note p { margin: 0 0 4px; }
.kux-product-service { color: #425469; font-size: 14px; line-height: 1.6; margin: 8px 0 0; }
.kux-product-details { margin-block: 28px; }
.kux-product-details h2 { font-size: 20px; margin-bottom: 14px; }
body.single-product .kux-product-facts { margin: 0; }
body.single-product .summary .woocommerce-product-details__short-description { margin-top: 28px; }
.kimo-product-panel > .kimo-benefits, .simba-product-panel > .simba-benefits { margin-block: 24px; }
.kux-footer { flex-wrap: wrap; gap: 8px 24px; padding: 24px; }
.kux-footer a { display: inline-flex; align-items: center; min-height: 44px; }
@media (min-width: 900px) {
 body.kartabla-ux-active.postid-28 #primary.kartabla-chariot-landing .kcl-card { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important; align-items: start !important; }
 body.kartabla-ux-active.postid-28 #primary.kartabla-chariot-landing .kcl-hero { display: contents !important; }
 body.kartabla-ux-active.postid-28 #primary.kartabla-chariot-landing .kcl-media { grid-column: 1 !important; grid-row: 1 / 4 !important; position: relative !important; min-height: 650px !important; height: 100% !important; }
 body.kartabla-ux-active.postid-28 #primary.kartabla-chariot-landing .kcl-intro { grid-column: 2 !important; grid-row: 1 !important; }
 body.kartabla-ux-active.postid-28 #primary.kartabla-chariot-landing .kcl-selector { grid-column: 2 !important; grid-row: 2 !important; }
 body.kartabla-ux-active.postid-28 #primary.kartabla-chariot-landing .kcl-variation-list { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
 body.kartabla-ux-active.postid-28 #primary.kartabla-chariot-landing .kcl-color-preview img { height: 105px !important; object-fit: contain !important; }
 body.kartabla-ux-active.postid-28 #primary.kartabla-chariot-landing .kcl-shopping-actions { grid-column: 2 !important; grid-row: 3 !important; }
 body.kartabla-ux-active.postid-28 #primary.kartabla-chariot-landing .kcl-benefits { grid-column: 1 / -1 !important; grid-row: 4 !important; grid-template-columns: repeat(4, minmax(0, 1fr)) !important; }
 body.kartabla-ux-active.postid-28 #primary.kartabla-chariot-landing #kux-order-title { grid-row: 5 !important; }
 body.kartabla-ux-active.postid-28 #primary.kartabla-chariot-landing .kcl-inline-order { grid-row: 6 !important; }
}
@media (max-width: 899px) {
 .kux-wordmark { font-size: 21px; }
 #masthead .custom-logo-link { gap: 5px; }
 #masthead .custom-logo-link img { width: 44px; max-width: 44px; }
 #ast-mobile-header .ast-primary-header-bar .ast-builder-grid-row { grid-template-columns: minmax(0, 1fr) auto auto; column-gap: 12px; }
 #ast-mobile-header .site-header-section { min-width: 0; }
 .kux-home { padding: 0 18px 40px; }
 .kux-home-hero { grid-template-columns: 1fr; gap: 24px; padding-block: 24px 28px; }
 .kux-hero-copy h1 { font-size: clamp(36px, 8vw, 50px); margin-bottom: 16px; max-width: 15ch; }
 .kux-hero-copy > p { font-size: 17px; line-height: 1.6; margin-bottom: 20px; }
 .kux-hero-copy > .kux-text-link { margin-top: 8px; }
 .kux-hero-product > img { height: 300px; }
 .kux-service-line { grid-template-columns: 1fr; gap: 14px; padding-block: 20px; }
 .kux-service-line p { display: flex; flex-wrap: wrap; gap: 0 10px; font-size: 14px; }
 .kux-collections, .kux-selection { margin-top: 40px; }
 .kux-collection-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 16px; }
 .kux-home .kux-collections .kux-collection > img { padding: 8px; }
 .kux-home .kux-collections .kux-collection > img.kux-home-photo-portrait { border-width: 8px; }
 .kux-home h3 { font-size: 17px; margin-top: 12px; }
 .kux-product-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 16px; }
 .kux-product img { height: 190px; }
 .kux-help { grid-template-columns: 1fr; gap: 16px; margin-top: 40px; padding-top: 32px; }
 body.kartabla-ux-active.single-product #ast-scroll-top { display: none !important; }
}
@media (prefers-reduced-motion: no-preference) {
 .kux-home a { transition: color .16s ease-out, background-color .16s ease-out; }
}

/* One desktop shell keeps the header stable across every page. Reading and
   checkout content stays narrower and left aligned; mobile rules stay intact. */
@media (min-width: 922px) {
 body.kartabla-ux-active {
  --kux-page-gutter: clamp(28px, 3.333vw, 64px);
  --kux-page-width: min(calc(100% - 2 * var(--kux-page-gutter)), 1600px);
 }
 body.kartabla-ux-active #masthead .ast-container,
 body.kartabla-ux-active #content > .ast-container {
  box-sizing: border-box;
  width: var(--kux-page-width);
  max-width: none;
  margin-inline: auto;
  padding-inline: 0;
 }
 body.kartabla-ux-active.page:not(.home) #content > .ast-container > #primary {
  box-sizing: border-box;
  width: 100%;
  max-width: 1100px;
  margin-inline: 0 auto;
 }
 /* This specificity also replaces the old homepage Customizer constraint. */
 body.home.page-id-129.kartabla-ux-active #post-129 > .entry-content {
  width: 100%;
  max-width: none;
  padding-inline: 0;
 }
 body.home.kartabla-ux-active .entry-content > .kux-home {
  max-width: none;
  padding-inline: 0;
 }
 .kux-home .kux-hero-product > img { height: clamp(400px, 32vw, 560px); }
 .kux-home .kux-product > img { height: auto; aspect-ratio: 1; }

 /* Native WooCommerce: give the gallery the extra space, cap the buying panel. */
 body.single-product.kartabla-ux-active #content #primary .product > .summary {
  width: min(42%, 640px);
 }
 body.single-product.kartabla-ux-active #content #primary .product > .images {
  width: calc(100% - min(42%, 640px) - 48px);
 }
 body.single-product.kartabla-ux-active #content #primary .product > .images .woocommerce-product-gallery__image img:not(.zoomImg) {
  height: clamp(420px, 65vh, 760px);
  width: 100%;
  object-fit: contain;
 }
 body.single-product.kartabla-ux-active #content #primary .product > .images .flex-control-thumbs {
  max-width: 400px;
  margin-inline: auto;
 }
 body.single-product.kartabla-ux-active #primary .woocommerce-Tabs-panel--description > :is(p, ul, ol),
 body.kartabla-ux-active:is(.woocommerce-shop, .tax-product_cat, .tax-product_tag, .tax-product_brand) .term-description {
  max-width: 70ch;
 }

 /* Dedicated product templates have their own wrapper outside Astra's shell. */
 body.single-product.kartabla-ux-active #primary:is(.kartabla-kimo-landing, .kartabla-simba-landing, .kartabla-chariot-landing) {
  box-sizing: border-box;
  width: 100%;
  margin-inline: auto;
  padding-inline: 0;
 }
 body.single-product.kartabla-ux-active #page > #content > #primary:is(.kartabla-kimo-landing, .kartabla-simba-landing, .kartabla-chariot-landing) {
  width: var(--kux-page-width);
 }
 body.single-product.kartabla-ux-active #primary :is(.kimo-wrap, .simba-wrap),
 body.kartabla-ux-active.postid-28 #primary.kartabla-chariot-landing .kcl-wrap {
  max-width: none;
 }
 body.single-product.kartabla-ux-active #primary :is(.kimo-product-layout, .simba-product-layout) {
  grid-template-columns: minmax(0, 1fr) min(42%, 640px);
  column-gap: clamp(28px, 3.333vw, 64px);
 }

 /* Match Astra's other category cards. Scoped !important declarations replace
    the legacy Chariots two-column/card overrides in site.css. */
 body.tax-product_cat.term-chariots #content #primary ul.products {
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: normal 20px !important;
  margin-bottom: 1em;
 }
 body.tax-product_cat.term-chariots #content #primary ul.products > li.product {
  display: flex !important;
  flex-direction: column !important;
  width: auto !important;
  max-width: none !important;
  margin: 0 0 2.5em !important;
  padding: 0 !important;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
 }
 body.tax-product_cat.term-chariots #content #primary .astra-shop-thumbnail-wrap { margin: 0 !important; }
 body.tax-product_cat.term-chariots #content #primary .astra-shop-thumbnail-wrap > a.woocommerce-LoopProduct-link { display: block !important; }
 body.tax-product_cat.term-chariots #content #primary .astra-shop-thumbnail-wrap img {
  max-height: none !important;
  height: auto !important;
  max-width: 100%;
  aspect-ratio: 1;
  object-fit: contain;
  margin-bottom: .8em;
  padding: 0;
  border-radius: 0;
  background: transparent;
 }
 body.tax-product_cat.term-chariots #content #primary .kux-catalog-facts { display: none; }
 body.tax-product_cat.term-chariots #content #primary .astra-shop-summary-wrap { display: block !important; flex: 0 1 auto; }
 body.tax-product_cat.term-chariots #content #primary .ast-woo-product-category {
  display: block !important;
  margin-bottom: .5em;
  font-size: .85em;
  line-height: 1.3;
  color: #666;
  opacity: .6;
 }
 body.tax-product_cat.term-chariots #content #primary .woocommerce-loop-product__title { font-size: 1rem !important; line-height: 1.3; font-weight: 600; margin: 0 0 .5em !important; }
 body.tax-product_cat.term-chariots #content #primary .astra-shop-summary-wrap .price { font-size: .9rem !important; line-height: 1.3; font-weight: 700; color: inherit; margin: 0 0 .5em !important; }
 body.tax-product_cat.term-chariots #content #primary .astra-shop-summary-wrap > a.button {
  display: inline-block !important;
  width: auto !important;
  min-height: 0;
  margin: .5em 0 !important;
  padding: 15px 30px;
  border-radius: 4px;
  font-size: 1rem;
  font-weight: 500;
  line-height: 1;
 }
}
