/* ------------------------------------------------------------------
   Supplemental utilities for the static subpages.
   The homepage's compiled Tailwind (/assets/index-DaC1ExxK.css) is
   PURGED to only the classes the homepage used. The subpages reuse that
   stylesheet for a pixel-identical look, but introduce a few components
   (notably the contact form) whose utility classes were purged out.
   This file re-defines ONLY those missing classes, with their exact
   Tailwind values. Load it AFTER the compiled stylesheet.
   ------------------------------------------------------------------ */

/* layout / display */
.block { display: block; }
.flex-shrink-0 { flex-shrink: 0; }
.w-12 { width: 3rem; }
.z-40 { z-index: 40; }
.list-none { list-style: none; }
/* Body bottom padding clears the mobile sticky CTA bar on service pages */
.pb-safe-cta { padding-bottom: 5rem; }
@media (min-width: 768px) { .pb-safe-cta { padding-bottom: 0; } }

/* typography */
.antialiased { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }
.font-black { font-weight: 900; }
.tracking-tighter { letter-spacing: -.05em; }
.break-all { word-break: break-all; }
.text-\[6rem\] { font-size: 6rem; line-height: 1; }
.text-slate-300 { --tw-text-opacity: 1; color: rgb(203 213 225 / var(--tw-text-opacity, 1)); }
.text-slate-700 { --tw-text-opacity: 1; color: rgb(51 65 85 / var(--tw-text-opacity, 1)); }

/* spacing */
.mb-1 { margin-bottom: .25rem; }
.mb-16 { margin-bottom: 4rem; }
.mt-10 { margin-top: 2.5rem; }
.pt-40 { padding-top: 10rem; }
.pb-24 { padding-bottom: 6rem; }
.gap-1 { gap: .25rem; }
.space-y-3 > :not([hidden]) ~ :not([hidden]) { margin-top: .75rem; }
.space-y-5 > :not([hidden]) ~ :not([hidden]) { margin-top: 1.25rem; }
.space-y-8 > :not([hidden]) ~ :not([hidden]) { margin-top: 2rem; }
.mt-4 { margin-top: 1rem; }
.pl-6 { padding-left: 1.5rem; }
.list-disc { list-style-type: disc; }
.list-inside { list-style-position: inside; }
.cursor-pointer { cursor: pointer; }
.appearance-none { appearance: none; -webkit-appearance: none; }
.transition-transform { transition-property: transform; transition-timing-function: cubic-bezier(.4,0,.2,1); transition-duration: .15s; }
details > summary { list-style: none; }
details > summary::-webkit-details-marker { display: none; }
details[open] > summary > .smg-chev { transform: rotate(180deg); }

/* positioning / sizing (decorative blobs) */
.left-1\/2 { left: 50%; }
.-translate-x-1\/2 { transform: translateX(-50%); }
.w-\[700px\] { width: 700px; }
.h-\[700px\] { height: 700px; }
.blur-\[140px\] { filter: blur(140px); }

/* gradient stops (LS avatar 3-stop gradient) */
.from-smg-primary { --tw-gradient-from: #0E3A7D var(--tw-gradient-from-position); --tw-gradient-to: rgb(14 58 125 / 0) var(--tw-gradient-to-position); --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); }
.via-smg-secondary { --tw-gradient-to: rgb(37 99 235 / 0) var(--tw-gradient-to-position); --tw-gradient-stops: var(--tw-gradient-from), #2563EB var(--tw-gradient-via-position), var(--tw-gradient-to); }

/* portrait card (about.html — Meet the Strategist) */
.aspect-\[3\/4\] { aspect-ratio: 3 / 4; }
.object-cover { object-fit: cover; }
.object-top { object-position: top; }

/* states */
.hover\:shadow-xl:hover { box-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1); }
.focus\:ring-smg-secondary:focus { --tw-ring-opacity: 1; --tw-ring-color: rgb(37 99 235 / var(--tw-ring-opacity, 1)); }

/* responsive */
@media (min-width: 768px) {
  .md\:pt-48 { padding-top: 12rem; }
  .md\:pb-32 { padding-bottom: 8rem; }
}
@media (min-width: 1024px) {
  .lg\:grid-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
