/*
 * NORSU Research Ethics Committee
 * Unified Website Stylesheet
 *
 * Usage:
 *   <link rel="stylesheet" href="css/rec.css">
 *
 * Load Bootstrap and Bootstrap Icons before this stylesheet.
 * This file consolidates the shared REC website styles and page-specific
 * components used across About REC, Membership, Meetings, Forms & Documents,
 * Research Ethics Review, Ethics Guidelines, Research Participants,
 * References, and Queries / Complaints.
 */



/* ==========================================================
   SHARED + PAGE COMPONENTS
   ========================================================== */

:root {
            --norsu-blue: #0b3d91;
            --norsu-blue-dark: #082b67;
            --norsu-blue-light: #eaf2ff;

            --primary: var(--norsu-blue);
            --dark: #172033;
            --muted: #64748b;
            --light-bg: #f6f8fc;

            --border: #e5eaf1;

            --success: #198754;
            --warning: #f59e0b;
        }

        * {
            box-sizing: border-box;
        }

        html {
            scroll-behavior: smooth;
        }

        body {
            font-family: 'Inter', sans-serif;
            color: var(--dark);
            background: #ffffff;
            line-height: 1.7;
        }

        a {
            text-decoration: none;
        }

        /* =========================================================
           TOP BAR
        ========================================================= */

        .top-bar {
            background: var(--norsu-blue-dark);
            color: rgba(255,255,255,.9);
            font-size: .82rem;
        }

        .top-bar a {
            color: rgba(255,255,255,.9);
        }

        .top-bar a:hover {
            color: #fff;
        }

        /* =========================================================
           MAIN HEADER
        ========================================================= */

        .main-header {
            background: #fff;
            border-bottom: 1px solid var(--border);
        }

        .brand-wrapper {
            display: flex;
            align-items: center;
            gap: 14px;
            padding: 18px 0;
        }

        .brand-logo {
            width: 58px;
            height: 58px;
            border-radius: 50%;
            background: var(--norsu-blue-light);
            border: 2px solid #d9e6ff;

            display: flex;
            align-items: center;
            justify-content: center;

            color: var(--norsu-blue);
            font-size: 1.5rem;
            flex-shrink: 0;
        }

        .brand-text small {
            display: block;
            font-size: .72rem;
            font-weight: 700;
            letter-spacing: .08em;
            color: var(--muted);
            text-transform: uppercase;
        }

        .brand-text strong {
            display: block;
            font-size: 1.15rem;
            color: var(--norsu-blue-dark);
            line-height: 1.3;
        }

        .brand-text span {
            display: block;
            font-size: .82rem;
            color: var(--muted);
        }

        /* =========================================================
           NAVIGATION
        ========================================================= */

        .main-nav {
            background: #fff;
        }

        .navbar {
            padding: 0;
        }

        .navbar-nav .nav-link {
            color: #344054;
            font-size: .88rem;
            font-weight: 600;
            padding: 15px 12px !important;
            position: relative;
        }

        .navbar-nav .nav-link:hover,
        .navbar-nav .nav-link.active {
            color: var(--norsu-blue);
        }

        .navbar-nav .nav-link.active::after {
            content: "";
            position: absolute;
            left: 12px;
            right: 12px;
            bottom: 0;
            height: 3px;
            background: var(--norsu-blue);
            border-radius: 3px 3px 0 0;
        }

        .dropdown-menu {
            border: 1px solid var(--border);
            border-radius: 10px;
            padding: 8px;
            box-shadow: 0 15px 40px rgba(15, 23, 42, .12);
        }

        .dropdown-item {
            padding: 9px 12px;
            border-radius: 7px;
            font-size: .87rem;
            color: #344054;
        }

        .dropdown-item:hover {
            background: var(--norsu-blue-light);
            color: var(--norsu-blue);
        }

        /* =========================================================
           HERO
        ========================================================= */

        .hero {
            position: relative;
            overflow: hidden;

            background:
                radial-gradient(circle at 85% 20%,
                    rgba(255,255,255,.13),
                    transparent 28%),

                linear-gradient(
                    135deg,
                    #082b67 0%,
                    #0b3d91 55%,
                    #1769c2 100%
                );

            color: #fff;
            padding: 90px 0 100px;
        }

        .hero::after {
            content: "";
            position: absolute;
            width: 450px;
            height: 450px;
            border: 1px solid rgba(255,255,255,.1);
            border-radius: 50%;
            right: -120px;
            bottom: -220px;
        }

        .hero-content {
            position: relative;
            z-index: 2;
        }

        .hero-label {
            display: inline-flex;
            align-items: center;
            gap: 8px;

            background: rgba(255,255,255,.12);
            border: 1px solid rgba(255,255,255,.2);

            padding: 7px 13px;
            border-radius: 50px;

            font-size: .78rem;
            font-weight: 600;
            letter-spacing: .03em;
            margin-bottom: 20px;
        }

        .hero h1 {
            font-size: clamp(2.2rem, 5vw, 4rem);
            font-weight: 800;
            line-height: 1.1;
            letter-spacing: -.04em;
            margin-bottom: 22px;
        }

        .hero h1 span {
            color: #cfe1ff;
        }

        .hero p {
            max-width: 700px;
            color: rgba(255,255,255,.84);
            font-size: 1.05rem;
            margin-bottom: 32px;
        }

        .hero-buttons {
            display: flex;
            flex-wrap: wrap;
            gap: 12px;
        }

        .btn-hero-primary {
            background: #fff;
            color: var(--norsu-blue);
            border: none;
            font-weight: 700;
            padding: 12px 20px;
            border-radius: 8px;
        }

        .btn-hero-primary:hover {
            background: #eef4ff;
            color: var(--norsu-blue-dark);
        }

        .btn-hero-outline {
            background: transparent;
            color: #fff;
            border: 1px solid rgba(255,255,255,.4);
            font-weight: 600;
            padding: 12px 20px;
            border-radius: 8px;
        }

        .btn-hero-outline:hover {
            background: rgba(255,255,255,.1);
            color: #fff;
        }

        /* Hero information panel */

        .hero-panel {
            position: relative;
            z-index: 2;

            background: rgba(255,255,255,.1);
            border: 1px solid rgba(255,255,255,.18);
            backdrop-filter: blur(10px);

            border-radius: 16px;
            padding: 25px;
        }

        .hero-panel-title {
            font-weight: 700;
            font-size: 1rem;
            margin-bottom: 18px;
        }

        .hero-panel-item {
            display: flex;
            align-items: flex-start;
            gap: 12px;

            padding: 14px 0;
            border-top: 1px solid rgba(255,255,255,.13);
        }

        .hero-panel-item i {
            font-size: 1.1rem;
            color: #d9e7ff;
        }

        .hero-panel-item strong {
            display: block;
            font-size: .86rem;
        }

        .hero-panel-item span {
            display: block;
            font-size: .76rem;
            color: rgba(255,255,255,.7);
        }

        /* =========================================================
           SECTION
        ========================================================= */

        .section {
            padding: 80px 0;
        }

        .section-light {
            background: var(--light-bg);
        }

        .section-header {
            margin-bottom: 42px;
        }

        .section-label {
            color: var(--norsu-blue);
            font-size: .76rem;
            font-weight: 800;
            letter-spacing: .12em;
            text-transform: uppercase;
            margin-bottom: 8px;
        }

        .section-title {
            font-size: clamp(1.8rem, 4vw, 2.5rem);
            font-weight: 800;
            color: var(--dark);
            letter-spacing: -.035em;
            margin-bottom: 12px;
        }

        .section-description {
            color: var(--muted);
            max-width: 700px;
        }

        /* =========================================================
           QUICK LINKS
        ========================================================= */

        .quick-card {
            height: 100%;
            border: 1px solid var(--border);
            background: #fff;
            border-radius: 14px;
            padding: 25px;

            transition: all .25s ease;
        }

        .quick-card:hover {
            transform: translateY(-4px);
            border-color: #bfd2f2;
            box-shadow: 0 12px 30px rgba(15,23,42,.08);
        }

        .quick-icon {
            width: 48px;
            height: 48px;
            border-radius: 11px;

            background: var(--norsu-blue-light);
            color: var(--norsu-blue);

            display: flex;
            align-items: center;
            justify-content: center;

            font-size: 1.25rem;
            margin-bottom: 18px;
        }

        .quick-card h5 {
            font-size: 1rem;
            font-weight: 700;
            margin-bottom: 8px;
        }

        .quick-card p {
            color: var(--muted);
            font-size: .84rem;
            margin-bottom: 15px;
        }

        .quick-link {
            font-size: .82rem;
            font-weight: 700;
            color: var(--norsu-blue);
        }

        /* =========================================================
           ABOUT
        ========================================================= */

        .about-box {
            background: var(--light-bg);
            border: 1px solid var(--border);
            border-radius: 18px;
            padding: 35px;
        }

        .about-icon {
            width: 56px;
            height: 56px;
            display: flex;
            align-items: center;
            justify-content: center;

            background: var(--norsu-blue);
            color: white;

            border-radius: 12px;
            font-size: 1.5rem;
            margin-bottom: 20px;
        }

        .about-box h3 {
            font-size: 1.35rem;
            font-weight: 750;
            margin-bottom: 15px;
        }

        .about-box p {
            color: var(--muted);
            font-size: .92rem;
        }

        .about-list {
            list-style: none;
            padding: 0;
            margin: 25px 0 0;
        }

        .about-list li {
            display: flex;
            gap: 10px;
            margin-bottom: 12px;
            font-size: .88rem;
            color: #475467;
        }

        .about-list i {
            color: var(--success);
            margin-top: 4px;
        }

        /* =========================================================
           PROCESS
        ========================================================= */

        .process-card {
            position: relative;
            height: 100%;
            text-align: center;
            padding: 25px 20px;
        }

        .process-number {
            width: 44px;
            height: 44px;

            border-radius: 50%;
            background: var(--norsu-blue);
            color: #fff;

            display: flex;
            align-items: center;
            justify-content: center;

            font-weight: 800;
            margin: 0 auto 18px;
        }

        .process-card h5 {
            font-size: .95rem;
            font-weight: 700;
        }

        .process-card p {
            font-size: .8rem;
            color: var(--muted);
        }

        .process-line {
            position: absolute;
            top: 46px;
            left: calc(50% + 32px);
            width: calc(100% - 64px);
            border-top: 1px dashed #cbd5e1;
        }

        /* =========================================================
           OFFICIAL REVIEW PROCESS
        ========================================================= */

        .process-grid {
            display: grid;
            grid-template-columns: repeat(4, 1fr);
            gap: 18px;
        }

        .process-step {
            position: relative;
            background: #fff;
            border: 1px solid var(--border);
            border-radius: 15px;
            padding: 22px;
            min-height: 210px;
            transition: .25s ease;
        }

        .process-step:hover {
            transform: translateY(-4px);
            border-color: #bfd2f2;
            box-shadow: 0 12px 30px rgba(15,23,42,.07);
        }

        .process-step .process-number {
            margin: 0 0 16px;
        }

        .process-step h5 {
            font-size: .95rem;
            font-weight: 750;
            margin-bottom: 8px;
        }

        .process-step p {
            color: var(--muted);
            font-size: .8rem;
            margin-bottom: 0;
        }

        .process-final {
            background: linear-gradient(135deg, var(--norsu-blue-dark), var(--norsu-blue));
            color: #fff;
            border-radius: 15px;
            padding: 22px 26px;
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 20px;
            margin-top: 18px;
        }

        .process-final p {
            color: rgba(255,255,255,.75);
            margin: 3px 0 0;
            font-size: .82rem;
        }

        .manual-card {
            background: linear-gradient(135deg, #071d42, #0b3d91);
            color: #fff;
            border-radius: 20px;
            padding: 34px;
            height: 100%;
            position: relative;
            overflow: hidden;
        }

        .manual-card::after {
            content: "";
            position: absolute;
            width: 230px;
            height: 230px;
            border: 1px solid rgba(255,255,255,.1);
            border-radius: 50%;
            right: -90px;
            bottom: -110px;
        }

        .manual-icon {
            width: 58px;
            height: 58px;
            border-radius: 13px;
            display: flex;
            align-items: center;
            justify-content: center;
            background: rgba(255,255,255,.12);
            font-size: 1.55rem;
            margin-bottom: 20px;
        }

        .manual-card p { color: rgba(255,255,255,.76); font-size: .88rem; }
        .manual-meta { color: #cfe1ff; font-size: .75rem; font-weight: 600; }

        .form-list-card {
            background: #fff;
            border: 1px solid var(--border);
            border-radius: 16px;
            padding: 26px;
            height: 100%;
        }

        .form-mini {
            display: flex;
            gap: 13px;
            align-items: flex-start;
            padding: 13px 0;
            border-bottom: 1px solid var(--border);
        }

        .form-mini:last-child { border-bottom: 0; }
        .form-mini i { color: var(--norsu-blue); margin-top: 2px; }
        .form-mini strong { display:block; font-size:.84rem; }
        .form-mini span { display:block; color:var(--muted); font-size:.74rem; }

        @media (max-width: 991.98px) {
            .process-grid { grid-template-columns: repeat(2, 1fr); }
        }

        @media (max-width: 575.98px) {
            .process-grid { grid-template-columns: 1fr; }
            .process-final { align-items: flex-start; flex-direction: column; }
        }

        /* =========================================================
           ANNOUNCEMENTS
        ========================================================= */

        .announcement-card {
            background: #fff;
            border: 1px solid var(--border);
            border-radius: 13px;
            overflow: hidden;
            height: 100%;
        }

        .announcement-date {
            background: var(--norsu-blue-light);
            color: var(--norsu-blue);

            padding: 18px;
            text-align: center;
            min-width: 82px;
        }

        .announcement-date strong {
            display: block;
            font-size: 1.5rem;
            line-height: 1;
        }

        .announcement-date span {
            display: block;
            font-size: .7rem;
            font-weight: 700;
            text-transform: uppercase;
            margin-top: 4px;
        }

        .announcement-content {
            padding: 18px;
        }

        .announcement-content h5 {
            font-size: .95rem;
            font-weight: 700;
            margin-bottom: 7px;
        }

        .announcement-content p {
            color: var(--muted);
            font-size: .8rem;
            margin-bottom: 10px;
        }

        .announcement-content a {
            color: var(--norsu-blue);
            font-size: .78rem;
            font-weight: 700;
        }

        /* =========================================================
           RESOURCE TABLE
        ========================================================= */

        .resource-card {
            display: flex;
            align-items: center;
            gap: 16px;

            background: #fff;
            border: 1px solid var(--border);
            border-radius: 12px;

            padding: 17px 18px;
            margin-bottom: 12px;

            transition: .2s ease;
        }

        .resource-card:hover {
            border-color: #b8cbea;
            transform: translateX(3px);
        }

        .resource-icon {
            width: 42px;
            height: 42px;
            flex-shrink: 0;

            background: #f1f5f9;
            color: var(--norsu-blue);

            display: flex;
            align-items: center;
            justify-content: center;

            border-radius: 9px;
        }

        .resource-info {
            flex-grow: 1;
        }

        .resource-info h6 {
            font-size: .88rem;
            font-weight: 700;
            margin-bottom: 2px;
        }

        .resource-info span {
            font-size: .74rem;
            color: var(--muted);
        }

        .resource-arrow {
            color: #94a3b8;
        }

        /* =========================================================
           PARTICIPANTS RIGHTS
        ========================================================= */

        .rights-card {
            background: #fff;
            border: 1px solid var(--border);
            border-radius: 15px;
            padding: 23px;
            height: 100%;
        }

        .rights-card i {
            font-size: 1.5rem;
            color: var(--norsu-blue);
            margin-bottom: 15px;
        }

        .rights-card h5 {
            font-size: .95rem;
            font-weight: 700;
        }

        .rights-card p {
            color: var(--muted);
            font-size: .8rem;
            margin: 0;
        }

        /* =========================================================
           FAQ
        ========================================================= */

        .accordion-item {
            border: 1px solid var(--border);
            margin-bottom: 10px;
            border-radius: 9px !important;
            overflow: hidden;
        }

        .accordion-button {
            font-size: .9rem;
            font-weight: 600;
            color: var(--dark);
            background: #fff;
            box-shadow: none !important;
        }

        .accordion-button:not(.collapsed) {
            color: var(--norsu-blue);
            background: var(--norsu-blue-light);
        }

        .accordion-body {
            font-size: .84rem;
            color: var(--muted);
        }

        /* =========================================================
           CONTACT
        ========================================================= */

        .contact-section {
            background:
                linear-gradient(
                    135deg,
                    var(--norsu-blue-dark),
                    var(--norsu-blue)
                );

            color: #fff;
        }

        .contact-section .section-label {
            color: #cfe1ff;
        }

        .contact-section .section-title {
            color: #fff;
        }

        .contact-section .section-description {
            color: rgba(255,255,255,.75);
        }

        .contact-item {
            display: flex;
            align-items: flex-start;
            gap: 14px;
            margin-bottom: 20px;
        }

        .contact-icon {
            width: 40px;
            height: 40px;
            border-radius: 9px;

            background: rgba(255,255,255,.12);
            color: #fff;

            display: flex;
            align-items: center;
            justify-content: center;

            flex-shrink: 0;
        }

        .contact-item strong {
            display: block;
            font-size: .82rem;
        }

        .contact-item span {
            color: rgba(255,255,255,.7);
            font-size: .8rem;
        }

        .contact-form {
            background: #fff;
            border-radius: 15px;
            padding: 28px;
            color: var(--dark);
        }

        .contact-form label {
            font-size: .78rem;
            font-weight: 600;
            margin-bottom: 5px;
        }

        .contact-form .form-control,
        .contact-form .form-select {
            border-color: var(--border);
            font-size: .83rem;
            padding: 10px 12px;
        }

        .contact-form .form-control:focus,
        .contact-form .form-select:focus {
            border-color: #9db9e9;
            box-shadow: 0 0 0 .2rem rgba(11,61,145,.08);
        }

        /* =========================================================
           FOOTER
        ========================================================= */

        .footer {
            background: #071d42;
            color: rgba(255,255,255,.7);
        }

        .footer-main {
            padding: 55px 0 35px;
        }

        .footer-brand {
            color: #fff;
            font-weight: 700;
            margin-bottom: 12px;
        }

        .footer-description {
            font-size: .8rem;
            max-width: 380px;
        }

        .footer-title {
            color: #fff;
            font-size: .82rem;
            font-weight: 700;
            margin-bottom: 15px;
        }

        .footer-links {
            list-style: none;
            padding: 0;
            margin: 0;
        }

        .footer-links li {
            margin-bottom: 8px;
        }

        .footer-links a {
            color: rgba(255,255,255,.65);
            font-size: .77rem;
        }

        .footer-links a:hover {
            color: #fff;
        }

        .footer-bottom {
            border-top: 1px solid rgba(255,255,255,.1);
            padding: 18px 0;
            font-size: .72rem;
        }

        /* =========================================================
           BACK TO TOP
        ========================================================= */

        #backToTop {
            position: fixed;
            right: 22px;
            bottom: 22px;

            width: 42px;
            height: 42px;

            border: none;
            border-radius: 50%;

            background: var(--norsu-blue);
            color: #fff;

            display: none;
            align-items: center;
            justify-content: center;

            box-shadow: 0 8px 25px rgba(0,0,0,.18);

            z-index: 999;
        }

        #backToTop.show {
            display: flex;
        }

        /* =========================================================
           RESPONSIVE
        ========================================================= */

        @media (max-width: 991.98px) {

            .navbar {
                padding: 8px 0;
            }

            .navbar-nav .nav-link {
                padding: 10px 5px !important;
            }

            .navbar-nav .nav-link.active::after {
                display: none;
            }

            .hero {
                padding: 65px 0 70px;
            }

            .hero-panel {
                margin-top: 35px;
            }

            .process-line {
                display: none;
            }

        }

        @media (max-width: 575.98px) {

            .top-bar {
                display: none;
            }

            .brand-wrapper {
                padding: 14px 0;
            }

            .brand-logo {
                width: 48px;
                height: 48px;
            }

            .brand-text strong {
                font-size: .95rem;
            }

            .brand-text span {
                font-size: .72rem;
            }

            .section {
                padding: 60px 0;
            }

            .hero {
                padding: 55px 0 60px;
            }

            .hero h1 {
                font-size: 2.25rem;
            }

            .hero p {
                font-size: .92rem;
            }

            .hero-buttons {
                flex-direction: column;
            }

            .hero-buttons .btn {
                width: 100%;
            }

            .about-box {
                padding: 25px;
            }

        }

.page-hero {
        background: linear-gradient(135deg, #082b67 0%, #0b3d91 58%, #1769c2 100%);
        color: #fff;
        padding: 64px 0;
        position: relative;
        overflow: hidden;
    }
    .page-hero::after {
        content: "";
        position: absolute;
        width: 330px;
        height: 330px;
        border: 1px solid rgba(255,255,255,.12);
        border-radius: 50%;
        right: -90px;
        bottom: -180px;
    }
    .page-hero .container { position: relative; z-index: 2; }
    .page-hero h1 {
        font-weight: 800;
        letter-spacing: -.035em;
        margin-bottom: 14px;
    }
    .page-hero p {
        max-width: 760px;
        color: rgba(255,255,255,.82);
        margin-bottom: 0;
    }
    .breadcrumb {
        --bs-breadcrumb-divider-color: rgba(255,255,255,.5);
        --bs-breadcrumb-item-active-color: rgba(255,255,255,.72);
        font-size: .78rem;
    }
    .breadcrumb a { color: #fff; }
    .notice-box {
        border: 1px solid #cfe0fb;
        background: #f4f8ff;
        border-radius: 14px;
        padding: 20px 22px;
    }
    .notice-box i { color: var(--norsu-blue); }
    .category-nav {
        background: #fff;
        border: 1px solid var(--border);
        border-radius: 14px;
        padding: 10px;
        position: sticky;
        top: 78px;
    }
    .category-nav a {
        display: flex;
        align-items: center;
        gap: 10px;
        padding: 10px 12px;
        color: #475467;
        border-radius: 8px;
        font-size: .82rem;
        font-weight: 600;
    }
    .category-nav a:hover {
        background: var(--norsu-blue-light);
        color: var(--norsu-blue);
    }
    .category-nav i { width: 18px; text-align: center; }
    .form-group-section { scroll-margin-top: 90px; margin-bottom: 52px; }
    .form-group-title {
        display: flex;
        align-items: center;
        gap: 12px;
        margin-bottom: 8px;
    }
    .form-group-icon {
        width: 42px;
        height: 42px;
        border-radius: 10px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        background: var(--norsu-blue-light);
        color: var(--norsu-blue);
        flex-shrink: 0;
    }
    .form-group-title h2 {
        font-size: 1.35rem;
        font-weight: 800;
        margin: 0;
    }
    .form-group-intro {
        color: var(--muted);
        font-size: .88rem;
        margin: 0 0 20px 54px;
    }
    .document-card {
        border: 1px solid var(--border);
        border-radius: 14px;
        background: #fff;
        padding: 22px;
        height: 100%;
        transition: .2s ease;
    }
    .document-card:hover {
        border-color: #b8cbea;
        box-shadow: 0 10px 26px rgba(15,23,42,.06);
        transform: translateY(-2px);
    }
    .document-code {
        display: inline-block;
        color: var(--norsu-blue);
        background: var(--norsu-blue-light);
        font-size: .68rem;
        font-weight: 800;
        letter-spacing: .06em;
        border-radius: 50px;
        padding: 5px 9px;
        margin-bottom: 12px;
    }
    .document-card h3 {
        font-size: 1rem;
        font-weight: 750;
        margin-bottom: 8px;
    }
    .document-card p {
        color: var(--muted);
        font-size: .8rem;
        margin-bottom: 16px;
    }
    .document-meta {
        border-top: 1px solid var(--border);
        padding-top: 13px;
        margin-top: auto;
        font-size: .72rem;
        color: #667085;
    }
    .document-actions {
        display: flex;
        flex-wrap: wrap;
        gap: 8px;
        margin-top: 15px;
    }
    .document-actions .btn { font-size: .76rem; font-weight: 650; }
    .process-summary {
        border-radius: 16px;
        background: #071d42;
        color: #fff;
        padding: 28px;
    }
    .process-summary p { color: rgba(255,255,255,.72); font-size: .85rem; }
    .process-mini {
        display: flex;
        gap: 12px;
        padding: 11px 0;
        border-top: 1px solid rgba(255,255,255,.1);
    }
    .process-mini-number {
        width: 28px; height: 28px; border-radius: 50%;
        display: flex; align-items: center; justify-content: center;
        background: rgba(255,255,255,.12); font-size: .72rem;
        font-weight: 800; flex-shrink: 0;
    }
    .process-mini strong { display:block; font-size:.8rem; }
    .process-mini span { display:block; color:rgba(255,255,255,.62); font-size:.7rem; }
    .internal-badge {
        display: inline-flex;
        align-items: center;
        gap: 5px;
        font-size: .68rem;
        color: #7c5a00;
        background: #fff7db;
        padding: 4px 8px;
        border-radius: 50px;
        margin-left: 5px;
    }
    @media (max-width: 991.98px) {
        .category-nav { position: static; margin-bottom: 35px; }
        .form-group-intro { margin-left: 0; }
    }

.review-hero{background:linear-gradient(135deg,#082b67 0%,#0b3d91 58%,#1769c2 100%);color:#fff;padding:68px 0;position:relative;overflow:hidden}
.review-hero:after{content:"";position:absolute;width:390px;height:390px;border:1px solid rgba(255,255,255,.12);border-radius:50%;right:-110px;bottom:-220px}
.review-hero .container{position:relative;z-index:2}.review-hero h1{font-weight:800;letter-spacing:-.04em;margin-bottom:15px}.review-hero p{max-width:830px;color:rgba(255,255,255,.82);margin:0}
.breadcrumb{--bs-breadcrumb-divider-color:rgba(255,255,255,.5);--bs-breadcrumb-item-active-color:rgba(255,255,255,.7);font-size:.78rem}.breadcrumb a{color:#fff}
.notice-panel{border-left:4px solid var(--norsu-blue);background:#f4f8ff;border-radius:12px;padding:22px}.notice-panel p{font-size:.8rem;color:#475467;margin:0}
.process-timeline{position:relative}.process-timeline:before{content:"";position:absolute;left:23px;top:20px;bottom:20px;width:2px;background:#dbe7f7}
.process-step{position:relative;display:flex;gap:20px;margin-bottom:15px}.step-number{width:47px;height:47px;border-radius:50%;background:var(--norsu-blue);color:#fff;display:flex;align-items:center;justify-content:center;font-size:.8rem;font-weight:800;flex:0 0 47px;z-index:1;box-shadow:0 0 0 5px #fff}
.step-card{border:1px solid var(--border);background:#fff;border-radius:15px;padding:20px;flex:1}.step-card h3{font-size:.92rem;font-weight:750;margin-bottom:5px}.step-card p{font-size:.78rem;color:var(--muted);margin:0}
.final-step{background:#071d42;color:#fff;border-radius:15px;padding:21px}.final-step p{color:rgba(255,255,255,.7);font-size:.76rem;margin:3px 0 0}
.review-card{border:1px solid var(--border);border-radius:16px;background:#fff;padding:24px;height:100%}.review-icon{width:45px;height:45px;border-radius:11px;background:var(--norsu-blue-light);color:var(--norsu-blue);display:flex;align-items:center;justify-content:center;font-size:1.15rem;margin-bottom:16px}.review-card h3{font-size:.96rem;font-weight:750}.review-card p{font-size:.78rem;color:var(--muted);margin:0}
.docs-box{border:1px solid var(--border);border-radius:16px;background:#fff;overflow:hidden}.docs-row{display:flex;gap:14px;padding:17px 20px;border-top:1px solid var(--border)}.docs-row:first-child{border-top:0}.docs-row i{color:var(--norsu-blue)}.docs-row strong{display:block;font-size:.82rem}.docs-row span{display:block;font-size:.74rem;color:var(--muted);margin-top:2px}
.time-card{background:#071d42;color:#fff;border-radius:18px;padding:30px}.time-value{font-size:2.3rem;font-weight:800;letter-spacing:-.05em;line-height:1}.time-card p{font-size:.78rem;color:rgba(255,255,255,.7);margin-bottom:0}
.post-card{border:1px solid var(--border);border-radius:15px;background:#fff;padding:22px;height:100%}.post-card h3{font-size:.9rem;font-weight:750}.post-card p{font-size:.77rem;color:var(--muted);margin:0}

.ethics-hero{background:linear-gradient(135deg,#082b67 0%,#0b3d91 58%,#1769c2 100%);color:#fff;padding:68px 0;position:relative;overflow:hidden}
.ethics-hero:after{content:"";position:absolute;width:390px;height:390px;border:1px solid rgba(255,255,255,.12);border-radius:50%;right:-110px;bottom:-220px}.ethics-hero .container{position:relative;z-index:2}
.ethics-hero h1{font-weight:800;letter-spacing:-.04em;margin-bottom:15px}.ethics-hero p{max-width:830px;color:rgba(255,255,255,.82);margin:0}
.breadcrumb{--bs-breadcrumb-divider-color:rgba(255,255,255,.5);--bs-breadcrumb-item-active-color:rgba(255,255,255,.7);font-size:.78rem}.breadcrumb a{color:#fff}
.principle-card{border:1px solid var(--border);border-radius:15px;background:#fff;padding:22px;height:100%}.principle-num{font-size:.67rem;font-weight:800;color:var(--norsu-blue);letter-spacing:.08em;text-transform:uppercase}.principle-card h3{font-size:.91rem;font-weight:750;margin:7px 0}.principle-card p{font-size:.76rem;color:var(--muted);margin:0}
.ethic-box{border:1px solid var(--border);border-radius:16px;background:#fff;overflow:hidden}.ethic-row{display:flex;gap:15px;padding:19px 21px;border-top:1px solid var(--border)}.ethic-row:first-child{border-top:0}.ethic-row i{color:var(--norsu-blue);font-size:1.05rem}.ethic-row strong{display:block;font-size:.84rem}.ethic-row span{display:block;font-size:.75rem;color:var(--muted);margin-top:3px}
.special-card{border:1px solid var(--border);border-radius:15px;background:#fff;padding:21px;height:100%}.special-icon{width:42px;height:42px;border-radius:10px;background:var(--norsu-blue-light);color:var(--norsu-blue);display:flex;align-items:center;justify-content:center;margin-bottom:14px}.special-card h3{font-size:.88rem;font-weight:750}.special-card p{font-size:.75rem;color:var(--muted);margin:0}
.manual-panel{background:#071d42;color:#fff;border-radius:18px;padding:30px}.manual-panel p{font-size:.8rem;color:rgba(255,255,255,.7)}
.note-panel{border-left:4px solid var(--norsu-blue);background:#f4f8ff;border-radius:12px;padding:22px}.note-panel p{font-size:.8rem;color:#475467;margin:0}

.participant-hero{background:linear-gradient(135deg,#082b67 0%,#0b3d91 58%,#1769c2 100%);color:#fff;padding:68px 0;position:relative;overflow:hidden}
.participant-hero:after{content:"";position:absolute;width:390px;height:390px;border:1px solid rgba(255,255,255,.12);border-radius:50%;right:-110px;bottom:-220px}.participant-hero .container{position:relative;z-index:2}
.participant-hero h1{font-weight:800;letter-spacing:-.04em;margin-bottom:15px}.participant-hero p{max-width:840px;color:rgba(255,255,255,.82);margin:0}
.breadcrumb{--bs-breadcrumb-divider-color:rgba(255,255,255,.5);--bs-breadcrumb-item-active-color:rgba(255,255,255,.7);font-size:.78rem}.breadcrumb a{color:#fff}
.right-card{border:1px solid var(--border);border-radius:16px;background:#fff;padding:23px;height:100%}.right-icon{width:44px;height:44px;border-radius:11px;background:var(--norsu-blue-light);color:var(--norsu-blue);display:flex;align-items:center;justify-content:center;font-size:1.1rem;margin-bottom:15px}.right-card h3{font-size:.92rem;font-weight:750}.right-card p{font-size:.76rem;color:var(--muted);margin:0}
.consent-box{border:1px solid var(--border);border-radius:16px;background:#fff;overflow:hidden}.consent-row{display:flex;gap:15px;padding:18px 20px;border-top:1px solid var(--border)}.consent-row:first-child{border-top:0}.consent-row i{color:var(--norsu-blue);font-size:1.05rem}.consent-row strong{display:block;font-size:.83rem}.consent-row span{display:block;font-size:.75rem;color:var(--muted);margin-top:3px}
.protection-panel{background:#071d42;color:#fff;border-radius:18px;padding:30px}.protection-panel p{font-size:.8rem;color:rgba(255,255,255,.72)}
.form-card{border:1px solid var(--border);border-radius:16px;background:#fff;padding:24px;height:100%}.form-code{display:inline-block;background:var(--norsu-blue-light);color:var(--norsu-blue);font-size:.67rem;font-weight:800;letter-spacing:.06em;padding:5px 9px;border-radius:50px;margin-bottom:12px}
.concern-box{border-left:4px solid var(--norsu-blue);background:#f4f8ff;border-radius:12px;padding:24px}.concern-box p{font-size:.8rem;color:#475467}

.about-page-hero {
        background: linear-gradient(135deg,#082b67 0%,#0b3d91 58%,#1769c2 100%);
        color:#fff; padding:68px 0; position:relative; overflow:hidden;
    }
    .about-page-hero::after {
        content:""; position:absolute; width:380px; height:380px; border-radius:50%;
        border:1px solid rgba(255,255,255,.12); right:-100px; bottom:-210px;
    }
    .about-page-hero .container { position:relative; z-index:2; }
    .about-page-hero h1 { font-weight:800; letter-spacing:-.04em; margin-bottom:15px; }
    .about-page-hero p { max-width:780px; color:rgba(255,255,255,.82); margin:0; }
    .breadcrumb { --bs-breadcrumb-divider-color:rgba(255,255,255,.5); --bs-breadcrumb-item-active-color:rgba(255,255,255,.7); font-size:.78rem; }
    .breadcrumb a { color:#fff; }

    .intro-panel { border:1px solid var(--border); border-radius:18px; padding:32px; background:#fff; height:100%; }
    .intro-panel p { color:var(--muted); font-size:.9rem; }
    .manual-card { background:#071d42; color:#fff; border-radius:18px; padding:32px; height:100%; }
    .manual-card p { color:rgba(255,255,255,.72); font-size:.85rem; }
    .manual-meta { border-top:1px solid rgba(255,255,255,.12); margin-top:18px; padding-top:18px; font-size:.75rem; color:rgba(255,255,255,.68); }

    .function-card, .principle-card {
        border:1px solid var(--border); border-radius:14px; background:#fff; padding:23px; height:100%;
    }
    .function-icon, .principle-icon {
        width:44px; height:44px; border-radius:10px; display:flex; align-items:center; justify-content:center;
        background:var(--norsu-blue-light); color:var(--norsu-blue); margin-bottom:16px; font-size:1.15rem;
    }
    .function-card h3, .principle-card h3 { font-size:.95rem; font-weight:750; margin-bottom:8px; }
    .function-card p, .principle-card p { font-size:.79rem; color:var(--muted); margin:0; }

    .independence-box {
        background:#f4f8ff; border:1px solid #cfe0fb; border-left:4px solid var(--norsu-blue);
        border-radius:12px; padding:24px;
    }
    .independence-box h3 { font-size:1rem; font-weight:750; }

    .principles-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
    .principle-card { padding:18px; }
    .principle-card h3 { margin-bottom:5px; }
    .principle-card p { line-height:1.55; }

    .standards-box { border:1px solid var(--border); border-radius:16px; overflow:hidden; background:#fff; }
    .standard-row { display:flex; gap:15px; padding:17px 20px; border-top:1px solid var(--border); }
    .standard-row:first-child { border-top:0; }
    .standard-row i { color:var(--norsu-blue); margin-top:2px; }
    .standard-row strong { display:block; font-size:.84rem; }
    .standard-row span { display:block; color:var(--muted); font-size:.76rem; }

    .scope-chip {
        display:inline-flex; align-items:center; gap:7px; padding:8px 12px; border-radius:50px;
        border:1px solid var(--border); background:#fff; color:#475467; font-size:.76rem; font-weight:600;
        margin:4px;
    }
    .scope-chip i { color:var(--norsu-blue); }

    .cta-panel { background:linear-gradient(135deg,#082b67,#0b3d91); border-radius:18px; padding:34px; color:#fff; }
    .cta-panel p { color:rgba(255,255,255,.75); }

    @media(max-width:991.98px){ .principles-grid{grid-template-columns:repeat(2,1fr);} }
    @media(max-width:575.98px){ .principles-grid{grid-template-columns:1fr;} }

.member-hero{background:linear-gradient(135deg,#082b67 0%,#0b3d91 58%,#1769c2 100%);color:#fff;padding:68px 0;position:relative;overflow:hidden}
.member-hero:after{content:"";position:absolute;width:390px;height:390px;border:1px solid rgba(255,255,255,.12);border-radius:50%;right:-110px;bottom:-220px}
.member-hero .container{position:relative;z-index:2}.member-hero h1{font-weight:800;letter-spacing:-.04em;margin-bottom:15px}.member-hero p{max-width:790px;color:rgba(255,255,255,.82);margin:0}
.breadcrumb{--bs-breadcrumb-divider-color:rgba(255,255,255,.5);--bs-breadcrumb-item-active-color:rgba(255,255,255,.7);font-size:.78rem}.breadcrumb a{color:#fff}
.info-card{border:1px solid var(--border);border-radius:15px;background:#fff;padding:24px;height:100%}.info-card h3{font-size:.98rem;font-weight:750}.info-card p{font-size:.8rem;color:var(--muted);margin-bottom:0}
.info-icon{width:44px;height:44px;border-radius:11px;background:var(--norsu-blue-light);color:var(--norsu-blue);display:flex;align-items:center;justify-content:center;font-size:1.15rem;margin-bottom:16px}
.requirement-box{border:1px solid var(--border);border-radius:16px;background:#fff;overflow:hidden}.requirement-row{display:flex;gap:15px;padding:18px 20px;border-top:1px solid var(--border)}.requirement-row:first-child{border-top:0}.requirement-row i{color:var(--norsu-blue);font-size:1rem;margin-top:2px}.requirement-row strong{display:block;font-size:.84rem}.requirement-row span{display:block;color:var(--muted);font-size:.76rem;margin-top:2px}
.independence-panel{background:#071d42;color:#fff;border-radius:18px;padding:30px;height:100%}.independence-panel p{color:rgba(255,255,255,.72);font-size:.84rem}
.coi-box{background:#fff7db;border:1px solid #f2dda1;border-radius:14px;padding:22px}.coi-box p{font-size:.8rem;color:#67591e;margin-bottom:0}
.training-card{border:1px solid var(--border);border-radius:15px;padding:24px;background:#fff;height:100%}.training-card h3{font-size:.95rem;font-weight:750}.training-card p{font-size:.79rem;color:var(--muted);margin:0}
.form-card{border:1px solid var(--border);border-radius:16px;background:#fff;padding:27px}.form-code{display:inline-block;background:var(--norsu-blue-light);color:var(--norsu-blue);font-size:.68rem;font-weight:800;letter-spacing:.06em;padding:5px 9px;border-radius:50px;margin-bottom:12px}
.placeholder-panel{border:1px dashed #b8c6dc;background:#f8fafc;border-radius:16px;padding:28px}.placeholder-panel p{font-size:.82rem;color:var(--muted)}

.meet-hero{background:linear-gradient(135deg,#082b67 0%,#0b3d91 58%,#1769c2 100%);color:#fff;padding:68px 0;position:relative;overflow:hidden}
.meet-hero:after{content:"";position:absolute;width:390px;height:390px;border:1px solid rgba(255,255,255,.12);border-radius:50%;right:-110px;bottom:-220px}
.meet-hero .container{position:relative;z-index:2}.meet-hero h1{font-weight:800;letter-spacing:-.04em;margin-bottom:15px}.meet-hero p{max-width:790px;color:rgba(255,255,255,.82);margin:0}
.breadcrumb{--bs-breadcrumb-divider-color:rgba(255,255,255,.5);--bs-breadcrumb-item-active-color:rgba(255,255,255,.7);font-size:.78rem}.breadcrumb a{color:#fff}
.schedule-card{border:1px solid var(--border);border-radius:18px;background:#fff;padding:30px;height:100%}.schedule-icon{width:50px;height:50px;border-radius:12px;background:var(--norsu-blue-light);color:var(--norsu-blue);display:flex;align-items:center;justify-content:center;font-size:1.3rem;margin-bottom:18px}
.schedule-card h3{font-size:1.05rem;font-weight:750}.schedule-card p{font-size:.82rem;color:var(--muted)}
.rule-box{border:1px solid var(--border);border-radius:16px;background:#fff;overflow:hidden}.rule-row{display:flex;gap:15px;padding:19px 21px;border-top:1px solid var(--border)}.rule-row:first-child{border-top:0}.rule-row i{color:var(--norsu-blue);margin-top:2px}.rule-row strong{display:block;font-size:.85rem}.rule-row span{display:block;font-size:.77rem;color:var(--muted);margin-top:3px}
.quorum-panel{background:#071d42;color:#fff;border-radius:18px;padding:31px;height:100%}.quorum-panel p{font-size:.83rem;color:rgba(255,255,255,.72)}.quorum-stat{font-size:2rem;font-weight:800;line-height:1;color:#fff}.quorum-label{font-size:.72rem;color:rgba(255,255,255,.62);margin-top:6px}
.coi-note{border-left:4px solid #d4a72c;background:#fff8df;border-radius:12px;padding:22px}.coi-note p{font-size:.8rem;color:#66571d;margin:0}
.empty-state{border:1px dashed #b8c6dc;background:#f8fafc;border-radius:17px;padding:34px;text-align:center}.empty-state i{font-size:2rem;color:var(--norsu-blue)}.empty-state p{max-width:650px;margin:10px auto 0;color:var(--muted);font-size:.82rem}
.record-card{border:1px solid var(--border);border-radius:14px;background:#fff;padding:22px;height:100%}.record-card h3{font-size:.94rem;font-weight:750}.record-card p{font-size:.78rem;color:var(--muted);margin:0}

.rights-hero{background:linear-gradient(135deg,#082b67 0%,#0b3d91 58%,#1769c2 100%);color:#fff;padding:68px 0;position:relative;overflow:hidden}
.rights-hero:after{content:"";position:absolute;width:390px;height:390px;border:1px solid rgba(255,255,255,.12);border-radius:50%;right:-110px;bottom:-220px}.rights-hero .container{position:relative;z-index:2}.rights-hero h1{font-weight:800;letter-spacing:-.04em;margin-bottom:15px}.rights-hero p{max-width:790px;color:rgba(255,255,255,.82);margin:0}
.breadcrumb{--bs-breadcrumb-divider-color:rgba(255,255,255,.5);--bs-breadcrumb-item-active-color:rgba(255,255,255,.7);font-size:.78rem}.breadcrumb a{color:#fff}
.right-card{border:1px solid var(--border);border-radius:15px;background:#fff;padding:23px;height:100%;transition:.2s}.right-card:hover{transform:translateY(-2px);box-shadow:0 10px 26px rgba(15,23,42,.06)}.right-icon{width:45px;height:45px;border-radius:11px;background:var(--norsu-blue-light);color:var(--norsu-blue);display:flex;align-items:center;justify-content:center;font-size:1.15rem;margin-bottom:16px}.right-card h3{font-size:.96rem;font-weight:750}.right-card p{font-size:.79rem;color:var(--muted);margin:0}
.consent-panel{background:#071d42;color:#fff;border-radius:18px;padding:31px;height:100%}.consent-panel p{font-size:.83rem;color:rgba(255,255,255,.72)}.consent-item{display:flex;gap:12px;padding:11px 0;border-top:1px solid rgba(255,255,255,.1)}.consent-item:first-of-type{border-top:0}.consent-item i{color:#fff}.consent-item strong{display:block;font-size:.8rem}.consent-item span{display:block;font-size:.71rem;color:rgba(255,255,255,.62)}
.privacy-box{border:1px solid var(--border);border-radius:16px;background:#fff;overflow:hidden}.privacy-row{display:flex;gap:15px;padding:18px 20px;border-top:1px solid var(--border)}.privacy-row:first-child{border-top:0}.privacy-row i{color:var(--norsu-blue);margin-top:2px}.privacy-row strong{display:block;font-size:.84rem}.privacy-row span{display:block;font-size:.76rem;color:var(--muted);margin-top:2px}
.concern-box{background:#f4f8ff;border:1px solid #cfe0fb;border-radius:17px;padding:28px}.concern-box p{font-size:.82rem;color:var(--muted)}
.note-box{border-left:4px solid var(--norsu-blue);background:#f4f8ff;border-radius:12px;padding:21px}.note-box p{font-size:.8rem;color:#475467;margin:0}

.qc-hero{background:linear-gradient(135deg,#082b67 0%,#0b3d91 58%,#1769c2 100%);color:#fff;padding:68px 0;position:relative;overflow:hidden}.qc-hero:after{content:"";position:absolute;width:390px;height:390px;border:1px solid rgba(255,255,255,.12);border-radius:50%;right:-110px;bottom:-220px}.qc-hero .container{position:relative;z-index:2}.qc-hero h1{font-weight:800;letter-spacing:-.04em;margin-bottom:15px}.qc-hero p{max-width:800px;color:rgba(255,255,255,.82);margin:0}
.breadcrumb{--bs-breadcrumb-divider-color:rgba(255,255,255,.5);--bs-breadcrumb-item-active-color:rgba(255,255,255,.7);font-size:.78rem}.breadcrumb a{color:#fff}
.route-card{border:1px solid var(--border);border-radius:16px;background:#fff;padding:25px;height:100%;transition:.2s}.route-card:hover{transform:translateY(-2px);box-shadow:0 10px 26px rgba(15,23,42,.06)}.route-icon{width:47px;height:47px;border-radius:11px;background:var(--norsu-blue-light);color:var(--norsu-blue);display:flex;align-items:center;justify-content:center;font-size:1.2rem;margin-bottom:17px}.route-card h3{font-size:1rem;font-weight:750}.route-card p{font-size:.8rem;color:var(--muted)}
.form-panel{border:1px solid var(--border);border-radius:18px;background:#fff;padding:30px}.form-code{display:inline-block;background:var(--norsu-blue-light);color:var(--norsu-blue);font-size:.68rem;font-weight:800;letter-spacing:.06em;padding:5px 9px;border-radius:50px;margin-bottom:12px}
.topic-chip{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--border);border-radius:50px;padding:7px 10px;font-size:.72rem;color:#475467;margin:3px;background:#fff}.topic-chip i{color:var(--norsu-blue)}
.confidentiality{background:#071d42;color:#fff;border-radius:18px;padding:30px;height:100%}.confidentiality p{color:rgba(255,255,255,.72);font-size:.82rem}
.process-box{border:1px solid var(--border);border-radius:16px;background:#fff;overflow:hidden}.process-row{display:flex;gap:15px;padding:18px 20px;border-top:1px solid var(--border)}.process-row:first-child{border-top:0}.process-num{width:29px;height:29px;border-radius:50%;background:var(--norsu-blue-light);color:var(--norsu-blue);display:flex;align-items:center;justify-content:center;font-size:.72rem;font-weight:800;flex-shrink:0}.process-row strong{display:block;font-size:.84rem}.process-row span{display:block;color:var(--muted);font-size:.76rem;margin-top:2px}
.contact-placeholder{border:1px dashed #b8c6dc;background:#f8fafc;border-radius:16px;padding:27px}.contact-placeholder p{font-size:.8rem;color:var(--muted);margin-bottom:0}

.ref-hero{background:linear-gradient(135deg,#082b67 0%,#0b3d91 58%,#1769c2 100%);color:#fff;padding:68px 0;position:relative;overflow:hidden}.ref-hero:after{content:"";position:absolute;width:390px;height:390px;border:1px solid rgba(255,255,255,.12);border-radius:50%;right:-110px;bottom:-220px}.ref-hero .container{position:relative;z-index:2}.ref-hero h1{font-weight:800;letter-spacing:-.04em;margin-bottom:15px}.ref-hero p{max-width:810px;color:rgba(255,255,255,.82);margin:0}
.breadcrumb{--bs-breadcrumb-divider-color:rgba(255,255,255,.5);--bs-breadcrumb-item-active-color:rgba(255,255,255,.7);font-size:.78rem}.breadcrumb a{color:#fff}
.ref-card{border:1px solid var(--border);border-radius:16px;background:#fff;padding:24px;height:100%}.ref-icon{width:45px;height:45px;border-radius:11px;background:var(--norsu-blue-light);color:var(--norsu-blue);display:flex;align-items:center;justify-content:center;font-size:1.15rem;margin-bottom:16px}.ref-card h3{font-size:.96rem;font-weight:750}.ref-card p{font-size:.78rem;color:var(--muted);margin:0}
.manual-panel{background:#071d42;color:#fff;border-radius:18px;padding:31px}.manual-panel p{color:rgba(255,255,255,.72);font-size:.82rem}
.framework-box{border:1px solid var(--border);border-radius:16px;background:#fff;overflow:hidden}.framework-row{display:flex;gap:15px;padding:19px 21px;border-top:1px solid var(--border)}.framework-row:first-child{border-top:0}.framework-row i{color:var(--norsu-blue);margin-top:2px}.framework-row strong{display:block;font-size:.84rem}.framework-row span{display:block;color:var(--muted);font-size:.76rem;margin-top:3px}
.note-panel{border-left:4px solid var(--norsu-blue);background:#f4f8ff;border-radius:12px;padding:22px}.note-panel p{font-size:.8rem;color:#475467;margin:0}

/* =========================================================
   HOMEPAGE — RESEARCH ETHICS CLEARANCE PROCESS
   Scoped to prevent conflicts with inner-page .process-step
   and .process-number components.
   ========================================================= */

.home-clearance-process .process-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 18px;
}

.home-clearance-process .process-step {
    position: relative;
    display: block;
    min-width: 0;
    min-height: 210px;
    height: 100%;
    padding: 22px;
    background: #fff;
    border: 1px solid var(--border);
    border-radius: 15px;
    transition: transform .25s ease,
                border-color .25s ease,
                box-shadow .25s ease;
}

.home-clearance-process .process-step:hover {
    transform: translateY(-4px);
    border-color: #bfd2f2;
    box-shadow: 0 12px 30px rgba(15,23,42,.07);
}

.home-clearance-process .process-step .process-number {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    min-width: 44px;
    margin: 0 0 16px;
    padding: 0;
    border-radius: 50%;
    background: var(--norsu-blue);
    color: #fff;
    font-size: .82rem;
    font-weight: 800;
    line-height: 1;
}

.home-clearance-process .process-step h5 {
    display: block;
    width: 100%;
    margin: 0 0 8px;
    color: var(--dark);
    font-size: .95rem;
    font-weight: 750;
    line-height: 1.35;
}

.home-clearance-process .process-step p {
    display: block;
    width: 100%;
    margin: 0;
    color: var(--muted);
    font-size: .8rem;
    line-height: 1.7;
}

.home-clearance-process .process-final {
    margin-top: 18px;
}

@media (max-width: 991.98px) {
    .home-clearance-process .process-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 575.98px) {
    .home-clearance-process .process-grid {
        grid-template-columns: 1fr;
    }

    .home-clearance-process .process-step {
        min-height: 0;
    }
}

/* =========================================================
   HOMEPAGE — REC INFORMATION & NOTICES
   ========================================================= */

.announcement-card {
    height: 100%;
    background: #fff;
    border: 1px solid var(--border);
    border-radius: 14px;
    overflow: hidden;
    transition:
        transform .25s ease,
        border-color .25s ease,
        box-shadow .25s ease;
}

.announcement-card:hover {
    transform: translateY(-3px);
    border-color: #bfd2f2;
    box-shadow: 0 12px 30px rgba(15, 23, 42, .07);
}

.announcement-card > .d-flex {
    height: 100%;
}

/* Left icon panel */
.announcement-date {
    width: 72px;
    min-width: 72px;
    padding: 20px 10px;

    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;

    background: var(--norsu-blue-light);
    color: var(--norsu-blue);
    text-align: center;
}

.announcement-date strong {
    display: flex;
    align-items: center;
    justify-content: center;

    width: 32px;
    height: 32px;

    font-size: 1.15rem;
    line-height: 1;
}

.announcement-date span {
    margin-top: 4px;
    font-size: .65rem;
    font-weight: 800;
    letter-spacing: .04em;
}

/* Content */
.announcement-content {
    flex: 1;
    display: flex;
    flex-direction: column;
    min-width: 0;
    padding: 18px 20px;
}

.announcement-content h5 {
    margin: 0 0 7px;
    color: var(--dark);
    font-size: .92rem;
    font-weight: 700;
    line-height: 1.4;
}

.announcement-content p {
    margin: 0 0 14px;
    color: var(--muted);
    font-size: .8rem;
    line-height: 1.65;
}

/* Keep action links aligned */
.announcement-content a {
    display: inline-flex;
    align-items: center;
    gap: 5px;

    width: fit-content;
    margin-top: auto;

    color: var(--norsu-blue);
    font-size: .78rem;
    font-weight: 700;
}

.announcement-content a:hover {
    color: var(--norsu-blue-dark);
}

/* Responsive */
@media (max-width: 575.98px) {
    .announcement-date {
        width: 64px;
        min-width: 64px;
    }

    .announcement-content {
        padding: 17px;
    }
}