/* Page layout (header, navigation and footer are in chrome.css). Colours, type and spacing come from tokens.css (brand pack 2026-10-14). */
@font-face{font-family:"IBM Plex Sans";font-weight:400;font-display:swap;src:url(fonts/IBMPlexSans-Regular.woff2) format("woff2")}
@font-face{font-family:"IBM Plex Sans";font-weight:500;font-display:swap;src:url(fonts/IBMPlexSans-Medium.woff2) format("woff2")}
@font-face{font-family:"IBM Plex Sans";font-weight:600;font-display:swap;src:url(fonts/IBMPlexSans-SemiBold.woff2) format("woff2")}
@font-face{font-family:"IBM Plex Mono";font-weight:500;font-display:swap;src:url(fonts/IBMPlexMono-Medium.woff2) format("woff2")}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;-webkit-font-smoothing:antialiased}
img{max-width:100%}
:focus-visible{outline:2px solid var(--ke-color-orange-deep);outline-offset:3px}
.ke-inverse :focus-visible{outline-color:var(--ke-color-white)}

.wrap{width:100%;max-width:1120px;margin:0 auto;padding:0 var(--ke-gutter)}

/* Buttons (the hero has its own in chrome.css) */
.actions{display:flex;flex-wrap:wrap;gap:var(--ke-space-4);align-items:center}
.ke-btn{padding:var(--ke-space-3) var(--ke-space-5)}
.ke-inverse .ke-btn{color:var(--ke-color-ink)}
.ke-btn:hover{background:#ff7340}

/* Content sections */
.section{padding:var(--ke-space-8) 0}
.section.alt{background:var(--ke-bg-alt);border-top:1px solid var(--ke-border);border-bottom:1px solid var(--ke-border)}
.section .ke-label{color:var(--ke-text-muted);margin:0 0 var(--ke-space-3)}
.section h2{margin:0 0 var(--ke-space-4);max-width:32ch}
.section h3{margin:0 0 var(--ke-space-2)}
.section p{margin:0 0 var(--ke-space-4);max-width:68ch}
.intro{color:var(--ke-text-muted);font-size:var(--ke-type-h3-size);line-height:var(--ke-type-h3-line);margin-bottom:var(--ke-space-7) !important}

.grid{display:grid;gap:var(--ke-space-5);grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}
.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.card{background:var(--ke-color-white);border:1px solid var(--ke-border);border-radius:var(--ke-radius-md);padding:var(--ke-space-5);display:flex;flex-direction:column}
.card p{color:var(--ke-text-muted);margin-bottom:var(--ke-space-3)}
.card p:last-child{margin-bottom:0}
.card .ke-label{color:var(--ke-color-orange-deep);margin-bottom:var(--ke-space-2)}
.card-list{margin:0 0 var(--ke-space-3);padding:0;list-style:none;color:var(--ke-text-muted)}
.card-list li{position:relative;padding-left:var(--ke-space-4);margin-bottom:var(--ke-space-2)}
.card-list li::before{content:"";position:absolute;left:0;top:11px;width:8px;height:2px;background:var(--ke-color-orange)}
.card-wide{grid-column:1/-1}
.card .more{margin-top:auto;padding-top:var(--ke-space-3);font-weight:600;text-decoration:none}
.card .more:hover{text-decoration:underline}

.split{display:grid;gap:var(--ke-space-7);grid-template-columns:1.2fr 1fr;align-items:start}
.facts{margin:0;border-top:1px solid var(--ke-border)}
.facts div{display:grid;grid-template-columns:minmax(120px,40%) 1fr;gap:var(--ke-space-4);padding:var(--ke-space-3) 0;border-bottom:1px solid var(--ke-border)}
.facts dt{font-family:var(--ke-font-mono);font-size:var(--ke-type-label-size);line-height:var(--ke-type-body-line);font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--ke-text-muted)}
.facts dd{margin:0}


.cards-steps{list-style:none;margin:0;padding:0}


.cta{text-align:left}
.cta .wrap{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:var(--ke-space-5)}
.cta h2{margin:0 0 var(--ke-space-2)}
.cta p{margin:0;color:var(--ke-color-silver);max-width:56ch}
.ke-inverse.cta{padding:var(--ke-space-8) 0}

/* Legal pages */
.prose{padding-top:var(--ke-space-7);padding-bottom:var(--ke-space-8)}
.prose h2{font-size:var(--ke-type-h3-size);line-height:var(--ke-type-h3-line);margin:var(--ke-space-6) 0 var(--ke-space-2)}
.prose p,.prose ul{margin:0 0 var(--ke-space-3);max-width:72ch}
.prose ul{padding-left:var(--ke-space-5)}
.prose .meta{color:var(--ke-text-muted);font-size:var(--ke-type-small-size)}
.prose address{font-style:normal;margin-bottom:var(--ke-space-3)}
.prose h2{scroll-margin-top:var(--ke-space-5)}
.toc{margin:0 0 var(--ke-space-6);padding:var(--ke-space-4) var(--ke-space-5);background:var(--ke-bg-alt);border:1px solid var(--ke-border);border-radius:var(--ke-radius-md);max-width:72ch}
.toc h2{margin:0 0 var(--ke-space-2) !important;font-family:var(--ke-font-mono);font-size:var(--ke-type-label-size) !important;line-height:var(--ke-type-label-line) !important;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--ke-text-muted)}
.toc ol{margin:0;padding-left:var(--ke-space-5)}
.toc li{margin:var(--ke-space-1) 0}


@media (max-width:860px){
  .split{grid-template-columns:1fr}
  .grid-3,.grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:640px){
  .grid-2,.grid-3,.grid-4{grid-template-columns:1fr}
}
@media (max-width:600px){
  .wrap{padding-left:var(--ke-space-4);padding-right:var(--ke-space-4)}
  .section{padding:var(--ke-space-7) 0}
  .facts div{grid-template-columns:1fr;gap:0}
}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}


/* Expertise list on the home page */
.expertise{margin:0;border-top:1px solid var(--ke-border)}
.expertise div{display:grid;grid-template-columns:minmax(180px,28%) 1fr;gap:var(--ke-space-5);padding:var(--ke-space-4) 0;border-bottom:1px solid var(--ke-border)}
.expertise dt{font-family:var(--ke-font-mono);font-size:var(--ke-type-label-size);line-height:var(--ke-type-body-line);font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--ke-text-muted)}
.expertise dd{margin:0}
@media (max-width:600px){.expertise div{grid-template-columns:1fr;gap:var(--ke-space-1)}}
