/* RND Lab canonical layout, spacing and responsive containment.
 *
 * This file is loaded last on every public route. Route styles own visual
 * composition; this layer owns shared gutters, semantic spacing, containment,
 * mobile Header behavior and known cross-route responsive contracts.
 */

:root {
    --rnd-layout-page-inline: var(--rnd-content-inline, clamp(36px, 6vw, 120px));
    --rnd-layout-mobile-inline: 20px;
    --rnd-layout-panel-inline: 24px;
    --rnd-layout-section-block: clamp(40px, 6vw, 72px);
    --rnd-layout-hero-block-start: clamp(64px, 8vh, 96px);
    --rnd-layout-page-block-start: clamp(48px, 6vh, 64px);
    --rnd-layout-component-gap: 20px;
    --rnd-layout-control-gap: 12px;
    --rnd-layout-h1-margin: 0 0 24px;
    --rnd-layout-h2-margin: 0 0 20px;
    --rnd-layout-h3-margin: 0 0 14px;
    --rnd-layout-eyebrow-margin: 0 0 14px;
    --rnd-layout-lead-margin: 16px 0 0;
    --rnd-layout-product-max: 1500px;
}

/* Shared full-page section navigator and native scrolling contract */
html.rnd-has-fullpage.rnd-native-scroll {
    scroll-behavior:auto !important;
    scroll-snap-type:none !important;
}
html.rnd-has-fullpage.rnd-native-scroll [data-rndlab-fullpage-panel] {
    scroll-margin-top:0;
    scroll-snap-align:none !important;
    scroll-snap-stop:normal !important;
}
.rnd-section-rail {
    display:grid;
    gap:11px;
    position:fixed;
    right:22px;
    top:50%;
    transform:translateY(-50%);
    z-index:80;
}
.rnd-section-rail a {
    align-items:center;
    color:#59616b;
    display:flex;
    height:10px;
    justify-content:flex-end;
    text-decoration:none;
    width:44px;
}
.rnd-section-rail a::before {
    background:rgba(24,31,40,.94);
    border-radius:3px;
    color:#fff;
    content:attr(data-label);
    font:700 11px/1.25 Arial,sans-serif;
    max-width:220px;
    opacity:0;
    overflow:hidden;
    padding:7px 9px;
    pointer-events:none;
    position:absolute;
    right:52px;
    text-overflow:ellipsis;
    transform:translateX(5px);
    transition:opacity 140ms ease,transform 140ms ease;
    white-space:nowrap;
}
.rnd-section-rail a:hover::before,
.rnd-section-rail a:focus-visible::before {
    opacity:1;
    transform:translateX(0);
}
.rnd-section-rail a::after {
    background:rgba(35,42,52,.34);
    content:"";
    height:2px;
    transition:background 160ms ease,width 160ms ease;
    width:22px;
}
.rnd-section-rail a span {
    font-size:0;
    height:1px;
    overflow:hidden;
    position:absolute;
    width:1px;
}
.rnd-section-rail a:hover::after,
.rnd-section-rail a:focus-visible::after,
.rnd-section-rail a.is-active::after {
    background:#d70a64;
    width:36px;
}
@media(max-width:767px){
    html.rnd-has-fullpage.rnd-native-scroll{scroll-snap-type:none !important}
    .rnd-section-rail{display:none}
}

main,
main *,
.rnd-site-header *,
.rnd-site-footer * {
    box-sizing: border-box;
}

main :where(section, article, div, form, fieldset, header, aside),
.rnd-site-header :where(div, nav, ul, li, form) {
    min-width: 0;
}

main#main h1 {
    margin: var(--rnd-layout-h1-margin) !important;
}

main#main h2 {
    margin: var(--rnd-layout-h2-margin) !important;
}

main#main h3 {
    margin: var(--rnd-layout-h3-margin) !important;
}

main [class*="eyebrow"] {
    margin: var(--rnd-layout-eyebrow-margin) !important;
}

main [class*="__lead"],
main [class$="-lead"],
main [class*="-lead "] {
    margin: var(--rnd-layout-lead-margin) !important;
}

/* Shared dark closing panel and eight-stage cross-page journey. */
.rnd-final-panel {
    position: relative;
    scroll-margin-top: 0;
}

@media (min-width: 951px) {
    .rnd-final-panel {
        height: 100svh !important;
        min-height: 680px !important;
    }
}

.rndlab-page-home .rnd-final-panel,
.rndlab-page-about .rnd-final-panel,
.rndlab-page-service .rnd-final-panel,
.rndlab-page-projects .rnd-final-panel,
.rndlab-page-education .rnd-final-panel,
.rndlab-page-news .rnd-final-panel,
.rndlab-page-downloads .rnd-final-panel,
.rndlab-page-contact .rnd-final-panel {
    padding-left: 0 !important;
    padding-right: 0 !important;
}

main#main .rnd-final-panel .rnd-final-panel__content {
    box-sizing: border-box;
    margin-left: var(--rnd-layout-page-inline) !important;
    margin-right: var(--rnd-layout-page-inline) !important;
    max-width: 920px !important;
    position: relative;
    width: calc(100% - (2 * var(--rnd-layout-page-inline))) !important;
    z-index: 2;
}

.rnd-news__sources.rnd-final-panel {
    align-items: center;
    display: flex;
    grid-template-columns: none;
}

.rnd-final-panel__eyebrow {
    margin: 0 0 14px !important;
}

main#main .rnd-final-panel__title {
    margin: 0 !important;
}

main#main .rnd-final-panel .rnd-final-panel__copy {
    color: rgba(255, 255, 255, 0.84) !important;
    line-height: 1.6 !important;
    margin: 22px 0 0 !important;
    max-width: 780px !important;
}

.rnd-final-panel__actions {
    align-items: center !important;
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 16px !important;
    margin: 32px 0 0 !important;
}

.rnd-final-panel__primary,
.rnd-final-panel__secondary {
    align-items: center !important;
    border: 1px solid transparent !important;
    border-radius: 4px !important;
    box-sizing: border-box;
    display: inline-flex !important;
    font-family: Montserrat, "Segoe UI", Arial, sans-serif !important;
    font-size: 0.9rem !important;
    font-weight: 800 !important;
    justify-content: center !important;
    line-height: 1.2 !important;
    margin: 0 !important;
    min-height: 60px !important;
    padding: 0 28px !important;
    text-decoration: none !important;
    transition: background 180ms ease, border-color 180ms ease, transform 180ms ease !important;
    width: auto !important;
}

.rnd-final-panel__primary {
    background: #e5005a !important;
    color: #fff !important;
}

.rnd-final-panel__secondary {
    background: rgba(7, 20, 31, 0.42) !important;
    border-color: rgba(255, 255, 255, 0.52) !important;
    color: #fff !important;
}

.rnd-final-panel__primary:hover,
.rnd-final-panel__primary:focus-visible,
.rnd-final-panel__secondary:hover,
.rnd-final-panel__secondary:focus-visible {
    background: #c9004f !important;
    border-color: #fff !important;
    color: #fff !important;
    transform: translateY(-2px);
}

.rnd-process-journey {
    gap: 8px !important;
}

.rnd-process-journey__arrow {
    align-items: center;
    border: 1px solid rgba(255, 255, 255, 0.32);
    border-radius: 50%;
    color: #fff !important;
    display: inline-flex;
    font-family: Arial, sans-serif;
    font-size: 0.82rem;
    height: 26px;
    justify-content: center;
    letter-spacing: 0;
    text-decoration: none;
    transition: background 160ms ease, border-color 160ms ease, color 160ms ease;
    width: 26px;
}

.rnd-process-journey__arrow:not(.is-disabled):hover,
.rnd-process-journey__arrow:not(.is-disabled):focus-visible {
    background: #e5005a;
    border-color: #e5005a;
}

.rnd-process-journey__arrow.is-disabled {
    opacity: 0.28;
}

.rnd-simple-page__inner,
.rnd-commerce-page {
    padding-left: var(--rnd-layout-page-inline) !important;
    padding-right: var(--rnd-layout-page-inline) !important;
    padding-top: var(--rnd-layout-page-block-start) !important;
}

.rnd-thank-you {
    padding-left: var(--rnd-layout-page-inline) !important;
    padding-right: var(--rnd-layout-page-inline) !important;
}

/* One alignment line: the first navigation item and every primary page
 * content column begin at the same inline coordinate. Full-height Heroes
 * retain their canvas but place copy at a predictable distance below nav. */
@media (min-width: 951px) {
    .rndlab-page-home .rndlab-home-hero {
        align-items: stretch !important;
        justify-content: flex-start !important;
        padding-left: var(--rnd-layout-page-inline) !important;
        padding-right: var(--rnd-layout-page-inline) !important;
        padding-top: var(--rnd-layout-hero-block-start) !important;
    }

    .rndlab-page-about .rnd-about__hero,
    .rndlab-page-downloads .rnd-downloads__hero,
    .rndlab-page-contact .rnd-contact__hero {
        align-items: flex-start !important;
        padding-top: var(--rnd-layout-hero-block-start) !important;
    }

    .rndlab-page-about .rnd-about__hero .rnd-about__content,
    .rndlab-page-downloads .rnd-downloads__hero .rnd-downloads__content,
    .rndlab-page-contact .rnd-contact__hero .rnd-contact__content {
        margin-left: var(--rnd-layout-page-inline) !important;
    }

    .rndlab-page-service .rnd-service-hero,
    .rndlab-page-projects .rnd-projects-hero,
    .rndlab-page-education .rnd-education-hero {
        align-items: start !important;
        padding-left: var(--rnd-layout-page-inline) !important;
        padding-right: var(--rnd-layout-page-inline) !important;
        padding-top: var(--rnd-layout-hero-block-start) !important;
    }

    .rndlab-page-news .rnd-news__hero {
        align-items: flex-start !important;
        padding-top: var(--rnd-layout-hero-block-start) !important;
    }

    .rndlab-page-news .rnd-news__hero-inner {
        margin-bottom: 0 !important;
        margin-left: var(--rnd-layout-page-inline) !important;
        margin-right: var(--rnd-layout-page-inline) !important;
        margin-top: 0 !important;
        width: min(1160px, calc(100% - (2 * var(--rnd-layout-page-inline)))) !important;
    }

    .rndlab-page-education .rnd-education-hero__copy {
        align-self: start !important;
    }

    .rndlab-page-store .store-hero__content {
        left: var(--rnd-layout-page-inline) !important;
        top: var(--rnd-layout-hero-block-start) !important;
        transform: none !important;
    }
}

@media (max-width: 950px) {
    .rndlab-page-home .rndlab-home-hero,
    .rndlab-page-about .rnd-about__hero,
    .rndlab-page-service .rnd-service-hero,
    .rndlab-page-projects .rnd-projects-hero,
    .rndlab-page-education .rnd-education-hero,
    .rndlab-page-news .rnd-news__hero,
    .rndlab-page-downloads .rnd-downloads__hero,
    .rndlab-page-contact .rnd-contact__hero {
        align-items: flex-start !important;
        justify-content: flex-start !important;
        padding-top: 64px !important;
    }

    .rndlab-page-news .rnd-news__hero-inner {
        margin-bottom: 0 !important;
        margin-left: var(--rnd-layout-mobile-inline) !important;
        margin-right: var(--rnd-layout-mobile-inline) !important;
        margin-top: 0 !important;
        width: calc(100% - (2 * var(--rnd-layout-mobile-inline))) !important;
    }

    .rndlab-page-projects .rnd-projects-hero__copy,
    .rndlab-page-education .rnd-education-hero__copy {
        align-self: start !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
        padding-top: 0 !important;
    }

    .rndlab-page-home .rndlab-home-hero,
    .rndlab-page-service .rnd-service-hero,
    .rndlab-page-projects .rnd-projects-hero,
    .rndlab-page-education .rnd-education-hero {
        padding-left: var(--rnd-layout-mobile-inline) !important;
        padding-right: var(--rnd-layout-mobile-inline) !important;
    }

    .rndlab-page-store .store-hero__content {
        left: var(--rnd-layout-mobile-inline) !important;
        top: 64px !important;
        transform: none !important;
        width: calc(100% - (2 * var(--rnd-layout-mobile-inline))) !important;
    }
}

.product-breadcrumb,
.product-overview,
.product-information,
.product-related,
.product-compact {
    max-width: var(--rnd-layout-product-max);
}

.product-breadcrumb,
.product-overview,
.product-compact {
    padding-left: var(--rnd-layout-page-inline);
    padding-right: var(--rnd-layout-page-inline);
}

.rnd-contact-form__trap,
.rnd-honeypot {
    border: 0 !important;
    clip: rect(0 0 0 0) !important;
    clip-path: inset(50%) !important;
    height: 1px !important;
    left: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    padding: 0 !important;
    position: absolute !important;
    white-space: nowrap !important;
    width: 1px !important;
}

@media (max-width: 767px) {
    :root {
        --rnd-layout-page-inline: var(--rnd-layout-mobile-inline);
    }

    .rnd-site-header__inner {
        gap: 10px !important;
        padding: 9px var(--rnd-layout-mobile-inline) !important;
    }

    .rnd-final-panel__actions {
        align-items: stretch !important;
        flex-direction: column !important;
        width: 100% !important;
    }

    .rnd-final-panel {
        min-height: 720px !important;
    }

    .rnd-final-panel__actions > *,
    .rnd-final-panel__primary,
    .rnd-final-panel__secondary {
        width: 100% !important;
    }

    .rnd-process-journey {
        gap: 6px !important;
    }

    .rnd-process-journey::before {
        display: none;
    }

    .rnd-process-journey__arrow {
        height: 24px;
        width: 24px;
    }

    .rnd-brand__logo {
        height: 56px !important;
    }

    .rnd-brand__text {
        font-size: 1rem !important;
    }

    .rnd-test-notice {
        max-width: 100% !important;
        padding: 7px 10px !important;
    }

    .rnd-test-notice strong {
        font-size: 11px !important;
        line-height: 1.2 !important;
    }

    .rnd-test-notice p {
        font-size: 10px !important;
        line-height: 1.25 !important;
    }

    .rnd-utility {
        flex-wrap: nowrap !important;
        gap: 14px !important;
        justify-content: flex-start !important;
        max-width: 100% !important;
        overflow-x: auto;
        overscroll-behavior-inline: contain;
        padding: 2px 0;
        scrollbar-width: thin;
        white-space: nowrap !important;
        -webkit-overflow-scrolling: touch;
    }

    .rnd-utility__item {
        flex: 0 0 auto;
    }

    .rnd-search {
        max-width: 100% !important;
    }

    .rnd-nav {
        overflow-x: auto !important;
        overflow-y: hidden !important;
        overscroll-behavior-inline: contain;
        scrollbar-width: thin;
        -webkit-overflow-scrolling: touch;
    }

    .rnd-nav__list {
        min-width: max-content;
        overflow: visible !important;
        padding-left: var(--rnd-layout-mobile-inline) !important;
        padding-right: var(--rnd-layout-mobile-inline) !important;
    }

    .rnd-simple-page__inner,
    .rnd-commerce-page {
        padding-left: var(--rnd-layout-mobile-inline) !important;
        padding-right: var(--rnd-layout-mobile-inline) !important;
    }

    .rnd-thank-you {
        padding-left: var(--rnd-layout-mobile-inline) !important;
        padding-right: var(--rnd-layout-mobile-inline) !important;
    }

    .rndlab-page-register .rnd-commerce-page__inner,
    .rndlab-page-register .rnd-commerce-page__header,
    .rndlab-page-register .rnd-account-auth-grid,
    .rndlab-page-register .rnd-account-form,
    .rndlab-page-register .rnd-account-info-box {
        grid-template-columns: minmax(0, 1fr) !important;
        max-width: 100% !important;
        width: 100% !important;
    }

    .rndlab-page-register .rnd-account-form {
        padding-left: var(--rnd-layout-mobile-inline);
        padding-right: var(--rnd-layout-mobile-inline);
    }

    .rndlab-page-home .rndlab-project-showcase,
    .rndlab-page-home [data-rndlab-homepage-showcase] .rndlab-project-showcase {
        height: auto !important;
        min-height: 0 !important;
        overflow: visible !important;
    }

    .rndlab-page-projects {
        --rnd-projects-gutter: var(--rnd-layout-mobile-inline) !important;
    }

    .rndlab-page-projects .rnd-projects-hero {
        padding-left: var(--rnd-layout-mobile-inline) !important;
        padding-right: var(--rnd-layout-mobile-inline) !important;
    }

    .rndlab-page-projects .rnd-projects-hero__copy {
        width: 100% !important;
    }

    .rndlab-page-education {
        --rnd-education-gutter: var(--rnd-layout-mobile-inline) !important;
    }

    .rndlab-page-education .rnd-education-hero {
        padding-left: var(--rnd-layout-mobile-inline) !important;
        padding-right: var(--rnd-layout-mobile-inline) !important;
    }

    .rndlab-page-education .rnd-education-hero__copy {
        padding-left: 0 !important;
        padding-right: 0 !important;
        width: 100% !important;
    }

    .rndlab-page-about .rnd-about__content,
    .rndlab-page-downloads .rnd-downloads__content,
    .rndlab-page-downloads .rnd-downloads__content--wide,
    .rndlab-page-contact .rnd-contact__content,
    .rndlab-page-contact .rnd-contact__content--wide {
        margin-left: var(--rnd-layout-mobile-inline) !important;
        margin-right: var(--rnd-layout-mobile-inline) !important;
        width: calc(100% - (2 * var(--rnd-layout-mobile-inline))) !important;
    }

    .rndlab-page-contact .rnd-contact__hero::after {
        display: none !important;
    }

    .product-breadcrumb,
    .product-overview,
    .product-compact {
        padding-left: var(--rnd-layout-mobile-inline) !important;
        padding-right: var(--rnd-layout-mobile-inline) !important;
    }
}
