/* Shared site footer: home and service pages. */
.site-footer { --sf-ink: var(--ink, #0d0c0a); --sf-sand: var(--sand, #efe7da); --sf-dim: rgb(239 231 218 / .62); --sf-line: rgb(239 231 218 / .12); --sf-open: #3ecf8e; --sf-closed: #e0a44a;
  position: relative; background: var(--sf-ink); color: var(--sf-dim); border-top: 1px solid var(--sf-line); font-size: 14px; line-height: 1.55; overflow: hidden; }
.site-footer .sf-wrap { max-width: var(--wrap, 76rem); margin: 0 auto; padding-inline: max(24px, env(safe-area-inset-left)) max(24px, env(safe-area-inset-right)); }
.site-footer a { color: inherit; text-decoration: none; }
.site-footer :focus-visible { outline: 2px solid var(--prisma, #2b8af0); outline-offset: 3px; border-radius: 2px; }

.site-footer .sf-top { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 2fr); gap: clamp(40px, 7vw, 120px); padding-block: clamp(56px, 7vw, 96px) clamp(44px, 5vw, 72px); }
.site-footer .sf-logo { display: inline-flex; align-items: center; gap: 12px; color: var(--sf-sand); font-weight: 600; font-size: 19px; letter-spacing: -.01em; }
.site-footer .sf-logo img { transition: transform .6s cubic-bezier(.2,.8,.2,1); }
.site-footer .sf-logo:hover img { transform: rotate(-120deg) scale(1.06); }
.site-footer .sf-pitch { margin: 18px 0 0; max-width: 30ch; color: var(--sf-sand); font-size: 17px; line-height: 1.45; letter-spacing: -.01em; }

/* Live support status: the one detail that changes with the clock. */
.site-footer .sf-status { display: grid; grid-template-columns: auto 1fr; gap: 2px 12px; align-items: center; margin-top: 28px; padding: 14px 16px; border: 1px solid var(--sf-line); border-radius: 10px 2px 10px 10px; background: rgb(239 231 218 / .025); max-width: 26rem; }
.site-footer .sf-dot { grid-row: span 2; position: relative; width: 9px; height: 9px; border-radius: 50%; background: var(--sf-dim); }
.site-footer [data-state="open"] .sf-dot { background: var(--sf-open); }
.site-footer [data-state="open"] .sf-dot::after { content: ""; position: absolute; inset: -5px; border-radius: 50%; border: 1px solid var(--sf-open); animation: sf-ping 2.4s ease-out infinite; }
.site-footer [data-state="closed"] .sf-dot { background: var(--sf-closed); }
.site-footer .sf-status strong { color: var(--sf-sand); font-weight: 600; font-size: 14px; }
.site-footer .sf-status small { font-size: 13px; }
.site-footer .sf-mail { display: inline-flex; align-items: center; gap: 8px; margin-top: 22px; color: var(--sf-sand); font-weight: 500; }
.site-footer .sf-mail span { display: inline-block; transition: transform .25s ease; }
.site-footer .sf-mail:hover span { transform: translate(3px, -3px); }
.site-footer .sf-copy { margin-left: 4px; padding: 3px 8px; border: 1px solid var(--sf-line); border-radius: 999px; background: none; color: var(--sf-dim); font: inherit; font-size: 12px; cursor: pointer; transition: color .2s, border-color .2s; }
.site-footer .sf-copy:hover { color: var(--sf-sand); border-color: rgb(239 231 218 / .35); }

.site-footer .sf-cols { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 36px 28px; }
.site-footer .sf-cols h2 { margin: 0 0 18px; font-size: 13px; font-weight: 500; letter-spacing: 0; color: rgb(239 231 218 / .6); }
.site-footer .sf-cols li + li { margin-top: 0; }
.site-footer .sf-cols ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 11px; }
.site-footer .sf-cols li a { position: relative; color: var(--sf-sand); opacity: .82; transition: opacity .2s; }
.site-footer .sf-cols li a::after { content: ""; position: absolute; left: 0; right: 0; bottom: -2px; height: 1px; background: currentColor; transform: scaleX(0); transform-origin: right; transition: transform .35s cubic-bezier(.2,.8,.2,1); }
.site-footer .sf-cols li a:hover { opacity: 1; }
.site-footer .sf-cols li a:hover::after { transform: scaleX(1); transform-origin: left; }
.site-footer .sf-cols .sf-note { display: block; margin-top: 3px; font-size: 12px; color: rgb(239 231 218 / .6); }
.site-footer .sf-ext { font-size: 12px; margin-left: 3px; opacity: .6; }

.site-footer .sf-bottom { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 28px; padding-block: 22px calc(22px + env(safe-area-inset-bottom)); border-top: 1px solid var(--sf-line); font-size: 13px; }
.site-footer .sf-bottom nav { display: flex; flex-wrap: wrap; gap: 8px 22px; }
.site-footer .sf-bottom nav a:hover, .site-footer .sf-up:hover { color: var(--sf-sand); }
.site-footer .sf-clock { margin-left: auto; font-variant-numeric: tabular-nums; }
.site-footer .sf-up { display: inline-flex; align-items: center; gap: 6px; }
.site-footer .sf-up span { display: inline-block; transition: transform .25s ease; }
.site-footer .sf-up:hover span { transform: translateY(-3px); }

@keyframes sf-ping { from { transform: scale(.6); opacity: .9; } to { transform: scale(1.7); opacity: 0; } }

@media (max-width: 900px) {
  .site-footer .sf-top { grid-template-columns: 1fr; }
}
@media (max-width: 560px) {
  .site-footer .sf-cols { grid-template-columns: 1fr 1fr; }
  .site-footer .sf-cols > div:last-child { grid-column: 1 / -1; }
  .site-footer .sf-clock { margin-left: 0; }
}
@media (prefers-reduced-motion: reduce) {
  .site-footer *, .site-footer *::after { animation: none !important; transition: none !important; }
}

.site-footer .sf-ico { width: 15px; height: 15px; margin: -2px 8px 0 0; vertical-align: middle; transition: transform .3s cubic-bezier(.2,.8,.2,1); }
.site-footer .sf-cols li a:hover .sf-ico { transform: translateY(-2px) rotate(-6deg); }
