/* =====================================================================
   Stage Analytics v2 (2026-10-30): custom HTML sections built by build/v2.py.
   Stage's own section types: split navy hero + deliverables strip, editorial statement, filterable service table,
   lifecycle Gantt chart, comparison spec table, principles quadrant, expanding industry columns, question viewer,
   documentation-style service pages. White + soft slate, navy, one blue accent. Panels 12px, controls 8px.
   ===================================================================== */
:root {
  --s-ink: #0F172A; --s-ink-2: #1E293B; --s-text: #475569; --s-muted: #64748B;
  --s-line: #E2E8F0; --s-line-2: #CBD5E1; --s-soft: #F4F6FA; --s-blue: #1E5BFF; --s-blue-d: #1749D6;
  --s-blue-soft: #EAF0FF; --s-blue-l: #8FB0FF; --s-r: 12px; --s-r-ctl: 8px;
  --s-ease: cubic-bezier(.2, .7, .2, 1);
  --s-shadow: 0 18px 40px -24px rgba(15, 23, 42, .35);
}
.s2 > .elementor-container { max-width: none !important; }
.s2 .elementor-column > .elementor-widget-wrap { padding: 0 !important; }
.elementor-section.s2 .elementor-widget { margin-bottom: 0 !important; }
.s2w { max-width: 1240px; margin: 0 auto; padding: 0 24px; }
.s2s { padding: clamp(64px, 7.5vw, 104px) 0; }
.s2alt { background: var(--s-soft); }
.s2 p { line-height: 1.65; }
.s2 img { display: block; width: 100%; height: 100%; object-fit: cover; }
.s2 ul, .s2 ol { list-style: none; margin: 0; padding: 0; }
.s2 h2, .s2 h3 { font-weight: 600; }
.s3h { font-size: clamp(30px, 3vw, 42px); line-height: 1.14; letter-spacing: -0.02em; color: var(--s-ink); margin: 0 0 16px; }
.s3title { max-width: 760px; margin-bottom: 44px; }
.s3title .s3h { margin-bottom: 14px; }
.s3title p { margin: 0; font-size: 17.5px; }
.s3title--light .s3h { color: #fff; }
.s3title--light p { color: #A9B6CC; }
.s3title--row { max-width: none; display: flex; justify-content: space-between; align-items: flex-end; gap: 24px; }
.s3ic { display: grid; place-items: center; flex: none; width: 46px; height: 46px; border-radius: var(--s-r-ctl); background: var(--s-blue-soft); color: var(--s-blue); transition: background-color .3s ease, color .3s ease; }
.s3ic--lg { width: 56px; height: 56px; }

/* buttons, links, tags */
.s3btn { position: relative; display: inline-flex; align-items: center; justify-content: center; padding: 15px 26px; border-radius: var(--s-r-ctl); background: var(--s-blue); border: 1px solid var(--s-blue); color: #fff !important; font-weight: 600; font-size: 15.5px; line-height: 1; overflow: hidden; isolation: isolate; transition: border-color .25s ease, color .25s ease; }
.s3btn::before { content: ""; position: absolute; inset: 0; z-index: -1; background: var(--s-ink); transform: translateY(101%); transition: transform .35s var(--s-ease); }
.s3btn:hover::before { transform: none; }
.s3btn:hover { border-color: var(--s-ink); }
.s3btn--ghost { background: transparent; border-color: rgba(255, 255, 255, .4); }
.s3btn--ghost::before { background: #fff; }
.s3btn--ghost:hover { color: var(--s-ink) !important; border-color: #fff; }
.s3btn--white { background: #fff; border-color: #fff; color: var(--s-blue) !important; }
.s3btn--white::before { background: var(--s-ink); }
.s3btn--white:hover { color: #fff !important; border-color: var(--s-ink); }
.s3link { display: inline-flex; align-items: center; gap: 8px; color: var(--s-blue) !important; font-weight: 600; font-size: 15.5px; background: linear-gradient(currentColor, currentColor) 0 100% / 0 2px no-repeat; padding-bottom: 3px; transition: background-size .35s var(--s-ease); }
.s3link::after { content: "\2192"; transition: transform .25s ease; }
.s3link:hover { background-size: 100% 2px; }
.s3link:hover::after { transform: translateX(4px); }
.s3tags { display: flex; flex-wrap: wrap; gap: 6px; }
.s3tags li { padding: 5px 10px; border-radius: 6px; background: rgba(255, 255, 255, .14); color: #fff; font-size: 13px; font-weight: 500; }

/* motion primitives: s3-rv (fade-up), s3-up (hero load), s3-wipe (image reveal), s3-fill (statement colour fill) */
.s2-js .s3-rv { opacity: 0; transform: translateY(22px); transition: opacity .8s ease, transform .8s var(--s-ease); }
.s2-js .s3-rv[data-d="1"] { transition-delay: .1s; } .s2-js .s3-rv[data-d="2"] { transition-delay: .2s; }
.s2-js .s3-rv.is-in { opacity: 1; transform: none; }
.s3-up { animation: s3up .9s var(--s-ease) both; animation-delay: var(--d, 0s); }
@keyframes s3up { from { opacity: 0; transform: translateY(26px); } to { opacity: 1; transform: none; } }
.s3-wipe { position: relative; }
.s2-js .s3-wipe::before { content: ""; position: absolute; inset: 0; z-index: 2; background: var(--s-soft); transform-origin: right center; transition: transform 1.1s var(--s-ease); }
.s2alt .s3-wipe::before { background: var(--s-soft); }
.s2-js .s3-wipe.is-in::before { transform: scaleX(0); }
.s2-js .s3-wipe img { transform: scale(1.1); transition: transform 1.6s var(--s-ease); }
.s2-js .s3-wipe.is-in img { transform: none; }
.s3-fill { color: var(--s-ink); }
.s3-fill .w { transition: color .35s ease; }
.s2-js .s3-fill.is-split .w { color: rgba(15, 23, 42, .2); }
.s2-js .s3-fill.is-split .w.on { color: var(--s-ink); }
.s2-js .s3-fill.is-split a .w { color: rgba(30, 91, 255, .3); }
.s2-js .s3-fill.is-split a .w.on { color: var(--s-blue); }
.s3-fill a { color: var(--s-blue); text-decoration: underline; text-decoration-color: rgba(30, 91, 255, .35); text-underline-offset: 6px; text-decoration-thickness: 2px; transition: text-decoration-color .25s ease; }
.s3-fill a:hover { text-decoration-color: var(--s-blue); }

/* crumbs */
.s3crumbs ol { display: flex; flex-wrap: wrap; gap: 6px; font-size: 14px; color: #94A3B8; margin-bottom: 20px !important; }
.s3crumbs li + li::before { content: "/"; margin-right: 6px; color: #475569; }
.s3crumbs a { color: #CBD5E1; }
.s3crumbs a:hover { color: #fff; }
.s3crumbs [aria-current] { color: #fff; }

/* hero: navy panel left, full-height photo right */
.s3hero { position: relative; background: var(--s-ink); }
.s3hero__grid { display: grid; grid-template-columns: 1fr 1fr; min-height: clamp(460px, 44vw, 600px); }
.s3hero--home .s3hero__grid { min-height: clamp(540px, 50vw, 700px); }
.s3hero--inner .s3hero__grid { min-height: clamp(420px, 38vw, 520px); }
.s3hero--slim .s3hero__grid { min-height: 320px; grid-template-columns: 7fr 5fr; }
.s3hero__panel { display: flex; align-items: center; justify-content: flex-end; padding: clamp(56px, 6vw, 88px) clamp(32px, 4.5vw, 72px) clamp(56px, 6vw, 88px) 24px; }
.s3hero--strip .s3hero__panel { padding-bottom: clamp(96px, 9vw, 128px); }
.s3hero__in { width: 100%; max-width: 572px; }
.s3hero__title { font-size: clamp(34px, 3.4vw, 50px); line-height: 1.08; letter-spacing: -0.025em; color: #fff; margin: 0 0 20px; }
.s3hero--home .s3hero__title { font-size: clamp(38px, 4vw, 58px); }
.s3hero__lead { font-size: 18px; color: #B6C2D6; margin: 0 0 32px; }
.s3hero--slim .s3hero__lead { margin: 0; }
.s3hero__acts { display: flex; flex-wrap: wrap; gap: 12px; }
.s3hero__acts:empty { display: none; }
.s3hero__group { display: inline-flex; align-items: center; gap: 8px; margin-bottom: 16px; padding: 6px 12px 6px 10px; border-radius: var(--s-r-ctl); background: rgba(143, 176, 255, .14); color: var(--s-blue-l) !important; font-size: 14px; font-weight: 600; transition: background-color .25s ease; }
.s3hero__group:hover { background: rgba(143, 176, 255, .24); }
.s3hero__photo { position: relative; overflow: hidden; }
.s3hero__photo::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(15, 23, 42, .35), rgba(15, 23, 42, 0) 40%); }
.s3hero__photo img { position: absolute; inset: 0; }
/* navy cover slides off the photo once it has loaded (stage-v2.js adds .is-in); transitions, not keyframes */
.s2-js .s3hero__photo::before { content: ""; position: absolute; inset: 0; z-index: 2; background: var(--s-ink); transform-origin: right center; transition: transform 1.1s var(--s-ease) .1s; }
.s2-js .s3hero__photo img { transform: scale(1.12); transition: transform 1.8s var(--s-ease); }
.s2-js .s3hero__photo.is-in::before { transform: scaleX(0); }
.s2-js .s3hero__photo.is-in img { transform: none; }
.s3strip { position: relative; z-index: 2; display: flex; align-items: center; gap: 18px 28px; margin-top: -56px; padding: 22px 28px; border-radius: var(--s-r); background: #fff; box-shadow: 0 24px 50px -28px rgba(15, 23, 42, .45); }
.s3strip__label { flex: none; font-size: 14px; font-weight: 600; color: var(--s-ink); padding-right: 24px; border-right: 1px solid var(--s-line); }
.s3strip ul { display: flex; flex-wrap: wrap; gap: 8px 22px; }
.s3strip li { display: inline-flex; align-items: center; gap: 7px; font-size: 15px; font-weight: 600; color: var(--s-ink-2); animation: s3tick .5s ease both; animation-delay: calc(.9s + var(--i) * .12s); }
.s3strip li svg { color: var(--s-blue); }
@keyframes s3tick { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }

/* editorial statement */
.s3state__grid { display: grid; grid-template-columns: 3fr 9fr; gap: clamp(28px, 4vw, 64px); align-items: start; }
.s3state__h { font-size: 15px; font-weight: 600; letter-spacing: .02em; color: var(--s-blue); margin: 10px 0 0; text-transform: none; }
.s3state__txt { font-size: clamp(24px, 2.4vw, 34px); line-height: 1.38; letter-spacing: -0.015em; font-weight: 500; margin: 0 0 28px; }
.s3state__txt--intro { max-width: 980px; margin-bottom: clamp(48px, 6vw, 80px); }
.s3state__sub { font-size: 17.5px; max-width: 820px; margin: 0; }

/* service table */
.s3legend { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 22px !important; }
.s3leg { all: unset; box-sizing: border-box; display: inline-flex; align-items: center; gap: 8px; padding: 10px 14px; border-radius: var(--s-r-ctl); border: 1px solid var(--s-line); background: #fff; color: var(--s-ink); font-size: 14.5px; font-weight: 600; cursor: pointer; transition: background-color .25s ease, border-color .25s ease, color .25s ease; }
.s3leg svg { color: var(--s-blue); transition: color .25s ease; }
.s3leg:hover { border-color: var(--s-blue); }
.s3leg.is-on { background: var(--s-ink); border-color: var(--s-ink); color: #fff; }
.s3leg.is-on svg { color: var(--s-blue-l); }
.s3leg:focus-visible { outline: 2px solid var(--s-blue); outline-offset: 2px; }
.s3tiles { display: grid; grid-template-columns: repeat(6, 1fr); gap: 10px; }
.s3tile a { position: relative; display: flex; flex-direction: column; gap: 10px; height: 100%; min-height: 132px; padding: 16px 16px 14px; border-radius: var(--s-r); border: 1px solid var(--s-line); background: #fff; color: var(--s-ink) !important; transition: border-color .3s ease, background-color .3s ease, transform .3s var(--s-ease), box-shadow .3s ease, opacity .35s ease, filter .35s ease; }
.s3tile__ic { display: grid; place-items: center; width: 34px; height: 34px; border-radius: var(--s-r-ctl); background: var(--s-blue-soft); color: var(--s-blue); transition: background-color .3s ease, color .3s ease; }
.s3tile__name { font-size: 15.5px; font-weight: 600; line-height: 1.3; }
.s3tile__g { margin-top: auto; font-size: 12.5px; font-weight: 500; color: var(--s-muted); }
.s3tile__go { position: absolute; right: 14px; bottom: 13px; color: var(--s-blue); opacity: 0; transform: translateX(-6px); transition: opacity .25s ease, transform .25s ease; }
.s3tile a:hover { border-color: var(--s-blue); transform: translateY(-4px); box-shadow: var(--s-shadow); }
.s3tile a:hover .s3tile__ic { background: var(--s-blue); color: #fff; }
.s3tile a:hover .s3tile__go { opacity: 1; transform: none; }
.s3tiles.is-filtered .s3tile:not(.is-match) a { opacity: .28; filter: grayscale(1); transform: scale(.97); }
.s3tiles.is-filtered .s3tile.is-match a { border-color: var(--s-blue); background: var(--s-blue-soft); }
.s3tiles.is-filtered .s3tile.is-match .s3tile__ic { background: var(--s-blue); color: #fff; }
.s2-js .s3tile { opacity: 0; transform: translateY(16px) scale(.98); transition: opacity .55s ease, transform .55s var(--s-ease); transition-delay: calc(var(--i) * 28ms); }
.s2-js .s3tiles.is-in .s3tile { opacity: 1; transform: none; }

/* lifecycle Gantt */
.s3dark { background: var(--s-ink); }
.s3gantt__chart { --cols: 12; padding: 26px; border-radius: var(--s-r); background: var(--s-ink-2); border: 1px solid #2C3A52; }
.s3gantt__axis, .s3gantt__row { display: grid; grid-template-columns: 210px 1fr; align-items: center; }
.s3gantt__axis { position: relative; margin-bottom: 14px; padding-bottom: 12px; border-bottom: 1px solid #334155; font-size: 13px; font-weight: 600; color: var(--s-blue-l); }
.s3gantt__axis span:not(:first-child) { grid-column: 2; grid-row: 1; margin-left: calc(var(--s) / var(--cols) * 100%); width: calc(var(--w) / var(--cols) * 100%); padding-left: 10px; border-left: 1px solid #475569; }
.s3gantt__row { padding: 8px 0; border-bottom: 1px dashed rgba(71, 85, 105, .45); }
.s3gantt__row:last-child { border-bottom: 0; }
.s3gantt__label { font-size: 15.5px; font-weight: 600; color: #fff; padding-right: 16px; }
.s3gantt__track { position: relative; height: 44px; }
.s3gantt__bar { position: absolute; top: 4px; bottom: 4px; left: calc(var(--s) / var(--cols) * 100%); width: calc(var(--w) / var(--cols) * 100%); display: flex; align-items: center; padding: 0 14px; border-radius: var(--s-r-ctl); background: linear-gradient(90deg, var(--s-blue), #4F7DFF); color: #fff; font-size: 13.5px; font-weight: 500; white-space: nowrap; overflow: hidden; transform-origin: left center; transition: transform .9s var(--s-ease), box-shadow .25s ease, filter .25s ease; transition-delay: calc(.15s + var(--i) * .1s); }
.s3gantt__bar span { overflow: hidden; text-overflow: ellipsis; transition: opacity .4s ease; transition-delay: calc(.6s + var(--i) * .1s); }
.s2-js .s3gantt__bar { transform: scaleX(0); }
.s2-js .s3gantt__bar span { opacity: 0; }
.s3gantt__chart.is-in .s3gantt__bar { transform: none; }
.s3gantt__chart.is-in .s3gantt__bar span { opacity: 1; }
.s3gantt__row:hover .s3gantt__bar { box-shadow: 0 0 0 4px rgba(30, 91, 255, .28); filter: brightness(1.1); }

/* comparison spec table */
.s3spec__table { border-radius: var(--s-r); border: 1px solid var(--s-line); overflow: hidden; background: #fff; }
.s3spec__row { display: grid; grid-template-columns: repeat(3, 1fr); }
.s3spec__row + .s3spec__row { border-top: 1px solid var(--s-line); }
.s3spec__head, .s3spec__cell { padding: 22px 26px; transition: background-color .3s ease; }
.s3spec__head + .s3spec__head, .s3spec__cell + .s3spec__cell { border-left: 1px solid var(--s-line); }
.s3spec__head { display: flex; align-items: center; gap: 14px; background: var(--s-soft); }
.s3spec__head h3 { margin: 0; font-size: 19px; color: var(--s-ink); }
.s3spec__k { display: block; margin-bottom: 8px; font-size: 12.5px; font-weight: 600; letter-spacing: .02em; color: var(--s-muted); }
.s3spec__cell { font-size: 15.5px; color: var(--s-text); }
.s3spec__cell ul { display: grid; gap: 7px; }
.s3spec__cell li { display: flex; align-items: center; gap: 8px; color: var(--s-ink); font-weight: 500; }
.s3spec__cell li svg { color: var(--s-blue); flex: none; }
.s3spec__cell--go { padding-top: 16px; padding-bottom: 18px; }
.s3spec__table[data-col="0"] .s3spec__row > :nth-child(1), .s3spec__table[data-col="1"] .s3spec__row > :nth-child(2), .s3spec__table[data-col="2"] .s3spec__row > :nth-child(3) { background: var(--s-blue-soft); }
.s3spec__table[data-col="0"] .s3spec__row > .s3spec__head:nth-child(1) .s3ic, .s3spec__table[data-col="1"] .s3spec__row > .s3spec__head:nth-child(2) .s3ic, .s3spec__table[data-col="2"] .s3spec__row > .s3spec__head:nth-child(3) .s3ic { background: var(--s-blue); color: #fff; }

/* principles quadrant */
.s3quad__grid { display: grid; grid-template-columns: 4fr 8fr; gap: clamp(28px, 5vw, 72px); align-items: center; }
.s3quad__box { position: relative; }
.s3quad__box ul { display: grid; grid-template-columns: 1fr 1fr; }
.s3quad__c { padding: clamp(26px, 3vw, 40px); border-radius: var(--s-r); transition: background-color .35s ease, box-shadow .35s ease; }
.s3quad__c:nth-child(1), .s3quad__c:nth-child(3) { padding-left: 0; }
.s3quad__c:nth-child(1), .s3quad__c:nth-child(2) { padding-top: 0; }
.s3quad__c h3 { margin: 20px 0 8px; font-size: 20px; color: var(--s-ink); }
.s3quad__c p { margin: 0; font-size: 15.5px; }
.s3quad__c:hover { background: #fff; box-shadow: var(--s-shadow); padding-left: clamp(26px, 3vw, 40px); padding-top: clamp(26px, 3vw, 40px); }
.s3quad__c:hover .s3ic { background: var(--s-blue); color: #fff; }
.s3quad__x, .s3quad__y { position: absolute; background: var(--s-line-2); pointer-events: none; transition: transform 1.2s var(--s-ease) .2s; }
.s3quad__x { left: 0; right: 0; top: 50%; height: 1px; transform-origin: left; }
.s3quad__y { top: 0; bottom: 0; left: 50%; width: 1px; transform-origin: top; }
.s2-js .s3quad__x { transform: scaleX(0); } .s2-js .s3quad__y { transform: scaleY(0); }
.s3quad__box.is-in .s3quad__x, .s3quad__box.is-in .s3quad__y { transform: none; }
.s3quad__core { position: absolute; left: 50%; top: 50%; z-index: 1; padding: 8px 14px; border-radius: 999px; background: var(--s-ink); color: #fff; font-size: 13px; font-weight: 600; transform: translate(-50%, -50%) scale(1); transition: transform .6s var(--s-ease) .9s, opacity .6s ease .9s; pointer-events: none; }
.s2-js .s3quad__core { opacity: 0; transform: translate(-50%, -50%) scale(.6); }
.s3quad__box.is-in .s3quad__core { opacity: 1; transform: translate(-50%, -50%) scale(1); }

/* expanding industry columns */
.s3exp__row { display: flex; gap: 12px; height: clamp(380px, 34vw, 460px); }
.s3exp__c { position: relative; flex: 1; min-width: 0; border-radius: var(--s-r); overflow: hidden; cursor: pointer; outline: none; transition: flex-grow .7s var(--s-ease); }
.s3exp__c.is-on { flex-grow: 2.6; }
.s3exp__c img { position: absolute; inset: 0; transition: transform 1s var(--s-ease); }
.s3exp__c::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(15, 23, 42, .05) 20%, rgba(15, 23, 42, .88) 100%); transition: background-color .4s ease; }
.s3exp__c.is-on img { transform: scale(1.04); }
.s3exp__c:focus-visible { box-shadow: 0 0 0 3px var(--s-blue); }
.s3exp__body { position: absolute; left: 0; right: 0; bottom: 0; z-index: 1; padding: 22px; color: #fff; }
.s3exp__body h3 { margin: 0; font-size: 21px; color: #fff; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.s3exp__more { display: grid; grid-template-rows: 0fr; opacity: 0; transition: grid-template-rows .6s var(--s-ease), opacity .4s ease; }
.s3exp__more > * { min-height: 0; overflow: hidden; }
.s3exp__more { gap: 0; }
.s3exp__more p { margin: 10px 0 12px; font-size: 15px; line-height: 1.55; color: #E2E8F0; max-width: 520px; }
.s3exp__c.is-on .s3exp__more { grid-template-rows: auto auto; opacity: 1; transition-delay: .25s; }
.s3exp__c.is-on h3 { white-space: normal; }

/* question viewer */
.s3qa__grid { display: grid; grid-template-columns: 5fr 7fr; gap: 20px; align-items: start; }
.s3qa__list { display: grid; gap: 8px; }
.s3qa__q { all: unset; box-sizing: border-box; display: flex; width: 100%; align-items: center; justify-content: space-between; gap: 14px; padding: 16px 18px; border-radius: var(--s-r-ctl); border: 1px solid var(--s-line); background: #fff; color: var(--s-ink); font-size: 16px; font-weight: 600; line-height: 1.4; cursor: pointer; transition: background-color .25s ease, border-color .25s ease, color .25s ease; }
.s3qa__q svg { flex: none; color: var(--s-blue); transition: transform .25s ease, color .25s ease; }
.s3qa__q:hover { border-color: var(--s-blue); }
.s3qa__q:hover svg { transform: translateX(3px); }
.s3qa__q.is-on { background: var(--s-ink); border-color: var(--s-ink); color: #fff; }
.s3qa__q.is-on svg { color: var(--s-blue-l); transform: translateX(3px); }
.s3qa__q:focus-visible { outline: 2px solid var(--s-blue); outline-offset: 2px; }
.s3qa__panel { position: sticky; top: 100px; padding: clamp(26px, 3vw, 40px); border-radius: var(--s-r); background: #fff; border: 1px solid var(--s-line); box-shadow: var(--s-shadow); }
.s3qa__a h3 { margin: 0 0 14px; font-size: clamp(21px, 1.9vw, 26px); line-height: 1.3; color: var(--s-ink); }
.s3qa__a p { margin: 0; font-size: 18px; line-height: 1.6; color: var(--s-ink-2); }
.s3qa__a + .s3qa__a { margin-top: 26px; padding-top: 26px; border-top: 1px solid var(--s-line); }
.s2-js .s3qa__a { display: none; }
.s2-js .s3qa__a + .s3qa__a { margin-top: 0; padding-top: 0; border-top: 0; }
.s2-js .s3qa__a.is-on { display: block; animation: s3fade .45s var(--s-ease); }
@keyframes s3fade { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }
.s3qa__more { margin: 26px 0 0; padding-top: 18px; border-top: 1px solid var(--s-line); font-size: 15px; color: var(--s-muted); }
.s3qa__more a { color: var(--s-blue); font-weight: 600; }

/* closing band */
.s3cta { padding: clamp(64px, 7vw, 96px) 0; background: var(--s-blue); }
.s3cta__grid { display: grid; grid-template-columns: 7fr 5fr; gap: clamp(28px, 5vw, 72px); align-items: center; }
.s3cta__text h2 { margin: 0 0 14px; font-size: clamp(30px, 3vw, 42px); line-height: 1.12; color: #fff; }
.s3cta__text p { margin: 0 0 28px; color: rgba(255, 255, 255, .9); font-size: 18px; max-width: 600px; }
.s3cta__acts { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 24px; }
.s3cta__mail { display: inline-flex; align-items: center; gap: 10px; color: #fff !important; font-weight: 500; }
.s3cta__mail:hover { text-decoration: underline; text-underline-offset: 4px; }
.s3cta__card { padding: 24px; border-radius: var(--s-r); background: #fff; box-shadow: 0 30px 60px -30px rgba(15, 23, 42, .5); }
.s3cta__h { margin: 0 0 12px; font-size: 14px; font-weight: 600; color: var(--s-muted); }
.s3cta__card ul { display: grid; }
.s3cta__card li + li { border-top: 1px solid var(--s-line); }
.s3cta__card a { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 14px 4px; color: var(--s-ink) !important; font-size: 16.5px; font-weight: 600; transition: color .2s ease, padding .25s var(--s-ease); }
.s3cta__card a svg { color: var(--s-blue); transition: transform .25s ease; }
.s3cta__card a:hover { color: var(--s-blue) !important; padding-left: 10px; }
.s3cta__card a:hover svg { transform: translateX(4px); }

/* about: mission + vision statements, practice-area rows */
.s3mv__grid { display: grid; grid-template-columns: 1fr 1fr; }
.s3mv__q, .s2 blockquote.s3mv__q { margin: 0; padding: 8px clamp(24px, 4vw, 56px) 8px 0; border: 0; background: none !important; box-shadow: none; border-radius: 0; }
.s3mv__q::before, .s3mv__q::after { display: none !important; }
.s3mv__q + .s3mv__q { padding: 8px 0 8px clamp(24px, 4vw, 56px); border-left: 1px solid var(--s-line-2); }
.s3mv__q span { display: block; margin-bottom: 14px; font-size: 14px; font-weight: 600; color: var(--s-blue); }
.s3mv__q p { margin: 0; font-size: clamp(24px, 2.3vw, 32px); line-height: 1.32; letter-spacing: -0.015em; color: var(--s-ink); font-weight: 500; }
.s3areas__list { border-top: 1px solid var(--s-line); }
.s3area { display: grid; grid-template-columns: 46px 4fr 6fr 120px; gap: 24px; align-items: center; padding: 22px 8px; border-bottom: 1px solid var(--s-line); color: var(--s-ink) !important; transition: background-color .3s ease, padding .3s var(--s-ease); }
.s3area__t { font-size: 19px; font-weight: 600; }
.s3area__d { font-size: 15px; line-height: 1.55; color: var(--s-text); }
.s3area__n { display: inline-flex; align-items: center; justify-content: flex-end; gap: 8px; font-size: 14.5px; font-weight: 600; color: var(--s-blue); }
.s3area__n svg { transition: transform .25s ease; }
.s3area:hover { background: var(--s-soft); padding-left: 18px; padding-right: 18px; }
.s3area:hover .s3ic { background: var(--s-blue); color: #fff; }
.s3area:hover .s3area__n svg { transform: translateX(4px); }

/* services hub groups */
.s3grp { scroll-margin-top: 80px; }
.s3grp__grid { display: grid; grid-template-columns: 4fr 8fr; gap: clamp(28px, 5vw, 64px); align-items: start; }
.s3grp__side { position: sticky; top: 110px; }
.s3grp__side .s3ic { margin-bottom: 20px; }
.s3grp__side p { margin: 0 0 22px; }
.s3grp__img { aspect-ratio: 16 / 10; border-radius: var(--s-r); overflow: hidden; }
.s3grp__rows, .s3rows { border-top: 1px solid var(--s-line-2); }
.s3row { display: grid; grid-template-columns: 5fr 7fr 36px; gap: 20px; align-items: center; padding: 20px 6px; border-bottom: 1px solid var(--s-line-2); color: var(--s-ink) !important; transition: padding .3s var(--s-ease), background-color .3s ease; }
.s3row__t { font-size: 18px; font-weight: 600; line-height: 1.3; }
.s3row__d { font-size: 15px; line-height: 1.55; color: var(--s-text); }
.s3row__go { display: grid; place-items: center; width: 34px; height: 34px; border-radius: var(--s-r-ctl); background: var(--s-blue-soft); color: var(--s-blue); transition: background-color .25s ease, color .25s ease, transform .25s ease; }
.s3row:hover { padding-left: 16px; background: #fff; }
.s2alt .s3row:hover { background: #fff; }
.s3row:hover .s3row__go { background: var(--s-blue); color: #fff; transform: translateX(4px); }

/* service pages: documentation layout */
.s3doc { padding: clamp(56px, 6vw, 88px) 0 clamp(64px, 7vw, 96px); }
.s3doc__grid { display: grid; grid-template-columns: 300px 1fr; gap: clamp(32px, 5vw, 72px); align-items: start; }
.s3doc__side { align-self: stretch; }
.s3doc__sticky { position: sticky; top: 110px; }
.s3doc__sh { display: flex; align-items: center; gap: 8px; margin: 0 0 10px; font-size: 13px; font-weight: 600; letter-spacing: .02em; color: var(--s-muted); }
.s3doc__sh svg { color: var(--s-blue); }
.s3doc__toc { margin-bottom: 28px !important; border-left: 2px solid var(--s-line); }
.s3doc__toc a { display: block; margin-left: -2px; padding: 7px 14px; border-left: 2px solid transparent; color: var(--s-text) !important; font-size: 15px; font-weight: 500; transition: color .2s ease, border-color .2s ease; }
.s3doc__toc a:hover { color: var(--s-ink) !important; }
.s3doc__toc a.is-on { color: var(--s-blue) !important; border-left-color: var(--s-blue); }
.s3doc__nav { display: grid; gap: 2px; margin-bottom: 26px !important; }
.s3doc__nav a { display: block; padding: 9px 12px; border-radius: var(--s-r-ctl); color: var(--s-ink) !important; font-size: 15px; font-weight: 500; transition: background-color .2s ease, padding .25s var(--s-ease); }
.s3doc__nav a:hover { background: var(--s-soft); padding-left: 16px; }
.s3doc__nav .is-cur a { background: var(--s-ink); color: #fff !important; }
.s3doc__ask { padding: 20px; border-radius: var(--s-r); background: var(--s-soft); border: 1px solid var(--s-line); }
.s3doc__ask p { margin: 0 0 14px; font-size: 15px; font-weight: 500; color: var(--s-ink); }
.s3doc__sec { scroll-margin-top: 100px; }
.s3doc__sec + .s3doc__sec { margin-top: clamp(48px, 6vw, 72px); padding-top: clamp(48px, 6vw, 72px); border-top: 1px solid var(--s-line); }
.s3doc__ov p { font-size: 18.5px; line-height: 1.65; color: var(--s-ink-2); margin: 0 0 18px; }
.s3doc__sum { margin: -4px 0 26px; font-size: 17px; }
.s3doc__block { margin-bottom: 16px; border-radius: var(--s-r); border: 1px solid var(--s-line); overflow: hidden; }
.s3doc__block h3 { margin: 0; padding: 16px 22px; font-size: 18px; color: var(--s-ink); background: var(--s-soft); border-bottom: 1px solid var(--s-line); }
.s3doc__items { display: grid; grid-template-columns: 1fr 1fr; }
.s3doc__items li { display: flex; align-items: center; gap: 10px; padding: 14px 22px; border-bottom: 1px solid var(--s-line); font-size: 15.5px; font-weight: 500; color: var(--s-ink); transition: background-color .2s ease; }
.s3doc__items li:nth-child(odd) { border-right: 1px solid var(--s-line); }
.s3doc__items li svg { flex: none; color: var(--s-blue); }
.s3doc__items li:hover { background: var(--s-blue-soft); }
.s3doc__items li:last-child, .s3doc__items li:nth-last-child(2):nth-child(odd) { border-bottom: 0; }
.s3doc__items--q { grid-template-columns: 1fr; }
.s3doc__items--q li { border-right: 0 !important; border-bottom: 1px solid var(--s-line) !important; font-style: normal; }
.s3doc__items--q li:last-child { border-bottom: 0 !important; }
.s3doc__q::before { content: "Q"; display: grid; place-items: center; flex: none; width: 26px; height: 26px; border-radius: 6px; background: var(--s-blue-soft); color: var(--s-blue); font-size: 13px; font-weight: 700; }
.s3accs { display: grid; gap: 10px; }
.s3acc { border-radius: var(--s-r); border: 1px solid var(--s-line); background: #fff; transition: border-color .25s ease, box-shadow .25s ease; }
.s3acc[open] { border-color: var(--s-blue); box-shadow: var(--s-shadow); }
.s3acc summary { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 18px 20px; list-style: none; cursor: pointer; font-size: 16.5px; font-weight: 600; line-height: 1.4; color: var(--s-ink); }
.s3acc summary::-webkit-details-marker { display: none; }
.s3acc summary span { display: grid; place-items: center; flex: none; width: 30px; height: 30px; border-radius: var(--s-r-ctl); background: var(--s-soft); color: var(--s-blue); transition: background-color .25s ease, color .25s ease; }
.s3acc summary span svg { transition: transform .3s var(--s-ease); }
.s3acc[open] summary span { background: var(--s-blue); color: #fff; }
.s3acc[open] summary span svg { transform: rotate(45deg); }
.s3acc summary:focus-visible { outline: 2px solid var(--s-blue); outline-offset: -2px; border-radius: var(--s-r); }
.s3acc p { margin: 0; padding: 0 20px 18px; font-size: 15.5px; line-height: 1.6; animation: s3fade .4s var(--s-ease); }

/* industries page zig-zag */
.s3zz { display: grid; grid-template-columns: 6fr 6fr; gap: clamp(28px, 5vw, 72px); align-items: center; }
.s3zz + .s3zz { margin-top: clamp(48px, 7vw, 88px); }
.s3zz--flip .s3zz__img { order: 2; }
.s3zz__img { aspect-ratio: 4 / 3; border-radius: var(--s-r); overflow: hidden; }
.s3zz__img img { transition: transform 1.2s var(--s-ease); }
.s3zz:hover .s3zz__img img { transform: scale(1.04); }
.s3zz__text h2 { margin: 0 0 12px; font-size: clamp(28px, 2.6vw, 36px); color: var(--s-ink); }
.s3zz__text > p { margin: 0 0 22px; font-size: 17px; }
.s3zz__h { margin: 0 0 10px !important; font-size: 13px !important; font-weight: 600; color: var(--s-muted); }
.s3zz__tags { display: flex; flex-wrap: wrap; gap: 8px; }
.s3zz__tags li { display: inline-flex; align-items: center; gap: 8px; padding: 8px 12px; border-radius: var(--s-r-ctl); border: 1px solid var(--s-line); color: var(--s-ink); font-size: 14.5px; font-weight: 500; }
.s3zz__tags li svg { color: var(--s-blue); }

/* contact */
.s3contact > .elementor-container { max-width: 1240px !important; padding: 0 14px; }
.s3contact .s3cn-col > .elementor-widget-wrap { padding: 0 clamp(16px, 3vw, 48px) 0 10px !important; }
.s3contact .s3form-col > .elementor-widget-wrap { padding: clamp(24px, 3vw, 40px) !important; border-radius: var(--s-r); border: 1px solid var(--s-line); background: #fff; box-shadow: var(--s-shadow); }
.s3cn > p { margin: 0 0 26px; }
.s3cn__h { margin: 0 0 12px !important; font-size: 15px; font-weight: 600; color: var(--s-ink); }
.s3cn__quick { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 30px !important; }
.s3quick { all: unset; box-sizing: border-box; padding: 10px 14px; border-radius: var(--s-r-ctl); border: 1px solid var(--s-line); background: #fff; color: var(--s-ink); font-size: 14.5px; font-weight: 600; cursor: pointer; transition: background-color .25s ease, border-color .25s ease, color .25s ease, transform .25s ease; }
.s3quick:hover { border-color: var(--s-blue); transform: translateY(-2px); }
.s3quick.is-on { background: var(--s-blue); border-color: var(--s-blue); color: #fff; }
.s3quick:focus-visible { outline: 2px solid var(--s-blue); outline-offset: 2px; }
.s3cn__dl { margin: 0; border-top: 1px solid var(--s-line); }
.s3cn__dl div { display: grid; grid-template-columns: 110px 1fr; gap: 16px; padding: 14px 0; border-bottom: 1px solid var(--s-line); }
.s3cn__dl dt { font-size: 14px; color: var(--s-muted); font-weight: 500; }
.s3cn__dl dd { margin: 0; font-weight: 600; }
.sa-form select.is-flash { animation: s3flash 1s ease; }
@keyframes s3flash { 0%, 100% { box-shadow: 0 0 0 0 rgba(30, 91, 255, 0); } 30% { box-shadow: 0 0 0 4px rgba(30, 91, 255, .3); } }

/* responsive */
@media (max-width: 1199px) {
  .s3tiles { grid-template-columns: repeat(4, 1fr); }
  .s3gantt__axis, .s3gantt__row { grid-template-columns: 170px 1fr; }
  .s3gantt__bar { font-size: 12.5px; }
}
@media (max-width: 991px) {
  .s3hero__grid { grid-template-columns: 1fr; min-height: 0 !important; }
  .s3hero__panel { justify-content: flex-start; padding: 48px 24px; }
  .s3hero--strip .s3hero__panel { padding-bottom: 48px; }
  .s3hero__in { max-width: 680px; }
  .s3hero__photo { aspect-ratio: 16 / 9; order: 2; }
  .s3hero--slim .s3hero__photo { display: none; }
  .s3strip { flex-direction: column; align-items: flex-start; margin-top: -40px; }
  .s3strip__label { padding: 0 0 12px; border-right: 0; border-bottom: 1px solid var(--s-line); width: 100%; }
  .s3state__grid, .s3quad__grid, .s3qa__grid, .s3cta__grid, .s3grp__grid, .s3doc__grid, .s3zz, .s3mv__grid { grid-template-columns: 1fr; }
  .s3mv__q + .s3mv__q { padding: 28px 0 0; border-left: 0; border-top: 1px solid var(--s-line-2); margin-top: 28px; }
  .s3zz--flip .s3zz__img { order: 0; }
  .s3grp__side, .s3doc__sticky, .s3qa__panel { position: static; }
  .s3doc__side { order: 2; }
  .s3doc__toc { display: none; }
  .s3doc__toc + .s3doc__sh { margin-top: 0; }
  .s3spec__row { grid-template-columns: 1fr; }
  .s3spec__table { display: grid; grid-template-columns: repeat(3, minmax(260px, 1fr)); overflow-x: auto; }
  .s3spec__row { display: contents; }
  .s3spec__head, .s3spec__cell { border-left: 0 !important; }
  .s3area { grid-template-columns: 46px 1fr; }
  .s3area__d { grid-column: 2; }
  .s3area__n { grid-column: 2; justify-content: flex-start; }
  .s3exp__row { flex-direction: column; height: auto; }
  .s3exp__c { flex: none; height: 300px; }
  .s3exp__c .s3exp__more { grid-template-rows: auto auto; opacity: 1; }
  .s3exp__c h3 { white-space: normal; }
}
@media (max-width: 767px) {
  .s3hero__title, .s3hero--home .s3hero__title { font-size: 34px; }
  .s3tiles { grid-template-columns: repeat(2, 1fr); }
  .s3legend { flex-wrap: nowrap; overflow-x: auto; margin-left: -24px !important; margin-right: -24px !important; padding: 0 24px 4px !important; scrollbar-width: none; }
  .s3legend::-webkit-scrollbar { display: none; }
  .s3leg { white-space: nowrap; }
  .s3gantt__chart { padding: 18px; }
  .s3gantt__axis { display: none; }
  .s3gantt__row { grid-template-columns: 1fr; gap: 6px; padding: 12px 0; }
  .s3gantt__track { height: auto; }
  .s3gantt__bar { position: static; width: auto; white-space: normal; padding: 10px 12px; }
  .s3quad__box ul { grid-template-columns: 1fr; }
  .s3quad__x, .s3quad__y, .s3quad__core { display: none; }
  .s3quad__c { padding: 22px 0 !important; border-bottom: 1px solid var(--s-line); }
  .s3quad__c:hover { box-shadow: none; background: transparent; }
  .s3row { grid-template-columns: 1fr 34px; }
  .s3row__d { grid-column: 1; }
  .s3row__go { grid-row: 1 / span 2; grid-column: 2; }
  .s3doc__items { grid-template-columns: 1fr; }
  .s3doc__items li { border-right: 0 !important; border-bottom: 1px solid var(--s-line) !important; }
  .s3doc__items li:last-child { border-bottom: 0 !important; }
  .s3title--row { flex-direction: column; align-items: flex-start; }
}
@media (max-width: 480px) {
  .s3tiles { grid-template-columns: 1fr 1fr; gap: 8px; }
  .s3tile a { min-height: 118px; padding: 14px; }
  .s3spec__table { grid-template-columns: repeat(3, 82vw); }
}
@media (prefers-reduced-motion: reduce) {
  .s2-js .s3-rv, .s2-js .s3tile { opacity: 1; transform: none; transition: none; }
  .s3-up, .s3strip li { animation: none; }
  .s2-js .s3hero__photo::before { display: none; }
  .s2-js .s3hero__photo img { transform: none; }
  .s2-js .s3-wipe::before { display: none; }
  .s2-js .s3-wipe img { transform: none; }
  .s2-js .s3gantt__bar { transform: none; transition: none; }
  .s2-js .s3gantt__bar span { opacity: 1; }
  .s2-js .s3quad__x, .s2-js .s3quad__y { transform: none; }
  .s2-js .s3quad__core { opacity: 1; transform: translate(-50%, -50%); }
  .s2-js .s3-fill.is-split .w { color: inherit; transition: none; }
  .s3exp__c, .s3exp__more { transition: none; }
}

/* contact form consent line */
.sa-form .sa-consent { font-size: 14px; line-height: 1.5; color: var(--s-text); }
.sa-form .sa-consent .wpcf7-list-item { margin: 0; }
.sa-form .sa-consent label { display: flex; align-items: flex-start; gap: 10px; cursor: pointer; }
.sa-form .sa-consent input[type="checkbox"] { flex: none; width: 18px; height: 18px; margin: 2px 0 0; accent-color: var(--s-blue); }

/* the theme's full-screen preloader hid the page (and its entrance animations) for about a second and blocked clicks */
.techex-preloader-wrap { display: none !important; }

/* =====================================================================
   HOME v3 sections (2026-10-30): one-team orbit, service finder, industry showcase
   ===================================================================== */
/* who we are: statement + "one team" orbit */
.s3who2__grid { display: grid; grid-template-columns: 6fr 6fr; gap: clamp(32px, 5vw, 80px); align-items: center; }
.s3who2__lead { font-size: clamp(19px, 1.6vw, 22px); line-height: 1.6; color: var(--s-ink-2); margin: 0 0 30px; }
.s3who2__facts { display: flex; gap: 0; margin-bottom: 30px !important; border-top: 1px solid var(--s-line); border-bottom: 1px solid var(--s-line); }
.s3who2__facts li { flex: 1; padding: 18px 0; }
.s3who2__facts li + li { padding-left: 22px; border-left: 1px solid var(--s-line); }
.s3who2__facts strong { display: block; font-size: 34px; line-height: 1; font-weight: 600; color: var(--s-blue); letter-spacing: -0.02em; }
.s3who2__facts span { display: block; margin-top: 6px; font-size: 14.5px; color: var(--s-muted); }
.s3orb { position: relative; width: 100%; max-width: 520px; aspect-ratio: 1; margin: 0 auto; --r: 37.5%; }
.s3orb__rings { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; }
.s3orb__rings circle { fill: none; stroke: var(--s-line-2); stroke-width: 1; stroke-dasharray: 4 7; transform-origin: 200px 200px; animation: s3spin 60s linear infinite; }
.s3orb__rings circle + circle { stroke: var(--s-blue-soft); stroke-width: 14; stroke-dasharray: none; animation: none; }
@keyframes s3spin { to { transform: rotate(360deg); } }
.s3orb__core { position: absolute; left: 50%; top: 50%; width: 38%; aspect-ratio: 1; transform: translate(-50%, -50%); display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; padding: 12px; border-radius: 50%; background: var(--s-ink); color: #fff; box-shadow: 0 0 0 10px rgba(30, 91, 255, .1), 0 24px 50px -20px rgba(15, 23, 42, .6); z-index: 2; }
.s3orb__core span { font-size: clamp(18px, 1.8vw, 24px); font-weight: 600; letter-spacing: -0.01em; }
.s3orb__core small { margin-top: 6px; font-size: 12px; line-height: 1.35; color: var(--s-blue-l); max-width: 120px; }
.s3orb ul { position: absolute; inset: 0; }
.s3orb__n { --a: calc(var(--k) * 60deg - 90deg); position: absolute; left: 50%; top: 50%; z-index: 3; transform: translate(-50%, -50%) rotate(var(--a)) translateX(calc(var(--orb-r, 190px))) rotate(calc(var(--a) * -1)); transition: transform 1s var(--s-ease), opacity .6s ease; transition-delay: calc(.15s + var(--k) * .09s); }
.s3orb__n a { display: flex; flex-direction: column; align-items: center; gap: 8px; width: 136px; text-align: center; color: var(--s-ink) !important; }
.s3orb__ic { display: grid; place-items: center; width: 54px; height: 54px; border-radius: 50%; background: #fff; border: 1px solid var(--s-line); color: var(--s-blue); box-shadow: var(--s-shadow); transition: background-color .3s ease, color .3s ease, transform .3s var(--s-ease), border-color .3s ease; }
.s3orb__t { font-size: 14px; font-weight: 600; line-height: 1.3; transition: color .25s ease; }
.s3orb__n a:hover .s3orb__ic { background: var(--s-blue); border-color: var(--s-blue); color: #fff; transform: scale(1.1); }
.s3orb__n a:hover .s3orb__t { color: var(--s-blue); }
.s2-js .s3orb:not(.is-in) .s3orb__n { opacity: 0; transform: translate(-50%, -50%) rotate(var(--a)) translateX(0) rotate(calc(var(--a) * -1)) scale(.6); }
.s2-js .s3orb__core { transition: transform .8s var(--s-ease), opacity .6s ease; }
.s2-js .s3orb:not(.is-in) .s3orb__core { opacity: 0; transform: translate(-50%, -50%) scale(.7); }

/* service finder */
.s3find__head { display: grid; grid-template-columns: 5fr 7fr; gap: clamp(28px, 4vw, 56px); align-items: end; margin-bottom: 36px; }
.s3find__head .s3title { margin-bottom: 0; }
.s3find__box { padding: 10px; border-radius: var(--s-r); background: #fff; border: 1px solid var(--s-line); box-shadow: var(--s-shadow); }
.s3find__field { display: flex; align-items: center; gap: 12px; padding: 4px 8px 4px 14px; margin: 0; cursor: text; }
.s3find__icon { color: var(--s-blue); display: grid; }
.s3find__field input { flex: 1; min-width: 0; height: 48px; padding: 0 !important; border: 0 !important; background: none !important; box-shadow: none !important; font-size: 16.5px !important; color: var(--s-ink) !important; outline: none; }
.s3find__field input::placeholder { color: var(--s-muted); }
.s3find__field input::-webkit-search-cancel-button { cursor: pointer; }
.s3find__count { flex: none; padding: 6px 10px; border-radius: var(--s-r-ctl); background: var(--s-blue-soft); color: var(--s-blue); font-size: 13.5px; font-weight: 600; white-space: nowrap; transition: background-color .25s ease, color .25s ease; }
.s3find__box:focus-within { border-color: var(--s-blue); box-shadow: 0 0 0 4px rgba(30, 91, 255, .14), var(--s-shadow); }
.s3find__hints { display: flex; align-items: center; gap: 10px; padding: 10px 14px 4px; border-top: 1px solid var(--s-line); margin-top: 6px; }
.s3find__hints > span { font-size: 13px; color: var(--s-muted); }
.s3find__hints ul { display: flex; flex-wrap: wrap; gap: 6px; }
.s3find__hint { all: unset; box-sizing: border-box; padding: 5px 10px; border-radius: 6px; background: var(--s-soft); color: var(--s-ink-2); font-size: 13px; font-weight: 600; cursor: pointer; transition: background-color .2s ease, color .2s ease; }
.s3find__hint:hover, .s3find__hint.is-on { background: var(--s-ink); color: #fff; }
.s3find__hint:focus-visible { outline: 2px solid var(--s-blue); outline-offset: 2px; }
.s3find__dir { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; align-items: start; }
.s3find__col { display: grid; gap: 16px; min-width: 0; }
.s3find__g { padding: 18px; border-radius: var(--s-r); background: #fff; border: 1px solid var(--s-line); transition: opacity .3s ease, border-color .3s ease; }
.s3find__gh { display: flex; align-items: center; gap: 12px; padding-bottom: 14px; margin-bottom: 6px; border-bottom: 1px solid var(--s-line); color: var(--s-ink) !important; font-size: 16px; font-weight: 600; line-height: 1.3; }
.s3find__gh .s3ic { width: 38px; height: 38px; }
.s3find__gh:hover .s3ic { background: var(--s-blue); color: #fff; }
.s3find__c { margin-left: auto; min-width: 26px; padding: 3px 7px; border-radius: 6px; background: var(--s-soft); color: var(--s-muted); font-size: 12.5px; text-align: center; }
.s3find__i a { position: relative; display: block; padding: 10px 10px 10px 14px; margin: 0 -10px; border-radius: var(--s-r-ctl); color: var(--s-ink) !important; transition: background-color .2s ease; }
.s3find__i a::before { content: ""; position: absolute; left: 0; top: 12px; bottom: 12px; width: 3px; border-radius: 2px; background: var(--s-blue); transform: scaleY(0); transition: transform .25s var(--s-ease); }
.s3find__t { display: block; font-size: 15.5px; font-weight: 600; line-height: 1.35; }
.s3find__s { display: block; max-height: 0; overflow: hidden; opacity: 0; font-size: 13.5px; line-height: 1.5; color: var(--s-text); transition: max-height .35s var(--s-ease), opacity .3s ease, margin .35s var(--s-ease); }
.s3find.is-searching .s3find__s { max-height: 80px; opacity: 1; margin-top: 4px; }
.s3find__i a:hover { background: var(--s-soft); }
.s3find__i a:hover::before { transform: scaleY(1); }
.s3find__i a:hover .s3find__t { color: var(--s-blue); }
.s3find__i mark { background: rgba(30, 91, 255, .16); color: inherit; border-radius: 3px; padding: 0 1px; }
.s3find.is-searching .s3find__i:not(.is-hit) { display: none; }
.s3find.is-searching .s3find__g.is-none { display: none; }
.s3find.is-searching .s3find__g { border-color: var(--s-blue); }
.s3find.is-searching .s3find__i.is-hit { animation: s3fade .35s var(--s-ease) both; }
.s3find__empty { margin: 8px 0 0; padding: 22px; border-radius: var(--s-r); background: #fff; border: 1px dashed var(--s-line-2); text-align: center; font-size: 16px; }
.s3find__empty a { font-weight: 600; }
.s2-js .s3find__g { opacity: 0; transform: translateY(18px); transition: opacity .6s ease, transform .6s var(--s-ease), border-color .3s ease; }
.s2-js .s3find__dir.is-in .s3find__g { opacity: 1; transform: none; }
.s2-js .s3find__dir.is-in .s3find__col:nth-child(2) .s3find__g { transition-delay: .08s; } .s2-js .s3find__dir.is-in .s3find__col:nth-child(3) .s3find__g { transition-delay: .16s; }
.s2-js .s3find__dir.is-in .s3find__col:nth-child(4) .s3find__g { transition-delay: .24s; } .s2-js .s3find__dir.is-in .s3find__g + .s3find__g { transition-delay: .32s; }

/* industry showcase */
.s3show__grid { display: grid; grid-template-columns: 5fr 7fr; gap: clamp(24px, 4vw, 56px); align-items: stretch; }
.s3show__list { display: grid; align-content: start; border-top: 1px solid var(--s-line); }
.s3show__item { all: unset; box-sizing: border-box; position: relative; display: block; width: 100%; padding: 20px 4px 20px 22px; border-bottom: 1px solid var(--s-line); cursor: pointer; }
.s3show__bar { position: absolute; left: 0; top: 20px; bottom: 20px; width: 3px; border-radius: 2px; background: var(--s-line); overflow: hidden; }
.s3show__bar span { position: absolute; inset: 0; background: var(--s-blue); transform: scaleY(0); transform-origin: top; }
.s3show__item.is-on .s3show__bar span { animation: s3prog var(--dur, 6s) linear forwards; }
.s3show__list.is-paused .s3show__item.is-on .s3show__bar span, .s3show__list.is-static .s3show__item.is-on .s3show__bar span { animation: none; transform: scaleY(1); }
@keyframes s3prog { to { transform: scaleY(1); } }
.s3show__h { display: block; font-size: 21px; font-weight: 600; color: var(--s-muted); transition: color .3s ease; }
.s3show__item:hover .s3show__h, .s3show__item.is-on .s3show__h { color: var(--s-ink); }
.s3show__body { display: grid; grid-template-rows: 0fr; opacity: 0; transition: grid-template-rows .5s var(--s-ease), opacity .4s ease; }
.s3show__item.is-on .s3show__body { grid-template-rows: 1fr; opacity: 1; }
.s3show__inner { display: block; min-height: 0; overflow: hidden; }
.s3show__p { display: block; margin-top: 10px; font-size: 15.5px; line-height: 1.6; color: var(--s-text); }
.s3show__tags { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 12px; }
.s3show__tags span { padding: 5px 10px; border-radius: 6px; background: var(--s-blue-soft); color: var(--s-blue); font-size: 13px; font-weight: 600; }
.s3show__item:focus-visible { outline: 2px solid var(--s-blue); outline-offset: -2px; border-radius: var(--s-r-ctl); }
.s3show__media { position: relative; min-height: 440px; border-radius: var(--s-r); overflow: hidden; background: var(--s-ink); }
.s3show__img { position: absolute; inset: 0; opacity: 0; transition: opacity .8s ease; }
.s3show__img img { transform: scale(1.08); transition: transform 6.5s linear; }
.s3show__img.is-on { opacity: 1; }
.s3show__img.is-on img { transform: scale(1); }
.s3show__badge { position: absolute; left: 20px; bottom: 20px; z-index: 2; display: inline-flex; align-items: center; gap: 8px; padding: 10px 14px; border-radius: var(--s-r-ctl); background: rgba(255, 255, 255, .95); color: var(--s-ink); font-size: 14px; font-weight: 600; box-shadow: var(--s-shadow); }
.s3show__badge svg { color: var(--s-blue); }

@media (max-width: 991px) {
  .s3who2__grid, .s3find__head, .s3show__grid { grid-template-columns: 1fr; }
  .s3find__dir { grid-template-columns: 1fr 1fr; }
  .s3orb { max-width: 460px; }
  .s3show__media { min-height: 0; aspect-ratio: 16 / 10; order: -1; }
}
@media (max-width: 600px) {
  .s3find__dir { grid-template-columns: 1fr; }
  .s3orb { aspect-ratio: auto; max-width: none; }
  .s3orb__rings { display: none; }
  .s3orb__core { position: relative; left: auto; top: auto; transform: none !important; width: auto; aspect-ratio: auto; border-radius: var(--s-r); padding: 18px; margin-bottom: 12px; box-shadow: none; }
  .s3orb ul { position: static; display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
  .s3orb__n { position: static; transform: none !important; opacity: 1 !important; }
  .s3orb__n a { width: auto; flex-direction: row; text-align: left; padding: 12px; border-radius: var(--s-r); border: 1px solid var(--s-line); background: #fff; }
  .s3orb__ic { width: 40px; height: 40px; flex: none; box-shadow: none; }
  .s3orb__t { padding: 0; background: none; }
  .s3who2__facts strong { font-size: 28px; }
  .s3find__hints { flex-wrap: wrap; }
  .s3find__count { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  .s3orb__rings circle { animation: none; }
  .s2-js .s3orb:not(.is-in) .s3orb__n, .s2-js .s3orb:not(.is-in) .s3orb__core, .s2-js .s3find__g { opacity: 1; transform: none; }
  .s3show__img img { transition: none; transform: none; }
}

/* service finder on phones: first three services per area, then a "Show all" toggle (added by stage-v2.js) */
.s3find__more { display: none; }
@media (max-width: 600px) {
  .s3find:not(.is-searching) .s3find__g:not(.is-open) .s3find__i:nth-child(n+4) { display: none; }
  .s3find__more { all: unset; box-sizing: border-box; display: inline-flex; align-items: center; gap: 6px; margin-top: 6px; padding: 8px 0 2px; color: var(--s-blue); font-size: 14px; font-weight: 600; cursor: pointer; }
  .s3find.is-searching .s3find__more, .s3find__g.is-open .s3find__more { display: none; }
}

/* =====================================================================
   ABOUT v3 (2026-10-30): who we are with "At a glance" card, mission -> vision track
   ===================================================================== */
.s3ab__grid { display: grid; grid-template-columns: 6fr 6fr; gap: clamp(32px, 5vw, 80px); align-items: center; }
.s3ab__text p { margin: 0 0 18px; font-size: 16.5px; }
.s3ab__text .s3ab__lead { font-size: clamp(19px, 1.6vw, 22px); line-height: 1.6; color: var(--s-ink-2); margin-bottom: 20px; }
.s3ab__verbs { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-top: 26px !important; }
.s3ab__verbs li { position: relative; display: inline-flex; align-items: center; padding: 9px 14px; border-radius: var(--s-r-ctl); background: var(--s-blue-soft); color: var(--s-blue); font-size: 14.5px; font-weight: 600; }
.s3ab__verbs li + li { margin-left: 22px; }
.s3ab__verbs li + li::before { content: ""; position: absolute; left: -24px; top: 50%; width: 18px; height: 2px; background: var(--s-line-2); }
.s3ab__media { position: relative; padding: 0 0 72px 0; }
.s3ab__photo { aspect-ratio: 4 / 3.3; border-radius: var(--s-r); overflow: hidden; width: 86%; margin-left: auto; }
.s3gl { position: absolute; left: 0; bottom: 0; width: min(380px, 78%); padding: 20px 22px 8px; border-radius: var(--s-r); background: #fff; border: 1px solid var(--s-line); box-shadow: 0 26px 50px -26px rgba(15, 23, 42, .5); }
.s3gl__h { display: flex; align-items: center; gap: 8px; margin: 0 0 6px; font-size: 13px; font-weight: 600; color: var(--s-blue); }
.s3gl dl { margin: 0; }
.s3gl__row { display: grid; grid-template-columns: 112px 1fr; gap: 12px; padding: 10px 0; border-top: 1px solid var(--s-line); }
.s3gl__row:first-child { border-top: 0; }
.s3gl dt { font-size: 12.5px; font-weight: 600; color: var(--s-muted); line-height: 1.45; }
.s3gl dd { margin: 0; font-size: 14px; font-weight: 500; line-height: 1.45; color: var(--s-ink); }
.s2-js .s3gl { opacity: 0; transform: translateY(24px); transition: opacity .7s ease .35s, transform .9s var(--s-ease) .35s; }
.s2-js .s3ab__media.is-in .s3gl { opacity: 1; transform: none; }
.s2-js .s3gl__row { opacity: 0; transform: translateX(-10px); transition: opacity .5s ease, transform .5s var(--s-ease); transition-delay: calc(.7s + var(--i) * .1s); }
.s2-js .s3ab__media.is-in .s3gl__row { opacity: 1; transform: none; }

.s3mv2 { background: var(--s-ink); }
.s3mv2__track { display: grid; grid-template-columns: 1fr 120px 1fr; align-items: stretch; }
.s3mv2__c { display: flex; flex-direction: column; padding: clamp(26px, 3vw, 40px); border-radius: var(--s-r); background: var(--s-ink-2); border: 1px solid #2C3A52; transition: border-color .35s ease, transform .35s var(--s-ease), background-color .35s ease; }
.s3mv2__c:hover { border-color: var(--s-blue); transform: translateY(-4px); }
.s3mv2__c--v { background: var(--s-blue); border-color: var(--s-blue); }
.s3mv2__c--v:hover { background: var(--s-blue-d); border-color: var(--s-blue-d); }
.s3mv2__top { display: flex; align-items: center; gap: 12px; margin-bottom: 26px; }
.s3mv2__ic { display: grid; place-items: center; width: 48px; height: 48px; border-radius: var(--s-r-ctl); background: rgba(143, 176, 255, .14); color: var(--s-blue-l); }
.s3mv2__c--v .s3mv2__ic { background: rgba(255, 255, 255, .16); color: #fff; }
.s3mv2__k { font-size: 20px; font-weight: 600; color: #fff; }
.s3mv2__tag { margin-left: auto; padding: 4px 10px; border-radius: 999px; border: 1px solid rgba(255, 255, 255, .25); color: #CBD5E1; font-size: 12.5px; font-weight: 600; }
.s3mv2__c p { margin: 0 0 24px; font-size: clamp(20px, 1.8vw, 25px); line-height: 1.4; letter-spacing: -0.01em; color: #fff; font-weight: 500; }
.s3mv2__aud { display: flex; flex-wrap: wrap; gap: 6px; margin-top: auto !important; }
.s3mv2__aud li { padding: 5px 10px; border-radius: 6px; background: rgba(255, 255, 255, .1); color: #E2E8F0; font-size: 13px; font-weight: 500; }
.s3mv2__link { position: relative; display: grid; place-items: center; color: var(--s-blue-l); }
.s3mv2__line { position: absolute; left: 14px; right: 14px; top: 50%; height: 2px; background: linear-gradient(90deg, #2C3A52, var(--s-blue)); transform-origin: left; transition: transform 1s var(--s-ease) .3s; }
.s3mv2__link svg { position: relative; z-index: 1; padding: 9px; box-sizing: content-box; border-radius: 50%; background: var(--s-ink); border: 1px solid #2C3A52; }
.s3mv2__dot { position: absolute; left: 14px; top: 50%; width: 8px; height: 8px; margin-top: -4px; border-radius: 50%; background: #fff; box-shadow: 0 0 0 4px rgba(30, 91, 255, .35); animation: s3travel 2.6s var(--s-ease) infinite; }
@keyframes s3travel { 0% { left: 14px; opacity: 0; } 15% { opacity: 1; } 85% { opacity: 1; } 100% { left: calc(100% - 22px); opacity: 0; } }
.s2-js .s3mv2__line { transform: scaleX(0); }
.s2-js .s3mv2.is-on .s3mv2__line { transform: none; }

@media (max-width: 991px) {
  .s3ab__grid { grid-template-columns: 1fr; }
  .s3ab__media { max-width: 640px; }
  .s3mv2__track { grid-template-columns: 1fr; }
  .s3mv2__link { height: 72px; }
  .s3mv2__line { left: 50%; right: auto; top: 10px; bottom: 10px; width: 2px; height: auto; background: linear-gradient(180deg, #2C3A52, var(--s-blue)); transform-origin: top; }
  .s3mv2__link svg { transform: rotate(90deg); }
  .s3mv2__dot { left: 50%; margin: 0 0 0 -4px; animation-name: s3travelv; }
  @keyframes s3travelv { 0% { top: 10px; opacity: 0; } 15%, 85% { opacity: 1; } 100% { top: calc(100% - 18px); opacity: 0; } }
}
@media (max-width: 560px) {
  .s3ab__media { padding: 0; }
  .s3ab__photo { width: 100%; }
  .s3gl { position: relative; width: auto; margin: -40px 12px 0; }
  .s3gl__row { grid-template-columns: 1fr; gap: 2px; }
  .s3ab__verbs { gap: 8px; }
  .s3ab__verbs li + li { margin-left: 0; }
  .s3ab__verbs li + li::before { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  .s2-js .s3gl, .s2-js .s3gl__row { opacity: 1; transform: none; }
  .s3mv2__dot { animation: none; display: none; }
  .s2-js .s3mv2__line { transform: none; }
}

/* =====================================================================
   SERVICES v3 (2026-10-30): service catalogue, sticky practice-area index + card stream
   ===================================================================== */
.s3cat { padding-top: clamp(56px, 6vw, 88px); }
.s3cat__grid { display: grid; grid-template-columns: 290px 1fr; gap: clamp(32px, 4.5vw, 64px); align-items: start; }
.s3cat__side { align-self: stretch; }
.s3cat__grid > *, .s3cat__nav { min-width: 0; }
.s3cat__sticky { position: sticky; top: 110px; }
.s3cat__sh { margin: 0 0 12px; font-size: 13px; font-weight: 600; letter-spacing: .02em; color: var(--s-muted); }
.s3cat__nav { position: relative; padding-left: 4px; }
.s3cat__nav::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 2px; border-radius: 2px; background: var(--s-line); }
.s3cat__mark { position: absolute; left: 0; top: 0; width: 2px; height: 0; border-radius: 2px; background: var(--s-blue); transition: transform .45s var(--s-ease), height .45s var(--s-ease); }
.s3cat__index { display: grid; gap: 2px; }
.s3cat__ix { display: flex; align-items: center; gap: 10px; padding: 10px 12px; margin-left: 8px; border-radius: var(--s-r-ctl); color: var(--s-text) !important; font-size: 15px; font-weight: 500; line-height: 1.3; transition: background-color .25s ease, color .25s ease; }
.s3cat__ixic { display: grid; place-items: center; flex: none; width: 30px; height: 30px; border-radius: 8px; background: var(--s-soft); color: var(--s-muted); transition: background-color .25s ease, color .25s ease; }
.s3cat__ixt { flex: 1; }
.s3cat__ixn { flex: none; min-width: 24px; padding: 2px 7px; border-radius: 6px; background: var(--s-soft); color: var(--s-muted); font-size: 12.5px; font-weight: 600; text-align: center; transition: background-color .25s ease, color .25s ease; }
.s3cat__ix:hover { background: var(--s-soft); color: var(--s-ink) !important; }
.s3cat__ix.is-on { background: var(--s-blue-soft); color: var(--s-ink) !important; font-weight: 600; }
.s3cat__ix.is-on .s3cat__ixic { background: var(--s-blue); color: #fff; }
.s3cat__ix.is-on .s3cat__ixn { background: #fff; color: var(--s-blue); }
.s3cat__help { margin-top: 24px; padding: 18px; border-radius: var(--s-r); background: var(--s-ink); }
.s3cat__help p { margin: 0 0 8px; color: #fff; font-size: 15px; font-weight: 600; }
.s3cat__help .s3link { color: var(--s-blue-l) !important; }

.s3cat__grp { scroll-margin-top: 100px; }
.s3cat__grp + .s3cat__grp { margin-top: clamp(48px, 6vw, 72px); }
.s3cat__head { display: grid; grid-template-columns: auto 1fr auto; gap: 18px; align-items: start; padding-bottom: 22px; margin-bottom: 22px; border-bottom: 1px solid var(--s-line); }
.s3cat__head h2 { margin: 2px 0 8px; font-size: clamp(24px, 2.2vw, 30px); line-height: 1.2; color: var(--s-ink); }
.s3cat__head p { margin: 0; font-size: 16px; max-width: 640px; }
.s3cat__count { margin-top: 6px; padding: 6px 12px; border-radius: 999px; background: var(--s-soft); color: var(--s-ink-2); font-size: 13px; font-weight: 600; white-space: nowrap; }
.s3cat__cards { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.s3cat__cards--one { grid-template-columns: 1fr; }
.s3cat__cards > li { min-width: 0; }
.s3card { position: relative; display: flex; flex-direction: column; height: 100%; padding: 22px 22px 20px; border-radius: var(--s-r); border: 1px solid var(--s-line); background: #fff; color: var(--s-ink) !important; overflow: hidden; isolation: isolate; transition: border-color .3s ease, box-shadow .3s ease, transform .3s var(--s-ease); }
.s3card::before { content: ""; position: absolute; left: 0; top: 0; right: 0; height: 3px; background: var(--s-blue); transform: scaleX(0); transform-origin: left; transition: transform .45s var(--s-ease); }
.s3card__top { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; margin-bottom: 10px; }
.s3card h3 { margin: 0; font-size: 18.5px; line-height: 1.3; color: var(--s-ink); }
.s3card__go { display: grid; place-items: center; flex: none; width: 32px; height: 32px; border-radius: var(--s-r-ctl); background: var(--s-blue-soft); color: var(--s-blue); transition: background-color .25s ease, color .25s ease, transform .3s var(--s-ease); }
.s3card p { margin: 0 0 16px; font-size: 15px; line-height: 1.55; color: var(--s-text); }
.s3card__caps { display: flex; flex-wrap: wrap; gap: 6px; margin-top: auto !important; }
.s3card__caps li { padding: 4px 9px; border-radius: 6px; background: var(--s-soft); color: var(--s-ink-2); font-size: 12.5px; font-weight: 500; transition: background-color .25s ease; }
.s3card:hover { border-color: var(--s-blue); box-shadow: var(--s-shadow); transform: translateY(-3px); }
.s3card:hover::before { transform: scaleX(1); }
.s3card:hover .s3card__go { background: var(--s-blue); color: #fff; transform: translateX(3px); }
.s3card:hover .s3card__caps li { background: var(--s-blue-soft); }
.s3card:focus-visible { outline: 2px solid var(--s-blue); outline-offset: 2px; }
.s3cat__cards--one .s3card { flex-direction: row; flex-wrap: wrap; align-items: center; gap: 0 24px; }
.s3cat__cards--one .s3card__top { flex: 1 1 260px; margin: 0; }
.s3cat__cards--one .s3card p { flex: 2 1 320px; margin: 0; }
.s3cat__cards--one .s3card__caps { flex: 1 1 100%; margin-top: 14px !important; }

@media (max-width: 991px) {
  .s3cat__grid { grid-template-columns: 1fr; }
  .s3cat__side { position: sticky; top: 80px; z-index: 20; margin: 0 -24px; padding: 10px 24px; background: rgba(255, 255, 255, .96); border-bottom: 1px solid var(--s-line); }
  .admin-bar .s3cat__side { top: 126px; }
  .s3cat__sticky { position: static; }
  .s3cat__sh, .s3cat__help, .s3cat__mark, .s3cat__nav::before { display: none; }
  .s3cat__nav { padding: 0; }
  .s3cat__index { display: flex; gap: 6px; overflow-x: auto; scrollbar-width: none; }
  .s3cat__index::-webkit-scrollbar { display: none; }
  .s3cat__ix { margin: 0; white-space: nowrap; padding: 8px 12px; }
  .s3cat__ixn { display: none; }
}
@media (max-width: 640px) {
  .s3cat__cards { grid-template-columns: 1fr; }
  .s3cat__head { grid-template-columns: auto 1fr; }
  .s3cat__count { grid-column: 2; justify-self: start; margin-top: 0; }
}

/* legal pages (tools/legal/legal_text.py) */
.legal-doc { max-width: 860px; }
.legal-doc h2 { margin: 36px 0 10px; font-size: 24px; line-height: 1.25; }
.legal-doc h2:first-child { margin-top: 0; }
.legal-doc p { margin: 0 0 12px; }
.legal-ul { margin: 0 0 14px !important; padding: 0 0 0 22px !important; list-style: disc !important; }
.legal-ul li { margin: 0 0 6px; list-style: disc !important; display: list-item !important; }
.legal-doc a { text-decoration: underline; text-underline-offset: 3px; }
.legal-ph { padding: 1px 6px; border-radius: 4px; background: #FFF3BF; color: #5C4400; font-weight: 600; }
.legal-tw { overflow-x: auto; margin: 6px 0 14px; }
.legal-table { width: 100%; min-width: 640px; border-collapse: collapse; font-size: 15px; line-height: 1.5; }
.legal-table th, .legal-table td { padding: 10px 12px; border: 1px solid color-mix(in srgb, currentColor 22%, transparent); text-align: left; vertical-align: top; background: transparent; }
.legal-table th { font-weight: 600; }
.legal-table td:first-child { overflow-wrap: anywhere; min-width: 150px; }
.s3lghead { padding: clamp(48px, 5vw, 72px) 0; background: var(--s-ink); }
.s3lghead .s3hero__lead { max-width: 720px; margin: 0; }
.legal-doc h2 { color: var(--s-ink); font-weight: 600; }
.s2 .legal-ul { list-style: disc !important; }
.sa-foot-bottom { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px 24px; }
.sa-foot-legal { display: flex; flex-wrap: wrap; gap: 6px 20px; }
.sa-foot-legal a { color: #CBD5E1; text-decoration: underline; text-underline-offset: 3px; }
.sa-foot-legal a:hover { color: #fff; }

/* CookieYes banner: site corners, smaller buttons */
.cky-consent-container .cky-consent-bar, .cky-modal { border-radius: 12px; }
.cky-consent-container .cky-btn, .cky-modal .cky-btn { border-radius: 8px; font-size: 14px; font-weight: 600; line-height: 20px; padding: 10px 14px; transition: background-color .15s ease, color .15s ease, border-color .15s ease; }
.cky-consent-container .cky-btn:hover, .cky-modal .cky-btn:hover { opacity: 1; background-color: #0F172A !important; border-color: #0F172A !important; color: #fff !important; }
.cky-modal .cky-preference-content-wrapper a { text-decoration: underline; }
.cky-btn-revisit-wrapper { border-radius: 8px; }

/* Client address in the footer */
.sa-foot-list li { color: #CBD5E1; font-size: 15.5px; overflow-wrap: anywhere; }
.s3cn__dl div { grid-template-columns: 110px minmax(0, 1fr); }
.s3cn__dl dd { min-width: 0; overflow-wrap: anywhere; }
.s3cta__mail { overflow-wrap: anywhere; }
@media (max-width: 480px) { .s3cn__dl div { grid-template-columns: minmax(0, 1fr); gap: 4px; } }
/* keeps the last legal link clear of the scroll-to-top button */
@media (min-width: 992px) { .sa-foot-bottom { padding-right: 60px; } }

/* Cookie banner: a card below the sticky header, so the logo and menu stay usable before a choice is made */
.cky-consent-container.cky-box-top-right{top:119px}
@media (max-width:1024px){.cky-consent-container.cky-box-top-right{top:97px}}
@media (max-width:600px){.cky-consent-container.cky-box-top-right{top:81px}}
