/* Four optional compositions; stored appearance settings can override their surfaces. */
.site-footer.footer-modern { --footer-line:#ffffff26; color:#ecf0f4; border-top:2px solid var(--site-gold); }
.footer-modern-inner { padding-block:42px 30px; }
.footer-modern :is(h2,h3,p,li,a) { color:inherit; font-size:14px; }
.footer-modern h3 { margin:0 0 18px; font-weight:600; }
.footer-modern .footer-identity { display:flex; align-items:center; gap:15px; min-width:0; }
.footer-identity img { width:54px; height:64px; object-fit:contain; flex:none; }
.footer-modern .footer-identity h2 { margin:0; font-weight:600; line-height:1.9; }
.footer-modern .footer-identity p { margin-top:3px; opacity:.8; }
.footer-modern-top { display:flex; justify-content:space-between; align-items:center; gap:30px; margin-bottom:30px; }
.footer-social { display:flex; flex-wrap:wrap; align-items:center; gap:10px; }
.footer-social a { width:42px; height:42px; padding:0; flex:none; white-space:nowrap; overflow-wrap:normal; line-height:1; border:1px solid var(--footer-line); border-radius:50%; display:grid; place-items:center; transition:background .15s,color .15s; }
.footer-social a:hover { background:#ffffff18; text-decoration:none; color:var(--site-gold); }
.footer-social .social-line { font-size:10px; font-weight:600; }
.footer-social .social-facebook { font-family:Arial,sans-serif; font-size:23px; font-weight:700; }
.footer-social .social-instagram { font-size:24px; line-height:1; }
.footer-contact-lines { display:grid; gap:10px; }
.footer-contact-lines > p,.footer-address-line { display:flex; align-items:flex-start; gap:10px; }
.footer-modern svg { width:20px; height:20px; flex:none; margin-top:3px; }
.footer-contact-lines a,.footer-identity > div { min-width:0; overflow-wrap:anywhere; }
.footer-modern .footer-lead { margin-top:18px; opacity:.88; }
.footer-modern .footer-address-line { margin-top:22px; opacity:.85; }
.footer-link-section li { margin-bottom:7px; }
.footer-modern .managed-menu .menu-root { display:block; }
.footer-modern .managed-menu .menu-panel { background:transparent; color:inherit; box-shadow:none; border:0; }
.footer-modern .managed-menu summary { padding-block:5px; }
.footer-modern .site-copyright { border-top-color:var(--footer-line); color:inherit; }
.footer-policies { display:flex; justify-content:flex-end; flex-wrap:wrap; gap:8px 0; padding-block:16px; font-size:14px; }
.footer-policies a { padding-inline:15px; border-inline-start:1px solid currentColor; }
.footer-policies a:first-child { border:0; }.footer-policies a:last-child { padding-right:0; }

/* Government directory: three link groups, contact and compact statistics at right. */
.site-footer.footer-directory { background:#06264a; }
.footer-directory-grid { display:grid; grid-template-columns:1fr 1fr 1fr 1.2fr; gap:32px; }
.footer-directory-contact { grid-column:4; min-width:0; }
.footer-directory .footer-address-line { border-top:1px solid var(--footer-line); padding-top:22px; }
:is(.footer-directory,.footer-contrast) .site-visitors { display:block; padding:20px 0 0; margin:24px 0 0; border:0; border-top:1px solid var(--footer-line); background:none; border-radius:0; }
:is(.footer-directory,.footer-contrast) .site-visitors::before { left:0; width:30px; }
:is(.footer-directory,.footer-contrast) .site-visitors-heading { gap:9px; margin-bottom:15px; }
:is(.footer-directory,.footer-contrast) .site-visitors-heading p { display:none; }
:is(.footer-directory,.footer-contrast) .site-visitors-icon { width:25px; height:25px; border:0; }
:is(.footer-directory,.footer-contrast) .site-visitors-icon svg { width:23px; height:23px; margin:0; }
:is(.footer-directory,.footer-contrast) .site-visitors-numbers { display:grid; grid-template-columns:minmax(0,1fr); gap:6px; }
:is(.footer-directory,.footer-contrast) .site-visitors-metric { display:flex; justify-content:space-between; align-items:baseline; gap:12px; border:0; padding:0; }
:is(.footer-directory,.footer-contrast) .site-visitors-metric dt { margin:0; }
:is(.footer-directory,.footer-contrast) .site-visitors-metric dd { justify-content:flex-end; }
:is(.footer-directory,.footer-contrast) .site-visitors-note { margin-top:14px; }

/* Signature: generous identity area, subtle drawn arcs, concise numbers to the right. */
.site-footer.footer-signature { position:relative; isolation:isolate; background:linear-gradient(115deg,#263c50,#455a6c); border-top-right-radius:48px; overflow:hidden; }
.footer-signature::before { content:""; position:absolute; z-index:-1; inset:0; opacity:.4; pointer-events:none; background:radial-gradient(ellipse at 0 0,transparent 48%,#e6d8b324 48.2%,transparent 48.7%),radial-gradient(ellipse at 80% -70%,transparent 65%,#e6d8b324 65.2%,transparent 65.6%); }
.footer-signature-grid { display:grid; grid-template-columns:1.4fr 1fr; gap:7%; align-items:start; }
.footer-signature-brand .footer-social { margin-top:22px; }
.footer-signature .footer-identity img { width:68px; height:78px; }
.footer-signature .site-visitors { display:block; padding:20px 0 0; margin:22px 0 0; border:0; border-top:1px solid var(--footer-line); border-radius:0; background:none; }
.footer-signature .site-visitors::before { left:0; }
.footer-signature .site-visitors-heading { margin-bottom:14px; }
.footer-signature .site-visitors-heading p,.footer-signature .site-visitors-icon { display:none; }
.footer-signature .site-visitors-numbers { grid-template-columns:1fr 1fr; gap:14px; }
.footer-signature .site-visitors-metric { border:0; padding:0; }
.footer-signature .site-visitors-metric.is-total { order:-1; grid-column:1/-1; display:flex; align-items:center; justify-content:space-between; gap:14px; }
.footer-signature .is-total dt { margin:0; }
.footer-signature .is-total dd { border:1px solid var(--footer-line); border-radius:40px; padding:5px 16px; background:#ffffff0c; }
.footer-signature .site-visitors-note { margin-top:16px; }
.footer-signature-links { margin-top:28px; padding-top:20px; border-top:1px solid var(--footer-line); }
.footer-signature-links :is(nav > ul,.managed-menu .menu-root) { display:flex; flex-wrap:wrap; gap:12px 24px; }

/* Black and gold: three compact information areas with quiet separators. */
.site-footer.footer-contrast { background:#0c1015; color:#f1eee5; --site-gold:#d5b77a; }
.footer-contrast-grid { display:grid; grid-template-columns:1fr 1.3fr 1fr; gap:40px; }
.footer-contrast-grid > div { min-width:0; }
.footer-contrast .footer-contact-lines { color:#d9c394; }
.footer-contrast .footer-social { margin-bottom:20px; }
.footer-contrast .footer-identity img { width:42px; height:50px; }
.footer-map-link { display:inline-flex; gap:8px; align-items:center; margin-top:14px; color:var(--site-gold); }
.footer-contrast-links { margin-top:22px; padding-top:16px; border-top:1px solid var(--footer-line); }

/* Location: an explicit map link, not an invented map or third-party embed. */
.site-footer.footer-location { background:#435867; }
.footer-location-grid { display:grid; grid-template-columns:1.5fr 1fr; gap:34px; align-items:start; }
.footer-location-grid:has(.footer-map-card) { grid-template-columns:180px 1.5fr 1fr; }
.footer-map-card { min-height:170px; padding:20px; display:flex; flex-direction:column; justify-content:center; align-items:center; gap:8px; border-radius:12px; overflow:hidden; text-align:center; border:1px solid #ffffff60; background:linear-gradient(35deg,transparent 44%,#ffffff0e 44%,#ffffff0e 49%,transparent 49%),linear-gradient(115deg,#ffffff05 35%,#ffffff12 35%,#ffffff12 38%,#ffffff05 38%); }
.footer-map-card:hover { background-color:#ffffff0b; }
.footer-map-pin { display:grid; place-items:center; width:44px; height:44px; background:#f4e9cb; color:#435867; border-radius:50%; margin-bottom:4px; }
.footer-map-pin svg { width:25px; height:25px; margin:0; }
.footer-location-contact { border-left:1px solid var(--footer-line); padding-left:28px; }
.footer-location-contact .footer-social { margin-top:18px; }
.footer-location-bottom { margin-top:26px; padding-top:20px; border-top:1px solid var(--footer-line); }
.footer-location-links :is(nav > ul,.managed-menu .menu-root) { display:flex; flex-wrap:wrap; gap:10px 24px; }
.footer-location .site-visitors { margin:20px 0 0; padding:18px 22px 14px; }
.footer-modern .site-visitors h2 { color:inherit; }

@media(max-width:1100px) { .footer-directory-grid { grid-template-columns:1fr 1fr; gap:30px; }.footer-directory-contact { grid-column:auto; }.footer-contrast-grid { grid-template-columns:1fr 1fr; }.footer-contrast-grid > div:last-child { grid-column:1/-1; }.footer-signature-grid { gap:30px; grid-template-columns:1fr 1fr; }.footer-location-grid:has(.footer-map-card) { grid-template-columns:150px 1fr; }.footer-location-contact { grid-column:1/-1; border-left:0; padding:20px 0 0; border-top:1px solid var(--footer-line); } }
@media(max-width:640px) { .footer-modern-inner { padding-block:30px 24px; }.footer-modern-top { align-items:flex-start; flex-direction:column; gap:20px; }.footer-directory-grid,.footer-signature-grid,.footer-contrast-grid,.footer-location-grid,.footer-location-grid:has(.footer-map-card) { grid-template-columns:minmax(0,1fr); gap:26px; }.footer-directory-contact,.footer-contrast-grid > div:last-child { grid-column:auto; }.footer-directory-grid > section { padding-bottom:18px; border-bottom:1px solid var(--footer-line); }.footer-map-card { min-height:145px; }.footer-location-contact { padding-top:20px; }.footer-policies { justify-content:flex-start; gap:10px 18px; }.footer-policies a { border:0; padding:0; }.footer-signature .site-visitors-metric { display:block; }.footer-signature .site-visitors-metric dd { justify-content:flex-start; }.footer-signature .site-visitors-metric dt { margin-bottom:6px; }.footer-signature .site-visitors-metric.is-total { display:flex; }.footer-signature .is-total dt { margin:0; }.footer-location .site-visitors { padding:20px 16px 14px; } }
@media(prefers-reduced-motion:reduce) { .footer-social a { transition:none; } }
