:root {
    --wwu-green: #004b33;
    --wwu-orange: #f58025;
    --bg-gray: #f8fafc;
    --text-main: #1e293b;
    --text-muted: #64748b;
    --white: #ffffff;
    --shadow: 0 10px 25px rgba(0,0,0,0.08);
}

* { box-sizing: border-box; margin: 0; padding: 0; }
body { font-family: 'Inter', sans-serif; background-color: var(--bg-gray); color: var(--text-main); line-height: 1.6; }

.sub-nav { padding: 1.5rem; max-width: 800px; margin: 0 auto; }
.sub-nav a { text-decoration: none; color: var(--wwu-green); font-weight: 600; }

.info-container { max-width: 900px; margin: -2.5rem auto 4rem auto; padding: 0 1.5rem; }
.section-header { margin: 2.5rem 0 1.5rem; border-left: 5px solid var(--wwu-orange); padding-left: 1.25rem; }
.section-header h2 { font-size: 1.8rem; color: var(--wwu-green); margin: 0; }

.hero { background: var(--wwu-green); color: var(--white); padding: 5rem 2rem; text-align: center; }
.school-tag { text-transform: uppercase; letter-spacing: 3px; font-size: 0.8rem; font-weight: 600; opacity: 0.8; margin-bottom: 0.5rem; }
h1 { font-size: 3rem; font-weight: 800; margin-bottom: 0.5rem; }
.degree { font-size: 1.1rem; opacity: 0.9; }
.class-year { margin-top: 1.5rem; display: inline-block; border: 1px solid rgba(255,255,255,0.4); padding: 5px 15px; border-radius: 4px; font-weight: 600; }

.rsvp-banner { background: var(--white); padding: 2.5rem; border-radius: 12px; box-shadow: var(--shadow); text-align: center; margin-bottom: 2.5rem; }
.btn-rsvp { display: inline-block; margin-top: 1.5rem; background: var(--wwu-orange); color: var(--white); text-decoration: none; padding: 1rem 2rem; border-radius: 8px; font-weight: 700; transition: 0.2s; }

.details-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 1.5rem; margin-bottom: 3rem; }
.detail-card { background: var(--white); padding: 2rem; border-radius: 12px; border: 1px solid #e2e8f0; display: flex; flex-direction: column; }
.icon { font-size: 2rem; margin-bottom: 1rem; }
h3 { color: var(--wwu-green); margin-bottom: 0.5rem; }
.btn-secondary { display: inline-block; margin-top: auto; color: var(--wwu-green); font-weight: 700; text-decoration: none; border: 2px solid var(--wwu-green); padding: 6px 12px; border-radius: 6px; text-align: center; }

.timeline-day { font-weight: 800; font-size: 1.1rem; color: var(--wwu-green); margin: 2.5rem 0 1rem 0; text-transform: uppercase; border-bottom: 2px solid #e2e8f0; padding-bottom: 5px; }
.timeline-item { display: flex; gap: 1.5rem; padding: 1.5rem 0; border-left: 2px solid #cbd5e1; margin-left: 10px; padding-left: 25px; position: relative; }
.timeline-item::before { content: ''; position: absolute; left: -7px; top: 1.8rem; width: 12px; height: 12px; background: var(--wwu-green); border-radius: 50%; }
.party-item::before { background: var(--wwu-orange) !important; transform: scale(1.4); }
.map-text-link { color: var(--wwu-orange); text-decoration: none; font-weight: 600; border-bottom: 1px dashed var(--wwu-orange); }
.time { font-weight: 700; min-width: 85px; color: var(--text-muted); }

.parking-card { background: #fffbeb; border: 1px solid #fef3c7; padding: 1.5rem; border-radius: 12px; margin-top: 2rem; }
.parking-card ul { padding-left: 1.2rem; font-size: 0.95rem; color: #92400e; }
.contact-cta { text-align: center; margin-top: 3rem; padding: 2rem; background: #fff; border-radius: 12px; border: 1px solid #e2e8f0; }
.contact-cta a { color: var(--wwu-orange); font-weight: 700; text-decoration: none; border-bottom: 2px solid var(--wwu-orange); }
.contact-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 1.5rem; margin-top: 2rem; }
.contact-card { background: var(--white); padding: 2.5rem; border-radius: 12px; border: 1px solid #e2e8f0; text-align: center; box-shadow: var(--shadow); }
.contact-link { display: block; margin-top: 0.5rem; color: var(--wwu-green); text-decoration: none; font-weight: 600; }

.map-responsive { overflow: hidden; padding-bottom: 56.25%; position: relative; height: 0; border-radius: 12px; box-shadow: var(--shadow); border: 1px solid #e2e8f0; margin-top: 1rem; }
.map-responsive iframe { left: 0; top: 0; height: 100%; width: 100%; position: absolute; }

footer { text-align: center; padding: 4rem; color: var(--text-muted); font-size: 0.9rem; }
@media (max-width: 600px) { h1 { font-size: 2.2rem; } .timeline-item { flex-direction: column; gap: 0.5rem; } }