.elementor-27815 .elementor-element.elementor-element-1181a457 > .elementor-container{max-width:500px;}.elementor-27815 .elementor-element.elementor-element-1181a457 > .elementor-background-overlay{background-image:url("https://www.sthpen.com.au/wp-content/uploads/2025/11/annual-awards.png");background-position:center center;background-repeat:no-repeat;background-size:cover;transition:background 0.3s, border-radius 0.3s, opacity 0.3s;}.elementor-27815 .elementor-element.elementor-element-1181a457{transition:background 0.3s, border 0.3s, border-radius 0.3s, box-shadow 0.3s;padding:0px 0px 0px 0px;}.elementor-27815 .elementor-element.elementor-element-df908ec > .elementor-widget-container{padding:50px 50px 50px 50px;}.elementor-27815 .elementor-element.elementor-element-4ecf2b8{--display:flex;--margin-top:25px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;}.elementor-27815 .elementor-element.elementor-element-4099414{--display:grid;--e-con-grid-template-columns:repeat(2, 1fr);--e-con-grid-template-rows:repeat(1, 1fr);--grid-auto-flow:row;--overlay-opacity:1;--padding-top:36px;--padding-bottom:32px;--padding-left:0px;--padding-right:0px;}.elementor-27815 .elementor-element.elementor-element-4099414::before, .elementor-27815 .elementor-element.elementor-element-4099414 > .elementor-background-video-container::before, .elementor-27815 .elementor-element.elementor-element-4099414 > .e-con-inner > .elementor-background-video-container::before, .elementor-27815 .elementor-element.elementor-element-4099414 > .elementor-background-slideshow::before, .elementor-27815 .elementor-element.elementor-element-4099414 > .e-con-inner > .elementor-background-slideshow::before, .elementor-27815 .elementor-element.elementor-element-4099414 > .elementor-motion-effects-container > .elementor-motion-effects-layer::before{--background-overlay:'';background-color:#FFFFFF;}.elementor-27815 .elementor-element.elementor-element-8c5f4b8{--display:grid;--e-con-grid-template-columns:repeat(3, 1fr);--e-con-grid-template-rows:repeat(2, 1fr);--grid-auto-flow:row;--overlay-opacity:1;--padding-top:36px;--padding-bottom:32px;--padding-left:0px;--padding-right:0px;}.elementor-27815 .elementor-element.elementor-element-8c5f4b8::before, .elementor-27815 .elementor-element.elementor-element-8c5f4b8 > .elementor-background-video-container::before, .elementor-27815 .elementor-element.elementor-element-8c5f4b8 > .e-con-inner > .elementor-background-video-container::before, .elementor-27815 .elementor-element.elementor-element-8c5f4b8 > .elementor-background-slideshow::before, .elementor-27815 .elementor-element.elementor-element-8c5f4b8 > .e-con-inner > .elementor-background-slideshow::before, .elementor-27815 .elementor-element.elementor-element-8c5f4b8 > .elementor-motion-effects-container > .elementor-motion-effects-layer::before{--background-overlay:'';background-color:#FFFFFF;}.elementor-27815 .elementor-element.elementor-element-96acbe8 > .elementor-container{max-width:500px;}.elementor-27815 .elementor-element.elementor-element-96acbe8 > .elementor-background-overlay{background-image:url("https://www.sthpen.com.au/wp-content/uploads/2025/11/annual-awards2-1.png");background-position:center center;background-repeat:no-repeat;background-size:cover;transition:background 0.3s, border-radius 0.3s, opacity 0.3s;}.elementor-27815 .elementor-element.elementor-element-96acbe8{transition:background 0.3s, border 0.3s, border-radius 0.3s, box-shadow 0.3s;padding:76px 0px 70px 0px;}.elementor-27815 .elementor-element.elementor-element-343ca86{--display:flex;}@media(max-width:1024px){.elementor-27815 .elementor-element.elementor-element-4099414{--grid-auto-flow:row;}.elementor-27815 .elementor-element.elementor-element-8c5f4b8{--grid-auto-flow:row;}}@media(max-width:767px){.elementor-27815 .elementor-element.elementor-element-1181a457 > .elementor-container{max-width:500px;}.elementor-27815 .elementor-element.elementor-element-1181a457 > .elementor-background-overlay{background-position:center right;}.elementor-27815 .elementor-element.elementor-element-1181a457{padding:40px 0px 40px 0px;}.elementor-27815 .elementor-element.elementor-element-4ecf2b8{--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:24px;--padding-bottom:0px;--padding-left:15px;--padding-right:15px;}.elementor-27815 .elementor-element.elementor-element-4099414{--e-con-grid-template-columns:repeat(1, 1fr);--grid-auto-flow:row;--padding-top:0px;--padding-bottom:0px;--padding-left:15px;--padding-right:15px;}.elementor-27815 .elementor-element.elementor-element-8c5f4b8{--e-con-grid-template-columns:repeat(1, 1fr);--grid-auto-flow:row;--padding-top:0px;--padding-bottom:0px;--padding-left:15px;--padding-right:15px;}.elementor-27815 .elementor-element.elementor-element-96acbe8 > .elementor-container{max-width:500px;}.elementor-27815 .elementor-element.elementor-element-96acbe8{padding:40px 0px 40px 0px;}}@media(min-width:768px){.elementor-27815 .elementor-element.elementor-element-4099414{--content-width:888px;}.elementor-27815 .elementor-element.elementor-element-8c5f4b8{--content-width:888px;}}/* Start custom CSS for html, class: .elementor-element-09edadd */.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0,0,0,0);
  border: 0;
}/* End custom CSS */
/* Start custom CSS for html, class: .elementor-element-a7a08c8 */.sessions .day-block {
  padding: 12px 0;
  border-bottom: 1px solid #ddd; /* thin divider */
}

.sessions .day-block:last-child {
  border-bottom: none; /* remove divider after last */
}

.sessions .session {
  margin-bottom: 8px;
}

.sessions .session:last-child {
  margin-bottom: 0; /* tighten spacing inside day group */
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-4099414 */.spba-schedule {
  font-size: 0.95rem;
  text-align: left;
  margin: 1rem 0;
  padding: 1rem;
  border: 1px solid #eee;
  border-radius: 8px;
  background: #fafafa;
}

.spba-schedule h4 {
  margin: 0 0 0.75rem;
  font-size: 1rem;
  text-align: center;
}

.spba-schedule .session {
  margin-bottom: 1rem;
  padding-bottom: 0.75rem;
  border-bottom: 1px solid #e0e0e0;
}

.spba-schedule .session:last-child {
  border-bottom: none;
  margin-bottom: 0;
  padding-bottom: 0;
}

.spba-schedule .cost {
  margin-top: 1rem;
  font-weight: 600;
  text-align: center;
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-8c5f4b8 */.spba-schedule {
  font-size: 0.95rem;
  text-align: left;
  margin: 1rem 0;
  padding: 1rem;
  border: 1px solid #eee;
  border-radius: 8px;
  background: #fafafa;
}

.spba-schedule h4 {
  margin: 0 0 0.75rem;
  font-size: 1rem;
  text-align: center;
}

.spba-schedule .session {
  margin-bottom: 1rem;
  padding-bottom: 0.75rem;
  border-bottom: 1px solid #e0e0e0;
}

.spba-schedule .session:last-child {
  border-bottom: none;
  margin-bottom: 0;
  padding-bottom: 0;
}

.spba-schedule .cost {
  margin-top: 1rem;
  font-weight: 600;
  text-align: center;
}/* End custom CSS */
/* Start custom CSS *//* =========================================
   iPhone overflow hardening (page-scoped)
   ========================================= */

/* Viewport + page guard (merged duplicate rules) */
html,
body {
  width: 100%;
  max-width: 100%;
  overflow-x: hidden;
  background-color: #fff; /* match site bg so no odd gutter color */
  overscroll-behavior-x: none; /* iOS/modern browsers */
}

/* Constrain this page containers */
body.page-id-1234 .elementor-section .elementor-container,
body.page-id-1234 .e-con.e-flex,
body.page-id-1234 .e-con {
  max-width: 820px;
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  padding-left: 16px;
  padding-right: 16px;
  box-sizing: border-box;
}

/* Stretched sections can slip on iOS when Elementor offsets with left: */
body.page-id-1234 .elementor-section.elementor-section-stretched {
  width: 100% !important;
  left: 0 !important;
  right: 0 !important; /* keep centered without horizontal offset */
  margin-left: 0 !important;
  margin-right: 0 !important;
}

/* If Elementor (or inline styles) uses calc(-50vw + 50%) to offset, neutralize it */
body.page-id-1234 [style*="calc(-50vw"] {
  left: 0 !important;
  right: 0 !important;
}

/* Any full width wrappers should never exceed 100% width */
body.page-id-1234 .elementor,
body.page-id-1234 .elementor-section,
body.page-id-1234 .elementor-container,
body.page-id-1234 .elementor-column,
body.page-id-1234 .elementor-widget-wrap {
  overflow-x: hidden;
  max-width: 100%;
}

/* Media should never overflow */
body.page-id-1234 img,
body.page-id-1234 video,
body.page-id-1234 iframe {
  max-width: 100%;
  height: auto;
  display: block;
}

/* Long words or URLs */
body.page-id-1234 .elementor-widget,
body.page-id-1234 .elementor-widget * {
  overflow-wrap: anywhere;
  word-wrap: break-word;
}

/* Inline 100vw is a common culprit; use percentages instead */
body.page-id-1234 [style*="100vw"] {
  width: 100% !important;
  max-width: 100% !important;
}

/* Negative margins pushing content off-screen */
body.page-id-1234 [style*="margin-left:-"],
body.page-id-1234 [style*="margin-right:-"] {
  margin-left: 0 !important;
  margin-right: 0 !important;
}

/* Elementor sliders and maps can overflow by a pixel or two */
body.page-id-1234 .elementor-widget-image-carousel,
body.page-id-1234 .elementor-widget-slides,
body.page-id-1234 .elementor-widget-google_maps {
  overflow: hidden;
}

/* =========================================
   Back to Top button
   ========================================= */

/* Smooth scroll, but respect reduced motion */
html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
}

.back-to-top { display: none; } /* hidden on desktop */

@media (max-width: 768px) {
  .back-to-top {
    display: flex;
    align-items: center;
    justify-content: center;
    position: fixed;
    bottom: 20px;
    right: 20px;
    width: 44px;
    height: 44px;
    background: #fdd312; /* SPBA yellow */
    border-radius: 50%;
    box-shadow: 0 4px 10px rgba(0,0,0,0.2);
    z-index: 999;
    text-decoration: none;
    -webkit-tap-highlight-color: transparent;
    touch-action: manipulation;
  }

  /* Ensure SVG icon is styled and visible */
  .back-to-top svg {
    width: 20px;
    height: 20px;
    stroke: #000;          /* black arrow for contrast */
    stroke-width: 2;
    fill: none;            /* avoid unexpected fills overriding stroke */
    display: block;
  }

  .back-to-top:hover { background: #fdd312; } /* no hover change on mobile */

  /* Respect iPhone safe areas: support both legacy and modern syntax */
  @supports (padding: max(0px)) {
    .back-to-top {
      bottom: max(20px, constant(safe-area-inset-bottom)); /* legacy iOS */
      bottom: max(20px, env(safe-area-inset-bottom));      /* modern */
      right:  max(20px, constant(safe-area-inset-right));
      right:  max(20px, env(safe-area-inset-right));
    }
  }
}

/* Optional: focus ring for accessibility when tabbing */
.back-to-top:focus-visible {
  outline: 2px solid #000;
  outline-offset: 2px;
}/* End custom CSS */