/* Define color variables (Refined for 'Royalty' feel) */
:root {
    --bg-color: #FDF8F5;
    --text-color: #4A4A4A;
    --heading-color: #8B735B; /* Slightly deeper, muted gold/brown */
    --accent-color: #B58D7B; /* Existing accent, still fits */
    --floral-accent-color: #C8A2A3; /* Dusty rose for floral hints */
    --white-color: #ffffff;
    --border-color: #EAE0DC;
    /* Removed --card-bg-color as it's now transparent */
}

/* Basic Reset */
* { margin: 0; padding: 0; box-sizing: border-box; }

/* === MOBILE FIRST STYLES === */
body {
    font-family: 'Lato', sans-serif;
    background-color: var(--bg-color);
    color: var(--text-color);
    line-height: 1.7;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    font-size: 16px;
}

.container {
    width: 90%;
    max-width: 1100px;
    margin: 0 auto;
    padding: 0 15px;
}

/* Page Heading */
.page-title {
    font-family: 'Playfair Display', serif;
    font-size: 2.5em;
    color: var(--heading-color);
    text-align: center;
    margin: 40px 0 20px 0;
    font-weight: 700;
}

/* Section Heading */
.section-title {
    font-family: 'Playfair Display', serif;
    font-size: 1.8em;
    color: var(--accent-color);
    text-align: center;
    margin: 40px 0 30px 0;
    font-weight: 400;
}

/* Wedding Party Grid */
.party-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); /* Slightly wider min for mobile */
    gap: 30px 20px; /* More row gap */
}

/* Individual Party Member Card */
.party-member-card {
    background-color: transparent; /* Removed background */
    border-radius: 0; /* Remove radius from card itself */
    padding: 15px 0; /* Adjust padding - mainly vertical now */
    text-align: center;
    position: relative; /* Needed for pseudo-elements */
    transition: transform 0.3s ease; /* Keep hover transform */
    /* Removed box-shadow */
}

.party-member-card:hover {
    transform: translateY(-5px);
}

/* Pill Shape Image */
.party-member-card img {
    width: 110px;   /* Width for pill shape */
    height: 155px;  /* Height for pill shape */
    border-radius: 75px; /* Large radius creates pill on non-square */
    object-fit: cover;
    margin-bottom: 20px; /* Increased margin */
    border: 4px solid var(--white-color); /* Keep white border */
    box-shadow: 0 4px 10px rgba(0,0,0,0.08); /* Add shadow to image */
    display: block; /* Needed for margin auto */
    margin-left: auto;
    margin-right: auto;
}

.party-member-card h3 {
    font-family: 'Playfair Display', serif;
    font-size: 1.3em;
    color: var(--heading-color);
    margin-bottom: 8px; /* More space */
    font-weight: 700;
}

.party-member-card p {
    font-size: 0.9em;
    color: var(--text-color);
    line-height: 1.5;
    padding: 0 5px; /* Add slight horizontal padding to text */
}

/* Floral / Royal Accents using Pseudo-elements */
/* Placeholder - Replace with background-image for real flowers */
.party-member-card::before,
.party-member-card::after {
    content: '';
    position: absolute;
    width: 50px;  /* Size of accent */
    height: 50px;
    border: 1px solid var(--floral-accent-color); /* Example: border accent */
    border-radius: 50% 0; /* Example shape */
    opacity: 0.5; /* Make it subtle */
    z-index: -1; /* Place behind content */
    /*
    /* Alternative for real images: */
    /* background-image: url('path/to/your/flower-accent.png'); */
    /* background-size: contain; */
    /* background-repeat: no-repeat; */
    /* border: none; /* Remove border if using image */
}

.party-member-card::before {
    top: 10px;  /* Position top-left area */
    left: 10px;
    transform: rotate(-15deg);
}

.party-member-card::after {
    bottom: 40px; /* Position bottom-right area */
    right: 10px;
    transform: rotate(30deg);
    border-radius: 0 50%; /* Different shape */
}


/* === TABLET STYLES (min-width: 600px) === */
@media (max-width: 480px) {
    .container { width: 85%; }
    .party-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 50px 30px;
    }
    .party-member-card img {
        width: 120px;
        height: 170px;
        border-radius: 85px;
    }
    .party-member-card h3 { font-size: 1.4em; }
    .party-member-card p { font-size: 0.95em; }
    .page-title { font-size: 2.8em; }
    .section-title { font-size: 2em; }
    p.wish {
        font-size: xx-small;
    }

    /* Adjust accent positions/sizes if needed */
    .party-member-card::before { top: 15px; left: 15px; }
    .party-member-card::after { bottom: 50px; right: 15px; }
    .party-member-card.best-man,
    .party-member-card.maid-of-honor {
        grid-column: 1 / -1; /* Span the entire grid width (both columns) */
    }
}


/* === DESKTOP STYLES (min-width: 992px) === */
@media (min-width: 992px) {
    .container { width: 80%; }
    .party-grid {
        grid-template-columns: repeat(5, 1fr);
        gap: 50px 30px;
    }
    .party-member-card img {
        width: 130px;
        height: 180px;
        border-radius: 90px;
    }
    .party-member-card h3 { font-size: 1.5em; }
    .party-member-card p { font-size: 1em; }
    .page-title { font-size: 3.2em; margin: 60px 0 30px 0; }
    .section-title { font-size: 2.2em; margin: 50px 0 40px 0; }

    /* Adjust accent positions/sizes if needed */
    .party-member-card::before { top: 20px; left: 20px; width: 60px; height: 60px;}
    .party-member-card::after { bottom: 60px; right: 20px; width: 60px; height: 60px; }
}
