/* AutoVibe CSS for project 1757443597905 - Iteration 1 */

/* --------------------------------------------------- */
/* 1. Base Styles & Resets                             */
/* --------------------------------------------------- */
*,
*::before,
*::after {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

:root {
    /* Colors */
    --color-primary-text: #333;
    --color-secondary-text: #555;
    --color-background: #f4f4f4;
    --color-accent: #007bff; /* Primary button color */
    --color-accent-hover: #0056b3; /* Darker blue for hover */
    --color-accent-active: #004085; /* Even darker for active/clicked */
    --color-feedback-success: #28a745; /* Green for success/feedback */
    --color-feedback-info: #17a2b8; /* Blue for informational feedback */
    --color-light-gray: #e9ecef;
    --color-border: #ddd;
    --color-white: #fff;

    /* Typography */
    --font-family-sans-serif: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
    --font-size-base: 16px;

    /* Spacing */
    --spacing-xs: 0.5rem;
    --spacing-sm: 1rem;
    --spacing-md: 1.5rem;
    --spacing-lg: 2rem;

    /* Border Radius */
    --border-radius-sm: 0.25rem;
    --border-radius-md: 0.5rem;

    /* Transitions */
    --transition-speed: 0.3s;
    --transition-timing-function: ease-in-out;
}

html {
    font-size: var(--font-size-base);
    scroll-behavior: smooth; /* Enhances navigation experience */
}

body {
    font-family: var(--font-family-sans-serif);
    line-height: 1.6;
    color: var(--color-primary-text);
    background-color: var(--color-background);
    display: flex;
    flex-direction: column;
    align-items: center; /* Centers direct children horizontally */
    min-height: 100vh; /* Ensures body takes full viewport height */
    padding: var(--spacing-sm); /* Default padding for mobile */
    text-rendering: optimizeLegibility; /* Improves text readability */
    -webkit-font-smoothing: antialiased; /* Smoother fonts on macOS */
    -moz-osx-font-smoothing: grayscale; /* Smoother fonts on macOS */
}

/* Ensure main content areas are distinct and have some padding */
header,
main,
footer {
    width: 100%; /* Take full width on small screens */
    padding: var(--spacing-md) var(--spacing-sm);
    margin-bottom: var(--spacing-md);
    background-color: var(--color-white); /* White background for content blocks */
    border-radius: var(--border-radius-md);
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05); /* Subtle shadow */
}

header {
    text-align: center;
    padding-top: var(--spacing-lg);
    padding-bottom: var(--spacing-lg);
}

main {
    flex-grow: 1; /* Allows main content to grow and push footer down */
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

footer {
    text-align: center;
    color: var(--color-secondary-text);
    font-size: 0.9rem;
    padding-top: var(--spacing-sm);
    padding-bottom: var(--spacing-sm);
    margin-bottom: 0; /* No margin at the bottom of the last element */
    box-shadow: none; /* Footer typically doesn't need a shadow */
    border-top: 1px solid var(--color-border);
}

/* --------------------------------------------------- */
/* 2. Typography                                     */
/* --------------------------------------------------- */
h1 {
    font-size: 2rem;
    margin-bottom: var(--spacing-sm);
    color: var(--color-primary-text);
    text-align: center;
    line-height: 1.2;
}

h2 {
    font-size: 1.5rem;
    margin-bottom: var(--spacing-sm);
    color: var(--color-primary-text);
    text-align: center;
    line-height: 1.3;
}

p {
    font-size: 1rem;
    margin-bottom: var(--spacing-sm);
    color: var(--color-secondary-text);
    text-align: center;
}

/* --------------------------------------------------- */
/* 3. Components                                     */
/* --------------------------------------------------- */

/* Section Styling */
section {
    padding: var(--spacing-md);
    margin-bottom: var(--spacing-md);
    background-color: var(--color-white);
    border-radius: var(--border-radius-md);
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
    width: 100%; /* Ensure sections take full width within their parent */
}

/* Interactive Button */
button {
    display: inline-block;
    padding: var(--spacing-sm) var(--spacing-md);
    font-size: 1rem;
    font-weight: 600;
    text-align: center;
    text-decoration: none;
    white-space: nowrap;
    vertical-align: middle;
    cursor: pointer;
    user-select: none;
    border: 1px solid transparent;
    border-radius: var(--border-radius-sm);
    background-color: var(--color-accent);
    color: var(--color-white);
    transition: background-color var(--transition-speed) var(--transition-timing-function),
                border-color var(--transition-speed) var(--transition-timing-function),
                box-shadow var(--transition-speed) var(--transition-timing-function);
    margin-top: var(--spacing-sm);
    margin-bottom: var(--spacing-sm);
}

button:hover {
    background-color: var(--color-accent-hover);
    border-color: var(--color-accent-hover);
    box-shadow: 0 4px 8px rgba(0, 123, 255, 0.2);
}

button:focus {
    outline: 0;
    box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25); /* Focus ring for accessibility */
}

button:active,
button.button-active { /* Class added by JS for transient feedback */
    background-color: var(--color-accent-active);
    border-color: var(--color-accent-active);
    box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
}

/* Clickable H1 (from script.js) */
h1.clickable {
    cursor: pointer;
    transition: color var(--transition-speed) var(--transition-timing-function);
}

h1.clickable:hover {
    color: var(--color-accent); /* Change color on hover for visual feedback */
}

h1.clickable:focus {
    outline: 2px dashed var(--color-accent); /* Keyboard focus indicator */
    outline-offset: 4px;
}

/* Interacted Paragraph (from script.js) */
p.interacted {
    font-style: italic;
    color: var(--color-feedback-info); /* Use an info color for updated text */
    transition: color var(--transition-speed) var(--transition-timing-function);
}

/* Message Feedback Paragraph (from script.js) */
p.message-feedback {
    font-weight: 600;
    color: var(--color-feedback-success); /* Use a success color for action feedback */
    margin-top: var(--spacing-sm);
    transition: color var(--transition-speed) var(--transition-timing-function);
}


/* --------------------------------------------------- */
/* 4. Utilities                                      */
/* --------------------------------------------------- */
/* No specific utilities beyond variables for now. */


/* --------------------------------------------------- */
/* 5. Responsiveness / Media Queries                 */
/* --------------------------------------------------- */

@media (min-width: 768px) {
    body {
        padding: var(--spacing-lg); /* More padding on larger screens */
    }

    header,
    main,
    footer,
    section {
        max-width: 800px; /* Constrain width for better readability on larger screens */
        margin-left: auto;
        margin-right: auto;
        padding: var(--spacing-lg); /* More internal padding */
    }

    /* Adjust margins between blocks for larger screens */
    header,
    main {
        margin-bottom: var(--spacing-lg);
    }

    h1 {
        font-size: 3rem;
        margin-bottom: var(--spacing-md);
    }

    h2 {
        font-size: 2rem;
        margin-bottom: var(--spacing-md);
    }

    p {
        font-size: 1.15rem;
        margin-bottom: var(--spacing-md);
    }

    button {
        padding: var(--spacing-md) var(--spacing-lg);
        font-size: 1.1rem;
    }
}

/* Optional: Even larger screens for wider content */
@media (min-width: 1024px) {
    header,
    main,
    footer,
    section {
        max-width: 960px; /* Even wider on very large screens */
    }
}