/*
 Theme Name:   Bricks Child Theme
 Theme URI:    https://bricksbuilder.io/
 Description:  Use this child theme to extend Bricks.
 Author:       Bricks
 Author URI:   https://bricksbuilder.io/
 Template:     bricks
 Version:      1.1
 Text Domain:  bricks
*/


/* =========================================================
    DNA Pharma – Form Styles
    Základní styl pro formulářové prvky (input, textarea, select)
    ========================================================= */
:root,
html {
  /*
	font-size: 16px !important;
  */
}

.form-md input,
.form-md textarea,
.form-md select {
  width: 100%;
  min-height: 48px;
  padding: 0 14px;
  background: var(--field--bg);
  color: var(--field--text);
  border: 1px solid var(--field--border);
  border-radius: 10px;
  transition: border-color .18s ease, box-shadow .18s ease, background-color .18s ease;
}

.form-md textarea {
  min-height: 120px;
  padding: 12px 14px;
  resize: vertical;
}

.form-md input::placeholder,
.form-md textarea::placeholder {
  color: var(--field--placeholder);
}

.form-md input:hover,
.form-md textarea:hover,
.form-md select:hover {
  border-color: var(--border--strong);
}

.form-md input:focus,
.form-md textarea:focus,
.form-md select:focus {
  outline: none;
  border-color: var(--field--border-focus);
  box-shadow: 0 0 0 4px rgba(43,200,198,0.28);
}

.form-md label {
  color: var(--field--label);
  font-weight: 600;
  font-size: 0.95rem;
}

/* submit */
.form-md button[type="submit"] {
  background: var(--form--submit-bg);
  color: var(--btn--primary-text);
  border: none;
  border-radius: 999px;
  min-height: 48px;
  padding: 0 24px;
  font-weight: 700;
  box-shadow: var(--btn--shadow);
  transition: .18s ease;
}

.form-md button[type="submit"]:hover {
  background: var(--form--submit-hover-bg);
  transform: translateY(-1px);
}

/* checkbox/radio */
.form-md input[type="checkbox"],
.form-md input[type="radio"] {
  accent-color: var(--control--checkbox);
}

/* disabled */
.form-md input:disabled,
.form-md textarea:disabled,
.form-md select:disabled {
  background: var(--bg--subtle);
  color: var(--text--muted);
  cursor: not-allowed;
}

/* error (pokud Bricks použije .error wrapper) */
.form-md .error input,
.form-md .error textarea,
.form-md .error select {
  border-color: var(--form--error-border);
  background: var(--form--error-bg);
}

.form-md .error {
  color: var(--form--error-text);
}

/* =========================================================
    DNA Pharma - Bricks Search Form
    Stejny vizual jako obecne formulare
    ========================================================= */

.bricks-search-form {
  width: 100%;
  margin: 0;
}

.bricks-search-form input[type="search"] {
  width: 100%;
  min-height: 48px;
  padding: 0 14px;
  background: var(--field--bg);
  color: var(--field--text);
  border: 1px solid var(--field--border);
  border-radius: 10px;
  box-sizing: border-box;
  appearance: none;
  -webkit-appearance: none;
  transition: border-color .18s ease, box-shadow .18s ease, background-color .18s ease;
}

.bricks-search-form input[type="search"]::placeholder {
  color: var(--field--placeholder);
}

.bricks-search-form input[type="search"]:hover {
  border-color: var(--border--strong);
}

.bricks-search-form input[type="search"]:focus {
  outline: none;
  border-color: var(--field--border-focus);
  box-shadow: 0 0 0 4px rgba(43,200,198,0.28);
}

.bricks-search-form input[type="search"]::-webkit-search-decoration,
.bricks-search-form input[type="search"]::-webkit-search-cancel-button,
.bricks-search-form input[type="search"]::-webkit-search-results-button,
.bricks-search-form input[type="search"]::-webkit-search-results-decoration {
  -webkit-appearance: none;
}


/* =========================================================
   DNA Pharma – Product Add to Cart
   Bricks element: .brxe-product-add-to-cart
   ========================================================= */

.brxe-product-add-to-cart form.cart,
.brxe-product-add-to-cart .cart {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px;
  justify-content: center;
}

/* ===== Quantity ===== */

.brxe-product-add-to-cart .quantity {
  /*width: 100%;*/
  position: relative;
  display: inline-flex;
  align-items: center;
  min-width: 140px;
  flex: 0 0 auto;
}

.brxe-product-add-to-cart .quantity .qty {
  width: 100%;
  min-height: 48px;
  padding: 0 44px;
  text-align: center;

  background: var(--field--bg);
  color: var(--field--text);
  border: 1px solid var(--field--border);
  border-radius: 999px;

  appearance: textfield;
  -moz-appearance: textfield;

  transition: border-color 180ms ease, box-shadow 180ms ease, background-color 180ms ease;
}

.brxe-product-add-to-cart .quantity .qty::-webkit-outer-spin-button,
.brxe-product-add-to-cart .quantity .qty::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

.brxe-product-add-to-cart .quantity .qty:hover {
  border-color: var(--border--strong);
}

.brxe-product-add-to-cart .quantity .qty:focus {
  outline: none;
  border-color: var(--field--border-focus);
  box-shadow: 0 0 0 4px rgba(43, 200, 198, 0.28);
}

/* plus / minus */
.brxe-product-add-to-cart .quantity .action {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);

  width: 34px;
  height: 34px;

  display: inline-flex;
  align-items: center;
  justify-content: center;

  color: var(--brand--primary);
  cursor: pointer;
  transition: color 180ms ease, transform 180ms ease;
  z-index: 2;
}

.brxe-product-add-to-cart .quantity .action.minus {
  left: 6px;
  border-radius: 999px;
}

.brxe-product-add-to-cart .quantity .action.plus {
  right: 6px;
  border-radius: 999px;
}

.brxe-product-add-to-cart .quantity .action:hover {
  color: var(--text--link-hover);
  transform: translateY(-50%) scale(1.08);
}

.brxe-product-add-to-cart .quantity .action svg {
  width: 18px;
  height: 18px;
}

/* ===== Add to cart button ===== */

.brxe-product-add-to-cart .add_to_cart_button,
.brxe-product-add-to-cart a.button.product_type_simple,
.brxe-product-add-to-cart .single_add_to_cart_button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 0 24px;

  background: var(--btn--primary-bg);
  color: var(--btn--primary-text);
  border: 1px solid transparent;
  border-radius: 999px;
  box-shadow: var(--btn--shadow);

  font-weight: 700;
  text-decoration: none;
  white-space: nowrap;

  transition: all 180ms ease;
}

.brxe-product-add-to-cart .add_to_cart_button:hover,
.brxe-product-add-to-cart a.button.product_type_simple:hover,
.brxe-product-add-to-cart .single_add_to_cart_button:hover {
  background: var(--btn--primary-hover-bg);
  color: var(--btn--primary-text);
  transform: translateY(-1px);
}

.brxe-product-add-to-cart .add_to_cart_button:focus-visible,
.brxe-product-add-to-cart a.button.product_type_simple:focus-visible,
.brxe-product-add-to-cart .single_add_to_cart_button:focus-visible {
  outline: none;
  box-shadow:
    var(--btn--shadow),
    0 0 0 4px rgba(43, 200, 198, 0.28);
}

/* loading / ajax state */
.brxe-product-add-to-cart .add_to_cart_button.loading,
.brxe-product-add-to-cart .single_add_to_cart_button.loading {
  opacity: 0.92;
  pointer-events: none;
}

/* added state */
.brxe-product-add-to-cart .add_to_cart_button.added,
.brxe-product-add-to-cart .single_add_to_cart_button.added,
.brxe-product-add-to-cart .bricks-cart-added {
  background: var(--badge--success-bg);
  color: var(--badge--success-text);
  border-color: transparent;
  box-shadow: none;
}

/* ===== View cart button ===== */

.brxe-product-add-to-cart .added_to_cart,
.brxe-product-add-to-cart a.added_to_cart.wc-forward {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 0 22px;

  background: var(--btn--secondary-bg);
  color: var(--btn--secondary-text);
  border: 1px solid var(--btn--secondary-border);
  border-radius: 999px;

  font-weight: 700;
  text-decoration: none;
  white-space: nowrap;

  transition: all 180ms ease;
}

.brxe-product-add-to-cart .added_to_cart:hover,
.brxe-product-add-to-cart a.added_to_cart.wc-forward:hover {
  background: var(--btn--secondary-hover-bg);
  color: var(--btn--secondary-text);
  transform: translateY(-1px);
}

.brxe-product-add-to-cart .added_to_cart:focus-visible,
.brxe-product-add-to-cart a.added_to_cart.wc-forward:focus-visible {
  outline: none;
  box-shadow: 0 0 0 4px rgba(43, 200, 198, 0.28);
}

/* ===== Disabled ===== */

.brxe-product-add-to-cart .button.disabled,
.brxe-product-add-to-cart .button:disabled,
.brxe-product-add-to-cart .single_add_to_cart_button:disabled {
  background: var(--btn--disabled-bg) !important;
  color: var(--btn--disabled-text) !important;
  border-color: transparent !important;
  box-shadow: none !important;
  cursor: not-allowed;
  pointer-events: none;
  transform: none !important;
}

/* ===== Layout variants ===== */

/* pokud je blok v úzkém sloupci */
@media (max-width: 767px) {
  .brxe-product-add-to-cart form.cart,
  .brxe-product-add-to-cart .cart {
    flex-direction: column;
    align-items: stretch;
  }

  .brxe-product-add-to-cart .quantity {
    width: 100%;
    min-width: 0;
  }

  .brxe-product-add-to-cart .add_to_cart_button,
  .brxe-product-add-to-cart .single_add_to_cart_button,
  .brxe-product-add-to-cart .added_to_cart {
    width: 100%;
  }
}

/* =========================================================
   DNA Pharma – WooCommerce Notices
   .woocommerce-error / .woocommerce-message / .woocommerce-info
   ========================================================= */

.woocommerce-notices-wrapper {
  display: grid;
  gap: 14px;
  margin-bottom: 22px;
}

/* společný základ */
.woocommerce-error,
.woocommerce-message,
.woocommerce-info {
  position: relative;
  margin: 0;
  padding: 16px 18px 16px 18px;
  list-style: none;
  border: 1px solid transparent;
  border-radius: 14px;
  box-shadow: var(--card--shadow);
  line-height: 1.55;
  overflow: hidden;
}

/* levý akcent */
.woocommerce-error::before,
.woocommerce-message::before,
.woocommerce-info::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 5px;
  border-radius: 14px 0 0 14px;
}

/* ===== ERROR ===== */

.woocommerce-error {
  background: var(--notice--error-bg);
  color: var(--notice--error-text);
  border-color: color-mix(in srgb, var(--notice--error-text) 18%, transparent);
}

.woocommerce-error::before {
  background: var(--notice--error-text);
}

.woocommerce-error li {
  margin: 0;
  padding: 0;
}

.woocommerce-error li + li {
  margin-top: 8px;
  padding-top: 8px;
  border-top: 1px solid color-mix(in srgb, var(--notice--error-text) 14%, transparent);
}

.woocommerce-error strong {
  color: var(--notice--error-text);
}

/* ===== SUCCESS ===== */

.woocommerce-message {
  background: var(--notice--success-bg);
  color: var(--notice--success-text);
  border-color: color-mix(in srgb, var(--notice--success-text) 18%, transparent);
}

.woocommerce-message::before {
  background: var(--notice--success-text);
}

/* ===== INFO ===== */

.woocommerce-info {
  background: var(--notice--info-bg);
  color: var(--notice--info-text);
  border-color: color-mix(in srgb, var(--notice--info-text) 18%, transparent);
}

.woocommerce-info::before {
  background: var(--notice--info-text);
}

/* ===== odkazy uvnitř hlášek ===== */

.woocommerce-error a:not(.button),
.woocommerce-message a:not(.button),
.woocommerce-info a:not(.button) {
  color: inherit;
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 2px;
  transition: opacity 180ms ease;
}

.woocommerce-error a:not(.button):hover,
.woocommerce-message a:not(.button):hover,
.woocommerce-info a:not(.button):hover {
  opacity: 0.82;
}

/* ===== tlačítka uvnitř notices ===== */

.woocommerce-error .button,
.woocommerce-message .button,
.woocommerce-info .button,
.woocommerce-error .wc-forward,
.woocommerce-message .wc-forward,
.woocommerce-info .wc-forward {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 38px;
  padding: 0 16px;
  margin-left: 10px;

  border-radius: 999px;
  border: 1px solid transparent;
  text-decoration: none;
  font-weight: 700;
  font-size: 0.92rem;

  transition: all 180ms ease;
  vertical-align: middle;
}

/* button v error */
.woocommerce-error .button,
.woocommerce-error .wc-forward {
  background: var(--notice--error-text);
  color: var(--color-white, #fff);
}

.woocommerce-error .button:hover,
.woocommerce-error .wc-forward:hover {
  opacity: 0.92;
  transform: translateY(-1px);
}

/* button v success */
.woocommerce-message .button,
.woocommerce-message .wc-forward {
  background: var(--notice--success-text);
  color: var(--color-white, #fff);
}

.woocommerce-message .button:hover,
.woocommerce-message .wc-forward:hover {
  opacity: 0.92;
  transform: translateY(-1px);
}

/* button v info */
.woocommerce-info .button,
.woocommerce-info .wc-forward {
  background: var(--notice--info-text);
  color: var(--color-white, #fff);
}

.woocommerce-info .button:hover,
.woocommerce-info .wc-forward:hover {
  opacity: 0.92;
  transform: translateY(-1px);
}

/* focus */
.woocommerce-error .button:focus-visible,
.woocommerce-message .button:focus-visible,
.woocommerce-info .button:focus-visible,
.woocommerce-error a:focus-visible,
.woocommerce-message a:focus-visible,
.woocommerce-info a:focus-visible {
  outline: none;
  box-shadow: 0 0 0 4px rgba(43, 200, 198, 0.28);
  border-radius: 999px;
}

/* ===== spacing pro inline message ===== */

.woocommerce-message,
.woocommerce-info {
  display: block;
}

.woocommerce-message .button,
.woocommerce-message .wc-forward,
.woocommerce-info .button,
.woocommerce-info .wc-forward {
  float: right;
  margin: 0 0 10px 14px;
}

/* reset float na menších displejích */
@media (max-width: 767px) {
  .woocommerce-error,
  .woocommerce-message,
  .woocommerce-info {
    padding: 14px 16px;
  }

  .woocommerce-message .button,
  .woocommerce-message .wc-forward,
  .woocommerce-info .button,
  .woocommerce-info .wc-forward,
  .woocommerce-error .button,
  .woocommerce-error .wc-forward {
    float: none;
    display: inline-flex;
    width: 100%;
    margin: 12px 0 0;
  }
}
