@layer reset, tokens, base, layout, components, utilities, overrides;

@layer tokens {
  :root {
    color-scheme: light dark;
    --ocx-brand:#139FE3;
    --ocx-brand-rgb:19,159,227;
    --ocx-brand-strong:#087FBD;
    --ocx-accent:#39B6FF;
    --ocx-bg:#FFFFFF;
    --ocx-bg-elevated:#FFFFFF;
    --ocx-bg-soft:#F3FAFE;
    --ocx-bg-strong:#E6F6FD;
    --ocx-ink:#10212F;
    --ocx-ink-soft:#314858;
    --ocx-muted:#5D7280;
    --ocx-line:rgba(16,33,47,.12);
    --ocx-line-brand:rgba(var(--ocx-brand-rgb),.26);
    --ocx-shadow-sm:0 8px 30px rgba(13,56,82,.08);
    --ocx-shadow-md:0 20px 60px rgba(13,56,82,.12);
    --ocx-shadow-lg:0 34px 100px rgba(13,56,82,.16);
    --ocx-glow:0 24px 70px rgba(var(--ocx-brand-rgb),.19);
    --ocx-radius-sm:14px;
    --ocx-radius-md:22px;
    --ocx-radius-lg:32px;
    --ocx-radius-xl:42px;
    --ocx-container:1180px;
    --ocx-header-h:76px;
    --ocx-font:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
    --ocx-display:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
    --ocx-ease:cubic-bezier(.2,.75,.2,1);
  }
  :root[data-theme="dark"] {
    color-scheme:dark;
    --ocx-brand:#39B6FF;
    --ocx-brand-rgb:57,182,255;
    --ocx-brand-strong:#6BC8FF;
    --ocx-accent:#39B6FF;
    --ocx-bg:#07131D;
    --ocx-bg-elevated:#0C1B27;
    --ocx-bg-soft:#0A1823;
    --ocx-bg-strong:#102633;
    --ocx-ink:#F5FBFF;
    --ocx-ink-soft:#D4E4EE;
    --ocx-muted:#9EB3C0;
    --ocx-line:rgba(226,242,250,.13);
    --ocx-line-brand:rgba(57,182,255,.32);
    --ocx-shadow-sm:0 8px 30px rgba(0,0,0,.24);
    --ocx-shadow-md:0 20px 60px rgba(0,0,0,.34);
    --ocx-shadow-lg:0 34px 100px rgba(0,0,0,.44);
    --ocx-glow:0 24px 70px rgba(57,182,255,.15);
  }
}

@layer reset {
  *,*::before,*::after{box-sizing:border-box}
  html{inline-size:100%;max-inline-size:100%;overflow-x:hidden;-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:calc(var(--ocx-header-h) + 24px)}
  body,h1,h2,h3,h4,p,figure,blockquote,dl,dd{margin:0}
  ul[role="list"],ol[role="list"]{list-style:none}
  body{min-height:100vh;inline-size:100%;max-inline-size:100%;overflow-x:hidden;overscroll-behavior-x:none}
  img,picture,svg,video,canvas,iframe{display:block;max-inline-size:100%}
  input,button,textarea,select{font:inherit}
  button{cursor:pointer}
  a{text-decoration:none;color:inherit}
}

@layer base {
  body{margin:0;background:var(--ocx-bg);color:var(--ocx-ink);font-family:var(--ocx-font);font-size:16px;line-height:1.65;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;transition:background-color .25s ease,color .25s ease}
  ::selection{background:rgba(var(--ocx-brand-rgb),.22);color:var(--ocx-ink)}
  :where(h1,h2,h3,h4,h5,h6){font-family:var(--ocx-display);font-weight:780;line-height:1.1;letter-spacing:-.035em;color:var(--ocx-ink);text-wrap:balance}
  :where(p,li){color:var(--ocx-ink-soft)}
  :where(a,button,input,textarea,select,summary):focus-visible{outline:3px solid rgba(var(--ocx-brand-rgb),.42);outline-offset:3px}
  :where(input,textarea,select){accent-color:var(--ocx-brand)}
  .ocx-main{min-block-size:62vh;overflow:clip;background:var(--ocx-bg)}
  .ocx-skip-link{position:fixed;inset-block-start:12px;inset-inline-start:12px;z-index:9999;padding:10px 16px;border-radius:999px;background:var(--ocx-ink);color:var(--ocx-bg);transform:translateY(-160%);transition:transform .18s ease}
  .ocx-skip-link:focus{transform:translateY(0)}
}

@layer layout {
  .ocx-container{inline-size:min(var(--ocx-container),calc(100% - 40px));margin-inline:auto}
  .ocx-section{position:relative;padding-block:clamp(68px,8vw,112px);background:var(--ocx-bg)}
  .ocx-section+.ocx-section{border-block-start:1px solid var(--ocx-line)}
  .ocx-grid-1{display:grid;grid-template-columns:minmax(0,1fr);gap:22px}
  .ocx-grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}
  .ocx-grid-3,.ocx-post-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
  .ocx-grid-4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}
  .ocx-split{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(320px,.92fr);gap:clamp(24px,4vw,52px);align-items:start}
  .ocx-section-head{max-inline-size:820px;margin-block-end:36px}
  .ocx-section-head.is-center{margin-inline:auto;text-align:center}
  .ocx-section-head h2{font-size:clamp(2rem,4.2vw,3.6rem);margin-block-end:14px}
  .ocx-section-head p{font-size:clamp(1rem,1.7vw,1.16rem);max-inline-size:70ch}
}

@layer components {
  .ocx-header{position:sticky;inset-block-start:0;z-index:100;background:color-mix(in srgb,var(--ocx-bg) 86%,transparent);border-block-end:1px solid transparent;backdrop-filter:saturate(150%) blur(18px);transition:min-block-size .22s ease,box-shadow .22s ease,border-color .22s ease,background-color .22s ease}
  .ocx-header.is-scrolled{border-color:var(--ocx-line);box-shadow:0 12px 40px rgba(13,56,82,.08)}
  .ocx-header-inner{display:flex;align-items:center;justify-content:space-between;gap:24px;min-block-size:var(--ocx-header-h)}
  .ocx-logo,.custom-logo-link{display:inline-flex;align-items:center;min-inline-size:0;color:var(--ocx-brand);font-weight:900;letter-spacing:.12em;line-height:1}
  .ocx-logo img,.custom-logo-link img{inline-size:auto!important;block-size:auto!important;max-inline-size:180px!important;max-block-size:46px!important;object-fit:contain!important}
  .ocx-logo span{font-size:1.18rem;white-space:nowrap}
  .ocx-nav{display:flex;align-items:center;gap:16px;margin-inline-start:auto}
  .ocx-nav>ul{display:flex;align-items:center;gap:4px;margin:0;padding:0;list-style:none}
  .ocx-nav li{position:relative;margin:0}
  .ocx-nav a{display:inline-flex;align-items:center;justify-content:center;min-block-size:44px;padding:9px 13px;border-radius:999px;color:var(--ocx-ink-soft);font-size:.9rem;font-weight:730;transition:color .18s ease,background-color .18s ease,transform .18s ease}
  .ocx-nav>ul>li>a:hover,.ocx-nav>ul>li>a:focus-visible,.ocx-nav .current-menu-item>a,.ocx-nav .current-menu-ancestor>a{color:var(--ocx-brand);background:rgba(var(--ocx-brand-rgb),.09)}
  .ocx-nav .menu-item-has-children>a::after{content:"";inline-size:7px;block-size:7px;border-inline-end:1.5px solid currentColor;border-block-end:1.5px solid currentColor;transform:rotate(45deg) translateY(-2px);margin-inline-start:8px}
  .ocx-nav .sub-menu{position:absolute;inset-block-start:calc(100% + 10px);inset-inline-start:50%;inline-size:270px;display:grid;gap:3px;margin:0;padding:10px;list-style:none;border:1px solid var(--ocx-line);border-radius:20px;background:var(--ocx-bg-elevated);box-shadow:var(--ocx-shadow-md);opacity:0;visibility:hidden;transform:translate(-50%,-8px);transition:opacity .18s ease,transform .18s ease,visibility .18s ease}
  .ocx-nav .sub-menu::before{content:"";position:absolute;inset-inline:0;inset-block-start:-12px;block-size:12px}
  .ocx-nav .sub-menu a{justify-content:flex-start;border-radius:13px;padding:11px 13px;color:var(--ocx-ink-soft)}
  .ocx-nav .sub-menu a:hover,.ocx-nav .sub-menu a:focus-visible{background:var(--ocx-bg-soft);color:var(--ocx-brand);transform:translateX(2px)}
  .ocx-nav li:hover>.sub-menu,.ocx-nav li:focus-within>.sub-menu{opacity:1;visibility:visible;transform:translate(-50%,0)}
  .ocx-nav-cta,.ocx-btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-block-size:48px;padding:12px 21px;border:1px solid var(--ocx-brand);border-radius:999px;background:var(--ocx-brand);color:#fff!important;font-weight:800;line-height:1.15;box-shadow:0 14px 36px rgba(var(--ocx-brand-rgb),.22);transition:transform .2s var(--ocx-ease),box-shadow .2s ease,background-color .2s ease,border-color .2s ease}
  .ocx-nav-cta:hover,.ocx-btn:hover{transform:translateY(-2px);background:var(--ocx-brand-strong);border-color:var(--ocx-brand-strong);box-shadow:0 20px 48px rgba(var(--ocx-brand-rgb),.29)}
  .ocx-btn.secondary{background:transparent;color:var(--ocx-brand)!important;box-shadow:none}
  .ocx-btn.secondary:hover{background:rgba(var(--ocx-brand-rgb),.09);color:var(--ocx-brand)!important;border-color:var(--ocx-brand)}
  .ocx-menu-toggle{display:none;inline-size:46px;block-size:46px;padding:11px;border:1px solid var(--ocx-line);border-radius:14px;background:var(--ocx-bg-elevated)}
  .ocx-menu-toggle span{display:block;inline-size:22px;block-size:2px;margin:4px auto;border-radius:2px;background:var(--ocx-ink);transition:transform .2s ease,opacity .2s ease}
  .ocx-menu-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(6px) rotate(45deg)}
  .ocx-menu-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}
  .ocx-menu-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}

  .ocx-kicker{display:inline-flex;align-items:center;gap:8px;margin-block-end:16px;padding:7px 11px;border:1px solid var(--ocx-line-brand);border-radius:999px;background:rgba(var(--ocx-brand-rgb),.07);color:var(--ocx-brand);font-size:.72rem;font-weight:850;letter-spacing:.13em;text-transform:uppercase}
  .ocx-kicker::before{content:"";inline-size:7px;block-size:7px;border-radius:50%;background:var(--ocx-brand);box-shadow:0 0 0 5px rgba(var(--ocx-brand-rgb),.10)}
  .ocx-page-hero{position:relative;overflow:hidden;padding-block:clamp(78px,9vw,132px) clamp(58px,7vw,96px);background:linear-gradient(180deg,var(--ocx-bg-soft),var(--ocx-bg))}
  .ocx-page-hero::before{content:"";position:absolute;inset:-35% -12% auto auto;inline-size:min(58vw,760px);aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,rgba(var(--ocx-brand-rgb),.17),rgba(var(--ocx-brand-rgb),0) 68%);pointer-events:none}
  .ocx-page-hero h1{position:relative;max-inline-size:980px;font-size:clamp(2.8rem,7vw,6rem);margin-block-end:18px}
  .ocx-page-hero p{position:relative;max-inline-size:760px;font-size:clamp(1.04rem,2vw,1.28rem)}
  .ocx-page-hero-simple h1{font-size:clamp(2.5rem,6vw,5.2rem)}
  .ocx-breadcrumbs{display:flex;align-items:center;gap:8px;margin-block-end:24px;color:var(--ocx-muted);font-size:.85rem}
  .ocx-breadcrumbs a:hover{color:var(--ocx-brand)}
  .ocx-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-block-start:28px}

  .ocx-card{position:relative;overflow:hidden;border:1px solid var(--ocx-line);border-radius:var(--ocx-radius-lg);background:var(--ocx-bg-elevated);box-shadow:var(--ocx-shadow-sm);transition:transform .28s var(--ocx-ease),box-shadow .28s ease,border-color .28s ease;background-color .25s ease}
  .ocx-card:hover{transform:translateY(-6px);border-color:var(--ocx-line-brand);box-shadow:var(--ocx-shadow-md)}
  .ocx-card-body{padding:24px}
  .ocx-card img{inline-size:100%;aspect-ratio:16/10;object-fit:cover}
  .ocx-card h2,.ocx-card h3{margin-block-end:10px}
  .ocx-card p{margin-block-end:18px}
  .ocx-card-eyebrow{color:var(--ocx-brand)!important;font-size:.78rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
  .ocx-text-link{display:inline-flex;align-items:center;gap:8px;color:var(--ocx-brand);font-weight:800}
  .ocx-text-link span{transition:transform .18s ease}
  .ocx-text-link:hover span{transform:translateX(4px)}

  .ocx-prose{max-inline-size:860px;padding:clamp(24px,4vw,48px);border:1px solid var(--ocx-line);border-radius:var(--ocx-radius-lg);background:var(--ocx-bg-elevated);box-shadow:var(--ocx-shadow-sm)}
  .ocx-prose>*+*{margin-block-start:1.1em}
  .ocx-prose h2{font-size:clamp(1.7rem,3vw,2.5rem);margin-block-start:1.5em}
  .ocx-prose h3{font-size:clamp(1.3rem,2vw,1.7rem);margin-block-start:1.35em}
  .ocx-prose ul,.ocx-prose ol{padding-inline-start:1.25rem}
  .ocx-featured{inline-size:100%;aspect-ratio:16/10;object-fit:cover;border-radius:var(--ocx-radius-md);margin-block-end:28px}

  .ocx-footer{position:relative;padding-block:0 28px;background:var(--ocx-bg-soft);border-block-start:1px solid var(--ocx-line)}
  .ocx-footer-callout{display:flex;align-items:center;justify-content:space-between;gap:28px;transform:translateY(-36px);padding:34px clamp(26px,4vw,48px);border:1px solid var(--ocx-line-brand);border-radius:var(--ocx-radius-xl);background:linear-gradient(135deg,var(--ocx-bg-elevated),var(--ocx-bg-soft));box-shadow:var(--ocx-shadow-md)}
  .ocx-footer-callout h2{max-inline-size:760px;font-size:clamp(1.75rem,3.3vw,3rem)}
  .ocx-footer-grid{display:grid;grid-template-columns:1.55fr repeat(3,1fr);gap:36px;padding-block:28px 34px}
  .ocx-footer-brand{font-size:1.55rem;font-weight:900;letter-spacing:.08em;color:var(--ocx-brand)}
  .ocx-footer-intro p{max-inline-size:420px;margin-block:14px 18px}
  .ocx-footer-email{color:var(--ocx-brand);font-weight:800}
  .ocx-footer h3{font-size:1rem;margin-block-end:13px}
  .ocx-footer a{display:block;width:max-content;max-width:100%;margin-block:8px;color:var(--ocx-muted);transition:color .18s ease,transform .18s ease}
  .ocx-footer a:hover{color:var(--ocx-brand);transform:translateX(2px)}
  .ocx-footer-bottom{display:flex;align-items:center;justify-content:space-between;gap:18px;padding-block-start:20px;border-block-start:1px solid var(--ocx-line);color:var(--ocx-muted);font-size:.82rem}

  .ocx-theme-toggle{position:fixed;inset-inline-end:max(18px,env(safe-area-inset-right));inset-block-end:max(18px,env(safe-area-inset-bottom));z-index:150;inline-size:78px;block-size:38px;padding:0;border:1px solid var(--ocx-line-brand);border-radius:999px;background:var(--ocx-bg-elevated);box-shadow:var(--ocx-shadow-md)}
  .ocx-theme-toggle-track{position:relative;display:grid;grid-template-columns:1fr 1fr;align-items:center;block-size:100%;padding-inline:8px}
  .ocx-theme-toggle-orb{position:absolute;inset-block-start:4px;inset-inline-start:4px;inline-size:28px;block-size:28px;border-radius:50%;background:var(--ocx-brand);box-shadow:0 6px 16px rgba(var(--ocx-brand-rgb),.35);transition:transform .34s var(--ocx-ease)}
  :root[data-theme="dark"] .ocx-theme-toggle-orb{transform:translateX(40px)}
  .ocx-theme-icon{position:relative;z-index:1;display:grid;place-items:center;color:var(--ocx-muted)}
  .ocx-theme-icon svg{inline-size:15px;block-size:15px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
  :root[data-theme="light"] .ocx-theme-icon-sun,:root[data-theme="dark"] .ocx-theme-icon-moon{color:#fff}

  .ocx-lightbox{inline-size:min(94vw,1100px);max-inline-size:none;padding:0;border:0;border-radius:24px;background:transparent;box-shadow:none}
  .ocx-lightbox::backdrop{background:rgba(2,10,16,.84);backdrop-filter:blur(10px)}
  .ocx-lightbox img{inline-size:100%;max-block-size:88vh;object-fit:contain;border-radius:24px}
  .ocx-lightbox-close{position:absolute;inset-block-start:12px;inset-inline-end:12px;z-index:2;inline-size:42px;block-size:42px;border:1px solid rgba(255,255,255,.35);border-radius:50%;background:rgba(0,0,0,.42);color:#fff;font-size:1.8rem;line-height:1}
  .ocx-empty-state{grid-column:1/-1;padding:48px;border:1px solid var(--ocx-line);border-radius:var(--ocx-radius-lg);text-align:center;background:var(--ocx-bg-elevated)}
  .ocx-empty-state p{margin-block:12px 24px}
  .ocx-error-page{min-block-size:66vh;display:grid;align-items:center}
}

@layer utilities {
  .screen-reader-text{position:absolute!important;inline-size:1px!important;block-size:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
  .ocx-reveal{opacity:0;transform:translateY(20px);transition:opacity .64s var(--ocx-ease),transform .64s var(--ocx-ease)}
  .ocx-reveal.is-visible{opacity:1;transform:none}
}

@layer overrides {
  /* v2.7: hard viewport containment. Prevent intrinsic media, transformed layers or
     third-party WordPress wrappers from creating document-level horizontal scroll. */
  html,body,.ocx-site,.ocx-header,.ocx-main,.ocx-footer{max-inline-size:100%;}
  .ocx-site,.ocx-header,.ocx-main,.ocx-footer{inline-size:100%;min-inline-size:0;}
  .ocx-header-inner,.ocx-nav,.ocx-main>*,.ocx-footer>*{min-inline-size:0;max-inline-size:100%;}
  @supports (overflow-x:clip){html,body{overflow-x:clip;}}
  @supports not (background:color-mix(in srgb,#fff 50%,transparent)) {
    .ocx-header{background:rgba(255,255,255,.94)}
    :root[data-theme="dark"] .ocx-header{background:rgba(7,19,29,.94)}
  }
  @media (max-width:1050px){
    .ocx-menu-toggle{display:block}
    .ocx-nav{position:absolute;inset-block-start:calc(100% + 10px);inset-inline:20px;display:none;flex-direction:column;align-items:stretch;gap:12px;padding:16px;border:1px solid var(--ocx-line);border-radius:22px;background:var(--ocx-bg-elevated);box-shadow:var(--ocx-shadow-lg)}
    .ocx-nav.is-open{display:flex}
    .ocx-nav>ul{display:grid;align-items:stretch;gap:4px}
    .ocx-nav a{justify-content:flex-start;inline-size:100%}
    .ocx-nav-cta{justify-content:center!important}
    .ocx-nav .sub-menu{position:static;inline-size:auto;display:grid;opacity:1;visibility:visible;transform:none!important;margin-block:2px 8px;padding:6px 6px 6px 16px;border:0;border-inline-start:1px solid var(--ocx-line-brand);border-radius:0;background:transparent;box-shadow:none}
    .ocx-nav .menu-item-has-children>a::after{margin-inline-start:auto}
    .ocx-footer-grid{grid-template-columns:1.4fr 1fr 1fr}
    .ocx-footer-grid>div:last-child{grid-column:2/4}
  }
  @media (max-width:820px){
    .ocx-grid-3,.ocx-post-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
    .ocx-grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}
    .ocx-split{grid-template-columns:1fr}
    .ocx-footer-callout{align-items:flex-start;flex-direction:column}
    .ocx-footer-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
    .ocx-footer-grid>div:last-child{grid-column:auto}
  }
  @media (max-width:620px){
    :root{--ocx-header-h:68px}
    .ocx-container{inline-size:min(var(--ocx-container),calc(100% - 28px))}
    .ocx-grid-2,.ocx-grid-3,.ocx-grid-4,.ocx-post-grid{grid-template-columns:1fr}
    .ocx-page-hero{padding-block:64px 52px}
    .ocx-page-hero h1{font-size:clamp(2.45rem,13vw,4rem)}
    .ocx-actions>.ocx-btn{inline-size:100%}
    .ocx-footer-callout{transform:translateY(-24px);border-radius:28px}
    .ocx-footer-grid{grid-template-columns:1fr}
    .ocx-footer-bottom{align-items:flex-start;flex-direction:column}
    .ocx-theme-toggle{inline-size:70px;block-size:36px}
    .ocx-theme-toggle-orb{inline-size:26px;block-size:26px}
    :root[data-theme="dark"] .ocx-theme-toggle-orb{transform:translateX(34px)}
  }
  @media (prefers-reduced-motion:reduce){
    html{scroll-behavior:auto}
    *,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
    .ocx-reveal{opacity:1;transform:none}
  }
  @media (forced-colors:active){
    .ocx-btn,.ocx-nav-cta,.ocx-theme-toggle,.ocx-card,.ocx-footer-callout{forced-color-adjust:auto;border:1px solid CanvasText}
    .ocx-kicker::before{background:CanvasText;box-shadow:none}
  }
}

/* v2.7 root safeguard. Kept in the theme as well as Site Core so the viewport
   remains locked even while plugin assets are being refreshed by a cache/CDN. */
html,body,body.ocx-site,#content.ocx-main {
  inline-size:100% !important;
  max-inline-size:100% !important;
  overflow-x:hidden !important;
}
@supports (overflow:clip) {
  html,body,body.ocx-site,#content.ocx-main { overflow-x:clip !important; }
}
body.ocx-site { position:relative; overscroll-behavior-x:none; }
