/*
 * WDS site brand layer (dev.307)
 *
 * Applies the Welldone Society palette to the surrounding site and WooCommerce (background, links,
 * notices, WooCommerce buttons and fields). Kept for visual continuity with earlier releases; it can
 * be switched off with: add_filter( 'wdsbm_enable_site_brand_layer', '__return_false' );
 *
 * dev.307 corrections:
 * - Every generic control rule now excludes WDS components (`.wdsbm-ui`), which are styled by their own
 *   scoped sheets. Previously this layer's (0,3,2) `!important` button rule overrode the Staff Panel
 *   and booking UI, which is why those screens fell back to inline JavaScript colour painting.
 * - Layout-forcing declarations (width/margin/white-space/min-height) are no longer applied to every
 *   submit button on the site — only to WooCommerce and WDS buttons — so third-party forms keep their layout.
 * - Colours come from the shared --wdsbm-* tokens (assets/css/wdsbm-tokens.css).
 */

body:not(.wp-admin) { background: var(--wdsbm-surface-alt) !important; color: var(--wdsbm-text); }
body:not(.wp-admin) :is(h1, h2, h3, h4, h5, h6) { color: var(--wdsbm-ink); }
body:not(.wp-admin) a { color: var(--wdsbm-ink); text-underline-offset: 3px; }
body:not(.wp-admin) a:hover { color: var(--wdsbm-ink-hover); }
::selection { background: var(--wdsbm-ink); color: var(--wdsbm-on-ink); }

/* Theme / block buttons: brand colours only (no layout changes). */
body:not(.wp-admin) :is(.wp-element-button, .wp-block-button__link, input[type="submit"], input[type="button"], button[type="submit"]):not(.wdsbm-ui *) {
  border: 1px solid var(--wdsbm-ink) !important;
  border-radius: var(--wdsbm-radius-sm) !important;
  background: var(--wdsbm-ink) !important;
  color: var(--wdsbm-on-ink) !important;
  -webkit-text-fill-color: currentColor !important;
  box-shadow: none !important;
  text-decoration: none !important;
}
body:not(.wp-admin) :is(.wp-element-button, .wp-block-button__link, input[type="submit"], input[type="button"], button[type="submit"]):not(.wdsbm-ui *):hover {
  border-color: var(--wdsbm-ink-hover) !important;
  background: var(--wdsbm-ink-hover) !important;
  color: var(--wdsbm-on-ink) !important;
}
body:not(.wp-admin) :is(.is-style-outline > .wp-element-button, .wdsbm-button--secondary):not(.wdsbm-ui *) {
  border-color: var(--wdsbm-border-strong) !important;
  background: var(--wdsbm-surface) !important;
  color: var(--wdsbm-ink) !important;
}
body:not(.wp-admin) :is(.is-style-outline > .wp-element-button, .wdsbm-button--secondary):not(.wdsbm-ui *):hover {
  border-color: var(--wdsbm-ink) !important;
  background: var(--wdsbm-surface-alt) !important;
  color: var(--wdsbm-ink) !important;
}

/* WooCommerce + WDS buttons: full WDS button system. */
body:not(.wp-admin) :is(.wdsbm-button, .woocommerce a.button, .woocommerce button.button, .woocommerce input.button, .wc-block-components-button):not(.wdsbm-ui *) {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 6px;
  min-height: var(--wdsbm-control-h) !important;
  height: auto !important;
  padding: 0 var(--wdsbm-control-px) !important;
  border: 1px solid var(--wdsbm-ink) !important;
  border-radius: var(--wdsbm-radius-sm) !important;
  background: var(--wdsbm-ink) !important;
  color: var(--wdsbm-on-ink) !important;
  -webkit-text-fill-color: currentColor !important;
  box-shadow: none !important;
  font-size: var(--wdsbm-fs-sm) !important;
  font-weight: var(--wdsbm-fw-semibold) !important;
  line-height: 1.15 !important;
  text-align: center !important;
  text-decoration: none !important;
  box-sizing: border-box !important;
  cursor: pointer;
  transition: background-color var(--wdsbm-duration) var(--wdsbm-ease), border-color var(--wdsbm-duration) var(--wdsbm-ease);
}
body:not(.wp-admin) :is(.wdsbm-button, .woocommerce a.button, .woocommerce button.button, .woocommerce input.button, .wc-block-components-button):not(.wdsbm-ui *):hover {
  border-color: var(--wdsbm-ink-hover) !important;
  background: var(--wdsbm-ink-hover) !important;
  color: var(--wdsbm-on-ink) !important;
}
body:not(.wp-admin) :is(.wdsbm-button, .wp-element-button, .wp-block-button__link, .woocommerce .button, .wc-block-components-button, input[type="submit"], button[type="submit"]):not(.wdsbm-ui *):focus-visible {
  outline: 2px solid var(--wdsbm-focus-color) !important;
  outline-offset: 3px !important;
}
body:not(.wp-admin) :is(.wdsbm-button, .woocommerce .button, .wc-block-components-button):not(.wdsbm-ui *):is(:disabled, [disabled], .disabled) {
  opacity: .5 !important;
  cursor: not-allowed !important;
}
body:not(.wp-admin) .wdsbm-button--danger:not(.wdsbm-ui *) { border-color: var(--wdsbm-danger-line) !important; background: var(--wdsbm-surface) !important; color: var(--wdsbm-danger) !important; }
body:not(.wp-admin) .wdsbm-button--danger:not(.wdsbm-ui *):hover { border-color: var(--wdsbm-danger) !important; background: var(--wdsbm-danger-soft) !important; color: var(--wdsbm-danger) !important; }
body:not(.wp-admin) .wdsbm-button--small:not(.wdsbm-ui *) { min-height: var(--wdsbm-control-h-sm) !important; padding: 0 12px !important; font-size: var(--wdsbm-fs-xs) !important; }

/* Fields */
body:not(.wp-admin) :is(input[type="text"], input[type="email"], input[type="tel"], input[type="number"], input[type="password"], input[type="date"], input[type="time"], input[type="search"], select, textarea):not(.wdsbm-ui *) {
  border: 1px solid var(--wdsbm-border-strong) !important;
  border-radius: var(--wdsbm-radius-sm) !important;
  background: var(--wdsbm-surface) !important;
  color: var(--wdsbm-text) !important;
  box-shadow: none !important;
}
body:not(.wp-admin) :is(input, select, textarea):not(.wdsbm-ui *):focus {
  border-color: var(--wdsbm-ink) !important;
  outline: 2px solid rgba(17, 17, 17, .14) !important;
  outline-offset: 0 !important;
}

/* WooCommerce notices — neutral WDS styling (never default WooCommerce blue). */
body:not(.wp-admin) :is(.woocommerce-info, .woocommerce-message, .woocommerce-error, .woocommerce-notice, .wc-block-components-notice-banner) {
  position: relative !important;
  border: 1px solid var(--wdsbm-border) !important;
  border-radius: var(--wdsbm-radius) !important;
  background: var(--wdsbm-surface) !important;
  color: var(--wdsbm-text) !important;
  box-shadow: none !important;
}
body:not(.wp-admin) :is(.woocommerce-info, .woocommerce-message, .woocommerce-error, .woocommerce-notice)::before {
  content: "i" !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  position: static !important;
  width: 24px !important; height: 24px !important; min-width: 24px !important;
  margin: 0 10px 0 0 !important;
  border: 1px solid var(--wdsbm-border-strong) !important;
  border-radius: 50% !important;
  background: var(--wdsbm-surface-sunken) !important;
  color: var(--wdsbm-ink) !important;
  font-family: Arial, sans-serif !important;
  font-size: 13px !important;
  font-style: normal !important;
  font-weight: 700 !important;
  line-height: 1 !important;
  box-shadow: none !important;
}
body:not(.wp-admin) :is(.woocommerce-info, .woocommerce-message, .woocommerce-error, .woocommerce-notice)::after { display: none !important; content: none !important; }
body:not(.wp-admin) .woocommerce-message { border-color: var(--wdsbm-success-line) !important; background: var(--wdsbm-success-soft) !important; }
body:not(.wp-admin) .woocommerce-message::before { content: "✓" !important; color: var(--wdsbm-success) !important; border-color: var(--wdsbm-success-line) !important; background: var(--wdsbm-surface) !important; }
body:not(.wp-admin) .woocommerce-error { border-color: var(--wdsbm-danger-line) !important; background: var(--wdsbm-danger-soft) !important; }
body:not(.wp-admin) .woocommerce-error::before { content: "!" !important; color: var(--wdsbm-danger) !important; border-color: var(--wdsbm-danger-line) !important; background: var(--wdsbm-surface) !important; }
body:not(.wp-admin) :is(.woocommerce-info, .woocommerce-message, .woocommerce-error) .button { margin-left: auto !important; }

body:not(.wp-admin) table { border-color: var(--wdsbm-border); }
body:not(.wp-admin) table th { background: var(--wdsbm-surface-alt); color: var(--wdsbm-ink); }
body:not(.wp-admin) :is(.price, .woocommerce-Price-amount) { color: var(--wdsbm-ink) !important; }
body:not(.wp-admin) :is(header, footer) { color: var(--wdsbm-text); }
body:not(.wp-admin) :is(header, footer) a { color: var(--wdsbm-ink); }

/* dev127 — suppress only the duplicate theme logo in the lower/footer region (Site Title text is kept). */
body:not(.wp-admin) :is(
  footer .wp-block-site-logo, footer .custom-logo-link,
  .site-footer .wp-block-site-logo, .site-footer .custom-logo-link,
  .wp-block-template-part[data-area="footer"] .wp-block-site-logo, .wp-block-template-part[data-area="footer"] .custom-logo-link,
  .wp-site-blocks > .wp-block-template-part:last-child .wp-block-site-logo, .wp-site-blocks > .wp-block-template-part:last-child .custom-logo-link,
  .wp-site-blocks > .wp-block-group:last-child .wp-block-site-logo, .wp-site-blocks > .wp-block-group:last-child .custom-logo-link
) { display: none !important; }

/* dev.317 — compact page entry spacing across the WDS site.
 * Scope to page content roots so headers, sticky navigation, modals,
 * WooCommerce controls, and intentional spacing within sections remain intact.
 * WordPress themes differ: selectors below cover Kadence and common block themes.
 */
body:not(.wp-admin):is(.page, .woocommerce-page) :is(#primary.content-area, .content-area) {
  margin-top: 12px !important;
}
body:not(.wp-admin).page :is(.entry-content, .wp-block-post-content) > :first-child {
  margin-top: 0 !important;
}
body:not(.wp-admin).page :is(.entry-content, .wp-block-post-content) > :last-child {
  margin-bottom: 0 !important;
}
/* Block themes may insert a layout gap directly between header and main. */
body:not(.wp-admin).page .wp-site-blocks > main,
body:not(.wp-admin).page .wp-site-blocks > .wp-block-group:has(> main) {
  margin-block-start: 12px;
}
@media (max-width: 767px) {
  body:not(.wp-admin):is(.page, .woocommerce-page) :is(#primary.content-area, .content-area) {
    margin-top: 8px !important;
  }
  body:not(.wp-admin).page .wp-site-blocks > main,
  body:not(.wp-admin).page .wp-site-blocks > .wp-block-group:has(> main) {
    margin-block-start: 8px;
  }
}

/* dev.318 — Kadence content spacing correction.
 * The old dev.317 selector only adjusted .content-area margins, while Kadence
 * adds spacing on #inner-wrap / .content-container / .entry-content-wrap.
 * Apply only to standard site pages; do not affect the header, Woo modals,
 * individual components, archives, single products or wp-admin screens.
 */
body:not(.wp-admin).page #inner-wrap {
  padding-top: 0 !important;
}
body:not(.wp-admin).page #inner-wrap > .content-container,
body:not(.wp-admin).page #inner-wrap > .site-container,
body:not(.wp-admin).page #inner-wrap > .content-bg,
body:not(.wp-admin).page #inner-wrap .content-container:has(> #primary) {
  padding-top: 0 !important;
  margin-top: 0 !important;
}
body:not(.wp-admin).page #inner-wrap #primary,
body:not(.wp-admin).page #inner-wrap #primary > main,
body:not(.wp-admin).page #inner-wrap .site-main {
  margin-top: 0 !important;
  padding-top: 0 !important;
}
body:not(.wp-admin).page #inner-wrap .content-bg > .entry-content-wrap,
body:not(.wp-admin).page #inner-wrap article.page > .entry-content-wrap,
body:not(.wp-admin).page #inner-wrap article.page > .entry-content,
body:not(.wp-admin).page #inner-wrap article.page .entry-content-wrap {
  padding-top: 10px !important;
  margin-top: 0 !important;
}
body:not(.wp-admin).page #inner-wrap article.page .entry-content > :first-child {
  margin-top: 0 !important;
}
@media (max-width: 767px) {
  body:not(.wp-admin).page #inner-wrap .content-bg > .entry-content-wrap,
  body:not(.wp-admin).page #inner-wrap article.page > .entry-content-wrap,
  body:not(.wp-admin).page #inner-wrap article.page > .entry-content,
  body:not(.wp-admin).page #inner-wrap article.page .entry-content-wrap {
    padding-top: 6px !important;
  }
}


/* dev.319: Kadence page-shell spacing; preserve internal block layout. */
body:not(.wp-admin).page #inner-wrap > .content-container,
body:not(.wp-admin).page #inner-wrap .content-container,
body:not(.wp-admin).page #inner-wrap .content-area,
body:not(.wp-admin).page #inner-wrap .site-main,
body:not(.wp-admin).page #inner-wrap article.page {
  padding-block-start: 0 !important;
  margin-block-start: 0 !important;
}
body:not(.wp-admin).page #inner-wrap article.page > .entry-content-wrap {
  padding-block-start: 0 !important;
  margin-block-start: 0 !important;
}
/* The calendar is a complete page surface; remove its surrounding white mat. */
body:not(.wp-admin).page #inner-wrap article.page:has(.wdsbm-site-calendar) {
  background: transparent !important;
  box-shadow: none !important;
}
body:not(.wp-admin).page #inner-wrap article.page:has(.wdsbm-site-calendar) > .entry-content-wrap,
body:not(.wp-admin).page #inner-wrap article.page:has(.wdsbm-site-calendar) .entry-content {
  padding-block: 0 !important;
  margin-block: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}
body:not(.wp-admin).page #inner-wrap article.page:has(.wdsbm-site-calendar) .entry-content > .wdsbm-site-calendar {
  margin-block: 0 !important;
}
@media (max-width: 767px) {
  body:not(.wp-admin).page #inner-wrap article.page > .entry-content-wrap {
    padding-block-start: 0 !important;
  }
}


/* dev.355: remove only the site-shell gap between Kadence navigation and
   main content, not internal hero, booking, card or form spacing. */
body:not(.wp-admin) #inner-wrap { margin-block-start:0!important;padding-block-start:0!important; }
body:not(.wp-admin) #inner-wrap > .content-container,
body:not(.wp-admin) #inner-wrap > .site-container,
body:not(.wp-admin) #inner-wrap > .content-bg,
body:not(.wp-admin) #inner-wrap > main,
body:not(.wp-admin) #inner-wrap > #primary,
body:not(.wp-admin) #inner-wrap .content-container:has(> #primary),
body:not(.wp-admin) #inner-wrap #primary,
body:not(.wp-admin) #inner-wrap #primary > main,
body:not(.wp-admin) #inner-wrap .site-main {margin-block-start:0!important;padding-block-start:0!important;}
body:not(.wp-admin) #inner-wrap article.page > .entry-content-wrap,
body:not(.wp-admin) #inner-wrap article.page > .entry-content,
body:not(.wp-admin) #inner-wrap article.page .entry-content-wrap {margin-block-start:0!important;padding-block-start:0!important;}
body:not(.wp-admin) #inner-wrap article.page .entry-content > :first-child {margin-block-start:0!important;}
body:not(.wp-admin) .wp-site-blocks > main,
body:not(.wp-admin) .wp-site-blocks > .wp-block-group:has(> main) {margin-block-start:0!important;}
/* Kadence layout containers sometimes retain page-only margin overrides. */
body:not(.wp-admin):is(.page,.woocommerce-page,.home,.post-type-archive-product) :is(#primary.content-area,.content-area){margin-block-start:0!important;}
/* Generated header sections have been hidden separately; do not retain
   empty space in a vacated Kadence entry hero wrapper. */
body:not(.wp-admin).page .entry-hero.page-hero-section:empty,
body:not(.wp-admin).woocommerce-shop .entry-hero.page-hero-section:empty{display:none!important;}
