/* BitkiMO — Shared Web UI (BLOCK 3C, 13.09.2026). Module webui, handle bmo-webui.
   Presentation only. Palette: bg #F5F2ED · border #E4DFD5 · primary #2D6A4F ·
   accent #7FA35A · text #1A1A1A · error #A13B3B (already used by .bmo-sheet__link--logout).
   !important is used ONLY against foreign selectors (Woo / HivePress / theme /
   the inline <style> printed by BSX_Payline in wp_footer). */

/* ============================================================================
   3C-1 · CART (/sepet/). Block cart (.wp-block-woocommerce-cart / .wc-block-cart*)
   and classic cart (.woocommerce-cart-form / .cart_totals) are BOTH covered:
   S0-3 p.1 (live capture) is owner-side — prune the branch that does not match.
   ============================================================================ */

/* checkout button → .bsc-follow-btn look */
.wc-block-cart__submit-button,
.woocommerce-cart .checkout-button{
  display:inline-flex !important; align-items:center !important; justify-content:center !important;
  height:44px !important; min-height:44px !important; padding:0 22px !important;
  border:1px solid #2D6A4F !important; border-radius:12px !important;
  background:#2D6A4F !important; color:#fff !important;
  font-size:15px !important; font-weight:700 !important; line-height:1 !important;
  text-decoration:none !important; box-shadow:none !important;
}
.wc-block-cart__submit-button:hover,
.woocommerce-cart .checkout-button:hover{
  background:#7FA35A !important; border-color:#7FA35A !important; color:#fff !important;
}

/* items: white card instead of bare theme borders */
.wp-block-woocommerce-cart .wc-block-cart-items,
.woocommerce-cart .woocommerce-cart-form .shop_table{
  background:#fff; border:1px solid #E4DFD5 !important; border-radius:12px;
  padding:16px; box-sizing:border-box;
}
.wp-block-woocommerce-cart .wc-block-cart-items th,
.wp-block-woocommerce-cart .wc-block-cart-items td,
.woocommerce-cart .shop_table th,
.woocommerce-cart .shop_table td{ border-color:#E4DFD5 !important; }
.wp-block-woocommerce-cart .wc-block-cart-item__product .wc-block-components-product-name,
.woocommerce-cart .shop_table .product-name a{ color:#1A1A1A !important; font-weight:600; }

/* totals → same container */
.wp-block-woocommerce-cart .wc-block-cart__sidebar,
.wp-block-woocommerce-cart .wc-block-components-sidebar,
.woocommerce-cart .cart_totals{
  background:#fff; border:1px solid #E4DFD5 !important; border-radius:12px;
  padding:16px; box-sizing:border-box;
}
.wp-block-woocommerce-cart .wc-block-components-totals-item{ padding:8px 0; }
.wp-block-woocommerce-cart .wc-block-cart__totals-title{ color:#1A1A1A; font-weight:700; }

/* price */
.wp-block-woocommerce-cart .wc-block-formatted-money-amount,
.wp-block-woocommerce-cart .wc-block-components-product-price,
.wp-block-woocommerce-cart .wc-block-components-totals-item__value,
.woocommerce-cart .woocommerce-Price-amount{ color:#2D6A4F !important; font-weight:700 !important; }

/* ≤767: MOBILE EDGE-TO-EDGE geometry */
@media (max-width:767px){
  .wp-block-woocommerce-cart,
  .woocommerce-cart .woocommerce{ padding:0 16px; box-sizing:border-box; }
}

/* ============================================================================
   3C-2 · NOTICES — one look, three states, Woo + HivePress families.
   HOTFIX B-1 (13.09.2026): the bare .hp-form__messages node is printed
   UNCONDITIONALLY and EMPTY in every HivePress form (class-form.php:421/424)
   and hidden by the theme CSS (display:none); the --info/--warning/--error/
   --success modifiers are the ONLY show mechanism. Therefore this file never
   sets `display` on any .hp-form__messages selector and styles only the
   modifier states (and a non-empty node). Woo notices exist only when
   there is something to say, so display:block stays for them.
   ============================================================================ */
.woocommerce-message, .woocommerce-error, .woocommerce-info,
.wc-block-components-notice-banner{ display:block !important; }
.woocommerce-message, .woocommerce-error, .woocommerce-info,
.wc-block-components-notice-banner,
.hp-form__messages--info, .hp-form__messages--warning,
.hp-form__messages--error, .hp-form__messages--success,
.hp-form__messages:not(:empty){
  position:relative !important;
  margin:0 0 16px !important; padding:12px 16px !important;
  background:#F5F2ED !important; color:#1A1A1A !important;
  border:1px solid #E4DFD5 !important; border-left-width:4px !important; border-radius:12px !important;
  font-size:14px !important; line-height:1.45 !important; list-style:none !important;
  box-shadow:none !important;
}
.woocommerce-message::before, .woocommerce-error::before, .woocommerce-info::before,
.woocommerce-message::after, .woocommerce-error::after, .woocommerce-info::after,
.wc-block-components-notice-banner > svg,
.wc-block-components-notice-banner .wc-block-components-notice-banner__icon{ display:none !important; }
.woocommerce-error li, .woocommerce-message li, .woocommerce-info li{ list-style:none !important; margin:0 !important; padding:0 !important; }
.woocommerce-message a, .woocommerce-error a, .woocommerce-info a,
.wc-block-components-notice-banner a, .hp-form__messages--info a, .hp-form__messages--warning a,
.hp-form__messages--error a, .hp-form__messages--success a{ color:#2D6A4F; font-weight:600; }
.woocommerce-message .button, .woocommerce-error .button, .woocommerce-info .button{
  float:none !important; display:inline-block; margin:0 0 6px 0 !important;
}

/* state → left bar */
.woocommerce-message, .wc-block-components-notice-banner.is-success, .hp-form__messages--success{ border-left-color:#2D6A4F !important; }
.woocommerce-info,    .wc-block-components-notice-banner.is-info,    .hp-form__messages--info,
.wc-block-components-notice-banner.is-warning, .hp-form__messages--warning{ border-left-color:#7FA35A !important; }
.woocommerce-error,   .wc-block-components-notice-banner.is-error,   .hp-form__messages--error{ border-left-color:#A13B3B !important; }

/* ============================================================================
   3C-3 · 404 — LIVE ACCEPTANCE FIX 13.09.2026 (measured on /zzz-404-probe/).
   Live DOM: body.error404 > #content.site-content > .container > .row(flex)
     > main.col-sm-8.col-xs-12 { h2 "Nothing found", p }
     + aside.site-sidebar.col-sm-4.col-xs-12 { blog widgets: post search,
       recent entries, recent comments, archive, categories, meta }.
   The first build anchored on wrappers that do not exist here (.site-main,
   main > .container, .button) — that is why nothing changed on LIVE.
   Theme texts untouched; HTTP 404 untouched; no new product flow.
   ============================================================================ */
body.error404 aside.site-sidebar{ display:none !important; }   /* blog widgets are not a 404 flow */
body.error404 .site-content > .container{ max-width:680px; }
body.error404 main.col-sm-8{
  flex:0 0 100% !important; width:100% !important; max-width:100% !important;
  text-align:center; padding:56px 16px 64px;
}
body.error404 main.col-sm-8 h2{ color:#1A1A1A; font-size:28px; font-weight:800; line-height:1.25; margin:0 0 12px; }
body.error404 main.col-sm-8 p{ color:#505050; font-size:16px; line-height:1.5; margin:0 auto; max-width:460px; }

/* ============================================================================
   3C-4 · FOOTER — LIVE ACCEPTANCE FIX 13.09.2026. Measured: the nine links at
   15px need 1141px in one row; .footer-navbar is a nowrap flex row with the
   copyright (114px) on the left, so any width below ~1300px wraps and the
   second row hangs right-aligned. Fix: the footer becomes a centred stack —
   links (one or two centred rows) above, copyright below. No markup, no URL,
   no text changes. ≥768 only; the Customizer mobile block is untouched.
   ============================================================================ */
@media (min-width:768px){
  footer.site-footer .footer-navbar{ flex-wrap:wrap; flex-direction:column; align-items:center; justify-content:center; gap:10px; }
  footer.site-footer .footer-navbar__end{ flex:0 0 auto; width:100%; max-width:100%; }
  .footer-navbar__menu ul.menu{ display:flex; flex-wrap:wrap; justify-content:center;
    align-items:center; gap:8px 18px; }
  .footer-navbar__menu ul.menu li{ margin:0 !important; }
  .footer-navbar__menu ul.menu a{ font-size:14px; line-height:1.4; white-space:nowrap; }
  footer.site-footer .footer-navbar__start{ order:2; flex:0 0 auto; width:auto; }
  .footer-navbar__copyright{ white-space:nowrap; text-align:center; font-size:13px; color:#6b6b6b; }
}

/* ============================================================================
   3C-5 · PAYLINE LOGOS (AmEx). BSX_Payline prints its own <style> in wp_footer,
   i.e. AFTER this file → !important. object-fit:contain makes cropping
   structurally impossible whatever the real PNG size is; 220px ≈ 55px/brand.
   ============================================================================ */
.bmo-payline img{ object-fit:contain !important; }
.bmo-payline__cards{ width:220px !important; }
@media (max-width:480px){ .bmo-payline__cards{ width:180px !important; } }

/* ============================================================================
   3D-2 pair · after bmo-mobilenav.css reserves calc(72px + safe-area) on body,
   the 88px payline padding of 27.08 becomes a double reserve. REVERSIBLE:
   if on device the payline slides under the bottom bar, delete this one rule
   (the original 88px + inset padding from the inline <style> then applies).
   ============================================================================ */
@media (max-width:767px){ .bmo-payline{ padding-bottom:0 !important; } }
