/* DF Studios — shared site styles (Nav, Footer, shared button states) */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
img { max-width: 100%; }
.sr-only {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}

/* ---- Nav ---- */
.dfs-nav { position: sticky; top: 0; z-index: 50; background: oklch(0.1 0.008 70); border-bottom: 1px solid oklch(0.28 0.02 70); }
.dfs-nav nav { max-width: 1400px; margin: 0 auto; font-family: 'Work Sans', sans-serif; }
.dfs-nav a { text-decoration: none; }
.dfs-nav-links a:hover { color: oklch(0.68 0.14 250); }
.dfs-nav-cta:hover { background: #FFFFFF !important; color: #0058FF !important; border-color: #FFFFFF !important; filter: none !important; text-shadow: none !important; }
.dfs-nav-mobile a:hover { color: oklch(0.68 0.14 250); }
.dfs-nav-phone:hover { color: oklch(0.92 0.006 250) !important; }

@media (max-width: 1039px) {
  .dfs-desktop-nav { display: none !important; }
  .dfs-mobile-cta { display: inline-flex !important; }
}
@media (min-width: 1040px) {
  .dfs-desktop-nav.dfs-nav-links { display: flex !important; }
  .dfs-desktop-nav.dfs-nav-actions { display: inline-flex !important; }
  .dfs-desktop-nav.dfs-nav-spacer { display: block !important; }
  .dfs-mobile-toggle { display: none !important; }
  .dfs-nav-mobile { display: none !important; }
  .dfs-mobile-cta { display: none !important; }
}
@media (min-width: 1180px) {
  .dfs-nav-phone { display: inline-flex !important; }
  .dfs-nav-spacer { width: 330px !important; }
}

/* mobile floating "Book a Call" — nav.js toggles .is-visible on scroll */
.dfs-mobile-cta.is-visible { opacity: 1 !important; pointer-events: auto !important; transform: translateY(0) scale(1) !important; }

/* ---- Footer ---- */
.dfs-footer a:hover { color: oklch(0.55 0.16 250) !important; }
.dfs-footer .foot-lnk:hover { color: oklch(0.55 0.16 250) !important; }
.dfs-footer-grid p { max-width: 100% !important; }
@media (max-width: 720px) {
  .dfs-footer-grid { grid-template-columns: 1fr 1fr !important; gap: 24px !important; }
}
@media (max-width: 420px) {
  .dfs-footer-grid { grid-template-columns: 1fr !important; }
}

/* ---- CTA shine sweep (was style-before in the export) ---- */
@keyframes cta-shine { 0% { left: -45%; } 55% { left: 125%; } 100% { left: 125%; } }
.hx-shine { position: relative; overflow: hidden; }
.hx-shine::before {
  content: ""; position: absolute; top: 0; left: -45%; width: 45%; height: 100%;
  background: linear-gradient(100deg, transparent, rgba(255,255,255,0.34), transparent);
  transform: skewX(-18deg); animation: cta-shine 2.5s ease-in-out infinite; pointer-events: none;
}
@media (prefers-reduced-motion: reduce) { .hx-shine::before { animation: none; opacity: 0; } }

/* ---- shared button / link hover states (were style-hover in the export) ---- */
.hx-invert:hover { background: #FFFFFF !important; color: #0058FF !important; border-color: #FFFFFF !important; filter: none !important; }
.hx-bright:hover { filter: brightness(1.1); }
.hx-bright8:hover { filter: brightness(1.08); }
.hx-about-cta:hover { background: oklch(0.46 0.2 255) !important; }
.hx-blue-text:hover { color: oklch(0.52 0.2 255) !important; }
.hx-lighten:hover { color: oklch(0.92 0.006 250) !important; }
.hx-ghost:hover { background: oklch(1 0 0 / 0.1) !important; border-color: oklch(1 0 0 / 0.28) !important; }
.hx-syscard:hover { border-color: oklch(0.55 0.19 250 / 0.7) !important; }
.hx-focus:focus { border-color: oklch(0.55 0.19 250) !important; outline: none; }
