/* O3 extensions to the retained Synck base. Shared chrome is generated from partials/. */
:root { --o3-ink:#14223a; --o3-muted:#526075; --o3-blue:#1351d8; --o3-pale:#f3f6fd; --o3-line:#dce3f0; }
html { scroll-behavior:smooth; scroll-padding-top:110px; }
body { color:var(--o3-ink); }
.o3-container { width:min(1240px, calc(100% - 80px)); margin-inline:auto; }
.o3-header *, .o3-footer *, .o3-home * { box-sizing:border-box; }
.o3-header a, .o3-footer a, .o3-home a { text-decoration:none; }
.o3-header a:focus-visible, .o3-footer a:focus-visible, .o3-home a:focus-visible, .o3-menu-toggle:focus-visible { outline:3px solid #1351d8; outline-offset:5px; border-radius:4px; }
.o3-skip-link { position:fixed; top:10px; left:10px; transform:translateY(-180%); padding:12px 20px; background:#fff; color:var(--o3-ink); z-index:1001; }
.o3-skip-link:focus { transform:none; outline:3px solid var(--o3-blue); }
.o3-header { position:sticky; top:0; z-index:100; background:#fff; border-bottom:1px solid var(--o3-line); }
.o3-header-inner { min-height:98px; display:flex; align-items:center; justify-content:space-between; gap:24px; }
.o3-brand { display:inline-flex; align-items:center; gap:12px; color:var(--o3-ink); font:700 16px/1.15 'DM Sans',sans-serif; letter-spacing:1px; flex-shrink:0; }
.o3-brand img { width:48px; height:48px; object-fit:contain; }
.o3-brand-sub { display:block; margin-top:6px; font-size:10px; letter-spacing:4px; font-weight:500; }
.o3-brand:hover { color:var(--o3-blue); }
.o3-nav { display:flex; align-items:center; gap:26px; }
.o3-nav a { color:var(--o3-muted); font-size:14px; font-weight:500; padding-block:16px; }
.o3-nav a:hover, .o3-nav a[aria-current] { color:var(--o3-blue); }
.o3-nav a[aria-current] { text-decoration:underline !important; text-underline-offset:9px; }
.o3-services-nav { position:relative; }
.o3-service-links { list-style:none; margin:0; padding:8px; background:#fff; border:1px solid var(--o3-line); border-radius:8px; }
.o3-service-links li { margin:0; padding:0; }
.o3-nav .o3-service-links a { display:block; padding:12px; border:0; border-radius:4px; line-height:1.4; white-space:normal; }
.o3-service-links a:hover { background:var(--o3-pale); }
html[data-o3-navigation="ready"] .o3-service-links { display:none; position:absolute; top:100%; left:0; width:280px; max-height:calc(100dvh - 110px); overflow:auto; box-shadow:0 12px 28px #14223a1a; }
html[data-o3-navigation="ready"] .o3-services-nav.is-open > .o3-service-links { display:block; }
.o3-button { display:inline-flex; align-items:center; justify-content:center; gap:22px; background:var(--o3-blue); color:#fff; padding:15px 22px; border:1px solid var(--o3-blue); border-radius:7px; font-size:14px; font-weight:600; line-height:1.5; transition:background .15s; }
.o3-button:hover { background:#0c3ca8; color:#fff; border-color:#0c3ca8; }
.o3-button span { font-size:20px; line-height:1; }
.o3-menu-toggle { display:none; }
.o3-home { background:#fff; }
.o3-home h1, .o3-home h2, .o3-home h3, .o3-footer h2 { color:var(--o3-ink); font-family:'Yantramanav','DM Sans',sans-serif; font-weight:500; letter-spacing:-1px; }
.o3-home p { color:var(--o3-muted); }
.o3-eyebrow { color:var(--o3-blue) !important; font-size:12px; font-weight:700; letter-spacing:2px; text-transform:uppercase; margin:0 0 18px; }
.o3-hero { padding:70px 0 64px; background:linear-gradient(120deg,#f3f6fd 0%,#f8faff 65%,#eef3ff 100%); }
.o3-hero-grid { display:grid; grid-template-columns:1.1fr .9fr; gap:64px; align-items:center; }
.o3-hero h1 { font-size:clamp(48px,4.6vw,70px); line-height:1.04; margin:0 0 24px; letter-spacing:-2.4px; }
.o3-hero h1 span { color:var(--o3-blue); }
.o3-hero-intro { font-size:18px; max-width:540px; line-height:1.7; margin:0 0 28px; }
.o3-actions { display:flex; align-items:center; gap:25px; flex-wrap:wrap; }
.o3-text-link { display:inline-flex; gap:16px; align-items:center; color:var(--o3-blue); font-weight:600; font-size:14px; }
.o3-text-link:hover { color:#0c3ca8; text-decoration:underline !important; text-underline-offset:4px; }
.o3-hero-note { margin:22px 0 0; font-size:12px; }
.o3-solution { border:1px solid #d8e3f7; border-radius:15px; padding:27px; background:#fff; box-shadow:0 20px 50px #203e7710; }
.o3-solution-label { display:flex; justify-content:space-between; align-items:center; border-bottom:1px solid var(--o3-line); padding-bottom:17px; color:var(--o3-muted); font-size:11px; text-transform:uppercase; letter-spacing:1.6px; }
.o3-solution-label span:last-child { width:8px; height:8px; background:var(--o3-blue); border-radius:50%; }
.o3-solution h2 { font-size:28px; letter-spacing:-.7px; margin:22px 0; }
.o3-solution-step { display:grid; grid-template-columns:38px 1fr 22px; gap:13px; align-items:center; border:1px solid var(--o3-line); border-radius:8px; padding:15px; margin-top:10px; background:#fbfcff; }
.o3-solution-number { display:grid; place-items:center; width:35px; height:35px; background:#e9f0ff; border-radius:7px; color:var(--o3-blue); font-size:12px; font-weight:700; }
.o3-solution-step strong { display:block; font-size:15px; font-weight:600; }
.o3-solution-step small { display:block; font-size:12px; color:var(--o3-muted); margin-top:3px; }
.o3-step-arrow { color:var(--o3-blue); font-size:20px; }
.o3-solution-foot { font-size:11px; color:var(--o3-muted); margin:21px 0 0; }
.o3-provider-strip { border-bottom:1px solid var(--o3-line); padding-block:24px; }
.o3-provider-inner { display:flex; justify-content:space-between; align-items:center; gap:25px; }
.o3-provider-inner p { font-size:13px; margin:0; }
.o3-provider-names { display:flex; gap:30px; align-items:center; font-size:16px; font-weight:600; }
.o3-provider-names span + span { border-left:1px solid var(--o3-line); padding-left:30px; }
.o3-section { padding-block:78px; }
.o3-section-heading { display:flex; justify-content:space-between; gap:40px; align-items:end; margin-bottom:32px; }
.o3-section h2 { font-size:clamp(32px,3.2vw,45px); line-height:1.12; margin:0; }
.o3-section-heading > p { max-width:390px; font-size:15px; line-height:1.75; margin:0 0 4px; }
.o3-grid-three { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; }
.o3-service-card { display:flex; flex-direction:column; padding:28px; border:1px solid var(--o3-line); border-radius:11px; background:#fff; }
.o3-service-card:hover { border-color:#99b3ed; }
.o3-service-icon { width:45px; height:45px; display:grid; place-items:center; background:var(--o3-pale); border-radius:10px; margin-bottom:23px; color:var(--o3-blue); }
.o3-service-icon svg { width:25px; height:25px; fill:none; stroke:currentColor; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; }
.o3-service-card h3 { font-size:27px; margin:0 0 12px; }
.o3-card-title-link { color:inherit; }
.o3-card-title-link:hover { color:var(--o3-blue); }
.o3-service-card p { font-size:14px; line-height:1.8; margin:0 0 22px; }
.o3-card-deliverable { border-top:1px solid var(--o3-line); padding-top:18px; margin-top:auto; }
.o3-card-deliverable span { display:block; font-size:10px; color:var(--o3-muted); text-transform:uppercase; letter-spacing:1.3px; margin-bottom:6px; }
.o3-card-deliverable p { font-size:13px; margin:0 0 21px; }
.o3-cases { background:var(--o3-pale); }
.o3-case-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:30px; }
.o3-case { border-top:2px solid #bdcff3; padding-top:20px; }
.o3-provider-tag, .o3-case-label { display:inline-flex; font-size:12px; font-weight:600; color:var(--o3-blue); margin-bottom:14px; }
.o3-case h3 { font-size:25px; margin:0 0 12px; }
.o3-case p { font-size:14px; line-height:1.8; margin:0; }
.o3-case .o3-text-link { margin-top:18px; }
.o3-case-note { margin:25px 0 0; font-size:12px; }
.o3-engagement { padding:29px; border:1px solid var(--o3-line); border-radius:10px; display:flex; flex-direction:column; }
.o3-engagement-featured { border-color:#a2bcee; background:#f7f9ff; }
.o3-small-label { font-size:11px; letter-spacing:1.3px; color:var(--o3-blue); text-transform:uppercase; }
.o3-engagement h3 { font-size:29px; margin:16px 0 12px; }
.o3-engagement > p { font-size:14px; line-height:1.8; margin-bottom:20px; }
.o3-engagement ul { margin:0 0 25px; padding:0; }
.o3-engagement li { color:var(--o3-muted); font-size:13px; margin-bottom:10px; padding-left:19px; position:relative; }
.o3-engagement li::before { content:'✓'; position:absolute; left:0; color:var(--o3-blue); }
.o3-engagement .o3-text-link { margin-top:auto; }
.o3-engagement-note { margin:23px 0 0; font-size:12px; }
.o3-approach { border-block:1px solid var(--o3-line); }
.o3-process { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:30px; }
.o3-process article { border-top:1px solid var(--o3-line); padding-top:20px; }
.o3-process span { color:var(--o3-blue); font-size:12px; font-weight:600; }
.o3-process h3 { font-size:26px; margin:12px 0 9px; }
.o3-process p { font-size:14px; line-height:1.8; margin:0; }
.o3-support-layout { display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:start; }
.o3-support-intro > p:not(.o3-eyebrow) { line-height:1.8; font-size:15px; margin-top:22px; max-width:410px; }
.o3-support-list article { padding:21px 0; border-bottom:1px solid var(--o3-line); }
.o3-support-list article:first-child { padding-top:0; }
.o3-support-list h3 { font-size:25px; margin:0 0 8px; }
.o3-support-list p { font-size:14px; line-height:1.8; margin:0 0 10px; }
.o3-final { background:var(--o3-blue); padding-block:45px; }
.o3-final-inner { display:flex; justify-content:space-between; align-items:center; gap:30px; }
.o3-final h2 { font-size:36px; line-height:1.2; color:#fff; margin:0 0 8px; }
.o3-final p { color:#e6edff; margin:0; font-size:14px; }
.o3-final .o3-button { background:#fff; color:var(--o3-blue); border-color:#fff; flex-shrink:0; }
.o3-final .o3-button:hover { background:#edf2ff; }
.o3-final .o3-button:focus-visible { outline-color:#fff; outline-offset:5px; }
.o3-home :focus-visible { scroll-margin-block:120px 24px; }
.o3-footer { background:#f7f9fd; padding:55px 0 0; color:var(--o3-ink); }
.o3-footer-top { display:grid; grid-template-columns:1fr 1.25fr .5fr; gap:55px; padding-bottom:45px; }
.o3-footer-top p { color:var(--o3-muted); font-size:13px; line-height:1.9; margin:19px 0 0; }
.o3-footer h2 { font-size:29px; line-height:1.2; margin:0 0 18px; }
.o3-footer-nav { display:flex; flex-direction:column; align-items:start; gap:12px; }
.o3-footer-nav a, .o3-footer-bottom a { font-size:13px; color:var(--o3-muted); }
.o3-footer-nav a:hover, .o3-footer-bottom a:hover { color:var(--o3-blue); text-decoration:underline !important; }
.o3-footer-bottom { border-top:1px solid var(--o3-line); padding-block:22px; display:flex; justify-content:space-between; gap:20px; }
.o3-footer-bottom p { margin:0; font-size:11px; color:var(--o3-muted); }
@media (max-width:1100px) {
  .o3-container { width:calc(100% - 48px); }
  .o3-nav { gap:18px; }
  .o3-header-cta { display:none; }
  .o3-header-cta { padding:13px 15px; font-size:12px; gap:12px; }
  .o3-hero-grid { gap:35px; }
  .o3-service-card, .o3-engagement { padding:22px; }
}
@media (max-width:980px) {
  .o3-header-inner { min-height:82px; flex-wrap:wrap; gap:0; padding-block:14px; }
  .o3-header-cta { display:none; }
  .o3-nav { width:100%; flex-direction:column; align-items:stretch; gap:0; padding-top:15px; max-height:calc(100dvh - 82px); overflow:auto; }
  .o3-nav > a, .o3-services-link { border-top:1px solid var(--o3-line); }
  .o3-nav a { padding:13px 5px; }
  .o3-services-link { display:block; }
  html[data-o3-navigation="ready"] .o3-service-links { position:static; width:auto; max-height:none; margin-bottom:8px; box-shadow:none; }
  html[data-o3-navigation="ready"] .o3-menu-toggle { display:inline-flex; align-items:center; gap:12px; background:#fff; border:1px solid var(--o3-line); padding:10px 14px; border-radius:6px; font:500 14px 'DM Sans',sans-serif; color:var(--o3-ink); }
  html[data-o3-navigation="ready"] .o3-nav { display:none; }
  html[data-o3-navigation="ready"] .o3-nav.is-open { display:flex; }
  .o3-hero { padding-top:48px; }
  .o3-hero-grid { grid-template-columns:1fr 1fr; gap:25px; }
  .o3-hero h1 { font-size:52px; }
  .o3-solution { padding:21px; }
  .o3-solution-step { padding:12px; gap:9px; }
  .o3-solution-step small { font-size:11px; }
  .o3-provider-inner { flex-wrap:wrap; justify-content:center; text-align:center; }
  .o3-section { padding-block:60px; }
  .o3-section-heading { gap:25px; }
  .o3-section-heading > p { max-width:310px; }
  .o3-grid-three { gap:14px; }
  .o3-service-card h3 { font-size:24px; }
  .o3-service-card .o3-text-link { font-size:12px; gap:8px; }
  .o3-support-layout { gap:40px; }
}
@media (max-width:700px) {
  .o3-container { width:calc(100% - 40px); }
  .o3-brand { font-size:14px; gap:9px; }
  .o3-brand img { width:42px; height:42px; }
  .o3-brand-sub { font-size:9px; letter-spacing:3.5px; }
  .o3-nav { flex-direction:column; align-items:stretch; gap:0; }
  .o3-nav a { padding:13px 5px; }
  .o3-nav .o3-service-links a { padding:12px; }
  .o3-hero { padding:40px 0; }
  .o3-hero-grid { grid-template-columns:1fr; gap:34px; }
  .o3-hero h1 { font-size:49px; letter-spacing:-1.8px; }
  .o3-eyebrow { font-size:10px; letter-spacing:1.5px; }
  .o3-hero-intro { font-size:16px; }
  .o3-actions { gap:20px; }
  .o3-hero-note { font-size:11px; }
  .o3-solution h2 { font-size:27px; }
  .o3-solution-step { padding:14px; }
  .o3-solution-step small { font-size:12px; }
  .o3-provider-strip { padding-block:22px; }
  .o3-provider-inner { gap:16px; }
  .o3-provider-names { gap:16px; font-size:14px; }
  .o3-provider-names span + span { padding-left:16px; }
  .o3-section { padding-block:47px; }
  .o3-section-heading { display:block; margin-bottom:26px; }
  .o3-section-heading > p { margin:17px 0 0; max-width:none; font-size:14px; }
  .o3-section h2 { font-size:34px; }
  .o3-grid-three, .o3-case-grid { grid-template-columns:1fr; gap:18px; }
  .o3-service-card, .o3-engagement { padding:25px; }
  .o3-service-card h3 { font-size:28px; }
  .o3-service-card .o3-text-link { font-size:14px; }
  .o3-service-icon { margin-bottom:18px; }
  .o3-case-grid { gap:28px; }
  .o3-process { grid-template-columns:1fr 1fr; gap:25px; }
  .o3-support-layout { grid-template-columns:1fr; gap:24px; }
  .o3-final-inner { flex-direction:column; align-items:start; gap:23px; }
  .o3-final h2 { font-size:31px; }
  .o3-footer { padding-top:40px; }
  .o3-footer-top { grid-template-columns:1fr; gap:29px; padding-bottom:30px; }
  .o3-footer h2 { font-size:28px; }
  .o3-footer-nav { flex-direction:row; flex-wrap:wrap; gap:16px 25px; }
  .o3-footer-bottom { flex-direction:column; gap:13px; }
}
@media (max-width:360px) {
  .o3-container { width:calc(100% - 32px); }
  .o3-hero h1 { font-size:43px; }
  .o3-provider-names { font-size:12px; gap:12px; }
  .o3-provider-names span + span { padding-left:12px; }
  .o3-solution-step { grid-template-columns:32px 1fr; }
  .o3-step-arrow { display:none; }
}
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  .o3-home *, .o3-header * { transition:none !important; animation:none !important; }
}
