 /* --- All master styles are included here --- */
        :root { --color-primary-dark: #2C3E50; --color-primary-light: #F8F9FA; --color-accent: #E67E22; --color-text-dark: #34495E; --color-text-light: #ECF0F1; --font-heading: 'Montserrat', sans-serif; --font-body: 'Lato', sans-serif; --shadow-subtle: 0 4px 15px rgba(0, 0, 0, 0.08); --shadow-strong: 0 8px 25px rgba(0, 0, 0, 0.12);}
        body { font-family: var(--font-body); background-color: var(--color-primary-light); color: var(--color-text-dark); line-height: 1.7; display: flex; flex-direction: column; min-height: 100vh; }
        main { flex-grow: 1; }
        h1, h2, h3, h4, h5, h6 { font-family: var(--font-heading); font-weight: 700; color: var(--color-primary-dark); }
        .navbar-custom { background-color: var(--color-primary-dark); box-shadow: 0 2px 10px rgba(0,0,0,0.2); padding: 0.5rem 0; }
        .navbar-brand .navbar-logo { height: 50px; margin-right: 15px; border-radius: 50%; border: 2px solid var(--color-accent); }
        .navbar-brand .brand-main { font-family: var(--font-heading); font-weight: 700; font-size: 1.6rem; display: block; line-height: 1.1; color: var(--color-text-light); }
        .navbar-brand .brand-subtitle { font-family: var(--font-body); font-size: 0.65rem; font-weight: 400; color: var(--color-text-light); opacity: 0.8; display: block; letter-spacing: 0.5px; text-transform: uppercase; }
        .navbar-custom .navbar-nav .nav-link { font-family: var(--font-heading); font-weight: 600; color: rgba(255,255,255,0.8); padding: 0.5rem 1.2rem; transition: color 0.3s ease; }
        .navbar-custom .navbar-nav .nav-link:hover, .navbar-custom .navbar-nav .nav-link:focus { color: #ffffff; }
        .navbar-custom .navbar-nav .nav-link.active { color: var(--color-accent); }
        .navbar-custom .navbar-toggler { border-color: rgba(255, 255, 255, 0.2); }
        .navbar-custom .navbar-toggler-icon { background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.9%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e"); }
        .page-hero { background-color: var(--color-primary-dark); padding: 4rem 1rem; text-align: center; color: #ffffff; }
        .page-hero h1 { color: #ffffff; font-size: 3rem; }
        .page-hero p { font-size: 1.1rem; max-width: 600px; margin: 1rem auto 0 auto; opacity: 0.9; }
        .event-grid-container { max-width: 1200px; margin: 3rem auto; padding: 0 1rem; }
        .event-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: 2.5rem; }
        .event-card-link { text-decoration: none; }
        .event-card { background-color: #ffffff; border-radius: 12px; box-shadow: var(--shadow-subtle); overflow: hidden; display: flex; flex-direction: column; transition: transform 0.3s ease, box-shadow 0.3s ease; height: 100%;}
        .event-card:hover { transform: translateY(-5px); box-shadow: var(--shadow-strong); }
        .event-card img, .event-card .grid img { width: 100%; height: 220px;
             object-fit: cover; border: none; 
            }
        .event-card .grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0; }
        .event-card .card-content { padding: 1.5rem; flex-grow: 1; display: flex; flex-direction: column; }
        .event-card h4 { margin-top: 0; margin-bottom: 1rem; color: var(--color-text-dark); }
        .event-card p { flex-grow: 1; margin-bottom: 1.5rem; color: var(--color-text-dark); font-size: 0.95rem; }
        .footer { background-color: var(--color-primary-dark); color: var(--color-text-light); padding: 4rem 1rem 1rem 1rem; margin-top: 3rem; }
        .footer-content { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 2.5rem; max-width: 1200px; margin: 0 auto; padding-bottom: 3rem; border-bottom: 1px solid rgba(255,255,255,0.1); }
        .footer h4 { color: #ffffff; margin-bottom: 1rem; font-size: 1.2rem; position: relative; padding-bottom: 0.5rem; }
        .footer h4::after { content: ''; position: absolute; bottom: 0; left: 0; width: 40px; height: 3px; background-color: var(--color-accent); }
        .footer p, .footer a { color: var(--color-text-light); opacity: 0.8; text-decoration: none; transition: color 0.3s ease, opacity 0.3s ease; }
        .footer a:hover { color: var(--color-accent); opacity: 1; }
        .social-media a { margin-right: 15px; }
        .social-media img { width: 32px; height: 32px; filter: grayscale(100%) brightness(5); transition: filter 0.3s ease; }
        .social-media a:hover img { filter: grayscale(0%) brightness(1); }
        .newsletter input[type="email"] { width: 100%; padding: 0.8rem; border: 1px solid rgba(255,255,255,0.2); border-radius: 8px; background: rgba(0,0,0,0.2); color: white; margin-bottom: 0.8rem; }
        .newsletter button { width: 100%; padding: 0.8rem; border: none; border-radius: 8px; background-color: var(--color-accent); color: white; cursor: pointer; font-family: var(--font-heading); font-weight: 700; transition: background-color 0.3s ease; }
        .newsletter button:hover { background-color: #d35400; }
        .copyright { text-align: center; padding-top: 2rem; font-size: 0.9rem; color: var(--color-text-light); opacity: 0.6; }