/*
 * Visual refinements for Krebsbach Arms Modern.
 * Existing templates, section order, grid layouts, fonts and brand colors remain.
 */

:root {
  --ka-hero-control-light-gray: color-mix(in srgb, var(--ka-color-white) 65%, var(--ka-color-darker-gray));
}

/* Preserve tight corners only on product-page buttons and accordions. */
.single-product :is(button, .button, input[type="submit"], input[type="button"], input[type="reset"]),
.site-main details :is(button, input, textarea, select, .button) {
  border-radius: 3px !important;
}

.ka-product-specs-accordion,
.ka-product-reviews-accordion,
.ka-reviews-summary,
.kawpf-group summary {
  border-radius: 3px;
}

/* Full-width header and footer bands meet the page edges squarely. */
header.ka-full-width,
.ka-header-main,
.ka-cart-account,
.ka-nav-menu,
.ka-notification-bar,
.site-footer,
.ka-newsletter-section,
.ka-footer-main,
.ka-footer-bottom {
  border-radius: 0;
}

/* Round only exposed table corners, keeping adjoining cells flush. */
.woocommerce details table.shop_table tr > :first-child,
.woocommerce details table.shop_attributes tr > :first-child {
  border-top-left-radius: 3px;
  border-bottom-left-radius: 3px;
}

.woocommerce details table.shop_table tr > :last-child,
.woocommerce details table.shop_attributes tr > :last-child {
  border-top-right-radius: 3px;
  border-bottom-right-radius: 3px;
}

header.ka-full-width {
  box-shadow: 0 3px 16px rgba(0, 0, 0, 0.16);
}

.ka-primary-menu > li > a,
.ka-nav-menu > .ka-container > nav > ul > li > a {
  transition: background-color 180ms ease, color 180ms ease, box-shadow 180ms ease;
}

.ka-primary-menu > .current-menu-item > a,
.ka-primary-menu > .current-menu-ancestor > a,
.ka-nav-menu .current_page_item > a {
  background-color: var(--ka-color-orange);
  color: var(--ka-color-white);
}

@media (min-width: 769px) {
  .ka-primary-menu ul.sub-menu,
  .ka-nav-menu ul ul.children {
    box-shadow: inset 0 2px 0 var(--ka-color-orange), 0 12px 28px rgba(0, 0, 0, 0.28);
  }
}

.ka-product-search,
.ka-search-bar .dgwt-wcas-sf-wrapp,
.ka-product-search input[type="search"],
.ka-search-bar .dgwt-wcas-sf-wrapp input[type="search"].dgwt-wcas-search-input {
  border-radius: 8px 0 0 8px !important;
}

/* The gray field runs behind the Search button; round its right corners too so
   they don't show square behind the button's rounded corners. */
.ka-search-bar .dgwt-wcas-sf-wrapp {
  border-radius: 8px 4px 4px 8px !important;
}

.ka-product-search button,
.ka-search-bar .dgwt-wcas-sf-wrapp button.dgwt-wcas-search-submit {
  border-radius: 0 4px 4px 0 !important;
}

.ka-newsletter-form .ec_form :is(input[type="text"], input[type="email"], button) {
  border-radius: 4px !important;
}

.ka-newsletter-form button {
  font-weight: 400;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.ka-hero-content {
  box-shadow: inset 3px 0 0 var(--ka-color-orange), 0 6px 20px rgba(0, 0, 0, 0.12);
}

.ka-hero-title {
  letter-spacing: -0.035em;
}

.ka-hero-dot::before {
  border-radius: 0;
}

.ka-category-card {
  border-radius: 5px;
  box-shadow: 0 3px 10px rgba(0, 0, 0, 0.1);
  transition: box-shadow 200ms ease;
}

.ka-category-title {
  text-shadow: 0 1px 4px rgba(0, 0, 0, 0.3);
}

.ka-category-card:hover,
.ka-category-card:focus-visible {
  box-shadow: inset 0 0 0 2px var(--ka-color-orange), 0 6px 16px rgba(0, 0, 0, 0.18);
}

.ka-category-card:focus-visible .ka-category-overlay {
  background: rgba(0, 0, 0, 0.4);
}

.ka-product-card,
.ka-new-arrivals-section .ka-product-card {
  border-radius: 5px;
}

.ka-new-arrivals-section .ka-product-card:hover,
.ka-new-arrivals-section .ka-product-card:focus-within {
  transform: translateY(-3px);
}

.ka-carousel-pause,
.ka-carousel-pause-row .ka-carousel-nav,
.ka-button,
.ka-commerce-content .button,
.ka-commerce-content input.input-text,
.ka-commerce-content textarea,
.ka-commerce-content select {
  border-radius: 3px !important;
}

.ka-button,
.ka-commerce-content .button,
.ka-newsletter-form button,
.ka-product-card .button {
  transition: background-color 180ms ease, color 180ms ease, box-shadow 180ms ease;
}

.ka-button:hover,
.ka-commerce-content .button:hover,
.ka-newsletter-form button:hover,
.ka-product-card .button:hover {
  box-shadow: 0 3px 10px rgba(0, 0, 0, 0.16);
}

.site-main :is(a, button, input, select, textarea):focus-visible,
.ka-newsletter-form :is(input, button):focus-visible {
  outline: 2px solid var(--ka-color-orange);
  outline-offset: 3px;
}

.ka-footer-menu a {
  text-decoration-thickness: 1px;
  text-underline-offset: 4px;
}

.ka-footer-menu a:hover,
.ka-footer-menu a:focus-visible {
  text-decoration-line: underline;
}

/* A brighter blue highlight makes the transition to the navigation blue visible. */
.home .ka-categories-section,
.ka-shop-tiles-section {
  background: linear-gradient(135deg, color-mix(in srgb, #192028 88%, var(--ka-color-white)) 0%, #192028 55%, var(--ka-color-dark-gray) 100%);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08);
}

.ka-category-card {
  background-color: var(--ka-color-darker-gray);
  border-radius: 8px;
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.16);
  isolation: isolate;
}

.ka-category-overlay {
  background: linear-gradient(145deg, rgba(223, 50, 0, 0.16), rgba(0, 0, 0, 0.65));
}

.ka-category-card:not(:has(.ka-category-image)) .ka-category-overlay {
  background: linear-gradient(145deg, rgba(223, 50, 0, 0.12), transparent 75%);
}

.ka-category-title {
  letter-spacing: 0.035em;
  line-height: 1.3;
}

.ka-category-card::after {
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23df3200' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center / contain no-repeat;
  bottom: 18px;
  content: "";
  height: 22px;
  position: absolute;
  right: 18px;
  width: 22px;
  z-index: 2;
}

.ka-category-card:hover,
.ka-category-card:focus-visible {
  box-shadow: inset 0 0 0 1px var(--ka-color-orange), 0 12px 24px rgba(0, 0, 0, 0.24);
}

.ka-category-card:hover .ka-category-overlay,
.ka-category-card:focus-visible .ka-category-overlay {
  background: linear-gradient(145deg, rgba(223, 50, 0, 0.25), rgba(0, 0, 0, 0.35));
}

/* Homepage and Shop category and brand rows. Product photos are shot on white, so they sit on a light plate. */
.home .ka-categories-section,
.ka-shop-tiles-section,
.ka-shop-tiles-section .ka-shop-section-link,
.ka-shop-tiles-section .ka-shop-section-link:visited {
  color: var(--ka-color-white);
}

.ka-shop-tiles-section .ka-shop-section-link:hover,
.ka-shop-tiles-section .ka-shop-section-link:focus-visible {
  color: var(--ka-color-orange);
}

.ka-shop-tiles-head {
  align-items: end;
  display: flex;
  flex-wrap: wrap;
  gap: 16px 32px;
  justify-content: space-between;
  margin-bottom: 24px;
}

.ka-shop-tiles-head h2 {
  margin: 0;
  text-transform: uppercase;
}

.ka-shop-tiles-link {
  color: var(--ka-color-white);
  font-weight: 600;
  text-decoration: underline;
  text-decoration-color: var(--ka-color-orange);
  text-decoration-thickness: 2px;
  text-underline-offset: 5px;
}

.ka-shop-tiles-grid {
  display: grid;
  gap: 16px;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.ka-shop-tile {
  background: var(--ka-color-darker-gray);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 8px;
  color: var(--ka-color-white);
  display: flex;
  flex-direction: column;
  overflow: hidden;
  text-decoration: none;
  transition: border-color 200ms ease, transform 200ms ease;
}

.ka-shop-tile:hover,
.ka-shop-tile:focus-visible {
  border-color: var(--ka-color-orange);
  transform: translateY(-3px);
}

.ka-shop-tile-plate {
  aspect-ratio: 4 / 3;
  background: color-mix(in srgb, var(--ka-color-white) 92%, var(--ka-color-dark-gray));
  display: block;
  position: relative;
}

/* Absolute so a tall photo cannot stretch the plate past its aspect ratio. */
.ka-shop-tile-plate img {
  height: calc(100% - 28px);
  inset: 14px;
  mix-blend-mode: multiply;
  object-fit: contain;
  position: absolute;
  transition: transform 350ms ease;
  width: calc(100% - 28px);
}

.ka-shop-tile:hover .ka-shop-tile-plate img {
  transform: scale(1.05);
}

.ka-shop-tile-body {
  border-top: 3px solid var(--ka-color-orange);
  display: flex;
  flex: 1;
  flex-direction: column;
  gap: 4px;
  padding: 12px 16px;
}

/* Two reserved lines keep every tile the same height across rows. */
.ka-shop-tile-name {
  font-size: 1.2rem;
  font-weight: 700;
  letter-spacing: 0.03em;
  line-height: 1.15;
  min-height: 2.3em;
  text-transform: uppercase;
}

.ka-shop-tile-count {
  color: rgba(255, 255, 255, 0.72);
  font-size: 0.95rem;
  white-space: nowrap;
}

@media (max-width: 760px) {
  .ka-shop-tiles-grid {
    gap: 12px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .ka-shop-tile-body {
    padding: 10px 12px;
  }

  .ka-shop-tile-name {
    font-size: 1.05rem;
  }
}

/* Remove the 60px of side padding that inflated carousel card widths. */
.ka-product-card.ka-carousel-item {
  box-sizing: border-box;
  flex-basis: calc((100% - 48px) / 4);
  min-width: 220px;
}

.ka-new-arrivals-section .ka-product-card.ka-carousel-item,
.ka-product-card.ka-carousel-item {
  background: var(--ka-color-darker-gray);
  border: 1px solid rgba(255, 255, 255, 0.16);
  border-radius: 8px;
  box-shadow: 0 8px 22px rgba(0, 0, 0, 0.22);
  overflow: hidden;
  padding: 0;
}

.ka-product-card.ka-carousel-item:is(
  :has(> .add_to_cart_button.product_type_simple),
  .outofstock:has(> .button)
) {
  padding-bottom: 53px;
}

.ka-product-card.ka-carousel-item > a {
  min-width: 0;
}

.ka-new-arrivals-section .ka-product-card.ka-carousel-item .ka-product-title,
.ka-product-card.ka-carousel-item .ka-product-title {
  background: var(--ka-color-dark-gray);
  box-sizing: border-box;
  display: -webkit-box;
  font-size: 1.125rem;
  height: 80px;
  letter-spacing: 0.015em;
  line-height: 1.1;
  margin: 0;
  overflow: hidden;
  padding: 8px 12px;
  text-align: center;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
}

.ka-product-card.ka-carousel-item img {
  border-radius: 0;
  box-shadow: none;
  margin: 0;
  width: 100%;
}

.ka-product-card.ka-carousel-item .ka-product-price {
  font-size: 1.5rem !important;
  margin: 0;
  text-align: left;
}

.ka-product-card.ka-carousel-item > .button {
  border-radius: 3px !important;
}

.ka-product-card.ka-carousel-item:hover,
.ka-product-card.ka-carousel-item:focus-within {
  border-color: var(--ka-color-orange);
  box-shadow: 0 12px 28px rgba(0, 0, 0, 0.3);
}

/* Match archive and related-product cards without changing grid columns. */
.woocommerce ul.products li.product {
  border-color: rgba(26, 28, 35, 0.16);
  border-radius: 8px;
  box-shadow: 0 6px 18px rgba(17, 20, 26, 0.09);
  transition: border-color 180ms ease, box-shadow 180ms ease;
}

.woocommerce ul.products li.product:hover,
.woocommerce ul.products li.product:focus-within {
  border-color: var(--ka-color-orange);
  box-shadow: 0 10px 24px rgba(17, 20, 26, 0.17);
}

.woocommerce ul.products li.product .woocommerce-loop-product__title {
  background: var(--ka-color-dark-gray);
  box-shadow: none;
  font-size: 1.125rem;
  height: 76px;
  justify-content: center;
  letter-spacing: 0.015em;
  line-height: 1.1;
  padding: 8px 12px !important;
  text-align: center;
}

.woocommerce ul.products li.product .button {
  border-radius: 3px !important;
}

.woocommerce ul.products li.product .price {
  font-size: 1.625rem !important;
}

/* The card clips the outer corners; purchase-bar joins remain square. */
:is(.ka-product-card, .woocommerce ul.products li.product):is(
  :has(> .add_to_cart_button.product_type_simple),
  .outofstock:has(> .button)
) {
  overflow: hidden;
}

:is(.ka-product-card, .woocommerce ul.products li.product):is(
  :has(> .add_to_cart_button.product_type_simple),
  .outofstock:has(> .button)
) :is(.ka-product-price, .price) {
  border-radius: 0;
}

:is(.ka-product-card, .woocommerce ul.products li.product) > .add_to_cart_button.product_type_simple,
:is(.ka-product-card, .woocommerce ul.products li.product).outofstock > .button {
  border-radius: 0 !important;
}

.ka-product-card .ka-product-title,
.ka-product-card .ka-product-price,
.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce ul.products li.product .price,
.woocommerce ul.products li.product img,
.ka-cart-item-image img,
.ka-thumbnail,
.ka-thumbnail img,
.ka-main-image img {
  border-radius: 3px;
}

/* Grid card title bars sit flush on the image area below them. */
.woocommerce ul.products li.product .woocommerce-loop-product__title {
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0;
}

.woocommerce .related.products ul.products li.product {
  box-sizing: border-box;
  border-top: 1px solid rgba(26, 28, 35, 0.16);
  box-shadow: 0 3px 8px -2px rgba(17, 20, 26, 0.1);
  min-width: 220px;
}

/* Product and cart recommendations share this carousel; keep shadows compact. */
.woocommerce .related.products ul.products li.product:hover,
.woocommerce .related.products ul.products li.product:focus-within {
  box-shadow: 0 4px 10px -2px rgba(17, 20, 26, 0.14);
}

/* Product attributes stay collapsed until their native disclosure is opened. */
.ka-product-specs-accordion .ka-specs-summary {
  align-items: center;
  background: var(--ka-color-dark-gray);
  border-radius: 3px;
  color: var(--ka-color-white);
  cursor: pointer;
  display: flex;
  gap: 12px;
  justify-content: space-between;
  list-style: none;
  padding: 14px 16px;
}

.ka-product-specs-accordion .ka-specs-summary::-webkit-details-marker {
  display: none;
}

.ka-product-specs-accordion .ka-specs-summary h3 {
  font-size: 1rem;
  letter-spacing: 0.04em;
  margin: 0;
  text-transform: uppercase;
}

.ka-specs-summary:hover {
  background: var(--ka-color-darker-gray);
}

.ka-specs-indicator {
  flex: 0 0 20px;
  height: 20px;
  width: 20px;
}

.ka-product-specs-accordion[open] .ka-specs-indicator {
  transform: rotate(180deg);
}

.ka-specs-content {
  overflow-x: auto;
  padding-top: 16px;
}

/* Expanded specs sit on a subtle off-white, rounded panel. [open] stays set
   until the collapse animation finishes, so the panel fades out with it. */
.ka-product-specs-accordion.ka-detached-additional-information {
  border-radius: 8px;
  border-top: 0;
  padding-top: 0;
}

.ka-product-specs-accordion[open] {
  background: #fbfaf9;
}

.ka-product-specs-accordion[open] .ka-specs-summary {
  border-radius: 8px 8px 0 0;
}

.ka-product-specs-accordion[open] .ka-specs-content {
  padding: 16px;
}

.ka-product-specs-accordion table.shop_attributes {
  margin-bottom: 0;
}

/* Height and opacity animate together for both product disclosures. */
.ka-accordion-animating {
  box-sizing: border-box;
  overflow: hidden;
}

.ka-product-reviews-accordion.ka-accordion-ready .ka-reviews-content {
  animation: none;
}

.ka-product-specs-accordion.ka-accordion-ready .ka-specs-indicator {
  transform: rotate(0deg);
  transition: transform 300ms ease;
}

.ka-product-specs-accordion.ka-accordion-ready.is-expanded .ka-specs-indicator {
  transform: rotate(180deg);
}

.ka-product-reviews-accordion.ka-accordion-ready .ka-reviews-summary::after {
  content: "+";
}

.ka-product-reviews-accordion.ka-accordion-ready.is-expanded .ka-reviews-summary::after {
  content: "−";
}

@media (prefers-reduced-motion: reduce) {
  .ka-product-specs-accordion.ka-accordion-ready .ka-specs-indicator {
    transition: none;
  }

  .ka-product-reviews-accordion .ka-reviews-content {
    animation: none;
  }
}

/* Give the shop filters the same soft edges and shadow as product cards. */
.woocommerce .kawpf-sidebar {
  background: #ebebeb;
  border: 0;
  border-radius: 8px;
  box-shadow: 0 6px 18px rgba(17, 20, 26, 0.09);
}

.kawpf-group summary {
  border-radius: 4px;
}

/* Order details use a quieter summary and consistently sized controls. */
.ka-view-order-hero {
  background:
    linear-gradient(135deg, rgba(223, 50, 0, 0.18) 0%, rgba(223, 50, 0, 0.05) 45%, transparent 75%),
    var(--ka-color-darker-gray);
  border: 0;
  border-radius: 8px;
}

.ka-view-order-facts {
  border: 0;
  border-radius: 5px;
}

.woocommerce-view-order .ka-account-content .button,
.woocommerce-view-order .ka-view-order-actions .ka-order-status {
  align-items: center;
  border: 0;
  border-radius: 5px !important;
  box-sizing: border-box;
  display: inline-flex;
  justify-content: center;
  line-height: 1.2;
  min-height: 44px;
  padding: 12px 18px;
}

.woocommerce-view-order .ka-account-content .button {
  font-size: 0.875rem;
  font-weight: 700;
}

/* Separate carousel buttons, with no shared panel around them. */
.ka-new-arrivals-section .ka-carousel-pause-row,
.ka-related-carousel-controls {
  background: transparent;
  border: 0;
  box-shadow: none;
  gap: 10px;
}

/* A darker highlight covers just over half of each navigation button. */
:is(.ka-carousel-nav, .ka-carousel-btn, .ka-carousel-pause),
:is(
  .ka-new-arrivals-section .ka-carousel-pause-row,
  .ka-related-carousel-controls,
  .ka-thumbnail-carousel-wrapper,
  .woocommerce .related.products,
  .ka-hero-controls
) :is(.ka-carousel-nav, .ka-carousel-btn, .ka-carousel-pause) {
  background:
    linear-gradient(145deg, rgba(255, 255, 255, 0.26) 0%, rgba(255, 255, 255, 0.21) 55%, rgba(255, 255, 255, 0.04) 100%),
    linear-gradient(180deg, var(--ka-color-dark-gray), var(--ka-color-darker-gray));
  border: 0;
  border-radius: 5px !important;
  box-shadow: 0 5px 12px rgba(0, 0, 0, 0.3);
}

:is(.ka-carousel-nav, .ka-carousel-btn, .ka-carousel-pause):is(:hover, :focus-visible),
.ka-carousel-pause,
:is(
  .ka-new-arrivals-section .ka-carousel-pause-row,
  .ka-related-carousel-controls,
  .ka-thumbnail-carousel-wrapper,
  .woocommerce .related.products,
  .ka-hero-controls
) :is(.ka-carousel-nav, .ka-carousel-btn, .ka-carousel-pause):is(:hover, :focus-visible),
:is(
  .ka-new-arrivals-section .ka-carousel-pause-row,
  .ka-related-carousel-controls,
  .woocommerce .related.products,
  .ka-hero-controls
) .ka-carousel-pause {
  background: linear-gradient(145deg, color-mix(in srgb, var(--ka-color-orange) 90%, var(--ka-color-black)) 0%, color-mix(in srgb, var(--ka-color-orange) 90%, var(--ka-color-black)) 55%, var(--ka-color-red) 100%);
}

.ka-carousel-nav:hover,
.ka-carousel-nav:focus-visible {
  transform: none;
}

.ka-carousel-nav svg,
.ka-carousel-nav:hover svg,
.ka-carousel-nav:focus-visible svg {
  stroke: var(--ka-color-white);
}

:root body.home .ka-hero-controls :is(.ka-carousel-nav, .ka-carousel-btn, .ka-carousel-pause, .ka-hero-dot) {
  border-radius: 0 !important;
}

/* Square slide indicators keep their existing light gradient. */
.ka-hero-dot::before {
  background: linear-gradient(145deg, var(--ka-hero-control-light-gray) 0%, rgba(255, 255, 255, 0.585) 55%, rgba(255, 255, 255, 0.4) 100%);
  border: 0;
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.25);
}

.ka-hero-dot:is(:hover, :focus-visible, .is-active)::before {
  background: linear-gradient(145deg, color-mix(in srgb, var(--ka-color-orange) 90%, var(--ka-color-black)) 0%, color-mix(in srgb, var(--ka-color-orange) 90%, var(--ka-color-black)) 55%, var(--ka-color-red) 100%);
}

/* Shop pagination uses the same separate controls and modest corner radius. */
.ka-pagination-form {
  background: transparent;
  border: 0;
  padding: 0;
}

.ka-pagination-arrow,
.ka-pagination-form button {
  border: 0;
  border-radius: 5px !important;
  box-shadow: 0 3px 8px rgba(0, 0, 0, 0.16);
  box-sizing: border-box;
}

.ka-pagination-arrow {
  align-items: center;
  background: var(--ka-color-dark-gray);
  display: inline-flex;
  font-size: 0;
  height: 44px;
  justify-content: center;
  padding: 0;
  width: 44px;
}

/* SVG arrows avoid the off-center baseline of the font's arrow glyphs. */
.ka-pagination-arrow::before {
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center / contain no-repeat;
  content: "";
  flex: 0 0 22px;
  height: 22px;
  width: 22px;
}

.ka-product-pagination > .ka-pagination-arrow:first-child::before {
  transform: rotate(180deg);
}

.ka-pagination-arrow > span {
  display: none;
}

.ka-pagination-arrow:hover,
.ka-pagination-arrow:focus-visible {
  transform: none;
}

.ka-pagination-form input[type="number"] {
  border-color: rgba(26, 28, 35, 0.25);
  border-radius: 5px !important;
  box-sizing: border-box;
  height: 44px;
  line-height: 1;
  padding: 0 6px;
}

.ka-pagination-form button {
  align-items: center;
  display: inline-flex;
  font-family: inherit;
  font-size: 0.9rem;
  justify-content: center;
  line-height: 1;
  min-height: 44px;
  padding-block: 0;
  text-transform: uppercase;
}

.ka-pagination-form label,
.ka-pagination-total {
  align-items: center;
  align-self: stretch;
  display: inline-flex;
  justify-content: center;
  line-height: 1;
  text-align: center;
}

.ka-pagination-form button:hover,
.ka-pagination-form button:focus-visible {
  background: var(--ka-color-red);
}

@media (max-width: 480px) {
  .ka-product-pagination,
  .ka-pagination-form {
    gap: 6px;
  }

  .ka-pagination-form {
    padding: 0;
  }

  .ka-pagination-arrow {
    height: 40px;
    width: 40px;
  }

  .ka-pagination-form input[type="number"] {
    height: 40px;
    width: 44px;
  }

  .ka-pagination-form button {
    min-height: 40px;
    padding-inline: 12px;
  }

  .ka-pagination-form label,
  .ka-pagination-total {
    font-size: 0.8125rem;
  }
}

/* Remove the extra page band before the newsletter on commerce pages. */
.ka-cart-page > .ka-page-content,
.ka-checkout-page > .ka-page-content {
  padding-bottom: 0;
}

.ka-cart-page > .ka-page-content > .ka-container,
.ka-checkout-page > .ka-page-content > .ka-container {
  padding-bottom: 0;
}

.ka-cart-page .woocommerce.related.products.ka-cart-products {
  margin-bottom: 0 !important;
}

.ka-checkout-page form.checkout {
  margin-bottom: 0;
}

/* Square every storefront surface outside the requested exceptions.
 * Keep WordPress's editor toolbar outside this storefront styling.
 */
:root body.wp-theme-krebsbacharms :not(:where(
  #wpadminbar, #wpadminbar *,
  .kawpf-sidebar,
  .ka-commerce-redesign, .ka-commerce-redesign *,
  .ka-view-order-hero, .ka-view-order-facts,
  .woocommerce-view-order .ka-order-status,
  .woocommerce-view-order .ka-account-content .button,
  .woocommerce-view-order .ka-account-content .button *,
  .ka-product-card, .ka-product-card *,
  .ka-category-card, .ka-category-card *,
  .ka-shop-tile,
  .woocommerce ul.products li.product, .woocommerce ul.products li.product *,
  .ka-carousel-nav, .ka-carousel-nav *,
  .ka-carousel-btn, .ka-carousel-btn *,
  .ka-carousel-pause, .ka-carousel-pause *,
  .ka-hero-dot, .ka-hero-dot *,
  .flex-prev, .flex-next,
  .pswp__button--arrow--left, .pswp__button--arrow--right,
  .pswp, .pswp__top-bar .pswp__button,
  .ka-cart-count,
  .ka-newsletter-form, .ka-newsletter-form *,
  .ka-search-bar, .ka-search-bar *,
  .ka-product-search, .ka-product-search *,
  .search-form, .search-form *,
  .woocommerce-product-search, .woocommerce-product-search *,
  .ka-order-search-controls, .ka-order-search-controls *,
  input[type="search"],
  details, details *,
  .single-product :is(button, .button, input[type="submit"], input[type="button"], input[type="reset"], [role="button"]),
  .single-product :is(button, .button, [role="button"]) *,
  .single-product .woocommerce-product-gallery__trigger,
  .single-product .woocommerce-product-gallery__trigger *
)) {
  border-radius: 0 !important;

  &::before,
  &::after {
    border-radius: 0 !important;
  }
}

@media (max-width: 1024px) {
  .ka-product-card.ka-carousel-item {
    flex-basis: calc((100% - 32px) / 3);
  }
}

@media (max-width: 768px) {
  .ka-product-card.ka-carousel-item {
    flex-basis: calc((100% - 16px) / 2);
  }
}

@media (max-width: 480px) {
  .ka-product-card.ka-carousel-item {
    flex-basis: 82%;
    min-width: 0;
  }
}

@media (prefers-reduced-motion: reduce) {
  .ka-primary-menu > li > a,
  .ka-category-card,
  .ka-category-overlay,
  .ka-shop-tile,
  .ka-shop-tile-plate img,
  .ka-hero-dot::before,
  .ka-new-arrivals-section .ka-product-card,
  .ka-button,
  .ka-commerce-content .button,
  .ka-newsletter-form button,
  .ka-product-card .button {
    transition: none;
  }

  .ka-shop-tile:hover,
  .ka-shop-tile:focus-visible,
  .ka-shop-tile:hover .ka-shop-tile-plate img {
    transform: none;
  }

  .woocommerce ul.products li.product {
    transition: none;
  }

  .ka-new-arrivals-section .ka-product-card:hover,
  .ka-new-arrivals-section .ka-product-card:focus-within {
    transform: none;
  }
}

/* Preserve square purchase-bar joins even inside cart and checkout carousels. */
:root body :is(.ka-product-card, .woocommerce ul.products li.product) > .button.add_to_cart_button,
:root body :is(.ka-product-card, .woocommerce ul.products li.product).outofstock > .button {
  border-top-left-radius: 0 !important;
  border-bottom-left-radius: 0 !important;
}
