/* ==========================================================================
   ScoreMasters® -- THEME-BEHAVIOUR REPLACEMENTS (hello-elementor-child)
   Built at MIGRATION-HELLO.md G-3, v2.87.0, 2026-09-13. Inert until G-6.
   --------------------------------------------------------------------------
   Two things Soudify's PARENT stylesheet drew and Hello Elementor does not.
   Both are reproduced to the values measured in soudify/style.css at v2.87.0,
   so the site looks and behaves as it does today (Samy's standing preference:
   recreate, not redesign). Unprefixed; every browser in the support matrix
   honours the unprefixed properties the parent also declared.

   LOAD ORDER IS PART OF THE DESIGN. This file is enqueued at
   wp_enqueue_scripts priority 19, BEFORE the child stylesheet (priority 20),
   exactly where the parent stylesheet sat. The child's own overrides
   (`.scrollup{right:24px!important}`, `.sm-btt-park`, the `.pp-btn`,
   `.careers-form` and `body.single-post .sm-post-cta` roll rules) therefore
   still land on top of these, unchanged.
   ========================================================================== */

/* --- F-2 · BACK-TO-TOP (`.scrollup`) --------------------------------------
   Decision F-2, Option B (Samy, 2026-09-13): rebuilt in the child theme under
   its EXISTING class name, so every child rule keyed on `.scrollup` --
   including the footer parking (`.sm-btt-park`, driven by the docking script
   in functions.php) -- applies untouched. Markup: functions.php (wp_footer).
   Behaviour: assets/js/sm-back-to-top.js. Hidden on phones by design, as the
   parent theme hid it. Ledger row E-6. */
.scrollup {
  position: fixed;
  bottom: 24px;
  right: 24px;
  z-index: 99999;
  padding: 0;
  width: 44px;
  height: 44px;
  text-align: center;
  text-transform: uppercase;
  line-height: 1;
  border-radius: 50px;
  color: #fff;
  display: flex;
  align-items: center;
  flex-direction: column;
  justify-content: center;
  background-color: #000;
  font-size: 12px;
  font-size: 0.75rem;
  transform: scale(0);
  transition: all 500ms ease;
}
@media (max-width: 767px) {
  .scrollup {
    opacity: 0 !important;
    pointer-events: none;
  }
}
.scrollup .scrollup-icon {
  font-size: 15px;
  font-size: 0.9375rem;
  margin-bottom: 3px;
  transition: all 10000ms ease;
}
.scrollup .scrollup-label {
  font-weight: bold;
  margin-top: 5px;
  display: none;
}
.scrollup:hover {
  background-color: var(--e-global-color-primary);
  color: #fff;
}
.scrollup.activate {
  transform: scale(1);
}
/* The glyph is U+E083 in the `soudify-icon` font, which the child stylesheet
   already declares (stylesheet-relative, v2.85.0). */
.scrollup .scrollup-icon:before {
  font-family: "soudify-icon";
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  display: inline-block;
  font-style: normal;
  font-variant: normal;
  font-weight: normal;
  line-height: 1;
  vertical-align: middle;
  content: "\e083";
}

/* --- F-4 · THE BUTTON ROLL ------------------------------------------------
   Decision F-4, Option B (Samy, 2026-09-13): reimplemented in the child theme.
   The markup these rules style (`.soudify-button-effect` + `btn-inited` on the
   anchor, `.soudify-button-clip > .hover-text` x2) is built at runtime by
   assets/js/sm-button-roll.js. Ledger row E-7.

   *** THE SELECTORS KEEP THE PARENT'S EXACT SHAPE AND SPECIFICITY, ON PURPOSE:
   (0,2,0), (0,3,0), (0,4,0), and the DESCENDANT hover leg at (0,4,0) -- the
   `:hover` counts; the v2.70.0 child comment's "(0,3,0)" undercounts it, and its
   (0,6,1)/(0,7,1) rules outrank either figure. *** The
   child stylesheet carries three rule sets written against that shape -- the
   `body.single-post .sm-post-cta` cancel-and-restore pair (v2.70.0), the
   `.careers-form` focus-parity + reduced-motion guard, and the `.pp-btn`
   reduced-motion guard. Keeping the shape keeps every one of them doing
   exactly what it does today. A "cleaner" child-combinator selector here
   would silently change which of them still bite. */
.soudify-button-effect .soudify-button-clip {
  justify-content: center;
  align-items: center;
  display: flex;
  position: relative;
  overflow: hidden;
}
.soudify-button-effect .soudify-button-clip .hover-text {
  transition: transform 0.3s linear;
}
.soudify-button-effect .soudify-button-clip .hover-text.bottom-text {
  position: absolute;
  bottom: -100%;
}
.soudify-button-effect:hover .soudify-button-clip .hover-text {
  transform: translate3d(0px, -100%, 0px) scale3d(1, 1, 1) rotateX(0deg) rotateY(0deg) rotateZ(0deg) skew(0deg);
  transform-style: preserve-3d;
}

/* ==========================================================================
   E-2 -- THE FIXED-HEADER OFFSET CARRIER (added at MIGRATION-HELLO.md G-6,
   v2.91.0, 2026-09-14, measured on staging under Hello).
   --------------------------------------------------------------------------
   The child stylesheet's offset is `body:not(.home) #content{padding-top:78px}`
   (66px at <=767). Under Soudify, header.php wrapped EVERY surface in
   `#content.site-content`. Under Hello, `#content` survives only as Hello's
   `<main id="content" class="site-main">` on the default-template pages, the
   404 and search; the Theme-Builder surfaces (the blog index, the three
   articles) and the four `elementor_header_footer` pages (3214, 7079, 7575,
   7576) have NO #content, so on those the first content sat under the fixed
   header (MEASURED, ledger row E-02 at F-9 step 1: media overlap 78/66 px on
   the articles at all eight widths, text overlap 11 px on /contact/ and
   19 px on /blog/ at <=1024).
   THE CARRIER THAT EXISTS ON EVERY SURFACE IS HFE's `#page.hfeed.site`
   (E-2's own recommendation), so the offset moves there, and the child's
   #content offset is zeroed so the default-template pages are not offset
   twice. body.home stays exempt: the hero sits under the transparent header
   by design. Specificity: (1,2,1) on #page.site, (2,2,1) on the #content
   zero, above the child's (1,1,1). The header is position:fixed and is not
   affected by its parent's padding. Reversible by deleting this block.
   ========================================================================== */
body:not(.home) #page.site { padding-top: 78px; }
body:not(.home) #page.site #content { padding-top: 0; }
@media (max-width: 767px) {
  body:not(.home) #page.site { padding-top: 66px; }
}
/* ==========================================================================
   K-9 -- A PARENT RULE THAT REACHED THE DESIGN THROUGH THE DEAD `.entry-content`
   WRAPPER (added at MIGRATION-HELLO.md G-6, v2.91.0, 2026-09-14, measured).
   --------------------------------------------------------------------------
   Soudify's page.php wrapped Elementor content on the twelve default-template
   pages in `article > .entry-content`; Hello's template-parts/single.php wraps
   the same pages in `main#content.site-main > .page-content`. soudify/style.css
   carries ONE class-scoped rule under that wrapper that reaches this site's
   design: `.entry-content table:not(.shop_table) td, .entry-content
   table:not(.shop_table) th { border:1px solid; border-color:
   var(--e-global-color-border); font-size:20px; font-size:1.25rem }`. The
   homepage pricing table's row headers (`th.pc-svc`, ledger row E-23) read
   20px on Soudify and 16px under Hello at every width, before and after F-9
   step 2. Ported verbatim to the Hello carrier. The pricing block's own inline
   stylesheet zeroes the borders with !important, as it did on Soudify. The
   only <table> on the 13 surfaces is that one. Reversible by deleting this
   block.
   ========================================================================== */
.page-content table:not(.shop_table) td,
.page-content table:not(.shop_table) th {
  border: 1px solid;
  border-color: var(--e-global-color-border);
  font-size: 20px;
  font-size: 1.25rem;
}
/* ==========================================================================
   G-6 -- SOUDIFY'S SECOND AND THIRD FRONT-END STYLESHEETS, THE RULES THAT REACH
   THIS SITE (added at MIGRATION-HELLO.md G-6, v2.91.0, 2026-09-14, measured).
   --------------------------------------------------------------------------
   Soudify enqueued `assets/css/base/elementor.css` (281,882 B, md5 0af6399e,
   1,286 rules) from inc/elementor/class-elementor.php::add_scripts() and
   `assets/css/base/elementor-grid.css` (8,288 B, 86 rules) from class-main.php,
   on every front-end load, alongside style.css. The G-3 base layer extracted
   style.css ONLY, so every rule below was live on Soudify, matched this site's
   markup, and was absent under Hello. Found because the first Hello sweep read
   the CTA roll travel 20 -> 15 px: Elementor's own `.elementor-button` is 15px /
   line-height 1 and this file's `.elementor-widget-button .elementor-button`
   (0,2,0) outranked it with 1rem and the kit's accent typography variables.
   CENSUS METHOD: the three files were fetched in the browser on all 13 surfaces
   at 1440 and four at 390, parsed with CSSStyleSheet.replaceSync, and every
   selector part tested with querySelectorAll (pseudo-classes stripped for the
   test). elementor.css: 1,277 style rules, 16 match; elementor-grid.css: 86,
   5 match (the blog index); gutenberg-blocks.css: 176, 0 match. The 21 are
   ported VERBATIM below in source order with their @media context; nothing
   from the 1,528 non-matching rules is carried. Printed at priority 19, the
   slot the parent's sheets held, so the child stylesheet keeps winning the
   cascades it won on Soudify. Reversible by deleting this block.
   (g6_20260914/soudify-extra-css-census*.json)
   ========================================================================== */
/* elementor.css #293 */
.elementor-widget-heading .elementor-heading-title {
  font-family: var(--e-global-typography-secondary-font-family);
  font-weight: var(--e-global-typography-secondary-font-weight);
  text-transform: var(--e-global-typography-secondary-text-transform);
  font-style: var(--e-global-typography-secondary-font-style);
  text-decoration: var(--e-global-typography-secondary-text-decoration);
  line-height: var(--e-global-typography-secondary-line-height);
  letter-spacing: var(--e-global-typography-secondary-letter-spacing);
  color: var(--e-global-color-secondary);
}
/* elementor.css #1153 */
.elementor-icon-box-wrapper {
  -ms-transition: all 0.3s ease;
  -o-transition: all 0.3s ease;
  -moz-transition: all 0.3s ease;
  -webkit-transition: all 0.3s ease;
  transition: all 0.3s ease;
  position: relative;
}
/* elementor.css #1155 */
.elementor-widget-icon-box .elementor-icon-box-icon .elementor-icon i:before {
  z-index: 3;
}
/* elementor.css #1156 */
.elementor-widget-icon-box .elementor-icon-box-title {
  font-family: var(--e-global-typography-secondary-font-family);
  font-weight: var(--e-global-typography-secondary-font-weight);
  text-transform: var(--e-global-typography-secondary-text-transform);
  font-style: var(--e-global-typography-secondary-font-style);
  text-decoration: var(--e-global-typography-secondary-text-decoration);
  line-height: var(--e-global-typography-secondary-line-height);
  letter-spacing: var(--e-global-typography-secondary-letter-spacing);
  font-size: 20px;
  font-size: 1.25rem;
  text-transform: none;
  color: var(--e-global-color-secondary);
}
/* elementor.css #1159 */
.elementor-widget-icon-box:hover {
  cursor: pointer;
}
/* elementor.css #1160 */
.elementor-widget-icon-box:hover .elementor-icon, .elementor-widget-icon-box:hover .elementor-icon-box-title {
  color: var(--e-global-color-primary);
}
/* elementor.css #1161 */
.elementor-view-framed .elementor-icon, .elementor-view-default .elementor-icon {
  color: var(--e-global-color-primary);
  border-color: var(--e-global-color-primary);
}
/* elementor.css #1172 */
.elementor-image-box-wrapper {
  position: relative;
}
/* elementor.css #1173 */
.elementor-image-box-wrapper .elementor-image-box-title {
  -ms-transition: transform 0.3s ease;
  -o-transition: transform 0.3s ease;
  -moz-transition: transform 0.3s ease;
  -webkit-transition: transform 0.3s ease;
  transition: transform 0.3s ease;
  font-family: var(--e-global-typography-secondary-font-family);
  font-weight: var(--e-global-typography-secondary-font-weight);
  text-transform: var(--e-global-typography-secondary-text-transform);
  font-style: var(--e-global-typography-secondary-font-style);
  text-decoration: var(--e-global-typography-secondary-text-decoration);
  line-height: var(--e-global-typography-secondary-line-height);
  letter-spacing: var(--e-global-typography-secondary-letter-spacing);
  font-size: 20px;
  font-size: 1.25rem;
  line-height: 26px;
  color: var(--e-global-color-secondary);
}
/* elementor.css #1178 */
.elementor-widget-n-accordion .e-n-accordion-item-title-icon {
  text-align: center;
}
/* elementor.css #1189 */
.elementor-widget-image a {
  display: block;
}
/* elementor.css #1191 */
.elementor-widget-icon-list .elementor-icon-list-items .elementor-icon-list-text {
  padding-left: 0;
}
/* elementor.css #1204 */
.elementor-widget-button .elementor-button {
  font-family: var(--e-global-typography-accent-font-family);
  font-weight: var(--e-global-typography-accent-font-weight);
  text-transform: var(--e-global-typography-accent-text-transform);
  font-style: var(--e-global-typography-accent-font-style);
  text-decoration: var(--e-global-typography-accent-text-decoration);
  line-height: var(--e-global-typography-accent-line-height);
  letter-spacing: var(--e-global-typography-accent-letter-spacing);
  background-color: var(--e-global-color-accent);
  border-radius: 0px;
  font-size: 16px;
  font-size: 1rem;
}
/* elementor.css #1208 */
.elementor-widget-button .elementor-button.elementor-size-md {
  padding: 15px 17px 15px 30px;
  font-size: 16px;
  font-size: 1rem;
  border-radius: 0px;
}
/* elementor.css #1211 */
.elementor-button-content-wrapper {
  align-items: center;
}
/* elementor.css #1257 */
:root {
  --scroll-bar: 8px;
}
/* elementor-grid.css #0 */
.elementor-grid {
  display: grid;
  grid-column-gap: var(--grid-column-gap);
  grid-row-gap: var(--grid-row-gap);
}
/* elementor-grid.css #1 */
.elementor-grid .elementor-grid-item {
  min-width: 0;
}
/* elementor-grid.css #2 */
.elementor-grid-1 .elementor-grid {
  grid-template-columns: repeat(1, 1fr);
}
/* elementor-grid.css #50 */
@media (max-width: 1024px) {
  .elementor-grid-tablet-1 .elementor-grid {
    grid-template-columns: repeat(1, 1fr);
  }
}
/* elementor-grid.css #74 */
@media (max-width: 767px) {
  .elementor-grid-mobile-1 .elementor-grid {
    grid-template-columns: repeat(1, 1fr);
  }
}
