/**
 * RH Page Builder Styles
 * Tailwind-inspired utility classes for the page builder
 */

/* ==========================================================================
   Typography Base
   ========================================================================== */

.rh-2025,
.rh-page-builder {
    font-family: 'Poppins', sans-serif;
}

/* ==========================================================================
   Spacing Utilities (Tailwind-inspired) - Scoped to RH Page Builder
   ========================================================================== */

/* Margin Top */
.rh-2025 .mt-0 { margin-top: 0; }
.rh-2025 .mt-1 { margin-top: 0.25rem; }
.rh-2025 .mt-2 { margin-top: 0.5rem; }
.rh-2025 .mt-3 { margin-top: 0.75rem; }
.rh-2025 .mt-4 { margin-top: 1rem; }
.rh-2025 .mt-5 { margin-top: 1.25rem; }
.rh-2025 .mt-6 { margin-top: 1.5rem; }
.rh-2025 .mt-8 { margin-top: 2rem; }
.rh-2025 .mt-10 { margin-top: 2.5rem; }
.rh-2025 .mt-12 { margin-top: 3rem; }
.rh-2025 .mt-16 { margin-top: 4rem; }
.rh-2025 .mt-20 { margin-top: 5rem; }
.rh-2025 .mt-24 { margin-top: 6rem; }

/* Margin Bottom */
.rh-2025 .mb-0 { margin-bottom: 0; }
.rh-2025 .mb-1 { margin-bottom: 0.25rem; }
.rh-2025 .mb-2 { margin-bottom: 0.5rem; }
.rh-2025 .mb-3 { margin-bottom: 0.75rem; }
.rh-2025 .mb-4 { margin-bottom: 1rem; }
.rh-2025 .mb-5 { margin-bottom: 1.25rem; }
.rh-2025 .mb-6 { margin-bottom: 1.5rem; }
.rh-2025 .mb-8 { margin-bottom: 2rem; }
.rh-2025 .mb-10 { margin-bottom: 2.5rem; }
.rh-2025 .mb-12 { margin-bottom: 3rem; }
.rh-2025 .mb-16 { margin-bottom: 4rem; }
.rh-2025 .mb-20 { margin-bottom: 5rem; }
.rh-2025 .mb-24 { margin-bottom: 6rem; }

/* Margin Left */
.rh-2025 .ml-0 { margin-left: 0; }
.rh-2025 .ml-1 { margin-left: 0.25rem; }
.rh-2025 .ml-2 { margin-left: 0.5rem; }
.rh-2025 .ml-3 { margin-left: 0.75rem; }
.rh-2025 .ml-4 { margin-left: 1rem; }
.rh-2025 .ml-5 { margin-left: 1.25rem; }
.rh-2025 .ml-6 { margin-left: 1.5rem; }
.rh-2025 .ml-8 { margin-left: 2rem; }
.rh-2025 .ml-10 { margin-left: 2.5rem; }
.rh-2025 .ml-12 { margin-left: 3rem; }

/* Margin Right */
.rh-2025 .mr-0 { margin-right: 0; }
.rh-2025 .mr-1 { margin-right: 0.25rem; }
.rh-2025 .mr-2 { margin-right: 0.5rem; }
.rh-2025 .mr-3 { margin-right: 0.75rem; }
.rh-2025 .mr-4 { margin-right: 1rem; }
.rh-2025 .mr-5 { margin-right: 1.25rem; }
.rh-2025 .mr-6 { margin-right: 1.5rem; }
.rh-2025 .mr-8 { margin-right: 2rem; }
.rh-2025 .mr-10 { margin-right: 2.5rem; }
.rh-2025 .mr-12 { margin-right: 3rem; }

/* Margin X-axis (left & right) */
.rh-2025 .mx-0 { margin-left: 0; margin-right: 0; }
.rh-2025 .mx-1 { margin-left: 0.25rem; margin-right: 0.25rem; }
.rh-2025 .mx-2 { margin-left: 0.5rem; margin-right: 0.5rem; }
.rh-2025 .mx-3 { margin-left: 0.75rem; margin-right: 0.75rem; }
.rh-2025 .mx-4 { margin-left: 1rem; margin-right: 1rem; }
.rh-2025 .mx-6 { margin-left: 1.5rem; margin-right: 1.5rem; }
.rh-2025 .mx-8 { margin-left: 2rem; margin-right: 2rem; }
.rh-2025 .mx-auto { margin-left: auto; margin-right: auto; }

/* Margin Y-axis (top & bottom) */
.rh-2025 .my-0 { margin-top: 0; margin-bottom: 0; }
.rh-2025 .my-1 { margin-top: 0.25rem; margin-bottom: 0.25rem; }
.rh-2025 .my-2 { margin-top: 0.5rem; margin-bottom: 0.5rem; }
.rh-2025 .my-3 { margin-top: 0.75rem; margin-bottom: 0.75rem; }
.rh-2025 .my-4 { margin-top: 1rem; margin-bottom: 1rem; }
.rh-2025 .my-6 { margin-top: 1.5rem; margin-bottom: 1.5rem; }
.rh-2025 .my-8 { margin-top: 2rem; margin-bottom: 2rem; }
.rh-2025 .my-10 { margin-top: 2.5rem; margin-bottom: 2.5rem; }
.rh-2025 .my-12 { margin-top: 3rem; margin-bottom: 3rem; }
.rh-2025 .my-16 { margin-top: 4rem; margin-bottom: 4rem; }
.rh-2025 .my-20 { margin-top: 5rem; margin-bottom: 5rem; }

/* Padding Top - Direct rem values (pt-4 = 4rem) */
.rh-2025 .pt-0 { padding-top: 0 !important; }
.rh-2025 .pt-1 { padding-top: 1rem !important; }
.rh-2025 .pt-2 { padding-top: 2rem !important; }
.rh-2025 .pt-3 { padding-top: 3rem !important; }
.rh-2025 .pt-4 { padding-top: 4rem !important; }
.rh-2025 .pt-5 { padding-top: 5rem !important; }
.rh-2025 .pt-6 { padding-top: 6rem !important; }
.rh-2025 .pt-8 { padding-top: 8rem !important; }
.rh-2025 .pt-10 { padding-top: 10rem !important; }
.rh-2025 .pt-12 { padding-top: 12rem !important; }

/* Padding Bottom - Direct rem values (pb-4 = 4rem) */
.rh-2025 .pb-0 { padding-bottom: 0 !important; }
.rh-2025 .pb-1 { padding-bottom: 1rem !important; }
.rh-2025 .pb-2 { padding-bottom: 2rem !important; }
.rh-2025 .pb-3 { padding-bottom: 3rem !important; }
.rh-2025 .pb-4 { padding-bottom: 4rem !important; }
.rh-2025 .pb-5 { padding-bottom: 5rem !important; }
.rh-2025 .pb-6 { padding-bottom: 6rem !important; }
.rh-2025 .pb-8 { padding-bottom: 8rem !important; }
.rh-2025 .pb-10 { padding-bottom: 10rem !important; }
.rh-2025 .pb-12 { padding-bottom: 12rem !important; }

/* Padding Left & Right - Tablet and Desktop only */
@media (min-width: 768px) {
    /* Padding Left - Direct rem values (pl-4 = 4rem) */
    .rh-2025 .pl-0 { padding-left: 0 !important; }
    .rh-2025 .pl-1 { padding-left: 1rem !important; }
    .rh-2025 .pl-2 { padding-left: 2rem !important; }
    .rh-2025 .pl-3 { padding-left: 3rem !important; }
    .rh-2025 .pl-4 { padding-left: 4rem !important; }
    .rh-2025 .pl-5 { padding-left: 5rem !important; }
    .rh-2025 .pl-6 { padding-left: 6rem !important; }
    .rh-2025 .pl-8 { padding-left: 8rem !important; }
    .rh-2025 .pl-10 { padding-left: 10rem !important; }
    .rh-2025 .pl-12 { padding-left: 12rem !important; }

    /* Padding Right - Direct rem values (pr-4 = 4rem) */
    .rh-2025 .pr-0 { padding-right: 0 !important; }
    .rh-2025 .pr-1 { padding-right: 1rem !important; }
    .rh-2025 .pr-2 { padding-right: 2rem !important; }
    .rh-2025 .pr-3 { padding-right: 3rem !important; }
    .rh-2025 .pr-4 { padding-right: 4rem !important; }
    .rh-2025 .pr-5 { padding-right: 5rem !important; }
    .rh-2025 .pr-6 { padding-right: 6rem !important; }
    .rh-2025 .pr-8 { padding-right: 8rem !important; }
    .rh-2025 .pr-10 { padding-right: 10rem !important; }
    .rh-2025 .pr-12 { padding-right: 12rem !important; }

    /* Padding X-axis (left & right) - Direct rem values (px-4 = 4rem) */
    .rh-2025 .px-0 { padding-left: 0 !important; padding-right: 0 !important; }
    .rh-2025 .px-1 { padding-left: 1rem !important; padding-right: 1rem !important; }
    .rh-2025 .px-2 { padding-left: 2rem !important; padding-right: 2rem !important; }
    .rh-2025 .px-3 { padding-left: 3rem !important; padding-right: 3rem !important; }
    .rh-2025 .px-4 { padding-left: 4rem !important; padding-right: 4rem !important; }
    .rh-2025 .px-5 { padding-left: 5rem !important; padding-right: 5rem !important; }
    .rh-2025 .px-6 { padding-left: 6rem !important; padding-right: 6rem !important; }
    .rh-2025 .px-8 { padding-left: 8rem !important; padding-right: 8rem !important; }
    .rh-2025 .px-10 { padding-left: 10rem !important; padding-right: 10rem !important; }
    .rh-2025 .px-12 { padding-left: 12rem !important; padding-right: 12rem !important; }
}

/* Padding Y-axis (top & bottom) - Direct rem values (py-4 = 4rem) */
.rh-2025 .py-0 { padding-top: 0 !important; padding-bottom: 0 !important; }
.rh-2025 .py-1 { padding-top: 1rem !important; padding-bottom: 1rem !important; }
.rh-2025 .py-2 { padding-top: 2rem !important; padding-bottom: 2rem !important; }
.rh-2025 .py-3 { padding-top: 3rem !important; padding-bottom: 3rem !important; }
.rh-2025 .py-4 { padding-top: 4rem !important; padding-bottom: 4rem !important; }
.rh-2025 .py-5 { padding-top: 5rem !important; padding-bottom: 5rem !important; }
.rh-2025 .py-6 { padding-top: 6rem !important; padding-bottom: 6rem !important; }
.rh-2025 .py-8 { padding-top: 8rem !important; padding-bottom: 8rem !important; }
.rh-2025 .py-10 { padding-top: 10rem !important; padding-bottom: 10rem !important; }
.rh-2025 .py-12 { padding-top: 12rem !important; padding-bottom: 12rem !important; }

/* Gap Utilities (for flex/grid) - Whole rem units */
.rh-2025 .gap-0 { gap: 0 !important; }
.rh-2025 .gap-1 { gap: 1rem !important; }
.rh-2025 .gap-2 { gap: 2rem !important; }
.rh-2025 .gap-3 { gap: 3rem !important; }
.rh-2025 .gap-4 { gap: 4rem !important; }
.rh-2025 .gap-5 { gap: 5rem !important; }
.rh-2025 .gap-6 { gap: 6rem !important; }
.rh-2025 .gap-8 { gap: 8rem !important; }
.rh-2025 .gap-10 { gap: 10rem !important; }
.rh-2025 .gap-12 { gap: 12rem !important; }

/* Extended Padding Utilities - Whole numbers only (pt-7 = 7rem) */
.rh-2025 .pt-7 { padding-top: 7rem !important; }
.rh-2025 .pt-9 { padding-top: 9rem !important; }
.rh-2025 .pt-11 { padding-top: 11rem !important; }

.rh-2025 .pb-7 { padding-bottom: 7rem !important; }
.rh-2025 .pb-9 { padding-bottom: 9rem !important; }
.rh-2025 .pb-11 { padding-bottom: 11rem !important; }

/* Extended Padding Left & Right - Tablet and Desktop only */
@media (min-width: 768px) {
    .rh-2025 .pl-7 { padding-left: 7rem !important; }
    .rh-2025 .pl-9 { padding-left: 9rem !important; }
    .rh-2025 .pl-11 { padding-left: 11rem !important; }

    .rh-2025 .pr-7 { padding-right: 7rem !important; }
    .rh-2025 .pr-9 { padding-right: 9rem !important; }
    .rh-2025 .pr-11 { padding-right: 11rem !important; }
}

/* ==========================================================================
   Layout & Container
   ========================================================================== */

.rh-page-builder {
    width: 100%;
}

/* Block Spacing - Add top margin when blocks are stacked */
.rh-2025 .rh-block + .rh-block {
    margin-top: 1rem;
    margin-bottom: 0;
    padding-top: 0;
    padding-bottom: 0;
}

.rh-2025 {
    width: 100%;
}

.rh-2025 .rh-section {
    width: 100%;
}

.rh-2025 .rh-section .container {
    max-width: 1330px;
    margin: 0 auto;
    padding: 0 15px;
}

/* ==========================================================================
   Columns Layout (Flexbox)
   ========================================================================== */

.rh-2025 .rh-columns {
    display: flex;
    flex-wrap: wrap;
    gap: 2rem;
}

/* Vertical Alignment */
.rh-align-start {
    align-items: flex-start;
}

.rh-align-center {
    align-items: center;
}

.rh-align-end {
    align-items: flex-end;
}

/* ==========================================================================
   Column Widths (Desktop)
   ========================================================================== */

.rh-2025 .rh-column {
    flex: 0 0 auto;
}

/* Mobile: All columns full width by default */
.rh-w-full,
.rh-w-1\/2,
.rh-w-1\/3,
.rh-w-2\/3,
.rh-w-2\/5,
.rh-w-3\/5 {
    width: 100%;
}

/* Mobile-only: Custom column ordering and margin bottom */
@media (max-width: 767px) {
    .rh-column {
        order: var(--mobile-order, 0);
    }
    
    .rh-mobile-mb-0-5 {
        margin-bottom: 0.5rem;
    }
    
    .rh-mobile-mb-1 {
        margin-bottom: 1rem;
    }
    
    .rh-mobile-mb-1-5 {
        margin-bottom: 1.5rem;
    }
    
    .rh-mobile-mb-2 {
        margin-bottom: 2rem;
    }
    
    .rh-mobile-mb-2-5 {
        margin-bottom: 2.5rem;
    }
    
    .rh-mobile-mb-3 {
        margin-bottom: 3rem;
    }
}

/* ==========================================================================
   Responsive: Tablet (768px and up)
   ========================================================================== */

@media (min-width: 768px) {
    .rh-columns {
        gap: 0;
        
    }
    
    /* Tablet: Proportional column widths */
    .rh-w-full {
        width: 100%;
    }
    
    .rh-w-1\/2 {
        width: calc(50% - 1rem);
    }
    
    .rh-w-1\/3 {
        width: calc(33.333% - 1.333rem);
    }
    
    .rh-w-2\/3 {
        width: calc(66.666% - 0.666rem);
    }
    
    .rh-w-2\/5 {
        width: calc(40% - 1.2rem);
    }
    
    .rh-w-3\/5 {
        width: calc(60% - 0.8rem);
    }
}

/* ==========================================================================
   Responsive: Desktop (1200px and up)
   ========================================================================== */

@media (min-width: 1200px) {
    /* Add desktop-specific overrides here if needed */
}

/* ==========================================================================
   Text Alignment
   ========================================================================== */

.rh-2025 .rh-text-left {
    text-align: left;
}

.rh-2025 .rh-text-center {
    text-align: center;
}

.rh-2025 .rh-text-right {
    text-align: right;
}

/* ==========================================================================
   Text Colors
   ========================================================================== */

.rh-2025 .text-black {
    color: #002244 !important;
}

.rh-2025 .text-blue {
    color: #006DC2 !important;
}

.rh-2025 .text-orange {
    color: #CD4104 !important;
}

/* Background Utilities */
.rh-2025 .bg-lines {
    background-image: url('https://www.rectanglehealth.com/wp-content/uploads/2025/11/lines-bg.jpg');
    background-position: center;
    background-size: cover;
    background-repeat: no-repeat;
}

.rh-2025 .bg-lines-white {
    background-image: url('https://www.rectanglehealth.com/wp-content/uploads/2025/11/lines-bg-white.jpg');
    background-position: center;
    background-size: cover;
    background-repeat: no-repeat;
}

.rh-2025 .bg-orange-bridge {
    background-image: url('https://www.rectanglehealth.com/wp-content/uploads/2025/11/bg-orange-bridge.jpg');
    background-position: center;
    background-size: cover;
    background-repeat: no-repeat;
}

.rh-2025 .bg-lightblue-gradient {
    background: linear-gradient(0deg, rgba(223, 236, 245, 0.00) 0.65%, #DFECF5 99.35%);
}
.rh-2025 .bg-lightblue {
    background-color: #F2F8FF;
}

/* ==========================================================================
   Heading Styles - Utility Classes
   ========================================================================== */

.rh-2025 .rh-heading {
    font-family: 'Poppins', sans-serif;
    font-style: normal;
    margin-bottom: 0;
}


.rh-2025 .heading--sm + .heading--xl,
.rh-2025 .heading--sm + .heading--lg{
    margin-top: 0.5rem;
}

.rh-2025 .rh-rich-text + .rh-cta-block {
    margin-top: 2rem;
}

.rh-2025 .rh-heading + .rh-images {
    margin-top: 3rem;
}

/* Heading XL - Hero/Display (Mobile first) */
.rh-2025 .heading--xl {
    font-size: 32px;
    font-weight: 700;
    line-height: 120%;
    letter-spacing: -0.8px;
}

/* Heading LG - Section Titles (Mobile first) */
.rh-2025 .heading--lg {
    font-size: 20px;
    font-weight: 600;
    line-height: 120%;
    letter-spacing: -0.3px;
}

/* Heading MD - Subsection Titles (Mobile first) */
.rh-2025 .heading--md {
    font-size: 16px;
    font-weight: 600;
    line-height: 120%;
    letter-spacing: 0px;
}

/* Heading SM - Card/Module Titles (Mobile first) */
.rh-2025 .heading--sm {
    font-size: 10px;
    font-weight: 600;
    line-height: 120%;
    letter-spacing: 1.6px;
}

/* Tablet and Desktop: Larger heading sizes */
@media (min-width: 768px) {
    .rh-2025 .heading--xl {
        font-size: 50px;
        letter-spacing: -1.4px;
    }
    
    .rh-2025 .heading--lg {
        font-size: 30px;
        letter-spacing: -0.5px;
    }
    
    .rh-2025 .heading--md {
        font-size: 20px;
        letter-spacing: 0px;
    }
    
    .rh-2025 .heading--sm {
        font-size: 12px;
        letter-spacing: 2px;
    }
}

/* Tablet and Desktop: Larger heading sizes */
@media (min-width: 1200px) {
    .rh-2025 .heading--xl {
        font-size: 70px;
    }
    
    .rh-2025 .heading--lg {
        font-size: 38px;
    }
    
    .rh-2025 .heading--md {
        font-size: 30px;
    }
    
    .rh-2025 .heading--sm {
        font-size: 20px;
    }
}

/* ==========================================================================
   Text/Body Utilities
   ========================================================================== */

/* Text Regular - Body Copy (Mobile first) */
.rh-2025 .text-regular,
.rh-2025 .rh-rich-text p,
.rh-2025 .rh-rich-text li {
    font-family: 'Poppins', sans-serif;
    font-size: 15px;
    font-style: normal;
    font-weight: 400;
    line-height: 160%;
}

/* Text Large - Emphasis/Intro (Mobile first) */
.rh-2025 .text-large {
    font-family: 'Poppins', sans-serif;
    font-size: 18px;
    font-style: normal;
    font-weight: 700;
    line-height: 150%;
}

/* Tablet and Desktop: Larger text sizes */
@media (min-width: 768px) {
    .text-regular,
    .rh-rich-text p,
    .rh-rich-text li {
        font-size: 17px;
    }
    
    .text-large {
        font-size: 20px;
    }
}

/* ==========================================================================
   Rich Text Block
   ========================================================================== */

.rh-2025 .rh-rich-text {
    margin-bottom: 1.5rem;
}

.rh-2025 .rh-rich-text p {
    margin-bottom: 1rem;
}

.rh-2025 .rh-rich-text p:last-child {
    margin-bottom: 0;
}

.rh-2025 .rh-rich-text ul,
.rh-2025 .rh-rich-text ol {
    margin-bottom: 1rem;
    padding-left: 1.5rem;
}

.rh-2025 .rh-rich-text li {
    margin-bottom: 0.5rem;
}

.rh-2025 .rh-rich-text a {
    color: #0066cc;
    text-decoration: underline;
}

.rh-2025 .rh-rich-text a:hover {
    color: #0052a3;
}

/* ==========================================================================
   Images Block - Horizontal Rows with Flexbox
   ========================================================================== */

.rh-2025 .rh-images {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
}

.rh-2025 .rh-images .rh-image,
.rh-2025 .rh-images .rh-image-link {
    max-width: 100%;
    height: auto;
    display: block;
}

.rh-2025 .rh-images .rh-image-link img {
    max-width: 100%;
    height: auto;
    display: block;
}

/* Images per row variations */
.rh-2025 .rh-images-per-row-6 .rh-image,
.rh-2025 .rh-images-per-row-6 .rh-image-link {
    width: calc(16.666% - 1.667rem);
}

/* Mobile first: 2 columns for 6-image layout */
.rh-images-per-row-6 .rh-image,
.rh-images-per-row-6 .rh-image-link {
    width: calc(50% - 1rem);
}

/* Tablet and up: 6 columns */
@media (min-width: 768px) {
    .rh-images-per-row-6 .rh-image,
    .rh-images-per-row-6 .rh-image-link {
        width: calc(16.666% - 1.666rem);
    }
}


/* ==========================================================================
   Video Block
   ========================================================================== */

.rh-2025 .rh-video {
    margin-bottom: 2rem;
}

.rh-2025 .rh-video-wrapper {
    position: relative;
    padding-bottom: 56.25%; /* 16:9 aspect ratio */
    height: 0;
    overflow: hidden;
}

.rh-2025 .rh-video-wrapper iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

.rh-2025 .rh-video-file video {
    width: 100%;
    height: auto;
    display: block;
}

/* ==========================================================================
   Drawer/Accordion Block
   ========================================================================== */

.rh-2025 .rh-drawer-block {
    margin-bottom: 0;
}

.rh-2025 .rh-drawer-block .accordion-item {
    border: none;
    background: transparent;
}

.rh-2025 .rh-drawer-block .accordion-item + .accordion-item{
    margin-top: 1rem;
}
.rh-2025 .rh-drawer-block .accordion-button {
    font-family: 'Poppins', sans-serif;
    font-size: 20px;
    font-weight: 700;
    line-height: 150%;
    color: #002244;
    background: transparent;
    border: none;
    padding: 0.5rem 0 0.5rem 1.5rem;
    position: relative;
    box-shadow: none;
    display: flex;
    align-items: center;
}

.rh-2025 .rh-drawer-block .accordion-button:not(.collapsed) {
    background: transparent;
    color: #002244;
    box-shadow: none;
}

.rh-2025 .rh-drawer-block .accordion-button:focus {
    box-shadow: none;
    border: none;
}

.rh-2025 .rh-drawer-block .accordion-button::after {
    display: none; /* Hide default Bootstrap arrow */
}

/* Simple Plus/Minus Icons - Text Characters */
.rh-2025 .rh-drawer-block .accordion-button::before {
    position: absolute;
    left: 0;
    top: .75rem;
    font-size: 24px;
    font-weight: 400;
    line-height: 1;
    color: #225395;
}

/* Plus icon */
.rh-2025 .rh-drawer-block .accordion-button.collapsed::before {
    content: '+';
}

/* Minus icon */
.rh-2025 .rh-drawer-block .accordion-button:not(.collapsed)::before {
    content: '-';
}

.rh-2025 .rh-drawer-block .accordion-body {
    font-family: 'Poppins', sans-serif;
    font-size: 17px;
    font-weight: 400;
    line-height: 160%;
    color: #002244;
    padding: 0 0 0 1.5rem;
}

.rh-2025 .rh-drawer-block .accordion-collapse {
    border: none;
}

.rh-2025 .rh-drawer-block .rh-drawer-cta {
    margin-top: 1.5rem;
    margin-bottom: 1.5rem;
}

/* ==========================================================================
   CTA Block - Button Utilities
   ========================================================================== */

.rh-2025 .rh-cta-block {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    margin-bottom: 2rem;
}

.rh-2025 .rh-cta-block.rh-cta-align-start {
    justify-content: flex-start;
}

.rh-2025 .rh-cta-block.rh-cta-align-center {
    justify-content: center;
}

.rh-2025 .rh-cta-block.rh-cta-align-end {
    justify-content: flex-end;
}

.rh-2025 .rh-cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    height: 48px;
    padding: 0 16px;
    border-radius: 50px;
    font-family: 'Poppins', sans-serif;
    font-size: 16px;
    font-weight: 600;
    text-decoration: none;
    border: none;
    cursor: pointer;
    transition: all 0.3s ease;
    white-space: nowrap;
}

.rh-2025 .rh-cta:hover {
    text-decoration: underline;
}

.rh-2025 .rh-cta-icon {
    max-width: 20px;
    max-height: 20px;
    display: inline-block;
    flex-shrink: 0;
}

/* CTA Blue - Primary Button */
.rh-2025 .cta-blue {
    height: 48px;
    padding: 0 16px;
    display: inline-flex;
    justify-content: center;
    align-items: center;
    border-radius: 50px;
    background: #006DC2;
    color: #ffffff;
    font-family: 'Poppins', sans-serif;
    font-size: 16px;
    font-weight: 600;
    text-decoration: none;
    transition: background-color 0.3s ease;
}

.rh-2025 .cta-blue:hover {
    background-color: #0058a3;
    color: #ffffff;
    text-decoration: none;
}

/* CTA Arrow - Text Link Style */
.rh-2025 .cta-arrow {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: transparent;
    border: none;
    padding: 0;
    height: auto;
    color: #002244;
    font-family: 'Poppins', sans-serif;
    font-size: 17px;
    font-weight: 400;
    line-height: 160%;
    text-decoration: none;
}

.rh-2025 .cta-arrow::after {
    content: '';
    display: inline-block;
    width: 9px;
    height: 14px;
    background-image: url('data:image/svg+xml,%3Csvg width="9" height="14" viewBox="0 0 9 14" fill="none" xmlns="http://www.w3.org/2000/svg"%3E%3Cpath d="M8.125 7.40625L2.0625 13.5C1.75 13.7812 1.28125 13.7812 1 13.5L0.28125 12.7812C0 12.5 0 12.0312 0.28125 11.7188L5.09375 6.875L0.28125 2.0625C0 1.75 0 1.28125 0.28125 1L1 0.28125C1.28125 0 1.75 0 2.0625 0.28125L8.125 6.375C8.40625 6.65625 8.40625 7.125 8.125 7.40625Z" fill="%23CD4104"/%3E%3C/svg%3E');
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    transition: transform 0.3s ease;
}

.rh-2025 .cta-arrow:hover::after {
    transform: translateX(4px);
}

/* Mobile first: Full width CTAs */
.rh-2025 .rh-cta {
    width: 100%;
    justify-content: center;
}

/* Tablet and up: Auto width CTAs */
@media (min-width: 768px) {
    .rh-2025 .rh-cta {
        width: auto;
        justify-content: flex-start;
    }
}

/* ==========================================================================
   Cards Block
   ========================================================================== */

.rh-2025 .rh-cards {
    display: flex;
    flex-direction: column; /* Mobile: stack vertically */
    gap: 1rem; /* Mobile: smaller gap */
    align-items: stretch;
}

.rh-2025 .rh-card {
    display: flex;
    flex-direction: row; /* Mobile: horizontal layout */
    align-items: flex-start;
    text-align: left;
    text-decoration: none;
    color: inherit;
    background: #ffffff;
    border: none;
    padding: 1.5rem 1rem;
    transition: transform 0.2s ease;
    height: auto;
    gap: 1rem;
}

.rh-2025 .rh-card:hover {
    transform: translateY(-2px);
    text-decoration: none;
}

.rh-2025 .rh-card-image {
    flex-shrink: 0; /* Prevent image from shrinking */
    width: 60px; /* Mobile: smaller image */
    max-width: 60px;
    margin-bottom: 0;
}

.rh-2025 .rh-card-img {
    width: 100%;
    height: auto;
    display: block;
}

.rh-2025 .rh-card-content {
    display: flex;
    flex-direction: column;
    align-items: flex-start; /* Mobile: left-aligned */
    gap: 0.5rem;
    flex: 1;
}

.rh-2025 .rh-card-heading {
    font-family: 'Poppins', sans-serif;
    font-size: 18px;
    font-weight: 600;
    line-height: 140%;
    color: #006DC2;
    margin: 0;
    display: flex;
    align-items: center;
    gap: 8px;
}

.rh-2025 .rh-card-heading::after {
    content: '';
    display: inline-block;
    width: 6px;
    height: 10px;
    background-image: url('data:image/svg+xml,%3Csvg width="9" height="14" viewBox="0 0 9 14" fill="none" xmlns="http://www.w3.org/2000/svg"%3E%3Cpath d="M8.125 7.40625L2.0625 13.5C1.75 13.7812 1.28125 13.7812 1 13.5L0.28125 12.7812C0 12.5 0 12.0312 0.28125 11.7188L5.09375 6.875L0.28125 2.0625C0 1.75 0 1.28125 0.28125 1L1 0.28125C1.28125 0 1.75 0 2.0625 0.28125L8.125 6.375C8.40625 6.65625 8.40625 7.125 8.125 7.40625Z" fill="%23006DC2"/%3E%3C/svg%3E');
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    transition: transform 0.3s ease;
}

.rh-2025 .rh-card:hover .rh-card-heading::after {
    transform: translateX(3px);
}

.rh-2025 .rh-card-text {
    font-family: 'Poppins', sans-serif;
    font-size: 14px;
    font-weight: 400;
    line-height: 160%;
    color: #666666;
    margin: 0;
}

/* Mobile: All cards full width regardless of per-row setting */
.rh-2025 .rh-card {
    width: 100%;
}

/* Tablet and up: Horizontal rows + vertical card layout */
@media (min-width: 768px) {
    /* Enable horizontal wrapping for cards */
    .rh-2025 .rh-cards {
        flex-direction: row;
        flex-wrap: wrap;
        gap: 2rem;
    }
    
    /* Cards per row variations - Tablet and up only */
    .rh-2025 .rh-cards-per-row-1 .rh-card {
        width: 100%;
    }
    
    .rh-2025 .rh-cards-per-row-2 .rh-card {
        width: calc(50% - 1rem);
    }
    
    .rh-2025 .rh-cards-per-row-3 .rh-card {
        width: calc(33.333% - 1.333rem);
    }
    
    .rh-2025 .rh-cards-per-row-4 .rh-card {
        width: calc(25% - 1.5rem);
    }
    
    /* Tablet and up: Vertical card layout */
    .rh-2025 .rh-card {
        flex-direction: column;
        align-items: center;
        text-align: center;
        gap: 0;
        padding: 2rem 1.5rem;
        height: 100%;
    }
    
    .rh-2025 .rh-card-image {
        width: auto;
        max-width: 120px;
        margin-bottom: 1.5rem;
    }
    
    .rh-2025 .rh-card-content {
        align-items: center;
    }
}

/* ==========================================================================
   HTML Block
   ========================================================================== */

.rh-2025 .rh-html-block {
    margin-bottom: 2rem;
}

.rh-2025 .rh-html-block iframe {
    max-width: 100%;
}

/* ==========================================================================
   Testimonials Block
   ========================================================================== */

.rh-2025 .rh-testimonials {
    position: relative;
}

.rh-2025 .rh-testimonial {
    display: flex;
    align-items: flex-start;
    justify-content: center;
    gap: 3rem;
    padding: 3rem 5rem;
    position: relative;
}

.rh-2025 .rh-testimonials-single .rh-testimonial {
    margin-bottom: 0;
}

.rh-2025 .rh-testimonial-content {
    flex: 1;
    max-width: 600px;
    text-align: left;
}

.rh-2025 .rh-testimonial-quote {
    font-family: 'Poppins', sans-serif;
    font-size: 24px;
    font-weight: 400;
    line-height: 150%;
    color: #002244;
    margin-bottom: 2rem;
    position: relative;
    padding-left: 100px;
}

.rh-2025 .rh-testimonial-quote::before {
    content: '';
    position: absolute;
    left: 0;
    top: 8px;
    width: 65px;
    height: 65px;
    background-image: url('data:image/svg+xml,%3Csvg width="80" height="65" viewBox="0 0 80 65" fill="none" xmlns="http://www.w3.org/2000/svg"%3E%3Cpath d="M52.8219 0H80L56.9863 65H39.4521L52.8219 0ZM13.3699 0H40.5479L17.5342 65H0L13.3699 0Z" fill="%23F47F31"/%3E%3C/svg%3E');
    background-size: contain;
    background-repeat: no-repeat;
    background-position: left top;
}

.rh-2025 .rh-testimonial-attribution {
    margin-bottom: 1.5rem;
    padding-left: 100px;
}

.rh-2025 .rh-attribution-primary {
    font-family: 'Poppins', sans-serif;
    font-size: 18px;
    font-weight: 700;
    line-height: 140%;
    color: #002244;
    margin-bottom: 0.25rem;
}

.rh-2025 .rh-attribution-secondary {
    font-family: 'Poppins', sans-serif;
    font-size: 16px;
    font-weight: 400;
    line-height: 150%;
    color: #006DC2;
    margin-bottom: 0;
}

.rh-2025 .rh-testimonial-cta {
    margin-left: 100px;
}

.rh-2025 .rh-testimonial-image {
    flex: 0 0 auto;
    width: 200px;
    height: 200px;
}

.rh-2025 .rh-testimonial-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 50%;
}

/* Testimonials Slider */
.rh-2025 .rh-testimonials-slider {
    position: relative;
}

.rh-2025 .rh-testimonials-slider-container {
    position: relative;
}

.rh-2025 .rh-testimonials-slides {
    margin-bottom: 1rem;
}

.rh-2025 .rh-testimonial-slide .rh-testimonial {
    margin-bottom: 0;
}

/* Slider Arrows - Simple Blue Chevrons */
.rh-2025 .rh-testimonials-arrows {
    position: absolute;
    top: 50%;
    left: 0;
    right: 0;
    transform: translateY(-50%);
    pointer-events: none;
    z-index: 10;
}

.rh-2025 .rh-arrow {
    position: absolute;
    width: 40px;
    height: 40px;
    cursor: pointer;
    pointer-events: all;
    transition: opacity 0.3s ease;
    display: flex;
    align-items: center;
    justify-content: center;
    background: transparent;
    border: none;
}

.rh-2025 .rh-arrow::before {
    content: '';
    width: 16px;
    height: 16px;
    border-top: 3px solid #006DC2;
    border-right: 3px solid #006DC2;
    transition: all 0.3s ease;
}

.rh-2025 .rh-arrow-prev {
    left: 20px;
}

.rh-2025 .rh-arrow-prev::before {
    transform: rotate(-135deg);
}

.rh-2025 .rh-arrow-next {
    right: 20px;
}

.rh-2025 .rh-arrow-next::before {
    transform: rotate(45deg);
}

.rh-2025 .rh-arrow:hover {
    opacity: 0.7;
}

.rh-2025 .rh-arrow:hover::before {
    transform: scale(1.1) rotate(-135deg);
}

.rh-2025 .rh-arrow-next:hover::before {
    transform: scale(1.1) rotate(45deg);
}

/* Slick Dots */
.rh-2025 .rh-testimonials-slider .slick-dots {
    display: flex !important;
    justify-content: center;
    gap: 10px;
    padding: 0;
    margin: 1.5rem 0 0 0;
    list-style: none;
}

.rh-2025 .rh-testimonials-slider .slick-dots li {
    margin: 0;
    padding: 0;
}

.rh-2025 .rh-testimonials-slider .slick-dots li button {
    width: 12px;
    height: 12px;
    padding: 0;
    border: 2px solid #0066cc;
    border-radius: 50%;
    background-color: transparent;
    font-size: 0;
    cursor: pointer;
    transition: all 0.3s ease;
}

.rh-2025 .rh-testimonials-slider .slick-dots li.slick-active button {
    background-color: #0066cc;
}

.rh-2025 .rh-testimonials-slider .slick-dots li button:hover {
    background-color: #0066cc;
    opacity: 0.7;
}

/* Mobile first: Vertical layout */
.rh-2025 .rh-testimonial {
    flex-direction: column;
    text-align: left;
    padding: 2rem 1.5rem;
    gap: 1.5rem;
}

.rh-2025 .rh-testimonial-content {
    text-align: left;
}

.rh-2025 .rh-testimonial-quote {
    padding-left: 0;
    padding-top: 0;
}

/* Hide quote icon on mobile */
.rh-2025 .rh-testimonial-quote::before {
    display: none;
}

.rh-2025 .rh-testimonial-attribution {
    padding-left: 0;
}

.rh-2025 .rh-testimonial-cta {
    margin-left: 0;
}

/* Hide profile image on mobile */
.rh-2025 .rh-testimonial-image {
    display: none;
}

/* Hide arrows on mobile, show dots only */
.rh-2025 .rh-testimonials-arrows {
    display: none;
}

/* Tablet and up: Horizontal layout */
@media (min-width: 768px) {
    .rh-2025 .rh-testimonial {
        flex-direction: row;
        text-align: left;
        padding: 3rem 4rem;
        gap: 3rem;
        align-items: center;
    }
    
    .rh-2025 .rh-testimonial-content {
        text-align: left;
    }
    
    .rh-2025 .rh-testimonial-quote {
        padding-left: 100px;
        padding-top: 0;
    }
    
    .rh-2025 .rh-testimonial-quote::before {
        display: block;
        left: 0;
    }
    
    .rh-2025 .rh-testimonial-attribution {
        padding-left: 100px;
    }
    
    .rh-2025 .rh-testimonial-cta {
        margin-left: 100px;
    }
    
    .rh-2025 .rh-testimonial-image {
        display: block;
        width: 200px;
        height: 200px;
        order: 2;
        align-self: center;
    }
    
    /* Show arrows on tablet/desktop */
    .rh-2025 .rh-testimonials-arrows {
        display: block;
    }
}

/* ==========================================================================
   Image Carousel Block
   ========================================================================== */

.rh-2025 .rh-image-carousel {
    width: 100%;
    position: relative;
    margin-bottom: 2rem;
}

.rh-2025 .rh-carousel-container {
    position: relative;
    width: 100%;
    overflow: hidden;
}

.rh-2025 .rh-carousel-image {
    width: 100%;
    height: auto;
    display: block;
    opacity: 0;
    visibility: hidden;
    transition: opacity var(--transition-duration, 1s) ease-in-out, 
                visibility 0s linear var(--transition-duration, 1s);
    pointer-events: none;
}

.rh-2025 .rh-carousel-image.active {
    opacity: 1;
    visibility: visible;
    transition: opacity var(--transition-duration, 1s) ease-in-out,
                visibility 0s linear 0s;
    pointer-events: auto;
}

/* Stack all images on top of each other */
.rh-2025 .rh-carousel-container .rh-carousel-image:not(:first-child) {
    position: absolute;
    top: 0;
    left: 0;
}

/* First image is relative to set container height, but still fades in/out */
.rh-2025 .rh-carousel-container .rh-carousel-image:first-child {
    position: relative;
}

/* ==========================================================================
   Mini Banner Block
   ========================================================================== */

.flex-content.mini-banner .inner {
    padding: 32px 0;
    position: relative;
}

.flex-content.mini-banner .inner.light,
.flex-content.mini-banner .inner.light-with-image {
    background: linear-gradient(244deg, #F3FAFF 28.62%, #FFF 78.08%);
}

.flex-content.mini-banner .inner.blue,
.flex-content.mini-banner .inner.blue-with-image {
    background: linear-gradient(244deg, #165492 28.62%, #024 78.08%);
}

.flex-content.mini-banner .inner.orange {
    background: #cd4104;
}

.flex-content.mini-banner .inner.blue-with-image:before,
.flex-content.mini-banner .inner.light-with-image:before {
    content: "";
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    opacity: 0;
    background-repeat: no-repeat;
    background-size: auto 100%;
    -webkit-transition: all 650ms ease-in-out;
    -moz-transition: all 650ms ease-in-out;
    -ms-transition: all 650ms ease-in-out;
    -o-transition: all 650ms ease-in-out;
    transition: all 650ms ease-in-out
}

.flex-content.mini-banner.active .inner.blue-with-image:before,
.flex-content.mini-banner.active .inner.light-with-image:before {
    left: 0;
    opacity: 1;
}

.flex-content.mini-banner .inner.blue-with-image:before {
    background-image: url("data:image/svg+xml,%3Csvg width='1512' height='100' viewBox='0 0 1512 100' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cg clip-path='url(%23clip0_6017_1539)'%3E%3Cpath d='M1271.54 -37H-105V150H1412L1271.54 -37Z' fill='white' fill-opacity='0.06'/%3E%3Cpath d='M1220.54 -37H-156V150H1361L1220.54 -37Z' fill='white' fill-opacity='0.06'/%3E%3C/g%3E%3Cdefs%3E%3CclipPath id='clip0_6017_1539'%3E%3Crect width='1512' height='100' fill='white'/%3E%3C/clipPath%3E%3C/defs%3E%3C/svg%3E%0A");
}

.flex-content.mini-banner .inner.light-with-image:before {
    background-image: url("data:image/svg+xml,%3Csvg width='1512' height='100' viewBox='0 0 1512 100' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cg clip-path='url(%23clip0_5975_508)'%3E%3Cpath d='M1247.54 -37H-129V150H1388L1247.54 -37Z' fill='url(%23paint0_linear_5975_508)' fill-opacity='0.3'/%3E%3Cpath d='M1196.54 -37H-180V150H1337L1196.54 -37Z' fill='url(%23paint1_linear_5975_508)' fill-opacity='0.3'/%3E%3C/g%3E%3Cdefs%3E%3ClinearGradient id='paint0_linear_5975_508' x1='1388' y1='56.5' x2='-129' y2='56.5' gradientUnits='userSpaceOnUse'%3E%3Cstop stop-color='%23DCEBF6'/%3E%3Cstop offset='1' stop-color='white'/%3E%3C/linearGradient%3E%3ClinearGradient id='paint1_linear_5975_508' x1='1337' y1='56.5' x2='-180' y2='56.5' gradientUnits='userSpaceOnUse'%3E%3Cstop stop-color='%23DCEBF6'/%3E%3Cstop offset='1' stop-color='white'/%3E%3C/linearGradient%3E%3CclipPath id='clip0_5975_508'%3E%3Crect width='1512' height='100' fill='white'/%3E%3C/clipPath%3E%3C/defs%3E%3C/svg%3E%0A");
}

.flex-content.mini-banner .content {
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    z-index: 2;
}

.flex-content.mini-banner .content > img {
    margin-right: 20px
}

.flex-content.mini-banner .content .text-outer {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}

.flex-content.mini-banner .content .text {
    font-size: 18px;
    line-height: 1.5;
}

.flex-content.mini-banner .content .btn-container {
    margin-left: 0;
    margin-top: 16px;
}

/* Tablet and up: Larger font */
@media only screen and (min-width: 768px) {
    .flex-content.mini-banner .content .text {
        font-size: 20px;
    }
}

/* Desktop: Even larger font */
@media only screen and (min-width: 1200px) {
    .flex-content.mini-banner .content .text {
        font-size: 22px;
    }
}

.flex-content.mini-banner .inner.blue .content .text,
.flex-content.mini-banner .inner.blue .content .text a,
.flex-content.mini-banner .inner.blue-with-image .content .text,
.flex-content.mini-banner .inner.blue-with-image .content .text a,
.flex-content.mini-banner .inner.orange .content .text,
.flex-content.mini-banner .inner.orange .content .text a {
    color: #fff;
}

.flex-content.mini-banner .content .text > *:last-child {
    margin-bottom: 0;
}

@media only screen and (max-width: 1399px) {
    .flex-content.mini-banner .inner.blue-with-image:before,
    .flex-content.mini-banner .inner.light-with-image:before {
        background-size: auto 100%;
        background-position: right;
    }
}

