.km-ui{
  display:block;
  width:100%;
  margin:12px 0 18px;
  padding:0;
  border:none;
  border-radius:0;
  background:transparent;
  box-shadow:none;
  font-family:inherit;
}

.km-ui *{box-sizing:border-box}

.km-price-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:10px;
}

.km-price-main{
  font-size:34px;
  font-weight:800;
  color:#2B2B2B;
  line-height:1.1;
}

.km-price-unit{
  font-size:0.5em;
  font-weight:700;
  color:#8A8A8A;
  margin-left:6px;
}

.km-price-badge{
  background:#2B2B2B;
  color:#F5F2ED;
  font-weight:800;
  padding:10px 14px;
  border-radius:10px;
  letter-spacing:.02em;
  font-size:12px;
  text-transform:uppercase;
  box-shadow:0 6px 16px #8A8A8A;
}

.km-price-subrow{
  display:flex;
  flex-wrap:wrap;
  gap:12px 18px;
  align-items:center;
  font-weight:600;
  color:#2B2B2B;
  margin-bottom:14px;
}

.km-pack-meta{
  color:#8A8A8A;
  font-weight:600;
}

.km-help{
  display:flex;
  flex-direction:column;
  gap:4px;
  padding:12px 14px;
  border-radius:10px;
  background:#F5F2ED;
  border:1px solid #D8C7AF;
  color:#2B2B2B;
  margin-bottom:14px;
}

.km-variations{
  margin:0 0 12px;
}

.km-input label{
  display:block;
  font-weight:700;
  margin:0 0 6px;
  color:#2B2B2B;
}

.km-input input[type="number"]{
  width:100%;
  height:46px;
  padding:8px 12px;
  border-radius:8px;
  border:1px solid #D8C7AF;
  background:#F5F2ED;
  box-shadow:0 3px 10px #8A8A8A;
  font-size:16px;
}

.km-total{
  margin:10px 0 8px;
  padding:12px 14px;
  border-radius:10px;
  background:#F5F2ED;
  border:1px solid #D8C7AF;
  color:#2B2B2B;
  display:grid;
  gap:6px;
  font-weight:600;
}

.km-total-row{
  display:flex;
  justify-content:space-between;
  gap:12px;
}

.km-total-row strong{
  font-weight:800;
}

.km-total-muted{
  font-weight:500;
  color:#8A8A8A;
  justify-content:flex-start;
}

.km-add-to-cart{
  width:100%;
  margin:14px 0 10px;
  padding:14px 18px;
  border-radius:10px;
  background:#B62222;
  color:#F5F2ED;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.02em;
  box-shadow:0 10px 20px #8A8A8A;
  transition:filter .2s ease, transform .2s ease;
}

.km-add-to-cart:hover,
.km-add-to-cart:focus{
  filter:brightness(0.92);
  transform:translateY(-1px);
}

.km-button-row{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
  margin:10px 0 8px;
}

.km-quote-button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:10px 12px;
  border-radius:10px;
  border:1px solid #2B2B2B !important;
  background:#FFFFFF !important;
  color:#000000 !important;
  font-weight:700;
  text-align:center;
  text-decoration:none;
  width:100%;
  transition:filter .2s ease;
  text-transform:uppercase;
}

.km-quote-button:hover,
.km-quote-button:focus{
  filter:brightness(0.98);
}

.km-quote-error{
  color:#B62222;
  font-weight:600;
  font-size:14px;
}

.km-quote-section{
  margin:20px 0 10px;
  padding:18px;
  border-radius:12px;
  border:1px solid #D8C7AF;
  background:#F2F2F2;
  box-shadow:0 6px 14px #D8C7AF;
  border-top:3px solid #B62222;
  max-height:0;
  opacity:0;
  overflow:hidden;
  transition:max-height .35s ease, opacity .2s ease;
}

.km-quote-section--inline{
  margin-top:16px;
  max-height:none;
  opacity:1;
  overflow:visible;
  transition:none;
}

.km-quote-section--open{
  max-height:2000px;
  opacity:1;
}

.km-quote-form{
  display:grid;
  gap:12px;
}

.km-quote-field label{
  display:block;
  font-weight:700;
  margin-bottom:6px;
  color:#2B2B2B;
}

.km-quote-field input,
.km-quote-field textarea{
  width:100%;
  padding:10px 12px;
  border-radius:8px;
  border:1px solid #D8C7AF;
  background:#FFFFFF;
  font-size:16px;
}

.km-quote-submit{
  width:100%;
  padding:12px 16px;
  border-radius:10px;
  border:none;
  background:#B62222;
  color:#F5F2ED;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.02em;
  transition:filter .2s ease, transform .2s ease;
}

.km-quote-submit:hover,
.km-quote-submit:focus{
  filter:brightness(0.92);
  transform:translateY(-1px);
}

.km-quote-actions{
  display:grid;
  grid-template-columns:1fr;
  gap:10px;
}

.km-quote-back{
  width:100%;
  padding:12px 16px;
  border-radius:10px;
  border:1px solid #D8C7AF;
  background:#D8C7AF;
  color:#2B2B2B;
  font-weight:700;
  transition:filter .2s ease;
}

.km-quote-back:hover,
.km-quote-back:focus{
  filter:brightness(0.96);
}

.km-quote-message{
  padding:10px 12px;
  border-radius:8px;
  font-weight:700;
}

.km-quote-message--success{
  background:#D8C7AF;
  color:#2B2B2B;
  border:1px solid #D8C7AF;
}

.km-quote-message--error{
  background:#F5F2ED;
  color:#B62222;
  border:1px solid #B62222;
}

.km-quote-section[hidden]{
  display:none;
}

.km-quote-modal{
  position:fixed;
  inset:0;
  background:#8A8A8A;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:20px;
  z-index:9999;
}

.km-quote-modal__dialog{
  background:#F5F2ED;
  border-radius:12px;
  padding:18px;
  width:min(720px, 100%);
  max-height:85vh;
  overflow:auto;
  box-shadow:0 12px 28px #D8C7AF;
}

.km-quote-modal__close{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:8px 12px;
  border-radius:8px;
  border:1px solid #D8C7AF;
  background:#D8C7AF;
  color:#2B2B2B;
  font-weight:700;
  margin-bottom:10px;
}

.km-bullets{
  list-style:none;
  padding:0;
  margin:0;
  display:grid;
  gap:8px;
  color:#2B2B2B;
  font-weight:600;
}

.km-bullets li{
  display:flex;
  align-items:flex-start;
  gap:10px;
}

.km-bullets li::before{
  content:"\2713";
  font-weight:900;
  color:#B62222;
  margin-top:1px;
}

.km-add-to-cart-area[hidden]{
  display:none;
}

.km-ui--quote-open .km-button-row{
  display:none;
}

.km-ui .added_to_cart{
  display:none !important;
}

.km-ui .km-variation-radios{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin:8px 0 0;
  width:100%;
  justify-content:flex-start;
}

.km-ui .km-variation-radio{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:10px 14px;
  border:1px solid #D5D5D5;
  border-radius:999px;
  background:#FFFFFF;
  cursor:pointer;
  font-weight:700;
  color:#2B2B2B;
  box-shadow:0 2px 8px rgba(0,0,0,.08);
  text-align:left;
  transition:transform .12s ease, border-color .2s ease, box-shadow .2s ease, background-color .2s ease;
}

.km-ui .km-variation-radio:hover{
  transform:translateY(-1px);
  border-color:#B62222;
  box-shadow:0 6px 16px rgba(0,0,0,.12);
}

.km-ui .km-variation-radio input{
  margin:0;
  accent-color:#B62222;
}

.km-ui .km-variation-radio input:checked + .km-variation-radio-text{
  color:#B62222;
}

.km-ui .km-variation-radio input:checked{
  accent-color:#B62222;
}

.km-ui .variations tr{
  display:block;
  width:100%;
  margin:0 0 12px;
}

.km-ui .variations th.label,
.km-ui .variations td.value{
  display:block;
  width:100%;
  padding:0;
}

.km-ui .variations th.label{
  margin:0 0 6px;
  text-align:left;
}

.km-ui form.variations_form,
.km-ui .variations{
  background:transparent;
  border:0;
  box-shadow:none;
  padding:0;
}

.woocommerce div.product .summary form.variations_form,
.woocommerce div.product .summary .variations{
  background:transparent !important;
  border:0 !important;
  box-shadow:none !important;
  padding:0 !important;
}

.woocommerce div.product .summary .variations,
.woocommerce div.product .summary .variations tbody,
.woocommerce div.product .summary .variations tr,
.woocommerce div.product .summary .variations th,
.woocommerce div.product .summary .variations td{
  background:transparent !important;
  box-shadow:none !important;
}

@media (max-width: 640px){
  .km-ui .km-variation-radio{
    flex:1 1 calc(50% - 8px);
    justify-content:center;
    padding:10px 8px;
  }
}

@media (max-width:768px){
  .km-price-main{font-size:28px}
  .km-price-badge{padding:8px 12px}
  .km-actions{grid-template-columns:1fr}
}
