/* roulang page: index */
:root {
            --color-primary-dark: #0D5C58;
            --color-primary: #0F766E;
            --color-accent: #10B981;
            --color-amber: #F59E0B;
            --color-slate: #0F172A;
            --color-bg-light: #F8FAFC;
            --color-text-main: #0F172A;
            --color-text-sub: #334155;
            --color-text-muted: #64748B;
            --radius-md: 0.75rem;
            --radius-lg: 1rem;
            --radius-xl: 1.5rem;
            --shadow-subtle: 0 4px 20px -2px rgba(15, 23, 42, 0.06);
            --shadow-hover: 0 16px 36px -4px rgba(13, 92, 88, 0.12);
        }
        
        * {
            box-sizing: border-box;
            margin: 0;
            padding: 0;
        }

        html {
            scroll-behavior: smooth;
        }

        body {
            font-family: var(--font-sans, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);
            background-color: var(--color-bg-light);
            color: var(--color-text-main);
            line-height: 1.65;
            -webkit-font-smoothing: antialiased;
        }

        .section-separator {
            border-bottom: 1px solid rgba(226, 232, 240, 0.8);
        }

        .card-elevation {
            box-shadow: var(--shadow-subtle);
            transition: all 0.28s cubic-bezier(0.4, 0, 0.2, 1);
        }

        .card-elevation:hover {
            transform: translateY(-4px);
            box-shadow: var(--shadow-hover);
        }

        .badge-pill {
            display: inline-flex;
            align-items: center;
            padding: 0.25rem 0.75rem;
            border-radius: 9999px;
            font-size: 0.75rem;
            font-weight: 600;
            letter-spacing: 0.025em;
        }

        .status-pulse {
            width: 8px;
            height: 8px;
            border-radius: 50%;
            background-color: #10B981;
            box-shadow: 0 0 0 0 rgba(16, 185, 129, 0.7);
            animation: pulse-ring 2s infinite cubic-bezier(0.4, 0, 0.6, 1);
        }

        @keyframes pulse-ring {
            0% {
                transform: scale(0.95);
                box-shadow: 0 0 0 0 rgba(16, 185, 129, 0.7);
            }
            70% {
                transform: scale(1);
                box-shadow: 0 0 0 6px rgba(16, 185, 129, 0);
            }
            100% {
                transform: scale(0.95);
                box-shadow: 0 0 0 0 rgba(16, 185, 129, 0);
            }
        }

        .hero-banner-strip {
            background-size: cover;
            background-position: center;
            background-repeat: no-repeat;
            position: relative;
        }

        .hero-banner-strip::before {
            content: "";
            position: absolute;
            inset: 0;
            background: linear-gradient(90deg, rgba(248, 250, 252, 0.96) 0%, rgba(248, 250, 252, 0.88) 55%, rgba(248, 250, 252, 0.5) 100%);
        }

        .accordion-content {
            max-height: 0;
            overflow: hidden;
            transition: max-height 0.3s ease-out, opacity 0.2s ease-out;
            opacity: 0;
        }

        .accordion-item.active .accordion-content {
            max-height: 380px;
            opacity: 1;
        }

        .accordion-item.active .accordion-icon {
            transform: rotate(180deg);
        }

        .grid-striped {
            background-image: radial-gradient(rgba(15, 118, 110, 0.08) 1px, transparent 1px);
            background-size: 20px 20px;
        }
