/* --- GOOGLE FONT IMPORT --- */
/* @import url('https://fonts.googleapis.com/css2?family=Lato:wght@300;400;700&family=Oswald:wght@400;700&display=swap'); */

/* --- MINIMALIST THEME --- */
:root {
    --background-color: #ffffff; /* Or #000000 for a dark theme */
    --text-primary: #111111;     /* Or #FFFFFF for a dark theme */
    --text-secondary: #555555;   /* Or #AAAAAA for a dark theme */
    --border-color: #dcdcdc;     /* Or #333333 for a dark theme */
    --accent-color: #111111;     /* Or #FFFFFF for a dark theme, used for hover/focus */

    --font-heading: 'Oswald', sans-serif;
    --font-body: 'Lato', sans-serif;
}

/* --- BASE & TYPOGRAPHY --- */
body {
    font-family: var(--font-body);
    background-color: var(--background-color);
    color: var(--text-primary);
    margin: 0;
    padding: 0;
    font-size: 15px; /* Base size, can be adjusted */
    line-height: 1.6;
    font-weight: 300; /* Lato light for body */
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    letter-spacing: 0.02em; /* Subtle global letter spacing */
}

.page-container {
    max-width: 680px; /* Narrower for focused content */
    margin: 0 auto;
    padding: 50px 20px;
}

/* Headings */
h1, h2 {
    font-family: var(--font-heading);
    font-weight: 700; /* Oswald Bold */
    margin-top: 0;
    margin-bottom: 0.3em;
    color: var(--text-primary);
    text-transform: uppercase;
    letter-spacing: 0.1em; /* More pronounced for headings */
}

h1 {
    font-size: 4em; /* Large and impactful */
    text-align: center;
    margin-bottom: 0;
    line-height: 1;
}

.event-subtitle {
    text-align: center;
    font-family: var(--font-body); /* Or --font-heading with lighter weight */
    font-size: 1em;
    color: var(--text-secondary);
    margin-bottom: 60px;
    font-weight: 400;
    letter-spacing: 0.2em; /* Very wide for subtitle */
    text-transform: uppercase;
}

h2 {
    font-size: 1.3em; /* Smaller, more utilitarian section heads */
    font-weight: 700;
    margin-bottom: 1.5em;
    padding-bottom: 0.5em;
    border-bottom: 1px solid var(--border-color);
    letter-spacing: 0.15em;
}

p {
    margin-bottom: 1.2em;
    font-weight: 300;
}

a {
    color: var(--text-primary);
    text-decoration: underline;
    text-decoration-color: var(--text-secondary); /* Subtle underline */
    text-underline-offset: 3px;
    transition: color 0.2s ease, text-decoration-color 0.2s ease;
}
a:hover, a:focus {
    color: var(--accent-color);
    text-decoration-color: var(--accent-color); /* Stronger underline on hover */
}

/* --- HEADER & NAVIGATION --- */
.site-header {
    margin-bottom: 50px;
}

.main-navigation {
    text-align: center;
    margin-bottom: 70px;
}
.main-navigation a {
    font-family: var(--font-body);
    margin: 0 20px;
    font-size: 0.9em;
    color: var(--text-secondary);
    font-weight: 400;
    text-transform: uppercase;
    letter-spacing: 0.15em;
    text-decoration: none;
    padding-bottom: 3px;
    border-bottom: 1px solid transparent; /* For hover effect */
}
.main-navigation a:hover, .main-navigation a:focus {
    color: var(--text-primary);
    border-bottom-color: var(--text-primary);
}

/* --- CONTENT BLOCKS --- */
.info-block {
    padding: 30px 0;
    margin-bottom: 30px;
}
.info-block:not(:last-child) {
    /* Removed border for cleaner look, sections defined by headings */
}

.invitation-opener {
    font-family: var(--font-heading);
    font-size: 1.1em;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--text-secondary);
    margin-bottom: 0.5em;
}

#invitation-message p {
    font-size: 1.1em; /* Slightly larger for the main message */
    text-align: left; /* Or center if preferred */
    letter-spacing: 0.03em;
}

.host-note {
    font-style: normal;
    text-align: right;
    font-size: 0.9em !important;
    color: var(--text-secondary);
    margin-top: 2em;
}

/* Event Details */
.details-layout {
    display: grid;
    grid-template-columns: 1fr;
    gap: 25px;
}
.detail-item {
    padding-bottom: 15px;
    border-bottom: 1px dotted var(--border-color); /* Subtle dotted separator */
}
.detail-item:last-child {
    border-bottom: none;
}
.detail-label {
    display: block;
    font-family: var(--font-body);
    font-weight: 400; /* Regular weight for labels */
    font-size: 0.85em;
    color: var(--text-secondary);
    margin-bottom: 0.3em;
    text-transform: uppercase;
    letter-spacing: 0.1em;
}
.detail-item span:not(.detail-label) {
    display: block;
    font-size: 1em;
}
.venue-address {
    font-size: 0.9em !important;
    color: var(--text-secondary);
    margin-top: 0.2em;
}
.map-link {
    font-size: 0.9em;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}
.detail-item-full {
    /* For items that might span more if grid was multi-column */
}

/* Countdown Timer */
#countdown-section {
    padding-top: 40px;
    padding-bottom: 40px;
    /* background-color: #f9f9f9; /* Very subtle highlight if needed */
    /* border-top: 1px solid var(--border-color); */
    /* border-bottom: 1px solid var(--border-color); */
}
#countdown-section h2 { /* Optional if you want a title here */
    text-align: center;
    border-bottom: none;
    margin-bottom: 1.5em;
}
#countdown {
    display: flex;
    justify-content: center; /* Center units */
    gap: 30px; /* Space between units */
    text-align: center;
}
.countdown-unit span:not(.unit-label) { /* Numbers */
    display: block;
    font-family: var(--font-heading);
    font-size: 3.5em; /* Large numbers */
    font-weight: 400; /* Oswald regular or even lighter if preferred */
    color: var(--text-primary);
    line-height: 1;
    letter-spacing: 0.01em;
}
.unit-label { /* "Days", "Hours" text */
    display: block;
    font-family: var(--font-body);
    font-size: 0.7em;
    font-weight: 400;
    color: var(--text-secondary);
    text-transform: uppercase;
    letter-spacing: 0.1em;
    margin-top: 0.5em;
    transition: opacity 0.3s ease; /* For fade out when event passed */
}
.event-passed-message {
    font-family: var(--font-heading);
    font-size: 1.5em;
    text-align: center;
    color: var(--text-secondary);
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

/* RSVP Section */
#rsvp-info p {
    font-size: 1.1em;
    text-align: left; /* Or center */
    letter-spacing: 0.03em;
}
.rsvp-contact {
    margin-top: 1.5em;
    font-size: 1em;
    text-align: left; /* Or center */
}
.rsvp-contact p {
    font-family: var(--font-heading);
    font-size: 0.9em;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--text-secondary);
    margin-bottom: 0.2em;
}
.rsvp-contact a {
    display: inline-block; /* Or block if stacked */
    margin-right: 10px;
    letter-spacing: 0.03em;
}
.rsvp-contact span { /* Separator */
    color: var(--text-secondary);
    margin: 0 5px;
}


/* --- FOOTER --- */
.site-footer {
    text-align: center;
    padding: 50px 0 30px 0;
    margin-top: 50px;
    border-top: 1px solid var(--border-color);
    font-size: 0.85em;
    font-weight: 300;
    color: var(--text-secondary);
    letter-spacing: 0.1em;
    text-transform: uppercase;
}
.site-footer p {
    margin-bottom: 0;
}

/* Scroll Reveal Animation */
.reveal-on-scroll {
    opacity: 0;
    transform: translateY(20px); /* Subtle upward movement */
    transition: opacity 0.8s cubic-bezier(0.645, 0.045, 0.355, 1), transform 0.8s cubic-bezier(0.645, 0.045, 0.355, 1);
    transition-delay: 0.1s;
}
.reveal-on-scroll.revealed {
    opacity: 1;
    transform: translateY(0);
}

/* --- RESPONSIVENESS --- */
@media (max-width: 600px) {
    body { font-size: 14px; }
    h1 { font-size: 3em; }
    .event-subtitle { letter-spacing: 0.15em; font-size: 0.9em; }
    h2 { font-size: 1.1em; }
    .page-container { padding: 40px 15px; }

    .main-navigation a { margin: 0 10px; letter-spacing: 0.1em; }

    #countdown {
        flex-wrap: wrap; /* Allow wrapping */
        gap: 15px; /* Reduce gap for wrapped items */
        justify-content: space-around;
    }
    .countdown-unit {
        width: calc(50% - 10px); /* Two units per row */
        margin-bottom: 15px;
    }
    .countdown-unit span:not(.unit-label) { font-size: 2.8em; }
    .unit-label { font-size: 0.65em; }

    #invitation-message p, #rsvp-info p { font-size: 1em; }
    .rsvp-contact a, .rsvp-contact span { display: block; margin: 5px 0; text-align: left;}
    .rsvp-contact span { display: none; } /* Hide separator when stacked */
}

@media (max-width: 400px) {
    h1 { font-size: 2.5em; }
    .main-navigation { display: flex; flex-direction: column; gap: 10px; }
    .main-navigation a { margin: 0 auto; }
    .countdown-unit span:not(.unit-label) { font-size: 2.5em; }
}