/* Drop 791: website polish — one closing band on the home page, framework seals everywhere, calmer section labels,
   gentler reveals. Loaded on every website page after the page styles. */

/* seals (home strip, explorer tabs) — the same look as /frameworks */
.pf-seal { display: grid; place-items: center; border-radius: 50%; flex: none; color: #0F294C; background: radial-gradient(circle at 50% 35%, #fff, #F2F5FA 70%);
  border: 1px solid color-mix(in srgb, #0F294C 14%, transparent); box-shadow: inset 0 0 0 3px #fff, inset 0 0 0 4px color-mix(in srgb, #D4A03A 45%, transparent); }
.pf-seal.is-sa { color: #D4A03A; background: radial-gradient(circle at 50% 30%, #1B4475, #0F294C 72%); border-color: color-mix(in srgb, #D4A03A 70%, transparent); box-shadow: inset 0 0 0 3px #0F294C, inset 0 0 0 4px color-mix(in srgb, #D4A03A 55%, transparent); }
.pf-seal svg { width: 46%; height: 46%; }
[data-theme="dark"] .pf-seal { background: radial-gradient(circle at 50% 35%, #18294A, #0D1A2D 72%); color: #9FC0EE; box-shadow: none; }
[data-theme="dark"] .pf-seal.is-sa { color: #E3B45A; background: radial-gradient(circle at 50% 30%, #23508A, #102A50 72%); }

/* home: frameworks strip */
.hp-fc { text-decoration: none; color: inherit; transition: transform .2s, border-color .2s, box-shadow .2s; }
a.hp-fc:hover, a.hp-fc:focus-visible { transform: translateY(-3px); border-color: #D4A03A; box-shadow: 0 12px 28px rgba(15, 41, 76, .12); }
.hp-fi.pf-seal { width: 46px; height: 46px; background-color: transparent; }

/* explorer: grouped tabs with seals, a filter, and a list that scrolls instead of running down the page */
.pf-tabs { align-content: start; }
@media (min-width: 861px) { .pf-tabs { max-height: 34rem; overflow-y: auto; padding-inline-end: .35rem; scrollbar-width: thin; position: sticky; top: calc(var(--header-h, 80px) + 1rem); } }
.pf-group { font-size: .75rem; font-weight: 600; color: var(--pf-soft, #5B6780); margin: .7rem .2rem .1rem; }
.pf-group:first-of-type, .pf-find + .pf-group { margin-top: .2rem; }
.pf-tab { grid-template-columns: auto minmax(0, 1fr); align-items: center; column-gap: .7rem; }
.pf-tab .pf-seal { width: 36px; height: 36px; } .pf-tt { display: grid; gap: .05rem; min-width: 0; }
.pf-tab[hidden] { display: none; }
.pf-find { display: flex; align-items: center; gap: .5rem; padding: 0 .7rem; height: 40px; border-radius: 12px; border: 1px solid var(--pf-line, #E1E6EE); background: var(--pf-paper, #fff); }
.pf-find svg { width: 15px; height: 15px; fill: none; stroke: currentColor; stroke-width: 2; opacity: .6; } .pf-find input { flex: 1; min-width: 0; border: 0; background: transparent; font: inherit; font-size: .88rem; color: inherit; outline: none; }
@media (max-width: 860px) { .pf-group, .pf-find { display: none; } }

/* home: one closing band — call to action and the newsletter */
.hp-close { background: #0F294C; color: #fff; padding: clamp(3rem, 6vw, 5rem) clamp(1.25rem, 5vw, 5rem); position: relative; overflow: hidden; }
.hp-close::before { content: ""; position: absolute; inset: 0; background: radial-gradient(60% 80% at 85% 20%, rgba(212, 160, 58, .16), transparent 60%); pointer-events: none; }
.hp-close-in { position: relative; display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: clamp(2rem, 5vw, 5rem); align-items: center; }
@media (max-width: 860px) { .hp-close-in { grid-template-columns: minmax(0, 1fr); } }
.hp-close .hp-fh { color: #fff; margin: 0; } .hp-close .hp-fsub { color: rgba(255, 255, 255, .78); margin: .8rem 0 0; max-width: 46ch; }
.hp-close-btns { display: flex; flex-wrap: wrap; gap: .8rem; align-items: center; margin-top: 1.6rem; }
.hp-close-alt { color: #fff; font-weight: 600; text-decoration: none; padding: .75rem 1.2rem; border-radius: 10px; border: 1px solid rgba(255, 255, 255, .3); }
.hp-close-alt:hover { border-color: #D4A03A; color: #D4A03A; }
.hp-close-nl { padding: 1.6rem; border-radius: 18px; background: rgba(255, 255, 255, .06); border: 1px solid rgba(255, 255, 255, .12); }
.hp-close-nl h3 { margin: 0; font-size: 1.1rem; color: #fff; } .hp-close-nl p { margin: .4rem 0 1rem; color: rgba(255, 255, 255, .75); font-size: .9rem; }
.hp-close-nl .hp-close-fine { font-size: .75rem; margin: .5rem 0 0; color: rgba(255, 255, 255, .55); }
.hp-close-nl form > div { max-width: none !important; margin: 0 !important; }
.hp-close-nl .hp-nl-i { flex: 1; background: rgba(255, 255, 255, .95); }

/* section labels: sentence case and quieter — the all-caps tracked label above every heading read as a template */
.section-label, .hp-ey, .pf-ey { text-transform: none !important; letter-spacing: .01em !important; font-size: .85rem !important; font-weight: 600 !important; }
.section-label::before { width: 1.4rem !important; }

/* reveals: shorter and gentler; never leave content hidden when motion is reduced */
.reveal { transform: translateY(14px); transition-duration: .5s; }
@media (prefers-reduced-motion: reduce) { .reveal { opacity: 1 !important; transform: none !important; transition: none !important; } }
.hp-fi.pf-seal svg { width: 22px !important; height: 22px !important; }
.hp-fg { grid-template-columns: repeat(auto-fill, minmax(min(100%, 9.5rem), 1fr)) !important; }
.hp-close .hp-fh { font-size: clamp(1.7rem, 3.2vw, 2.4rem); line-height: 1.15; max-width: 22ch; }
.hp-close .hp-fsub { font-size: 1rem; line-height: 1.7; }
.hp-close-btns .hp-cta-p, .hp-close-alt { font-size: .92rem; font-weight: 700; padding: .8rem 1.3rem; border-radius: 10px; line-height: 1.2; }
.pf-panel h4 { text-transform: none !important; letter-spacing: .01em !important; font-size: .8rem !important; font-weight: 600 !important; }

/* ── Drop 792: service pages ─────────────────────────────────────────── */
.sv-fw { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: 1.2rem; }
.sv-fwi { display: inline-flex; align-items: center; gap: .5rem; padding: .3rem .8rem .3rem .3rem; border-radius: 999px; border: 1px solid var(--border, #E1E6EE); background: var(--bg-card, #fff); text-decoration: none; color: inherit; font-size: .82rem; transition: border-color .2s; }
[dir="rtl"] .sv-fwi { padding: .3rem .3rem .3rem .8rem; }
a.sv-fwi:hover { border-color: #D4A03A; } .sv-fwi .pf-seal { width: 30px; height: 30px; }
.sv-facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(8.5rem, 1fr)); gap: 0; margin: 1.6rem 0 0; border-top: 1px solid var(--border, #E1E6EE); }
.sv-facts div { padding: .9rem 1rem .2rem 0; } [dir="rtl"] .sv-facts div { padding: .9rem 0 .2rem 1rem; }
.sv-facts dt { font-size: .78rem; color: var(--fg-muted, #5B6780); } .sv-facts dd { margin: .15rem 0 0; font-weight: 700; font-size: 1.05rem; }
.sv-steps { list-style: none; margin: 1rem 0 0; padding: 0; display: grid; grid-template-columns: repeat(var(--n), minmax(0, 1fr)); gap: 0; position: relative; }
.sv-steps::before { content: ""; position: absolute; top: 18px; inset-inline: 18px; height: 2px; background: linear-gradient(90deg, #D4A03A, color-mix(in srgb, #0F294C 30%, transparent)); }
[dir="rtl"] .sv-steps::before { background: linear-gradient(270deg, #D4A03A, color-mix(in srgb, #0F294C 30%, transparent)); }
.sv-steps li { position: relative; display: grid; gap: .3rem; padding-inline-end: 1rem; }
.sv-n { width: 36px; height: 36px; border-radius: 50%; display: grid; place-items: center; background: #0F294C; color: #D4A03A; font-weight: 700; font-size: .9rem; box-shadow: 0 0 0 5px var(--bg, #fff); margin-bottom: .5rem; }
.sv-steps b { font-size: .98rem; } .sv-steps li > span:not(.sv-n) { font-size: .86rem; color: var(--fg-muted, #5B6780); line-height: 1.6; }
@media (max-width: 760px) { .sv-steps { grid-template-columns: minmax(0, 1fr); gap: 1rem; } .sv-steps::before { top: 18px; bottom: 18px; inset-inline-start: 17px; inset-inline-end: auto; width: 2px; height: auto; }
  .sv-steps li { grid-template-columns: 36px minmax(0, 1fr); column-gap: .9rem; } .sv-steps li .sv-n { grid-row: span 2; margin: 0; } }
.sv-cases { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 18rem), 1fr)); gap: 1rem; }
.sv-case, .cs-card { padding: 1.3rem; border-radius: 16px; border: 1px solid var(--border, #E1E6EE); background: var(--bg-card, #fff); display: grid; gap: .6rem; align-content: start; }
.sv-case h3 { margin: 0; font-size: 1.05rem; } .sv-case p { margin: 0; color: var(--fg-muted, #5B6780); font-size: .9rem; line-height: 1.65; }
.sv-sector, .cs-sector { font-size: .78rem; font-weight: 600; color: var(--accent-text, #8C6410); }
.sv-metric { display: grid; gap: .25rem; } .sv-metric b { font-size: 1.4rem; color: #0F294C; } [data-theme="dark"] .sv-metric b { color: #9FC0EE; } .sv-metric span { font-size: .8rem; color: var(--fg-muted, #5B6780); }
.sv-bar, .cs-bar { position: relative; display: block; height: 8px; border-radius: 99px; background: var(--bg-2, #F3F6FA); overflow: hidden; margin-top: .3rem; }
.sv-bar i, .cs-bar i { position: absolute; inset-block: 0; inset-inline-start: 0; border-radius: 99px; background: color-mix(in srgb, #0F294C 30%, transparent); }
.sv-bar i.to, .cs-bar i.to { background: linear-gradient(90deg, #0F294C, #D4A03A); opacity: .9; z-index: -1; } .sv-bar, .cs-bar { isolation: isolate; }
.sv-more { font-weight: 600; }

/* ── Drop 792: the mega panel for Services and Products ─────────────── */
.hn-flat.is-mega { display: grid; grid-template-columns: minmax(0, 1fr) 15.5rem; gap: 1.2rem; align-items: start; }
.hn-flat.is-mega .hn-col ul { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .2rem .6rem; }
.hn-mega-side { padding: 1.1rem; border-radius: 14px; background: #0F294C; color: #fff; display: grid; gap: .55rem; align-content: start; }
.hn-mega-t { margin: 0; font-weight: 700; font-size: .95rem; } .hn-mega-d { margin: 0; font-size: .8rem; line-height: 1.55; color: rgba(255, 255, 255, .75); }
.hn-mega-p { justify-self: start; margin-top: .3rem; padding: .55rem .9rem; border-radius: 9px; background: #D4A03A; color: #0F294C !important; font-weight: 700; font-size: .82rem; text-decoration: none; }
.hn-mega-s { font-size: .8rem; color: rgba(255, 255, 255, .85) !important; text-decoration: none; } .hn-mega-s:hover { color: #D4A03A !important; }
@media (max-width: 1100px) { .hn-flat.is-mega { grid-template-columns: minmax(0, 1fr); } .hn-flat.is-mega .hn-col ul { grid-template-columns: minmax(0, 1fr); } .hn-mega-side { display: none; } }

/* ── Drop 792: /case-studies ────────────────────────────────────────── */
.cs { padding: clamp(2rem, 4vw, 3rem) clamp(1.25rem, 5vw, 5rem) clamp(3rem, 6vw, 5rem); display: grid; gap: 1.6rem; }
.cs-filters { display: flex; flex-wrap: wrap; gap: .45rem; }
.cs-filters button { border: 1.5px solid var(--border, #E1E6EE); background: var(--bg-card, #fff); color: inherit; font: inherit; font-size: .85rem; font-weight: 600; padding: .45rem .9rem; border-radius: 999px; cursor: pointer; }
.cs-filters button[aria-pressed="true"] { background: #0F294C; border-color: #0F294C; color: #fff; }
.cs-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 22rem), 1fr)); gap: 1.1rem; }
.cs-card[hidden] { display: none; } .cs-card { gap: .8rem; padding: 1.5rem; border-top: 3px solid #D4A03A; }
.cs-card header { display: flex; justify-content: space-between; align-items: center; gap: .6rem; }
.cs-fw { display: inline-flex; align-items: center; gap: .4rem; font-size: .8rem; } .cs-fw .pf-seal { width: 28px; height: 28px; }
.cs-card h2 { margin: 0; font-size: 1.2rem; line-height: 1.35; }
.cs-nums { display: flex; align-items: baseline; gap: .5rem; } .cs-from { font-size: 1.4rem; color: var(--fg-muted, #5B6780); } .cs-to { font-size: 2.1rem; font-weight: 700; color: #0F294C; } [data-theme="dark"] .cs-to { color: #9FC0EE; }
.cs-arrow { color: #D4A03A; font-weight: 700; } .cs-nums small { color: var(--fg-muted, #5B6780); } [dir="rtl"] .cs-nums { justify-content: flex-end; }
.cs-metric p { margin: .1rem 0 0; font-size: .82rem; color: var(--fg-muted, #5B6780); }
.cs-body { margin: 0; color: var(--fg-muted, #5B6780); line-height: 1.7; font-size: .92rem; }
.cs-card footer { display: flex; flex-wrap: wrap; gap: .4rem .6rem; align-items: center; padding-top: .8rem; border-top: 1px solid var(--border, #E1E6EE); font-size: .82rem; }
.cs-card footer span { color: var(--fg-muted, #5B6780); } .cs-card footer a { font-weight: 600; }
.cs-empty { color: var(--fg-muted, #5B6780); }
.cs-cta { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 1rem; padding: 1.6rem 1.8rem; border-radius: 18px; background: #0F294C; color: #fff; }
.cs-cta h2 { margin: 0; font-size: 1.3rem; color: #fff; } .cs-cta p { margin: .3rem 0 0; color: rgba(255, 255, 255, .75); } .cs-cta-b { display: flex; gap: .6rem; flex-wrap: wrap; }
.cs-cta .btn-outline { color: #fff; border-color: rgba(255, 255, 255, .4); }
.hn .hn-body.has-side { grid-template-columns: minmax(13rem, 16rem) minmax(0, 1fr) 15rem; }
.hn-body.has-side .hn-mega-side { align-self: start; }
@media (max-width: 1100px) { .hn .hn-body.has-side { grid-template-columns: minmax(13rem, 16rem) minmax(0, 1fr); } }

/* ── Drop 793: the scope attached to the contact form ───────────────── */
.scope-card { border: 1px solid color-mix(in srgb, #D4A03A 55%, var(--border, #E1E6EE)); border-radius: 16px; background: color-mix(in srgb, #D4A03A 5%, var(--bg-card, #fff)); padding: 1.1rem 1.2rem; margin-bottom: 1.4rem; scroll-margin-top: calc(var(--header-h, 80px) + 1rem); }
.scope-card header { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: .8rem; align-items: start; }
.scope-card-ic { width: 38px; height: 38px; border-radius: 50%; display: grid; place-items: center; background: #0F294C; } .scope-card-ic svg { width: 18px; height: 18px; fill: none; stroke: #D4A03A; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.scope-card h3 { margin: 0; font-size: 1rem; } .scope-card header p { margin: .2rem 0 0; font-size: .85rem; color: var(--fg-muted, #5B6780); }
.scope-card-ref { font-size: .75rem; font-weight: 700; padding: .25rem .55rem; border-radius: 6px; background: var(--bg-card, #fff); border: 1px solid var(--border, #E1E6EE); white-space: nowrap; }
.scope-card dl { margin: 1rem 0 0; display: grid; grid-template-columns: minmax(8rem, 12rem) minmax(0, 1fr); gap: .45rem 1rem; }
.scope-card dt { font-size: .82rem; color: var(--fg-muted, #5B6780); } .scope-card dd { margin: 0; font-size: .9rem; font-weight: 600; }
@media (max-width: 560px) { .scope-card dl { grid-template-columns: minmax(0, 1fr); } .scope-card dd { margin-bottom: .4rem; } }
.scope-card footer { display: flex; gap: 1rem; align-items: center; margin-top: .9rem; padding-top: .8rem; border-top: 1px solid var(--border, #E1E6EE); font-size: .85rem; }
.scope-card footer a { font-weight: 600; } .scope-card-x { border: 0; background: transparent; color: var(--fg-muted, #5B6780); font: inherit; cursor: pointer; padding: 0; text-decoration: underline; }

/* ── Drop 794: regulatory calendar, guides, team ──────────────────────── */
.hub { padding: clamp(2rem, 4vw, 3rem) clamp(1.25rem, 5vw, 5rem) clamp(3rem, 6vw, 5rem); display: grid; gap: 1.6rem; }
.hub-hp { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.hub-flash { margin: 0; padding: .8rem 1rem; border-radius: 12px; background: color-mix(in srgb, #16a34a 10%, transparent); } .hub-flash.is-error { background: color-mix(in srgb, #dc2626 10%, transparent); color: #991b1b; }
.reg-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(16rem, 20rem); gap: clamp(1rem, 3vw, 2.2rem); align-items: start; }
@media (max-width: 1100px) { .reg-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); } .reg-alert { grid-column: 1 / -1; } }
@media (max-width: 720px) { .reg-grid { grid-template-columns: minmax(0, 1fr); } }
.reg-h { font-size: 1.15rem; margin: 0 0 1rem; } .reg-empty { color: var(--fg-muted, #5B6780); }
.reg-month h3 { font-size: .82rem; font-weight: 600; color: var(--accent-text, #8C6410); margin: 1.2rem 0 .6rem; } .reg-month:first-of-type h3 { margin-top: 0; }
.reg-item { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 1rem; padding: 1rem 1.1rem; border-radius: 14px; border: 1px solid var(--border, #E1E6EE); background: var(--bg-card, #fff); margin-bottom: .7rem; }
.reg-item.is-update { grid-template-columns: minmax(0, 1fr); } .reg-item[hidden] { display: none; }
.reg-item.is-deadline { border-inline-start: 3px solid #D4A03A; }
.reg-date { display: grid; justify-items: center; align-content: start; min-width: 3.4rem; padding: .4rem; border-radius: 10px; background: #0F294C; color: #fff; }
.reg-date b { font-size: 1.5rem; line-height: 1; } .reg-date span { font-size: .66rem; color: rgba(255, 255, 255, .75); margin-top: .25rem; text-align: center; }
.reg-meta { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; font-size: .75rem; color: var(--fg-muted, #5B6780); }
.reg-meta .pf-seal { width: 24px; height: 24px; } .reg-kind { font-weight: 700; color: var(--accent-text, #8C6410); }
.reg-body h4 { margin: .4rem 0 .2rem; font-size: 1rem; } .reg-body p { margin: 0; font-size: .88rem; color: var(--fg-muted, #5B6780); line-height: 1.65; } .reg-src { display: inline-block; margin-top: .4rem; font-size: .8rem; font-weight: 600; }
.reg-alert { position: sticky; top: calc(var(--header-h, 80px) + 1rem); padding: 1.3rem; border-radius: 18px; background: #0F294C; color: #fff; display: grid; gap: .6rem; }
.reg-alert h2 { margin: 0; font-size: 1.1rem; color: #fff; } .reg-alert p { margin: 0; font-size: .86rem; color: rgba(255, 255, 255, .78); }
.reg-nl { display: flex; gap: .4rem; } .reg-nl input[type=email] { flex: 1; min-width: 0; padding: .6rem .8rem; border-radius: 9px; border: 0; font: inherit; }
.reg-fine { font-size: .72rem !important; color: rgba(255, 255, 255, .55) !important; } .reg-cta { color: #D4A03A; font-weight: 600; text-decoration: none; font-size: .88rem; }
.fwp-reg { display: grid; gap: .5rem; } .fwp-ri { display: grid; grid-template-columns: auto auto minmax(0, 1fr); gap: .8rem; align-items: baseline; padding: .7rem .9rem; border-radius: 12px; border: 1px solid var(--border, #E1E6EE); }
.fwp-ri time { font-size: .8rem; font-weight: 700; } .fwp-rk { font-size: .72rem; font-weight: 700; color: var(--accent-text, #8C6410); } .fwp-more { font-weight: 600; font-size: .88rem; }
.gd-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 22rem), 1fr)); gap: 1.2rem; }
.gd-card { border-radius: 18px; border: 1px solid var(--border, #E1E6EE); background: var(--bg-card, #fff); overflow: hidden; display: grid; grid-template-rows: auto 1fr; scroll-margin-top: calc(var(--header-h, 80px) + 1rem); }
.gd-cover img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; display: block; }
.gd-blank { aspect-ratio: 16 / 9; display: grid; place-content: center; justify-items: center; gap: .8rem; padding: 1.4rem; text-align: center; background: radial-gradient(120% 100% at 80% 0%, #1B4475, #0F294C 70%); color: #fff; }
.gd-blank .pf-seal { width: 56px; height: 56px; } .gd-blank b { font-size: 1.05rem; max-width: 22ch; line-height: 1.35; }
.gd-body { padding: 1.2rem 1.3rem 1.4rem; display: grid; gap: .6rem; align-content: start; } .gd-body h2 { margin: 0; font-size: 1.15rem; } .gd-body > p { margin: 0; color: var(--fg-muted, #5B6780); font-size: .9rem; line-height: 1.65; }
.gd-get summary { list-style: none; display: inline-flex; cursor: pointer; } .gd-get summary::-webkit-details-marker { display: none; } .gd-get[open] summary { display: none; }
.gd-form { display: grid; gap: .65rem; margin-top: .2rem; } .gd-form label { display: grid; gap: .25rem; font-size: .8rem; color: var(--fg-muted, #5B6780); }
.gd-form input:not([type=checkbox]), .gd-form select { padding: .6rem .75rem; border-radius: 10px; border: 1px solid var(--border, #E1E6EE); font: inherit; font-size: .9rem; background: var(--bg, #fff); color: var(--fg, #0E1B2E); }
.gd-form .gd-check { display: flex; gap: .5rem; align-items: flex-start; color: var(--fg, #0E1B2E); font-size: .82rem; } .gd-form .btn { justify-self: start; }
.gd-ready { display: grid; gap: .4rem; padding: 1rem; border-radius: 12px; background: color-mix(in srgb, #16a34a 9%, transparent); } .gd-ready span { font-size: .84rem; color: var(--fg-muted, #5B6780); } .gd-ready .btn { justify-self: start; margin-top: .3rem; }
.tm-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 17rem), 1fr)); gap: 1.1rem; } .tm-grid.is-lead { grid-template-columns: repeat(auto-fill, minmax(min(100%, 24rem), 1fr)); }
.tm-card { border-radius: 18px; border: 1px solid var(--border, #E1E6EE); background: var(--bg-card, #fff); overflow: hidden; display: grid; }
.tm-card.is-lead { grid-template-columns: minmax(9rem, 12rem) minmax(0, 1fr); } @media (max-width: 560px) { .tm-card.is-lead { grid-template-columns: minmax(0, 1fr); } }
.tm-photo { aspect-ratio: 4 / 5; background: radial-gradient(120% 100% at 70% 0%, #1B4475, #0F294C 70%); display: grid; place-items: center; overflow: hidden; }
.tm-card:not(.is-lead) .tm-photo { aspect-ratio: 16 / 11; } .tm-photo img { width: 100%; height: 100%; object-fit: cover; } .tm-photo span { font-size: 2.2rem; font-weight: 700; color: #D4A03A; letter-spacing: .05em; }
.tm-body { padding: 1.1rem 1.2rem 1.3rem; display: grid; gap: .45rem; align-content: start; } .tm-body h3 { margin: 0; font-size: 1.1rem; } .tm-role { margin: 0; font-size: .85rem; color: var(--accent-text, #8C6410); font-weight: 600; }
.tm-certs { display: flex; flex-wrap: wrap; gap: .3rem; } .tm-certs span { font-size: .7rem; font-weight: 700; padding: .2rem .5rem; border-radius: 6px; background: var(--bg-2, #F3F6FA); color: #0F294C; } [data-theme="dark"] .tm-certs span { color: #9FC0EE; }
.tm-bio { margin: 0; font-size: .88rem; line-height: 1.65; color: var(--fg-muted, #5B6780); } .tm-in { font-size: .82rem; font-weight: 600; }
.reg-grid > * { min-width: 0; } .reg-alert { overflow: hidden; } .reg-nl { flex-wrap: wrap; } .reg-nl input[type=email] { flex: 1 1 10rem; } .reg-nl .btn { flex: 1 0 auto; justify-content: center; }
/* Drop 795: the department, locked for a scope enquiry */
.dept-locked { display: grid; grid-template-columns: auto minmax(0, 1fr); column-gap: .6rem; align-items: center; padding: .7rem .9rem; border-radius: 10px; border: 1px solid color-mix(in srgb, #D4A03A 50%, var(--border, #E1E6EE)); background: color-mix(in srgb, #D4A03A 6%, var(--bg-card, #fff)); }
.dept-locked svg { grid-row: span 2; width: 18px; height: 18px; fill: none; stroke: #8C6410; stroke-width: 2; stroke-linecap: round; }
.dept-locked b { font-size: .95rem; } .dept-locked span { font-size: .78rem; color: var(--fg-muted, #5B6780); }
/* Drop 796: client questionnaire — review banner and Excel */
.qx-review { display: grid; gap: .2rem; padding: .9rem 1.1rem; border-radius: 12px; margin-bottom: 1rem; background: color-mix(in srgb, #D4A03A 10%, var(--bg-card, #fff)); border: 1px solid color-mix(in srgb, #D4A03A 50%, transparent); }
.qx-review span { font-size: .88rem; color: var(--fg-muted, #5B6780); }
.qx-excel { margin-bottom: 1rem; border: 1px solid var(--border, #E1E6EE); border-radius: 12px; background: var(--bg-card, #fff); }
.qx-excel summary { cursor: pointer; padding: .8rem 1rem; font-weight: 600; font-size: .9rem; } .qx-excel-in { padding: 0 1rem 1rem; display: grid; gap: .7rem; justify-items: start; }
.qx-up { display: flex; flex-wrap: wrap; gap: .6rem; align-items: center; } .qx-fine { margin: 0; font-size: .8rem; color: var(--fg-muted, #5B6780); }

/* ── Drop 797: accessibility ─────────────────────────────────────────── */
.skip-link { position: fixed; top: .6rem; inset-inline-start: .6rem; z-index: 10000; padding: .6rem 1rem; border-radius: 10px; background: #0F294C; color: #fff; font-weight: 700; text-decoration: none; transform: translateY(-160%); transition: transform .15s; }
.skip-link:focus { transform: none; outline: 2px solid #D4A03A; outline-offset: 2px; }
:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible { outline: 2px solid #D4A03A; outline-offset: 2px; }
#main-content:focus { outline: none; }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; } }

/* ── Drop 805: the Sign in menu ───────────────────────────────────────── */
.hn-signin { position: relative; }
.hn-signin-btn { display: inline-flex; align-items: center; gap: .45rem; height: 40px; padding: 0 .85rem; border-radius: 11px; border: 1px solid var(--border, #E1E6EE); background: transparent; color: inherit; font: inherit; font-size: .88rem; font-weight: 600; cursor: pointer; white-space: nowrap; }
.hn-signin-btn svg { width: 16px; height: 16px; } .hn-signin-btn .hn-chev { width: 11px; height: 11px; opacity: .6; transition: transform .2s; }
.hn-signin-btn[aria-expanded="true"] .hn-chev { transform: rotate(180deg); } .hn-signin-btn:hover, .hn-signin-btn[aria-expanded="true"] { border-color: #D4A03A; }
.hn-signin-menu { position: absolute; top: calc(100% + 8px); inset-inline-end: 0; min-width: 17rem; padding: .4rem; border-radius: 14px; background: var(--bg-card, #fff); border: 1px solid var(--border, #E1E6EE); box-shadow: 0 24px 60px rgba(15, 41, 76, .18); z-index: 60; display: grid; gap: .1rem; }
.hn-signin-menu[hidden] { display: none; }
.hn-signin-menu a { display: grid; gap: .1rem; padding: .6rem .75rem; border-radius: 10px; text-decoration: none; color: inherit; }
.hn-signin-menu a:hover, .hn-signin-menu a:focus-visible { background: var(--bg-2, #F3F6FA); outline: none; }
.hn-signin-menu b { font-size: .9rem; } .hn-signin-menu span { font-size: .78rem; color: var(--fg-muted, #5B6780); }
.hn-signin-join { border-top: 1px solid var(--border, #E1E6EE); border-radius: 0 0 10px 10px !important; margin-top: .2rem; }
@media (max-width: 1100px) { .hn-signin { display: none; } }
/* Drop 805: room for the five sections and Contact on the bar */
@media (min-width: 1101px) { .hn .hn-top { padding-inline: .6rem; } }
@media (min-width: 1101px) and (max-width: 1360px) { .hn .hn-top { padding-inline: .45rem; font-size: .9rem; } }
/* Drop 806: the menus use the font chosen in Settings → Fonts (the same variables as the rest of the site) */
.hn, .hn *, .hn-drawer, .hn-drawer *, .hn-signin-menu, .hn-signin-menu * { font-family: var(--font-ui, var(--font-body, inherit)); }
/* Drop 807: the skip link stays out of sight until a keyboard user reaches it */
.skip-link { position: fixed; inset-inline-start: 1rem; top: -4rem; z-index: 10001; padding: .6rem 1.1rem; border-radius: 0 0 10px 10px; background: #0F294C; color: #fff; font-weight: 700; text-decoration: none; transition: top .15s; }
.skip-link:focus, .skip-link:focus-visible { top: 0; outline: 2px solid #D4A03A; outline-offset: 2px; }
@media (prefers-reduced-motion: reduce) { .skip-link { transition: none; } }

/* ── Drop 807: accessibility (WCAG 2.1 AA) ─────────────────────────────── */
.pf-tablist { display: contents; }                                      /* the tab list keeps the original layout */
.cookie-text a { color: #8C6410; text-decoration: underline; }          /* 4.5:1 on white */
[data-theme="dark"] .cookie-text a { color: #E3B45A; }
.schedule-cta-text, .schedule-cta a, .schedule-cta button { color: #1a1205 !important; }   /* dark text on the gold pill */
.contact-form .req, .req { color: #B42318; }                            /* required marks: 5.6:1 */
.svc-link { color: #8C6410; } [data-theme="dark"] .svc-link { color: #E3B45A; }   /* small gold text: 4.6:1 */
:root { --accent-text: #8C6410; } [data-theme="dark"] { --accent-text: #E3B45A; }
.svc-num { color: #858D99 !important; } [data-theme="dark"] .svc-num { color: #5F6B80 !important; }   /* decorative numerals still meet 3:1 */
.product-price-main, .pd-rel-kind { color: #8C6410 !important; } [data-theme="dark"] .product-price-main, [data-theme="dark"] .pd-rel-kind { color: #E3B45A !important; }

/* ── Drop 814: a readable type floor on the website (nothing under ~11.5px) ── */
.hp-fs, .hp-aey, .hp-ps { font-size: max(.72rem, 11.5px) !important; }
.hp-sd { font-size: max(.8rem, 12.5px) !important; } .hp-fn { font-size: max(.74rem, 11.5px) !important; }
.field-label { font-size: max(.74rem, 11.5px) !important; } .field-hint { font-size: max(.78rem, 12px) !important; }
.otp-inline-btn, .contact-form .btn, .btn-sm { font-size: max(.76rem, 12px) !important; }
.svc-link { font-size: max(.76rem, 12px) !important; } .pd-rel-kind { font-size: max(.72rem, 11.5px) !important; }
.fwa-badge, .badge { font-size: max(.72rem, 11.5px); }
/* inline styles written long ago with 0.5–0.69rem text: lifted to the same floor */
[style*="font-size:0.6"], [style*="font-size: 0.6"], [style*="font-size:.6"], [style*="font-size: .6"], [style*="font-size:0.5"], [style*="font-size: 0.5"], [style*="font-size:.5"] { font-size: max(.72rem, 11.5px) !important; }

/* ── Drop 815: roomy, orderly menu panels ───────────────────────────────── */
.hn .hn-panel.is-mega { width: min(100% - 2rem, 62rem); }
.hn .hn-panel.is-mega.is-rail { width: min(100% - 2rem, 74rem); }
.hn-flat.is-mega { grid-template-columns: minmax(0, 1fr) 16rem; gap: 1.4rem; }
.hn-flat.is-mega .hn-col ul { grid-template-columns: repeat(auto-fill, minmax(12.5rem, 1fr)); gap: .25rem .8rem; }
.hn .hn-link { align-items: center; }
.hn .hn-t { overflow-wrap: anywhere; }
/* frameworks: each one with its own seal, the code on one line */
.hn .hn-panel.is-fw .hn-flat.is-mega .hn-col ul { grid-template-columns: repeat(auto-fill, minmax(11.5rem, 1fr)); }
.hn .hn-panel.is-fw .hn-ico { width: 36px; height: 36px; background: none !important; padding: 0; }
.hn .hn-panel.is-fw .hn-ico .pf-seal { width: 36px; height: 36px; }
.hn .hn-panel.is-fw .hn-t { white-space: nowrap; overflow-wrap: normal; font-size: .9rem; }
.hn .hn-panel.is-fw .hn-link { padding-block: .5rem; }
/* plain lists (Insights, Company): two tidy columns when there is room */
.hn .hn-panel.is-list:not(.is-mega) { width: min(100% - 2rem, 36rem); }
.hn .hn-panel.is-list:not(.is-mega) .hn-col ul { display: grid; grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr)); gap: .2rem .6rem; }
@media (max-width: 1100px) { .hn .hn-panel.is-mega, .hn .hn-panel.is-list { width: min(100% - 1rem, 40rem); } }
/* Drop 816: a services menu grouped by category gets the full width (four columns beside the card) */
.hn .hn-panel.is-mega.is-cols { width: min(100% - 2rem, 78rem); max-height: calc(100vh - 140px); overflow-y: auto; }
.hn .hn-panel.is-mega.is-cols .hn-cols { grid-template-columns: repeat(auto-fill, minmax(13.5rem, 1fr)); gap: 1rem 1.4rem; }
.hn .hn-panel.is-mega.is-cols .hn-col-h { white-space: normal; }
/* Drop 819: the regulatory sign-up box — e-mail and button stacked, both full width, so nothing is ever cut off */
.reg-nl { display: grid !important; grid-template-columns: minmax(0, 1fr); gap: .55rem; margin: .2rem 0 0; }
.reg-nl input[type=email] { width: 100%; min-width: 0; height: 46px; padding: 0 .9rem; border-radius: 10px; border: 1px solid rgba(255, 255, 255, .25); background: #fff; color: #0E1B2E; font: inherit; font-size: .92rem; box-sizing: border-box; }
.reg-nl input[type=email]:focus { outline: 2px solid #D4A03A; outline-offset: 1px; }
.reg-nl .btn { width: 100%; height: 46px; display: inline-flex; align-items: center; justify-content: center; border-radius: 10px; background: #D4A03A; color: #1a1205 !important; border: 0; font-weight: 700; letter-spacing: .04em; white-space: nowrap; }
.reg-nl .btn:hover { filter: brightness(1.06); }
.reg-alert { overflow: visible; } .reg-alert .reg-fine { font-size: .78rem !important; color: rgba(255, 255, 255, .62) !important; }
.reg-alert .reg-cta { font-weight: 700; color: #E3B45A; text-decoration: none; } .reg-alert .reg-cta:hover { text-decoration: underline; }

/* ── Drop 820: live demo button and band; case studies empty state ───────── */
.pd-demo-btn { display: inline-flex; align-items: center; gap: .5rem; background: #0F294C; color: #fff !important; border: 2px solid #D4A03A; font-weight: 700; box-shadow: 0 0 0 0 rgba(212, 160, 58, .5); animation: pd-pulse 2.4s ease-out infinite; }
.pd-demo-btn svg { width: 15px; height: 15px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.pd-demo-btn:hover { background: #16386A; }
@keyframes pd-pulse { 0% { box-shadow: 0 0 0 0 rgba(212, 160, 58, .45); } 70% { box-shadow: 0 0 0 12px rgba(212, 160, 58, 0); } 100% { box-shadow: 0 0 0 0 rgba(212, 160, 58, 0); } }
.pd-live { width: 9px; height: 9px; border-radius: 50%; background: #22c55e; box-shadow: 0 0 0 3px rgba(34, 197, 94, .25); flex: none; display: inline-block; }
.pd-demo-band { background: linear-gradient(100deg, #0F294C 0%, #16386A 60%, #1B4475 100%); color: #fff; }
.pd-demo-in { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem 2rem; padding-block: 1.4rem; }
.pd-demo-txt { display: grid; gap: .25rem; } .pd-demo-txt b { font-size: 1.15rem; } .pd-demo-txt > span:last-child { color: rgba(255, 255, 255, .75); font-size: .92rem; }
.pd-demo-ey { display: inline-flex; align-items: center; gap: .45rem; font-size: .8rem; font-weight: 700; color: #E3B45A; }
.pd-demo-go { display: inline-flex; align-items: center; gap: .4rem; height: 48px; padding: 0 1.4rem; border-radius: 12px; background: #D4A03A; color: #1a1205 !important; font-weight: 800; text-decoration: none; white-space: nowrap; }
.pd-demo-go:hover { filter: brightness(1.06); }
@media (prefers-reduced-motion: reduce) { .pd-demo-btn { animation: none; } }
.cs-empty { padding: clamp(2rem, 5vw, 4rem) clamp(1.25rem, 5vw, 5rem); }
.cs-empty-card { max-width: 52rem; padding: clamp(1.5rem, 3vw, 2.4rem); border-radius: 20px; border: 1px solid var(--border, #E1E6EE); background: var(--bg-card, #fff); display: grid; gap: .9rem; }
.cs-empty-card h2 { margin: 0; font-size: clamp(1.3rem, 2.4vw, 1.8rem); } .cs-empty-card p { margin: 0; line-height: 1.8; color: var(--fg-muted, #5B6780); }
.cs-empty-acts { display: flex; gap: .6rem; flex-wrap: wrap; margin-top: .4rem; }
.pc-demo { position: absolute; top: .8rem; inset-inline-end: .8rem; z-index: 2; display: inline-flex; align-items: center; gap: .4rem; padding: .3rem .7rem; border-radius: 999px; background: #0F294C; color: #fff !important; font-size: .76rem; font-weight: 700; text-decoration: none; border: 1px solid #D4A03A; }

/* Drop 861: the framework explorer as a chooser grid above the details — every framework in view at once, no inner scroll
   box and no sideways scrollbar in any browser or at any zoom. */
.pf-sec .pf-fx { grid-template-columns: minmax(0, 1fr); gap: 1.2rem; }
.pf-fx > * { min-width: 0; }
.pf-fx .pf-tabs { max-height: none; overflow: visible; padding: 0; position: static; grid-auto-flow: row; grid-auto-columns: auto;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 11.5rem), 1fr)); gap: .5rem; }
.pf-fx .pf-group { display: block; grid-column: 1 / -1; margin: .4rem 0 0; }
.pf-fx .pf-find { display: flex; grid-column: 1 / -1; max-width: 26rem; min-width: 0; } .pf-fx .pf-find input { width: 100%; }
.pf-fx .pf-tab { min-width: 0; padding: .55rem .75rem; column-gap: .65rem; }
.pf-fx .pf-tab .pf-seal { width: 30px; height: 30px; }
.pf-fx .pf-tab b { font-size: .9rem; overflow-wrap: anywhere; } .pf-fx .pf-who { font-size: .68rem; }
.pf-fx .pf-panels { position: static; }
/* nothing on the public site may push the page sideways */
html, body { max-width: 100%; overflow-x: clip; }

/* Drop 862/868: one seal for every framework, following the theme — light seals on the light theme, dark seals on the dark theme */
html .pf-seal, html .pf-seal.is-sa { color: #0F294C; background: radial-gradient(circle at 50% 35%, #FFFFFF, #F2F5FA 70%);
  border: 1px solid color-mix(in srgb, #0F294C 16%, transparent); box-shadow: inset 0 0 0 3px #FFFFFF, inset 0 0 0 4px color-mix(in srgb, #D4A03A 60%, transparent); }
html[data-theme="dark"] .pf-seal, html[data-theme="dark"] .pf-seal.is-sa { color: #E3B45A; background: radial-gradient(circle at 50% 30%, #23508A, #102A50 72%);
  border-color: color-mix(in srgb, #E3B45A 55%, transparent); box-shadow: inset 0 0 0 3px #102A50, inset 0 0 0 4px color-mix(in srgb, #E3B45A 40%, transparent); }
@media (prefers-color-scheme: dark) { html:not([data-theme="light"]):not([data-theme="dark"]) .pf-seal { color: #E3B45A; background: radial-gradient(circle at 50% 30%, #23508A, #102A50 72%); } }

/* Drop 862: the services menu — categories as tidy cards that pack without gaps, a calmer link style, and a panel
   that always sits inside the window */
html .hn .hn-panel.is-mega.is-cols { width: min(100% - 2rem, 76rem); inset-inline: 1rem; margin-inline: auto; max-height: calc(100vh - 120px); overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; }
html .hn .hn-panel.is-cols .hn-flat.is-mega { display: grid; grid-template-columns: minmax(0, 1fr) 15.5rem; gap: 1.2rem; align-items: start; }
@media (max-width: 1100px) { html .hn .hn-panel.is-cols .hn-flat.is-mega { grid-template-columns: minmax(0, 1fr); } }
html .hn .hn-panel.is-mega.is-cols .hn-cols { display: block; column-width: 15rem; column-gap: .9rem; }
html .hn .hn-panel.is-cols .hn-col { break-inside: avoid; display: block; margin: 0 0 .9rem; padding: .85rem .9rem .6rem; border-radius: 14px;
  background: color-mix(in srgb, var(--snav-text, #0F294C) 3.5%, transparent); border: 1px solid color-mix(in srgb, var(--snav-text, #0F294C) 7%, transparent); }
html .hn .hn-panel.is-cols .hn-col-h { display: flex; align-items: center; gap: .5rem; margin: 0 0 .45rem; font-size: .7rem !important; letter-spacing: .08em; text-transform: uppercase; color: var(--accent-text, #8C6410); white-space: normal; }
html .hn .hn-panel.is-cols .hn-col-h::before { content: ""; flex: none; width: 14px; height: 2px; border-radius: 2px; background: #D4A03A; }
html .hn .hn-panel.is-cols .hn-col-h a { color: inherit; text-decoration: none; } html .hn .hn-panel.is-cols .hn-col-h a:hover { text-decoration: underline; }
html .hn .hn-panel.is-cols .hn-col ul { display: grid; gap: .05rem; }
html .hn .hn-panel.is-cols .hn-link { display: flex; align-items: center; gap: .55rem; padding: .42rem .55rem; border-radius: 9px; font-size: .88rem; font-weight: 600; line-height: 1.35; }
html .hn .hn-panel.is-cols .hn-link::before { content: ""; flex: none; width: 6px; height: 6px; border-radius: 50%; border: 1.5px solid color-mix(in srgb, #D4A03A 80%, transparent); }
html .hn .hn-panel.is-cols .hn-link:hover, html .hn .hn-panel.is-cols .hn-link:focus-visible { background: color-mix(in srgb, #D4A03A 12%, transparent); }
html .hn .hn-panel.is-cols .hn-link:hover::before { background: #D4A03A; }
[data-theme="dark"] .hn .hn-panel.is-cols .hn-col { background: rgba(255,255,255,.035); border-color: rgba(255,255,255,.08); }
[data-theme="dark"] .hn .hn-panel.is-cols .hn-col-h { color: #E3B45A; }

/* Drop 862: phones — the FAQ categories wrap instead of scrolling sideways; the scope builder's steps fit the screen */
@media (max-width: 900px) {
  html .fq-rail { flex-wrap: wrap; overflow: visible; padding-bottom: 0; }
  html .fq-rail a { flex: 1 1 calc(50% - .4rem); min-width: 0; }
  html .fq-rail a span, html .fq-rail a { overflow-wrap: anywhere; }
}
@media (max-width: 760px) {
  html .sb-top { flex-wrap: wrap; min-width: 0; max-width: 100%; }
  html .sb-steps { grid-template-columns: repeat(4, minmax(0, 1fr)); width: 100%; min-width: 0; }
  html .sb-steps li { justify-content: center; min-width: 0; }
}

/* Drop 866: menu effect B — "soft pill". The top item takes a light gold pill and gold text on hover and while its panel
   is open; the panel rises gently into place and fades out on leave; links inside get a soft gold background and their
   marker fills. Switched off for visitors who ask their device for less motion. */
html .hn .hn-top { transition: background-color .2s ease, color .2s ease; }
html .hn .hn-top:hover, html .hn .hn-top:focus-visible, html .hn .hn-top[aria-expanded="true"] { background: color-mix(in srgb, #D4A03A 14%, transparent); color: var(--accent-text, #8C6410); }
html[data-theme="dark"] .hn .hn-top:hover, html[data-theme="dark"] .hn .hn-top:focus-visible, html[data-theme="dark"] .hn .hn-top[aria-expanded="true"] { background: rgba(227,180,90,.14); color: #E3B45A; }
html .hn .hn-top:focus-visible { box-shadow: 0 0 0 2px color-mix(in srgb, #D4A03A 60%, transparent); }
html .hn .hn-panel { transform: translateY(8px); transition: opacity .25s cubic-bezier(.2,.8,.2,1), transform .25s cubic-bezier(.2,.8,.2,1), visibility 0s linear .25s; }
html .hn .hn-item.is-open > .hn-panel { transform: none; transition: opacity .25s cubic-bezier(.2,.8,.2,1), transform .25s cubic-bezier(.2,.8,.2,1), visibility 0s; }
html .hn .hn-link { transition: background-color .18s ease, color .18s ease; }
html .hn .hn-link:hover, html .hn .hn-link:focus-visible { background: color-mix(in srgb, #D4A03A 12%, transparent); }
html .hn .hn-panel.is-cols .hn-link::before { transition: background-color .18s ease; }
html .hn .hn-ico { transition: transform .18s ease; } html .hn .hn-link:hover .hn-ico { transform: translateY(-1px); }
@media (prefers-reduced-motion: reduce) { html .hn .hn-top, html .hn .hn-panel, html .hn .hn-item.is-open > .hn-panel, html .hn .hn-link, html .hn .hn-ico { transition: none !important; transform: none !important; } }
.sv-fwi.is-plain, [dir="rtl"] .sv-fwi.is-plain { padding: .45rem .9rem; }   /* drop 983: a framework with no page of its own */
