/* ==========================================================================
   site.css — post-Wix improvements layer (branch: site-improvements)
   Loaded after Wix inline styles on every page; sections are added per
   fix-commit and documented in IMPROVEMENTS.md.
   ========================================================================== */

/* --------------------------------------------------------------------------
   RES-2: off-canvas "Join our mailing list" subscribe strip.
   #comp-m1un7lfa is positioned at left:1255px inside a 980px grid on all 18
   pages (Wix editor accident, live site included), creating horizontal
   scroll at every viewport width. The strip is unreachable for most visitors
   and its form has no backend in the static clone. Hide it and clip any
   residual horizontal overflow at the document level (matches the clipping
   the live site's JS-era styles intended via #masterPage{overflow:hidden}).
   -------------------------------------------------------------------------- */
#comp-m1un7lfa { display: none !important; }

/* Clip stray horizontal overflow on desktop only. At tablet/mobile widths the
   980–1480px desktop layout legitimately extends past the viewport (live-site
   parity — see AUDIT.md RES-3); clipping there would hide reachable content.
   Phones are served the dedicated mobile variant instead (RES-1). */
@media (min-width: 1180px) {
  html, body { overflow-x: clip; }
}

/* --------------------------------------------------------------------------
   UI-1 (a11y): WCAG AA text contrast.
   Wix utility classes .color_15 / .color_25 map to palette slot #D5D5D5
   (rgb 213,213,213) = 1.47:1 on white — fails AA. These classes set TEXT
   color only (borders/backgrounds reference the raw --color_15 var and are
   left unchanged, preserving the design's gray dividers/bands). Verified: no
   gray text sits on a dark background anywhere, so darkening is safe sitewide.
   #737373 = 4.74:1 on white (AA pass for normal text), same neutral family.
   -------------------------------------------------------------------------- */
.color_15, .color_25 { color: #737373 !important; }

/* Blog widget routes the same #D5D5D5 through component vars
   (--tagTextColor / --navigationTextColor / search text), so the utility-class
   override above doesn't reach it. Force the blog leaf text classes dark.
   All blog-widget-scoped — no effect outside the blog/post templates. */
._u2fqx,
.blog-navigation-container-color,
.blog-navigation-link-hover-color,
.blog-desktop-header-search-text-color { color: #737373 !important; }

/* --------------------------------------------------------------------------
   UX-7 (a11y): visible keyboard focus. Wix ships body.no-outline which
   suppresses focus outlines. Restore a clearly visible ring for keyboard
   users only (:focus-visible → never shows on mouse click). Blue ring reads
   on both light sections and photographic hero backgrounds.
   -------------------------------------------------------------------------- */
/* --------------------------------------------------------------------------
   CTA-1: conversion CTA. The site shipped with zero above-the-fold conversion
   CTAs and nothing linking to the consultation page. Add one consistent
   primary style, matching the site's existing button design (sharp 0-radius
   rectangles, dark fill / outlined, understated caps — from the "VIEW ALL"
   and form buttons). Two placements, same style:
     1. a persistent CTA (desktop: floating bottom-right; mobile: full-width
        sticky bottom bar — thumb-reachable, always above the fold)
     2. an in-flow CTA banner before the footer (repeat on every content page)
   -------------------------------------------------------------------------- */
.si-cta, .si-cta-banner {
  font-family: 'avenir-lt-w01_35-light1475496','Avenir','Segoe UI',system-ui,sans-serif;
}
.si-cta a, .si-cta-banner a { text-decoration: none; }
.si-cta-btn {
  box-sizing: border-box;
  display: inline-flex; align-items: center; justify-content: center;
  background: #1a1a1a; color: #fff; border: 2px solid #1a1a1a;
  font-size: 15px; font-weight: 600; letter-spacing: .04em; text-transform: uppercase;
  padding: 13px 22px; min-height: 48px; line-height: 1.05; cursor: pointer;
  white-space: nowrap;
  transition: background .15s ease, border-color .15s ease;
}
.si-cta-btn:hover, .si-cta-btn:focus-visible { background: #000; border-color: #000; }
.si-cta-btn--ghost { background: #fff; color: #1a1a1a; }
.si-cta-btn--ghost:hover, .si-cta-btn--ghost:focus-visible { background: #ececec; color: #000; }

/* label swap: full text on desktop, short text on mobile */
.si-t-sm { display: none; }
.si-cta { position: fixed; z-index: 2147483000; }
@media (min-width: 768px) {
  .si-cta { right: 20px; bottom: 20px; display: flex; flex-direction: row-reverse; gap: 10px; }
  .si-cta .si-cta-btn { box-shadow: 0 4px 16px rgba(0,0,0,.28); }
}
@media (max-width: 767px) {
  .si-cta { left: 0; right: 0; bottom: 0; display: flex; }
  .si-cta .si-cta-btn { flex: 1 1 0; min-height: 52px; box-shadow: none; font-size: 14px; padding: 12px 8px; }
  .si-cta .si-t-lg { display: none; }
  .si-cta .si-t-sm { display: inline; }
  body { padding-bottom: 56px !important; }
}

.si-cta-banner { background: #1a1a1a; color: #fff; text-align: center; padding: 46px 20px; }
.si-cta-banner h2 { margin: 0 0 6px; font-size: 27px; font-weight: 600; letter-spacing: .02em; color: #fff; }
.si-cta-banner p { margin: 0 0 22px; font-size: 16px; line-height: 1.5; color: #e2e2e2; }
.si-cta-banner .si-cta-btn { margin: 6px; }

/* UX-2: click-to-call links inherit surrounding text styling so the footer /
   body copy looks unchanged, but taps dial on mobile. Underline on hover/focus
   signals interactivity without altering the resting design. */
a.si-tel { color: inherit; text-decoration: none; }
a.si-tel:hover, a.si-tel:focus-visible { text-decoration: underline; }

a:focus-visible,
button:focus-visible,
[role="button"]:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible,
[tabindex]:focus-visible {
  outline: 3px solid #2E5AAC !important;
  outline-offset: 2px !important;
  box-shadow: 0 0 0 5px rgba(255, 255, 255, 0.85) !important;
  border-radius: 2px;
}
