/* ============================================================
   ORION FINANCE
   FRONTEND V2 - DESIGN SYSTEM
   ============================================================ */


/* ============================================================
   01. DESIGN TOKENS
   ============================================================ */

:root {
    --orion-radius-sm: 10px;
    --orion-radius-md: 16px;
    --orion-radius-lg: 24px;
    --orion-radius-xl: 32px;

    --orion-container: 1240px;

    --orion-shadow-sm:
        0 4px 18px rgba(15, 23, 42, .06);

    --orion-shadow-md:
        0 14px 40px rgba(15, 23, 42, .10);

    --orion-shadow-lg:
        0 24px 70px rgba(15, 23, 42, .14);

    --orion-transition:
        240ms cubic-bezier(.2, .8, .2, 1);

    --orion-transition-slow:
        500ms cubic-bezier(.2, .8, .2, 1);
}


/* ============================================================
   02. GLOBAL RESET
   ============================================================ */

.orion-frontend,
.orion-frontend *,
.orion-frontend *::before,
.orion-frontend *::after {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
}

body.orion-frontend {
    margin: 0;
    padding: 0;
    min-width: 320px;

    background:
        var(--orion-background, #f5f7fa);

    color:
        var(--orion-text, #111827);

    font-family:
        Inter,
        ui-sans-serif,
        system-ui,
        -apple-system,
        BlinkMacSystemFont,
        "Segoe UI",
        sans-serif;

    line-height: 1.6;

    overflow-x: hidden;

    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

.orion-frontend img {
    max-width: 100%;
    height: auto;
}

.orion-frontend a {
    text-decoration: none;
}

.orion-frontend button,
.orion-frontend input,
.orion-frontend textarea,
.orion-frontend select {
    font: inherit;
}

.orion-frontend button {
    border: 0;
}

.orion-frontend ul,
.orion-frontend ol {
    margin: 0;
    padding: 0;
    list-style: none;
}


/* ============================================================
   03. CONTAINER
   ============================================================ */

.orion-container {
    width: min(calc(100% - 48px),
            var(--orion-container));

    margin-inline: auto;
}


/* ============================================================
   04. TOPBAR
   ============================================================ */

.orion-frontend-topbar {
    position: relative;
    z-index: 1000;

    background:
        var(--orion-secondary, #111827);

    color: rgba(255, 255, 255, .82);

    font-size: 13px;
}

.orion-frontend-topbar .orion-container {
    min-height: 40px;

    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 20px;
}

.orion-topbar-left,
.orion-topbar-right {
    display: flex;
    align-items: center;
    gap: 18px;
}

.orion-topbar-left a,
.orion-topbar-right a {
    display: inline-flex;
    align-items: center;
    gap: 7px;

    color: rgba(255, 255, 255, .78);

    transition:
        color var(--orion-transition),
        transform var(--orion-transition);
}

.orion-topbar-left a:hover,
.orion-topbar-right a:hover {
    color: var(--orion-primary, #48c7ec);

    transform: translateY(-1px);
}

.orion-topbar-left i,
.orion-topbar-right i {
    color: var(--orion-primary, #48c7ec);
}


/* ============================================================
   05. HEADER
   ============================================================ */

.orion-frontend-header {
    position: relative;
    z-index: 1000;
}


/* ============================================================
   06. NAVBAR
   ============================================================ */

.orion-frontend-navbar {
    position: absolute;

    top: 40px;
    left: 0;

    width: 100%;

    z-index: 1001;

    transition:
        background var(--orion-transition-slow),
        box-shadow var(--orion-transition-slow),
        backdrop-filter var(--orion-transition-slow);
}

.orion-frontend-header.is-scrolled .orion-frontend-navbar {
    position: fixed;

    top: 0;

    background:
        rgba(255, 255, 255, .92);

    backdrop-filter:
        blur(18px);

    -webkit-backdrop-filter:
        blur(18px);

    box-shadow:
        0 8px 30px rgba(15, 23, 42, .08);
}

.orion-navbar-inner {
    min-height: 82px;

    display: flex;
    align-items: center;

    gap: 32px;
}


/* ============================================================
   07. BRAND
   ============================================================ */

.orion-frontend-brand {
    display: inline-flex;

    align-items: center;

    gap: 12px;

    flex-shrink: 0;

    color:
        var(--orion-secondary, #111827);
}

.orion-frontend-brand img {
    display: block;

    width: auto;
    max-width: 150px;
    max-height: 54px;

    object-fit: contain;
}

.orion-frontend-brand span {
    font-size: 18px;
    font-weight: 800;
    letter-spacing: -.03em;
}


/* ============================================================
   08. DESKTOP NAVIGATION
   ============================================================ */

.orion-frontend-nav {
    display: flex;

    align-items: center;

    justify-content: center;

    gap: 30px;

    flex: 1;
}

.orion-frontend-nav a {
    position: relative;

    display: inline-flex;

    align-items: center;

    min-height: 82px;

    color:
        rgba(255, 255, 255, .82);

    font-size: 14px;
    font-weight: 600;

    transition:
        color var(--orion-transition);
}

.orion-frontend-header.is-scrolled .orion-frontend-nav a {
    color:
        var(--orion-text, #111827);
}

.orion-frontend-nav a::after {
    content: "";

    position: absolute;

    left: 0;
    right: 0;
    bottom: 20px;

    height: 2px;

    background:
        var(--orion-primary, #48c7ec);

    border-radius: 99px;

    transform:
        scaleX(0);

    transform-origin:
        center;

    transition:
        transform var(--orion-transition);
}

.orion-frontend-nav a:hover,
.orion-frontend-nav a.active {
    color:
        var(--orion-primary, #48c7ec);
}

.orion-frontend-nav a:hover::after,
.orion-frontend-nav a.active::after {
    transform:
        scaleX(1);
}


/* ============================================================
   09. NAV ACTIONS
   ============================================================ */

.orion-frontend-actions {
    display: flex;

    align-items: center;

    gap: 12px;

    flex-shrink: 0;
}

.orion-nav-login {
    display: inline-flex;

    align-items: center;
    justify-content: center;

    min-height: 44px;

    padding: 0 17px;

    color:
        #fff;

    font-size: 14px;
    font-weight: 700;

    transition:
        color var(--orion-transition);
}

.orion-frontend-header.is-scrolled .orion-nav-login {
    color:
        var(--orion-text, #111827);
}

.orion-nav-login:hover {
    color:
        var(--orion-primary, #48c7ec);
}

.orion-nav-cta {
    display: inline-flex;

    align-items: center;
    justify-content: center;

    min-height: 46px;

    padding: 0 20px;

    border-radius: 999px;

    background:
        var(--orion-primary, #48c7ec);

    color:
        #fff;

    font-size: 13px;
    font-weight: 800;

    box-shadow:
        0 8px 22px rgba(var(--orion-primary-rgb, 72, 199, 236), .24);

    transition:
        transform var(--orion-transition),
        box-shadow var(--orion-transition),
        background var(--orion-transition);
}

.orion-nav-cta:hover {
    color: #fff;

    background:
        var(--orion-primary-dark, #169bc1);

    transform:
        translateY(-2px);

    box-shadow:
        0 12px 28px rgba(var(--orion-primary-rgb, 72, 199, 236), .30);
}


/* ============================================================
   10. MOBILE MENU BUTTON
   ============================================================ */

.orion-mobile-toggle {
    display: none;

    width: 46px;
    height: 46px;

    margin-left: auto;

    align-items: center;
    justify-content: center;

    flex-direction: column;

    gap: 5px;

    border-radius: 12px;

    background:
        rgba(255, 255, 255, .10);

    cursor: pointer;
}

.orion-frontend-header.is-scrolled .orion-mobile-toggle {
    background:
        rgba(var(--orion-primary-rgb, 72, 199, 236), .10);
}

.orion-mobile-toggle span {
    width: 21px;
    height: 2px;

    border-radius: 99px;

    background:
        #fff;

    transition:
        transform var(--orion-transition),
        opacity var(--orion-transition),
        background var(--orion-transition);
}

.orion-frontend-header.is-scrolled .orion-mobile-toggle span {
    background:
        var(--orion-secondary, #111827);
}

.orion-mobile-toggle.is-open span:nth-child(1) {
    transform:
        translateY(7px) rotate(45deg);
}

.orion-mobile-toggle.is-open span:nth-child(2) {
    opacity: 0;
}

.orion-mobile-toggle.is-open span:nth-child(3) {
    transform:
        translateY(-7px) rotate(-45deg);
}


/* ============================================================
   11. MOBILE NAV
   ============================================================ */

.orion-mobile-nav {
    display: none;

    position: fixed;

    top: 0;
    left: 0;

    width: 100%;

    min-height: 100vh;

    padding:
        110px 24px 30px;

    background:
        var(--orion-secondary, #111827);

    z-index: -1;

    opacity: 0;
    visibility: hidden;

    transform:
        translateY(-15px);

    transition:
        opacity var(--orion-transition),
        visibility var(--orion-transition),
        transform var(--orion-transition);
}

.orion-mobile-nav.is-open {
    opacity: 1;
    visibility: visible;

    transform:
        translateY(0);
}

.orion-mobile-nav a {
    display: flex;

    align-items: center;

    min-height: 54px;

    padding: 0 8px;

    border-bottom:
        1px solid rgba(255, 255, 255, .08);

    color:
        rgba(255, 255, 255, .82);

    font-size: 16px;
    font-weight: 700;
}

.orion-mobile-nav a:hover {
    color:
        var(--orion-primary, #48c7ec);
}

.orion-mobile-divider {
    height: 20px;
}

.orion-mobile-nav .orion-mobile-cta {
    justify-content: center;

    margin-top: 16px;

    border: 0;

    border-radius: 999px;

    background:
        var(--orion-primary, #48c7ec);

    color: #fff;
}


/* ============================================================
   12. MAIN CONTENT
   ============================================================ */

#orion-main-content {
    position: relative;

    min-height: 400px;
}


/* ============================================================
   13. FLASH MESSAGES
   ============================================================ */

.orion-flash {
    position: relative;

    z-index: 900;

    padding: 14px 0;

    color: #fff;
}

.orion-flash .orion-container {
    display: flex;

    align-items: center;
    justify-content: space-between;

    gap: 20px;
}

.orion-flash-success {
    background:
        #16a34a;
}

.orion-flash-error {
    background:
        #dc2626;
}

.orion-flash-close {
    width: 32px;
    height: 32px;

    display: inline-flex;

    align-items: center;
    justify-content: center;

    border-radius: 50%;

    background:
        rgba(255, 255, 255, .14);

    color: #fff;

    cursor: pointer;
}


/* ============================================================
   14. GENERIC SECTIONS
   ============================================================ */

.orion-section {
    position: relative;

    padding:
        110px 0;
}

.orion-section-sm {
    padding:
        75px 0;
}

.orion-section-lg {
    padding:
        140px 0;
}

.orion-section-light {
    background:
        var(--orion-background, #f5f7fa);
}

.orion-section-white {
    background:
        #fff;
}

.orion-section-dark {
    background:
        var(--orion-secondary, #111827);

    color: #fff;
}


/* ============================================================
   15. SECTION HEADER
   ============================================================ */

.orion-section-header {
    max-width: 760px;

    margin:
        0 auto 60px;

    text-align: center;
}

.orion-section-eyebrow {
    display: inline-flex;

    align-items: center;

    gap: 8px;

    margin-bottom: 14px;

    color:
        var(--orion-primary, #48c7ec);

    font-size: 12px;
    font-weight: 800;

    text-transform: uppercase;

    letter-spacing: .14em;
}

.orion-section-eyebrow::before {
    content: "";

    width: 24px;
    height: 2px;

    border-radius: 99px;

    background:
        currentColor;
}

.orion-section-title {
    margin: 0;

    color:
        var(--orion-text, #111827);

    font-size:
        clamp(30px, 4vw, 52px);

    line-height: 1.08;

    font-weight: 850;

    letter-spacing: -.045em;
}

.orion-section-dark .orion-section-title {
    color: #fff;
}

.orion-section-description {
    max-width: 650px;

    margin: 18px auto 0;

    color:
        rgba(36, 79, 174, .72);

    font-size: 17px;

    line-height: 1.75;
}

.orion-section-dark .orion-section-description {
    color:
        rgba(255, 255, 255, .68);
}


/* ============================================================
   16. BUTTONS
   ============================================================ */

.orion-btn {
    display: inline-flex;

    align-items: center;
    justify-content: center;

    gap: 10px;

    min-height: 52px;

    padding: 0 24px;

    border-radius: 999px;

    font-size: 14px;
    font-weight: 800;

    cursor: pointer;

    transition:
        transform var(--orion-transition),
        box-shadow var(--orion-transition),
        background var(--orion-transition),
        color var(--orion-transition),
        border-color var(--orion-transition);
}

.orion-btn:hover {
    transform:
        translateY(-2px);
}

.orion-btn-primary {
    background:
        var(--orion-primary, #48c7ec);

    color: #fff;

    box-shadow:
        0 12px 30px rgba(var(--orion-primary-rgb, 72, 199, 236), .24);
}

.orion-btn-primary:hover {
    color: #fff;

    background:
        var(--orion-primary-dark, #169bc1);

    box-shadow:
        0 16px 34px rgba(var(--orion-primary-rgb, 72, 199, 236), .30);
}

.orion-btn-secondary {
    background:
        var(--orion-secondary, #111827);

    color: #fff;
}

.orion-btn-secondary:hover {
    color: #fff;

    background:
        var(--orion-primary-dark, #169bc1);
}

.orion-btn-outline {
    border:
        1px solid rgba(var(--orion-primary-rgb, 72, 199, 236), .35);

    background:
        transparent;

    color:
        var(--orion-primary, #48c7ec);
}

.orion-btn-outline:hover {
    border-color:
        var(--orion-primary);

    background:
        var(--orion-primary);

    color: #fff;
}

.orion-btn-light {
    background: #fff;

    color:
        var(--orion-secondary, #111827);

    box-shadow:
        0 12px 30px rgba(0, 0, 0, .10);
}

.orion-btn-light:hover {
    color:
        var(--orion-primary-dark, #169bc1);
}


/* ============================================================
   17. SERVICE CARDS
   ============================================================ */

.orion-service-grid {
    display: grid;

    grid-template-columns:
        repeat(3, minmax(0, 1fr));

    gap: 24px;
}

.orion-service-card {
    position: relative;

    overflow: hidden;

    min-height: 390px;

    border:
        1px solid rgba(var(--orion-secondary-rgb, 17, 24, 39), .08);

    border-radius:
        var(--orion-radius-lg);

    background: #fff;

    box-shadow:
        var(--orion-shadow-sm);

    transition:
        transform var(--orion-transition-slow),
        box-shadow var(--orion-transition-slow),
        border-color var(--orion-transition);
}

.orion-service-card:hover {
    transform:
        translateY(-8px);

    box-shadow:
        var(--orion-shadow-lg);

    border-color:
        rgba(var(--orion-primary-rgb, 72, 199, 236), .25);
}

.orion-service-image {
    position: relative;

    height: 230px;

    overflow: hidden;
}

.orion-service-image img {
    width: 100%;
    height: 100%;

    object-fit: cover;

    transition:
        transform var(--orion-transition-slow);
}

.orion-service-card:hover .orion-service-image img {
    transform:
        scale(1.06);
}

.orion-service-image::after {
    content: "";

    position: absolute;

    inset: 0;

    background:
        linear-gradient(to top,
            rgba(15, 23, 42, .55),
            transparent 65%);
}

.orion-service-body {
    padding: 26px;
}

.orion-service-icon {
    width: 48px;
    height: 48px;

    margin-top: -50px;

    position: relative;

    z-index: 2;

    display: flex;

    align-items: center;
    justify-content: center;

    border-radius: 14px;

    background:
        var(--orion-primary, #48c7ec);

    color: #fff;

    box-shadow:
        0 10px 24px rgba(var(--orion-primary-rgb, 72, 199, 236), .30);
}

.orion-service-title {
    margin:
        18px 0 8px;

    color:
        var(--orion-text, #111827);

    font-size: 20px;

    font-weight: 800;

    letter-spacing: -.025em;
}

.orion-service-text {
    margin: 0;

    color:
        rgba(36, 79, 174, .68);

    font-size: 14px;

    line-height: 1.7;
}

.orion-service-link {
    display: inline-flex;

    align-items: center;

    gap: 8px;

    margin-top: 18px;

    color:
        var(--orion-primary, #48c7ec);

    font-size: 13px;

    font-weight: 800;
}


/* ============================================================
   18. TRUST / ADVANTAGES
   ============================================================ */

.orion-trust-grid {
    display: grid;

    grid-template-columns:
        repeat(4, minmax(0, 1fr));

    gap: 18px;
}

.orion-trust-card {
    padding: 30px 24px;

    border-radius:
        var(--orion-radius-md);

    background: #fff;

    border:
        1px solid rgba(var(--orion-secondary-rgb, 17, 24, 39), .07);

    transition:
        transform var(--orion-transition),
        border-color var(--orion-transition),
        box-shadow var(--orion-transition);
}

.orion-trust-card:hover {
    transform:
        translateY(-5px);

    border-color:
        rgba(var(--orion-primary-rgb, 72, 199, 236), .22);

    box-shadow:
        var(--orion-shadow-md);
}

.orion-trust-icon {
    width: 54px;
    height: 54px;

    display: flex;

    align-items: center;
    justify-content: center;

    margin-bottom: 20px;

    border-radius: 16px;

    background:
        rgba(var(--orion-primary-rgb, 72, 199, 236), .10);

    color:
        var(--orion-primary, #48c7ec);

    font-size: 20px;
}

.orion-trust-card h3 {
    margin: 0 0 8px;

    color:
        var(--orion-text, #111827);

    font-size: 17px;

    font-weight: 800;
}

.orion-trust-card p {
    margin: 0;

    color:
        rgba(36, 79, 174, .65);

    font-size: 14px;

    line-height: 1.7;
}


/* ============================================================
   19. PROCESS
   ============================================================ */

.orion-process {
    position: relative;
}

.orion-process-grid {
    display: grid;

    grid-template-columns:
        repeat(4, minmax(0, 1fr));

    gap: 18px;
}

.orion-process-card {
    position: relative;

    padding: 34px 24px;

    border:
        1px solid rgba(255, 255, 255, .10);

    border-radius:
        var(--orion-radius-md);

    background:
        rgba(255, 255, 255, .045);

    backdrop-filter:
        blur(10px);

    transition:
        transform var(--orion-transition),
        background var(--orion-transition);
}

.orion-process-card:hover {
    transform:
        translateY(-6px);

    background:
        rgba(255, 255, 255, .075);
}

.orion-process-number {
    display: block;

    margin-bottom: 22px;

    color:
        var(--orion-primary, #48c7ec);

    font-size: 13px;

    font-weight: 900;

    letter-spacing: .14em;
}

.orion-process-card h3 {
    margin: 0 0 10px;

    color: #fff;

    font-size: 19px;

    font-weight: 800;
}

.orion-process-card p {
    margin: 0;

    color:
        rgba(255, 255, 255, .65);

    font-size: 14px;

    line-height: 1.7;
}


/* ============================================================
   20. TESTIMONIALS
   ============================================================ */

.orion-testimonial-grid {
    display: grid;

    grid-template-columns:
        repeat(3, minmax(0, 1fr));

    gap: 24px;
}

.orion-testimonial-card {
    position: relative;

    padding: 32px;

    border-radius:
        var(--orion-radius-lg);

    background: #fff;

    border:
        1px solid rgba(var(--orion-secondary-rgb, 17, 24, 39), .07);

    box-shadow:
        var(--orion-shadow-sm);

    transition:
        transform var(--orion-transition),
        box-shadow var(--orion-transition);
}

.orion-testimonial-card:hover {
    transform:
        translateY(-6px);

    box-shadow:
        var(--orion-shadow-md);
}

.orion-testimonial-quote {
    width: 42px;
    height: 42px;

    display: flex;

    align-items: center;
    justify-content: center;

    margin-bottom: 22px;

    border-radius: 12px;

    background:
        rgba(var(--orion-primary-rgb, 72, 199, 236), .10);

    color:
        var(--orion-primary, #48c7ec);

    font-size: 18px;
}

.orion-testimonial-card blockquote {
    margin: 0 0 26px;

    color:
        var(--orion-text, #111827);

    font-size: 15px;

    line-height: 1.8;
}

.orion-testimonial-author {
    display: flex;

    align-items: center;

    gap: 13px;
}

.orion-testimonial-avatar {
    width: 46px;
    height: 46px;

    flex-shrink: 0;

    overflow: hidden;

    border-radius: 50%;
}

.orion-testimonial-avatar img {
    width: 100%;
    height: 100%;

    object-fit: cover;
}

.orion-testimonial-author strong {
    display: block;

    color:
        var(--orion-text, #111827);

    font-size: 14px;
}

.orion-testimonial-author span {
    display: block;

    margin-top: 2px;

    color:
        rgba(36, 79, 174, .55);

    font-size: 12px;
}


/* ============================================================
   21. NEWS
   ============================================================ */

.orion-news-grid {
    display: grid;

    grid-template-columns:
        repeat(3, minmax(0, 1fr));

    gap: 24px;
}

.orion-news-card {
    overflow: hidden;

    border:
        1px solid rgba(var(--orion-secondary-rgb, 17, 24, 39), .07);

    border-radius:
        var(--orion-radius-lg);

    background: #fff;

    box-shadow:
        var(--orion-shadow-sm);

    transition:
        transform var(--orion-transition),
        box-shadow var(--orion-transition);
}

.orion-news-card:hover {
    transform:
        translateY(-6px);

    box-shadow:
        var(--orion-shadow-md);
}

.orion-news-image {
    height: 220px;

    overflow: hidden;
}

.orion-news-image img {
    width: 100%;
    height: 100%;

    object-fit: cover;

    transition:
        transform var(--orion-transition-slow);
}

.orion-news-card:hover .orion-news-image img {
    transform:
        scale(1.05);
}

.orion-news-body {
    padding: 24px;
}

.orion-news-meta {
    margin-bottom: 9px;

    color:
        var(--orion-primary, #48c7ec);

    font-size: 11px;

    font-weight: 800;

    text-transform: uppercase;

    letter-spacing: .10em;
}

.orion-news-title {
    margin: 0;

    color:
        var(--orion-text, #111827);

    font-size: 18px;

    line-height: 1.35;

    font-weight: 800;
}

.orion-news-title a {
    color: inherit;

    transition:
        color var(--orion-transition);
}

.orion-news-title a:hover {
    color:
        var(--orion-primary, #48c7ec);
}


/* ============================================================
   22. CTA BANNER
   ============================================================ */

.orion-cta {
    position: relative;

    overflow: hidden;

    padding:
        70px 60px;

    border-radius:
        var(--orion-radius-xl);

    background:
        linear-gradient(135deg,
            var(--orion-secondary, #111827),
            var(--orion-primary-dark, #169bc1));

    color: #fff;

    box-shadow:
        var(--orion-shadow-lg);
}

.orion-cta::before {
    content: "";

    position: absolute;

    width: 320px;
    height: 320px;

    right: -100px;
    top: -150px;

    border-radius: 50%;

    background:
        rgba(var(--orion-primary-rgb, 72, 199, 236), .18);

    filter:
        blur(5px);
}

.orion-cta-content {
    position: relative;

    z-index: 2;

    max-width: 720px;
}

.orion-cta h2 {
    margin: 0;

    color: #fff;

    font-size:
        clamp(28px, 4vw, 46px);

    line-height: 1.1;

    font-weight: 850;

    letter-spacing: -.04em;
}

.orion-cta p {
    max-width: 620px;

    margin: 18px 0 28px;

    color:
        rgba(255, 255, 255, .70);

    font-size: 16px;

    line-height: 1.7;
}


/* ============================================================
   23. FOOTER
   ============================================================ */

.orion-frontend-footer {
    position: relative;

    padding:
        80px 0 0;

    background:
        var(--orion-secondary, #111827);

    color:
        rgba(255, 255, 255, .68);
}

.orion-footer-grid {
    display: grid;

    grid-template-columns:
        1.5fr 1fr 1fr 1.25fr;

    gap: 50px;

    padding-bottom: 60px;
}

.orion-footer-logo {
    display: inline-flex;

    margin-bottom: 20px;
}

.orion-footer-logo img {
    width: auto;

    max-width: 170px;
    max-height: 60px;

    object-fit: contain;
}

.orion-footer-brand p {
    max-width: 360px;

    margin: 0 0 22px;

    color:
        rgba(255, 255, 255, .58);

    font-size: 14px;

    line-height: 1.8;
}

.orion-footer-cta {
    display: inline-flex;

    align-items: center;

    gap: 8px;

    color:
        var(--orion-primary, #48c7ec);

    font-size: 13px;

    font-weight: 800;
}

.orion-footer-column h3 {
    margin:
        0 0 20px;

    color: #fff;

    font-size: 14px;

    font-weight: 800;

    text-transform: uppercase;

    letter-spacing: .08em;
}

.orion-footer-column ul {
    display: grid;

    gap: 10px;
}

.orion-footer-column a,
.orion-footer-column span {
    color:
        rgba(255, 255, 255, .58);

    font-size: 14px;

    transition:
        color var(--orion-transition);
}

.orion-footer-column a:hover {
    color:
        var(--orion-primary, #48c7ec);
}

.orion-footer-contact li {
    display: flex;

    align-items: flex-start;

    gap: 10px;
}

.orion-footer-contact i {
    width: 18px;

    margin-top: 4px;

    color:
        var(--orion-primary, #48c7ec);

    text-align: center;
}

.orion-footer-social {
    display: flex;

    gap: 8px;

    margin-top: 22px;
}

.orion-footer-social a {
    width: 38px;
    height: 38px;

    display: flex;

    align-items: center;
    justify-content: center;

    border-radius: 50%;

    background:
        rgba(255, 255, 255, .07);

    color:
        rgba(255, 255, 255, .72);
}

.orion-footer-social a:hover {
    background:
        var(--orion-primary, #48c7ec);

    color: #fff;
}

.orion-footer-bottom {
    min-height: 70px;

    display: flex;

    align-items: center;
    justify-content: space-between;

    gap: 20px;

    border-top:
        1px solid rgba(255, 255, 255, .08);
}

.orion-footer-bottom p {
    margin: 0;

    color:
        rgba(255, 255, 255, .46);

    font-size: 12px;
}

.orion-footer-bottom div {
    display: flex;

    gap: 20px;
}

.orion-footer-bottom a {
    color:
        rgba(255, 255, 255, .46);

    font-size: 12px;
}

.orion-footer-bottom a:hover {
    color:
        var(--orion-primary, #48c7ec);
}


/* ============================================================
   24. SCROLL TOP
   ============================================================ */

.orion-scroll-top {
    position: fixed;

    right: 24px;
    bottom: 24px;

    width: 46px;
    height: 46px;

    z-index: 900;

    display: flex;

    align-items: center;
    justify-content: center;

    border-radius: 50%;

    background:
        var(--orion-primary, #48c7ec);

    color: #fff;

    box-shadow:
        0 10px 25px rgba(var(--orion-primary-rgb, 72, 199, 236), .28);

    cursor: pointer;

    opacity: 0;
    visibility: hidden;

    transform:
        translateY(12px);

    transition:
        opacity var(--orion-transition),
        visibility var(--orion-transition),
        transform var(--orion-transition),
        background var(--orion-transition);
}

.orion-scroll-top.is-visible {
    opacity: 1;
    visibility: visible;

    transform:
        translateY(0);
}

.orion-scroll-top:hover {
    background:
        var(--orion-primary-dark, #169bc1);

    transform:
        translateY(-3px);
}


/* ============================================================
   25. ANIMATIONS
   ============================================================ */

@keyframes orionFadeUp {
    from {
        opacity: 0;
        transform:
            translateY(24px);
    }

    to {
        opacity: 1;
        transform:
            translateY(0);
    }
}

@keyframes orionFadeIn {
    from {
        opacity: 0;
    }

    to {
        opacity: 1;
    }
}

@keyframes orionFloat {

    0%,
    100% {
        transform:
            translateY(0);
    }

    50% {
        transform:
            translateY(-8px);
    }
}

.orion-animate {
    animation:
        orionFadeUp .7s ease both;
}

.orion-float {
    animation:
        orionFloat 4s ease-in-out infinite;
}


/* ============================================================
   26. ACCESSIBILITY
   ============================================================ */

.orion-frontend a:focus-visible,
.orion-frontend button:focus-visible,
.orion-frontend input:focus-visible,
.orion-frontend textarea:focus-visible,
.orion-frontend select:focus-visible {
    outline:
        3px solid rgba(var(--orion-primary-rgb, 72, 199, 236), .35);

    outline-offset: 3px;
}


/* ============================================================
   27. TABLET
   ============================================================ */

@media (max-width: 1199px) {

    .orion-container {
        width:
            min(calc(100% - 40px),
                1100px);
    }

    .orion-navbar-inner {
        gap: 20px;
    }

    .orion-frontend-nav {
        gap: 20px;
    }

    .orion-frontend-nav a {
        font-size: 13px;
    }

    .orion-service-grid {
        gap: 18px;
    }

    .orion-footer-grid {
        gap: 30px;
    }
}


/* ============================================================
   28. TABLET / SMALL LAPTOP
   ============================================================ */

@media (max-width: 991px) {

    .orion-container {
        width:
            min(calc(100% - 32px),
                760px);
    }

    .orion-topbar-left span,
    .orion-topbar-right {
        display: none;
    }

    .orion-frontend-topbar .orion-container {
        justify-content: flex-start;
    }

    .orion-frontend-navbar {
        top: 40px;
    }

    .orion-frontend-nav,
    .orion-frontend-actions {
        display: none;
    }

    .orion-mobile-toggle {
        display: flex;
    }

    .orion-mobile-nav {
        display: block;
    }

    .orion-navbar-inner {
        min-height: 76px;
    }

    .orion-frontend-brand img {
        max-width: 130px;
        max-height: 48px;
    }

    .orion-frontend-brand span {
        display: none;
    }

    .orion-section {
        padding:
            85px 0;
    }

    .orion-section-lg {
        padding:
            105px 0;
    }

    .orion-service-grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }

    .orion-trust-grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }

    .orion-process-grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }

    .orion-testimonial-grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }

    .orion-news-grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }

    .orion-footer-grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }

    .orion-cta {
        padding:
            55px 40px;
    }
}


/* ============================================================
   29. MOBILE
   ============================================================ */

@media (max-width: 767px) {

    .orion-container {
        width:
            calc(100% - 28px);
    }

    .orion-frontend-topbar {
        display: none;
    }

    .orion-frontend-navbar {
        top: 0;
    }

    .orion-navbar-inner {
        min-height: 70px;
    }

    .orion-frontend-header.is-scrolled .orion-frontend-navbar {
        background:
            rgba(255, 255, 255, .96);
    }

    .orion-frontend-brand img {
        max-width: 125px;
        max-height: 46px;
    }

    .orion-section {
        padding:
            70px 0;
    }

    .orion-section-sm {
        padding:
            55px 0;
    }

    .orion-section-lg {
        padding:
            80px 0;
    }

    .orion-section-header {
        margin-bottom:
            42px;
    }

    .orion-section-title {
        font-size:
            clamp(28px, 8vw, 38px);
    }

    .orion-section-description {
        font-size: 15px;
    }

    .orion-service-grid,
    .orion-trust-grid,
    .orion-process-grid,
    .orion-testimonial-grid,
    .orion-news-grid {
        grid-template-columns:
            1fr;
    }

    .orion-service-card {
        min-height: auto;
    }

    .orion-service-image {
        height: 210px;
    }

    .orion-cta {
        padding:
            45px 26px;

        border-radius:
            var(--orion-radius-lg);
    }

    .orion-cta h2 {
        font-size:
            clamp(28px, 8vw, 38px);
    }

    .orion-cta p {
        font-size: 14px;
    }

    .orion-footer-grid {
        grid-template-columns:
            1fr;

        gap: 40px;

        padding-bottom: 45px;
    }

    .orion-footer-bottom {
        padding:
            20px 0;

        align-items: flex-start;

        flex-direction: column;
    }

    .orion-footer-bottom div {
        flex-wrap: wrap;
    }

    .orion-scroll-top {
        right: 16px;
        bottom: 16px;

        width: 42px;
        height: 42px;
    }
}


/* ============================================================
   30. SMALL MOBILE
   ============================================================ */

@media (max-width: 420px) {

    .orion-container {
        width:
            calc(100% - 24px);
    }

    .orion-navbar-inner {
        min-height: 64px;
    }

    .orion-frontend-brand img {
        max-width: 110px;
        max-height: 42px;
    }

    .orion-mobile-toggle {
        width: 42px;
        height: 42px;
    }

    .orion-service-body {
        padding: 22px;
    }

    .orion-trust-card,
    .orion-process-card,
    .orion-testimonial-card,
    .orion-news-body {
        padding: 24px 20px;
    }

    .orion-btn {
        width: 100%;
    }
}


/* ============================================================
   31. REDUCED MOTION
   ============================================================ */

@media (prefers-reduced-motion: reduce) {

    html {
        scroll-behavior: auto;
    }

    .orion-frontend *,
    .orion-frontend *::before,
    .orion-frontend *::after {
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .01ms !important;
        scroll-behavior: auto !important;
    }
}

/* ============================================================
   ORION FINANCE - GLOBAL MOBILE OVERFLOW FIX
   ============================================================ */

html,
body {
    width: 100%;
    max-width: 100%;
    overflow-x: hidden !important;
}

body {
    margin: 0;
}

.orion-frontend {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    overflow-x: hidden !important;
}

.orion-home {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    overflow-x: hidden !important;
}

/* Aucun enfant ne doit imposer une largeur au viewport */
.orion-home,
.orion-home section,
.orion-home article,
.orion-home header,
.orion-home footer,
.orion-home main,
.orion-home div {
    max-width: 100%;
    min-width: 0;
}

/* Images */
.orion-home img {
    max-width: 100%;
}

/* Grilles */
.orion-home .orion-hero-grid,
.orion-home .orion-intro-grid,
.orion-home .orion-service-grid,
.orion-home .orion-why-grid,
.orion-home .orion-process-grid,
.orion-home .orion-client-panel,
.orion-home .orion-testimonial-grid,
.orion-home .orion-news-grid,
.orion-home .orion-stats {
    min-width: 0;
    max-width: 100%;
}

/* Textes longs */
.orion-home h1,
.orion-home h2,
.orion-home h3,
.orion-home p,
.orion-home a,
.orion-home span {
    overflow-wrap: anywhere;
    word-break: normal;
}

/* Boutons */
.orion-home .orion-btn {
    max-width: 100%;
}

/* Hero */
.orion-hero-v2,
.orion-hero-track,
.orion-hero-slide,
.orion-hero-overlay {
    max-width: 100%;
}

/* Désactive les éventuels débordements hérités du template */
@media (max-width: 767px) {

    html,
    body {
        width: 100% !important;
        max-width: 100% !important;
        overflow-x: hidden !important;
    }

    .orion-frontend,
    .orion-home {
        width: 100% !important;
        max-width: 100% !important;
        overflow-x: hidden !important;
    }

    .container,
    .container-fluid,
    .row {
        max-width: 100%;
    }

    .row {
        margin-left: 0;
        margin-right: 0;
    }

    [class*="col-"] {
        min-width: 0;
    }
}

/* ============================================================
   ORION FINANCE - MOBILE WIDTH HARDENING
   ============================================================ */

*,
*::before,
*::after {
    box-sizing: border-box;
}

html {
    width: 100%;
    max-width: 100%;
    margin: 0;
    padding: 0;
    overflow-x: hidden !important;
}

body {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    margin: 0;
    padding: 0;
    overflow-x: hidden !important;
}

body.orion-frontend {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    overflow-x: hidden !important;
}

.orion-home {
    position: relative;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    margin: 0;
    padding: 0;
    overflow-x: hidden !important;
}

/* Tous les enfants directs */
.orion-home>*,
.orion-home section,
.orion-home header,
.orion-home main,
.orion-home footer {
    max-width: 100%;
    min-width: 0;
}

/* Conteneurs V2 */
.orion-home .orion-container {
    width: calc(100% - 32px);
    max-width: 1180px;
    margin-left: auto;
    margin-right: auto;
    min-width: 0;
}

/* Grilles */
.orion-home .orion-hero-grid,
.orion-home .orion-intro-grid,
.orion-home .orion-why-grid,
.orion-home .orion-client-panel {
    width: 100%;
    min-width: 0;
    max-width: 100%;
}

/* Colonnes de grille */
.orion-home .orion-hero-copy,
.orion-home .orion-hero-card,
.orion-home .orion-intro-copy,
.orion-home .orion-intro-panel,
.orion-home .orion-why-copy,
.orion-home .orion-why-panel {
    min-width: 0;
    max-width: 100%;
}

/* Texte */
.orion-home h1,
.orion-home h2,
.orion-home h3,
.orion-home p {
    max-width: 100%;
    min-width: 0;
    overflow-wrap: break-word;
    word-wrap: break-word;
}

/* Hero */
.orion-home .orion-hero-v2 {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    overflow: hidden;
}

.orion-home .orion-hero-content {
    width: 100%;
    max-width: 100%;
    min-width: 0;
}

.orion-home .orion-hero-grid {
    overflow: hidden;
}

.orion-home .orion-hero-copy {
    overflow: hidden;
}

.orion-home .orion-hero-text {
    width: 100%;
    max-width: 100%;
    white-space: normal !important;
    overflow-wrap: anywhere;
}

/* Boutons */
.orion-home .orion-btn-row {
    width: 100%;
    max-width: 100%;
    min-width: 0;
}

.orion-home .orion-btn {
    max-width: 100%;
    min-width: 0;
}

/* Images */
.orion-home img {
    display: block;
    max-width: 100%;
    height: auto;
}

/* ============================================================
   MOBILE
   ============================================================ */

@media (max-width: 767px) {

    html,
    body,
    body.orion-frontend,
    .orion-home {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        overflow-x: hidden !important;
    }

    .orion-home .orion-container {
        width: calc(100% - 30px) !important;
        max-width: none !important;
        margin-left: 15px !important;
        margin-right: 15px !important;
    }

    .orion-home .orion-hero-grid {
        display: grid;
        grid-template-columns: minmax(0, 1fr) !important;
        width: 100% !important;
    }

    .orion-home .orion-hero-copy {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
    }

    .orion-home .orion-hero-title {
        width: 100%;
        max-width: 100%;
        overflow-wrap: normal;
        word-break: normal;
    }

    .orion-home .orion-hero-text {
        width: 100% !important;
        max-width: 100% !important;
        white-space: normal !important;
        overflow-wrap: anywhere !important;
    }

    .orion-home .orion-btn-row {
        display: flex;
        flex-direction: column;
        width: 100% !important;
        max-width: 100% !important;
    }

    .orion-home .orion-btn {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
    }

    .orion-home .orion-trust-row {
        width: 100%;
        max-width: 100%;
        min-width: 0;
    }

    .orion-home .orion-trust-item {
        min-width: 0;
        max-width: 100%;
    }

    .orion-home .orion-stats {
        width: 100%;
        max-width: 100%;
        min-width: 0;
    }

    .orion-home .orion-service-grid,
    .orion-home .orion-testimonial-grid,
    .orion-home .orion-news-grid,
    .orion-home .orion-process-grid {
        width: 100%;
        max-width: 100%;
        min-width: 0;
    }

    .orion-home .orion-service-card,
    .orion-home .orion-testimonial-card,
    .orion-home .orion-news-card,
    .orion-home .orion-process-step {
        min-width: 0;
        max-width: 100%;
    }
}