/* =====================================================================
   RWA Design System — Theme overrides v2 (CSS-only)
   Repaints the active wpbingo "homeunik" theme + Elementor + Slider Rev
   without touching any page content. Targets canonical class names
   identified via DOM inspection: .bwp-*, .wpbingo-*, .elementor-*, .header-phone.

   Strategy:
     - tokens come from colors_and_type.css (loaded first)
     - this file is loaded with priority 999 AFTER theme styles
     - aggressive `!important` only where the theme uses inline or
       high-specificity rules; light selectors elsewhere.
   ===================================================================== */

/* -----------------------------------------------------------------
   0. Elementor + theme variable repoint
   ----------------------------------------------------------------- */
:root, html, body {
  /* Elementor globals */
  --e-global-color-primary:   var(--navy-500) !important;
  --e-global-color-secondary: var(--navy-700) !important;
  --e-global-color-text:      var(--navy-800) !important;
  --e-global-color-accent:    var(--gold-500) !important;
  /* Default Elementor button → navy */
  --e-button-bg-color:         var(--navy-500);
  --e-button-bg-color-hover:   var(--navy-700);
  --e-button-text-color:       var(--white);
  --e-button-text-color-hover: var(--white);
  /* wpbingo theme generic variable (best-guess prefixes) */
  --wd-primary-color:     var(--navy-500);
  --wd-alternative-color: var(--gold-500);
  --bingo-primary-color:  var(--navy-500);
  --bingo-secondary-color: var(--gold-500);
  --bwp-primary:  var(--navy-500);
  --bwp-accent:   var(--gold-500);
}

/* -----------------------------------------------------------------
   1. Typography — Outfit everywhere, Noto Sans SC for Chinese
   The theme uses Poppins; we override globally. Use a broad selector
   instead of `*` to spare canvas/SVG text nodes.
   ----------------------------------------------------------------- */
html, body,
input, button, select, textarea,
h1, h2, h3, h4, h5, h6,
p, a, span, li, td, th, label, blockquote, figcaption, em, strong, small,
.elementor-widget, [class*="elementor-"],
[class*="bwp-"], [class*="wpbingo-"],
.menu-item, .menu-item a,
.entry-title, .entry-content, .entry-meta,
.widget-title, .widget,
.site-title, .site-description {
  font-family: var(--font-sans) !important;
  -webkit-font-smoothing: antialiased;
}

/* Han characters → Noto Sans SC mixed fallback */
:lang(zh), :lang(zh-CN), :lang(zh-Hans), [lang^="zh"],
.lang-zh-hans, .pll-zh_CN, .pll-zh_TW {
  font-family: var(--font-sans-zh) !important;
}

/* Editorial display sizing for the largest headlines.
   Targets generic h1 + theme/Elementor variants. */
h1, .h1, .entry-title, .page-title,
.elementor-widget-heading h1.elementor-heading-title,
.bwp-title h2, .bwp-title h1,
.tp-caption.headline {
  font-size: clamp(32px, 5.4vw, var(--fs-display-md)) !important;
  font-weight: var(--weight-light) !important;
  line-height: var(--lh-tight) !important;
  letter-spacing: var(--tracking-tight) !important;
  color: var(--color-fg-strong);
}
h2, .h2,
.elementor-widget-heading h2.elementor-heading-title,
.bwp-title.title-style-1 h3 {
  font-size: clamp(24px, 3.2vw, var(--fs-h2)) !important;
  font-weight: var(--weight-semi) !important;
  line-height: var(--lh-snug) !important;
  letter-spacing: var(--tracking-snug) !important;
  color: var(--color-fg-strong);
}
h3, .h3 {
  font-size: var(--fs-h3) !important;
  font-weight: var(--weight-semi) !important;
  line-height: 1.3 !important;
}
h4, .h4 {
  font-size: var(--fs-h4) !important;
  font-weight: var(--weight-medium) !important;
}

/* "Eyebrow" labels — anything tiny + uppercase above a heading. */
.elementor-heading-title.eyebrow,
.bwp-title .sub-title,
.bwp-title small,
.elementor-widget-heading .elementor-sub-heading,
.entry-meta .cat-links,
[class*="eyebrow"], [class*="sub-title"], [class*="subtitle"] {
  font-size: var(--fs-eyebrow) !important;
  font-weight: var(--weight-semi) !important;
  letter-spacing: var(--tracking-eyebrow) !important;
  text-transform: uppercase !important;
  color: var(--color-primary) !important;
}

/* Body text — tight tracking, generous line-height */
body, p, .elementor-widget-text-editor, .entry-content p, li {
  color: var(--color-fg);
  line-height: var(--lh-relaxed);
}

/* -----------------------------------------------------------------
   2. Links — navy → gold on hover
   ----------------------------------------------------------------- */
a:not(.elementor-button):not(.btn):not(.header-phone):not(.bwp-button-link):not(.wp-block-button__link):not(.menu-item-language a) {
  color: var(--color-primary);
  transition: color var(--dur-micro) var(--ease-standard);
}
a:not(.elementor-button):not(.btn):not(.header-phone):not(.bwp-button-link):not(.wp-block-button__link):hover {
  color: var(--color-accent);
}
a:focus-visible {
  outline: 2px solid var(--color-focus-ring);
  outline-offset: 2px;
  border-radius: 2px;
}

/* Navigation menu items */
.bwp-navigation .menu > li > a,
.bwp-header .menu > li > a,
.menu > .menu-item > a {
  font-family: var(--font-sans) !important;
  font-weight: var(--weight-medium) !important;
  font-size: var(--fs-body-sm) !important;
  letter-spacing: var(--tracking-wide) !important;
  text-transform: uppercase !important;
  color: var(--color-fg-strong) !important;
}
.bwp-navigation .menu > li.current-menu-item > a,
.bwp-navigation .menu > li:hover > a {
  color: var(--color-primary) !important;
}

/* -----------------------------------------------------------------
   3. The green CTA in the header — repainted to navy
   .header-phone is the specific class identified via DOM inspection.
   ----------------------------------------------------------------- */
.header-phone,
.bwp-header .header-phone,
a.header-phone,
.header-info .header-phone,
.btn-newletter, .btn-newsletter,
.header-info .btn-newletter, .header-info .btn-newsletter,
.bwp-header .btn-newletter, .bwp-header .btn-newsletter,
.header-btn, .bwp-header .header-btn,
.header-cta, .bwp-header .header-cta {
  background: var(--color-primary) !important;
  color: var(--color-primary-fg) !important;
  border-radius: var(--radius-md) !important;
  padding: 12px 22px !important;
  font-family: var(--font-sans) !important;
  font-weight: var(--weight-medium) !important;
  font-size: var(--fs-body-sm) !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  border: 1px solid var(--color-primary) !important;
  box-shadow: none !important;
  transition:
    background var(--dur-micro) var(--ease-standard),
    border-color var(--dur-micro) var(--ease-standard),
    transform var(--dur-micro) var(--ease-standard) !important;
}
.header-phone:hover, .btn-newletter:hover, .btn-newsletter:hover,
.header-btn:hover, .header-cta:hover {
  background: var(--color-primary-hover) !important;
  border-color: var(--color-primary-hover) !important;
  color: var(--color-primary-fg) !important;
}
.header-phone:active, .btn-newletter:active, .btn-newsletter:active,
.header-btn:active, .header-cta:active {
  background: var(--color-primary-press) !important;
  transform: scale(0.98) !important;
}
.header-phone svg, .header-phone i, .header-phone:before,
.btn-newletter svg, .btn-newletter i, .btn-newletter:before,
.btn-newsletter svg, .btn-newsletter i, .btn-newsletter:before {
  color: var(--color-accent) !important;
  fill: var(--color-accent) !important;
  margin-right: 6px;
}
/* If the .btn-newletter is a <div>, ensure the inner <a> inherits the look */
.btn-newletter a, .btn-newsletter a {
  color: inherit !important;
  background: transparent !important;
  text-decoration: none !important;
  font: inherit !important;
}

/* -----------------------------------------------------------------
   4. Generic buttons — Elementor, Gutenberg, theme, form submits
   ----------------------------------------------------------------- */
.elementor-button-link,
.elementor-button,
a.bwp-button-link, .bwp-button-link,
.wp-block-button__link,
.btn, .button,
input[type="submit"],
button[type="submit"],
.wpcf7-submit, .ff-btn-submit {
  font-family: var(--font-sans) !important;
  font-weight: var(--weight-medium) !important;
  font-size: var(--fs-body-sm) !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  border-radius: var(--radius-md) !important;
  border: 1px solid transparent !important;
  padding: 12px 24px !important;
  transition:
    background var(--dur-micro) var(--ease-standard),
    border-color var(--dur-micro) var(--ease-standard),
    transform var(--dur-micro) var(--ease-standard) !important;
}

/* Primary fill (default) */
.elementor-button:not(.elementor-button-secondary):not(.elementor-button-info):not(.elementor-button-warning):not(.elementor-button-danger),
.wp-block-button:not(.is-style-outline) > .wp-block-button__link,
a.bwp-button-link, .bwp-button-widget a,
input[type="submit"], button[type="submit"],
.wpcf7-submit, .ff-btn-submit, .btn-primary, .button-primary {
  background: var(--color-primary) !important;
  color: var(--color-primary-fg) !important;
  border-color: var(--color-primary) !important;
}
.elementor-button:not(.elementor-button-secondary):not(.elementor-button-info):hover,
.wp-block-button:not(.is-style-outline) > .wp-block-button__link:hover,
a.bwp-button-link:hover, .bwp-button-widget a:hover,
input[type="submit"]:hover, button[type="submit"]:hover,
.wpcf7-submit:hover, .ff-btn-submit:hover, .btn-primary:hover {
  background: var(--color-primary-hover) !important;
  border-color: var(--color-primary-hover) !important;
}
/* Outline */
.elementor-button-info,
.wp-block-button.is-style-outline > .wp-block-button__link,
.btn-outline {
  background: transparent !important;
  color: var(--color-primary) !important;
  border: 1px solid var(--color-primary) !important;
}

/* -----------------------------------------------------------------
   5. Inputs / forms
   ----------------------------------------------------------------- */
input[type="text"], input[type="email"], input[type="tel"], input[type="url"],
input[type="password"], input[type="search"], input[type="number"],
textarea, select,
.wpcf7-form-control, .ff-el-form-control {
  font-family: var(--font-sans) !important;
  font-size: var(--fs-body) !important;
  color: var(--color-fg) !important;
  background: var(--color-surface) !important;
  border: 1px solid var(--color-border-strong) !important;
  border-radius: var(--radius-sm) !important;
  padding: 12px 16px !important;
  box-shadow: none !important;
}
input:focus, textarea:focus, select:focus,
.wpcf7-form-control:focus, .ff-el-form-control:focus {
  outline: none !important;
  border-color: var(--color-primary) !important;
  box-shadow: 0 0 0 3px rgba(53, 52, 107, 0.12) !important;
}

/* -----------------------------------------------------------------
   6. Header — sticky, light backdrop on scroll
   ----------------------------------------------------------------- */
.bwp-header.header-v1 {
  font-family: var(--font-sans) !important;
}
.bwp-header.header-absolute {
  /* preserve theme position; only ensure consistent paint */
  background: transparent !important;
}
.bwp-header.sticky {
  background: rgba(255, 255, 255, 0.92) !important;
  backdrop-filter: blur(12px) !important;
  -webkit-backdrop-filter: blur(12px) !important;
  border-bottom: 1px solid var(--color-border) !important;
  box-shadow: var(--shadow-1) !important;
  transition: background var(--dur-small) var(--ease-standard) !important;
}

/* -----------------------------------------------------------------
   7. Footer — institutional navy per DS rule
   ----------------------------------------------------------------- */
.bwp-footer, footer.bwp-footer {
  background: var(--color-bg-dark) !important;
  color: var(--color-fg-on-dark) !important;
}
.bwp-footer h1, .bwp-footer h2, .bwp-footer h3,
.bwp-footer h4, .bwp-footer h5, .bwp-footer h6,
.bwp-footer .widget-title, .bwp-footer .footer-title {
  color: var(--color-fg-on-dark) !important;
}
.bwp-footer p, .bwp-footer li, .bwp-footer span {
  color: var(--color-fg-on-dark-2) !important;
}
.bwp-footer a {
  color: var(--color-fg-on-dark-2) !important;
}
.bwp-footer a:hover {
  color: var(--color-accent) !important;
}
/* Inputs in dark footer */
.bwp-footer input[type="email"], .bwp-footer input[type="text"] {
  background: rgba(255, 255, 255, 0.08) !important;
  color: var(--color-fg-on-dark) !important;
  border-color: var(--color-border-on-dark) !important;
}
.bwp-footer input::placeholder { color: rgba(255, 255, 255, 0.5) !important; }
/* Border dividers in dark footer */
.bwp-footer hr, .bwp-footer .border, .bwp-footer .copyright {
  border-color: var(--color-border-on-dark) !important;
}
/* Repaint Elementor sections nested inside the footer wrapper too — Homeunik
   stages its "pseudo-footer" (logo + columns + newsletter) as an Elementor
   section ABOVE the actual <footer>. The DS rule "footer = dark navy
   institutional" applies to the visual footer band, not the WP-internal one. */
.bwp-footer .elementor-section,
.bwp-footer .elementor-top-section,
.bwp-footer .elementor-inner-section,
.bwp-footer .elementor-element-populated {
  background-color: var(--color-bg-dark) !important;
  background-image: none !important;
}
/* Decorative tile / pattern strip occasionally placed at the footer's top edge */
.bwp-footer .elementor-shape, .bwp-footer .elementor-divider {
  filter: brightness(0.4) saturate(0.4);
}
/* Logo wordmark in footer — invert the navy mark to white on navy background */
.bwp-footer img.logo, .bwp-footer .logo img,
.bwp-footer .site-logo img,
.bwp-footer .elementor-widget-image img.attachment-full,
.bwp-footer .elementor-widget-theme-site-logo img {
  filter: brightness(0) invert(1) !important;
}
/* But preserve real project thumbnails inside the "Revue des projets" widget */
.bwp-footer .elementor-image-gallery img,
.bwp-footer .elementor-widget-image-carousel img,
.bwp-footer [class*="gallery"] img,
.bwp-footer [class*="carousel"] img {
  filter: none !important;
}

/* -----------------------------------------------------------------
   8. Cards — Elementor, post grids, generic
   ----------------------------------------------------------------- */
.elementor-image-box, .elementor-widget-image-box,
article.post, .post-card, .post-grid-item,
.bwp-counter, .bwp-testimonial,
.wpb-product, .product, .wc-block-grid__product {
  border-radius: var(--radius-md) !important;
  transition:
    box-shadow var(--dur-small) var(--ease-standard),
    transform var(--dur-small) var(--ease-standard) !important;
}
.elementor-image-box:hover, .elementor-widget-image-box:hover,
article.post:hover, .post-card:hover,
.product:hover, .wc-block-grid__product:hover {
  box-shadow: var(--shadow-2) !important;
  transform: translateY(-2px) !important;
}

/* -----------------------------------------------------------------
   9. Section padding & rhythm
   ----------------------------------------------------------------- */
.elementor-section.elementor-section-boxed > .elementor-container,
.bwp-section, section.elementor-top-section {
  /* preserve theme widths; just enforce vertical rhythm via padding */
}
section.elementor-top-section:not(.elementor-section-stretched) {
  /* keep author-set padding but harmonize when missing */
}
hr, .elementor-divider-separator, .bwp-divider {
  border-color: var(--color-border-strong) !important;
}

/* -----------------------------------------------------------------
   10. Slider Revolution — DS overlay tint for hero photo legibility
   ----------------------------------------------------------------- */
.rev_slider .tp-bgimg::after,
.rev_slider .tp-loader-wrapper { z-index: 2; }
.tp-revslider-mainul > li > .tp-bgimg::before {
  content: '';
  position: absolute; inset: 0;
  background: linear-gradient(to right,
    var(--color-overlay-navy),
    var(--color-overlay-navy-2));
  pointer-events: none;
  z-index: 1;
}
.tp-caption {
  font-family: var(--font-sans) !important;
}
.tp-caption.headline {
  letter-spacing: var(--tracking-tight) !important;
}

/* -----------------------------------------------------------------
   11. Polylang language switcher — discrete navy + gold-active
   ----------------------------------------------------------------- */
.menu-item-language > a, .lang-item > a, .pll-switcher a {
  font-family: var(--font-sans) !important;
  font-weight: var(--weight-medium) !important;
  font-size: var(--fs-body-sm) !important;
  color: var(--color-fg-strong) !important;
}
.menu-item-language.current-lang > a,
.lang-item.current-lang > a {
  color: var(--color-primary) !important;
}

/* -----------------------------------------------------------------
   12. Selection + focus ring
   ----------------------------------------------------------------- */
::selection { background: var(--color-primary); color: var(--color-primary-fg); }
:focus-visible { outline: 2px solid var(--color-focus-ring); outline-offset: 2px; }

/* -----------------------------------------------------------------
   13. WooCommerce — minimal repaint so it doesn't fight the brand
   ----------------------------------------------------------------- */
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button,
.woocommerce-page a.button {
  background: var(--color-primary) !important;
  color: var(--color-primary-fg) !important;
  border-radius: var(--radius-md) !important;
  font-family: var(--font-sans) !important;
  font-weight: var(--weight-medium) !important;
}
.woocommerce a.button:hover {
  background: var(--color-primary-hover) !important;
}

/* -----------------------------------------------------------------
   14. Top admin bar — leave it default (logged-in users only)
   ----------------------------------------------------------------- */
#wpadminbar { font-family: -apple-system, system-ui, sans-serif !important; }

/* =====================================================================
   v3 PREMIUM POLISH — institutional, airy, minimalist, uniform.
   Layered ON TOP of v2.2 to push the rendering toward the kit's tone:
   confident display typography, generous vertical rhythm, hairline
   dividers, no stray colors, slow institutional easing.
   ===================================================================== */

/* A) STRAY COLOR REPOINT — anything not in the DS palette is forced
   into a token. Inline-style sweeps + visible globals. */
[style*="color: #69727D"], [style*="color: #69727d"],
[style*="color:#69727D"],   [style*="color:#69727d"],
[style*="color: rgb(105, 114, 125)"], [style*="color:rgb(105,114,125)"] {
  color: var(--color-fg-muted) !important;
}
[style*="color: #0D2C6B"], [style*="color: #0d2c6b"],
[style*="color:#0D2C6B"],  [style*="color:#0d2c6b"],
[style*="background-color: #0D2C6B"], [style*="background:#0d2c6b"] {
  color: var(--color-primary) !important;
  background-color: var(--color-primary) !important;
}
[style*="color: #00A0D2"], [style*="color: #00a0d2"],
[style*="color:#00A0D2"],  [style*="color:#00a0d2"] {
  color: var(--color-primary) !important;
}
/* Stray greens (theme success states, check icons, share-WhatsApp tints) */
[style*="color: #27ae60"], [style*="color:#27ae60"],
[style*="color: #2ecc71"], [style*="color:#2ecc71"],
[style*="color: #42bc61"], [style*="color:#42bc61"],
[style*="color: #22c55e"], [style*="color:#22c55e"] {
  color: var(--color-primary) !important;
}

/* B) DISPLAY HEADLINES — confident, premium */
h1, .h1, .entry-title, .page-title,
.elementor-widget-heading h1.elementor-heading-title,
.bwp-title h1, .bwp-title h2 {
  font-size: clamp(40px, 7vw, 72px) !important;
  font-weight: var(--weight-light) !important;
  line-height: 1.06 !important;
  letter-spacing: -0.022em !important;
  color: var(--color-fg-strong) !important;
}
h2, .h2,
.elementor-widget-heading h2.elementor-heading-title {
  font-size: clamp(26px, 4vw, 44px) !important;
  font-weight: var(--weight-regular) !important;
  line-height: 1.15 !important;
  letter-spacing: -0.018em !important;
}
h3, .h3,
.elementor-widget-heading h3.elementor-heading-title {
  font-size: clamp(20px, 2.6vw, 28px) !important;
  font-weight: var(--weight-medium) !important;
  letter-spacing: -0.012em !important;
}

/* C) SECTION VERTICAL RHYTHM — uniform breathing */
section.elementor-top-section:not(.elementor-section-stretched):not([style*="padding"]),
.bwp-section {
  padding-top: 64px !important;
  padding-bottom: 64px !important;
}
@media (min-width: 1024px) {
  section.elementor-top-section:not(.elementor-section-stretched):not([style*="padding"]),
  .bwp-section {
    padding-top: var(--section-py-desktop) !important;
    padding-bottom: var(--section-py-desktop) !important;
  }
}

/* D) BUTTONS — uniform, generous padding, refined letter-spacing */
.elementor-button, .wp-block-button__link, .btn, .button,
input[type="submit"], button[type="submit"], .wpcf7-submit, .ff-btn-submit,
.header-phone, .btn-newletter, .btn-newsletter,
a.bwp-button-link {
  padding: 14px 28px !important;
  font-size: 15px !important;
  letter-spacing: 0.005em !important;
  border-radius: var(--radius-md) !important;
  transition: background var(--dur-small) var(--ease-standard),
              border-color var(--dur-small) var(--ease-standard),
              transform var(--dur-small) var(--ease-standard),
              color var(--dur-small) var(--ease-standard) !important;
}

/* E) BODY TEXT — generous rhythm, capped reading width */
.elementor-widget-text-editor p,
.elementor-widget-text-editor li,
.entry-content p, .entry-content li,
.post-content p, .post-content li {
  font-size: 17px !important;
  line-height: 1.72 !important;
  margin-bottom: var(--space-4);
}

/* F) HAIRLINES instead of solid borders */
hr, .elementor-divider-separator, .bwp-divider {
  border: 0 !important;
  border-top: 1px solid var(--color-border) !important;
}
.elementor-divider {
  --divider-color: var(--color-border) !important;
}

/* G) WooCommerce coming-soon and other shop noise — hide */
.wc-coming-soon-banner, .wc-coming-soon-notice,
.woocommerce-coming-soon, .wc-block-coming-soon {
  display: none !important;
}

/* H) Theme decorative tile/pattern strips — soften aggressively */
.bwp-footer .elementor-section[style*="background-image"]:first-child,
.bwp-footer img[src*="pattern"],
.bwp-footer img[src*="tile"] {
  filter: brightness(0.45) saturate(0.35) contrast(0.8);
  opacity: 0.7;
}

/* I) Default <ul> bullets in content → DS hairline dashes */
.entry-content ul:not(.menu):not(.elementor-icon-list-items):not(.products):not(.wp-block-list) > li,
.elementor-widget-text-editor ul > li {
  list-style: none;
  padding-left: 26px;
  position: relative;
  margin-bottom: 8px;
}
.entry-content ul:not(.menu):not(.elementor-icon-list-items):not(.products):not(.wp-block-list) > li::before,
.elementor-widget-text-editor ul > li::before {
  content: '';
  position: absolute;
  left: 0; top: 0.85em;
  width: 14px; height: 1px;
  background: var(--color-primary);
}

/* J) Icon list checks (Elementor) — repaint theme greens to navy */
.elementor-icon-list-icon svg path[fill="#27ae60"],
.elementor-icon-list-icon svg path[fill="#2ecc71"],
.elementor-icon-list-icon svg path[fill="#42bc61"],
.elementor-icon-list-icon svg path[fill="#22c55e"],
.elementor-icon-list-icon svg path[fill="#16a34a"] { fill: var(--color-primary) !important; }
.elementor-icon-list-icon i, .elementor-icon-list-icon svg { color: var(--color-primary) !important; }

/* K) CARDS — uniform radius, hover lift */
.elementor-image-box, .elementor-widget-image-box,
article.post, .post-card, .post-grid-item,
.bwp-counter, .bwp-testimonial, .bwp-team-member,
.product, .wc-block-grid__product, .wpb-product {
  border-radius: var(--radius-md) !important;
  box-shadow: var(--shadow-1) !important;
  transition: box-shadow var(--dur-medium) var(--ease-standard),
              transform var(--dur-medium) var(--ease-standard) !important;
}
.elementor-image-box:hover, .elementor-widget-image-box:hover,
article.post:hover, .post-card:hover,
.product:hover, .bwp-team-member:hover, .bwp-testimonial:hover {
  box-shadow: var(--shadow-2) !important;
  transform: translateY(-3px) !important;
}

/* L) NUMBERS & STAT BLOCKS — display light, large */
.elementor-counter-number, .elementor-counter,
.bwp-counter .counter-value, [class*="counter-number"], [class*="counter-value"],
.stat-number, .stat-value {
  font-family: var(--font-sans) !important;
  font-weight: var(--weight-light) !important;
  font-size: clamp(40px, 5vw, 56px) !important;
  letter-spacing: -0.02em !important;
  line-height: 1.05 !important;
  color: var(--color-fg-strong) !important;
}
.elementor-counter-title, .bwp-counter .counter-title,
[class*="counter-title"], .stat-label {
  font-family: var(--font-sans) !important;
  font-size: 12px !important;
  font-weight: var(--weight-semi) !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
  color: var(--color-fg-muted) !important;
  margin-top: 8px;
}

/* M) EYEBROW / SUB-HEADING auto-detection (theme subtitles, sub-headings) */
.elementor-widget-heading .elementor-sub-heading,
[class*="eyebrow"], [class*="kicker"],
.bwp-title .sub-title, .bwp-title small,
.entry-meta .cat-links {
  font-size: 12px !important;
  font-weight: var(--weight-semi) !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
  color: var(--color-primary) !important;
  margin-bottom: var(--space-3) !important;
}

/* N) SLIDER REVOLUTION — quieter, kit-aligned caption typography */
.tp-caption { font-family: var(--font-sans) !important; letter-spacing: -0.01em !important; }
.tp-caption.headline,
.tp-caption[class*="display"], .tp-caption[class*="bigtitle"] {
  font-weight: var(--weight-light) !important;
  letter-spacing: -0.022em !important;
  line-height: 1.06 !important;
}

/* O) IMAGE WARMTH — slight saturation lift to match the photo-led brand */
.elementor-widget-image img, .wp-block-image img,
article.post img, .post-card img, .bwp-image img,
.elementor-image-gallery img {
  filter: saturate(1.03) contrast(1.02);
}
/* Exempt logos to preserve their flat, brand-controlled rendering */
.bwp-footer img.logo, .bwp-footer .logo img, .bwp-footer .site-logo img,
header.bwp-header img.logo, header.bwp-header .logo img, header.bwp-header .site-logo img,
img.attachment-thumbnail.size-thumbnail.wp-post-image[src*="logo"] {
  filter: none !important;
}
.bwp-footer img.logo, .bwp-footer .logo img, .bwp-footer .site-logo img {
  filter: brightness(0) invert(1) !important;
}

/* P) FORMS — quieter borders, more padding */
input[type="text"], input[type="email"], input[type="tel"], input[type="url"],
input[type="password"], input[type="search"], input[type="number"],
textarea, select,
.wpcf7-form-control, .ff-el-form-control {
  border: 1px solid var(--color-border) !important;
  border-radius: var(--radius-sm) !important;
  padding: 14px 18px !important;
  font-size: 16px !important;
  background: var(--color-surface) !important;
  box-shadow: none !important;
  transition: border-color var(--dur-micro) var(--ease-standard),
              box-shadow var(--dur-micro) var(--ease-standard) !important;
}

/* Q) WhatsApp / Telegram floating widgets — discrete navy if present */
.whatsapp-chat, .wa-chat-button, .floating-whatsapp,
.telegram-chat, .crisp-client {
  filter: hue-rotate(190deg) saturate(0.6) brightness(0.85);
}

/* R) Polylang language switcher — refined */
.menu-item-language img.flag, .pll-switcher img.flag {
  border-radius: 2px !important;
  width: 16px !important; height: 11px !important;
  margin-right: 6px;
}

/* S) Selection / scrollbar accents */
::selection { background: var(--color-primary); color: var(--color-primary-fg); }
html { scrollbar-color: var(--color-primary) var(--color-bg-alt); }
html::-webkit-scrollbar { width: 10px; height: 10px; }
html::-webkit-scrollbar-track { background: var(--color-bg-alt); }
html::-webkit-scrollbar-thumb { background: var(--color-border-strong); border-radius: 4px; }
html::-webkit-scrollbar-thumb:hover { background: var(--color-primary); }

/* T) Scroll-to-top button (theme-provided) — repaint navy */
#bwp-back-to-top, .back-to-top, .scroll-to-top,
.elementor-button-link[href="#top"] {
  background: var(--color-primary) !important;
  color: var(--color-primary-fg) !important;
  border-radius: var(--radius-md) !important;
  border: none !important;
  box-shadow: var(--shadow-2) !important;
}
#bwp-back-to-top:hover, .back-to-top:hover {
  background: var(--color-primary-hover) !important;
  transform: translateY(-2px);
}

