/* =============================================================================
   Incipit ConsultEdge — Premium Public Design System (Foundations)
   FILE 2 OF 4 — UTILITIES
   Extended spacing ladder (Awake 6-19) + premium helpers: gradients, surfaces,
   dividers, opacity, section rhythm. Stock Bootstrap 0-5 utilities untouched.
   ============================================================================= */

/* 1. Flexbox stacks */
.hstack { display: flex; flex-direction: row; align-items: center; align-self: stretch; }
.vstack { display: flex; flex: 1 1 auto; flex-direction: column; align-self: stretch; }

/* 2. Spacing scale 6-19 (px). Premium whitespace rhythm. */
.gap-6,.g-6{gap:10px!important} .gap-7,.g-7{gap:12px!important} .gap-8,.g-8{gap:20px!important} .gap-9,.g-9{gap:28px!important} .gap-10,.g-10{gap:30px!important} .gap-11,.g-11{gap:40px!important} .gap-12,.g-12{gap:64px!important} .gap-13,.g-13{gap:80px!important} .gap-14,.g-14{gap:120px!important} .gap-15,.g-15{gap:150px!important} .gap-16,.g-16{gap:180px!important} .gap-17,.g-17{gap:200px!important} .gap-18,.g-18{gap:210px!important} .gap-19,.g-19{gap:250px!important}

.gx-6,.gy-6{} .gx-6{column-gap:10px!important} .gy-6{row-gap:10px!important}
.gx-7,.gy-7{} .gx-7{column-gap:12px!important} .gy-7{row-gap:12px!important}
.gx-8,.gy-8{} .gx-8{column-gap:20px!important} .gy-8{row-gap:20px!important}
.gx-9,.gy-9{} .gx-9{column-gap:28px!important} .gy-9{row-gap:28px!important}
.gx-10,.gy-10{} .gx-10{column-gap:30px!important} .gy-10{row-gap:30px!important}
.gx-11,.gy-11{} .gx-11{column-gap:40px!important} .gy-11{row-gap:40px!important}
.gx-12,.gy-12{} .gx-12{column-gap:64px!important} .gy-12{row-gap:64px!important}
.gx-13,.gy-13{} .gx-13{column-gap:80px!important} .gy-13{row-gap:80px!important}
.gx-14,.gy-14{} .gx-14{column-gap:120px!important} .gy-14{row-gap:120px!important}
.gx-15,.gy-15{} .gx-15{column-gap:150px!important} .gy-15{row-gap:150px!important}
.gx-16,.gy-16{} .gx-16{column-gap:180px!important} .gy-16{row-gap:180px!important}
.gx-17,.gy-17{} .gx-17{column-gap:200px!important} .gy-17{row-gap:200px!important}
.gx-18,.gy-18{} .gx-18{column-gap:210px!important} .gy-18{row-gap:210px!important}
.gx-19,.gy-19{} .gx-19{column-gap:250px!important} .gy-19{row-gap:250px!important}

/* padding scale 6-19 */
.p-6{padding:10px!important}.pt-6{padding-top:10px!important}.p-7{padding:12px!important}.pt-7{padding-top:12px!important}.p-8{padding:20px!important}.pt-8{padding-top:20px!important}.p-9{padding:28px!important}.pt-9{padding-top:28px!important}.p-10{padding:30px!important}.pt-10{padding-top:30px!important}.p-11{padding:40px!important}.pt-11{padding-top:40px!important}.p-12{padding:64px!important}.pt-12{padding-top:64px!important}.p-13{padding:80px!important}.pt-13{padding-top:80px!important}.p-14{padding:120px!important}.pt-14{padding-top:120px!important}.p-15{padding:150px!important}.pt-15{padding-top:150px!important}.p-16{padding:180px!important}.pt-16{padding-top:180px!important}.p-17{padding:200px!important}.pt-17{padding-top:200px!important}.p-18{padding:210px!important}.pt-18{padding-top:210px!important}.p-19{padding:250px!important}.pt-19{padding-top:250px!important}
.pr-6{padding-right:10px!important}.pb-6{padding-bottom:10px!important}.pr-7{padding-right:12px!important}.pb-7{padding-bottom:12px!important}.pr-8{padding-right:20px!important}.pb-8{padding-bottom:20px!important}.pr-9{padding-right:28px!important}.pb-9{padding-bottom:28px!important}.pr-10{padding-right:30px!important}.pb-10{padding-bottom:30px!important}.pr-11{padding-right:40px!important}.pb-11{padding-bottom:40px!important}.pr-12{padding-right:64px!important}.pb-12{padding-bottom:64px!important}.pr-13{padding-right:80px!important}.pb-13{padding-bottom:80px!important}.pr-14{padding-right:120px!important}.pb-14{padding-bottom:120px!important}.pr-15{padding-right:150px!important}.pb-15{padding-bottom:150px!important}.pr-16{padding-right:180px!important}.pb-16{padding-bottom:180px!important}.pr-17{padding-right:200px!important}.pb-17{padding-bottom:200px!important}.pr-18{padding-right:210px!important}.pb-18{padding-bottom:210px!important}.pr-19{padding-right:250px!important}.pb-19{padding-bottom:250px!important}
.pl-6{padding-left:10px!important}.px-6{padding-right:10px!important;padding-left:10px!important}.pl-7{padding-left:12px!important}.px-7{padding-right:12px!important;padding-left:12px!important}.pl-8{padding-left:20px!important}.px-8{padding-right:20px!important;padding-left:20px!important}.pl-9{padding-left:28px!important}.px-9{padding-right:28px!important;padding-left:28px!important}.pl-10{padding-left:30px!important}.px-10{padding-right:30px!important;padding-left:30px!important}.pl-11{padding-left:40px!important}.px-11{padding-right:40px!important;padding-left:40px!important}.pl-12{padding-left:64px!important}.px-12{padding-right:64px!important;padding-left:64px!important}.pl-13{padding-left:80px!important}.px-13{padding-right:80px!important;padding-left:80px!important}.pl-14{padding-left:120px!important}.px-14{padding-right:120px!important;padding-left:120px!important}.pl-15{padding-left:150px!important}.px-15{padding-right:150px!important;padding-left:150px!important}.pl-16{padding-left:180px!important}.px-16{padding-right:180px!important;padding-left:180px!important}.pl-17{padding-left:200px!important}.px-17{padding-right:200px!important;padding-left:200px!important}.pl-18{padding-left:210px!important}.px-18{padding-right:210px!important;padding-left:210px!important}.pl-19{padding-left:250px!important}.px-19{padding-right:250px!important;padding-left:250px!important}
.py-6{padding-top:10px!important;padding-bottom:10px!important}.py-7{padding-top:12px!important;padding-bottom:12px!important}.py-8{padding-top:20px!important;padding-bottom:20px!important}.py-9{padding-top:28px!important;padding-bottom:28px!important}.py-10{padding-top:30px!important;padding-bottom:30px!important}.py-11{padding-top:40px!important;padding-bottom:40px!important}.py-12{padding-top:64px!important;padding-bottom:64px!important}.py-13{padding-top:80px!important;padding-bottom:80px!important}.py-14{padding-top:120px!important;padding-bottom:120px!important}.py-15{padding-top:150px!important;padding-bottom:150px!important}.py-16{padding-top:180px!important;padding-bottom:180px!important}.py-17{padding-top:200px!important;padding-bottom:200px!important}.py-18{padding-top:210px!important;padding-bottom:210px!important}.py-19{padding-top:250px!important;padding-bottom:250px!important}

/* margin scale 6-19 */
.m-6{margin:10px!important}.mt-6{margin-top:10px!important}.m-7{margin:12px!important}.mt-7{margin-top:12px!important}.m-8{margin:20px!important}.mt-8{margin-top:20px!important}.m-9{margin:28px!important}.mt-9{margin-top:28px!important}.m-10{margin:30px!important}.mt-10{margin-top:30px!important}.m-11{margin:40px!important}.mt-11{margin-top:40px!important}.m-12{margin:64px!important}.mt-12{margin-top:64px!important}.m-13{margin:80px!important}.mt-13{margin-top:80px!important}.m-14{margin:120px!important}.mt-14{margin-top:120px!important}.m-15{margin:150px!important}.mt-15{margin-top:150px!important}.m-16{margin:180px!important}.mt-16{margin-top:180px!important}.m-17{margin:200px!important}.mt-17{margin-top:200px!important}.m-18{margin:210px!important}.mt-18{margin-top:210px!important}.m-19{margin:250px!important}.mt-19{margin-top:250px!important}
.mr-6{margin-right:10px!important}.mb-6{margin-bottom:10px!important}.mr-7{margin-right:12px!important}.mb-7{margin-bottom:12px!important}.mr-8{margin-right:20px!important}.mb-8{margin-bottom:20px!important}.mr-9{margin-right:28px!important}.mb-9{margin-bottom:28px!important}.mr-10{margin-right:30px!important}.mb-10{margin-bottom:30px!important}.mr-11{margin-right:40px!important}.mb-11{margin-bottom:40px!important}.mr-12{margin-right:64px!important}.mb-12{margin-bottom:64px!important}.mr-13{margin-right:80px!important}.mb-13{margin-bottom:80px!important}.mr-14{margin-right:120px!important}.mb-14{margin-bottom:120px!important}.mr-15{margin-right:150px!important}.mb-15{margin-bottom:150px!important}.mr-16{margin-right:180px!important}.mb-16{margin-bottom:180px!important}.mr-17{margin-right:200px!important}.mb-17{margin-bottom:200px!important}.mr-18{margin-right:210px!important}.mb-18{margin-bottom:210px!important}.mr-19{margin-right:250px!important}.mb-19{margin-bottom:250px!important}
.ml-6{margin-left:10px!important}.mx-6{margin-right:10px!important;margin-left:10px!important}.ml-7{margin-left:12px!important}.mx-7{margin-right:12px!important;margin-left:12px!important}.ml-8{margin-left:20px!important}.mx-8{margin-right:20px!important;margin-left:20px!important}.ml-9{margin-left:28px!important}.mx-9{margin-right:28px!important;margin-left:28px!important}.ml-10{margin-left:30px!important}.mx-10{margin-right:30px!important;margin-left:30px!important}.ml-11{margin-left:40px!important}.mx-11{margin-right:40px!important;margin-left:40px!important}.ml-12{margin-left:64px!important}.mx-12{margin-right:64px!important;margin-left:64px!important}.ml-13{margin-left:80px!important}.mx-13{margin-right:80px!important;margin-left:80px!important}.ml-14{margin-left:120px!important}.mx-14{margin-right:120px!important;margin-left:120px!important}.ml-15{margin-left:150px!important}.mx-15{margin-right:150px!important;margin-left:150px!important}.ml-16{margin-left:180px!important}.mx-16{margin-right:180px!important;margin-left:180px!important}.ml-17{margin-left:200px!important}.mx-17{margin-right:200px!important;margin-left:200px!important}.ml-18{margin-left:210px!important}.mx-18{margin-right:210px!important;margin-left:210px!important}.ml-19{margin-left:250px!important}.mx-19{margin-right:250px!important;margin-left:250px!important}
.row-gap-6{row-gap:10px!important}.column-gap-6{column-gap:10px!important}.row-gap-7{row-gap:12px!important}.column-gap-7{column-gap:12px!important}.row-gap-8{row-gap:20px!important}.column-gap-8{column-gap:20px!important}.row-gap-9{row-gap:28px!important}.column-gap-9{column-gap:28px!important}.row-gap-10{row-gap:30px!important}.column-gap-10{column-gap:30px!important}.row-gap-11{row-gap:40px!important}.column-gap-11{column-gap:40px!important}.row-gap-12{row-gap:64px!important}.column-gap-12{column-gap:64px!important}.row-gap-13{row-gap:80px!important}.column-gap-13{column-gap:80px!important}.row-gap-14{row-gap:120px!important}.column-gap-14{column-gap:120px!important}.row-gap-15{row-gap:150px!important}.column-gap-15{column-gap:150px!important}.row-gap-16{row-gap:180px!important}.column-gap-16{column-gap:180px!important}.row-gap-17{row-gap:200px!important}.column-gap-17{column-gap:200px!important}.row-gap-18{row-gap:210px!important}.column-gap-18{column-gap:210px!important}.row-gap-19{row-gap:250px!important}.column-gap-19{column-gap:250px!important}

/* breakpoint variants */
@media (min-width: 768px) {
  .pt-md-15{padding-top:150px!important} .pb-md-0{padding-bottom:0!important} .gap-md-0{gap:0!important} .gap-lg-0{gap:0!important} .pe-md-14{padding-right:120px!important} .py-md-8{padding-top:20px!important;padding-bottom:20px!important}
}
@media (min-width: 992px) {
  .pt-lg-0{padding-top:0!important} .pt-lg-12{padding-top:64px!important} .pt-lg-13{padding-top:80px!important} .pb-lg-12{padding-bottom:64px!important} .py-lg-12{padding-top:64px!important;padding-bottom:64px!important} .py-lg-13{padding-top:80px!important;padding-bottom:80px!important} .gap-lg-12{gap:64px!important} .gap-lg-18{gap:210px!important} .gap-lg-19{gap:250px!important} .ps-lg-7{padding-left:12px!important}
}
@media (min-width: 1200px) {
  .pb-xl-13{padding-bottom:80px!important} .py-xl-13{padding-top:80px!important;padding-bottom:80px!important} .py-xl-14{padding-top:120px!important;padding-bottom:120px!important} .p-xl-11{padding:40px!important}
}

/* 3. Font-size scale fs-6..fs-13 (fluid below 1200px) */
.fs-6{font-size:1.25rem!important}
.fs-7{font-size:calc(1.275rem + 0.3vw)!important}
.fs-8{font-size:calc(1.3rem + 0.6vw)!important}
.fs-9{font-size:calc(1.375rem + 1.5vw)!important}
.fs-10{font-size:calc(1.425rem + 2.1vw)!important}
.fs-11{font-size:calc(1.575rem + 3.9vw)!important}
.fs-12{font-size:calc(1.725rem + 5.7vw)!important}
.fs-13{font-size:calc(1.925rem + 8.1vw)!important}
@media (min-width: 1200px){
  .fs-7{font-size:1.5rem!important} .fs-8{font-size:1.75rem!important} .fs-9{font-size:2.5rem!important} .fs-10{font-size:3rem!important} .fs-11{font-size:4.5rem!important} .fs-12{font-size:6rem!important} .fs-13{font-size:8rem!important}
}

/* 4. Sizing / radius / misc */
.round-32{width:32px;height:32px} .round-40{width:40px;height:40px} .round-50{width:50px;height:50px}
.w-fit{width:fit-content} .w-20{width:20% !important}

/* Premium surface + gradient utilities */
.bg-surface{background-color:var(--bs-surface)!important}
.bg-surface-emphasis{background-color:var(--bs-surface)!important}
.bg-gradient{background:var(--bs-gradient-primary)!important}
.bg-gradient-surface{background:var(--bs-gradient-surface)!important}
.bg-gradient-subtle{background:linear-gradient(135deg,rgba(61,82,160,.06) 0%,rgba(112,145,230,.08) 100%)!important}
.text-gradient{background:var(--bs-gradient-primary);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;color:transparent}

/* Border / divider helpers using the accent colour */
.border-accent{border-color:var(--bs-accent)!important}
.divider-accent{box-shadow:inset 0 1px 0 var(--bs-accent)}
.text-accent{color:var(--bs-accent)!important}
.text-secondary-color{color:var(--bs-secondary)!important}

/* Link hover accent - Primary for >=4.5:1 contrast on white */
.link-hover:hover{color:var(--bs-primary)!important}

/* Legacy Awake tint classes — remapped to the premium palette so no
   stray orange/amber surfaces remain. (Tokens defined on :root.) */
.bg-light-orange{background-color:var(--bs-light-orange)!important}
.bg-light-orange-subtle{background-color:var(--bs-light-orange)!important}
.text-orange{color:var(--bs-orange)!important}

/* Reduced opacity helpers */
.text-opacity-70{--bs-text-opacity:.7}
.text-opacity-85{--bs-text-opacity:.85}

/* Border toggle for responsive */
@media (min-width: 767px){.border-md-none .border-end{border-right:0!important}}
@media (max-width: 991.98px){.border-md-none{border:0!important}}

/* Section rhythm — generous vertical padding between blocks */
.section-py{padding-top:60px;padding-bottom:60px}
@media (min-width: 992px){.section-py{padding-top:80px;padding-bottom:80px}}
@media (min-width: 1200px){.section-py{padding-top:100px;padding-bottom:100px}}
