/**
 * Kampung Pare public accessibility layer.
 *
 * Palet ini mempertahankan karakter hijau/emas situs dengan kontras WCAG 2.2
 * AA minimal 4.5:1 untuk teks normal pada permukaan putih atau #f8f8f8.
 */
:root {
  --kp-wcag-success: #15803d; /* putih di atas hijau: 5.02:1 */
  --kp-wcag-accent: #b45309;  /* emas gelap di atas putih: 5.02:1 */
  --kp-wcag-focus-dark: #003366;
  --kp-wcag-focus-light: #ffffff;
  --kp-wcag-ink: #111827;
  --kp-wcag-muted: #4b5563;
  --kp-wcag-navy: #003366;
  --kp-wcag-navy-dark: #00264d;
  --kp-wcag-surface: #ffffff;
  --kp-wcag-surface-soft: #f8fafc;
  --kp-wcag-surface-info: #eff6ff;
  --kp-wcag-surface-warm: #fff7ed;
  --kp-wcag-border: #7c8798; /* 3.64:1 terhadap putih */
  --kp-wcag-radius: 10px;
  --kp-wcag-shadow: 0 8px 24px rgba(15, 23, 42, 0.1);
}

/* Fokus keyboard dua warna: tetap terlihat pada latar terang maupun gelap. */
:where(
  a,
  button,
  input,
  select,
  textarea,
  summary,
  [tabindex]:not([tabindex="-1"])
):focus-visible {
  outline: 2px solid var(--kp-wcag-focus-light) !important;
  outline-offset: 2px !important;
  box-shadow: 0 0 0 5px var(--kp-wcag-focus-dark) !important;
}

/* Hijau status dan CTA: teks putih kini melewati rasio 4.5:1. */
.woocommerce-message,
.product-label,
.cart .single_add_to_cart_button,
ul.products li.product .button,
.elementor-7105 .elementor-element.elementor-element-2b594290 .elementor-button,
.image-feature .widget-image-caption > span {
  color: #ffffff !important;
  background-color: var(--kp-wcag-success) !important;
}

.woocommerce-message a,
.elementor-7105 .elementor-element.elementor-element-2b594290 .elementor-button svg {
  color: #ffffff !important;
  fill: #ffffff !important;
}

.summary .onsale {
  color: var(--kp-wcag-success) !important;
}

/* Caption kartu bergambar berada di atas permukaan hitam. */
.image-feature .widget-image-caption,
.image-feature .widget-image-caption em {
  color: #ffffff !important;
}

/* Emas gelap untuk harga dan indikator kecil pada permukaan terang. */
.site-content p.price,
.site-content .price > .amount,
.site-content .price bdi,
.site-content .price .woocommerce-Price-currencySymbol,
.site-content .price ins,
.site-content .price ins .amount,
.site-content .price ins bdi,
.site-content .price ins .woocommerce-Price-currencySymbol,
.widget_products ins,
.widget_products ins .amount,
.widget_products ins bdi,
.widget_products ins .woocommerce-Price-currencySymbol,
.shoptimizer-cart a.cart-contents .count {
  color: var(--kp-wcag-accent) !important;
}

.site-content .price del,
.site-content .price del .amount {
  color: #4b5563 !important;
}

.shoptimizer-cart a.cart-contents .count,
.shoptimizer-cart a.cart-contents .count::after {
  border-color: var(--kp-wcag-accent) !important;
}

/* Badge jumlah keranjang berada di header gelap: putih di atas emas = 5.02:1. */
.shoptimizer-cart a.cart-contents .count {
  color: #ffffff !important;
  background-color: var(--kp-wcag-accent) !important;
}

/* Komponen dengan teks putih yang sebelumnya memakai emas terlalu terang. */
.header-widget-region,
.shoptimizer-cart a.cart-contents:hover .count,
.call-back-feature button,
.woocommerce-tabs ul.tabs li a span,
footer .mc4wp-form input[type="submit"] {
  color: #ffffff !important;
  background-color: var(--kp-wcag-accent) !important;
}

/* Kontrol/grafik non-teks membutuhkan kontras sedikitnya 3:1. */
.below-content .widget svg {
  stroke: var(--kp-wcag-accent) !important;
}

ul.checkout-bar::before,
#shipping_method > li > input[type="radio"]:first-child:checked + label::before,
#payment .payment_methods li.wc_payment_method > input[type="radio"]:first-child:checked + label::before,
#payment .payment_methods li.woocommerce-PaymentMethod > input[type="radio"]:first-child:checked + label::before {
  background-color: var(--kp-wcag-accent) !important;
}

/*
 * Shoptimizer menambahkan opacity:0 secara inline sampai skrip galeri selesai.
 * Gambar utama tetap harus terlihat sebelum JavaScript agar LCP tidak menunggu
 * inisialisasi carousel; kontrol zoom/thumbnail tetap dikelola skrip tema.
 */
.single-product .woocommerce-product-gallery {
  opacity: 1 !important;
}

/*
 * Sistem komponen konten publik.
 *
 * Aturan ini sengaja memakai class yang ditambahkan pada HTML artikel, bukan
 * selector table global, supaya tabel cart, checkout, akun, dan administrasi
 * tetap sepenuhnya dikelola WooCommerce/plugin bisnis masing-masing.
 */
.entry-content .kp-table-scroll,
.woocommerce-Tabs-panel .kp-table-scroll {
  position: relative;
  max-width: 100%;
  margin: 1.5rem 0 1.75rem;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  -webkit-overflow-scrolling: touch;
  background: var(--kp-wcag-surface);
  border: 1px solid var(--kp-wcag-border);
  border-radius: var(--kp-wcag-radius);
  box-shadow: var(--kp-wcag-shadow);
  scrollbar-color: #64748b #e2e8f0;
  scrollbar-width: thin;
}

.entry-content .kp-table-scroll::-webkit-scrollbar,
.woocommerce-Tabs-panel .kp-table-scroll::-webkit-scrollbar {
  block-size: 10px;
}

.entry-content .kp-table-scroll::-webkit-scrollbar-track,
.woocommerce-Tabs-panel .kp-table-scroll::-webkit-scrollbar-track {
  background: #e2e8f0;
}

.entry-content .kp-table-scroll::-webkit-scrollbar-thumb,
.woocommerce-Tabs-panel .kp-table-scroll::-webkit-scrollbar-thumb {
  background: #64748b;
  border: 2px solid #e2e8f0;
  border-radius: 999px;
}

.entry-content table.kp-data-table,
.woocommerce-Tabs-panel table.kp-data-table {
  width: 100%;
  margin: 0 !important;
  border: 0 !important;
  border-collapse: separate;
  border-spacing: 0;
  color: var(--kp-wcag-ink);
  background: var(--kp-wcag-surface);
  font-size: 0.9375rem;
  line-height: 1.55;
}

.entry-content .kp-data-table :where(th, td),
.woocommerce-Tabs-panel .kp-data-table :where(th, td) {
  padding: 0.875rem 1rem !important;
  vertical-align: top;
  text-align: start;
  color: var(--kp-wcag-ink);
  background: var(--kp-wcag-surface);
  border: 0;
  border-block-end: 1px solid var(--kp-wcag-border);
  font-size: 0.9375rem !important;
  line-height: 1.55 !important;
}

.entry-content .kp-data-table :where(th, td) + :where(th, td),
.woocommerce-Tabs-panel .kp-data-table :where(th, td) + :where(th, td) {
  border-inline-start: 1px solid var(--kp-wcag-border);
}

.entry-content .kp-data-table thead th,
.woocommerce-Tabs-panel .kp-data-table thead th {
  color: #ffffff !important;
  background: var(--kp-wcag-navy) !important;
  font-weight: 700;
  line-height: 1.4;
  vertical-align: middle;
  border-color: #ffffff;
}

.entry-content .kp-data-table tbody :is(th[scope="row"], td[role="rowheader"]),
.woocommerce-Tabs-panel .kp-data-table tbody :is(th[scope="row"], td[role="rowheader"]) {
  color: var(--kp-wcag-navy);
  background: var(--kp-wcag-surface-info);
  font-weight: 700;
}

.entry-content .kp-data-table tbody tr:nth-child(even) > td,
.woocommerce-Tabs-panel .kp-data-table tbody tr:nth-child(even) > td {
  background: var(--kp-wcag-surface-soft);
}

.entry-content .kp-data-table tbody tr:hover > *,
.entry-content .kp-data-table tbody tr:focus-within > *,
.woocommerce-Tabs-panel .kp-data-table tbody tr:hover > *,
.woocommerce-Tabs-panel .kp-data-table tbody tr:focus-within > * {
  background: var(--kp-wcag-surface-warm);
}

.entry-content .kp-data-table tbody tr:last-child > *,
.woocommerce-Tabs-panel .kp-data-table tbody tr:last-child > * {
  border-block-end: 0;
}

.entry-content .kp-data-table caption,
.woocommerce-Tabs-panel .kp-data-table caption {
  padding: 0.875rem 1rem;
  color: var(--kp-wcag-ink);
  background: var(--kp-wcag-surface-info);
  font-weight: 700;
  text-align: start;
  caption-side: top;
}

.entry-content .kp-data-table a,
.woocommerce-Tabs-panel .kp-data-table a {
  color: var(--kp-wcag-navy);
  font-weight: 700;
  text-decoration: underline;
  text-decoration-thickness: 1.5px;
  text-underline-offset: 3px;
}

/* Komponen editorial yang sebelumnya bergantung pada default browser/theme. */
body.single-post .entry-content > :where(p, ul, ol, blockquote, h2, h3, h4, h5, h6) {
  max-width: 78ch;
}

body:not(:is(.woocommerce-cart, .woocommerce-checkout, .woocommerce-account, .page-id-7358))
  .entry-content :where(ul, ol):not([class]) {
  padding-inline-start: 1.4rem;
}

body:not(:is(.woocommerce-cart, .woocommerce-checkout, .woocommerce-account, .page-id-7358))
  .entry-content :where(ul, ol):not([class]) > li {
  padding-inline-start: 0.25rem;
  margin-block: 0.35rem;
}

body:not(:is(.woocommerce-cart, .woocommerce-checkout, .woocommerce-account, .page-id-7358))
  .entry-content :where(ul, ol):not([class]) > li::marker {
  color: var(--kp-wcag-accent);
  font-weight: 700;
}

body:not(:is(.woocommerce-cart, .woocommerce-checkout, .woocommerce-account, .page-id-7358))
  .entry-content :where(blockquote, .wp-block-quote) {
  margin: 1.5rem 0;
  padding: 1rem 1.25rem;
  color: var(--kp-wcag-ink);
  background: var(--kp-wcag-surface-warm);
  border: 1px solid var(--kp-wcag-border);
  border-inline-start: 5px solid var(--kp-wcag-accent);
  border-radius: 0 var(--kp-wcag-radius) var(--kp-wcag-radius) 0;
}

body:not(:is(.woocommerce-cart, .woocommerce-checkout, .woocommerce-account, .page-id-7358))
  .entry-content :where(blockquote, .wp-block-quote) > :last-child {
  margin-block-end: 0;
}

body:not(:is(.woocommerce-cart, .woocommerce-checkout, .woocommerce-account, .page-id-7358))
  .entry-content > pre,
body:not(:is(.woocommerce-cart, .woocommerce-checkout, .woocommerce-account, .page-id-7358))
  .entry-content .wp-block-code {
  max-width: 100%;
  margin: 1.5rem 0;
  padding: 1rem 1.125rem;
  overflow: auto;
  color: #f8fafc;
  background: #0f172a;
  border: 1px solid #64748b;
  border-radius: var(--kp-wcag-radius);
  font-size: 0.875rem;
  line-height: 1.65;
  tab-size: 2;
}

body:not(:is(.woocommerce-cart, .woocommerce-checkout, .woocommerce-account, .page-id-7358))
  .entry-content :where(p, li, td, th) > code {
  padding: 0.12em 0.38em;
  color: var(--kp-wcag-navy-dark);
  background: var(--kp-wcag-surface-info);
  border: 1px solid var(--kp-wcag-border);
  border-radius: 4px;
  font-size: 0.92em;
  overflow-wrap: anywhere;
}

body:not(:is(.woocommerce-cart, .woocommerce-checkout, .woocommerce-account, .page-id-7358))
  .entry-content :where(hr, .wp-block-separator) {
  height: 0;
  margin: 2rem 0;
  border: 0;
  border-block-start: 1px solid var(--kp-wcag-border);
}

body:not(:is(.woocommerce-cart, .woocommerce-checkout, .woocommerce-account, .page-id-7358))
  .entry-content :where(label) {
  color: var(--kp-wcag-ink);
  font-weight: 700;
}

body:not(:is(.woocommerce-cart, .woocommerce-checkout, .woocommerce-account, .page-id-7358))
  .entry-content :where(
  input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]),
  select,
  textarea
) {
  min-height: 44px;
  color: var(--kp-wcag-ink);
  background: var(--kp-wcag-surface);
  border: 1px solid var(--kp-wcag-border);
  border-radius: 8px;
}

body:not(:is(.woocommerce-cart, .woocommerce-checkout, .woocommerce-account, .page-id-7358))
  .entry-content :where(input, textarea)::placeholder {
  color: var(--kp-wcag-muted);
  opacity: 1;
}

body:not(:is(.woocommerce-cart, .woocommerce-checkout, .woocommerce-account, .page-id-7358))
  .entry-content :where(.wp-block-button__link, .wp-element-button, a.button, button.button) {
  min-width: 44px;
  min-height: 44px;
  padding: 0.7rem 1rem;
  color: #ffffff !important;
  background: var(--kp-wcag-navy) !important;
  border: 2px solid var(--kp-wcag-navy) !important;
  border-radius: 8px;
  font-weight: 700;
  line-height: 1.35;
  text-decoration: none;
}

body:not(:is(.woocommerce-cart, .woocommerce-checkout, .woocommerce-account, .page-id-7358))
  .entry-content :where(.wp-block-button__link, .wp-element-button, a.button, button.button):hover {
  color: #ffffff !important;
  background: var(--kp-wcag-navy-dark) !important;
  border-color: var(--kp-wcag-navy-dark) !important;
}

body:not(:is(.woocommerce-cart, .woocommerce-checkout, .woocommerce-account, .page-id-7358))
  .entry-content :where(button, input, select, textarea):disabled,
body:not(:is(.woocommerce-cart, .woocommerce-checkout, .woocommerce-account, .page-id-7358))
  .entry-content [aria-disabled="true"] {
  cursor: not-allowed;
  opacity: 0.65;
}

@media (max-width: 768px) {
  .entry-content .kp-table-scroll,
  .woocommerce-Tabs-panel .kp-table-scroll {
    margin-block: 1.25rem 1.5rem;
  }

  .entry-content .kp-table-scroll::before,
  .woocommerce-Tabs-panel .kp-table-scroll::before {
    content: "Geser tabel ke samping bila kolom belum terlihat";
    display: block;
    position: sticky;
    inset-inline-start: 0;
    width: fit-content;
    min-width: 100%;
    padding: 0.55rem 0.75rem;
    color: var(--kp-wcag-navy);
    background: var(--kp-wcag-surface-info);
    border-block-end: 1px solid var(--kp-wcag-border);
    font-size: 0.8125rem;
    font-weight: 700;
    line-height: 1.4;
  }

  .entry-content table.kp-data-table,
  .woocommerce-Tabs-panel table.kp-data-table {
    min-width: 34rem;
  }

  .entry-content table.kp-data-table:has(tr > :nth-child(3)),
  .woocommerce-Tabs-panel table.kp-data-table:has(tr > :nth-child(3)) {
    min-width: 42rem;
  }

  .entry-content table.kp-data-table:has(tr > :nth-child(5)),
  .woocommerce-Tabs-panel table.kp-data-table:has(tr > :nth-child(5)) {
    min-width: 56rem;
  }

  .entry-content .kp-data-table :where(th, td),
  .woocommerce-Tabs-panel .kp-data-table :where(th, td) {
    padding: 0.75rem 0.875rem !important;
    font-size: 0.875rem !important;
    line-height: 1.5 !important;
  }
}

/*
 * Form konfirmasi pembayaran memakai komponen upload pihak ketiga. Koreksi ini
 * hanya mencegah kontrol melebar dari kolom pada layar sempit; kontrak form dan
 * perilaku upload tetap dikelola plugin asal.
 */
.page-id-7358 .wpcf7 :where(.rt-form, .wpcf7-form-control-wrap) {
  display: block;
  max-width: 100%;
}

.page-id-7358 .wpcf7 :where(
  input:not([type="hidden"]):not([type="submit"]),
  select,
  textarea,
  .cf7-dragandrophandler-container,
  .cf7-dragandrophandler,
  .cf7-dragandrophandler-inner,
  .cf7-text-drop
) {
  box-sizing: border-box;
  max-width: 100%;
}

.page-id-7358 .wpcf7 .cf7-text-drop {
  white-space: normal !important;
  overflow-wrap: anywhere;
  font-size: clamp(1.25rem, 6vw, 1.5rem) !important;
  line-height: 1.25;
}

@media (prefers-reduced-motion: reduce) {
  .entry-content *,
  .entry-content *::before,
  .entry-content *::after {
    scroll-behavior: auto !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}

@media (forced-colors: active) {
  .entry-content .kp-table-scroll,
  .entry-content .kp-data-table :where(th, td) {
    border-color: CanvasText;
  }

  .entry-content .kp-data-table thead th {
    color: Canvas !important;
    background: CanvasText !important;
  }
}

@media print {
  .entry-content .kp-table-scroll,
  .woocommerce-Tabs-panel .kp-table-scroll {
    overflow: visible;
    border-color: #64748b;
    box-shadow: none;
  }

  .entry-content .kp-table-scroll::before,
  .woocommerce-Tabs-panel .kp-table-scroll::before {
    content: none;
  }

  .entry-content table.kp-data-table,
  .woocommerce-Tabs-panel table.kp-data-table {
    min-width: 0;
  }
}
