/* Logo colours: source assets/img/opticore-insights-logo.svg.
   Public website only: native demos retain their own application controls. */
:root{--brand-blue:#051d40;--brand-blue-hover:#173a65;--brand-blue-soft:#eaf0f8;--brand-orange:#ff4900;--brand-orange-hover:#ff631f;--brand-orange-soft:#fff0e9;--brand-orange-soft-strong:#ffe0d4;--ink:var(--brand-blue);--link:var(--brand-blue);--accent:var(--brand-orange)}
/* Translucent fills soften actions; text and brand artwork stay fully opaque. */
:root{--action-blue:rgba(23,58,101,.86);--action-blue-hover:rgba(23,58,101,.96);--action-blue-border:rgba(23,58,101,.78);--action-blue-border-hover:rgba(23,58,101,.96);--action-orange:rgba(255,99,31,.90);--action-orange-hover:rgba(255,79,12,.96);--action-orange-border:rgba(255,85,16,.94);--action-orange-border-hover:rgba(255,73,0,1)}
body a[href]{text-decoration:none}
body a[href]:not(.button):not(:where(.brand,.footer-brand,.client-grid a,.skip-link,.screen-slide,.portfolio-cover,.webapp-demo-teaser-scroll,.footer-contact-link,:has(>img:only-child))){
 display:inline-flex;align-items:center;justify-content:center;gap:7px;vertical-align:baseline;
 min-height:40px;min-width:0;max-width:100%;padding:8px 13px;margin:3px 5px 3px 0;
 border:1px solid var(--action-blue-border);border-radius:6px;background:var(--action-blue);color:#fff;
 font-size:14px;font-weight:650;line-height:1.45;text-align:center;white-space:normal;overflow-wrap:break-word;text-wrap:pretty;
 text-decoration:none;transition:background-color .15s,border-color .15s,color .15s;
}
body a[href]:not(.button):not(:where(.brand,.footer-brand,.client-grid a,.skip-link,.screen-slide,.portfolio-cover,.webapp-demo-teaser-scroll,.footer-contact-link,:has(>img:only-child))):hover{background:var(--action-blue-hover);border-color:var(--action-blue-border-hover);color:#fff}
body a[href]:focus-visible,body button:focus-visible{outline:3px solid var(--brand-blue);outline-offset:3px}
/* Nested menu links remain easy to scan beneath their section heading. */
body .site-nav .menu-group a[href]{display:flex;justify-content:flex-start;min-height:44px;padding:8px 12px;margin:0;border:0;background:transparent;color:var(--brand-blue);font-size:15px;font-weight:500;text-align:left}
body .site-nav .menu-group a[href]:hover,body .site-nav .menu-group a[aria-current=page]{background:var(--brand-blue-soft);color:var(--brand-blue)}
/* Equal tracks fill each row; the last one or two actions also fill their row. */
body :is(.actions,.section-more,.webapp-cost-nav,.news-source-shortcuts){display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;align-items:stretch;width:100%}
body :is(.actions,.section-more,.webapp-cost-nav,.news-source-shortcuts)>:is(a[href],button){grid-column:span 2;min-width:0;max-width:100%;width:100%;height:100%;margin:0;padding:10px 14px;white-space:normal;text-wrap:pretty;overflow-wrap:break-word;align-self:stretch}
@media(min-width:761px){
body :is(.actions,.section-more,.webapp-cost-nav,.news-source-shortcuts)>:last-child:nth-child(3n+1){grid-column:1/-1}
body :is(.actions,.section-more,.webapp-cost-nav,.news-source-shortcuts)>:nth-last-child(2):nth-child(3n+1),body :is(.actions,.section-more,.webapp-cost-nav,.news-source-shortcuts)>:last-child:nth-child(3n+2){grid-column:span 3}
}
body :is(.on-this-page,.portfolio-nav>.container){gap:8px;align-items:center;flex-wrap:wrap}
body :is(.on-this-page,.portfolio-nav) a[href]{margin:0;font-size:13px;padding:7px 11px;min-height:36px}
body .on-this-page>span{flex-basis:100%}
/* References within sentences, breadcrumbs and footer navigation stay quiet. */
body :is(p,dd,figcaption,small,td,th)>a[href]:not(.button):not(:where(.text-link,.footer-social,.screen-slide,.webapp-demo-teaser-scroll,:has(>img:only-child))){display:inline;min-height:0;padding:0;margin:0;border:0;border-radius:0;background:transparent;color:var(--brand-blue);font-size:inherit;font-weight:600;line-height:inherit;box-shadow:none;text-decoration:underline;text-decoration-color:var(--brand-orange);text-underline-offset:3px}
body :is(p,dd,figcaption,small,td,th)>a[href]:not(.button):not(:where(.text-link,.footer-social,.screen-slide,.webapp-demo-teaser-scroll,:has(>img:only-child))):hover{background:transparent;border:0;color:var(--brand-blue);text-decoration:underline;text-decoration-color:var(--brand-orange)}
/* Consent copy stays readable as a sentence, including its privacy link. */
body .contact-form .checkbox-label a[href]{display:inline;min-height:0;max-width:none;padding:0;margin:0;border:0;border-radius:0;background:transparent;color:var(--brand-blue);font:inherit;font-weight:600;line-height:inherit;text-align:left;box-shadow:none;text-decoration:underline;text-decoration-color:var(--brand-orange);text-underline-offset:3px}
body .contact-form .checkbox-label a[href]:hover{background:transparent;border:0;color:var(--brand-blue-hover);text-decoration:underline;text-decoration-color:var(--brand-orange)}
body :is(h1,h2,h3,h4)>a[href]:not(.button){font-size:inherit;line-height:inherit}
body .breadcrumbs a[href]{display:inline;min-height:0;padding:0;margin:0;border:0;border-radius:0;background:transparent;box-shadow:none;color:#41566a;font-size:inherit;font-weight:400;line-height:inherit;text-align:left}
body .breadcrumbs a[href]:hover{background:transparent;color:var(--brand-blue);text-decoration:underline}
/* Topic titles are editorial links, not another row of filled actions. */
body .bol-promo-links li>a[href]{display:inline;min-height:0;max-width:100%;padding:0;margin:0;border:0;border-radius:0;background:transparent;box-shadow:none;color:var(--brand-blue);font-size:16px;font-weight:700;line-height:1.45;text-align:left;text-decoration:underline;text-decoration-color:var(--brand-orange);text-underline-offset:3px;overflow-wrap:anywhere}
body .bol-promo-links li>a[href]:hover{background:transparent;border:0;color:var(--brand-blue-hover);text-decoration:underline;text-decoration-color:var(--brand-orange)}
body .site-nav{gap:5px}
body .site-nav>a[href]{width:100%;justify-content:flex-start;text-align:left;min-height:42px;padding:9px 12px;margin:0;border-color:transparent;background:transparent;color:var(--brand-blue)}
body .site-nav>a[href]:hover,body .site-nav>a[aria-current=page]{background:var(--brand-orange-soft);color:var(--brand-blue);border-color:var(--brand-orange)}
body .site-nav>a.nav-contact{background:var(--action-orange);border-color:var(--action-orange-border);color:var(--brand-blue)}
body .site-nav>a.nav-contact:hover{background:var(--action-orange-hover);border-color:var(--action-orange-border-hover);color:var(--brand-blue)}
body .footer-nav li+li{margin-top:5px}
body .footer-nav a[href]{display:block;width:auto;min-height:32px;padding:4px 0;margin:0;border:0;border-radius:0;background:transparent;box-shadow:none;color:var(--brand-blue);font-size:14px;font-weight:400;text-align:left;text-decoration:underline;text-underline-offset:3px}
body .footer-nav a[href]:hover{background:transparent;border:0;color:var(--brand-blue-hover);text-decoration:underline}
body .site-footer .footer-social{padding:8px 12px;min-height:40px}
body .footer-legal-links a[href]{min-height:34px;padding:5px 9px;font-size:12px}
body .case-chapters nav a[href]{justify-content:flex-start;width:100%;margin:0}
body .resource-list a[href]{margin:3px 0 8px;padding:8px 12px}
body .webapp-module-card .webapp-module-choose{margin:4px 21px 18px;padding:8px 12px}
body .technology-resource img{flex:none;background:#fff;padding:3px;border-radius:3px}
body .language-picker nav a[href]{margin:3px 0;box-shadow:none}
body .language-picker nav a[aria-current=page]{background:var(--action-blue);color:#fff;border-color:var(--action-blue-border)}
body .card>.text-link[href],body .news-card>.text-link[href]{align-self:flex-start;margin:auto 0 0}
body a.case-back[href]{margin:24px 0 0}
body :is(button.scan-back,button.webapp-selection-reset,button.text-link,button.button-link,button.module-screen-gallery-all,.expectations-controls button){display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:40px;max-width:100%;padding:8px 13px;border:1px solid var(--action-blue-border);border-radius:6px;background:var(--action-blue);color:#fff;font-size:14px;font-weight:650;line-height:1.45;text-decoration:none;white-space:normal;text-align:center}
body :is(button.scan-back,button.webapp-selection-reset,button.text-link,button.button-link,button.module-screen-gallery-all,.expectations-controls button):hover{background:var(--action-blue-hover);border-color:var(--action-blue-border-hover);color:#fff}
/* Orange conversion actions are prominent; blue information actions stay compact. */
body :is(a.button[href],button.button,a.footer-contact-link[href]){min-height:46px;padding:11px 18px;background:var(--action-orange);border:1px solid var(--action-orange-border);border-radius:6px;color:var(--brand-blue);font-size:15px;font-weight:700;line-height:1.45;text-decoration:none;text-wrap:pretty;white-space:normal}
body :is(a.button[href],button.button,a.footer-contact-link[href]):hover{background:var(--action-orange-hover);border-color:var(--action-orange-border-hover);color:var(--brand-blue)}
body :is(a.button-secondary[href],button.button-secondary){min-height:40px;padding:8px 13px;background:var(--action-blue);border-color:var(--action-blue-border);color:#fff;font-size:14px;font-weight:650}
body :is(a.button-secondary[href],button.button-secondary):hover{background:var(--action-blue-hover);border-color:var(--action-blue-border-hover);color:#fff}
body button.menu-button{min-height:46px;padding:11px 18px;background:var(--action-blue);border:1px solid var(--action-blue-border);border-radius:6px;color:#fff;font-size:15px;font-weight:700;line-height:1.45}
body button.menu-button:hover{background:var(--action-blue-hover);border-color:var(--action-blue-border-hover);color:#fff}
body :is(.header-search-form,.menu-search,.search-form) button{background:var(--action-blue);border-color:var(--action-blue-border);color:#fff}
body :is(.header-search-form,.menu-search,.search-form) button:hover{background:var(--action-blue-hover);border-color:var(--brand-blue-hover)}
@media(max-width:760px){
 body :is(.actions,.section-more,.webapp-cost-nav,.news-source-shortcuts){grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
 body :is(.actions,.section-more,.webapp-cost-nav,.news-source-shortcuts)>:is(a[href],button){grid-column:auto;width:100%;padding:10px;font-size:13px;min-height:44px}
 body :is(.actions,.section-more,.webapp-cost-nav,.news-source-shortcuts)>:last-child:nth-child(odd){grid-column:1/-1}
 body :is(.actions,.section-more,.webapp-cost-nav,.news-source-shortcuts):has(>:nth-child(3)):has(>:last-child:nth-child(odd)):has(>:first-child.button:not(.button-secondary))>:is(a[href],button):not(:first-child){grid-column:auto}
 body :is(.actions,.section-more,.webapp-cost-nav,.news-source-shortcuts):has(>:nth-child(3)):has(>:last-child:nth-child(odd))>:first-child.button:not(.button-secondary){grid-column:1/-1}
 body .resource-list a[href]{max-width:100%;text-align:left}
}
@media(max-width:359px){body :is(.actions,.section-more,.webapp-cost-nav,.news-source-shortcuts){grid-template-columns:1fr}body :is(.actions,.section-more,.webapp-cost-nav,.news-source-shortcuts)>:is(a[href],button){grid-column:1/-1}}
@media(prefers-reduced-motion:reduce){body a[href]{transition:none!important}}
