/* Half Hero V2 Block Styles */
.halfHeroV2 {
    position: relative;
    overflow: hidden;
  }
  
  .halfHeroV2__container {
    display: flex;
    align-items: stretch;
    min-height: 510px;
    position: relative;
  }
  
  .halfHeroV2__leftPanel {
    width: 50%;
    padding: 45px 60px 45px 0;
    display: flex;
    align-items: center;
    order: 1;
    z-index: 2;
    position: relative;
  }
  
  .halfHeroV2__title {
    margin-bottom: 20px;
    font-weight: 600;
  }
  
  /* Text sizing options */
  .halfHeroV2__title--small {
    font-size: 2.25rem;
    line-height: 1.3;
  }
  
  .halfHeroV2__title--large {
    font-size: 3.5rem;
    line-height: 1.2;
  }
  
  .halfHeroV2__title--xl {
    font-size: 4.5rem;
    line-height: 1.1;
  }
  
  .halfHeroV2__text {
    max-width: 627px;
    margin-bottom: 30px;
  }
  
  .halfHeroV2__text--large p,
  .halfHeroV2__text--large li,
  .halfHeroV2__text--large {
    font-size: 1.25rem !important;
    line-height: 1.5 !important;
  }
  
  .halfHeroV2__text--xl p,
  .halfHeroV2__text--xl li,
  .halfHeroV2__text--xl {
    font-size: 1.5rem !important;
    line-height: 1.4 !important;
  }
  
  /* Ensure nested elements also get sized */
  .halfHeroV2__text--large * {
    font-size: 1.25rem !important;
    line-height: 1.5 !important;
  }
  
  .halfHeroV2__text--xl * {
    font-size: 1.5rem !important;
    line-height: 1.4 !important;
  }
  
  .halfHeroV2__buttonGroupTitle {
    margin-bottom: 20px;
    font-size: 1.25rem;
    color: #000000;
  }
  
  .halfHeroV2__buttonGroupTitle--normal {
    font-weight: 400;
  }
  
  .halfHeroV2__buttonGroupTitle--bold {
    font-weight: 700;
  }
  
  .halfHeroV2__buttonGroupTitle--white {
    color: #ffffff;
  }
  
  .halfHeroV2__buttons {
    display: flex;
    flex-wrap: wrap;
    gap: 15px;
  }
  
  .halfHeroV2__buttons--stacked {
    flex-direction: column;
    align-items: flex-start;
    gap: 18px;
  }
  
  .halfHeroV2__button {
    display: inline-flex;
    align-items: center;
    padding: 12px 24px;
    border-radius: 50px;
    text-decoration: none;
    font-weight: 500;
    transition: all 0.3s ease;
    border: 2px solid transparent;
    font-family: "Pastiche Grotesque", "Open Sans", sans-serif;
  }
  
  /* Button text size options */
  .halfHeroV2__button--small {
    font-size: 1rem;
    padding: 12px 24px;
  }
  
  .halfHeroV2__button--large {
    font-size: 1.125rem;
    padding: 14px 28px;
  }
  
  .halfHeroV2__button--xl {
    font-size: 1.25rem;
    padding: 16px 32px;
  }
  
  .halfHeroV2__button--primary {
    background-color: #FFCF00;
    color: #000000;
  }
  
  .halfHeroV2__button--primary:hover {
    opacity: 0.8;
    transform: translateY(-2px);
  }
  
  .halfHeroV2__button--secondary {
    background-color: #000000;
    color: #ffffff;
  }
  
  .halfHeroV2__button--secondary:hover {
    opacity: 0.8;
    transform: translateY(-2px);
  }
  
  .halfHeroV2__button--outline {
    background-color: transparent;
    color: #000000;
    border-color: #000000;
  }
  
  .halfHeroV2__button--outline:hover {
    opacity: 0.8;
    transform: translateY(-2px);
  }
  
  .halfHeroV2__rightPanel {
    position: absolute;
    top: 0;
    bottom: 0;
    width: 50%;
    height: 100%;
    overflow: hidden;
    z-index: 1;
  }
  
  .halfHeroV2__rightPanel .image {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
  
  /* Image object position options */
  .halfHeroV2__image--center {
    object-position: center;
  }
  
  .halfHeroV2__image--top {
    object-position: top;
  }
  
  .halfHeroV2__image--bottom {
    object-position: bottom;
  }
  
  .halfHeroV2__image--left {
    object-position: left;
  }
  
  .halfHeroV2__image--right {
    object-position: right;
  }
  
  .halfHeroV2__logo {
    position: absolute;
    bottom: 0;
    right: 45px;
    z-index: 2;
  }
  
  .halfHeroV2__logo img {
    max-width: 112px;
    height: auto;
  }
  
  /* Image position variants */
  .halfHeroV2--img-left .halfHeroV2__container {
    flex-direction: row-reverse;
  }
  
  .halfHeroV2--img-left .halfHeroV2__leftPanel {
    order: 2;
    padding: 45px 0 45px 60px;
  }
  
  .halfHeroV2--img-left .halfHeroV2__rightPanel {
    left: 0;
    right: auto;
    width: 50%;
  }
  
  .halfHeroV2--img-left .halfHeroV2__logo {
    left: 45px;
    right: auto;
  }
  
  .halfHeroV2--img-right .halfHeroV2__leftPanel {
    order: 1;
  }
  
  .halfHeroV2--img-right .halfHeroV2__rightPanel {
    right: 0;
    left: auto;
    width: 50%;
  }
  
  .halfHeroV2--img-right .halfHeroV2__logo {
    right: 45px;
    left: auto;
  }
  
  .halfHeroV2--img-right .halfHeroV2__container{padding-right:0;}
  .halfHeroV2--img-left .halfHeroV2__container{padding-left:0;}
  
  /* Medium screens */
  @media (max-width: 1439px) {
    .halfHeroV2__logo {
      right: 20px;
    }
  
    .halfHeroV2--img-left .halfHeroV2__logo {
      left: 20px;
      right: auto;
    }
  
    /* Ensure consistent padding on tablets */
    .halfHeroV2--img-left .halfHeroV2__leftPanel {
      padding: 45px 0 45px 45px;
    }
  
    .halfHeroV2__title--small {
      font-size: 2rem;
    }
  
    .halfHeroV2__title--large {
      font-size: 3rem;
    }
  
    .halfHeroV2__title--xl {
      font-size: 3.8rem;
    }
  
    .halfHeroV2__text--large p,
    .halfHeroV2__text--large li,
    .halfHeroV2__text--large * {
      font-size: 1.125rem !important;
    }
  
    .halfHeroV2__text--xl p,
    .halfHeroV2__text--xl li,
    .halfHeroV2__text--xl * {
      font-size: 1.25rem !important;
    }
  
    /* Force all image object positions to TOP on tablets */
    .halfHeroV2__image--center,
    .halfHeroV2__image--top,
    .halfHeroV2__image--bottom,
    .halfHeroV2__image--left,
    .halfHeroV2__image--right {
      object-position: top !important;
    }
  }
  
  /* Tablet and below */
  @media (max-width: 767px) {
    .halfHeroV2__container {
      flex-direction: column;
      padding: 0;
    }
    .halfHeroV2__rightPanel {
      width: 100%;
      position: relative;
      top: unset;
      left: unset;
      height: auto;
      padding-bottom: 51%;
      order: 1 !important;
    }
    .halfHeroV2__rightPanel .image {
      position: absolute !important;
      top: 0;
      left: 0;
      width: 100% !important;
      height: 100% !important;
      object-fit: cover;
      object-position: top !important;
      display: block;
    }
    .halfHeroV2__leftPanel {
      width: 100%;
      padding: 22px 15px 30px;
      order: 2 !important;
      min-height: unset;
    }
  
    .halfHeroV2__logo {
      display: none;
    }
  
    /* Mobile button container - consistent for all variants */
    .halfHeroV2__buttons {
      flex-direction: column;
      align-items: stretch;
      gap: 14px;
      width: 100%;
    }
  
    /* All mobile buttons - consistent base styles */
    .halfHeroV2__buttons .halfHeroV2__button,
    .halfHeroV2__buttons--stacked .halfHeroV2__button {
      width: 100% !important;
      min-height: 48px;
      display: flex !important;
      align-items: center;
      justify-content: center;
      text-align: center;
      border-radius: 50px;
      font-weight: 500;
      text-decoration: none;
      transition: all 0.2s ease;
      box-sizing: border-box;
    }
  
    /* Mobile button size adjustments - consistent padding and font sizes */
    .halfHeroV2__button--small {
      font-size: 1rem !important;
      padding: 14px 24px !important;
      min-height: 48px;
    }
  
    .halfHeroV2__button--large {
      font-size: 1.125rem !important;
      padding: 16px 28px !important;
      min-height: 52px;
    }
  
    .halfHeroV2__button--xl {
      font-size: 1.25rem !important;
      padding: 18px 32px !important;
      min-height: 56px;
    }
  
    /* Ensure mobile hover states work properly */
    .halfHeroV2__button:active,
    .halfHeroV2__button:focus {
      transform: scale(0.98);
      opacity: 0.9;
    }
  
    /* Button group title mobile consistency */
    .halfHeroV2__buttonGroupTitle {
      margin-bottom: 16px;
      font-size: 1.125rem;
      text-align: left;
    }
  
    /* Ensure variant overrides don't affect mobile button layout */
    .halfHeroV2--img-right .halfHeroV2__buttons,
    .halfHeroV2--img-left .halfHeroV2__buttons {
      width: 100% !important;
      flex-direction: column !important;
      align-items: stretch !important;
    }
  
    .halfHeroV2--img-right .halfHeroV2__button,
    .halfHeroV2--img-left .halfHeroV2__button {
      width: 100% !important;
      justify-content: center !important;
    }
  
    /* Force all image object positions to TOP on mobile/tablet */
    .halfHeroV2__image--center,
    .halfHeroV2__image--top,
    .halfHeroV2__image--bottom,
    .halfHeroV2__image--left,
    .halfHeroV2__image--right {
      object-position: top !important;
    }
  
    .halfHeroV2__title--small {
      font-size: 1.875rem;
    }
  
    .halfHeroV2__title--large {
      font-size: 2.5rem;
    }
  
    .halfHeroV2__title--xl {
      font-size: 3rem;
    }
  
    .halfHeroV2__text--large p,
    .halfHeroV2__text--large li,
    .halfHeroV2__text--large * {
      font-size: 1rem !important;
    }
  
    .halfHeroV2__text--xl p,
    .halfHeroV2__text--xl li,
    .halfHeroV2__text--xl * {
      font-size: 1.125rem !important;
    }
  
    /* Ensure variant modifiers don't constrain image width and force consistent mobile layout */
    .halfHeroV2--img-right .halfHeroV2__rightPanel,
    .halfHeroV2--img-left .halfHeroV2__rightPanel {
      width: 100% !important;
      left: 0 !important;
      right: 0 !important;
      order: 1 !important;
    }
    
    /* Force consistent mobile ordering and padding for both image position variants */
    .halfHeroV2--img-right .halfHeroV2__leftPanel,
    .halfHeroV2--img-left .halfHeroV2__leftPanel {
      order: 2 !important;
      padding: 22px 15px 30px !important;
      width: 100% !important;
    }
    
    /* Ensure container follows mobile-first layout regardless of variant */
    .halfHeroV2--img-right .halfHeroV2__container,
    .halfHeroV2--img-left .halfHeroV2__container {
      flex-direction: column !important;
      padding: 0 !important;
    }
  }
  
  /* Mobile large */
  @media (max-width: 480px) {
    .halfHeroV2__rightPanel {
      padding-bottom: 71%;
    }
  
    .halfHeroV2__title--small {
      font-size: 1.75rem;
    }
  
    .halfHeroV2__title--large {
      font-size: 2rem;
    }
  
    .halfHeroV2__title--xl {
      font-size: 2.5rem;
    }
  
    .halfHeroV2__text--large p,
    .halfHeroV2__text--large li,
    .halfHeroV2__text--large * {
      font-size: 0.95rem !important;
    }
  
    .halfHeroV2__text--xl p,
    .halfHeroV2__text--xl li,
    .halfHeroV2__text--xl * {
      font-size: 1rem !important;
    }
  
    /* Mobile large button size adjustments - maintain consistency */
    .halfHeroV2__button--small {
      font-size: 0.95rem !important;
      padding: 12px 20px !important;
      min-height: 44px;
    }
  
    .halfHeroV2__button--large {
      font-size: 1rem !important;
      padding: 14px 24px !important;
      min-height: 48px;
    }
  
    .halfHeroV2__button--xl {
      font-size: 1.125rem !important;
      padding: 16px 28px !important;
      min-height: 52px;
    }
    
    /* Ensure button container remains consistent */
    .halfHeroV2__buttons {
      gap: 12px;
    }
  
    /* Force all image object positions to TOP on mobile-large as well */
    .halfHeroV2__image--center,
    .halfHeroV2__image--top,
    .halfHeroV2__image--bottom,
    .halfHeroV2__image--left,
    .halfHeroV2__image--right {
      object-position: top !important;
    }
  } 
  
  /* Bottom space utility classes */
  .halfHeroV2--bottom-small { margin-bottom: 32px; }
  .halfHeroV2--bottom-large { margin-bottom: 64px; }
  .halfHeroV2--bottom-xlarge { margin-bottom: 120px; }
  .halfHeroV2--bottom-none { margin-bottom: 0; }
  
  /* Button font weight utility */
  .halfHeroV2__button--normal { font-weight: 400 !important; }
  .halfHeroV2__button--bold { font-weight: 700 !important; }
  
  /* Improved button hover effect - only on devices that support hover */
  @media (hover: hover) and (pointer: fine) {
    .halfHeroV2__button:hover {
      opacity: 1;
      box-shadow: 0 8px 24px 0 rgba(0,0,0,0.10), 0 1.5px 4px 0 rgba(0,0,0,0.08);
      transform: scale(1.04) translateY(-2px);
      filter: brightness(1.08);
      transition: box-shadow 0.2s, transform 0.2s, filter 0.2s;
    }
  } 