@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@700&family=Open+Sans&display=swap');

/* GLOBAL STYLES, FONTS & COLORS */
/* Element Selector: Apply custom paragraph font and global text color */
body {
    font-family: 'Open Sans', sans-serif; /* Custom font 1 */
    color: #2f4f4f; /* Custom color: Dark Slate Gray */
    margin: 0;
    padding: 0;
    background: #f4f9f4 url('../images/subtle-pattern.png') repeat scroll top left;
}

/* Grouped Selector & Element Selector: Apply custom heading font and color */
h1, h2 {
    font-family: 'Montserrat', sans-serif; /* Custom font 2 */
    color: #2e8b57; /* Custom color: Sea Green */
}

/* ==========================================================================
   2. NAVIGATION & FOOTER (FLEXBOX LAYOUT)
   ========================================================================== */

nav {
    display: flex;             /* Defines this element as a flex container */
    justify-content: center;   /* Aligns flex items horizontally in the center */
    gap: 20px;                 /* Spacing between flex items */
    background-color: #2e8b57; /* Dark green background */
    padding: 15px;
}

/* Selecting navigation link items */
nav a {
    color: #ffffff;
    text-decoration: none;
    font-weight: bold;
}

nav a:hover {
    text-decoration: underline;
}

/* ID Selector: Styling the Footer */
#page-footer {
    background-color: #2f4f4f;
    color: #ffffff;
    text-align: center;
    padding: 20px;
    margin-top: 40px;
}

/* ==========================================================================
   3. BOX MODEL & LAYOUT TECHNIQUES
   ========================================================================== */

/* Class Selector: Exploring the Box Model on the Hero section */
section {
    max-width: 800px;
    background-color: #ffffff;
    padding: 30px;              /* Space inside the white box */
    border: 2px solid #2e8b57;  /* Border surrounding the padding */
    margin: 40px auto;          /* 40px space top/bottom; centers the box horizontally */
    border-radius: 8px;         /* Gives soft rounded corners */
}

/* Example of Float/Clear Layout Technique */
.intro-text {
    float: left;               /* Forces the text box to float to the left */
    width: 100%;               /* Forces it to span full width */
    margin-bottom: 20px;
}

/* Header styling */
header {
    text-align: center;
    padding: 20px;
}
/* Mission Page Styles */
.mission {
    padding: 50px 20px;
    max-width: 1100px;
    margin: 0 auto;
    text-align: center;
}

.mission h2 {
    font-size: 2.8rem;
    color: #1e3a2f;
    margin-bottom: 30px;
}

.mission-image {
    width: 50%;                    /* 50% size */
    max-width: 650px;              /* Won't get bigger than 650px */
    height: auto;
    border-radius: 16px;
    box-shadow: 0 15px 30px rgba(0,0,0,0.15);
    margin: 35px auto;
    display: block;
}
/* ====================== Registration Page ====================== */

.register {
    padding: 60px 20px;
    max-width: 800px;
    margin: 0 auto;
    text-align: center;
}

.register h2 {
    font-size: 2.8rem;
    color: #1e3a2f;
    margin-bottom: 15px;
}

.register .intro {
    font-size: 1.2rem;
    color: #555;
    margin-bottom: 40px;
    max-width: 600px;
    margin-left: auto;
    margin-right: auto;
}

/* Form Styling */
.registration-form {
    background-color: white;
    padding: 40px;
    border-radius: 16px;
    box-shadow: 0 10px 30px rgba(0,0,0,0.1);
    text-align: left;
    max-width: 650px;
    margin: 0 auto;
}

.form-group {
    margin-bottom: 20px;
}

.form-group label {
    display: block;
    margin-bottom: 8px;
    font-weight: bold;
    color: #1e3a2f;
}

.form-group input,
.form-group select,
.form-group textarea {
    width: 100%;
    padding: 12px 15px;
    border: 2px solid #ddd;
    border-radius: 8px;
    font-size: 1rem;
    transition: border 0.3s;
}

.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus {
    border-color: #4a9c5e;
    outline: none;
}

.submit-btn {
    background-color: #1e3a2f;
    color: white;
    padding: 15px 40px;
    font-size: 1.1rem;
    border: none;
    border-radius: 8px;
    cursor: pointer;
    width: 100%;
    margin-top: 10px;
    transition: background-color 0.3s;
}

.submit-btn:hover {
    background-color: #4a9c5e;
}
/* ====================== Sustainability Page ====================== */

.sustainability {
    padding: 60px 20px;
    max-width: 1200px;
    margin: 0 auto;
    text-align: center;
}

.sustainability h2 {
    font-size: 2.8rem;
    color: #1e3a2f;
    margin-bottom: 15px;
}

.sustainability .intro {
    font-size: 1.25rem;
    color: #555;
    max-width: 700px;
    margin: 0 auto 50px;
}

.sustainability-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 25px;
    margin-bottom: 50px;
}

.sustain-card {
    background-color: #ffffff;
    padding: 35px 25px;
    border-radius: 16px;
    box-shadow: 0 10px 25px rgba(0,0,0,0.08);
    transition: transform 0.3s;
}

.sustain-card:hover {
    transform: translateY(-8px);
}

.sustain-card h3 {
    color: #1e3a2f;
    margin-bottom: 15px;
    font-size: 1.5rem;
}

.sustain-image {
    max-width: 100%;
    width: 85%;
    height: auto;
    border-radius: 16px;
    box-shadow: 0 15px 30px rgba(0,0,0,0.15);
    margin: 40px auto;
    display: block;
}

.sustainability .closing {
    font-size: 1.2rem;
    max-width: 800px;
    margin: 0 auto;
    line-height: 1.7;
    color: #444;
}
