/* Basic Template Reset */
:root {
    --mpm-font-serif: "Libre Caslon Display", serif;
    --mpm-font-sans: "Urbanist", sans-serif;
    --mpm-color-dark: #04060c;
    --mpm-color-gray: #757f7f;
    --mpm-bg-color: #ffffff;
    --mpm-bg-alt: #fafafa;
}

.mpm-container {
    max-width: 100%;
    margin: 0;
    padding: 0;
    font-family: var(--mpm-font-sans);
    color: var(--mpm-color-dark);
    background-color: var(--mpm-bg-color);
    min-height: 100vh;
    box-sizing: border-box;
}

.mpm-container * {
    box-sizing: border-box; 
}

/* Constrained Container */
.mpm-container-constrained {
    width: 100%;
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 15px;
}

/* --- TOP SECTION --- */
.mpm-top-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 40px;
    padding: 40px 0;
    align-items: start;
}

.mpm-info-area { width: 100%; }
.mpm-featured-image-area { width: 100%; }
.mpm-featured-image-area img {
    width: 100%;
    height: auto;
    display: block;
    object-fit: cover;
}

/* Typography */
h1.mpm-title {
    font-family: var(--mpm-font-serif);
    font-size: 60px;
    line-height: 1;
    font-weight: 400;
    margin: 0 0 30px 0;
    text-transform: uppercase;
}
h1.mpm-title span {
    display: block;
    font-style: italic;
    text-transform: none;
    margin-top: 5px;
}

.mpm-anchor-link {
    font-family: var(--mpm-font-serif);
    font-size: 16px;
    text-transform: uppercase;
    letter-spacing: 1px;
    text-decoration: none;
    color: var(--mpm-color-dark);
    border-bottom: 1px solid var(--mpm-color-dark);
    margin-right: 20px;
    cursor: pointer;
}

/* Stats */
.mpm-stats-list {
    margin-top: 30px;
    margin-bottom: 30px;
    font-size: 14px;
    line-height: 2;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
}

/* Socials */
.mpm-socials {
    margin-top: 20px;
    margin-bottom: 30px;
    display: flex;
    gap: 20px;
}
.mpm-socials a { color: var(--mpm-color-dark); font-size: 22px; }

/* Bio */
.mpm-bio {
    font-size: 16px;
    line-height: 1.6;
    color: var(--mpm-color-gray);
    margin-bottom: 30px;
}

/* YouTube Video */
.mpm-video-container {
    margin-top: 30px;
    margin-bottom: 30px;
    position: relative;
    padding-bottom: 56.25%;
    height: 0;
    overflow: hidden;
}
.mpm-video-container iframe {
    position: absolute; top: 0; left: 0; width: 100%; height: 100%; border: 0;
}

/* --- GALLERIES --- */
.mpm-section-title {
    font-family: var(--mpm-font-serif);
    font-size: 32px;
    text-align: center;
    margin: 40px 0;
    font-style: normal;
    font-weight: 400;
}

/* Base Grid Wrapper (No side padding to align with container) */
.mpm-gallery-grid-wrapper {
    display: grid;
    grid-template-columns: repeat(2, 1fr); /* Mobile default */
    gap: 15px;
    width: 100%;
    padding: 0 0 40px 0; /* Adjusted: No side padding */
    margin: 0;
}

/* Specific Override for Main Gallery: Always 2 columns */
.mpm-main-grid-2cols {
    grid-template-columns: repeat(2, 1fr) !important;
}

.mpm-gallery-item {
    display: block;
    width: 100%;
    position: relative;
}

.mpm-gallery-item img {
    width: 100%;
    height: auto;
    aspect-ratio: 3/4;
    object-fit: cover;
    display: block;
    transition: transform 0.3s ease;
}

.mpm-gallery-item:hover img { transform: scale(1.02); }

/* Digitals Section */
.mpm-digitals-section {
    background-color: var(--mpm-bg-alt);
    padding-top: 20px;
    width: 100%;
}

/* Desktop Styles */
@media (min-width: 992px) {
    .mpm-top-grid {
        grid-template-columns: 40% 60%;
    }
    .mpm-info-area {
        position: sticky;
        top: 40px;
        padding-right: 40px;
    }
    
    /* Standard Grid (Digitals) goes to 4 columns on Desktop */
    .mpm-gallery-grid-wrapper:not(.mpm-main-grid-2cols) {
        grid-template-columns: repeat(4, 1fr);
        gap: 20px;
        padding: 0 0 60px 0; /* Adjusted: No side padding */
    }

    /* Main Grid stays 2 cols */
    .mpm-main-grid-2cols {
        gap: 20px;
        padding: 0 0 60px 0; /* Adjusted: No side padding */
    }
    
    h1.mpm-title { font-size: 80px; }
}

/* Shortcode Listing Styles */
.mpm-model-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 15px;
    padding: 20px;
    max-width: 1600px;
    margin: 0 auto;
}
.mpm-model-card { text-align: center; }
.mpm-model-card a { text-decoration: none; color: inherit; display: block; }
.mpm-card-image { width: 100%; margin-bottom: 15px; aspect-ratio: 3/4; overflow: hidden; }
.mpm-card-image img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.6s; }
.mpm-model-card:hover .mpm-card-image img { transform: scale(1.05); }
.mpm-card-title { font-family: var(--mpm-font-serif); font-size: 22px; }

@media (min-width: 992px) {
    .mpm-model-grid {
        grid-template-columns: repeat(4, 1fr);
        gap: 40px;
        padding: 60px 40px;
    }
}