/* ============================================================
   beahava-dark.css · child theme beahava 2.2.0
   Dark surfaces for everything Elementor does not control:
   WooCommerce (shop, product, cart, checkout, my-account),
   LearnDash (profile, course, lesson), meditations-management
   (booking calendar, OTP login, my-bookings), forms and tables.
   Tokens only (tokens.css loads first). Logical properties.
   ============================================================ */

/* ---------- 0. page base ---------- */
body,
.elementor-kit-container,
.woocommerce-page,
.learndash-wrapper,
.single-meditation,
.post-type-archive-meditation {
  background: var(--color-surface);
  color: var(--color-ink);
}
.site-main, .page-content, .entry-content { color: var(--color-ink); }
::selection { background: var(--color-brand-tint); color: var(--color-ink); }
hr { border: 0; border-block-start: 1px solid var(--color-line); }

/* ---------- 1. editor classes (DESIGN.md §9) ---------- */
.bh-eyebrow { display: inline-flex; align-items: center; gap: .875rem; font-size: var(--text-xs); font-weight: var(--weight-medium); letter-spacing: var(--tracking-eyebrow); color: var(--color-brand); }
.bh-eyebrow::before { content: ""; inline-size: 36px; block-size: 1px; background: var(--color-brand); }
.bh-sill { border-block-start: 2px solid var(--color-brand); background: var(--color-surface-subtle); }
.bh-list { list-style: none; padding: 0; margin: 0; }
.bh-list > li { display: flex; gap: .75rem; align-items: baseline; }
.bh-list > li::before { content: "◆"; color: var(--color-brand); font-size: .75em; }
.bh-card--door { border: 1px solid var(--color-line); background: transparent; }
.bh-card--door:hover { border-color: var(--color-brand); }
.bh-card--event { border-block-start: 2px solid var(--color-brand); background: var(--color-surface-subtle); }
.bh-photo img { border-radius: 0; }
.icon-directional { transform: scaleX(var(--dir, -1)); }
[dir="ltr"] { --dir: 1; } [dir="rtl"] { --dir: -1; }

/* ---------- 2. buttons: one shape everywhere ---------- */
.bh-btn,
.elementor-button,
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button,
.woocommerce #respond input#submit, .woocommerce .checkout-button,
.woocommerce button.button.alt, .woocommerce a.button.alt,
.learndash-wrapper .ld-button, .learndash-wrapper .btn-join, #btn-join,
.one-timeLogin button, .one-timeLogin input[type="submit"],
.wp-block-button__link {
  display: inline-flex; align-items: center; justify-content: center; gap: .5rem;
  min-block-size: 48px; padding-block: 0; padding-inline: var(--space-6);
  border: 1px solid transparent; border-radius: var(--radius-sm);
  background: var(--color-brand); color: var(--color-on-brand);
  font-family: var(--font-body); font-weight: var(--weight-medium); font-size: var(--text-base); line-height: 1;
  text-decoration: none; cursor: pointer; box-shadow: none;
  transition: background-color var(--duration-fast) var(--ease-standard);
}
.woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce input.button:hover,
.woocommerce button.button.alt:hover, .elementor-button:hover, .bh-btn:hover,
.learndash-wrapper .ld-button:hover, .learndash-wrapper .btn-join:hover {
  background: var(--color-brand-hover); color: var(--color-on-brand);
}
.bh-btn--ghost, .elementor-button.bh-btn--ghost, .woocommerce a.button.bh-btn--ghost {
  background: transparent; color: var(--color-ink); border-color: var(--color-secondary);
}
.bh-btn--ghost:hover { border-color: var(--color-brand); background: var(--color-brand-tint); }
.woocommerce a.button.disabled, .woocommerce button.button:disabled, .woocommerce button.button:disabled[disabled] {
  background: var(--color-disabled-bg); color: var(--color-disabled-ink); border-color: transparent;
}
.woocommerce .button.loading::after { color: var(--color-on-brand); }

/* ---------- 3. fields ---------- */
.bh-field input, .bh-field textarea, .bh-field select,
.woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea, .woocommerce form .form-row select,
.woocommerce-input-wrapper .input-text, .select2-container--default .select2-selection--single,
.one-timeLogin input, .learndash-wrapper input[type="text"], .learndash-wrapper input[type="email"], .learndash-wrapper input[type="password"],
.elementor-field-group .elementor-field, .wpcf7 input:not([type="submit"]), .wpcf7 textarea,
input[type="text"], input[type="email"], input[type="tel"], input[type="password"], input[type="number"], input[type="search"], textarea, select {
  min-block-size: 48px; padding-block: .5rem; padding-inline: var(--space-4);
  background: var(--color-surface-subtle); color: var(--color-ink);
  border: 1px solid var(--color-line-strong); border-radius: var(--radius-sm);
  font-family: var(--font-body); font-size: max(1rem, var(--text-base)); box-shadow: none;
}
textarea { min-block-size: 8rem; }
input::placeholder, textarea::placeholder { color: var(--color-ink-faint); opacity: 1; }
input:focus-visible, textarea:focus-visible, select:focus-visible, .select2-container--default.select2-container--focus .select2-selection--single {
  outline: 2px solid var(--color-focus); outline-offset: 2px; border-color: var(--color-line-strong);
}
.select2-container--default .select2-selection--single .select2-selection__rendered { color: var(--color-ink); line-height: 46px; }
.select2-dropdown { background: var(--color-surface-raised); border-color: var(--color-line-strong); color: var(--color-ink); }
.select2-container--default .select2-results__option--highlighted[aria-selected] { background: var(--color-brand-tint); color: var(--color-ink); }
.woocommerce form .form-row label, .bh-field label, .learndash-wrapper label { color: var(--color-ink); font-size: var(--text-sm); font-weight: var(--weight-medium); }
.woocommerce form .form-row .required { color: var(--color-brand-deep); }
.woocommerce form .form-row.woocommerce-invalid .select2-container, .woocommerce form .form-row.woocommerce-invalid input.input-text { border-color: var(--color-error); }
.woocommerce form .form-row.woocommerce-validated input.input-text { border-color: var(--color-line-strong); }
input[type="checkbox"], input[type="radio"] { accent-color: var(--color-brand); }
.otp-error, .woocommerce-error, .elementor-message-danger { color: var(--color-error); }

/* ---------- 4. WooCommerce notices, tables, prices ---------- */
.woocommerce-message, .woocommerce-info, .woocommerce-error, .woocommerce-notice {
  background: var(--color-surface-subtle); color: var(--color-ink); border-block-start: 2px solid var(--color-brand);
  border-radius: 0; padding-inline-start: var(--space-5);
}
.woocommerce-message::before, .woocommerce-info::before { color: var(--color-brand-deep); }
.woocommerce-error { border-block-start-color: var(--color-error); }
.woocommerce-error::before { color: var(--color-error); }
.woocommerce table.shop_table, .woocommerce-bookings-table, .woocommerce-orders-table {
  border: 1px solid var(--color-line); border-collapse: collapse; border-radius: 0; background: transparent;
}
.woocommerce table.shop_table th, .woocommerce table.shop_table td { border-color: var(--color-line); color: var(--color-ink); padding: var(--space-3) var(--space-4); }
.woocommerce table.shop_table th { color: var(--color-ink-muted); font-weight: var(--weight-medium); font-size: var(--text-sm); }
.woocommerce table.shop_table tbody tr:nth-child(2n) td, .woocommerce-cart table.cart td, .woocommerce-checkout #payment { background: transparent; }
.woocommerce .price, .woocommerce .amount, .woocommerce ul.products li.product .price, .woocommerce div.product p.price { color: var(--color-brand-deep); font-weight: var(--weight-medium); }
.woocommerce .price del { color: var(--color-ink-faint); }
.woocommerce-Price-amount bdi { unicode-bidi: isolate; }

/* shop grid and product */
.woocommerce ul.products li.product { background: transparent; border: 1px solid var(--color-line); padding: var(--space-4); border-radius: 0; }
.woocommerce ul.products li.product:hover { border-color: var(--color-brand); }
.woocommerce ul.products li.product .woocommerce-loop-product__title, .woocommerce div.product .product_title { color: var(--color-ink); font-family: var(--font-display); font-weight: var(--weight-display); }
.woocommerce ul.products li.product img, .woocommerce div.product div.images img { border-radius: 0; }
.woocommerce div.product .woocommerce-tabs ul.tabs li { background: transparent; border: 1px solid var(--color-line); border-radius: 0; }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active { background: var(--color-surface-subtle); border-block-end-color: var(--color-brand); }
.woocommerce div.product .woocommerce-tabs ul.tabs li a { color: var(--color-ink-muted); }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a { color: var(--color-ink); }
.woocommerce div.product .woocommerce-tabs ul.tabs::before, .woocommerce div.product .woocommerce-tabs ul.tabs li::before, .woocommerce div.product .woocommerce-tabs ul.tabs li::after { display: none; }
.woocommerce span.onsale { background: var(--color-brand); color: var(--color-on-brand); border-radius: 0; min-block-size: auto; line-height: 1.2; padding: .25rem .5rem; }

/* cart and checkout */
.woocommerce-checkout #payment, .woocommerce-checkout #payment div.payment_box { background: var(--color-surface-subtle); color: var(--color-ink); border-radius: 0; }
.woocommerce-checkout #payment div.payment_box::before { border-color: transparent transparent var(--color-surface-subtle); }
.woocommerce-checkout #payment ul.payment_methods { border-block-end: 1px solid var(--color-line); }
.woocommerce-checkout #payment ul.payment_methods li { border-block-end: 1px solid var(--color-line); }
.woocommerce-checkout .woocommerce-checkout-review-order-table { background: var(--color-surface-subtle); }
.woocommerce .cart-collaterals .cart_totals, .woocommerce-page .cart-collaterals .cart_totals { background: var(--color-surface-subtle); padding: var(--space-5); }
.woocommerce .cart-collaterals .cart_totals table.shop_table { border: 0; }
.woocommerce-cart .coupon .input-text { min-inline-size: 12rem; }
.woocommerce #payment #place_order, .woocommerce-page #payment #place_order { inline-size: 100%; min-block-size: 56px; font-size: var(--text-lg); }
.woocommerce-privacy-policy-text, .woocommerce-terms-and-conditions-wrapper { color: var(--color-ink-muted); font-size: var(--text-sm); }
.woocommerce-checkout h3, .woocommerce-cart h2, .woocommerce-order-received h2 { font-family: var(--font-display); font-weight: var(--weight-display); color: var(--color-ink); }
.woocommerce-order-received .woocommerce-thankyou-order-received { font-size: var(--text-2xl); font-weight: var(--weight-display); color: var(--color-ink); }
.woocommerce ul.order_details { border-block-start: 2px solid var(--color-brand); padding-block-start: var(--space-4); }
.woocommerce ul.order_details li { border-color: var(--color-line); color: var(--color-ink-muted); }
.woocommerce ul.order_details li strong { color: var(--color-ink); }

/* ---------- 5. my-account ---------- */
.woocommerce-account .woocommerce { display: grid; gap: var(--space-6); }
@media (min-width: 768px) { .woocommerce-account .woocommerce { grid-template-columns: 16rem minmax(0, 1fr); align-items: start; } }
.woocommerce-account .woocommerce-MyAccount-navigation { float: none; inline-size: auto; }
.woocommerce-account .woocommerce-MyAccount-content { float: none; inline-size: auto; }
.woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 0; border: 1px solid var(--color-line); }
.woocommerce-MyAccount-navigation li { border-block-end: 1px solid var(--color-line); }
.woocommerce-MyAccount-navigation li:last-child { border-block-end: 0; }
.woocommerce-MyAccount-navigation a { display: flex; align-items: center; min-block-size: 52px; padding-inline: var(--space-4); color: var(--color-ink-muted); text-decoration: none; }
.woocommerce-MyAccount-navigation li.is-active a { color: var(--color-ink); background: var(--color-surface-subtle); box-shadow: inset 2px 0 0 var(--color-brand); }
[dir="rtl"] .woocommerce-MyAccount-navigation li.is-active a { box-shadow: inset -2px 0 0 var(--color-brand); }
.woocommerce-MyAccount-navigation a:hover { color: var(--color-ink); }
.woocommerce-MyAccount-navigation-link--customer-logout a { color: var(--color-ink-faint); }
@media (max-width: 767.98px) {
  .woocommerce-MyAccount-navigation ul { display: flex; overflow-x: auto; border: 0; border-block-end: 1px solid var(--color-line); scrollbar-width: none; }
  .woocommerce-MyAccount-navigation li { border: 0; flex: none; }
  .woocommerce-MyAccount-navigation li.is-active a { box-shadow: inset 0 -2px 0 var(--color-brand); background: transparent; }
}
.woocommerce-MyAccount-content > p:first-child { color: var(--color-ink-muted); }
.woocommerce-MyAccount-content .woocommerce-Button { margin-block-start: var(--space-4); }
.woocommerce-account .addresses .title h3, .woocommerce-account fieldset legend { color: var(--color-ink); font-family: var(--font-display); font-weight: var(--weight-display); }
.woocommerce-account .woocommerce-Address { border: 1px solid var(--color-line); padding: var(--space-4); }
.woocommerce-account .woocommerce-Address address { color: var(--color-ink-muted); }

/* my-bookings (meditations-management) */
.account-bookings-table .booking-type-badge { display: inline-block; padding: .15rem .5rem; border: 1px solid var(--color-line-strong); color: var(--color-ink-muted); font-size: var(--text-2xs); letter-spacing: .06em; }
.account-bookings-table .booking-status { font-weight: var(--weight-medium); }
.account-bookings-table .status-completed, .account-bookings-table .status-processing { color: var(--color-success); }
.account-bookings-table .status-cancelled, .account-bookings-table .cancelled-label { color: var(--color-ink-faint); }
.account-bookings-table .soon-notice { color: var(--color-brand-deep); }
.account-bookings-table .cancel-deadline, .account-bookings-table .no-cancel-notice, .account-bookings-table .past-notice { color: var(--color-ink-muted); font-size: var(--text-sm); }
.account-bookings-table .cancel-btn { background: transparent; color: var(--color-ink); border-color: var(--color-secondary); min-block-size: 40px; padding-inline: var(--space-4); }
.account-bookings-table .cancel-btn:hover { border-color: var(--color-error); color: var(--color-error); background: transparent; }
.bookings-notice { background: var(--color-surface-subtle); border-inline-start: 2px solid var(--color-brand); padding: var(--space-4); }
.account-bookings-table .booking-upcoming td:first-child { box-shadow: inset 2px 0 0 var(--color-brand); }

/* OTP login */
.one-timeLogin { background: var(--color-surface-subtle); border: 1px solid var(--color-line); padding: var(--space-6); max-inline-size: 28rem; margin-inline: auto; }
.one-timeLogin .input-fields { display: flex; flex-direction: column; gap: var(--space-3); }
.one-timeLogin input[type="text"], .one-timeLogin input[type="tel"], .one-timeLogin input[type="email"] { direction: ltr; text-align: start; letter-spacing: .08em; }
.one-timeLogin h2, .one-timeLogin h3 { color: var(--color-ink); }
.one-timeLogin p { color: var(--color-ink-muted); }

/* ---------- 6. LearnDash ---------- */
.learndash-wrapper { --ld-color-primary: var(--color-brand); --ld-color-secondary: var(--color-secondary); --ld-color-tertiary: var(--color-success); }
.learndash-wrapper .ld-profile-summary, .learndash-wrapper .ld-item-list .ld-item-list-item, .learndash-wrapper .ld-course-status,
.learndash-wrapper .ld-table-list, .learndash-wrapper .ld-expand-button, .learndash-wrapper .ld-focus-sidebar, .learndash-wrapper .ld-focus-header,
.learndash-wrapper .ld-course-navigation .ld-lesson-item, .learndash-wrapper .ld-tabs .ld-tabs-content {
  background: var(--color-surface-subtle); color: var(--color-ink); border-color: var(--color-line); border-radius: 0; box-shadow: none;
}
.learndash-wrapper .ld-profile-heading, .learndash-wrapper .ld-section-heading h2, .learndash-wrapper .ld-item-title, .learndash-wrapper .ld-item-name, .learndash-wrapper .ld-lesson-item-preview-heading, .learndash-wrapper h1, .learndash-wrapper h2, .learndash-wrapper h3 { color: var(--color-ink); font-family: var(--font-display); font-weight: var(--weight-display); }
.learndash-wrapper .ld-profile-stats .ld-profile-stat { border-color: var(--color-line); }
.learndash-wrapper .ld-profile-stats .ld-profile-stat strong { color: var(--color-brand-deep); }
.learndash-wrapper .ld-profile-stats .ld-profile-stat span { color: var(--color-ink-muted); }
.learndash-wrapper .ld-profile-avatar img { border-radius: 0; border: 1px solid var(--color-line-strong); }
.learndash-wrapper .ld-profile-edit-link { color: var(--color-brand-deep); }
.learndash-wrapper .ld-item-list .ld-item-list-item:hover { border-color: var(--color-brand); }
.learndash-wrapper .ld-item-list .ld-item-list-item .ld-item-name { color: var(--color-ink); }
.learndash-wrapper .ld-item-list .ld-item-list-item .ld-item-details .ld-status { border-radius: 0; }
.learndash-wrapper .ld-status-complete { background: var(--color-brand-tint); color: var(--color-success); }
.learndash-wrapper .ld-status-progress { background: var(--color-brand-tint); color: var(--color-brand-deep); }
.learndash-wrapper .ld-progress .ld-progress-bar { background: var(--color-line); border-radius: 0; }
.learndash-wrapper .ld-progress .ld-progress-bar .ld-progress-bar-percentage { background: var(--color-brand); border-radius: 0; }
.learndash-wrapper .ld-progress .ld-progress-heading .ld-progress-steps, .learndash-wrapper .ld-progress .ld-progress-heading .ld-progress-label { color: var(--color-ink-muted); }
.learndash-wrapper .ld-expand-button { color: var(--color-ink); border: 1px solid var(--color-line-strong); }
.learndash-wrapper .ld-expand-button:hover { border-color: var(--color-brand); }
.learndash-wrapper .ld-icon { color: var(--color-brand-deep); }
.learndash-wrapper .ld-item-list .ld-item-search .ld-item-search-fields input { background: var(--color-surface); }
.learndash-wrapper .ld-focus .ld-focus-sidebar .ld-course-navigation .ld-lesson-item.ld-is-current-lesson .ld-lesson-item-preview-heading { color: var(--color-brand-deep); }
.learndash-wrapper .ld-breadcrumbs { background: transparent; color: var(--color-ink-muted); border-radius: 0; }
.learndash-wrapper .ld-breadcrumbs a { color: var(--color-brand-deep); }
.learndash-wrapper .ld-alert { background: var(--color-surface-subtle); color: var(--color-ink); border-color: var(--color-brand); border-radius: 0; }
.learndash-wrapper .ld-video { border: 1px solid var(--color-line); }
.learndash-wrapper .ld-content-actions { border-color: var(--color-line); }
.learndash-wrapper .ld-login-modal .ld-login-modal-form { background: var(--color-surface-subtle); }

/* ---------- 7. meditations archive and single ---------- */
.meditation-subscribe-btn { background: var(--color-brand); color: var(--color-on-brand); border-radius: 0; }
.single-meditation .entry-content, .single-meditation .meditation-sidebar { color: var(--color-ink); }
.single-meditation .meditation-sidebar { background: var(--color-surface-subtle); border: 1px solid var(--color-line); padding: var(--space-5); }
.single-meditation .meditation-sidebar h3 { color: var(--color-ink); font-weight: var(--weight-display); }
.single-meditation .meditation-sidebar a { color: var(--color-brand-deep); }

/* ---------- 8. misc Elementor defaults that leak ---------- */
.elementor-widget-container, .elementor-widget-text-editor { color: inherit; }
.elementor-icon-list-icon i, .elementor-icon-list-icon svg { color: var(--color-brand); fill: var(--color-brand); }
.elementor-accordion .elementor-tab-title, .elementor-toggle .elementor-tab-title { color: var(--color-ink); border-color: var(--color-line); }
.elementor-accordion .elementor-tab-content { color: var(--color-ink-muted); border-color: var(--color-line); }
.elementor-pagination .page-numbers, .woocommerce nav.woocommerce-pagination ul li a, .woocommerce nav.woocommerce-pagination ul li span { color: var(--color-ink-muted); border-color: var(--color-line); border-radius: 0; }
.woocommerce nav.woocommerce-pagination ul li span.current { background: var(--color-brand-tint); color: var(--color-ink); }
.woocommerce nav.woocommerce-pagination ul { border-color: var(--color-line); }

/* reduced motion */
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; } }

/* ---------- 9. Elementor Pro checkout and cart widgets (3.1.4) ----------
   The widgets read CSS variables with light defaults (#fff sections, grey text).
   Setting the variables on the widget turns every section dark without touching
   the template settings. html body raises specificity above Elementor's per-widget CSS. */
html body .elementor-widget-woocommerce-checkout-page.elementor-element,
html body .elementor-widget-woocommerce-cart.elementor-element {
  --sections-background-color: var(--color-surface-subtle);
  --sections-border-color: var(--color-line);
  --sections-border-type: solid;
  --sections-border-radius: 0;
  --sections-title-color: var(--color-ink);
  --sections-secondary-title-color: var(--color-ink);
  --sections-descriptions-color: var(--color-ink-muted);
  --sections-messages-color: var(--color-ink);
  --sections-checkboxes-color: var(--color-ink);
  --sections-radio-buttons-color: var(--color-ink);
  --forms-labels-color: var(--color-ink);
  --forms-fields-normal-color: var(--color-ink);
  --forms-fields-focus-color: var(--color-ink);
  --forms-fields-border-radius: 0;
  --forms-buttons-normal-text-color: var(--color-on-brand);
  --forms-buttons-hover-text-color: var(--color-on-brand);
  --forms-buttons-border-radius: 0;
  --order-summary-items-color: var(--color-ink);
  --order-summary-items-divider-color: var(--color-line);
  --order-summary-items-divider-weight: 1px;
  --order-summary-totals-color: var(--color-ink);
  --order-summary-totals-divider-color: var(--color-line);
  --order-summary-totals-divider-weight: 1px;
  --order-summary-variations-color: var(--color-ink-muted);
  --links-normal-color: var(--color-brand-deep);
  --links-hover-color: var(--color-ink);
  --purchase-button-normal-text-color: var(--color-on-brand);
  --purchase-button-normal-background-color: var(--color-brand);
  --purchase-button-hover-text-color: var(--color-on-brand);
  --purchase-button-hover-background-color: var(--color-brand-deep);
  --purchase-button-border-radius: 0;
  --checkout-button-background-color: var(--color-brand);
  --checkout-button-text-color: var(--color-on-brand);
  --checkout-button-hover-background-color: var(--color-brand-deep);
  --checkout-button-hover-text-color: var(--color-on-brand);
  --cart-buttons-border-radius: 0;
  --totals-background-color: var(--color-surface-subtle);
  color: var(--color-ink);
}
html body .elementor-widget-woocommerce-checkout-page .e-checkout__container > * > *,
html body .elementor-widget-woocommerce-checkout-page .e-checkout__order_review,
html body .elementor-widget-woocommerce-checkout-page .e-coupon-box,
html body .elementor-widget-woocommerce-checkout-page .e-woocommerce-login-anchor,
html body .elementor-widget-woocommerce-checkout-page .woocommerce-billing-fields,
html body .elementor-widget-woocommerce-checkout-page .woocommerce-additional-fields,
html body .elementor-widget-woocommerce-cart .e-cart-section { box-shadow: none; }
html body .elementor-widget-woocommerce-checkout-page h3,
html body .elementor-widget-woocommerce-checkout-page .e-checkout-secondary-title,
html body .elementor-widget-woocommerce-cart h2 { font-family: var(--font-display); font-weight: var(--weight-display); color: var(--color-ink); }
html body .elementor-widget-woocommerce-checkout-page :is(input.input-text, textarea, select, .select2-selection),
html body .elementor-widget-woocommerce-cart :is(input.input-text, input.qty, textarea, select) {
  background: var(--color-surface) !important; color: var(--color-ink) !important;
  border: 1px solid var(--color-line-strong) !important; border-radius: 0 !important; min-block-size: 48px; box-shadow: none !important;
}
html body .elementor-widget-woocommerce-checkout-page :is(input.input-text, textarea):focus,
html body .elementor-widget-woocommerce-cart :is(input.input-text, input.qty):focus { border-color: var(--color-brand) !important; outline: 2px solid var(--color-brand); outline-offset: 1px; }
html body .elementor-widget-woocommerce-checkout-page ::placeholder { color: var(--color-ink-muted); opacity: 1; }
html body .elementor-widget-woocommerce-checkout-page .select2-selection__rendered { color: var(--color-ink) !important; line-height: 46px !important; }
html body .select2-dropdown { background: var(--color-surface-raised); border-color: var(--color-line-strong); color: var(--color-ink); }
html body .select2-container--default .select2-results__option--highlighted[aria-selected] { background: var(--color-brand); color: var(--color-on-brand); }
html body .elementor-widget-woocommerce-checkout-page .woocommerce-checkout-review-order-table :is(th, td) { color: var(--color-ink); border-color: var(--color-line); }
html body .elementor-widget-woocommerce-checkout-page .woocommerce-checkout-review-order-table .amount,
html body .elementor-widget-woocommerce-checkout-page .order-total .amount { color: var(--color-brand-deep); }
/* payment box */
html body .woocommerce-checkout #payment,
html body .elementor-widget-woocommerce-checkout-page #payment { background: var(--color-surface) !important; border: 1px solid var(--color-line); border-radius: 0; color: var(--color-ink); }
html body .woocommerce-checkout #payment ul.payment_methods { border-color: var(--color-line); }
html body .woocommerce-checkout #payment div.payment_box { background: var(--color-surface-raised) !important; color: var(--color-ink); border-radius: 0; }
html body .woocommerce-checkout #payment div.payment_box::before { border-bottom-color: var(--color-surface-raised) !important; }
html body .woocommerce-checkout #payment label { color: var(--color-ink); }
html body .woocommerce-checkout .woocommerce-privacy-policy-text, html body .woocommerce-checkout .woocommerce-terms-and-conditions-wrapper { color: var(--color-ink-muted); font-size: var(--text-sm); }
html body .woocommerce-checkout .woocommerce-privacy-policy-text a, html body .woocommerce-checkout .woocommerce-terms-and-conditions-wrapper a { color: var(--color-brand-deep); }
html body .woocommerce-checkout #place_order,
html body .elementor-widget-woocommerce-checkout-page #place_order { background: var(--color-brand) !important; color: var(--color-on-brand) !important; border: 1px solid var(--color-brand) !important; border-radius: 0 !important; min-block-size: 56px; font-weight: var(--weight-medium); font-size: var(--text-lg, 1.125rem); }
html body .woocommerce-checkout #place_order:hover { background: var(--color-brand-deep) !important; }
/* notices on cart and checkout */
html body :is(.woocommerce-checkout, .woocommerce-cart) :is(.woocommerce-info, .woocommerce-message, .woocommerce-error) { background: var(--color-brand-tint); color: var(--color-ink); border: 0; border-inline-start: 2px solid var(--color-brand); border-radius: 0; }
html body :is(.woocommerce-checkout, .woocommerce-cart) .woocommerce-error { border-inline-start-color: #C2665A; }
html body :is(.woocommerce-checkout, .woocommerce-cart) :is(.woocommerce-info, .woocommerce-message)::before { color: var(--color-brand); }
/* booking details shown under the item (from meditations-management) */
html body .woocommerce-checkout-review-order-table dl.variation, html body .woocommerce-cart-form dl.variation { color: var(--color-ink-muted); font-size: var(--text-sm); }
html body .woocommerce-checkout-review-order-table dl.variation dt { font-weight: var(--weight-medium); color: var(--color-ink); }
/* thank-you page */
html body .woocommerce-order { color: var(--color-ink); }
html body .woocommerce-order .woocommerce-thankyou-order-received { font-size: var(--text-xl); color: var(--color-ink); }
html body .woocommerce-order ul.order_details { border: 1px solid var(--color-line); background: var(--color-surface-subtle); padding: var(--space-5); }
html body .woocommerce-order ul.order_details li { border-color: var(--color-line); color: var(--color-ink-muted); }
html body .woocommerce-order ul.order_details li strong { color: var(--color-ink); }
html body .woocommerce-order .woocommerce-table--order-details :is(th, td) { border-color: var(--color-line); color: var(--color-ink); }
/* product page: add to cart */
html body .elementor-widget-woocommerce-product-add-to-cart .single_add_to_cart_button { background: var(--color-brand) !important; color: var(--color-on-brand) !important; border-radius: 0 !important; min-block-size: 56px; padding-inline: 40px; font-weight: var(--weight-medium); }
html body .elementor-widget-woocommerce-product-add-to-cart .single_add_to_cart_button:hover { background: var(--color-brand-deep) !important; }
html body .elementor-widget-woocommerce-product-add-to-cart form.cart { display: flex; flex-direction: column; align-items: stretch; gap: var(--space-4, 1rem); }
html body .elementor-widget-woocommerce-product-add-to-cart .price { color: var(--color-brand-deep); }

html body .elementor-widget-woocommerce-checkout-page .select2-container { inline-size: 100% !important; }
/* empty cart (the cart is skipped while it has items) */
html body .woocommerce-cart .cart-empty { background: var(--color-surface-subtle); color: var(--color-ink); border: 0; border-block-start: 2px solid var(--color-brand); border-radius: 0; padding: var(--space-6, 2rem) var(--space-5); font-size: var(--text-lg); text-align: center; }
html body .woocommerce-cart .cart-empty::before { display: none; }
html body .woocommerce-cart .return-to-shop { text-align: center; margin-block-start: var(--space-5); }
html body .woocommerce-cart .return-to-shop .button { background: var(--color-brand) !important; color: var(--color-on-brand) !important; border-radius: 0 !important; min-block-size: 52px; padding: 14px 36px; font-weight: var(--weight-medium); }
/* 3.1.5 */
html body .elementor-widget-woocommerce-checkout-page .woocommerce-input-wrapper > select { inline-size: 100%; }
/* product without its own image: hide the WooCommerce placeholder instead of a white box */
html body .elementor-widget-woocommerce-product-images:has(.woocommerce-product-gallery__image--placeholder) { display: none; }

/* ---------- 10. My account (3.2.0) ----------
   Desktop: menu as a sidebar on the start side, content in a card.
   Tablet and mobile: the menu becomes one row of chips that scrolls sideways
   (no long stacked list), and the dashboard shows tiles for every section. */
html body .elementor-widget-woocommerce-my-account.elementor-element { align-self: stretch; inline-size: 100%; max-inline-size: 100%; }
html body .elementor-widget-woocommerce-my-account .woocommerce {
  display: grid !important; grid-template-columns: 260px minmax(0, 1fr); gap: 40px; align-items: start;
}
html body .elementor-widget-woocommerce-my-account .e-wc-account-tabs-nav { grid-column: 1; grid-row: 1; position: sticky; inset-block-start: 120px; inline-size: auto !important; margin: 0 !important; }
html body .elementor-widget-woocommerce-my-account .woocommerce > nav.woocommerce-MyAccount-navigation { display: none !important; }
html body .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content { grid-column: 2; grid-row: 1; inline-size: auto !important; float: none !important; margin: 0 !important; }
html body .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation { inline-size: auto !important; float: none !important; }
html body .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul {
  display: flex !important; flex-direction: column; gap: 0; margin: 0 !important; padding: 8px 0 !important; list-style: none;
  background: var(--color-surface-subtle); border: 1px solid var(--color-line); border-block-start: 2px solid var(--color-brand);
}
html body .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation li { margin: 0 !important; padding: 0 !important; border: 0 !important; background: none !important; inline-size: auto !important; flex: none !important; }
html body .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation li a {
  display: flex !important; align-items: center; gap: 12px; min-block-size: 48px; padding: 10px 20px !important;
  background: transparent !important; color: var(--color-ink-muted) !important; border: 0 !important; border-inline-start: 2px solid transparent !important; border-radius: 0 !important;
  font-family: var(--font-body); font-weight: var(--weight-body, 300); font-size: var(--text-base); text-align: start !important; text-decoration: none; white-space: nowrap; box-shadow: none !important;
}
html body .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation li a::before {
  content: ""; inline-size: 20px; block-size: 20px; flex: none; background: currentColor;
  -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat; -webkit-mask-size: contain; mask-size: contain; -webkit-mask-position: center; mask-position: center;
}
html body .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation li a:hover { color: var(--color-ink) !important; background: var(--color-surface-raised) !important; }
html body .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation li.is-active a {
  color: var(--color-ink) !important; background: var(--color-brand-tint) !important; border-inline-start-color: var(--color-brand) !important; font-weight: var(--weight-medium);
}
html body .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation li.is-active a::before { background: var(--color-brand); }
html body .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation-link--customer-logout { margin-block-start: 8px !important; padding-block-start: 8px !important; border-block-start: 1px solid var(--color-line) !important; }
html body .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation-link--customer-logout a { color: var(--color-ink-muted) !important; font-size: var(--text-sm) !important; }

/* content card */
html body .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content-wrapper,
html body .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content > :not(.woocommerce-MyAccount-content-wrapper):first-child {
  background: var(--color-surface-subtle) !important; border: 1px solid var(--color-line) !important; border-radius: 0 !important; box-shadow: none !important;
  padding: clamp(20px, 3vw, 36px) !important; color: var(--color-ink);
}
html body .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content :is(p, li, td, th, label, legend, span) { color: inherit; }
html body .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content a:not(.button):not(.bh-acc-tile) { color: var(--color-brand-deep); }
html body .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content :is(h2, h3, legend) { color: var(--color-ink); font-weight: var(--weight-display); }
html body .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content .button,
html body .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content button[type="submit"] {
  background: var(--color-brand) !important; color: var(--color-on-brand) !important; border: 1px solid var(--color-brand) !important; border-radius: 0 !important; min-block-size: 44px; font-weight: var(--weight-medium);
}
html body .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content :is(input.input-text, input[type="email"], input[type="password"], input[type="text"], input[type="tel"], select, textarea) {
  background: var(--color-surface) !important; color: var(--color-ink) !important; border: 1px solid var(--color-line-strong) !important; border-radius: 0 !important; min-block-size: 48px;
}
html body .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content table { border-color: var(--color-line) !important; border-radius: 0; }
html body .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content table :is(th, td) { border-color: var(--color-line) !important; background: transparent !important; }

/* dashboard: greeting + tiles (the default help paragraph is replaced by the tiles) */
html body .elementor-widget-woocommerce-my-account .e-my-account-tab__dashboard .woocommerce-MyAccount-content-wrapper > p:first-of-type { font-size: var(--text-lg); margin: 0 0 4px; }
html body .elementor-widget-woocommerce-my-account .e-my-account-tab__dashboard .woocommerce-MyAccount-content-wrapper > p:nth-of-type(2) { display: none; }
.bh-acc-tiles { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 16px; margin-block-start: 24px; }
.bh-acc-tile {
  display: flex; flex-direction: column; gap: 8px; min-block-size: 132px; padding: 20px;
  background: var(--color-surface); border: 1px solid var(--color-line); border-block-start: 2px solid var(--color-brand);
  color: var(--color-ink) !important; text-decoration: none !important; transition: background-color .2s ease, border-color .2s ease;
}
.bh-acc-tile:hover, .bh-acc-tile:focus-visible { background: var(--color-surface-raised); border-color: var(--color-line-strong); }
.bh-acc-tile .bh-acc-ico { color: var(--color-brand); inline-size: 26px; block-size: 26px; }
.bh-acc-tile__title { font-size: var(--text-lg); font-weight: var(--weight-medium); color: var(--color-ink); }
.bh-acc-tile__text { font-size: var(--text-sm); line-height: 1.5; color: var(--color-ink-muted); }

/* tablet and mobile */
@media (max-width: 1024px) {
  html body .elementor-widget-woocommerce-my-account .woocommerce { grid-template-columns: minmax(0, 1fr); gap: 20px; }
  html body .elementor-widget-woocommerce-my-account .e-wc-account-tabs-nav { grid-column: 1; grid-row: 1; position: sticky; inset-block-start: 94px; z-index: 5; margin: 0 !important; padding: 10px 0; background: var(--color-surface); border-block-end: 1px solid var(--color-line); }
  html body .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content { grid-column: 1; grid-row: 2; }
  html body .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul {
    flex-direction: row; gap: 8px; padding: 0 !important; background: none; border: 0;
    overflow-x: auto; scroll-snap-type: x proximity; scrollbar-width: none; -webkit-overflow-scrolling: touch;
    -webkit-mask-image: linear-gradient(to left, #000 85%, transparent); mask-image: linear-gradient(to left, #000 85%, transparent);
  }
  html[dir="rtl"] body .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul { -webkit-mask-image: linear-gradient(to right, #000 85%, transparent); mask-image: linear-gradient(to right, #000 85%, transparent); }
  html body .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul::-webkit-scrollbar { display: none; }
  html body .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation li { scroll-snap-align: start; }
  html body .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation li a {
    min-block-size: 40px; padding: 8px 14px !important; gap: 8px; font-size: var(--text-sm) !important;
    border: 1px solid var(--color-line-strong) !important; background: transparent !important;
  }
  html body .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation li a::before { inline-size: 16px; block-size: 16px; }
  html body .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation li.is-active a { border-color: var(--color-brand) !important; }
  html body .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation-link--customer-logout { margin: 0 !important; padding: 0 !important; border: 0 !important; }
  /* on the dashboard the tiles do the navigating, so the chip row is hidden there */
  html body .elementor-widget-woocommerce-my-account .e-my-account-tab__dashboard .e-wc-account-tabs-nav { display: none; }
  .bh-acc-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  .bh-acc-tile { min-block-size: 112px; padding: 16px 14px; }
  .bh-acc-tile__text { display: none; }
}
@media (max-width: 360px) { .bh-acc-tiles { grid-template-columns: 1fr; } }
.bh-acc-logout { margin: 20px 0 0; font-size: var(--text-sm); }
.bh-acc-logout a { color: var(--color-ink-muted) !important; text-decoration: underline; text-underline-offset: 3px; }
