/* KBG study system: Inter, white / charcoal / orange, open editorial grids.
   Scope all screen rules to this page; do not modify the portfolio or ERP. */
.case-study-page {
  --study-line: #dedede; --study-muted: #525252; --study-accent: #ef7f1b;
  --study-nav-height: 64px; background: #fff;
}
.case-study-page .study-symbols { position:absolute; width:0; height:0; overflow:hidden; }
.case-study-page .study-container { width:calc(100% - 96px); max-width:1280px; margin-inline:auto; }
.case-study-page main { padding-top:var(--kbg-header-height, 90px); color:#171717; }
.case-study-page .study-introduction { padding-top:28px; }
.case-study-page .study-utility { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:26px; font-size:14px; color:var(--study-muted); }
.case-study-page .study-utility nav { display:flex; gap:14px; align-items:center; }
.case-study-page .study-print { display:inline-flex; align-items:center; gap:9px; padding:8px 0 8px 12px; background:none; border:0; font:inherit; color:inherit; cursor:pointer; min-height:44px; }
.case-study-page [hidden] { display:none !important; }
.case-study-page .study-icon { width:24px; height:24px; fill:none; stroke:currentColor; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; flex-shrink:0; }
.case-study-page .study-hero { display:grid; grid-template-columns:1fr 1fr; align-items:center; gap:48px; }
.case-study-page :where(main) h1 { font-size:clamp(40px,4.5vw,68px); font-weight:750; line-height:1.07; letter-spacing:-.045em; margin:0 0 24px; overflow-wrap:anywhere; }
.case-study-page .study-lead { font-size:clamp(20px,2vw,28px); color:#525252; line-height:1.45; }
.case-study-page .study-figure { margin:0; min-width:0; break-inside:avoid; }
.case-study-page .study-media { aspect-ratio:16/9; background:#eee; display:flex; flex-direction:column; justify-content:center; align-items:center; text-align:center; gap:20px; padding:28px; color:#5d6268; border:1px solid #e7e7e7; }
.case-study-page .study-media .study-icon { width:58px; height:58px; color:#90959b; stroke-width:1.6; }
.case-study-page .study-media span { max-width:30ch; font-size:16px; line-height:1.5; }
.case-study-page :where(main) figcaption { padding:11px 16px; background:#f5f5f5; color:var(--study-muted); font-size:12px; line-height:1.5; }
.case-study-page .study-figure img { width:100%; height:auto; display:block; }
.case-study-page .study-facts { display:grid; grid-template-columns:repeat(4,1fr); margin:32px 0 0; padding:26px 0; border-block:1px solid var(--study-line); }
.case-study-page .study-facts > div { padding:0 24px; border-left:1px solid var(--study-line); min-width:0; }
.case-study-page .study-facts > div:first-child { padding-left:0; border:0; }
.case-study-page :where(main) dt { font-size:13px; margin-bottom:8px; }
.case-study-page :where(main) dd { font-size:18px; line-height:1.4; overflow-wrap:anywhere; }
.case-study-page .study-nav { position:sticky; top:var(--kbg-header-height,90px); z-index:40; background:#fff; border-bottom:1px solid #eee; }
.case-study-page .study-nav > div { display:flex; gap:44px; }
.case-study-page .study-nav a { padding:19px 0 16px; border-bottom:2px solid transparent; font-size:15px; color:#525252; min-height:56px; white-space:nowrap; }
.case-study-page .study-nav a[aria-current] { color:#171717; border-color:var(--study-accent); font-weight:650; }
.case-study-page .study-section { padding-block:60px; scroll-margin-top:calc(var(--kbg-header-height,90px) + var(--study-nav-height) + 20px); }
.case-study-page :where(main) h2 { font-size:clamp(28px,3vw,42px); font-weight:720; line-height:1.16; letter-spacing:-.035em; margin:0 0 32px; text-wrap:balance; }
.case-study-page :where(main) h3 { font-size:17px; line-height:1.4; font-weight:650; margin:0 0 12px; letter-spacing:-.015em; }
.case-study-page :where(main) p { color:var(--study-muted); font-size:15px; line-height:1.75; }
.case-study-page .study-overview { background:#f5f5f5; padding-block:44px; }
.case-study-page .study-overview h2 { font-size:30px; margin-bottom:24px; }
.case-study-page .study-overview-grid { display:grid; grid-template-columns:1fr 1fr .65fr; gap:40px; }
.case-study-page .study-scope { border-left:1px solid var(--study-line); padding-left:32px; }
.case-study-page .study-scope ul { list-style:none; display:grid; gap:3px; padding:0; margin:12px 0 0; color:var(--study-muted); font-size:14px; }
.case-study-page .study-scope li { position:relative; padding-left:24px; }
/* Draw a check with borders: no icon font, external asset or print background required. */
.case-study-page .study-scope li::before { content:""; position:absolute; left:3px; top:.45em; width:6px; height:11px; border:solid #b95500; border-width:0 2px 2px 0; transform:rotate(45deg); }
.case-study-page .study-engineering-grid { display:grid; grid-template-columns:1.08fr 1fr; gap:40px; align-items:start; }
.case-study-page .study-pair { display:grid; grid-template-columns:1fr 1fr; gap:30px; }
.case-study-page .study-pair p { padding-block:18px; border-top:1px solid var(--study-line); }
.case-study-page .study-pair-head h3 { font-size:15px; }
.case-study-page .study-mobile-label { display:none; }
.case-study-page .study-drawing .study-media { aspect-ratio:1.55; background:#f2f2f2; }
.case-study-page .study-callouts { margin:18px 0 0; padding:0; display:grid; grid-template-columns:repeat(3,1fr); gap:18px; list-style:none; }
.case-study-page .study-callouts span { display:block; color:#b95500; font-size:21px; font-weight:650; margin-bottom:5px; }
.case-study-page .study-callouts p { font-size:13px; line-height:1.5; }
.case-study-page .study-specs { margin-top:38px; }
.case-study-page .study-table { width:100%; border-collapse:collapse; table-layout:fixed; font-size:14px; line-height:1.55; }
.case-study-page .study-table caption { text-align:left; padding:0 0 16px; }
.case-study-page .study-table th, .case-study-page .study-table td { padding:17px 14px; border-bottom:1px solid var(--study-line); text-align:left; vertical-align:top; overflow-wrap:anywhere; }
.case-study-page .study-table th { font-weight:600; }
.case-study-page .study-table td { color:var(--study-muted); }
.case-study-page .study-table thead { background:#f5f5f5; }
.case-study-page .study-specs th { width:30%; }
.case-study-page .study-ruled { border-top:1px solid var(--study-line); }
.case-study-page .study-timeline { display:grid; grid-template-columns:repeat(4,1fr); gap:30px; list-style:none; margin:0 0 36px; padding:0; counter-reset:step; }
.case-study-page .study-timeline li { min-width:0; position:relative; }
.case-study-page .study-step { display:flex; justify-content:center; align-items:center; width:44px; height:44px; border:1px solid #262626; border-radius:50%; background:#fff; font-size:18px; font-weight:550; margin:0 0 17px; }
.case-study-page .study-timeline li:not(:last-child)::after { content:""; position:absolute; height:1px; background:#aaa; top:22px; left:64px; right:0; }
.case-study-page .study-timeline .study-date { font-size:13px; margin-bottom:10px; }
.case-study-page .study-gallery { display:grid; grid-template-columns:1fr 1fr; gap:24px; }
.case-study-page .study-section-intro { max-width:800px; font-size:17px; line-height:1.65; margin:-12px 0 36px; }
.case-study-page .study-results-grid { display:grid; grid-template-columns:1.6fr 1fr; gap:38px; }
.case-study-page .study-note { font-size:12px; line-height:1.6; color:#626262; }
.case-study-page .study-chart { margin-block:14px 10px; aspect-ratio:1.7; }
.case-study-page .study-completion { border-left:2px solid var(--study-accent); padding-left:22px; margin-top:32px; max-width:850px; }
.case-study-page .study-documents { display:grid; grid-template-columns:.8fr 1fr 1fr; gap:24px; margin-top:34px; align-items:center; }
.case-study-page .study-document { display:flex; align-items:center; gap:16px; padding:20px; border:1px solid var(--study-line); min-width:0; }
.case-study-page .study-document p { font-size:14px; }
.case-study-page .study-enquiry { background:#171717; color:white; padding-block:56px; }
.case-study-page .study-enquiry > div { display:flex; justify-content:space-between; align-items:center; gap:40px; }
.case-study-page .study-enquiry h2 { margin-bottom:16px; }
.case-study-page .study-enquiry p { color:#d4d4d4; font-size:17px; }
.case-study-page .study-button { display:inline-flex; align-items:center; justify-content:center; gap:24px; background:var(--study-accent); color:#171717; font-size:15px; font-weight:650; padding:17px 24px; border-radius:3px; white-space:nowrap; min-height:48px; }
.case-study-page .study-button:hover { background:#f89d4e; }
.case-study-page .study-back { padding-block:24px; text-align:right; }
.case-study-page .study-back a { display:inline-flex; gap:16px; align-items:center; font-size:14px; min-height:44px; }
.case-study-page .study-skip { position:fixed; top:8px; left:16px; padding:12px; background:#fff; color:#171717; z-index:10001; transform:translateY(-200%); }
.case-study-page .study-skip:focus { transform:none; }
.case-study-page :where(main) :focus-visible, .case-study-page .study-skip:focus-visible { outline:2px solid #b95500; outline-offset:5px; }
.case-study-page :where(main) h2:focus, .case-study-page main:focus { outline:none; }
@media (max-width:1023px) {
  .case-study-page .study-container { width:calc(100% - 48px); }
  .case-study-page .study-hero { gap:28px; }
  .case-study-page .study-engineering-grid, .case-study-page .study-results-grid { grid-template-columns:1fr; gap:28px; }
  .case-study-page .study-drawing .study-media { aspect-ratio:2; }
  .case-study-page .study-overview-grid { grid-template-columns:1fr 1fr; gap:24px; }
  .case-study-page .study-scope { grid-column:1/-1; border:0; padding:0; }
  .case-study-page .study-scope ul { display:flex; flex-wrap:wrap; gap:20px; }
  .case-study-page .study-documents { grid-template-columns:1fr 1fr; }
  .case-study-page .study-documents > div:first-child { grid-column:1/-1; }
}
@media (max-width:767px) {
  .case-study-page .study-container { width:calc(100% - 40px); }
  .case-study-page .study-introduction { padding-top:18px; }
  .case-study-page .study-utility { font-size:12px; gap:8px; margin-bottom:24px; }
  .case-study-page .study-utility nav { gap:9px; }
  .case-study-page .study-print { gap:6px; padding-left:0; }
  .case-study-page .study-print .study-icon { width:20px; height:20px; }
  .case-study-page .study-hero { grid-template-columns:1fr; gap:24px; }
  .case-study-page :where(main) h1 { font-size:42px; margin-bottom:14px; }
  .case-study-page .study-lead { font-size:20px; }
  .case-study-page .study-media { padding:24px 16px; gap:12px; }
  .case-study-page .study-media .study-icon { width:40px; height:40px; }
  .case-study-page .study-media span { font-size:14px; }
  .case-study-page .study-facts { grid-template-columns:1fr 1fr; gap:20px 0; padding-block:20px; margin-top:24px; }
  .case-study-page .study-facts > div { padding:0 16px; }
  .case-study-page .study-facts > div:nth-child(odd) { border:0; padding-left:0; }
  .case-study-page :where(main) dd { font-size:15px; } .case-study-page :where(main) dt { font-size:12px; }
  .case-study-page .study-nav > div { gap:0; justify-content:space-between; }
  .case-study-page .study-nav a { font-size:12px; padding:17px 0 14px; min-height:52px; }
  .case-study-page .study-section { padding-block:36px; }
  .case-study-page :where(main) h2 { font-size:29px; margin-bottom:24px; }
  .case-study-page .study-overview-grid, .case-study-page .study-gallery, .case-study-page .study-documents { grid-template-columns:1fr; }
  .case-study-page .study-scope ul { gap:8px 20px; }
  .case-study-page .study-pair { grid-template-columns:1fr; gap:0; border-top:1px solid var(--study-line); padding-block:16px; }
  .case-study-page .study-pair p { border:0; padding:0 0 12px; }
  .case-study-page .study-pair-head { display:none; }
  .case-study-page .study-mobile-label { display:block; font-weight:650; color:#171717; margin-bottom:6px; }
  .case-study-page .study-callouts { gap:12px; }
  .case-study-page .study-table { font-size:12px; }
  .case-study-page .study-table th, .case-study-page .study-table td { padding:12px 6px; }
  .case-study-page .study-specs th { width:35%; }
  .case-study-page .study-timeline { grid-template-columns:1fr; gap:24px; }
  .case-study-page .study-timeline li { padding-left:64px; }
  .case-study-page .study-step { position:absolute; top:0; left:0; }
  .case-study-page .study-timeline li:not(:last-child)::after { width:1px; height:auto; left:22px; right:auto; top:54px; bottom:-14px; }
  .case-study-page .study-enquiry > div { flex-direction:column; align-items:flex-start; gap:24px; }
  .case-study-page .study-button { white-space:normal; }
}
@media (prefers-reduced-motion:reduce) {
  html:has(.case-study-page) { scroll-behavior:auto; }
  .case-study-page main *, .case-study-page main *::before, .case-study-page main *::after { animation:none!important; transition:none!important; }
}
@page { size:A4; margin:12mm; }
@media print {
  .case-study-page { background:#fff!important; color:#111; font-size:10pt; }
  .case-study-page > header, .case-study-page > footer, .case-study-page .study-nav,
  .case-study-page .study-utility, .case-study-page .study-enquiry, .case-study-page .study-back,
  .case-study-page .study-skip, .case-study-page .mobile-menu, .case-study-page .mobile-menu-backdrop,
  .case-study-page .wa-float, .case-study-page .back-to-top,
  .case-study-page #kbgToTop, .case-study-page .kbg-search-overlay { display:none!important; }
  .case-study-page main { padding:0; }
  .case-study-page .study-container { width:100%; max-width:none; }
  .case-study-page .study-introduction { padding:0; }
  .case-study-page .study-section { padding:5mm 0; }
  .case-study-page :where(main) h1 { font-size:28pt; margin-bottom:4mm; }
  .case-study-page :where(main) h2, .case-study-page .study-overview h2 { font-size:20pt; margin-bottom:5mm; break-after:avoid; }
  .case-study-page :where(main) h3 { font-size:11pt; margin-bottom:2mm; break-after:avoid; }
  .case-study-page :where(main) p, .case-study-page .study-lead { font-size:10pt; line-height:1.4; }
  .case-study-page .study-note, .case-study-page :where(main) figcaption { font-size:8pt; }
  .case-study-page :where(main) p { orphans:3; widows:3; }
  .case-study-page .study-hero { grid-template-columns:1fr 1fr; gap:6mm; }
  .case-study-page .study-facts { grid-template-columns:repeat(4,1fr); gap:0; margin-top:6mm; padding:5mm 0; }
  .case-study-page .study-facts > div { padding:0 3mm; } .case-study-page :where(main) dd { font-size:10pt; }
  .case-study-page .study-overview { background:#fff; }
  .case-study-page .study-overview-grid { grid-template-columns:1fr 1fr; gap:5mm; }
  .case-study-page .study-scope { grid-column:1/-1; border:0; padding:0; }
  .case-study-page .study-scope ul { display:flex; gap:5mm; }
  .case-study-page .study-engineering-grid { display:block; }
  .case-study-page .study-engineering-grid > div:last-child { break-inside:avoid; }
  .case-study-page .study-pair { grid-template-columns:1fr 1fr; gap:6mm; border:0; padding:0; }
  .case-study-page .study-pair-head { display:grid; }
  .case-study-page .study-pair p { padding:3mm 0; border-top:1px solid #ddd; }
  .case-study-page .study-mobile-label { display:none; }
  .case-study-page .study-drawing { margin-top:5mm; }
  .case-study-page .study-media { aspect-ratio:auto; min-height:26mm; padding:3mm; gap:2mm; background:#f3f3f3!important; print-color-adjust:exact; }
  .case-study-page .study-drawing .study-media { aspect-ratio:auto; min-height:40mm; }
  .case-study-page .study-media span { font-size:9pt; }
  .case-study-page .study-media .study-icon { width:9mm; height:9mm; }
  .case-study-page .study-figure img { max-height:75mm; object-fit:contain; }
  .case-study-page .study-callouts { margin-top:3mm; gap:4mm; }
  .case-study-page .study-callouts span { font-size:12pt; }
  .case-study-page .study-callouts p { font-size:9pt; }
  .case-study-page .study-specs { margin-top:5mm; }
  .case-study-page .study-timeline { grid-template-columns:repeat(4,1fr); gap:5mm; margin-bottom:5mm; }
  .case-study-page .study-timeline li { padding:0; }
  .case-study-page .study-step { position:static; width:9mm; height:9mm; margin-bottom:3mm; font-size:10pt; }
  .case-study-page .study-timeline li:not(:last-child)::after { width:auto; height:1px; left:12mm; right:0; top:4.5mm; bottom:auto; }
  .case-study-page .study-timeline .study-date { font-size:9pt; margin-bottom:2mm; }
  .case-study-page .study-gallery { grid-template-columns:1fr 1fr; gap:5mm; }
  .case-study-page .study-results-grid { display:block; }
  .case-study-page .study-results-grid > div + div { margin-top:5mm; }
  .case-study-page .study-chart { min-height:22mm; margin:2mm 0; }
  .case-study-page .study-completion { margin-top:4mm; }
  .case-study-page .study-section-intro { margin:0 0 5mm; }
  .case-study-page .study-table { font-size:9pt; }
  .case-study-page .study-table th, .case-study-page .study-table td { padding:3mm; }
  .case-study-page .study-table thead { display:table-header-group; }
  .case-study-page .study-measures { break-inside:avoid; }
  .case-study-page .study-table tr, .case-study-page .study-pair, .case-study-page .study-callouts,
  .case-study-page .study-completion, .case-study-page .study-document { break-inside:avoid; }
  .case-study-page .study-documents { grid-template-columns:1fr 1fr; gap:4mm; margin-top:5mm; }
  .case-study-page .study-documents > div:first-child { grid-column:1/-1; }
  .case-study-page .study-document { padding:3mm; }
  .case-study-page a { color:inherit; text-decoration:none; }
}
