/* Styles institutionnels : en-tête, bande filante, pied de page */

/* ===== SiteHeader ===== */
.gov-header { position: sticky; top: 0; z-index: 50; }
.gov-topbar { background: var(--gov-primary-deep); color: #fff; }
.gov-topbar-inner { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 1rem; padding: .5rem 0; }
@media (min-width: 992px) { .gov-topbar-inner { display: flex; justify-content: space-between; } }
.gov-topbar-title { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 11px; font-weight: 500; letter-spacing: .05em; text-transform: uppercase; opacity: .9; }
@media (min-width: 640px) { .gov-topbar-title { font-size: 12px; } }
.gov-topbar-meta { display: flex; flex-shrink: 0; align-items: center; gap: 1rem; font-size: 12px; }
.gov-topbar-item { display: none; align-items: center; gap: .375rem; opacity: .9; }
@media (min-width: 992px) { .gov-topbar-item-lg { display: inline-flex; } }
@media (min-width: 768px) { .gov-topbar-item-md { display: inline-flex; } }
.gov-topbar-mail { display: inline-flex; align-items: center; gap: .375rem; opacity: .9; transition: opacity .2s; text-decoration: none; color: inherit; }
.gov-topbar-mail:hover { opacity: 1; color: inherit; }

.gov-navbar { border-bottom: 1px solid var(--gov-border); background: #fff; transition: box-shadow .2s; padding: 0; }
.gov-navbar-inner { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem; padding: .75rem 0; }
.gov-logo-link { display: flex; min-width: 0; align-items: center; gap: .75rem; text-decoration: none; margin: 0; padding: 0; }
.gov-logo-img { width: 44px; height: 44px; flex-shrink: 0; border-radius: 50%; object-fit: contain; }
.gov-logo-text { min-width: 0; line-height: 1.25; }
.gov-logo-country { display: block; font-size: 11px; font-weight: 600; letter-spacing: .16em; color: var(--gov-muted-foreground); text-transform: uppercase; }
.gov-logo-ministry { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 14px; font-weight: 800; letter-spacing: -.01em; color: var(--gov-primary); }
@media (min-width: 640px) { .gov-logo-ministry { font-size: 16px; } }

.gov-navbar-collapse { flex-basis: 100%; padding: .5rem 0 1rem; border-top: 1px solid var(--gov-border); }
@media (min-width: 1200px) { .gov-navbar-collapse { flex-basis: auto; justify-content: center; padding: 0; border-top: 0; } }
.gov-nav-links { align-items: flex-start; gap: 0; list-style: none; margin: 0; padding: .25rem 0 0; width: 100%; }
@media (min-width: 1200px) { .gov-nav-links { align-items: center; gap: 1.5rem; width: auto; margin-inline: auto; padding: 0; } }
.gov-nav-link { font-size: 15px; font-weight: 700; transition: color .2s; text-decoration: none; padding: .875rem .75rem; }
@media (min-width: 1200px) { .gov-nav-link { font-size: 14px; padding: 0; } }
.gov-nav-link.is-active { color: var(--gov-accent); }
.gov-nav-link:not(.is-active) { color: var(--gov-foreground); }
.gov-nav-link:not(.is-active):hover { color: var(--gov-primary); }
.gov-nav-links .nav-item { border-bottom: 1px solid rgba(227,230,236,.6); }
.gov-nav-links .nav-item:last-child { border-bottom: 0; }
@media (min-width: 1200px) { .gov-nav-links .nav-item { border-bottom: 0; } }
.gov-nav-cta-item { padding: 1rem .75rem 1.25rem; }
@media (min-width: 1200px) { .gov-nav-cta-item { display: none; } }

.gov-navbar-actions { display: flex; align-items: center; gap: .5rem; }
.gov-cta { display: none; align-items: center; gap: .5rem; border-radius: var(--gov-radius); background: var(--gov-accent); padding: .625rem 1rem; font-size: 14px; font-weight: 700; color: #fff; box-shadow: var(--gov-shadow-sm); transition: all .2s; text-decoration: none; }
.gov-cta:hover { transform: translateY(-2px); box-shadow: var(--gov-shadow-md); color: #fff; }
@media (min-width: 1200px) { .gov-cta { display: inline-flex; } }

.gov-menu-btn { display: grid; width: 40px; height: 40px; place-items: center; border-radius: var(--gov-radius); border: 1px solid var(--gov-border); color: var(--gov-primary); background: transparent; padding: 0; }
.gov-menu-btn:focus { box-shadow: none; }
@media (min-width: 1200px) { .gov-menu-btn { display: none; } }
.gov-mobile-cta { display: inline-flex; align-items: center; gap: .5rem; border-radius: var(--gov-radius); background: var(--gov-accent); padding: .625rem 1rem; font-size: 14px; font-weight: 700; color: #fff; text-decoration: none; }


/* ===== NewsTicker ===== */
.gov-ticker { display: flex; align-items: center; gap: .5rem; border-bottom: 1px solid var(--gov-border); background: #fff; padding: .375rem 0; }
.gov-ticker-badge { margin-left: .75rem; display: inline-flex; flex-shrink: 0; align-items: center; gap: .375rem; border-radius: .125rem; background: var(--gov-accent); padding: .375rem .625rem; font-size: 10px; font-weight: 800; letter-spacing: .2em; color: #fff; text-transform: uppercase; }
.gov-ticker-mask { flex: 1 1 auto; overflow: hidden; }
.gov-ticker-item { display: inline-flex; align-items: center; gap: .5rem; font-size: 14px; font-weight: 500; color: var(--gov-foreground); transition: color .2s; text-decoration: none; }
.gov-ticker-item:hover { color: var(--gov-primary); }

/* ===== SiteFooter ===== */
.gov-footer { background: var(--gov-primary-deep); color: #fff; }
.gov-footer-flag { display: flex; height: 6px; width: 100%; }
.gov-footer-flag span { flex: 1 1 0%; }
.gov-footer-grid { display: grid; gap: 2.5rem; padding: 4rem 0; grid-template-columns: 1fr; }
@media (min-width: 768px) { .gov-footer-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 992px) { .gov-footer-grid { grid-template-columns: repeat(4, 1fr); } }
.gov-footer-logo-row { display: flex; align-items: center; gap: .75rem; }
.gov-footer-logo-img { width: 44px; height: 44px; flex-shrink: 0; border-radius: 50%; background: #fff; object-fit: contain; }
.gov-footer-logo-text { line-height: 1.25; }
.gov-footer-country { display: block; font-size: 11px; letter-spacing: .14em; text-transform: uppercase; opacity: .7; }
.gov-footer-ministry { display: block; font-size: 14px; font-weight: 800; }
.gov-footer-desc { margin-top: 1.25rem; font-size: 14px; line-height: 1.6; opacity: .75; }
.gov-footer-mail-btn { margin-top: 1.25rem; display: inline-flex; align-items: center; gap: .5rem; border-radius: var(--gov-radius); background: rgba(255,255,255,.1); padding: .5rem 1rem; font-size: 12px; font-weight: 800; text-transform: uppercase; letter-spacing: .14em; color: #fff; transition: background-color .2s; text-decoration: none; }
.gov-footer-mail-btn:hover { background: var(--gov-accent); color: #fff; }
.gov-footer-heading { font-size: 12px; font-weight: 800; letter-spacing: .18em; text-transform: uppercase; }
.gov-footer-list { margin-top: 1.25rem; display: flex; flex-direction: column; gap: .625rem; list-style: none; padding: 0; }
.gov-footer-list a { font-size: 14px; opacity: .75; transition: opacity .2s; color: inherit; text-decoration: none; }
.gov-footer-list a:hover { opacity: 1; color: inherit; }
.gov-footer-contact { margin-top: 1.25rem; display: flex; flex-direction: column; gap: .875rem; font-size: 14px; opacity: .75; list-style: none; padding: 0; }
.gov-footer-contact li { display: flex; gap: .75rem; }
.gov-footer-contact svg { margin-top: .125rem; flex-shrink: 0; }
.gov-footer-contact a { color: inherit; text-decoration: none; transition: opacity .2s; }
.gov-footer-contact a:hover { opacity: 1; }
.gov-footer-social { margin-top: 1.25rem; display: flex; gap: .5rem; }
.gov-footer-social a { display: grid; width: 36px; height: 36px; place-items: center; border-radius: var(--gov-radius); background: rgba(255,255,255,.1); color: #fff; transition: background-color .2s; }
.gov-footer-social a:hover { background: var(--gov-accent); }
.gov-footer-bottom { border-top: 1px solid rgba(255,255,255,.1); }
.gov-footer-bottom-inner { display: flex; flex-direction: column; gap: .5rem; padding: 1.25rem 0; font-size: 12px; opacity: .7; }
@media (min-width: 640px) { .gov-footer-bottom-inner { flex-direction: row; align-items: center; justify-content: space-between; } }
.gov-footer-bottom-inner a { color: inherit; text-decoration: none; }
.gov-footer-bottom-inner a:hover { opacity: 1; }

/* ===== SectionHeading ===== */
.gov-section-heading { max-width: 42rem; }
.gov-section-heading.is-centered { margin-left: auto; margin-right: auto; text-align: center; }
.gov-section-heading-title { margin-top: 1rem; font-size: 1.75rem; line-height: 1.15; font-weight: 800; color: var(--gov-primary); }
@media (min-width: 640px) { .gov-section-heading-title { font-size: 2rem; } }
@media (min-width: 768px) { .gov-section-heading-title { font-size: 2.35rem; } }
.gov-section-heading-text { margin-top: 1rem; font-size: 14px; line-height: 1.6; color: var(--gov-muted-foreground); }
@media (min-width: 640px) { .gov-section-heading-text { font-size: 16px; } }

/* ===== Root not-found / error ===== */
.gov-fallback-screen { display: flex; min-height: 100vh; align-items: center; justify-content: center; background: var(--gov-surface); padding: 0 1rem; }
.gov-fallback-box { max-width: 28rem; text-align: center; }
.gov-fallback-title-404 { font-size: 4.5rem; font-weight: 700; color: var(--gov-foreground); }
.gov-fallback-title { font-size: 1.25rem; font-weight: 600; color: var(--gov-foreground); }
.gov-fallback-text { margin-top: .5rem; font-size: 14px; color: var(--gov-muted-foreground); }
.gov-fallback-actions { margin-top: 1.5rem; display: flex; flex-wrap: wrap; justify-content: center; gap: .5rem; }
.gov-fallback-btn-primary { display: inline-flex; align-items: center; justify-content: center; border-radius: var(--gov-radius); background: var(--gov-primary); padding: .5rem 1rem; font-size: 14px; font-weight: 500; color: #fff; transition: background-color .2s; border: none; text-decoration: none; }
.gov-fallback-btn-primary:hover { background: var(--gov-primary-deep); color: #fff; }
.gov-fallback-btn-outline { display: inline-flex; align-items: center; justify-content: center; border-radius: var(--gov-radius); border: 1px solid var(--gov-border); background: #fff; padding: .5rem 1rem; font-size: 14px; font-weight: 500; color: var(--gov-foreground); transition: background-color .2s; text-decoration: none; }
.gov-fallback-btn-outline:hover { background: var(--gov-surface); }
