/* ============================================================
   CONTACT PAGE CSS - Styling for Projectcontact.html

   This file contains all the shared styles (header, nav, footer)
   PLUS extra styles for the contact list layout unique to this page.
============================================================ */


/* Import fonts from Google Fonts */
@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;1,400&family=Lora:ital@0;1&family=DM+Sans:wght@300;400;500&display=swap');


/* ---- BASE PAGE SETTINGS ---- */

html {
    scroll-behavior: smooth;
}

* {
    box-sizing: border-box;
}

body {
    font-family: 'DM Sans', sans-serif;
    background-color: #faf9f6;
    margin: 0;
    color: #2c2c2c;
}


/* ---- HEADER ---- */

.site-header {
    background: linear-gradient(135deg, #0277bd 0%, #01579b 100%);
    padding: 22px 28px 16px;
}

.site-header h1 {
    font-family: 'Playfair Display', serif;
    font-size: 32px;
    font-weight: 400;
    color: #fff;
    margin: 0;
    letter-spacing: -0.01em;
    text-align: left;
    background: none;
    padding: 0;
}

.site-header h3 {
    font-size: 13px;
    color: rgba(255, 255, 255, 0.7);
    margin: 5px 0 0;
    font-style: italic;
    font-family: 'Lora', serif;
    font-weight: 400;
    text-align: left;
    background: none;
    padding: 0;
}


/* ---- NAVIGATION BAR ---- */

nav {
    background: #01579b;
    display: flex;
    padding: 0 20px;
    margin: 0;
}

nav a {
    padding: 10px 14px;
    font-size: 13px;
    color: rgba(255, 255, 255, 0.65);
    text-decoration: none;
    letter-spacing: 0.03em;
    display: inline-block;
}

nav a:visited {
    color: rgba(255, 255, 255, 0.65);
}

nav a:hover {
    color: rgba(255, 255, 255, 0.9);
}

/* The currently active page link */
nav a.active {
    color: #fff;
    border-bottom: 2px solid #fff;
    font-weight: 500;
}


/* ---- MAIN CONTENT AREA ---- */

.main {
    max-width: 800px;
    margin: 0 auto;
    padding: 36px 36px;
}

.main h2 {
    font-family: 'Playfair Display', serif;
    font-size: 24px;
    font-weight: 400;
    color: #1a1a1a;
    margin: 0 0 10px;
    padding: 0;
    text-align: left;
}

/* Short blue decorative line under headings */
.post-rule {
    width: 30px;
    height: 1px;
    background: #0277bd;
    opacity: 0.4;
    margin-bottom: 16px;
}

.main p {
    font-size: 14px;
    color: #666;
    line-height: 1.85;
    font-weight: 300;
    margin: 0 0 20px;
    text-align: left;
    padding: 0;
}


/* ---- CONTACT LIST (unique to this page) ---- */

/* The wrapper that holds all three contact items */
.contact-list {
    /* display: flex with flex-direction: column stacks items vertically */
    display: flex;
    flex-direction: column;

    /* gap adds equal space between each item */
    gap: 18px;

    margin-top: 8px;
}

/* Each individual contact item (Instagram, Email, WhatsApp) */
.contact-item {
    /* flex with row direction puts the icon and text side by side */
    display: flex;
    align-items: center; /* Vertically centres the icon and text */
    gap: 16px; /* Space between the icon and the text */

    /* Cream background card styling */
    padding: 14px 18px;
    background: #f2efe8;
    border-radius: 8px; /* Rounded corners */
    border: 1px solid #ede9e0;
}

/* The social media icon image inside each contact item */
.contact-item img {
    width: 32px;
    height: 32px;
    display: block;
    margin: 0; /* Remove default image margins */
    border-radius: 0; /* No rounded corners on icons */
}

/* The text next to the icon (e.g. email address) */
.contact-item span {
    font-size: 14px;
    color: #2c2c2c;
}


/* ---- FOOTER ---- */

footer {
    text-align: center;
    padding: 16px;
    background-color: #01579b;
    color: rgba(255, 255, 255, 0.7);
    font-size: 13px;
    margin: 0;
}


/* ---- MOBILE RESPONSIVE STYLES ---- */
/* Only applies on screens 800px wide or narrower */

@media (max-width: 800px) {
    .main {
        padding: 20px;
    }

    .site-header {
        padding: 16px 20px 12px;
    }

    nav {
        flex-wrap: wrap;
        padding: 0 8px;
    }
}
