/*!
 Theme Name: Rubrum
 Theme URI:
 Author: Dev Team
 Author URI:
 Description: Rubrum is a blank canvas for your ideas and it makes the block editor your best brush.
 Requires at least: 6.6
 Tested up to: 6.8.3
 Requires PHP: 8.0
 Version: 6.8
 Text Domain: rubrum
*/


/** Add your custom styles here **/


h3, h4, h5 {
    font-family: "Stack Sans Text", sans-serif !important;
}
h3 {
    color: var(--wp--preset--color--primary);
}
p a {
    text-decoration: underline;
}
.source {
    color: var(--wp--preset--color--tertiary);
    font-size: 14px;
    font-weight: 300;
}
.heading-control {
    max-width: 480px;
}
.heading-control-2 {
    max-width: 376px;
}
.heading-control-3 {
    max-width: 580px;
}

@media (max-width: 991.98px) {
    .is-content-justification-right > :where(:not(.alignleft):not(.alignright):not(.alignfull)) {
        margin-left: 0 !important;
        margin-right: auto !important;
    }
}

.icon-warning {
    height: 32px;
    width: 32px;
}


/** Marquee Scroller **/
.section-scrolling-text {
    overflow: hidden;
    display: flex;
    align-items: center;
    position: relative;
}
/* The scrolling track */
.section-inner-scrolling-text {
    display: flex;
    width: max-content;
    min-width: 200%;
    will-change: transform;
    animation: marquee-scroll 24s linear infinite;
    animation-delay: 0s;
}
/* Each repeated message container */
.marquee-content {
    display: flex;
    align-items: center;
    justify-content: space-around;
    /* Prevent text from wrapping into multiple lines */
    white-space: nowrap;
    /* Visual anchors: Add a predictable gap between the two tracks */
    padding-right: var(--wp--preset--spacing--40);
}
/* Individual text items */
.marquee-content > * {
    display: inline-flex;
    align-items: center;
}
/* Seamless infinite loop using 3D hardware acceleration */
@keyframes marquee-scroll {
    0% {
        transform: translate3d(0, 0, 0);
    }
    100% {
        /* Must be exactly -50% with two identical HTML groups */
        transform: translate3d(-50%, 0, 0);
    }
}


/** Horizontal Image Scroll - WordPress Specific Grid Reset **/





/** Full-Width Horizontal Pin Sequence Timeline - Strictly Capped Multi-Peek **/

/* 1. Reset the parent wrapper injected by JavaScript to span the clean window width */
.horizontal-scroll-pin-wrapper {
    width: 100% !important;     /* Changed from 100vw to eliminate the 15px scrollbar bulge */
    max-width: 100% !important;
    margin-left: calc(50% - 50%) !important;
    margin-right: calc(50% - 50%) !important;
    position: relative !important;
}

/* 2. Lock container directly to the viewport window box bounds without overflow leaks */
.wp-block-group.scroll-container.alignfull.is-layout-flex {
    display: grid !important;
    grid-auto-flow: column !important;
    grid-auto-columns: max-content !important;
    overflow-x: hidden !important;
    overflow-y: hidden !important;

    /* Responsive image row container height capped at 650px */
    height: min(55vh, 650px) !important;
    max-height: 650px !important;

    /* REPLACED FIXED WITH STICKY: Aligns perfectly centered on viewport window boxes */
    position: sticky !important;
    position: -webkit-sticky !important; /* Safari compatibility */
    top: calc(50% - (min(55vh, 650px) / 2)) !important;
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
    max-width: 100% !important;

    /* Reset all problematic theme variables */
    margin: 0 !important;
    padding: 0 !important;
    z-index: 10 !important;

    /* REMOVED TRANSITION ENGINES: Permanently viewable alongside surrounding elements */
    opacity: 1 !important;
    pointer-events: auto !important;
}

/* Hide scrollbars completely across Chrome/Safari/Edge */
.wp-block-group.scroll-container.alignfull.is-layout-flex::-webkit-scrollbar {
    display: none !important;
}

/* 3. Style the image figure wrappers to match the layout height variables */
.wp-block-group.scroll-container.alignfull.is-layout-flex figure.wp-block-image {
    height: 55vh !important;
    max-height: 650px !important;
    width: auto !important;
    margin: 0 40px 0 0 !important; /* Distance gap between your images */
    padding: 0 !important;
    display: block !important;
}

/* Ensure the first image starts perfectly flush against the left screen edge */
.wp-block-group.scroll-container.alignfull.is-layout-flex figure.wp-block-image:first-child {
    padding-left: 0 !important;
}

/* Adds trailing buffer space after the final image finishes its rotation path */
.wp-block-group.scroll-container.alignfull.is-layout-flex figure.wp-block-image:last-child {
    margin-right: 0 !important;
    padding-right: 25vw !important;
}

/* 4. Force the underlying responsive webp image tags to respect the max-height limit */
.wp-block-group.scroll-container.alignfull.is-layout-flex figure.wp-block-image img {
    height: 100% !important;
    max-height: 650px !important; /* Strict protection boundary */
    width: auto !important; /* Scales width down proportionally based on our height limits */
    max-width: none !important;
    object-fit: contain !important;
    display: block !important;
}

/* 5. Structural Theme Overrides & Reset Utilities */
.entry-content,
.wp-block-post-content,
.wp-site-blocks,
main {
    overflow: visible !important;
    position: relative !important;
}

html, body {
    scroll-behavior: auto !important;
}

.wp-block-group.scroll-container.alignfull.is-layout-flex:focus {
    outline: none !important;
    box-shadow: none !important;
}





/** Footer **/

footer * a {
    text-decoration: none;
}


