/* Bob & Connie's restoration: glue between Twenty Twenty-Five and the recovered
   Hello Elementor 2.6.1 + Elementor 3.9 stylesheets. Everything visual comes from the
   original CSS; this file only removes block-theme defaults and restores plugin behaviour. */

/* 1. Hello Elementor body defaults win over Twenty Twenty-Five global styles. */
html body {
  margin: 0;
  background-color: #fff;
  color: #333;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.5;
  letter-spacing: normal;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
body a { text-decoration: none; }
body .wp-site-blocks { padding: 0; }
body .wp-site-blocks > *,
body .wp-site-blocks .site-main > *,
body .page-content > * { margin-block-start: 0; margin-block-end: 0; }
body .wp-block-template-part { margin: 0; }
body .page-content, body .page-content.is-layout-flow { max-width: none; padding: 0; }
body :where(.page-content) > * { max-width: none; }
body h1, body h2, body h3, body h4, body h5, body h6 { letter-spacing: normal; text-wrap: initial; }

/* Hello Elementor page header (the original shows the page title above the Elementor content). */
body .site-main .page-header { margin: 0; padding: 0; }
body .page-header .entry-title {
  font-family: inherit; font-weight: 500; font-size: 2.5rem; line-height: 1.2; color: inherit;
  margin-top: .5rem; margin-bottom: 1rem;
}

/* 2. Sticky Header Effects: transparent + absolute until 60px scrolled (class toggled by bcr-restore.js). */
.elementor-location-header .she-header-yes:not(.she-header) {
  position: absolute !important;
  background-color: rgba(0, 0, 0, 0) !important;
  box-shadow: none;
  z-index: 99;
  width: 100%;
}
body.admin-bar .she-header { top: 32px !important; }
@media (max-width: 782px) { body.admin-bar .she-header { top: 46px !important; } }

/* 3. Elementor Pro popup 78 (MENU). */
#elementor-popup-modal-78[hidden] { display: none !important; }
#elementor-popup-modal-78 { display: flex; overflow-y: auto; }
#elementor-popup-modal-78 .dialog-widget-content { position: relative; max-width: 100%; margin: 0; max-height: none; }
#elementor-popup-modal-78 .dialog-message { max-width: 100vw; overflow: visible; }
#elementor-popup-modal-78 .dialog-close-button { position: fixed; border: 0; padding: 0; cursor: pointer; line-height: 1; }
html.bcr-popup-open { overflow: hidden; }
@media (prefers-reduced-motion: reduce) { #elementor-popup-modal-78 .dialog-widget-content { animation: none !important; } }

/* 4. Reviews carousel without Swiper. */
.elementor-widget-reviews .swiper-wrapper { transition-timing-function: ease; will-change: transform; }
.elementor-widget-reviews .swiper-slide { flex-shrink: 0; }
.elementor-widget-reviews .swiper-pagination-bullet { cursor: pointer; }
.elementor-widget-reviews .elementor-swiper-button { cursor: pointer; }

/* 5. Contact form: honeypot and busy state. */
.bcr-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.elementor-form-waiting button[type="submit"] { opacity: .6; cursor: progress; }
.elementor-form .elementor-message { width: 100%; margin: 10px 0 0; font-size: 1em; line-height: 1; }

/* 6. Keyboard focus that the original never had, kept subtle. */
.elementor a:focus-visible, .elementor [role="button"]:focus-visible, .dialog-close-button:focus-visible {
  outline: 2px solid #ea0000; outline-offset: 2px;
}
.skip-link.screen-reader-text:focus {
  position: fixed; top: 6px; left: 6px; z-index: 100000; width: auto; height: auto; clip: auto;
  padding: 12px 20px; background: #fff; color: #333; font-size: 14px;
}

/* 7. Hello Elementor 404 page */
.bcr-404 .page-content { padding: 0 10px 60px; }

/* 8. MENU popup fallback (original menu images unrecoverable): header contact block, centred. */
#elementor-popup-modal-78 .bcr-menu-fallback { background: #000; min-height: 100vh; display: flex; align-items: center; justify-content: center; padding: 80px 40px; }
#elementor-popup-modal-78 .bcr-menu-fallback__inner { max-width: 420px; width: 100%; }
#elementor-popup-modal-78 .bcr-menu-fallback .elementor-icon-list-items { display: block; }
#elementor-popup-modal-78 .bcr-menu-fallback .elementor-icon-list-item { margin: 0 0 14px; font-size: 20px; }
#elementor-popup-modal-78 .bcr-menu-fallback .elementor-widget-button { margin-top: 20px; }
#elementor-popup-modal-78 .bcr-menu-fallback .elementor-button { width: 100%; padding: 16px 10px; }
@media (max-width: 767px) { #elementor-popup-modal-78 .dialog-message { width: 100vw; } }

/* 9. Non-Elementor views (404, search, archives): clear the absolutely positioned header. */
body:not(.elementor-page) .site-main { padding-top: 130px; padding-bottom: 60px; min-height: 50vh; }
body:not(.elementor-page) .site-main .page-content { max-width: 800px; margin: 0 auto; padding: 0 10px; }
body:not(.elementor-page) .site-main .wp-block-post-title a { color: #ea0000; }
@media (max-width: 767px) { body:not(.elementor-page) .site-main { padding-top: 120px; } }
body:not(.elementor-page) .elementor-location-header .she-header-yes:not(.she-header) { background-color: #383838 !important; }
