:root {
    --tch-primary: #1a5276;
    --tch-secondary: #c0392b;
    --tch-accent: #f39c12;
    --tch-dark: #1c2833;
    --tch-light: #f4f6f7;
    --tch-green: #27ae60;
}
.navbar { background-color: var(--tch-dark) !important; }
.bg-dark { background-color: var(--tch-dark) !important; }
.btn-primary { background-color: var(--tch-primary); border-color: var(--tch-primary); }
.btn-primary:hover { background-color: #154360; border-color: #154360; }
.text-primary { color: var(--tch-primary) !important; }
.bg-primary { background-color: var(--tch-primary) !important; }
.feature.bg-primary { background: linear-gradient(135deg, var(--tch-primary), #2980b9) !important; }

.hero-route { background-size: cover; background-position: center; min-height: 350px; display: flex; align-items: center; position: relative; }
.hero-route::before { content: ''; position: absolute; inset: 0; background: linear-gradient(135deg, rgba(26,82,118,0.85), rgba(28,40,51,0.7)); }
.hero-route .container { position: relative; z-index: 1; }
.hero-route h1 { color: #fff; font-weight: 800; }
.hero-route .lead { color: rgba(255,255,255,0.85); }
.hero-route .badge-route { background: var(--tch-secondary); font-size: 0.85rem; padding: 0.4em 0.8em; border-radius: 3px; }

.card-route { border: none; border-radius: 8px; overflow: hidden; box-shadow: 0 2px 15px rgba(0,0,0,0.08); transition: transform 0.2s, box-shadow 0.2s; }
.card-route:hover { transform: translateY(-4px); box-shadow: 0 8px 25px rgba(0,0,0,0.12); }
.card-route .card-img-top { height: 200px; object-fit: cover; }
.card-route .badge { background: var(--tch-primary); }

.route-meta { display: flex; gap: 1.5rem; flex-wrap: wrap; margin-bottom: 1.5rem; padding: 1rem; background: var(--tch-light); border-radius: 6px; border-left: 4px solid var(--tch-primary); }
.route-meta .meta-item { display: flex; align-items: center; gap: 0.4rem; font-size: 0.9rem; color: #555; }
.route-meta .meta-item i { color: var(--tch-primary); }

.stop-card { padding: 1.25rem; border-radius: 6px; border: 1px solid #e8e8e8; margin-bottom: 1rem; }
.stop-card h4 { color: var(--tch-dark); margin-bottom: 0.5rem; }
.stop-card .stop-type { color: var(--tch-secondary); font-size: 0.8rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.5px; }

.tip-box { background: #fef9e7; border-left: 4px solid var(--tch-accent); padding: 1rem 1.25rem; border-radius: 0 6px 6px 0; margin: 1.5rem 0; }
.tip-box strong { color: var(--tch-accent); }
.warning-box { background: #fdedec; border-left: 4px solid var(--tch-secondary); padding: 1rem 1.25rem; border-radius: 0 6px 6px 0; margin: 1.5rem 0; }
.warning-box strong { color: var(--tch-secondary); }

.breadcrumb { background: transparent; padding: 0; margin-bottom: 0.5rem; font-size: 0.85rem; }
.breadcrumb a { color: var(--tch-primary); }

footer { background-color: var(--tch-dark); color: rgba(255,255,255,0.6); }
footer a { color: rgba(255,255,255,0.7); text-decoration: none; }
footer a:hover { color: #fff; }
footer h5 { color: #fff; font-size: 1rem; margin-bottom: 1rem; }
