/* =========================================================================
   Supplemental CSS for the SSR templates.

   The main bundle at /assets/index-CP6gkst8.css was compiled from the old
   React SPA source and therefore ONLY contains utility classes that were
   literally used in the React source.  Our SSR templates reuse many of
   those classes but also introduce arbitrary-value utilities that never
   appeared in React (e.g. `bg-[#1a365d]`, `text-white/85`) — they must be
   re-declared here to render correctly.

   Keep this file small and surgical.
   ========================================================================= */

.line-clamp-2 { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.line-clamp-3 { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }

[data-lead-dialog].hidden { display: none !important; }
[data-lead-dialog].flex   { display: flex !important; }

.sr-only {
  position: absolute !important;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden;
  clip: rect(0,0,0,0);
  white-space: nowrap;
  border: 0;
}

/* Prevent stale React-scroll animations from leaving elements invisible.
   Excludes the hero slider, which intentionally toggles slide opacity. */
main [class*="opacity-0"]:not([data-slide-bg]):not([data-slide-text]) { opacity: 1 !important; }

/* ----- Brand solid colors ------------------------------------------------ */
.bg-\[\#1a365d\]           { background-color: #1a365d; }
.bg-\[\#152a4a\]           { background-color: #152a4a; }
.bg-\[\#2c5282\]           { background-color: #2c5282; }
.bg-\[\#f97316\]           { background-color: #f97316; }

.bg-\[\#1a365d\]\/10       { background-color: rgba(26, 54, 93, .10); }
.bg-\[\#1a365d\]\/15       { background-color: rgba(26, 54, 93, .15); }
.bg-\[\#1a365d\]\/20       { background-color: rgba(26, 54, 93, .20); }
.bg-\[\#1a365d\]\/90       { background-color: rgba(26, 54, 93, .90); }

.text-\[\#1a365d\]         { color: #1a365d; }
.text-\[\#f97316\]         { color: #f97316; }

.border-\[\#1a365d\]       { border-color: #1a365d; }
.border-\[\#1a365d\]\/20   { border-color: rgba(26, 54, 93, .20); }
.border-\[\#1a365d\]\/30   { border-color: rgba(26, 54, 93, .30); }

/* Hover variants */
.hover\:bg-\[\#1a365d\]:hover      { background-color: #1a365d; }
.hover\:bg-\[\#152a4a\]:hover      { background-color: #152a4a; }
.hover\:bg-\[\#2c5282\]:hover      { background-color: #2c5282; }
.hover\:bg-\[\#1a365d\]\/15:hover  { background-color: rgba(26, 54, 93, .15); }
.hover\:bg-white\/10:hover         { background-color: rgba(255, 255, 255, .10); }
.hover\:bg-white\/90:hover         { background-color: rgba(255, 255, 255, .90); }
.hover\:text-\[\#1a365d\]:hover    { color: #1a365d; }
.hover\:text-\[\#f97316\]:hover    { color: #f97316; }
.hover\:text-white\/80:hover       { color: rgba(255, 255, 255, .80); }
.hover\:border-\[\#1a365d\]:hover       { border-color: #1a365d; }
.hover\:border-\[\#1a365d\]\/30:hover   { border-color: rgba(26, 54, 93, .30); }

/* Focus variants for form fields */
.focus\:border-\[\#1a365d\]:focus { border-color: #1a365d; }
.focus\:ring-\[\#1a365d\]:focus   { --tw-ring-color: #1a365d; box-shadow: 0 0 0 3px rgba(26,54,93,.35); }

/* ----- White / black opacity utilities missing in bundle ----------------- */
.text-white\/85  { color: rgba(255, 255, 255, .85); }
.text-white\/90  { color: rgba(255, 255, 255, .90); }
.bg-white\/10    { background-color: rgba(255, 255, 255, .10); }
.bg-white\/20    { background-color: rgba(255, 255, 255, .20); }
.bg-white\/90    { background-color: rgba(255, 255, 255, .90); }
.border-white\/10 { border-color: rgba(255, 255, 255, .10); }
.border-white\/30 { border-color: rgba(255, 255, 255, .30); }
.bg-black\/60    { background-color: rgba(0, 0, 0, .60); }

/* ----- Gradient utilities (Tailwind uses CSS variables under the hood) --- */
/* Tailwind's `bg-gradient-to-br` is present in the bundle and expands to
   `background-image: linear-gradient(to bottom right, var(--tw-gradient-stops))`.
   We just need to feed the stops. */
.from-\[\#1a365d\]        { --tw-gradient-from: #1a365d; --tw-gradient-to: rgba(26,54,93,0); --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); }
.from-\[\#1a365d\]\/5     { --tw-gradient-from: rgba(26,54,93,.05); --tw-gradient-to: rgba(26,54,93,0); --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); }
.from-\[\#1a365d\]\/10    { --tw-gradient-from: rgba(26,54,93,.10); --tw-gradient-to: rgba(26,54,93,0); --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); }
.via-\[\#1a365d\]\/5      { --tw-gradient-stops: var(--tw-gradient-from), rgba(26,54,93,.05), var(--tw-gradient-to); }
.to-\[\#2c5282\]          { --tw-gradient-to: #2c5282; }
.to-\[\#1a365d\]\/10      { --tw-gradient-to: rgba(26,54,93,.10); }

/* ----- Safety fallbacks for legacy bg-gradient variants ------------------ */
/* Some spots in the original React bundle might not declare every direction.
   These are no-ops if Tailwind already supplied them. */
.bg-gradient-to-b  { background-image: linear-gradient(to bottom, var(--tw-gradient-stops)); }
.bg-gradient-to-tr { background-image: linear-gradient(to top right, var(--tw-gradient-stops)); }
.bg-gradient-to-r  { background-image: linear-gradient(to right, var(--tw-gradient-stops)); }
