/* ==========================================================================
   oneid365.com — Global Stylesheet
   Bootstrap 5.3 override layer. Design tokens mirror the approved comps.
   Keep this file as the single source of truth for colour + type.
   ========================================================================== */

:root {
  /* Core palette */
  --o-primary: #004ac6;
  --o-primary-dark: #003ea8;
  --o-primary-bright: #2563eb;
  --o-primary-fixed: #dbe1ff;
  --o-primary-dim: #b4c5ff;
  --o-tertiary: #3750a0;

  /* Surfaces */
  --o-ink: #0b1c30;
  --o-ink-soft: #213145;
  --o-white: #ffffff;
  --o-surface: #f8f9ff;
  --o-surface-low: #eff4ff;
  --o-surface-container: #e5eeff;
  --o-surface-high: #dce9ff;
  --o-surface-variant: #d3e4fe;

  /* Lines + text */
  --o-outline: #c3c6d7;
  --o-outline-strong: #737686;
  --o-muted: #434655;
  --o-secondary: #565e74;
  --o-success: #0f7a4d;
  --o-error: #ba1a1a;

  /* Type */
  --o-font-display: "Plus Jakarta Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
  --o-font-body: "Plus Jakarta Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
  --o-font-label: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;

  /* Geometry — matches the Stitch comps' Material 3 shape scale
     (2 / 4 / 8 / 12px), one notch tighter than the previous build */
  --o-radius: 2px;
  --o-radius-lg: 4px;
  --o-radius-xl: 8px;
  --o-radius-full: 12px;
  --o-shadow-sm: 0 1px 8px rgba(11, 28, 48, .06);
  --o-shadow-md: 0 8px 28px rgba(11, 28, 48, .09);
  --o-shadow-lg: 0 20px 60px rgba(11, 28, 48, .16);
  --o-header-h: 148px;
}

/* --------------------------------------------------------------- base --- */
html { scroll-behavior: smooth; }

body {
  font-family: var(--o-font-body);
  color: var(--o-ink);
  background: var(--o-white);
  font-size: 1rem;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
  padding-top: var(--o-header-h);
  overflow-x: hidden;
}

h1, h2, h3, h4, h5, h6, .o-display {
  font-family: var(--o-font-display);
  letter-spacing: -.02em;
  font-weight: 700;
  color: var(--o-ink);
}

h1, .o-h1 { font-size: clamp(2.25rem, 4.4vw, 3.5rem); line-height: 1.1; letter-spacing: -.03em; font-weight: 800; }
h2, .o-h2 { font-size: clamp(1.75rem, 3vw, 2.5rem); line-height: 1.15; letter-spacing: -.025em; }
h3, .o-h3 { font-size: clamp(1.35rem, 2vw, 2rem); line-height: 1.2; }
h4, .o-h4 { font-size: 1.5rem; line-height: 1.3; font-weight: 600; letter-spacing: -.015em; }
h5, .o-h5 { font-size: 1.25rem; line-height: 1.35; font-weight: 600; letter-spacing: -.01em; }
h6, .o-h6 { font-size: 1rem;  line-height: 1.4;  font-weight: 700; }

a { color: var(--o-primary); text-decoration: none; }
a:hover { color: var(--o-primary-dark); }

p { margin-bottom: 1rem; }
.o-lead { font-size: 1.125rem; line-height: 1.6; color: var(--o-muted); }
.o-body-sm { font-size: .875rem; line-height: 1.5; }
.o-muted { color: var(--o-muted); }
.o-secondary-text { color: var(--o-secondary); }

.o-eyebrow {
  font-family: var(--o-font-label);
  font-size: .6875rem;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--o-primary);
  display: inline-block;
  margin-bottom: .75rem;
}
.o-eyebrow-light { color: var(--o-primary-dim); }

.o-label {
  font-family: var(--o-font-label);
  font-size: .75rem;
  font-weight: 600;
  letter-spacing: .025em;
}

.material-symbols-outlined {
  font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 24;
  vertical-align: middle;
  line-height: 1;
}

/* Section rhythm — aligned to the Stitch spacing scale (margin-lg = 4rem) */
.o-section { padding: 4rem 0; }
.o-section-sm { padding: 2.5rem 0; }
.o-section-tight { padding: 1.5rem 0; }
@media (max-width: 767.98px) {
  .o-section { padding: 3rem 0; }
  .o-section-sm { padding: 2rem 0; }
}
.o-bg-surface { background: var(--o-surface); }

/* --------------------------------------------------------- media split --- */
.o-media-frame {
  position: relative;
  border-radius: var(--o-radius-xl);
  overflow: hidden;
  box-shadow: var(--o-shadow-lg);
  isolation: isolate;
}
.o-media-frame img {
  display: block;
  width: 100%;
  height: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}
.o-media-frame::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(11,28,48,0) 55%, rgba(11,28,48,.55) 100%);
  pointer-events: none;
}
.o-media-caption {
  position: absolute;
  left: 0; right: 0; bottom: 0;
  padding: 1.1rem 1.35rem;
  color: var(--o-white);
  font-family: var(--o-font-label);
  font-size: .85rem;
  font-weight: 600;
  letter-spacing: .01em;
  z-index: 1;
}
.o-media-badge {
  position: absolute;
  top: 1rem; left: 1rem;
  z-index: 1;
  background: rgba(11,28,48,.55);
  backdrop-filter: blur(6px);
  color: var(--o-white);
  font-family: var(--o-font-label);
  font-size: .7rem;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  padding: .35rem .7rem;
  border-radius: var(--o-radius-full);
}
@media (max-width: 991.98px) {
  .o-media-frame img { aspect-ratio: 16 / 10; }
}

/* ------------------------------------------------------- banner carousel --- */
.o-banner-carousel { position: relative; }
.o-banner-slide {
  position: relative;
  height: 480px;
  overflow: hidden;
}
.o-banner-slide img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.o-banner-slide::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(11,28,48,.92) 0%, rgba(11,28,48,.72) 32%, rgba(11,28,48,.28) 62%, rgba(11,28,48,.05) 100%);
}
.o-banner-copy {
  position: absolute;
  inset: 0;
  z-index: 2;
  display: flex;
  align-items: center;
}
.o-banner-copy .container { width: 100%; }
.o-banner-copy-inner { max-width: 46ch; color: var(--o-white); }
.o-banner-copy-inner .o-eyebrow-light { display: inline-block; margin-bottom: .85rem; }
.o-banner-copy-inner h2 { color: var(--o-white); margin-bottom: .85rem; }
.o-banner-copy-inner p { color: var(--o-primary-fixed); margin-bottom: 1.4rem; }
.o-banner-carousel .carousel-indicators { bottom: 1.25rem; }
.o-banner-carousel .carousel-indicators [data-bs-target] {
  width: 34px;
  height: 4px;
  border-radius: var(--o-radius-full);
  background-color: rgba(255,255,255,.4);
  border: 0;
  opacity: 1;
}
.o-banner-carousel .carousel-indicators .active { background-color: var(--o-white); }
.o-banner-carousel .carousel-control-prev,
.o-banner-carousel .carousel-control-next { width: 4.5rem; opacity: 0; transition: opacity .2s ease; }
.o-banner-carousel:hover .carousel-control-prev,
.o-banner-carousel:hover .carousel-control-next { opacity: 1; }
.o-banner-carousel .carousel-control-prev-icon,
.o-banner-carousel .carousel-control-next-icon {
  width: 2.25rem;
  height: 2.25rem;
  background-color: rgba(11,28,48,.5);
  border-radius: 50%;
  padding: .5rem;
  background-size: 1.1rem;
}
@media (max-width: 767.98px) {
  .o-banner-slide { height: 560px; }
  .o-banner-copy-inner { max-width: 100%; }
}
.o-bg-low { background: var(--o-surface-low); }
.o-bg-container { background: var(--o-surface-container); }
.o-bg-ink { background: var(--o-ink); color: #fff; }
.o-bg-ink h1, .o-bg-ink h2, .o-bg-ink h3, .o-bg-ink h4, .o-bg-ink h5 { color: #fff; }
.o-bg-ink p { color: rgba(255, 255, 255, .78); }

/* ------------------------------------------------------------- buttons --- */
.btn { font-family: var(--o-font-label); font-weight: 600; letter-spacing: .01em; border-radius: var(--o-radius-lg); padding: .7rem 1.4rem; transition: all .18s ease; }
.btn-lg { padding: .9rem 1.8rem; font-size: 1rem; }
.btn-sm { padding: .45rem .95rem; font-size: .8125rem; }

.btn-o-primary { background: var(--o-primary); color: #fff; border: 1px solid var(--o-primary); }
.btn-o-primary:hover { background: var(--o-primary-dark); border-color: var(--o-primary-dark); color: #fff; box-shadow: var(--o-shadow-md); }

.btn-o-outline { background: transparent; color: var(--o-ink); border: 1px solid var(--o-outline); }
.btn-o-outline:hover { background: var(--o-surface-container); color: var(--o-primary); border-color: var(--o-primary); }

.btn-o-light { background: #fff; color: var(--o-ink); border: 1px solid transparent; }
.btn-o-light:hover { background: var(--o-surface-high); color: var(--o-primary-dark); }

.btn-o-ghost-light { background: rgba(255, 255, 255, .08); color: #fff; border: 1px solid rgba(255, 255, 255, .28); }
.btn-o-ghost-light:hover { background: rgba(255, 255, 255, .16); color: #fff; border-color: rgba(255, 255, 255, .5); }



.btn .material-symbols-outlined { font-size: 1.15em; margin-left: .35rem; } 

/* -------------------------------------------------------------- header --- */
.o-header { position: fixed; top: 0; left: 0; width: 100%; z-index: 1030; background: rgba(255, 255, 255, .97); backdrop-filter: blur(14px); box-shadow: var(--o-shadow-sm); }

.o-ticker {
  background: var(--o-ink);
  color: #fff;
  font-family: var(--o-font-label);
  font-size: .6875rem;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  padding: .45rem 0;
}
.o-ticker .o-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--o-primary-dim); display: inline-block; animation: o-pulse 2s infinite; }
@keyframes o-pulse { 0%, 100% { opacity: 1; } 50% { opacity: .25; } }
.o-ticker-line { white-space: nowrap; overflow-x: auto; scrollbar-width: none; }
.o-ticker-line::-webkit-scrollbar { display: none; }
.o-ticker a { color: var(--o-primary-dim); }

.o-navbar { min-height: 76px; padding: .35rem 0; }
.o-logo img { height: 42px; width: auto; object-fit: contain; display: block; }
@media (max-width: 575.98px) { .o-logo img { height: 34px; } }

.o-navbar .nav-link {
  font-family: var(--o-font-label);
  font-size: .875rem;
  font-weight: 600;
  color: var(--o-ink);
  padding: .55rem .8rem !important;
  border-radius: var(--o-radius-lg);
}
.o-navbar .nav-link:hover, .o-navbar .nav-link.active { color: var(--o-primary); background: var(--o-surface-low); }

.o-navbar .dropdown-menu {
  border: 1px solid var(--o-outline);
  border-radius: var(--o-radius-lg);
  box-shadow: var(--o-shadow-md);
  padding: .5rem;
  margin-top: .35rem;
  min-width: 328px;
}
.o-navbar .dropdown-item {
  border-radius: var(--o-radius);
  padding: .6rem .75rem;
  white-space: normal;
  font-size: .875rem;
  font-weight: 600;
  font-family: var(--o-font-label);
  color: var(--o-ink);
}
.o-navbar .dropdown-item small { display: block; font-weight: 400; color: var(--o-secondary); font-size: .75rem; margin-top: .1rem; }
.o-navbar .dropdown-item:hover, .o-navbar .dropdown-item:focus { background: var(--o-surface-low); color: var(--o-primary); }
.o-navbar .dropdown-header { font-family: var(--o-font-label); font-size: .6875rem; letter-spacing: .06em; text-transform: uppercase; color: var(--o-secondary); font-weight: 700; }

@media (min-width: 992px) {
  .o-navbar .dropdown:hover > .dropdown-menu { display: block; }
}
@media (max-width: 991.98px) {
  body { padding-top: 116px; }
  .o-navbar .dropdown-menu { border: 0; box-shadow: none; padding-left: .5rem; background: var(--o-surface-low); }
  .o-nav-collapse { max-height: 74vh; overflow-y: auto; padding-bottom: 1rem; }
}

/* ---------------------------------------------------------------- hero --- */
.o-hero {
  position: relative;
  background: linear-gradient(135deg, #07162a 0%, #0b1c30 45%, #132a4d 100%);
  color: #fff;
  padding: 4.5rem 0;
  overflow: hidden;
}
.o-hero::after {
  content: "";
  position: absolute; inset: 0;
  background-image: linear-gradient(rgba(180, 197, 255, .07) 1px, transparent 1px), linear-gradient(90deg, rgba(180, 197, 255, .07) 1px, transparent 1px);
  background-size: 52px 52px;
  mask-image: radial-gradient(circle at 70% 30%, #000 0%, transparent 72%);
  pointer-events: none;
}
.o-hero > .container { position: relative; z-index: 2; }
.o-hero h1 { color: #fff; }
.o-hero p { color: rgba(255, 255, 255, .8); }
.o-hero-sm { padding: 3.25rem 0; }
.o-hero-badge {
  display: inline-flex; align-items: center; gap: .5rem;
  background: rgba(180, 197, 255, .12);
  border: 1px solid rgba(180, 197, 255, .3);
  color: var(--o-primary-dim);
  font-family: var(--o-font-label); font-size: .6875rem; font-weight: 700;
  letter-spacing: .06em; text-transform: uppercase;
  padding: .4rem .8rem; border-radius: 999px; margin-bottom: 1.25rem;
}

/* Console panel used in hero right column */
.o-console {
  background: rgba(255, 255, 255, .05);
  border: 1px solid rgba(180, 197, 255, .22);
  border-radius: var(--o-radius-xl);
  padding: 1.5rem;
  backdrop-filter: blur(6px);
}
.o-console-head { display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid rgba(180, 197, 255, .18); padding-bottom: .75rem; margin-bottom: 1rem; }
.o-console-row { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .6rem 0; border-bottom: 1px dashed rgba(180, 197, 255, .14); font-size: .875rem; color: rgba(255, 255, 255, .82); }
.o-console-row:last-child { border-bottom: 0; }
.o-console-row b { color: #fff; font-weight: 700; }
.o-chip-live { font-family: var(--o-font-label); font-size: .625rem; font-weight: 700; letter-spacing: .08em; background: rgba(15, 122, 77, .22); color: #7ff0bb; border: 1px solid rgba(127, 240, 187, .35); padding: .2rem .55rem; border-radius: 999px; }

/* ------------------------------------------------------------ elements --- */
.o-card {
  background: #fff;
  border: 1px solid var(--o-outline);
  border-radius: var(--o-radius-xl);
  padding: 1.75rem;
  height: 100%;
  transition: box-shadow .2s ease, border-color .2s ease, transform .2s ease;
}
.o-card1 {
  background: #fff;
  border: 1px solid var(--o-outline);
  border-radius: var(--o-radius-xl);
  padding: 1.75rem;
  height: 50%;
  transition: box-shadow .2s ease, border-color .2s ease, transform .2s ease;
}
.o-card:hover { border-color: var(--o-primary); box-shadow: var(--o-shadow-md); transform: translateY(-2px); }
.o-card-flat:hover { transform: none; }

.o-card-icon {
  width: 46px; height: 46px; border-radius: var(--o-radius-lg);
  display: inline-flex; align-items: center; justify-content: center;
  background: var(--o-surface-container); color: var(--o-primary);
  margin-bottom: 1rem;
}
.o-card-icon .material-symbols-outlined { font-size: 24px; }

.o-stat { border-left: 3px solid var(--o-primary); padding-left: 1.1rem; }
.o-stat-num { font-family: var(--o-font-display); font-size: 2.1rem; font-weight: 800; line-height: 1.05; letter-spacing: -.03em; color: var(--o-ink); }
.o-bg-ink .o-stat-num, .o-hero .o-stat-num { color: #fff; }
.o-stat-label { font-family: var(--o-font-label); font-size: .75rem; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; color: var(--o-secondary); }
.o-hero .o-stat-label { color: var(--o-primary-dim); }

.o-tag {
  display: inline-block;
  font-family: var(--o-font-label); font-size: .6875rem; font-weight: 600; letter-spacing: .03em;
  background: var(--o-surface-container); color: var(--o-primary-dark);
  border: 1px solid var(--o-surface-high);
  padding: .25rem .6rem; border-radius: 999px; margin: 0 .3rem .4rem 0;
}
.o-tag-dark { background: rgba(180, 197, 255, .12); color: var(--o-primary-dim); border-color: rgba(180, 197, 255, .28); }

.o-check { display: flex; gap: .65rem; align-items: flex-start; margin-bottom: .6rem; font-size: .9375rem; }
.o-check .material-symbols-outlined { color: var(--o-primary); font-size: 20px; flex: 0 0 auto; margin-top: .1rem; }
.o-bg-ink .o-check .material-symbols-outlined { color: var(--o-primary-dim); }

.o-ribbon {
  position: absolute; top: -12px; left: 1.75rem;
  font-family: var(--o-font-label); font-size: .625rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase;
  background: var(--o-primary); color: #fff; padding: .3rem .7rem; border-radius: var(--o-radius);
}

.o-table { width: 100%; border-collapse: separate; border-spacing: 0; font-size: .9375rem; }
.o-table th, .o-table td { padding: .9rem 1rem; border-bottom: 1px solid var(--o-outline); vertical-align: top; }
.o-table thead th { background: var(--o-ink); color: #fff; font-family: var(--o-font-label); font-size: .6875rem; letter-spacing: .06em; text-transform: uppercase; }
.o-table tbody tr:nth-child(even) { background: var(--o-surface); }
.o-table .o-col-highlight { background: var(--o-surface-container) !important; font-weight: 600; color: var(--o-primary-dark); }

.o-step { display: flex; gap: 1.1rem; padding-bottom: 1.75rem; position: relative; }
.o-step:last-child { padding-bottom: 0; }
.o-step::before { content: ""; position: absolute; left: 21px; top: 46px; bottom: 0; width: 2px; background: var(--o-surface-high); }
.o-step:last-child::before { display: none; }
.o-step-num { flex: 0 0 44px; height: 44px; width: 44px; border-radius: 50%; background: var(--o-primary); color: #fff; display: flex; align-items: center; justify-content: center; font-family: var(--o-font-display); font-weight: 800; position: relative; z-index: 1; }

.o-accordion .accordion-button { font-family: var(--o-font-display); font-weight: 600; font-size: 1.0625rem; color: var(--o-ink); background: #fff; }
.o-accordion .accordion-button:not(.collapsed) { background: var(--o-surface-low); color: var(--o-primary-dark); box-shadow: none; }
.o-accordion .accordion-button:focus { box-shadow: 0 0 0 .2rem rgba(0, 74, 198, .15); }
.o-accordion .accordion-item { border: 1px solid var(--o-outline); border-radius: var(--o-radius-lg) !important; margin-bottom: .6rem; overflow: hidden; }

.o-breadcrumb { font-family: var(--o-font-label); font-size: .75rem; color: rgba(255, 255, 255, .6); margin-bottom: 1rem; }
.o-breadcrumb a { color: var(--o-primary-dim); }

.o-job-card { border: 1px solid var(--o-outline); border-radius: var(--o-radius-xl); padding: 1.5rem; background: #fff; transition: border-color .2s ease, box-shadow .2s ease; }
.o-job-card:hover { border-color: var(--o-primary); box-shadow: var(--o-shadow-sm); }

.o-post-card { border: 1px solid var(--o-outline); border-radius: var(--o-radius-xl); background: #fff; overflow: hidden; height: 100%; display: flex; flex-direction: column; }
.o-post-card .o-post-body { padding: 1.5rem; display: flex; flex-direction: column; flex: 1; }
.o-post-meta { font-family: var(--o-font-label); font-size: .6875rem; letter-spacing: .06em; text-transform: uppercase; color: var(--o-secondary); }

.o-cta-band { background: linear-gradient(120deg, #003ea8 0%, #004ac6 55%, #2563eb 100%); color: #fff; padding: 4rem 0; }
.o-cta-band h2, .o-cta-band h3 { color: #fff; }
.o-cta-band p { color: rgba(255, 255, 255, .85); }

/* --------------------------------------------------------------- forms --- */
.o-form-panel { background: #fff; border: 1px solid var(--o-outline); border-radius: var(--o-radius-xl); padding: 2rem; box-shadow: var(--o-shadow-sm); }
.form-label { font-family: var(--o-font-label); font-size: .8125rem; font-weight: 600; color: var(--o-muted); margin-bottom: .3rem; }
.form-control, .form-select {
  border: 1px solid var(--o-outline);
  border-radius: var(--o-radius-lg);
  padding: .65rem .85rem;
  font-size: .9375rem;
  background: var(--o-surface);
}
.form-control:focus, .form-select:focus { border-color: var(--o-primary); box-shadow: 0 0 0 .2rem rgba(0, 74, 198, .12); background: #fff; }
.o-form-note { font-size: .75rem; color: var(--o-secondary); }
.modal-content { border: 0; border-radius: var(--o-radius-xl); overflow: hidden; }
.modal-header { background: var(--o-ink); color: #fff; border-bottom: 0; padding: 1.1rem 1.5rem; }
.modal-header .btn-close { filter: invert(1) grayscale(1) brightness(2); }
.modal-title { font-size: 1.15rem; }
.o-modal-sub { font-size: .8125rem; color: rgba(255, 255, 255, .7); margin: .15rem 0 0; }

/* -------------------------------------------------------------- footer --- */
.o-footer { background: var(--o-ink); color: rgba(255, 255, 255, .72); padding: 4rem 0 0; font-size: .9375rem; }
.o-footer h6 { color: #fff; font-family: var(--o-font-label); font-size: .75rem; letter-spacing: .06em; text-transform: uppercase; margin-bottom: 1.1rem; }
.o-footer a { color: rgba(255, 255, 255, .72); }
.o-footer a:hover { color: var(--o-primary-dim); }
.o-footer ul { list-style: none; padding: 0; margin: 0; }
.o-footer li { margin-bottom: .55rem; }
.o-footer-logo img { height: 40px; width: auto; margin-bottom: 1rem; }
.o-footer-bottom { border-top: 1px solid rgba(255, 255, 255, .12); margin-top: 3rem; padding: 1.25rem 0; font-size: .8125rem; }
.o-footer-social a { display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; border-radius: var(--o-radius-lg); border: 1px solid rgba(255, 255, 255, .18); margin-right: .5rem; }
.o-footer-social a:hover { border-color: var(--o-primary-dim); background: rgba(180, 197, 255, .12); }
.o-compliance { display: flex; align-items: center; gap: .5rem; margin-bottom: .55rem; font-size: .8125rem; }
.o-compliance .material-symbols-outlined { font-size: 18px; color: var(--o-primary-dim); }

/* --------------------------------------------------------------- misc --- */
.o-call-float {
  position: fixed; right: 18px; bottom: 18px; z-index: 1040;
  width: 54px; height: 54px; border-radius: 50%;
  background: var(--o-primary); color: #fff;
  display: flex; align-items: center; justify-content: center;
  box-shadow: var(--o-shadow-md);
}
.o-call-float:hover { color: #fff; background: var(--o-primary-dark); transform: scale(1.05); }
.o-call-float .material-symbols-outlined { font-size: 28px; }

.o-divider { height: 1px; background: var(--o-outline); border: 0; margin: 2.5rem 0; }
.o-anchor-offset { scroll-margin-top: calc(var(--o-header-h) + 16px); }

@media (prefers-reduced-motion: reduce) {
  * { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}

/* Print-friendly legal pages */
@media print {
  .o-header, .o-footer, .o-call-float, .o-cta-band { display: none !important; }
  body { padding-top: 0; }
}

/* ------------------------------------------------- logo / brand grids --- */
.o-brand-grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 1rem; }
@media (max-width: 991.98px) { .o-brand-grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 575.98px) { .o-brand-grid { grid-template-columns: repeat(2, 1fr); } }
.o-brand-chip {
  display: flex; align-items: center; justify-content: center; text-align: center;
  gap: .4rem; padding: 1.1rem .75rem; min-height: 84px;
  background: #fff; border: 1px solid var(--o-outline); border-radius: var(--o-radius-lg);
  font-family: var(--o-font-label); font-weight: 700; color: var(--o-ink);
  transition: all .18s ease; text-decoration: none; line-height: 1.2;
}
.o-brand-chip:hover { border-color: var(--o-primary); color: var(--o-primary); box-shadow: var(--o-shadow-md); transform: translateY(-2px); }
.o-brand-chip small { display: block; font-family: var(--o-font-body); font-weight: 500; font-size: .6875rem; color: var(--o-ink-soft); margin-top: .15rem; }
.o-bg-ink .o-brand-chip, .o-cta-band .o-brand-chip { background: rgba(255,255,255,.06); border-color: rgba(255,255,255,.16); color: #fff; }
.o-bg-ink .o-brand-chip:hover, .o-cta-band .o-brand-chip:hover { border-color: var(--o-primary-dim); color: var(--o-primary-dim); }

/* ------------------------------------------------------- testimonials --- */
.o-testimonial { height: 100%; }
.o-testimonial .o-stars { color: #f5a623; font-size: 18px; letter-spacing: 2px; margin-bottom: .5rem; }
.o-testimonial-avatar {
  width: 48px; height: 48px; border-radius: 50%; flex: none;
  display: flex; align-items: center; justify-content: center;
  background: var(--o-surface-container); color: var(--o-primary);
  font-family: var(--o-font-label); font-weight: 700;
}
