.page-hero {
    background: linear-gradient(135deg, rgba(15, 35, 40, 0.85) 0%, rgba(0, 143, 140, 0.75) 100%), url('../img/banners/DSC_0140-scaled.jpg');
    background-size: cover;
    background-position: center;
    background-attachment: fixed;
    padding: 180px 0 6rem 0;
    text-align: center;
    color: var(--text-on-dark);
    position: relative;
    overflow: hidden;
}

.page-hero .container { position: relative; z-index: 1; }
.page-hero h1 { color: var(--text-on-dark); text-shadow: 0 4px 15px rgba(0, 0, 0, 0.3); line-height: 1.2; }
.page-hero .subtitle { font-size: 1.2rem; max-width: 900px; margin: 1rem auto 0; color: rgba(255, 255, 255, 0.95); font-weight: 400; text-shadow: 0 2px 5px rgba(0, 0, 0, 0.3); }

.btn-group { display: flex; gap: 1rem; flex-wrap: wrap; justify-content: center; margin-top: 2.5rem; }
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 0.5rem; padding: 0.875rem 1.75rem; border-radius: 50px; text-decoration: none; font-weight: 600; transition: all 0.3s ease; position: relative; z-index: 2; box-shadow: var(--shadow-sm); }
.btn svg { width: 20px; height: 20px; }
.btn-primary { background-color: var(--primary-color); color: white; border: 2px solid var(--primary-color); }
.btn-primary:hover { transform: translateY(-2px); box-shadow: var(--shadow-lg); background-color: var(--secondary-color); border-color: var(--secondary-color); }
.btn-outline { background-color: transparent; color: var(--primary-color); border: 2px solid var(--primary-color); }
.btn-outline:hover { background-color: var(--primary-color); color: white; transform: translateY(-2px); }
.btn-light { background-color: white; color: var(--text-muted); border: 2px solid var(--border-color); }

.features-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 2rem; margin-top: 3rem; }
.feature-card { text-align: center; padding: 2.5rem 2rem; background: white; border-radius: 16px; border: 1px solid var(--border-color); box-shadow: var(--shadow-sm); transition: transform 0.3s var(--ease-sq); }
.feature-card:hover { transform: translateY(-5px); box-shadow: var(--shadow-lg); border-color: var(--secondary-color); }
.feature-icon { width: 70px; height: 70px; background: var(--bg-off-white); border-radius: 50%; display: flex; align-items: center; justify-content: center; color: var(--primary-color); margin: 0 auto 1.5rem; font-size: 1.8rem; }

.schedule-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(350px, 1fr)); gap: 2.5rem; margin-top: 3rem; }
.schedule-card { background: #fff; border-radius: 20px; border: 1px solid var(--border-color); padding: 2.5rem 2rem; box-shadow: var(--shadow-sm); transition: transform 0.3s ease; }
.schedule-card:hover { transform: translateY(-5px); box-shadow: var(--shadow-lg); border-color: var(--secondary-color); }
.schedule-card h3 { color: var(--primary-color); border-bottom: 2px solid var(--bg-off-white); padding-bottom: 1rem; margin-bottom: 1.5rem; text-align: center; }

.timeline { position: relative; padding-left: 1.5rem; }
.timeline::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 3px; background: linear-gradient(180deg, var(--accent-color) 0%, var(--primary-color) 100%); border-radius: 3px; }
.timeline-day { font-family: 'Merriweather', serif; font-weight: 700; color: var(--text-on-light); margin: 1.5rem 0 1rem; font-size: 1.1rem; display: flex; align-items: center; gap: 0.5rem; }
.timeline-day:first-child { margin-top: 0; }
.timeline-day::before { content: ''; width: 12px; height: 12px; background: var(--primary-color); border-radius: 50%; position: absolute; left: -4.5px; box-shadow: 0 0 0 3px white; }
.timeline-item { background: var(--bg-off-white); border-radius: 8px; padding: 1rem; margin-bottom: 0.75rem; font-size: 0.95rem; border: 1px solid var(--border-color); color: var(--text-muted); transition: all 0.2s ease; }
.timeline-item:hover { transform: translateX(5px); background: white; border-color: var(--secondary-color); color: var(--text-on-light); }
.timeline-item strong { color: var(--text-on-light); font-weight: 600; display: block; margin-bottom: 0.2rem; }

.photo-register { padding: 4rem 3rem; background: white; border: 1px dashed var(--primary-color); border-radius: 16px; color: var(--text-on-light); max-width: 900px; margin: 0 auto; box-shadow: var(--shadow-sm); }

@supports (-webkit-touch-callout: none) {
    .page-hero { background-attachment: scroll; }
}
