/* Namespaced shell: legacy inner-page styles also define .site-footer and .footer-top. */
.malito-site { display:flex; flex-direction:column; min-height:100vh; min-height:100svh; }
.malito-site > #main { display:flow-root; flex:1 0 auto; min-width:0; }
.mf-footer {
  --mf-bg:#0a1b2e;
  --mf-text:#c1cedd;
  --mf-muted:#a5b6ca;
  --mf-line:#ffffff1f;
  --mf-accent:#f7ae3b;
  flex:none;
  position:relative;
  clear:both;
  isolation:isolate;
  width:100%;
  margin:0;
  padding:0;
  border-top:3px solid var(--mf-accent);
  background:var(--mf-bg);
  color:var(--mf-text);
  font-family:var(--font-family);
  font-size:.875rem;
  line-height:1.9;
  text-align:start;
  overflow-wrap:anywhere;
}
.mf-shell { width:min(1280px,100%); margin-inline:auto; padding-inline:clamp(20px,4vw,48px); }
.mf-footer a { color:inherit; text-decoration:none; transition:color .18s ease,background-color .18s ease,border-color .18s ease; }
.mf-footer a:hover { color:#fff; }
.mf-footer :is(a,button):focus-visible { outline:3px solid var(--mf-accent); outline-offset:4px; border-radius:4px; }
.mf-footer svg { display:block; width:20px; height:20px; flex:none; }
.mf-intro { display:flex; align-items:center; justify-content:space-between; gap:24px; padding-block:32px; border-bottom:1px solid var(--mf-line); }
.mf-intro > div { min-width:0; }
.mf-intro-title { margin:0 0 6px; color:#fff; font-size:clamp(1.05rem,1.6vw,1.4rem); font-weight:700; line-height:1.8; text-wrap:balance; }
.mf-intro-copy { margin:0; color:var(--mf-muted); font-size:.875rem; }
.mf-footer .mf-cta { display:inline-flex; align-items:center; justify-content:center; gap:16px; flex:none; min-height:48px; padding:10px 20px; border:1px solid var(--mf-accent); border-radius:8px; background:var(--mf-accent); color:#12263c; font-size:.875rem; font-weight:700; line-height:1.8; }
.mf-footer .mf-cta:hover { background:#ffc66c; border-color:#ffc66c; color:#12263c; }
.mf-grid { display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,1.4fr) minmax(0,1fr) minmax(0,1.1fr); align-items:start; gap:32px; padding-block:44px; }
.mf-grid > * { min-width:0; }
.mf-brand { display:inline-flex; align-items:center; gap:12px; max-width:100%; min-height:64px; }
.mf-brand > span { min-width:0; }
.mf-logo { display:block; flex:none; width:64px; height:64px; object-fit:contain; }
.mf-brand-name { display:block; color:#fff; font-size:1.2rem; line-height:1.8; font-weight:800; }
.mf-tagline { display:block; margin-top:3px; color:var(--mf-muted); font-size:.75rem; }
.mf-description { max-width:31ch; margin:18px 0 0; color:var(--mf-muted); line-height:2.1; }
.mf-heading { display:flex; align-items:center; gap:10px; margin:0 0 14px; color:#fff; font-size:.9375rem; font-weight:700; line-height:1.8; }
.mf-heading::before { content:""; flex:none; width:3px; height:15px; border-radius:2px; background:var(--mf-accent); }
.mf-links { display:grid; grid-template-columns:minmax(0,1fr); gap:0 16px; margin:0; padding:0; list-style:none; }
.mf-links li { min-width:0; margin:0; padding:0; }
.mf-service-links { grid-template-columns:repeat(2,minmax(0,1fr)); }
.mf-grid nav:not(.mf-services) .mf-links { grid-template-columns:repeat(2,minmax(0,1fr)); }
.mf-links a { display:flex; align-items:center; width:fit-content; max-width:100%; min-height:44px; padding-block:6px; font-size:.875rem; line-height:1.8; }
.mf-links a:hover { text-decoration:underline; text-decoration-color:var(--mf-accent); text-underline-offset:6px; }
.mf-address { display:grid; gap:4px; margin:0; font-style:normal; }
.mf-contact-link { display:flex; align-items:center; gap:12px; width:fit-content; max-width:100%; min-height:44px; padding-block:6px; }
.mf-contact-link bdi { font-size:1rem; font-weight:500; font-variant-numeric:tabular-nums; }
.mf-contact :is(svg,i) { color:var(--mf-accent); }
.mf-location { display:flex; align-items:start; gap:12px; margin:10px 0 0; color:var(--mf-muted); font-size:.875rem; line-height:2; }
.mf-location svg { margin-top:4px; }
.mf-bottom { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:8px 24px; padding-block:18px max(24px,env(safe-area-inset-bottom)); padding-inline-end:64px; border-top:1px solid var(--mf-line); }
.mf-copyright,.mf-credit { margin:0; color:var(--mf-muted); font-size:.75rem; line-height:2; }
.mf-footer .mf-credit { display:inline-flex; align-items:center; gap:8px; min-height:44px; max-width:100%; color:var(--mf-text); line-height:2; }
.mf-credit strong { font-weight:600; }
.mf-footer .mf-credit:hover { color:#fff; text-decoration:underline; text-underline-offset:5px; }
.mf-credit svg { width:15px; height:15px; color:var(--mf-accent); }
.mf-account { display:flex; flex-wrap:wrap; align-items:center; gap:4px 20px; }
.mf-account :is(a,button) { display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:44px; max-width:100%; margin:0; padding:6px 0; border:0; border-radius:0; background:transparent; color:var(--mf-text); font:inherit; font-size:.8125rem; line-height:1.8; cursor:pointer; }
.mf-account :is(a,button):hover { color:#fff; text-decoration:underline; text-underline-offset:5px; }
.mf-account form { margin:0; }
.mf-account svg { width:17px; height:17px; }
.mf-back-top { position:fixed; inset-inline-end:max(20px,env(safe-area-inset-left)); bottom:max(20px,env(safe-area-inset-bottom)); z-index:90; display:flex; align-items:center; justify-content:center; width:46px; height:46px; padding:0; border:1px solid #ffffff52; border-radius:12px; background:#00588e; color:#fff; box-shadow:0 4px 16px #0a1b2e26; cursor:pointer; opacity:0; visibility:hidden; pointer-events:none; transition:opacity .18s ease,background-color .18s ease,visibility .18s; }
.mf-back-top svg { width:22px; height:22px; }
.mf-back-top.show { opacity:1; visibility:visible; pointer-events:auto; }
.mf-back-top:hover { background:#06436b; }
.mf-back-top:focus-visible { outline:3px solid #f7ae3b; outline-offset:4px; }
@media (max-width:1199px) {
  .mf-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:36px 48px; }
  .mf-description { max-width:40ch; }
}
@media (max-width:639px) {
  .mf-intro { flex-direction:column; align-items:stretch; gap:18px; padding-block:28px; }
  .mf-intro-copy { line-height:2; }
  .mf-cta { align-self:start; }
  .mf-grid { grid-template-columns:minmax(0,1fr); gap:28px; padding-block:32px; }
  .mf-grid > :not(:first-child) { padding-top:24px; border-top:1px solid var(--mf-line); }
  .mf-bottom { flex-direction:column; align-items:start; gap:8px; padding-inline-end:54px; }
  .mf-heading { margin-bottom:10px; }
}
@media (prefers-reduced-motion:reduce) {
  .mf-footer a,.mf-back-top { transition:none; }
}
