:root {
    --primary-green: #2d5a27;
    --text-color: #333;
    --bg-light: #f9f9f9;
}

body {
    font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
    font-size: 18px; /* Requirement 2: ≥16px */
    line-height: 1.6; /* Requirement 3: Readability */
    color: var(--text-color);
    margin: 0;
}

/* Requirement 14: Visible focus indicator */
:focus {
    outline: 3px solid #ffbf47;
    outline-offset: 2px;
}

/* Requirement 4, 5: Color Contrast */
h1, h2, h3 {
    color: var(--primary-green);
    line-height: 1.2;
}

h1 { font-size: 2.5rem; } /* Requirement 2: ≥24px */

/* Requirement 6: Links are clearly distinct */
a {
    color: var(--primary-green);
    text-decoration: underline;
}

/* --- Image Gallery & Grid Styles --- */
.image-grid {
    display: grid;
    /* Requirement 48: Mobile-friendly grid */
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 20px;
    padding: 20px 0;
}

.image-grid figure {
    margin: 0;
    text-align: center;
}

/* Placeholder styles for images */
.placeholder-lavender,
.placeholder-tea,
.placeholder-mint,
.placeholder-guide {
    width: 100%;
    height: 250px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    box-shadow: 0 4px 8px rgba(0,0,0,0.1);
    font-size: 24px;
    font-weight: bold;
    color: white;
}

.placeholder-lavender {
    background: linear-gradient(135deg, #9370DB 0%, #BA55D3 100%);
}

.placeholder-tea {
    background: linear-gradient(135deg, #D2691E 0%, #CD853F 100%);
}

.placeholder-mint {
    background: linear-gradient(135deg, #90EE90 0%, #3CB371 100%);
    color: #333;
}

.placeholder-guide {
    background: linear-gradient(135deg, #F4A460 0%, #DAA520 100%);
    height: auto;
    min-height: 250px;
}

.placeholder-lavender p,
.placeholder-tea p,
.placeholder-mint p,
.placeholder-guide p {
    margin: 0;
}

.image-grid figcaption {
    margin-top: 10px;
    font-weight: bold;
    color: var(--primary-green);
}

/* Preparation Guide Image */
.guide-visual .placeholder-guide {
    max-width: 100%;
    border-radius: 8px;
    display: flex;
    margin: 0 auto;
}

/* --- Navigation & Layout --- */
.nav-menu {
    display: flex;
    list-style: none;
    padding: 0;
}

@media (max-width: 480px) { /* Requirement 47: Mobile behavior */
    .nav-menu {
        flex-direction: column;
        text-align: center;
    }
}

/* Requirement 10: Accessibility styling */
.skip-link {
    position: absolute;
    left: -10000px;
    top: auto;
    width: 1px;
    height: 1px;
    overflow: hidden;
}

.skip-link:focus {
    position: static;
    width: auto;
    height: auto;
}

/* Requirement 50: Forms and Buttons */
.submit-btn {
    background-color: var(--primary-green);
    color: white;
    padding: 12px 24px;
    border: none;
    cursor: pointer;
    font-weight: bold;
}
/* --- Shop Page Styles --- */

/* Main layout for the shop grid */
.product-grid {
    display: grid;
    /* Uses your existing auto-fit logic for mobile responsiveness */
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 30px;
    padding: 40px 20px;
}

/* Individual card styling */
.product-card {
    background: white;
    border: 1px solid #ddd;
    border-radius: 8px;
    padding: 20px;
    text-align: center;
    box-shadow: 0 2px 5px rgba(0,0,0,0.05);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.product-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 8px 15px rgba(0,0,0,0.1);
}

.product-card img {
    max-width: 100%;
    height: auto;
    border-radius: 4px;
    margin-bottom: 15px;
}

.product-card h3 {
    margin: 10px 0;
    font-size: 1.4rem; /* Ensures text is >16px */
}

.product-card p {
    font-weight: bold;
    font-size: 1.2rem;
    color: var(--text-color);
}

/* Call to Action Button */
.cta-button {
    background-color: var(--primary-green);
    color: white;
    padding: 12px 20px;
    border: none;
    border-radius: 4px;
    cursor: pointer;
    font-weight: bold;
    font-size: 1rem;
    width: 100%;
    margin-top: 10px;
    transition: background-color 0.2s;
}

.cta-button:hover {
    background-color: #3d7a35; /* Slightly lighter shade for feedback */
}

/* Ensure buttons follow your focus indicator rule */
.cta-button:focus {
    outline: 3px solid #ffbf47;
    outline-offset: 2px;
}
