/* RODA Elementor bridge.
   Converted elements carry two marker classes (Advanced > CSS Classes):
     rm-x  on containers  -> behave like the plain <section>/<div> they replace; layout comes from styles.css classes
     rm-w  on widgets     -> wrapper disappears on the front end so the <h2>/<p>/<a>/<img> sit exactly as in the static HTML
   Remove the marker to hand an element fully back to Elementor's own layout controls. New elements you add are untouched.
   Everything here lives in cascade layer "rm-bridge": above Elementor's stock CSS (layer elementor-base), below the
   site's exact styles.css (unlayered) and below panel styling (unlayered). */
@layer rm-bridge {
  .e-con.rm-x {
    --display: block !important;
    --width: auto; --min-height: auto; --content-width: none;
    --flex-direction: row; --flex-wrap: nowrap; --justify-content: normal; --align-items: normal; --align-content: normal;
    --gap: normal; --row-gap: normal; --column-gap: normal; --flex-basis: auto; --flex-grow: 0; --flex-shrink: 1;
    --padding-top: 0px; --padding-right: 0px; --padding-bottom: 0px; --padding-left: 0px;
    --margin-top: 0px; --margin-right: 0px; --margin-bottom: 0px; --margin-left: 0px;
    --container-default-padding-top: 0px; --container-default-padding-right: 0px; --container-default-padding-bottom: 0px; --container-default-padding-left: 0px;
    --position: static; --text-align: inherit; --overflow: visible; --z-index: auto; --border-radius: 0; --border-style: none;
    --height: auto; --flex-grow: 0; --flex-shrink: 1; --flex-basis: auto;
    /* margin/padding/width/text-align/position stay variable-driven, so Layout/Advanced panel edits still work.
       Where styles.css styles the same property on that class, styles.css wins (use Pro Custom CSS to override). */
    transition: revert; min-width: revert; max-width: revert;
  }
  :is(.elementor-section-wrap, [data-elementor-id]) > .e-con.rm-x { max-width: revert; }
  .e-con.rm-x::before, .e-con.rm-x::after { transition: revert; }
  /* Elementor's ".e-con:before" (background-overlay box) pins top/left/width/height. On converted containers the pseudo-element
     belongs to styles.css (e.g. .card.qcard:before ring anchored right/bottom), so hand those back to the browser default. */
  .e-con.rm-x::before { top: revert; left: revert; width: revert; height: revert; }
  /* Live styles.css uses "*{box-sizing:border-box}" (pseudo-elements stay content-box); Elementor makes
     ".elementor :before/:after" border-box, which shrinks bordered pseudo-elements like the qcard ring by 2x its border. */
  .e-con.rm-x::before, .e-con.rm-x::after, :is(.rm-x, .rm-w) *::before, :is(.rm-x, .rm-w) *::after { box-sizing: revert; }
  /* Elementor sets ".elementor a{text-decoration:none}"; live links keep the browser underline unless styles.css removes it
     (styles.css is unlayered, so its .tel/.btn/footer/.links rules still win). */
  :is(.rm-x, .rm-w) a { text-decoration: revert; }
  .elementor, .elementor-section-wrap { all: revert; }
  body:not(.elementor-editor-active) .elementor-widget.rm-w,
  body:not(.elementor-editor-active) .elementor-widget.rm-w > .elementor-widget-container,
  body:not(.elementor-editor-active) .elementor-widget.rm-w .elementor-button-wrapper,
  body:not(.elementor-editor-active) .elementor-widget.rm-w .elementor-shortcode { all: revert; display: contents; }
  .rm-w .elementor-heading-title { padding: revert; margin: revert; line-height: revert; font-size: revert; font-weight: revert; color: revert; }
  .rm-w .elementor-button, .rm-w .elementor-button-content-wrapper, .rm-w .elementor-button-text { all: revert; }
  .rm-w .elementor-button:hover, .rm-w .elementor-button:focus, .rm-w .elementor-button:visited { color: revert; }
  .rm-w.elementor-widget-image img { display: revert; vertical-align: revert; }
  .rm-w.elementor-widget-image a { display: revert; }
  .rm-w figure { margin: revert; }
  /* Elementor sets .elementor video/iframe/embed {width:100%;max-width:100%;margin:0;border:none} - not on the static site */
  .rm-w :is(embed, iframe, object, video) { border: revert; line-height: revert; margin: revert; max-width: revert; width: revert; }
  .screen-reader-text, .skip-link { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
}
/* Theme Builder location wrappers must not add a box: the template's own <header>/<footer class="ft"> is the real element. */
.elementor-location-header, .elementor-location-footer, .elementor-location-single, .elementor-location-archive { display: contents; }
/* Live selectors with ">" that must see through the (display:contents) widget wrapper. */
/* Covers both widget DOMs: Optimized Markup on (no .elementor-widget-container) and off (staging/GoDaddy: with it). */
.band > .elementor-widget.rm-w > :not(.elementor-widget-container),
.band > .elementor-widget.rm-w > .elementor-widget-container > * { position: relative; }
.revs .wrap > .elementor-widget.rm-w > .stars svg,
.revs .wrap > .elementor-widget.rm-w > .elementor-widget-container > .stars svg { width: 26px; height: 26px; }
/* Live ".step:nth-child(even):before" counts sibling .step divs; in Elementor each step sits in its own widget wrapper,
   so count the wrappers instead (descendant selector covers both widget DOMs). */
.steps > .elementor-widget:nth-child(even) .step:before { background: linear-gradient(135deg, var(--o), #ffb27a); color: #0f172a; }
/* Legacy Elementor markup stored inside imported post bodies (live renders it with no Elementor CSS at all). */
@layer rm-bridge {
  .prose [data-elementor-type="wp-post"], .prose [data-elementor-type="wp-post"] *,
  .prose [data-elementor-type="wp-post"] *::before, .prose [data-elementor-type="wp-post"] *::after { all: revert; }
}
