/* ------------------------------
   Base
------------------------------ */

* {
    box-sizing: border-box;
}

body {
    margin: 0;

    background: #f7faf7;
    color: #070707;

    font-family: Arial, sans-serif;
    line-height: 1.6;
}

a {
    color: inherit;
    text-decoration: none;
}

.container {
    width: min(1100px, 90%);
    margin: 0 auto;
}


/* ------------------------------
   Header
------------------------------ */

.site-header {
    background: #97f9a9;
    border-bottom: 1px solid #e1e9e3;
}

.header-content {
    min-height: 72px;

    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 30px;
}

.site-nav {
    display: flex;
    align-items: center;
    gap: 24px;
}

.site-nav a {
    color: #030303;
    font-size: 0.95rem;

    transition: color 0.2s ease;
}

.site-nav { 
    display: flex; 
    gap: 28px; 
} 

.site-nav a { 
    position: relative; 
    padding: 6px 0; 
    color: #52615a; 
    transition: color 0.2s ease; 
} 

/* The indicator line */ 

.site-nav a::after { 
    content: ""; 
    position: absolute; 
    left: 0; 
    bottom: 0; 
    width: 100%; 
    height: 2px; 
    background: #2f7d58; 
    transform: scaleX(0); 
    transform-origin: center; 
    transition: transform 0.25s ease; 
} 

/* Hover */ 

.site-nav a:hover {
    color: #326b49;
}


.site-nav a:hover::after { 
    transform: scaleX(1); 
}


/* ------------------------------
   Hero
------------------------------ */

.hero { 
    position: relative;
     max-width: 720px; 
     margin: 0; 
     padding: 110px 0px 70px; 
     overflow: hidden; 
} 

.eyebrow { 
    margin: 0 10px 10px; 
    color: #2b9951; 
    font-size: 2rem; 
    font-weight: 700;
    letter-spacing: 0.12em; 
    text-transform: uppercase; 
}

.hero-content { 
    position: relative; 
    z-index: 2; 
    max-width: 700px; 
    animation: heroAppear 0.8s ease-out;
} 

@keyframes heroAppear {
    from {
        opacity: 0;
        transform: translateY(15px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.hero h1 { 
    margin: 0; 
    font-size: 3rem; 
    line-height: 1.15;
} 

.hero-text { 
    margin: 0; 
    color: #64736b; 
    font-size: 1.1rem;
} 

/* Logo behind the hero text */ 

.hero-logo { 
    position: absolute; 
    z-index: 1; 
    width: 420px; 
    height: 420px; 
    right: 20px; 
    top: 50%; 
    transform: translateY(-50%); 
    display: flex; 
    align-items: center; 
    justify-content: center; 
    opacity: 0.8; 
    pointer-events: none; 
} 

.hero-logo img { 
    width: 100%; 
    height: 100%; 
    object-fit: contain;
    animation: floatLogo 6s ease-in-out infinite;
}

@keyframes floatLogo {
    0%, 100% {
        transform: translateY(0) rotate(0deg);
    }

    50% {
        transform: translateY(-10px) rotate(2deg);
    }
}


/* ------------------------------
   Article cards
------------------------------ */

/* ------------------------------ Article cards ------------------------------ */ 
.articles { 
    display: grid; 
    grid-template-columns: repeat(2, minmax(0, 1fr)); 
    gap: 24px; 
    padding-bottom: 100px; 
    
} 

.article-card { 
    width: 100%; 
    min-width: 0; 
    overflow: hidden; 
    background: #ffffff; 
    border: 1px solid #e1e9e3; 
    border-radius: 18px; 
    transition: transform 0.3s ease, box-shadow 0.3s ease; 
} 

.article-card:hover { 
    transform: translateY(-8px); 
    box-shadow: 0 15px 35px rgba(30, 60, 45, 0.12); 
    
}

/* Article image */ 

.article-card > img { 
    display: block; 
    width: 100%; 
    max-width: 100%; 
    height: 240px; 
    object-fit: cover; 
    object-position: center; 
    transition: transform 0.4s ease; 
    
} 

.article-card:hover > img { 
    transform: scale(1.03); 
    
} 
    
   /* Article information */ 
.article-card-content { 
    min-width: 0; 
    padding: 32px; 
    overflow-wrap: break-word; 
    
} 

.article-meta { 
    margin: 0 0 14px; 
    color: #6d8b76; 
    font-size: 0.72rem; 
    font-weight: 700; 
    letter-spacing: 0.08em; 
    
} 

.article-card h2 { 
    margin: 0 0 14px; 
    color: #26332b; 
    font-size: 1.45rem; 
    line-height: 1.25; 
    
} 

.article-card p:not(.article-meta) {
    margin-bottom: 24px; 
    color: #68746d; 
    
} 

.read-link { 
    color: #397653; 
    font-weight: 700; 
    
} 

.read-link:hover { 
    text-decoration: underline; 
}

/* ------------------------------
   Registration
------------------------------ */

.register-section {
    display: flex;
    justify-content: center;

    padding: 90px 0 120px;
}

.register-card {
    width: min(100%, 500px);

    padding: 40px;

    background: #ffffff;
    border: 1px solid #e1e9e3;
    border-radius: 20px;
}

.register-card h1 {
    margin: 0 0 12px;

    font-size: 2.2rem;
    line-height: 1.15;
}

.register-intro {
    margin: 0 0 35px;

    color: #68746d;
}


/* =========================
   Archive
========================= */

.archive-header {
    max-width: 1100px;
    margin: 0 auto;

    padding: 70px 24px 30px;
}

.archive-header h1 {
    margin: 10px 0;

    font-size: 2.6rem;
    line-height: 1.2;
}

.archive-header p {
    margin: 0;

    color: #64736b;
}


/* Two-column archive */

.archive-page .article-list {
    display: grid;

    grid-template-columns: repeat(2, minmax(0, 1fr));

    gap: 30px;
}


/* Archive cards */

.archive-page .article-card {
    height: 100%;
}

.archive-page .article-card { 
    overflow: hidden; 
    background: white; 
    border: 1px solid #e4ebe7; 
    border-radius: 18px; 
    box-shadow: 0 4px 15px rgba(30, 60, 45, 0.04); 
    transition: transform 0.2s ease, box-shadow 0.2s ease; 
} 

.archive-page .article-card > img { 
    display: block; 
    width: 100%; 
    height: 240px; 
    object-fit: cover; 
    object-position: center; 
    max-width: 100%; 
}


/* ------------------------------
   Form
------------------------------ */

.form-group {
    margin-bottom: 22px;
}

.form-group label {
    display: block;
    margin-bottom: 7px;

    color: #36443b;

    font-size: 0.9rem;
    font-weight: 700;
}

.optional {
    color: #89958d;
    font-weight: 400;
}

.form-group input {
    width: 100%;
    padding: 13px 15px;

    background: #fbfdfb;
    border: 1px solid #ccd8cf;
    border-radius: 10px;

    color: #26332b;
    font: inherit;

    outline: none;
}

.form-group input:focus {
    border-color: #4c8a62;
    box-shadow: 0 0 0 3px rgba(76, 138, 98, 0.12);
}

.button {
    width: 100%;
    padding: 14px 20px;

    background: #397653;
    border: none;
    border-radius: 10px;

    color: #ffffff;

    font: inherit;
    font-weight: 700;

    cursor: pointer;
}

.button:hover {
    background: #2f6546;
}

.login-note {
    margin: 25px 0 0;

    color: #68746d;
    text-align: center;
    font-size: 0.9rem;
}

.login-note a {
    color: #397653;
    font-weight: 700;
}


/* ------------------------------
   Footer
------------------------------ */

.site-footer { 
    margin-top: 80px; 
    background: #eef6f0; 
    border-top: 1px 
    solid #dfe9e2; 
} 

.footer-content { 
    display: grid; 
    grid-template-columns: 1fr 1fr; 
    gap: 60px; 
    padding: 55px 0; 
} 

.footer-about h2 { 
    margin: 0 0 12px; 
    color: #326b49; 
    font-size: 1.25rem; 
} 

.footer-about p, .footer-enquiries p { 
    margin: 0; 
    max-width: 420px; 
    color: #64736b; 
    line-height: 1.7; 
    
} 

.footer-enquiries { 
    display: flex; 
    flex-direction: column; 
    align-items: flex-start; 
} 

.footer-enquiries h3 { 
    margin: 0 0 12px; 
    color: #326b49; 
    font-size: 1.1rem; 
    
} 

.footer-enquiries a { 
    margin-top: 8px; 
    color: #2f7d58; 
    text-decoration: none; 
    font-weight: 600; 
    transition: color 0.2s ease; 
} 

.footer-enquiries a:hover { 
    color: #245f42; 
    text-decoration: underline; 
} 

.footer-bottom { 
    border-top: 1px solid #dfe9e2;
    padding: 20px 0; 
} 

.footer-bottom p { 
    margin: 0; 
    color: #7a867f; 
    font-size: 0.85rem; 
}


/* ------------------------------
   Article page thread node
------------------------------ */

.article-page {
    background: #ffffff;
}

.article-container {
    width: min(760px, 90%);
    margin: 0 auto;
}


/* Article header */

.article-header {
    padding: 90px 0 50px;
}

.article-header h1 {
    margin: 0;

    color: #26332b;

    font-size: clamp(2.5rem, 6vw, 4.5rem);
    line-height: 1.05;
    letter-spacing: -0.04em;
}

.article-lead {
    max-width: 680px;
    margin: 25px 0 0;

    color: #68746d;

    font-size: 1.2rem;
    line-height: 1.7;
}


/* Article image */

.article-image {
    width: 100%;
    margin: 0 0 55px;
}

.article-image img {
    display: block;

    width: 100%;
    height: auto;

    border-radius: 16px;
}

.article-image figcaption {
    margin-top: 10px;

    color: #89958d;

    font-size: 0.8rem;
}


/* Article body */

.article-body {
    color: #344139;

    font-family: Georgia, serif;
    font-size: 1.1rem;
    line-height: 1.85;
}

.article-body p {
    margin: 0 0 28px;
}

.article-body h2 {
    margin: 55px 0 20px;

    color: #26332b;

    font-family: Arial, sans-serif;
    font-size: 1.6rem;
    line-height: 1.25;
}

.article-body blockquote {
    margin: 45px 0;
    padding: 5px 0 5px 25px;

    border-left: 3px solid #79a589;

    color: #536158;

    font-size: 1.25rem;
    font-style: italic;
}


/* Sources */

.article-sources {
    margin: 70px 0 90px;
    padding-top: 30px;

    border-top: 1px solid #e1e9e3;
}

.article-sources h2 {
    margin: 0 0 15px;

    font-size: 1rem;
}

.article-sources ol {
    margin: 0;
    padding-left: 20px;

    color: #68746d;

    font-size: 0.9rem;
}

.article-sources li {
    margin-bottom: 8px;
}

.article-sources a {
    color: #397653;
}

.article-sources a:hover {
    text-decoration: underline;
}


/* ------------------------------
   Discussion thread node
------------------------------ */

.discussion {
    padding: 80px 0 100px;

    background: #f1f6f2;
}

.discussion-container {
    width: min(760px, 90%);
    margin: 0 auto;
}

.discussion-header {
    margin-bottom: 35px;
}

.discussion-header h2 {
    margin: 0;

    color: #26332b;

    font-size: 2rem;
    line-height: 1.2;
}

.discussion-header p:not(.eyebrow) {
    margin-top: 10px;

    color: #68746d;
}


/* Comment form */

.comment-form {
    margin-bottom: 55px;
    padding: 25px;

    background: #ffffff;
    border: 1px solid #dce7df;
    border-radius: 16px;
}

.comment-form label {
    display: block;
    margin-bottom: 8px;

    color: #36443b;

    font-size: 0.9rem;
    font-weight: 700;
}

.comment-form textarea {
    display: block;

    width: 100%;
    min-height: 130px;
    margin-bottom: 15px;
    padding: 13px 15px;

    background: #fbfdfb;
    border: 1px solid #ccd8cf;
    border-radius: 10px;

    color: #26332b;

    font: inherit;
    line-height: 1.5;

    resize: vertical;
    outline: none;
}

.comment-form textarea:focus {
    border-color: #4c8a62;
    box-shadow: 0 0 0 3px rgba(76, 138, 98, 0.12);
}


/* Comments */

.comments {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.comment {
    padding: 24px;

    background: #ffffff;
    border: 1px solid #dce7df;
    border-radius: 14px;
}

.comment-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;

    margin-bottom: 10px;
}

.comment-header strong {
    color: #326b49;
}

.comment-header time {
    color: #89958d;

    font-size: 0.8rem;
}

.comment p {
    margin: 0;

    color: #536158;
}


/* =========================
   About Page
========================= */

.about-intro {
    max-width: 900px;
    margin: 0 auto;

    padding: 80px 24px 45px;

    text-align: center;
}

.about-intro h1 {
    margin: 12px 0;

    font-size: 3rem;
    line-height: 1.15;
}

.about-intro p {
    margin: 0;

    color: #64736b;
    font-size: 1.1rem;
}


/* =========================
   People
========================= */

.people-section { 
    width: 100%; 
    padding: 20px 0 80px; 
} 

.people-scroll { 
    width: 100%; 
    overflow: hidden; 
    padding: 20px 0 35px; 
} 

/* Moving row */ 

.people-track { 
    display: flex; 
    width: max-content; 
    gap: 24px; 
    padding-left: max(24px, calc((100vw - 1100px) / 2)); 
    animation: peopleScroll 70s linear infinite; 
} 

/* Move the cards from left to right. 
    Because the track contains two identical sets of cards, reaching 0% creates a seamless loop. */ 
    
@keyframes peopleScroll { 
    from { transform: translateX(-50%); } 
    to { transform: translateX(0); } 
} 

/* Pause when the user interacts */ 

.people-scroll:hover .people-track { 
    animation-play-state: paused; 
} 

/* ========================= Person Card ========================= */ 

.person-card { 
    position: relative; 
    flex: 0 0 250px; 
    height: 370px; 
    overflow: hidden; 
    background: white; 
    border: 1px solid #e4ebe7; 
    border-radius: 18px; 
    box-shadow: 0 4px 15px rgba(30, 60, 45, 0.05); 
    transition: transform 0.3s ease, box-shadow 0.3s ease; 
} 

.person-card:hover { 
    transform: translateY(-6px); 
    box-shadow: 0 12px 30px rgba(30, 60, 45, 0.12); 
} 

/* Image */ 

.person-image { 
    width: 100%; 
    height: 100%; 
} 

.person-image img { 
    width: 100%; 
    height: 100%; 
    object-fit: cover; 
    transition: transform 0.5s ease; 
} 

.person-card:hover .person-image img { 
    transform: scale(1.05); 
} 

/* Normal information */ 

.person-summary { 
    position: absolute; 
    left: 0; 
    right: 0; 
    bottom: 0; 
    padding: 20px; 
    color: white; 
    background: linear-gradient( transparent, rgba(0, 0, 0, 0.8) ); 
} 

.person-summary h2 { 
    margin: 0 0 4px; 
    font-size: 1.25rem; 
} 

.person-summary p { 
    margin: 0; 
    font-size: 0.9rem; 
    opacity: 0.85; 
} 

/* Detailed information */ 
.person-details { 
    position: absolute; 
    left: 0; 
    right: 0; 
    bottom: 0; 
    padding: 24px; 
    color: white; 
    background: rgba(31, 42, 36, 0.94); 
    transform: translateY(100%); 
    transition: transform 0.35s ease; 
} 

.person-card:hover .person-details,
.person-card.show-details .person-details {
    transform: translateY(0);
}

.person-details h2 { 
    margin: 0 0 5px; 
} 

.person-details p { 
    margin: 10px 0; 
    font-size: 0.9rem; 
} 

.person-details .person-qualification { 
    color: #b9dbc6; 
    font-weight: bold; 
}

.person-toggle {
    position: absolute;

    top: 12px;
    right: 12px;

    z-index: 5;

    padding: 7px 10px;

    border: none;
    border-radius: 8px;

    background: rgba(255, 255, 255, 0.9);
    color: #2f7d58;

    font: inherit;
    font-size: 0.75rem;
    font-weight: bold;

    cursor: pointer;
}


/* =========================
   Purpose
========================= */

.purpose-section {
    max-width: 800px;
    margin: 0 auto;

    padding: 70px 24px 100px;

    text-align: center;
}

.purpose-section h2 {
    margin: 12px 0 18px;

    font-size: 2.2rem;
}

.purpose-section p {
    margin: 0 auto 30px;

    max-width: 650px;

    color: #64736b;

    font-size: 1.05rem;
    line-height: 1.8;
}


/* Purpose button */

.purpose-button {
    display: inline-block;

    padding: 12px 22px;

    border-radius: 10px;

    background: #2f7d58;
    color: white;

    font-weight: bold;

    transition:
        transform 0.2s ease,
        background 0.2s ease;
}

.purpose-button:hover {
    background: #266749;

    transform: translateY(-2px);
}


@media (max-width: 768px) {
    .hero-logo {
        width: 110px;
        height: 110px;
        top: 130px;
        right: 15px;
        transform: none;
        opacity: 0.8;
    }

    .hero-logo img {
        width: 100%;
        height: 100%;
    }
    
    .footer-content { 
        grid-template-columns: 1fr; 
        gap: 35px; 
        padding: 45px 0;
    }
    
     .header-content {
        min-height: 100px;

        flex-direction: column;
        justify-content: center;
    }

    .site-nav {
        gap: 16px;
    }

    .hero {
        padding: 70px 0 50px;
    }

    .articles {
        grid-template-columns: 1fr;
    }

    .register-card {
        padding: 28px;
    }

    .hero { 
        padding: 70px 20px; 
    } 

    .hero-content { 
        text-align: center; 
        margin: 0 auto; 
    } 

    .hero h1 { 
        font-size: 2.3rem; 
    } 

   
    .article-header {
        padding: 65px 0 40px;
    }

    .article-body {
        font-size: 1rem;
    }
    
    .article-card > img { 
        width: 100%; 
        height: 210px; 
        object-fit: cover; 
    }

    .discussion {
        padding: 60px 0 75px;
    }

    .comment-header {
        align-items: flex-start;
        flex-direction: column;
        gap: 3px;
    }

     .about-intro {
        padding: 60px 20px 30px;
    }

    .about-intro h1 {
        font-size: 2.3rem;
    }

    .people-track { 
        gap: 18px; 
        padding-left: 20px; 
        animation-duration: 70s; 
    } 
    
    .person-card { 
        flex-basis: 230px; 
        height: 340px; 
    }

    .purpose-section {
        padding: 60px 20px 80px;
    }

     .about-header {
        padding: 60px 20px 30px;
    }

    .about-header h1 {
        font-size: 2.3rem;
    }

    .about-section {
        grid-template-columns: 1fr;

        gap: 30px;

        padding: 40px 20px 60px;
    }

    .about-image img {
        height: 300px;
    }

    .about-content {
        max-width: none;
    }

    .about-section-reverse .about-image,
    .about-section-reverse .about-content {
        order: initial;
    }

    .archive-page .article-list {
        grid-template-columns: 1fr;

        gap: 24px;
    }
}


