/**
 * VIVERE 1.0.82 — product add-to-cart notice / classic & block checkout polish.
 * Presentation ONLY: no hidden payment fields, no iframe manipulation,
 * no changes to WooCommerce cart/checkout state or Stripe processing.
 * Only loaded on product and checkout pages after all existing VIVERE styles.
 */

/* 1. Product: WooCommerce success notification is a notice, not a modal.
 * Keep it inside the content grid; prevent the default black/high-contrast border,
 * floating View Cart action and off-centre icon from breaking the hero. */
body.single-product .woocommerce-notices-wrapper {
  width:100%; max-width:1440px; margin:22px auto 0;
  padding:0 48px; box-sizing:border-box;
}
body.single-product .woocommerce-notices-wrapper:empty {display:none;}
body.single-product .woocommerce-notices-wrapper .woocommerce-message,
body.single-product .woocommerce-notices-wrapper .woocommerce-info,
body.single-product .woocommerce-notices-wrapper .woocommerce-error {
  box-sizing:border-box; position:relative;
  background:#fffdf9 !important;
  border:1px solid rgba(176,141,87,.38) !important;
  border-left:3px solid #b08d57 !important;
  border-top:1px solid rgba(176,141,87,.38) !important;
  border-radius:13px !important;
  padding:20px 22px 20px 52px !important;
  margin:0 0 8px !important;
  min-height:72px;
  color:#3a0915 !important;
  box-shadow:0 12px 32px rgba(58,9,21,.045) !important;
  font:400 14px/1.65 Inter,ui-sans-serif,system-ui,sans-serif;
  overflow:visible;
}
body.single-product .woocommerce-notices-wrapper .woocommerce-message {
  display:flex; flex-wrap:wrap; align-items:center;
  gap:12px 17px;
}
body.single-product .woocommerce-notices-wrapper :is(.woocommerce-message,.woocommerce-info,.woocommerce-error)::before {
  position:absolute!important;
  top:50%!important;left:19px!important;
  transform:translateY(-50%)!important;
  padding:0!important;margin:0!important;
  display:grid!important;place-items:center;
  width:19px!important;height:19px!important;
  font-size:17px!important;line-height:1!important;
  color:#8b673a!important;
}
body.single-product .woocommerce-notices-wrapper .woocommerce-error::before {color:#a13b38!important;}
body.single-product .woocommerce-notices-wrapper .woocommerce-message .button,
body.single-product .woocommerce-notices-wrapper .woocommerce-message .button.wc-forward {
  float:none!important;order:2;
  flex:0 0 auto!important;display:inline-flex!important;
  align-items:center!important;justify-content:center!important;
  min-width:128px!important;min-height:42px!important;height:auto!important;
  margin:0 0 0 auto!important;padding:11px 21px!important;
  border-radius:999px!important;
  border:1px solid #4a0f1e!important;
  background:#4a0f1e!important;color:#fffdf9!important;
  box-shadow:none!important;transform:none!important;
  font-size:11px!important;font-weight:750!important;
  letter-spacing:.065em!important;line-height:1.35!important;text-align:center!important;
  text-decoration:none!important;
  text-transform:uppercase!important;
}
body.single-product .woocommerce-notices-wrapper .woocommerce-message .button:hover {
  background:#b08d57!important;border-color:#b08d57!important;color:#3a0915!important;
}
body.single-product .woocommerce-notices-wrapper .woocommerce-message .button:focus-visible {
  outline:2px solid #b08d57!important;outline-offset:3px!important;
}
body.single-product .woocommerce-notices-wrapper :is(.woocommerce-error,.woocommerce-info) a {
  color:#4a0f1e;text-decoration:underline;text-underline-offset:3px;
}

/* 2. Checkout payment section: existing theme remains responsible for layout. */
body.woocommerce-checkout .vivere-checkout-page #payment {
  box-sizing:border-box;min-width:0;
  background:#f8f4ef!important;
  border:1px solid rgba(176,141,87,.30)!important;
  border-radius:12px!important;
  padding:16px!important;
  box-shadow:none!important;
}
body.woocommerce-checkout .vivere-checkout-page #payment ul.payment_methods {
  list-style:none!important;
  padding:0 0 15px!important;margin:0!important;
  border-color:rgba(176,141,87,.24)!important;
}
body.woocommerce-checkout .vivere-checkout-page #payment ul.payment_methods > li {
  margin:0!important;padding:0!important;
  background:transparent!important;
  min-width:0;
}
body.woocommerce-checkout .vivere-checkout-page #payment ul.payment_methods > li + li {
  border-top:1px solid rgba(176,141,87,.22);
  margin-top:14px!important;padding-top:14px!important;
}
body.woocommerce-checkout .vivere-checkout-page #payment ul.payment_methods > li > label {
  color:#3a0915!important;font-size:13px;font-weight:700;
  line-height:1.5;letter-spacing:0;
}
body.woocommerce-checkout .vivere-checkout-page #payment .payment_box,
body.woocommerce-checkout .vivere-checkout-page #payment div.payment_box {
  box-sizing:border-box;width:100%!important;min-width:0;
  border:1px solid rgba(176,141,87,.23)!important;
  border-radius:9px!important;
  padding:16px 14px!important;margin:13px 0 0!important;
  background:#fffdf9!important;color:#3a0915!important;
  box-shadow:none!important;
}
body.woocommerce-checkout .vivere-checkout-page #payment div.payment_box::before {
  border-bottom-color:#fffdf9!important;
}
body.woocommerce-checkout .vivere-checkout-page #payment .payment_box > :first-child {margin-top:0;}
body.woocommerce-checkout .vivere-checkout-page #payment .payment_box > :last-child {margin-bottom:0;}

/* Stripe containers stay fluid. Never force iframe height or hide overflow:
 * Stripe controls its own secure field dimensions and accessibility. */
body.woocommerce-checkout .vivere-checkout-page #payment :is(
  .wc-stripe-upe-element,
  .wc-stripe-upe-form,
  .wc-stripe-elements-field,
  .wc-stripe_cc-container,
  #wc-stripe-card-element,
  #wc-stripe-upe-form,
  .StripeElement
) {
  box-sizing:border-box;display:block;
  width:100%!important;max-width:100%!important;min-width:0!important;
  margin-inline:0!important;
}
body.woocommerce-checkout .vivere-checkout-page #payment :is(
  .wc-stripe-upe-element,
  .wc-stripe-upe-form,
  .wc-stripe-elements-field,
  #wc-stripe-card-element,
  .StripeElement
) {
  border-radius:9px;
  border-color:rgba(176,141,87,.26);
  background:#fff!important;
}
body.woocommerce-checkout .vivere-checkout-page #payment .wc-stripe-upe-element iframe,
body.woocommerce-checkout .vivere-checkout-page #payment .StripeElement iframe {
  max-width:100%!important;
}
body.woocommerce-checkout .vivere-checkout-page #payment :is(.wc-stripe-upe-element,.wc-stripe-upe-form) > label {
  color:#3a0915;
}
body.woocommerce-checkout .vivere-checkout-page #payment .payment_box label,
body.woocommerce-checkout .vivere-checkout-page #payment .woocommerce-privacy-policy-text {
  color:#604e4d;
}

/* 3. Accessible native controls: remove browser / Woo blue for checked states.
 * Don't replace checkboxes with fake controls or detach their labels. */
body.woocommerce-checkout :is(
  input[type="checkbox"],input[type="radio"],
  .woocommerce-form__input-checkbox,
  #terms,
  .wc-block-components-checkbox__input,
  .wc-block-components-radio-control__input
) {
  accent-color:#4a0f1e!important;
  color-scheme:light;
}
body.woocommerce-checkout .vivere-checkout-page .woocommerce-terms-and-conditions-wrapper input[type="checkbox"],
body.woocommerce-checkout .vivere-checkout-page #payment input[type="radio"],
body.woocommerce-checkout .vivere-checkout-page #payment input[type="checkbox"] {
  inline-size:17px;block-size:17px;
  min-width:17px;min-height:17px;
  vertical-align:middle;
  margin:1px 7px 0 0;
  accent-color:#4a0f1e!important;
}
body.woocommerce-checkout .wc-block-components-checkbox .wc-block-components-checkbox__input:checked,
body.woocommerce-checkout .wc-block-components-radio-control__input:checked {
  background-color:#4a0f1e!important;
  border-color:#4a0f1e!important;
}
body.woocommerce-checkout .wc-block-components-checkbox .wc-block-components-checkbox__input:checked + svg,
body.woocommerce-checkout .wc-block-components-checkbox .wc-block-components-checkbox__input:checked ~ svg {
  color:#fffdf9!important;
}
body.woocommerce-checkout .vivere-checkout-page .woocommerce-terms-and-conditions-wrapper label,
body.woocommerce-checkout .vivere-checkout-page #payment .form-row label.checkbox {
  color:#4a0f1e!important;line-height:1.65;
}
body.woocommerce-checkout .vivere-checkout-page #payment :is(input[type="checkbox"],input[type="radio"]):focus-visible,
body.woocommerce-checkout .vivere-checkout-page input#terms:focus-visible {
  outline:2px solid #b08d57!important;outline-offset:3px!important;
}
body.woocommerce-checkout .vivere-checkout-page #payment .place-order #place_order {
  background:#4a0f1e!important;border-color:#4a0f1e!important;
  color:#fffdf9!important;
}
body.woocommerce-checkout .vivere-checkout-page #payment .place-order #place_order:hover {
  background:#b08d57!important;border-color:#b08d57!important;color:#3a0915!important;
}
@media (max-width:767px) {
  body.single-product .woocommerce-notices-wrapper {margin-top:14px;padding:0 20px;}
  body.single-product .woocommerce-notices-wrapper .woocommerce-message,
  body.single-product .woocommerce-notices-wrapper .woocommerce-info,
  body.single-product .woocommerce-notices-wrapper .woocommerce-error {
    padding:15px 15px 15px 45px!important;
    font-size:13px;
    gap:10px;
  }
  body.single-product .woocommerce-notices-wrapper .woocommerce-message::before {left:15px!important;}
  body.single-product .woocommerce-notices-wrapper .woocommerce-message .button {
    margin:8px 0 0!important;width:100%!important;max-width:100%!important;min-width:0!important;box-sizing:border-box!important;flex:0 1 100%!important;min-height:42px!important;
  }
  body.woocommerce-checkout .vivere-checkout-page #payment {padding:12px!important;}
  body.woocommerce-checkout .vivere-checkout-page #payment div.payment_box {padding:12px 10px!important;}
}

/* Align terms consent's native checkbox with the first line, even for long
   British-English legal copy; do not intercept the input change event. */
body.woocommerce-checkout .vivere-checkout-page #payment .woocommerce-terms-and-conditions-wrapper label.woocommerce-form__label-for-checkbox,
body.woocommerce-checkout .vivere-checkout-page #payment .woocommerce-terms-and-conditions-wrapper label.checkbox {
  display:flex!important;align-items:flex-start!important;flex-wrap:wrap;
  gap:0 5px;margin:0;
}
body.woocommerce-checkout .vivere-checkout-page #payment .woocommerce-terms-and-conditions-wrapper label.checkbox input[type="checkbox"],
body.woocommerce-checkout .vivere-checkout-page #payment .woocommerce-terms-and-conditions-wrapper label.woocommerce-form__label-for-checkbox input[type="checkbox"] {
  margin:2px 7px 0 0!important;flex:0 0 17px;
}
body.woocommerce-checkout .vivere-checkout-page #payment .woocommerce-terms-and-conditions-wrapper label.checkbox > span,
body.woocommerce-checkout .vivere-checkout-page #payment .woocommerce-terms-and-conditions-wrapper label.woocommerce-form__label-for-checkbox > span {
  flex:1 1 150px;min-width:0;
}

/* Success notice should not be followed by the ordinary 96px hero top gap. */
@supports selector(body:has(.woocommerce-message)) {
  body.single-product:has(.woocommerce-notices-wrapper .woocommerce-message) .vivere-pdp-hero {
    padding-top:clamp(30px,3.5vw,54px);
  }
}
