/* One palette for every published page, including retained design previews.
   Light surfaces are pure white, without a warm or cool tint. */
:root {
  color-scheme: light;
  --nw-white: #ffffff;
  --nw-paper: #ffffff;
  --nw-silver: #ffffff;
  --nw-panel: #ffffff;
  --nw-line: #c8d3da;
  --nw-graphite: #11161b;
  --nw-dark: #18232c;
  --nw-ink: #20282e;
  --nw-copy: #4c5962;
  --nw-blue: #54b6e6;
  --nw-blue-light: #8fcff0;
}
html, body.consulting, body.gallery {background-color:var(--nw-paper);color:var(--nw-ink)}
body.consulting .approach, body.consulting .profile-background,
body.consulting .competency, body.consulting .case-study,
.depth .home-profile {background-color:var(--nw-paper)}
body.consulting .competency:nth-of-type(even),
body.consulting .case-study:nth-of-type(even),
.depth .reporting-example, .depth .osms-section,
.depth .section-index, .depth .onward {background-color:var(--nw-silver)}
.depth .work-product, .depth .case-technology {background-color:var(--nw-panel)}
.depth .example-sheet, .device-controls button[aria-pressed=true] {background-color:var(--nw-white)}
.depth .example-sheet, .depth .sheet-header, .depth .definition-grid>div,
.depth .case-role, .depth .case-study, .depth .competency,
.depth .section-index, .depth .workflow-step, .depth .workflow-output {border-color:var(--nw-line)}
.depth .detail-hero {background-color:var(--nw-graphite);color:var(--nw-paper)}
.depth .home-projects, .depth .project-context, .depth .fact-strip,
.depth .profile-signature, .bold .experience, .bold .expertise {background-color:var(--nw-dark);color:var(--nw-paper)}
.consulting .contact, .bold .contact {background-color:var(--nw-dark)}
.consulting .footer, .bold .footer {background-color:var(--nw-graphite)}
.depth .detail-heading h1 em, .bold .hero h1 em, .bold .experience h2 em,
.depth .home-projects h2 em {color:var(--nw-blue-light)}
.bold .button, .consulting .button {background-color:var(--nw-blue);color:#09212d}
.depth .competency-content>p:not(.technology-line), .depth .detail-list li,
.depth .case-context, .depth .workflow-step p, .depth .definition-grid dd,
.depth .home-profile>div:last-child>p, .depth .profile-bio p,
.depth .profile-detail p {color:var(--nw-copy)}
.consulting .mobile-menu nav, .depth .mobile-menu nav,
.viewer-bar, .viewer-footer {background-color:var(--nw-paper)}
.frame-stage {background-color:var(--nw-panel);background-image:radial-gradient(#bcbcbc 1px,transparent 1px)}
.device-controls {background-color:var(--nw-silver);border-color:var(--nw-line)}
.gallery-nav, .gallery-footer, .palette {border-color:var(--nw-line)}
.hero-image, .tile-image {filter:grayscale(1) contrast(1.08)}
.legal-details {display:grid;grid-template-columns:1fr 1fr;gap:70px;min-height:330px}
.legal-details .eyebrow {display:block;color:#527e95;margin-bottom:22px}
.legal-details h2 {font-size:32px;margin-bottom:12px}
.legal-owner {font-size:19px;margin-bottom:22px}
.legal-details address {font-style:normal;font-size:15px;line-height:1.9;color:var(--nw-copy)}
.legal-data {margin:0;padding:0;align-self:center}
.legal-data>div {border-top:1px solid var(--nw-line);padding:22px 0}
.legal-data dt {font-size:12px;color:var(--nw-copy);margin-bottom:12px}
.legal-data dd {margin:0;font-size:17px;line-height:1.6}
.legal-data a {border-bottom:1px solid #7298ab;overflow-wrap:anywhere}
.legal-page .detail-hero {padding-bottom:50px}
.privacy-layout {display:grid;grid-template-columns:minmax(190px,1fr) minmax(0,2fr);gap:clamp(36px,6vw,100px);padding-top:64px;padding-bottom:90px;align-items:start}
.privacy-index {display:flex;flex-direction:column;gap:16px;position:sticky;top:28px}
.privacy-index .eyebrow {font-size:15px;font-weight:700;color:#345466;margin-bottom:10px}
.privacy-index a {font-size:15px;line-height:1.6;color:var(--nw-copy);text-decoration:none}
.privacy-index a:hover,.privacy-index a:focus-visible {color:var(--nw-ink);text-decoration:underline;text-underline-offset:5px}
.privacy-copy {min-width:0;max-width:900px;font-size:16px;line-height:1.85;color:var(--nw-copy);overflow-wrap:anywhere}
.privacy-copy p {margin:0 0 20px}
.privacy-copy a {color:#345466;text-decoration:underline;text-underline-offset:4px}
.privacy-review {border:1px solid var(--nw-line);border-left:4px solid var(--nw-blue);padding:26px 30px;margin-bottom:24px;background:var(--nw-white)}
.privacy-review h2 {font-size:21px;line-height:1.5;color:var(--nw-ink);margin:0 0 12px;letter-spacing:0}
.privacy-review p {font-size:14px;margin:0}
.privacy-date {font-size:13px}
.privacy-section {border-top:1px solid var(--nw-line);padding:36px 0 18px;scroll-margin-top:28px}
.privacy-section h2 {display:flex;gap:18px;align-items:baseline;font-size:28px;line-height:1.4;letter-spacing:-.5px;color:var(--nw-ink);margin:0 0 24px}
.privacy-number {font-size:13px;letter-spacing:.8px;color:#527e95;flex:none}
.privacy-section address {font-style:normal;margin-bottom:18px}
.privacy-section .privacy-owner {color:var(--nw-ink);margin-bottom:10px}
.privacy-objection {border-left:3px solid var(--nw-line);padding-left:24px;margin:28px 0}
.privacy-objection h3 {font-size:20px;color:var(--nw-ink);margin:0 0 12px}
.depth .footer>div {flex-wrap:wrap}
@media(max-width:720px){.privacy-layout{grid-template-columns:minmax(0,1fr);gap:32px;padding-top:35px;padding-bottom:50px}.privacy-index{position:static;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 18px}.privacy-index .eyebrow{grid-column:1/-1}.privacy-index a{font-size:13px}.privacy-copy{font-size:15px}.privacy-review{padding:20px}.privacy-section h2{font-size:24px;gap:12px}.privacy-section{padding-top:28px}.privacy-objection{padding-left:16px}}
/* White surfaces are separated by rules rather than tinted backgrounds. */
.cookie-banner[hidden] {display:none!important}
.cookie-banner {position:fixed;z-index:1000;left:28px;right:28px;bottom:24px;max-width:1320px;margin:0 auto;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:32px;padding:26px 30px;background:#fff;color:#20282e;border:1px solid #c8d3da;border-top:3px solid #54b6e6;box-shadow:0 12px 45px #11161b26;max-height:85dvh;overflow:auto}
.cookie-banner h2 {font-size:22px;line-height:1.3;font-weight:600;letter-spacing:-.4px;margin:0 0 9px}
.cookie-banner p {font-size:14px;line-height:1.65;color:#4c5962;margin:0;max-width:700px}
.cookie-links {display:flex;flex-wrap:wrap;gap:10px 24px;margin-top:14px;font-size:13px;line-height:1.5}
.cookie-links a {color:#345466;text-decoration:underline;text-underline-offset:4px}
.cookie-actions {display:grid;grid-template-columns:repeat(2,minmax(145px,1fr));gap:10px}
.cookie-actions button,.cookie-dialog-actions button {min-height:46px;padding:12px 18px;border:1px solid #345466;background:#fff;color:#20282e;cursor:pointer}
.cookie-actions button {font-family:inherit;font-size:13px;font-weight:600;line-height:1.5}
.cookie-actions [data-cookie-open] {grid-column:1/-1;min-height:36px;padding:5px;border-color:transparent;font-weight:400;text-decoration:underline;text-underline-offset:4px;color:#345466}
.cookie-actions button:hover,.cookie-dialog-actions button:hover {border-color:#11161b;background:#18232c;color:#fff}
.cookie-banner :focus-visible,.cookie-dialog :focus-visible,.cookie-footer-button:focus-visible {outline:2px solid #1678a8;outline-offset:4px}
.cookie-footer-button {font:inherit;color:inherit;background:transparent;border:0;cursor:pointer;white-space:nowrap;text-decoration:underline;text-underline-offset:5px;min-height:44px;padding:8px 0}
.cookie-dialog {width:min(640px,calc(100vw - 40px));height:auto;max-height:calc(100dvh - 48px);max-width:640px;margin:auto;padding:30px;background:#fff;color:#20282e;border:1px solid #c8d3da;overflow:auto;box-shadow:0 20px 80px #11161b40}
.cookie-dialog[open] {display:block}
.cookie-dialog::backdrop {background:#11161b99;backdrop-filter:blur(3px)}
.cookie-dialog-head {display:flex;align-items:flex-start;justify-content:space-between;gap:20px}
.cookie-dialog h2 {font-size:27px;font-weight:500;line-height:1.25;letter-spacing:-.5px;margin:4px 0 12px}
.cookie-close {display:grid;place-items:center;flex:none;width:44px;height:44px;background:transparent;border:1px solid #c8d3da;font-size:28px;line-height:1;cursor:pointer;color:#20282e}
.cookie-dialog p {font-size:14px;line-height:1.65;color:#4c5962;margin:10px 0 0}
.cookie-dialog .cookie-dialog-intro {margin:0 0 24px}
.cookie-category {padding:22px 0;border-top:1px solid #c8d3da}
.cookie-category-heading {display:flex;align-items:center;justify-content:space-between;gap:20px}
.cookie-dialog h3,.cookie-preference strong {font-size:16px;line-height:1.4;font-weight:600;letter-spacing:0;margin:0;color:#20282e}
.cookie-status {font-size:12px;white-space:nowrap;color:#345466}
.cookie-preference {display:flex;align-items:center;justify-content:space-between;gap:20px;cursor:pointer}
.cookie-preference>span {display:flex;flex-direction:column;gap:4px}
.cookie-optional {font-size:12px;color:#4c5962}
.cookie-preference input {width:24px;height:24px;flex:none;accent-color:#345466;cursor:pointer}
.cookie-hosting {padding-top:20px;border-top:1px solid #c8d3da}
.cookie-dialog-actions {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:24px}
.cookie-dialog-actions button {font-family:inherit;font-size:13px;font-weight:600;line-height:1.5}
body:has(.cookie-dialog[open]) {overflow:hidden}
@media(max-width:1000px){.cookie-banner{grid-template-columns:1fr;gap:18px}.cookie-actions{grid-template-columns:repeat(3,minmax(0,1fr))}.cookie-actions [data-cookie-open]{grid-column:auto;border-color:#345466;text-decoration:none;font-weight:600}}
@media(max-width:600px){.cookie-banner{left:12px;right:12px;bottom:12px;padding:20px;gap:16px}.cookie-banner h2{font-size:21px}.cookie-banner p{font-size:13px}.cookie-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.cookie-actions button{padding:11px 8px;font-size:12px}.cookie-actions [data-cookie-open]{grid-column:1/-1;border-color:transparent;text-decoration:underline;min-height:32px;padding:5px}.cookie-dialog{width:calc(100vw - 24px);max-height:calc(100dvh - 24px);padding:22px}.cookie-dialog h2{font-size:23px}.cookie-dialog-head{gap:12px}.cookie-category-heading{gap:12px;align-items:flex-start}.cookie-status{font-size:11px}.cookie-dialog-actions{gap:8px}.cookie-dialog-actions button{padding:12px 8px;font-size:12px}.cookie-dialog p{font-size:13px}}
.consulting:not(.bold) .experience {background-color:var(--nw-white)}
.depth :is(.qualifications,.osms-section,.profile-background,.profile-publications,.reporting-example,.home-profile) {border-top:1px solid var(--nw-line)}
.depth .qualification-active {border:1px solid var(--nw-line);border-left:4px solid var(--nw-blue)}
.depth :is(.work-product,.case-technology,.catalog-detail-body) {border:1px solid var(--nw-line)}
.depth .work-product {border-left:2px solid var(--nw-blue)}
.depth .example-sheet {box-shadow:none}
/* A consistent, readable hierarchy for category labels on every page. */
.consulting :is(.section,.project-catalog,.workflow) .eyebrow,.consulting .onward>.eyebrow,.gallery .eyebrow {
  font-size:15px;line-height:1.5;font-weight:700;letter-spacing:1.2px;
  color:var(--nw-rubric,#345466);overflow-wrap:break-word;
}
.consulting :is(.home-projects,.contact),.bold .experience {--nw-rubric:#b8d9ed}
.consulting .section-head>.eyebrow {padding-top:7px}
.depth .role-label {display:block;font-size:13px;line-height:1.6;font-weight:600;letter-spacing:1px;color:#345466}
@media(max-width:720px) {
  .legal-details {grid-template-columns:1fr;gap:30px;padding-top:42px;padding-bottom:40px}
  .legal-data dd {font-size:16px}
  .legal-page .detail-hero {padding-bottom:35px}
  .consulting :is(.section,.project-catalog,.workflow) .eyebrow,.consulting .onward>.eyebrow,.gallery .eyebrow {font-size:13px;letter-spacing:1px}
  .consulting .section-head>.eyebrow {padding-top:0}
}
