/* Kimple: single source for theme-wide color, type, spacing and native controls. */
:root {
  --ki-ink: #172429;
  --ki-deep: #142c36;
  --ki-paper: #f5f5f1;
  --ki-white: #fff;
  --ki-surface: #e9ede7;
  --ki-muted: #536267;
  --ki-on-dark: #edf1f1;
  --ki-accent: #bd3c12;
  --ki-accent-hover: #97300e;
  --ki-accent-light: #ff946e;
  --ki-accent-soft: #f5d8cc;
  --ki-line: #d2d9d5;
  --ki-control-line: #84938e;
  --ki-line-on-dark: #ffffff70;
  --ki-focus: #bd3c12;
  --ki-danger: #b42332;
  --ki-success: #216b41;
  --ki-warning: #805800;
  --ki-font-body: "Kimple Sans", Arial, sans-serif;
  --ki-font-heading: var(--ki-font-body);
  --ki-text-xs: 1rem;
  --ki-text-sm: 1rem;
  --ki-text-base: 1.125rem;
  --ki-text-nav: 1.0625rem;
  --ki-space-1: .25rem;
  --ki-space-2: .5rem;
  --ki-space-3: .75rem;
  --ki-space-4: 1rem;
  --ki-space-6: 1.5rem;
  --ki-space-8: 2rem;
  --ki-space-12: 3rem;
  --ki-radius: 3px;
  --ki-gutter: clamp(20px, 4vw, 56px);
  --bs-body-color: var(--ki-ink);
  --bs-body-bg: var(--ki-paper);
  --bs-body-font-family: var(--ki-font-body);
  --bs-body-font-size: var(--ki-text-base);
  --bs-body-line-height: 1.6;
  --bs-primary: var(--ki-accent);
  --bs-primary-rgb: 189,60,18;
  --bs-secondary-color: var(--ki-muted);
  --bs-secondary-color-rgb: 83,98,103;
  --bs-tertiary-color: var(--ki-muted);
  --bs-tertiary-bg: var(--ki-surface);
  --bs-link-color: var(--ki-ink);
  --bs-link-color-rgb: 23,36,41;
  --bs-link-hover-color: var(--ki-accent-hover);
  --bs-link-hover-color-rgb: 151,48,14;
  --bs-danger: var(--ki-danger);
  --bs-danger-rgb: 180,35,50;
  --bs-success: var(--ki-success);
  --bs-success-rgb: 33,107,65;
  --bs-warning: var(--ki-warning);
  --bs-warning-rgb: 128,88,0;
  --bs-border-color: var(--ki-line);
  --bs-border-radius: var(--ki-radius);
}
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: auto; scroll-padding-top: var(--ki-space-6); }
body { --abcds-pl-text-size: var(--ki-text-sm); --abcds-pdp-text-size: var(--ki-text-sm); margin: 0; font-family: var(--ki-font-body); font-size: var(--ki-text-base); line-height: 1.6; color: var(--ki-ink); background: var(--ki-paper); -webkit-font-smoothing: antialiased; }
h1, h2, h3, h4, h5, h6 { font-family: var(--ki-font-heading); color: inherit; line-height: 1.15; text-wrap: balance; }
a { color: var(--ki-ink); text-underline-offset: .2em; }
a:hover { color: var(--ki-accent-hover); }
button, input, select, textarea { font: inherit; }
button, [role="button"] { cursor: pointer; }
button:disabled { cursor: not-allowed; }
img, video { max-width: 100%; }
:focus-visible { outline: 3px solid var(--ki-focus); outline-offset: 4px; }
.ki-hero, .ki-water { --ki-focus: var(--ki-accent-light); }
.visually-hidden, .visually-hidden-focusable:not(:focus):not(:focus-within) { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
.skip-link:focus { position: fixed; top: var(--ki-space-2); left: var(--ki-space-2); z-index: 2000; }
.btn { --bs-btn-font-family: var(--ki-font-body); --bs-btn-font-size: var(--ki-text-sm); --bs-btn-font-weight: 600; --bs-btn-border-radius: var(--ki-radius); min-height: 44px; }
a.btn { color: var(--bs-btn-color); }
a.btn:hover { color: var(--bs-btn-hover-color); }
.btn-primary {
  --bs-btn-color: var(--ki-white); --bs-btn-bg: var(--ki-accent); --bs-btn-border-color: var(--ki-accent);
  --bs-btn-hover-color: var(--ki-white); --bs-btn-hover-bg: var(--ki-accent-hover); --bs-btn-hover-border-color: var(--ki-accent-hover);
  --bs-btn-active-color: var(--ki-white); --bs-btn-active-bg: var(--ki-accent-hover); --bs-btn-active-border-color: var(--ki-accent-hover);
  --bs-btn-disabled-color: var(--ki-white); --bs-btn-disabled-bg: var(--ki-muted); --bs-btn-disabled-border-color: var(--ki-muted);
}
.btn-outline-primary, .btn-outline-tertiary, .abpc-button {
  --bs-btn-color: var(--ki-ink); --bs-btn-border-color: var(--ki-control-line); --bs-btn-hover-color: var(--ki-white);
  --bs-btn-hover-bg: var(--ki-ink); --bs-btn-hover-border-color: var(--ki-ink); --bs-btn-active-bg: var(--ki-ink); --bs-btn-active-color: var(--ki-white);
}
.btn-tertiary { --bs-btn-color: var(--ki-ink); --bs-btn-bg: var(--ki-surface); --bs-btn-border-color: var(--ki-line); }
.form-control, .form-select { min-height: 44px; font-size: var(--ki-text-base); color: var(--ki-ink); background-color: var(--ki-white); border-color: var(--ki-control-line); border-radius: var(--ki-radius); }
.form-control::placeholder { color: var(--ki-muted); opacity: 1; }
.form-control:focus, .form-select:focus { border-color: var(--ki-focus); box-shadow: 0 0 0 3px var(--ki-accent-soft); }
.form-check-input:checked { background-color: var(--ki-accent); border-color: var(--ki-accent); }
.form-check-input:focus { border-color: var(--ki-focus); box-shadow: 0 0 0 3px var(--ki-accent-soft); }
.accordion { --bs-accordion-color: var(--ki-ink); --bs-accordion-btn-color: var(--ki-ink); --bs-accordion-active-color: var(--ki-ink); --bs-accordion-bg: var(--ki-white); --bs-accordion-active-bg: var(--ki-surface); --bs-accordion-border-color: var(--ki-line); }
.modal-content, .offcanvas { color: var(--ki-ink); background: var(--ki-paper); border-radius: var(--ki-radius); }
.modal .btn-close { min-width: 44px; min-height: 44px; padding: 0; }
.alert { border-radius: var(--ki-radius); }
.page-header, .page-title-section { color: var(--ki-ink); }
.breadcrumb__wrapper { padding-block: var(--ki-space-6); }
body:not(#index):not(#product):not(:has(.ki-catalog)) #wrapper { padding-bottom: var(--ki-space-12); }
.ki-footer-widgets { display: flex; flex-wrap: wrap; gap: var(--ki-space-8); border-top: 1px solid var(--ki-line); padding-block: var(--ki-space-8); }
.ki-footer-widgets > * { flex: 1 1 260px; min-width: 0; }
.ki-footer-widgets h2, .ki-footer-widgets h3, .ki-footer-widgets .footer__title { font-size: var(--ki-text-base); }
.ki-footer-widgets .footer-block__title, .ki-footer-widgets .footer-block__title button { color: var(--ki-ink); }
.ki-footer-widgets .footer-block__title { font-size: var(--readability-paragraph); }
.ki-footer-widgets .footer-block__title button { min-width: 44px; min-height: 44px; }
.ki-footer-widgets a, .ki-footer-after a { color: var(--ki-ink); }
.ki-footer-before:empty, .ki-footer-widgets:empty, .ki-footer-after:empty { display: none; }
.ki-footer-after { padding-block: var(--ki-space-6); border-top: 1px solid var(--ki-line); }
.ki-footer-after .container { padding: 0; max-width: none; }
.ki-footer-after .elwd-footer-link { color: var(--ki-ink); display: inline-flex; align-items: center; min-height: 44px; }
.ki-cart-intro { margin: 0 0 var(--ki-space-8); color: var(--ki-muted); }
#cart .cart-grid { margin-top: var(--ki-space-8); row-gap: var(--ki-space-8); }
#cart .cart-grid__content .page-title-section { font-size: clamp(2rem, 3.6vw, 3.5rem); line-height: 1.12; font-weight: 400; letter-spacing: -.035em; }
#cart .cart-grid__aside-wrapper { background: var(--ki-white); border: 1px solid var(--ki-line); padding: var(--ki-space-8); }
#cart .cart-grid__aside-wrapper > h2 { font-size: 1.5rem; margin-bottom: var(--ki-space-6); }
#cart .cart__item { background: var(--ki-white); border-bottom: 1px solid var(--ki-line); padding: var(--ki-space-6); }
#cart .cart__empty { padding: var(--ki-space-12) var(--ki-space-6); background: var(--ki-white); }
#cart .cart__product-name { color: var(--ki-ink); font-size: 1.125rem; }
#cart .cart-summary__line { gap: var(--ki-space-4); }
#cart .cart-summary__value { white-space: nowrap; }
.ki-cart-help { color: var(--ki-muted); font-size: var(--ki-text-sm); line-height: 1.7; }
.ki-cart-help a { display: inline-flex; align-items: center; min-height: 44px; }
#product .product__thumbnails-list > li { list-style: none; flex: 0 0 auto; }
#product .product__thumbnail { display: block; }
.ki-header-tools .material-icons { width: 24px; height: 24px; line-height: 24px; overflow: hidden; }
/* Escapes preserve Hummingbird icons even when CCC is served without UTF-8. */
.dropdown-toggle::after { content: "\e313"; }
.carousel-control-prev-icon::before { content: "\e5cb"; }
.carousel-control-next-icon::before { content: "\e5cc"; }
body#checkout:has(#abopc) { background: var(--ki-paper); }
body#checkout .abopc-header { background: var(--ki-white); border-color: var(--ki-line); }
body#checkout .abopc-header a { color: var(--ki-ink); }
#abopc { --opc-ink: var(--ki-ink); --opc-muted: var(--ki-muted); --opc-line: var(--ki-line); --opc-accent: var(--ki-accent); --el-radius: var(--ki-radius); --el-radius-panel: var(--ki-radius); }
#abopc .abopc-number { color: var(--ki-ink); background: var(--ki-surface); }
#abopc .btn-primary:hover { background: var(--ki-accent-hover); border-color: var(--ki-accent-hover); }
@media (max-width: 800px) {
  .ki-js .ki-header .ki-navigation { display: none; }
  .ki-js .ki-header.ki-menu-open .ki-navigation { display: flex; }
  .ki-js .ki-menu-toggle { display: flex; min-height: 44px; }
  .ki-header-tools { min-height: 49px; }
  .ki-footer-widgets { gap: var(--ki-space-6); }
  #cart .cart-grid__aside-wrapper, #cart .cart__item { padding: var(--ki-space-6); }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto; transition-duration: .01ms; animation-duration: .01ms; animation-iteration-count: 1; }
}
