.site-footer { background:#f3f7f8; color:#163b50; border-top:1px solid #dfe8ed; padding:40px 0 25px; }
.sf-wrap { width:min(92%,1560px); margin-inline:auto; }
.sf-grid { display:grid; grid-template-columns:1.2fr .8fr 1fr; grid-template-areas:"services services services" "brand explore contact"; gap:32px; align-items:start; }
.sf-brand { grid-area:brand; min-width:0; }
.sf-explore { grid-area:explore; min-width:0; }
.sf-services { grid-area:services; min-width:0; }
.sf-contact { grid-area:contact; min-width:0; }
.sf-logo { display:block; width:220px; max-width:100%; }
.sf-logo img { width:100%; }
.sf-brand>p { font-size:13px; line-height:1.75; color:#5d7482; margin:20px 0 22px; max-width:29ch; }
body.site-typography .site-footer h3 { font-size:14px; line-height:1.5; letter-spacing:0; font-weight:600; margin:0 0 18px; color:#163b50; }
.site-footer a { text-decoration:none; color:inherit; }
.sf-links { display:grid; gap:10px; }
.sf-links>a,.sf-contact a,.sf-contact address { font-size:13px; line-height:1.65; font-weight:400; letter-spacing:0; }
.sf-links>a { width:fit-content; max-width:100%; transition:color .18s; }
.sf-links>a:hover,.sf-contact a:hover { color:#2e6dff; text-decoration:underline; text-underline-offset:4px; }
.sf-directory { border:1px solid #bcdde9; border-radius:16px; background:#fff; color:#103d58; }
.sf-directory svg { width:18px; height:18px; flex:none; fill:none; stroke:currentColor; stroke-width:1.7; }
.sf-directory summary { display:flex; align-items:center; justify-content:space-between; gap:16px; min-height:56px; padding:10px 20px; border-radius:inherit; background:linear-gradient(110deg,#eaf7ff,#f5fbed); cursor:pointer; list-style:none; }
.sf-directory summary::-webkit-details-marker { display:none; }
.sf-directory summary:focus-visible { outline:3px solid #0573a3; outline-offset:3px; }
.sf-directory summary:hover { background:#e4f4fc; }
.sf-directory[open] summary { border-radius:15px 15px 0 0; box-shadow:inset 0 -1px #c9e1eb; }
.sf-directory-title,.sf-directory-end { display:inline-flex; align-items:center; gap:12px; }
.sf-directory-title { font-size:1.08rem; font-weight:650; }
.sf-directory-title svg { color:#046c9d; }
.sf-directory-end { font-size:.81rem; color:#31596c; }
.sf-directory[open] .sf-directory-end svg { transform:rotate(180deg); }
.sf-service-groups { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px 24px; padding:20px 22px 12px; }
body.site-typography .sf-service-group h3 { display:flex; align-items:center; gap:8px; margin:0 0 7px; color:#164f6a; font-size:.95rem; }
.sf-service-group h3 svg { color:#39752c; }
.sf-service-group ul { list-style:none; margin:0; padding:0; }
.sf-service-group a { display:inline-block; padding:5px 0; line-height:1.45; font-size:.9rem; }
.site-footer .sf-directory-overview { display:inline-flex; align-items:center; gap:8px; min-height:44px; margin:0 22px 7px; color:#07668f; font-size:.89rem; font-weight:600; }
.sf-directory :is(a:hover,a[aria-current="page"]) { color:#07668f; text-decoration:underline; text-underline-offset:3px; }
.sf-contact address { font-style:normal; color:#5d7482; margin:0 0 18px; }
.sf-contact-links { display:grid; gap:9px; }
.sf-contact-links a { overflow-wrap:anywhere; width:fit-content; }
.sf-directions { display:inline-flex; align-items:center; gap:10px; margin-top:18px; }
.sf-directions svg { width:17px; height:17px; stroke:currentColor; fill:none; }
.sf-social-heading { display:block; font-size:12px; font-weight:500; color:#5d7482; margin-bottom:12px; }
.sf-socials { display:flex; flex-wrap:wrap; gap:6px; }
.site-footer .sf-social { width:36px; height:36px; display:grid; place-items:center; border:1px solid #dce6ed; border-radius:50%; background:#fff; transition:transform .18s,box-shadow .18s; }
.brand-icon { width:18px; height:18px; display:block; fill:currentColor; stroke:none; }
.brand-icon use { fill:currentColor; stroke:none; }
.site-footer .sf-social--facebook-f { color:#1877f2; }
.site-footer .sf-social--instagram { color:#d62976; }
.site-footer .sf-social--youtube { color:#f03; }
.site-footer .sf-social--linkedin-in { color:#0a66c2; }
.site-footer .sf-social--x-twitter { color:#171e22; }
.site-footer .sf-social:hover { transform:translateY(-3px); box-shadow:0 5px 12px #0c293b16; }
.site-footer a:focus-visible,.call-float:focus-visible,.whatsapp-float:focus-visible { outline:3px solid #2e6dff; outline-offset:4px; border-radius:4px; }
.site-footer .sf-social:focus-visible,.call-float:focus-visible,.whatsapp-float:focus-visible { border-radius:50%; }
.sf-bottom { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-top:32px; padding-top:20px; border-top:1px solid #dbe5eb; color:#627886; }
.sf-bottom p,.sf-bottom a { font-size:11px; line-height:1.8; }
.sf-bottom p { margin:0; }
.sf-bottom p span { display:block; font-size:10px; }
.sf-bottom p #year,.sf-bottom p #ab-year { display:inline; font-size:inherit; }
.sf-bottom nav { display:flex; flex-wrap:wrap; gap:20px; }
.sf-home-extra .footer-bottom { margin:38px 0 28px; }
.sf-home-extra .footer-bottom h2 { max-width:22ch; }
.sf-home-extra .footer-coverage { margin-top:26px; padding:20px 0 0; border-top:1px solid #dbe5eb; }
:is(.call-float,.whatsapp-float) {
  --float-size:58px;
  --float-edge:22px;
  --float-bottom:calc(var(--float-edge) + env(safe-area-inset-bottom,0px));
  position:fixed; right:calc(var(--float-edge) + env(safe-area-inset-right,0px)); bottom:var(--float-bottom); z-index:70;
  width:var(--float-size); height:var(--float-size); display:grid; place-items:center; box-sizing:border-box;
  color:#fff; border:2px solid #fff; border-radius:50%; box-shadow:0 5px 20px #0b553832;
  text-decoration:none; transition:transform .18s,box-shadow .18s;
}
.call-float { bottom:calc(var(--float-bottom) + var(--float-size) + 10px); background:var(--brand-blue-ink,#006da6); }
.whatsapp-float { background:#25d366; }
body.site-typography a:is(.call-float,.whatsapp-float) { color:#fff; }
.call-float svg { width:48%; height:48%; display:block; }
.whatsapp-float .whatsapp-float-icon { width:33px; height:33px; fill:currentColor; stroke:none; }
:is(.call-float,.whatsapp-float):hover { transform:translateY(-3px); box-shadow:0 8px 24px #0b553840; }
.call-float-label,.whatsapp-float-label { position:absolute; right:calc(100% + 12px); padding:9px 13px; border-radius:8px; background:#163b50; color:#fff; font-size:12px; font-weight:500; white-space:nowrap; opacity:0; visibility:hidden; pointer-events:none; transition:opacity .18s; }
:is(.call-float,.whatsapp-float):is(:hover,:focus-visible) > span { opacity:1; visibility:visible; }
body:is(:has(dialog[open],.menu-toggle[aria-expanded="true"]),.dialog-open,.pg-dialog-open) :is(.call-float,.whatsapp-float) { display:none; }
@media(min-width:921px) { .sf-bottom { padding-right:70px; } }
@media(max-width:920px) { .sf-grid { gap:26px; } .sf-service-groups { grid-template-columns:repeat(2,minmax(0,1fr)); } .sf-bottom { padding-bottom:calc(142px + env(safe-area-inset-bottom,0px)); } }
@media(max-width:600px) {
  .site-footer { padding-top:30px; padding-bottom:12px; }
  .sf-wrap { width:90%; }
  .sf-grid { grid-template-columns:.8fr 1.2fr; grid-template-areas:"services services" "brand brand" "explore contact"; gap:28px 22px; }
  .sf-logo { width:185px; }
  .sf-brand>p { max-width:42ch; margin:14px 0 16px; }
  .sf-social-heading { margin-bottom:10px; }
  .site-footer .sf-social { width:38px; height:38px; }
  body.site-typography .site-footer h3 { margin-bottom:13px; }
  .sf-contact address { margin-bottom:13px; }
  .sf-contact-links { display:grid; gap:9px; }
  .sf-links>a,.sf-contact a,.sf-contact address { font-size:13px; line-height:1.65; }
  .sf-directory summary { padding-inline:14px; }
  .sf-service-groups { padding:15px 14px 8px; gap:16px 12px; }
  .sf-directory .sf-directory-overview { margin-left:14px; }
  .sf-service-group a { padding:7px 0; }
  .sf-bottom { display:block; margin-top:25px; padding-top:18px; padding-bottom:calc(130px + env(safe-area-inset-bottom,0px)); }
  .sf-bottom nav { margin-top:10px; }
  .sf-home-extra .footer-bottom { margin:28px 0; }
  :is(.call-float,.whatsapp-float) { --float-size:52px; --float-edge:16px; }
  .whatsapp-float .whatsapp-float-icon { width:30px; height:30px; }
  .call-float-label,.whatsapp-float-label { display:none; }
  body:has(input:focus,textarea:focus,select:focus) :is(.call-float,.whatsapp-float) { display:none; }
}
@media(prefers-reduced-motion:reduce) { .site-footer a,.call-float,.whatsapp-float,.call-float-label,.whatsapp-float-label { transition:none; } }

/* The linked @ reads as ordinary inline credit text. */
.sf-bottom .sf-credit-marker, .sf-bottom .sf-credit-marker:is(:hover,:visited,:focus-visible) { display:inline; color:inherit; font:inherit; text-decoration:none; }
