body {
    font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
    color: #333;
    margin: 0;
    padding: 30px;
    background-color: #fff;
}

header h1 {
    font-size: 1.1rem;
    font-weight: 400;
    letter-spacing: 0.15rem;
    text-transform: uppercase;
    margin-bottom: 10px;
}

nav ul {
    list-style: none;
    padding: 0;
    margin-bottom: 40px;
}

nav ul li {
    display: inline;
    margin-right: 25px;
}

nav ul li a {
    text-decoration: none;
    color: #999;
    font-size: 0.85rem;
    text-transform: uppercase;
    transition: color 0.3s ease;
}

nav ul li a:hover, nav ul li a.active {
    color: #000;
}

/* Restored 3-Column Grid with Spanning Capabilities */
.gallery-container {
    display: grid;
    grid-template-columns: repeat(3, 1fr); /* Enforced 3 columns */
    gap: 20px;
    grid-auto-flow: dense; /* Fills in gaps automatically */
}

/* Portrait Placeholder: Takes up 1 Column */
.artwork.portrait {
    grid-column: span 1;
}

/* Landscape Placeholder: Takes up 2 Columns */
.artwork.landscape {
    grid-column: span 2;
}

.artwork img {
    height: 400px;      /* Uniform height for all series */
    width: 100%;        /* Fills the column width */
    object-fit: contain; /* Keeps the full image visible without cropping */
    display: block;
    background-color: transparent; /* Ensures no grey background appears */
}

/* Apply the same to landscape placeholders */
.artwork.landscape img {
    height: 400px;
    width: 100%;
    object-fit: contain;
}

.caption {
    font-size: 0.75rem;
    margin-top: 15px;
    color: #666;
    font-style: italic;
    text-align: left;
}

/* Full-Width Featured Artwork */
.artwork.full-width {
    grid-column: span 3; /* Spans all 3 columns of the grid */
    margin-top: 60px;    /* Adds extra space between the grid and the feature */
}

.artwork.full-width img {
    height: auto;        /* Allows the image to be taller than the 400px limit */
    max-height: 800px;   /* Sets a larger limit for the featured piece */
    width: 100%;
    object-fit: contain;
    background-color: transparent;
}

.artwork.full-width .caption {
    text-align: center;
    font-size: 0.9rem;   /* Slightly larger caption for the feature */
    margin-top: 20px;
}

/* THE DEFINITIVE FIX: Force the span from the left edge */
.text-col-3 {
    grid-column: 1 / span 3; /* Starts at col 1, spans 3 columns */
    width: 100%;
    display: block;
    margin: 60px 0;
    clear: both; /* Ensures no floating elements interfere */
}

.text-col-2 {
    grid-column: span 2;
}

.text-col-1 {
    grid-column: span 1;
}

/* THE DEFINITIVE FIX: Force the span from the left edge */
.text-col-3 {
    grid-column: 1 / span 3; /* Starts at col 1, spans 3 columns */
    width: 100%;
    display: block;
    margin: 60px 0;
    clear: both; /* Ensures no floating elements interfere */
}

.text-col-2 {
    grid-column: span 2;
}

.text-col-1 {
    grid-column: span 1;
}

/* Ensure the container is strictly 3 columns */
.gallery-container {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 40px;
    align-items: start;
}

/* Image settings to prevent cropping as requested */
.artwork img {
    height: 400px;
    width: 100%;
    object-fit: contain;
    display: block;
}

/* Text formatting for the grid blocks */
.grid-text-block {
    line-height: 1.8;
    color: #333;
}

.grid-text-block h2 {
    font-size: 1.1rem;
    font-weight: 400;
    letter-spacing: 0.15rem;
    text-transform: uppercase;
    margin-bottom: 25px;
}

/* Image wrapping and floating styles */
.about-content {
    max-width: 950px;
    margin: 0 auto;
    padding-bottom: 100px;
}

.clearfix::after {
    content: "";
    clear: both;
    display: table;
}

.float-left {
    float: left;
    margin: 10px 40px 30px 0;
    width: 45%; /* Adjust as needed */
    max-height: 500px;
    object-fit: contain;
}

.float-right {
    float: right;
    margin: 10px 0 30px 40px;
    width: 45%; /* Adjust as needed */
    max-height: 500px;
    object-fit: contain;
}

.about-section {
    margin-bottom: 60px;
    line-height: 1.8;
}

.about-section h2, .about-section h3 {
    text-transform: uppercase;
    letter-spacing: 0.15rem;
    font-weight: 400;
    margin-bottom: 25px;
    border-bottom: 1px solid #eee;
    padding-bottom: 10px;
}
/* Styling ONLY for the About page images */
.about-content .float-left {
    float: left;
    margin: 5px 25px 15px 0;
    width: 200px; /* Force a much smaller, fixed width */
    height: auto;
    object-fit: contain;
}

.about-content .float-right {
    float: right;
    margin: 5px 0 15px 25px;
    width: 200px; /* Force a much smaller, fixed width */
    height: auto;
    object-fit: contain;
}

/* Ensure the text wraps cleanly around these smaller images */
.about-section {
    margin-bottom: 50px;
    line-height: 1.8;
    text-align: justify; /* Optional: creates a clean editorial look */
}

.clearfix::after {
    content: "";
    clear: both;
    display: table;
}



footer {
    margin-top: 100px;
    font-size: 0.7rem;
    color: #ccc;
}

/* This makes the link for the current page bold and black */
nav ul li a.active {
    color: #000;
    font-weight: bold; 
    border-bottom: 1px solid #000; /* Optional: adds a subtle line underneath */
}