/* Cornerstone redesign layer (Nov 2026): navigation, current page, sticky offsets, buttons, smooth scroll.
   Loaded after every page stylesheet. Source of the menu markup: scripts/redesign/apply_shell.py */
:root{--cs-header-h:100px;--cs-ease:cubic-bezier(.22,1,.36,1);--cs-panel-bg:#0b1824;--cs-panel-line:#e0c28a2b;--cs-soft:#b9c7cf}
@media (max-width:1100px){:root{--cs-header-h:86px}}
html{scroll-padding-top:calc(var(--cs-header-h) + 24px);-webkit-text-size-adjust:100%;text-size-adjust:100%}
html.lenis,html.lenis body{height:auto}
html.lenis{scroll-behavior:auto!important}
.lenis.lenis-smooth [data-lenis-prevent]{overscroll-behavior:contain}
.lenis.lenis-stopped{overflow:clip}

/* ---------- Sticky elements sit below the fixed/sticky header ---------- */
.cs-rd .service-aside,.cs-rd .article-aside,.cs-rd .local-contact,.cs-rd .process-sticky{top:calc(var(--cs-header-h) + 24px)}
/* Home group labels are sticky only on wide screens; stacked (<=1100px) they are position:relative, where a top offset would push them under their cards. */
@media (min-width:1101px){.cs-rd.hv5 .hv4-glabel{top:calc(var(--cs-header-h) + 24px)}}
.cs-rd [id]{scroll-margin-top:calc(var(--cs-header-h) + 24px)}

/* ---------- Top-level items: current section ---------- */
.cs-nav{gap:6px!important}
.cs-nav .mega-disclosure>summary{position:relative;padding:12px 14px;border-radius:999px;transition:color .25s,background-color .25s}
.cs-nav .mega-disclosure>summary:hover{background:#0d1b280a}
.journey-home .cs-nav .mega-disclosure>summary:hover{background:#ffffff12}
.cs-nav .mega-disclosure>summary::after{content:'';position:absolute;left:14px;right:30px;bottom:5px;height:2px;border-radius:2px;background:var(--bronze);transform:scaleX(0);transform-origin:left;transition:transform .35s var(--cs-ease)}
.cs-nav .mega-disclosure.is-current>summary{color:var(--bronze);font-weight:600}
.cs-nav .mega-disclosure.is-current>summary::after,.cs-nav .mega-disclosure>summary:hover::after{transform:scaleX(1)}
.journey-home .cs-nav .mega-disclosure>summary::after{background:var(--gold)}
.journey-home .cs-nav .mega-disclosure.is-current>summary{color:var(--gold)}

/* ---------- Panels: floating cards instead of full-width sheets ---------- */
.cs-nav .mega-panel.cs-panel{left:0;right:0;margin-inline:auto;top:calc(100% + 10px);width:min(1120px,calc(100vw - 40px));background:radial-gradient(120% 140% at 100% 0,#1a3446 0,var(--cs-panel-bg) 55%);border:1px solid var(--cs-panel-line);border-radius:18px;box-shadow:0 30px 80px #02101b70,0 2px 0 #ffffff08 inset;max-height:calc(100dvh - var(--cs-header-h) - 28px);overflow:auto;overscroll-behavior:contain;color:var(--paper)}
.cs-nav .mega-panel.cs-panel::before{content:'';position:absolute;inset:-12px 0 auto;height:12px}
.cs-nav .cs-panel--compact{width:min(820px,calc(100vw - 40px))}

/* Solutions: categories on the left, services in the middle, a starting point on the right */
.cs-sol{display:grid;grid-template-columns:270px minmax(0,1fr) 250px;min-height:380px}
.cs-sol-tabs{display:flex;flex-direction:column;gap:4px;padding:18px;border-right:1px solid #ffffff14}
.cs-sol-tab{all:unset;box-sizing:border-box;display:grid;grid-template-columns:30px 1fr auto;align-items:center;gap:10px;padding:14px 14px;border-radius:12px;cursor:pointer;color:#dfe7eb;position:relative;transition:background-color .25s,color .25s}
.cs-sol-tab .cs-n{font-size:12px;color:#8fa3ad;font-variant-numeric:tabular-nums;letter-spacing:.06em}
.cs-sol-tab .cs-t{font-size:15px;font-weight:600;line-height:1.25;letter-spacing:-.01em}
.cs-sol-tab .cs-t small{display:block;font-size:12px;font-weight:400;color:#93a7b1;margin-top:3px;letter-spacing:0}
.cs-sol-tab .cs-count{font-size:11px;min-width:22px;height:22px;display:grid;place-items:center;border-radius:999px;border:1px solid #ffffff26;color:#a9bac2}
.cs-sol-tab::before{content:'';position:absolute;left:0;top:14px;bottom:14px;width:3px;border-radius:3px;background:var(--gold);transform:scaleY(0);transition:transform .3s var(--cs-ease)}
.cs-sol-tab:hover{background:#ffffff0a}
.cs-sol-tab.is-active{background:#ffffff10;color:#fff}
.cs-sol-tab.is-active::before{transform:scaleY(1)}
.cs-sol-tab.is-active .cs-n,.cs-sol-tab.has-current .cs-n{color:var(--gold)}
.cs-sol-tab.has-current .cs-count{border-color:var(--gold);color:var(--gold)}
.cs-sol-tab:focus-visible{outline:2px solid var(--gold);outline-offset:-2px}
.cs-sol-panes{position:relative;padding:22px 26px}
.cs-sol-pane{display:none}
.cs-sol-pane.is-active{display:block}
.cs-pane-kicker{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);margin:4px 4px 12px}
.cs-sol-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
.cs-sol-link{position:relative;display:block;padding:14px 38px 14px 16px;border-radius:12px;border:1px solid transparent;color:#e9eef1;text-decoration:none!important;transition:background-color .25s,border-color .25s,transform .35s var(--cs-ease)}
.cs-sol-link strong{display:block;font-size:15px;font-weight:600;letter-spacing:-.01em;line-height:1.3}
.cs-sol-link small{display:block;font-size:13px;line-height:1.45;color:var(--cs-soft);margin-top:4px}
.cs-go{position:absolute;right:14px;top:50%;translate:0 -50%;color:var(--gold);opacity:0;transform:translateX(-6px);transition:opacity .25s,transform .35s var(--cs-ease)}
.cs-sol-link:hover,.cs-sol-link:focus-visible{background:#ffffff0d;border-color:#e0c28a40;transform:translateX(2px)}
.cs-sol-link:hover .cs-go,.cs-sol-link:focus-visible .cs-go,.cs-card-link:hover .cs-go,.cs-card-link:focus-visible .cs-go{opacity:1;transform:none}
.cs-sol-link[aria-current],.cs-card-link[aria-current]{background:linear-gradient(90deg,#e0c28a1f,#e0c28a05);border-color:#e0c28a66}
.cs-sol-link[aria-current] strong::after,.cs-card-link[aria-current] strong::after{content:'';display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--gold);margin-left:8px;vertical-align:2px;box-shadow:0 0 0 4px #e0c28a26}
.cs-nav .mega-panel a::after{content:none!important;display:none!important}
.cs-sol-link:focus-visible,.cs-card-link:focus-visible,.cs-chip:focus-visible,.cs-pill-link:focus-visible,.cs-text-link:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.cs-en{font-style:normal;font-size:10px;letter-spacing:.08em;border:1px solid #ffffff40;border-radius:4px;padding:1px 4px;margin-left:8px;vertical-align:2px;color:#b9c7cf}
.cs-pane-in .cs-sol-link{animation:cs-rise .45s var(--cs-ease) both}
.cs-pane-in .cs-sol-link:nth-child(2){animation-delay:.03s}.cs-pane-in .cs-sol-link:nth-child(3){animation-delay:.06s}.cs-pane-in .cs-sol-link:nth-child(4){animation-delay:.09s}.cs-pane-in .cs-sol-link:nth-child(5){animation-delay:.12s}.cs-pane-in .cs-sol-link:nth-child(6){animation-delay:.15s}
@keyframes cs-rise{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}

.cs-sol-feature{position:relative;margin:14px;padding:22px 20px;border-radius:14px;overflow:hidden;background:linear-gradient(160deg,#e0c28a26,#e0c28a08 60%),#0f2232;border:1px solid #e0c28a33;display:flex;flex-direction:column;align-items:flex-start}
.cs-sol-elephant{width:150px;height:auto;margin:-6px auto 6px;filter:drop-shadow(0 18px 24px #0008);transform:translate3d(var(--px,0),var(--py,0),0);transition:transform .6s var(--cs-ease);animation:cs-float 6s ease-in-out infinite}
@keyframes cs-float{50%{translate:0 -6px}}
.cs-kicker{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);margin:0 0 6px}
.cs-sol-feature-title{font-size:20px;font-weight:600;letter-spacing:-.02em;margin:0 0 8px;color:#fff}
.cs-sol-feature-text{font-size:13px;line-height:1.55;color:var(--cs-soft);margin:0 0 16px}
.cs-pill-link{white-space:nowrap;display:inline-flex;align-items:center;gap:10px;background:var(--gold);color:var(--navy)!important;font-weight:600;font-size:13px;padding:10px 14px;border-radius:6px;text-decoration:none!important;transition:gap .3s var(--cs-ease),background-color .25s}
.cs-pill-link svg{width:16px;height:16px}
.cs-pill-link:hover{gap:14px;background:#ecd5a9}
.cs-text-link{display:inline-block;margin-top:12px;font-size:13px;color:#e4ebee!important;text-decoration:underline;text-decoration-color:#e0c28a80;text-underline-offset:5px}
.cs-text-link:hover{color:var(--gold)!important}
.cs-text-link[aria-current]{color:var(--gold)!important}

/* Compact panels (Resources, Company) */
.cs-compact{display:grid;grid-template-columns:minmax(0,1fr) 230px;gap:0}
.cs-card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;padding:18px}
.cs-card-link{position:relative;display:block;padding:16px 36px 16px 16px;border-radius:12px;border:1px solid transparent;color:#e9eef1;text-decoration:none!important;transition:background-color .25s,border-color .25s}
.cs-card-link strong{display:block;font-size:15px;font-weight:600}
.cs-card-link small{display:block;font-size:13px;line-height:1.45;color:var(--cs-soft);margin-top:4px}
.cs-card-link:hover,.cs-card-link:focus-visible{background:#ffffff0d;border-color:#e0c28a40}
.cs-roadmap,.cs-company-note{padding:22px 20px;border-left:1px solid #ffffff14}
.cs-roadmap-text{font-size:13px;color:var(--cs-soft);margin:0 0 12px;line-height:1.5}
.cs-chips{display:flex;flex-wrap:wrap;gap:6px}
.cs-chip{font-size:12px;padding:6px 10px;border-radius:999px;border:1px solid #ffffff26;color:#dfe7eb;text-decoration:none!important;transition:border-color .25s,color .25s,background-color .25s}
.cs-chip:hover,.cs-chip[aria-current]{border-color:var(--gold);color:var(--gold);background:#e0c28a12}
.cs-company-note{display:flex;flex-direction:column;justify-content:center;gap:10px}
.cs-company-note img{width:56px;height:56px;animation:cs-float 6s ease-in-out infinite}
.cs-company-note p{font-size:20px;line-height:1.25;letter-spacing:-.02em;margin:0;color:#fff}
.cs-company-note small{color:#8fa3ad;font-size:12px}

/* ---------- Mobile navigation ---------- */
.cs-mobile-nav .mobile-group>summary{display:flex;justify-content:space-between;align-items:center;list-style:none}
.cs-mobile-nav .mobile-group>summary::-webkit-details-marker{display:none}
.cs-mobile-nav .mobile-group>summary::after{content:'';width:14px;height:14px;flex:none;background:linear-gradient(var(--gold),var(--gold)) center/14px 1.5px no-repeat,linear-gradient(var(--gold),var(--gold)) center/1.5px 14px no-repeat;transition:transform .3s var(--cs-ease)}
.cs-mobile-nav .mobile-group[open]>summary::after{transform:rotate(45deg)}
.cs-mobile-nav .mobile-group a{border-radius:8px}
.cs-mobile-nav .mobile-group a[aria-current]{color:var(--gold);background:#e0c28a14;font-weight:600}
.cs-mobile-nav .mobile-group a[aria-current]::before{content:'';display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--gold);margin-right:10px;vertical-align:2px}
.cs-mobile-nav .mobile-group:has(a[aria-current])>summary{color:var(--gold)}

/* ---------- Buttons: one consistent, animated style ---------- */
.cs-rd .btn{position:relative;isolation:isolate;overflow:hidden;border-radius:6px;gap:14px;justify-content:center;letter-spacing:-.005em;box-shadow:none;transition:color .35s var(--cs-ease),border-color .35s var(--cs-ease),transform .35s var(--cs-ease),box-shadow .35s var(--cs-ease)}
.cs-rd .btn::before{content:'';position:absolute;inset:0;z-index:-1;background:var(--gold);transform:scaleX(0);transform-origin:right;transition:transform .45s var(--cs-ease)}
.cs-rd .btn:not(:has(svg))::after{content:'';width:16px;height:16px;flex:none;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center/contain no-repeat;transition:transform .35s var(--cs-ease)}
.cs-rd .btn svg{transition:transform .35s var(--cs-ease)}
.cs-rd .btn:hover{background:var(--navy);border-color:var(--gold);color:var(--navy);box-shadow:0 12px 28px #0d1b2833;transform:translateY(-1px)}
.cs-rd .btn:hover::before{transform:scaleX(1);transform-origin:left}
.cs-rd .btn:hover::after,.cs-rd .btn:hover svg{transform:translateX(4px)}
.cs-rd .btn:active{transform:translateY(0)}
.cs-rd .btn.light{background:var(--gold);border-color:var(--gold);color:var(--navy)}
.cs-rd .btn.light::before{background:#fff}
.cs-rd .btn.light:hover{color:var(--navy);border-color:#fff}
.cs-rd .btn.outline{background:transparent;color:var(--ink);border-color:#9fabad}
.cs-rd .btn.outline::before{background:var(--navy)}
.cs-rd .btn.outline:hover{color:var(--paper);border-color:var(--navy)}
.cs-rd .header-right .btn.small{border-radius:6px}
.cs-rd .header-right .btn.small:hover{box-shadow:none;transform:none}
@media (prefers-reduced-motion:reduce){.cs-rd .btn,.cs-rd .btn::before,.cs-rd .btn::after,.cs-sol-elephant,.cs-company-note img,.cs-pane-in .cs-sol-link{transition:none!important;animation:none!important}}

@media (max-width:1100px){.cs-nav{display:none!important}}

/* Menu fixes: site.css `.navigation a{padding:12px 0}` outranks the class rules above. */
.cs-nav .mega-panel.cs-panel--compact{width:min(840px,calc(100vw - 40px))}
.cs-nav .mega-panel a.cs-sol-link{padding:14px 38px 14px 16px}
.cs-nav .mega-panel a.cs-card-link{padding:16px 36px 16px 16px}
.cs-nav .mega-panel a.cs-chip{padding:6px 11px;white-space:nowrap}
.cs-nav .mega-panel a.cs-pill-link{padding:11px 16px;white-space:nowrap}
.cs-nav .mega-panel a.cs-text-link{padding:0}
.cs-card-grid{align-content:start}
.cs-sol-feature .cs-pill-link{align-self:flex-start}
.cs-nav .cs-sol{grid-template-columns:260px minmax(0,1fr) 280px}
/* A text link inside a sentence stays inline instead of breaking the paragraph. */
.cs-rd .prose p .text-link,.cs-rd main p>.text-link:not(:only-child){display:inline;padding:0;font-size:inherit;text-decoration:underline;text-decoration-color:#825b3180;text-underline-offset:3px;border:0}

/* ---------- Phones: floating buttons stay clear of content ---------- */
/* The chat bubble (bottom right) stays on screen at the end of every page; keep the footer's last row above it. */
@media (max-width:760px){
  .cornerstone-footer .footer-bottom{padding-bottom:calc(88px + env(safe-area-inset-bottom,0px))}
}
@media (max-width:760px){
  .page-utilities{gap:6px}
  .page-utilities a{min-height:44px}
  .page-utilities .utility-contact{padding:8px 16px;gap:12px}
  .page-utilities .utility-top{width:44px}
}
/* Phones and tablets: the pill steps aside while reading down (cs-redesign.js section 5). */
@media (max-width:1100px){
  .page-utilities{transition:transform .4s var(--cs-ease),opacity .25s}
  html.cs-util-away .page-utilities:not(:focus-within){transform:translateY(calc(100% + 32px));opacity:0;pointer-events:none}
}
@media (max-width:1100px) and (prefers-reduced-motion:reduce){.page-utilities{transition:none}}
/* rd10: Solutions menu side column with quick links; category counts removed */
.cs-sol-side{display:flex;flex-direction:column;border-right:1px solid #ffffff14;min-width:0}
.cs-sol-side .cs-sol-tabs{border-right:0;padding-bottom:8px}
.cs-sol-tab{grid-template-columns:30px 1fr}
.cs-quick{margin:auto 18px 18px;padding:14px 4px 0;border-top:1px solid #ffffff14;display:grid;gap:2px}
.cs-quick-t{margin:0 0 6px 10px;font-size:11px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--gold)}
.cs-nav .mega-panel .cs-quick a,.cs-quick a{display:block;padding:8px 10px;border-radius:10px;color:#e9eef1;font-size:14px;font-weight:600;line-height:1.3;text-decoration:none!important;transition:background-color .25s}
.cs-quick a small{display:block;margin-top:2px;font-size:12px;font-weight:400;color:#93a7b1}
.cs-quick a:hover,.cs-quick a:focus-visible{background:#ffffff0d}
.cs-quick a:focus-visible{outline:2px solid var(--gold);outline-offset:-2px}
