:root { --bg: #f1fafe; --text: #0B4576; --primary-color: var(--text); --bs-primary: #0B4576; --bs-primary-rgb: 11, 69, 118; --bs-body-color: #0B4576; --bs-body-bg: #f1fafe; }
body { font-size: 0.9rem; font-family: 'Poppins', system-ui, -apple-system, 'Segoe UI', sans-serif; color: var(--text); background: var(--bg); }
a { color: var(--text); }
.btn-primary { --bs-btn-bg: #0B4576; --bs-btn-border-color: #0B4576; --bs-btn-hover-bg: #093659; --bs-btn-hover-border-color: #093659; --bs-btn-active-bg: #093659; --bs-btn-active-border-color: #093659; --bs-btn-color: #f1fafe; --bs-btn-hover-color: #f1fafe; }
.navbar { background: var(--bg); border-bottom: 1px solid #cfe3ee; font-weight: 600; }
.navbar-brand span { margin-left: .75rem; font-size: 1.5rem; color: var(--text); }
.navbar .nav-link { color: var(--text); }
.navbar .nav-link.active, .navbar .nav-link:hover { text-decoration: underline; color: var(--text); }
h1, h2 { font-weight: 700; font-size: 40px; line-height: 46px; letter-spacing: -.02em; color: var(--text); }
h6 { font-weight: bold; font-size: 1.2rem; border-bottom: 3px solid var(--text); padding: .8rem 0; margin-bottom: 1rem; }
.hero .carousel-item { height: 22vh; min-height: 150px; background-size: cover; background-position: center; }
.hero .carousel-item::before { content: ''; position: absolute; inset: 0; background: rgba(11,69,118,.55); }
.hero .carousel-caption { z-index: 2; bottom: 8%; color: #f1fafe; }
.hero .slide-title { margin: 0 0 .75rem; font-family: inherit; font-size: 1.8rem; font-weight: 700; letter-spacing: -.02em; }
.card { background: #fff; border-color: #cfe3ee; }
.card-title { color: var(--text); }
footer { background: var(--bg); color: var(--text); border-top: 1px solid #cfe3ee; margin-top: 4rem; }
footer ul { list-style: none; padding: 0; }
footer .mail { height: 30px; }
.coord li { list-style: none; }
.form-control { border-color: #b9d3e3; }
#form-message.ok { color: #198754; }
#form-message.ko { color: #dc3545; }

.titlebar { display: flex; justify-content: flex-start; align-items: center; gap: 1rem; margin-bottom: 1rem; }
.titletext { flex: 0 0 auto; border-bottom: 3px solid var(--text); padding-bottom: .5rem; }
.titletext h1, .titletext h2 { margin: 0; }
.titletext h6 { border: 0; margin: 0; padding: .25rem 0 0; }
img.thumb { width: 140px; height: 90px; flex: 0 0 auto; object-fit: cover; border: 2px solid #0B4576; border-radius: .25rem; }
.bloc { background: #fff; border: 2px solid #0B4576; border-radius: .5rem; padding: 1.25rem; }
.bloc .titlebar h2 { font-size: 28px; line-height: 34px; }
footer a { color: var(--text); }
footer .border-top { border-color: #cfe3ee !important; }
