﻿*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}:root{--background: 0 0% 100%;--foreground: 0 0% 3.9%;--card: 0 0% 100%;--card-foreground: 0 0% 3.9%;--popover: 0 0% 100%;--popover-foreground: 0 0% 3.9%;--primary: 0 0% 9%;--primary-foreground: 0 0% 98%;--secondary: 0 0% 96.1%;--secondary-foreground: 0 0% 9%;--muted: 0 0% 96.1%;--muted-foreground: 0 0% 45.1%;--accent: 0 0% 96.1%;--accent-foreground: 0 0% 9%;--destructive: 0 84.2% 60.2%;--destructive-foreground: 0 0% 98%;--border: 0 0% 89.8%;--input: 0 0% 89.8%;--ring: 0 0% 3.9%;--chart-1: 12 76% 61%;--chart-2: 173 58% 39%;--chart-3: 197 37% 24%;--chart-4: 43 74% 66%;--chart-5: 27 87% 67%;--radius: .5rem;--sidebar-background: 0 0% 98%;--sidebar-foreground: 240 5.3% 26.1%;--sidebar-primary: 240 5.9% 10%;--sidebar-primary-foreground: 0 0% 98%;--sidebar-accent: 240 4.8% 95.9%;--sidebar-accent-foreground: 240 5.9% 10%;--sidebar-border: 220 13% 91%;--sidebar-ring: 217.2 91.2% 59.8% }*{border-color:hsl(var(--border))}body{background-color:hsl(var(--background));color:hsl(var(--foreground))}.prose{color:var(--tw-prose-body);max-width:100ch}.prose :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where([class~=lead]):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-lead);font-size:1.25em;line-height:1.6;margin-top:1.2em;margin-bottom:1.2em}.prose :where(a):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-links);text-decoration:underline;font-weight:500}.prose :where(strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-bold);font-weight:600}.prose :where(a strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(blockquote strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(thead th strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(ol):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal;margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em}.prose :where(ol[type=A]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=A s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=I]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type=I s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type="1"]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal}.prose :where(ul):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:disc;margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{font-weight:400;color:var(--tw-prose-counters)}.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{color:var(--tw-prose-bullets)}.prose :where(dt):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;margin-top:1.25em}.prose :where(hr):not(:where([class~=not-prose],[class~=not-prose] *)){border-color:var(--tw-prose-hr);border-top-width:1px;margin-top:3em;margin-bottom:3em}.prose :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:500;font-style:italic;color:var(--tw-prose-quotes);border-inline-start-width:.25rem;border-inline-start-color:var(--tw-prose-quote-borders);quotes:"“""”""‘""’";margin-top:1.6em;margin-bottom:1.6em;padding-inline-start:1em}.prose :where(blockquote p:first-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:open-quote}.prose :where(blockquote p:last-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:close-quote}.prose :where(h1):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:800;font-size:2.25em;margin-top:0;margin-bottom:.8888889em;line-height:1.1111111}.prose :where(h1 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:900;color:inherit}.prose :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:700;font-size:1.5em;margin-top:2em;margin-bottom:1em;line-height:1.3333333}.prose :where(h2 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:800;color:inherit}.prose :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;font-size:1.25em;margin-top:1.6em;margin-bottom:.6em;line-height:1.6}.prose :where(h3 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:700;color:inherit}.prose :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;margin-top:1.5em;margin-bottom:.5em;line-height:1.5}.prose :where(h4 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:700;color:inherit}.prose :where(img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(picture):not(:where([class~=not-prose],[class~=not-prose] *)){display:block;margin-top:2em;margin-bottom:2em}.prose :where(video):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(kbd):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:500;font-family:inherit;color:var(--tw-prose-kbd);box-shadow:0 0 0 1px var(--tw-prose-kbd-shadows),0 3px 0 var(--tw-prose-kbd-shadows);font-size:.875em;border-radius:.3125rem;padding-top:.1875em;padding-inline-end:.375em;padding-bottom:.1875em;padding-inline-start:.375em}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-code);font-weight:600;font-size:.875em}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:"`"}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:"`"}.prose :where(a code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(h1 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(h2 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.875em}.prose :where(h3 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.9em}.prose :where(h4 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(blockquote code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(thead th code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-pre-code);background-color:var(--tw-prose-pre-bg);overflow-x:auto;font-weight:400;font-size:.875em;line-height:1.7142857;margin-top:1.7142857em;margin-bottom:1.7142857em;border-radius:.375rem;padding-top:.8571429em;padding-inline-end:1.1428571em;padding-bottom:.8571429em;padding-inline-start:1.1428571em}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)){background-color:transparent;border-width:0;border-radius:0;padding:0;font-weight:inherit;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:none}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:none}.prose :where(table):not(:where([class~=not-prose],[class~=not-prose] *)){width:100%;table-layout:auto;margin-top:2em;margin-bottom:2em;font-size:.875em;line-height:1.7142857}.prose :where(thead):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-th-borders)}.prose :where(thead th):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;vertical-align:bottom;padding-inline-end:.5714286em;padding-bottom:.5714286em;padding-inline-start:.5714286em}.prose :where(tbody tr):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-td-borders)}.prose :where(tbody tr:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:0}.prose :where(tbody td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:baseline}.prose :where(tfoot):not(:where([class~=not-prose],[class~=not-prose] *)){border-top-width:1px;border-top-color:var(--tw-prose-th-borders)}.prose :where(tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:top}.prose :where(th,td):not(:where([class~=not-prose],[class~=not-prose] *)){text-align:start}.prose :where(figure>*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose :where(figcaption):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-captions);font-size:.875em;line-height:1.4285714;margin-top:.8571429em}.prose{--tw-prose-body: #374151;--tw-prose-headings: #111827;--tw-prose-lead: #4b5563;--tw-prose-links: #111827;--tw-prose-bold: #111827;--tw-prose-counters: #6b7280;--tw-prose-bullets: #d1d5db;--tw-prose-hr: #e5e7eb;--tw-prose-quotes: #111827;--tw-prose-quote-borders: #e5e7eb;--tw-prose-captions: #6b7280;--tw-prose-kbd: #111827;--tw-prose-kbd-shadows: rgb(17 24 39 / 10%);--tw-prose-code: #111827;--tw-prose-pre-code: #e5e7eb;--tw-prose-pre-bg: #1f2937;--tw-prose-th-borders: #d1d5db;--tw-prose-td-borders: #e5e7eb;--tw-prose-invert-body: #d1d5db;--tw-prose-invert-headings: #fff;--tw-prose-invert-lead: #9ca3af;--tw-prose-invert-links: #fff;--tw-prose-invert-bold: #fff;--tw-prose-invert-counters: #9ca3af;--tw-prose-invert-bullets: #4b5563;--tw-prose-invert-hr: #374151;--tw-prose-invert-quotes: #f3f4f6;--tw-prose-invert-quote-borders: #374151;--tw-prose-invert-captions: #9ca3af;--tw-prose-invert-kbd: #fff;--tw-prose-invert-kbd-shadows: rgb(255 255 255 / 10%);--tw-prose-invert-code: #fff;--tw-prose-invert-pre-code: #d1d5db;--tw-prose-invert-pre-bg: rgb(0 0 0 / 50%);--tw-prose-invert-th-borders: #4b5563;--tw-prose-invert-td-borders: #374151;font-size:1rem;line-height:1.75}.prose :where(picture>img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose :where(li):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;margin-bottom:.5em}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.375em}.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.375em}.prose :where(.prose>ul>li p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(.prose>ul>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ul>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(.prose>ol>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ol>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(dl):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where(dd):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;padding-inline-start:1.625em}.prose :where(hr+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h2+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h3+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h4+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(thead th:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose :where(thead th:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose :where(tbody td,tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:.5714286em;padding-inline-end:.5714286em;padding-bottom:.5714286em;padding-inline-start:.5714286em}.prose :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(.prose>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(.prose>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0}.prose-lg{font-size:1.125rem;line-height:1.7777778}.prose-lg :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.3333333em;margin-bottom:1.3333333em}.prose-lg :where([class~=lead]):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:1.2222222em;line-height:1.4545455;margin-top:1.0909091em;margin-bottom:1.0909091em}.prose-lg :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.6666667em;margin-bottom:1.6666667em;padding-inline-start:1em}.prose-lg :where(h1):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:2.6666667em;margin-top:0;margin-bottom:.8333333em;line-height:1}.prose-lg :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:1.6666667em;margin-top:1.8666667em;margin-bottom:1.0666667em;line-height:1.3333333}.prose-lg :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:1.3333333em;margin-top:1.6666667em;margin-bottom:.6666667em;line-height:1.5}.prose-lg :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.7777778em;margin-bottom:.4444444em;line-height:1.5555556}.prose-lg :where(img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.7777778em;margin-bottom:1.7777778em}.prose-lg :where(picture):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.7777778em;margin-bottom:1.7777778em}.prose-lg :where(picture>img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose-lg :where(video):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.7777778em;margin-bottom:1.7777778em}.prose-lg :where(kbd):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.8888889em;border-radius:.3125rem;padding-top:.2222222em;padding-inline-end:.4444444em;padding-bottom:.2222222em;padding-inline-start:.4444444em}.prose-lg :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.8888889em}.prose-lg :where(h2 code):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.8666667em}.prose-lg :where(h3 code):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.875em}.prose-lg :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.8888889em;line-height:1.75;margin-top:2em;margin-bottom:2em;border-radius:.375rem;padding-top:1em;padding-inline-end:1.5em;padding-bottom:1em;padding-inline-start:1.5em}.prose-lg :where(ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.3333333em;margin-bottom:1.3333333em;padding-inline-start:1.5555556em}.prose-lg :where(ul):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.3333333em;margin-bottom:1.3333333em;padding-inline-start:1.5555556em}.prose-lg :where(li):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.6666667em;margin-bottom:.6666667em}.prose-lg :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.4444444em}.prose-lg :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.4444444em}.prose-lg :where(.prose-lg>ul>li p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.8888889em;margin-bottom:.8888889em}.prose-lg :where(.prose-lg>ul>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.3333333em}.prose-lg :where(.prose-lg>ul>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.3333333em}.prose-lg :where(.prose-lg>ol>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.3333333em}.prose-lg :where(.prose-lg>ol>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.3333333em}.prose-lg :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.8888889em;margin-bottom:.8888889em}.prose-lg :where(dl):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.3333333em;margin-bottom:1.3333333em}.prose-lg :where(dt):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.3333333em}.prose-lg :where(dd):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.6666667em;padding-inline-start:1.5555556em}.prose-lg :where(hr):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:3.1111111em;margin-bottom:3.1111111em}.prose-lg :where(hr+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-lg :where(h2+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-lg :where(h3+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-lg :where(h4+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-lg :where(table):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.8888889em;line-height:1.5}.prose-lg :where(thead th):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:.75em;padding-bottom:.75em;padding-inline-start:.75em}.prose-lg :where(thead th:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose-lg :where(thead th:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose-lg :where(tbody td,tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:.75em;padding-inline-end:.75em;padding-bottom:.75em;padding-inline-start:.75em}.prose-lg :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose-lg :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose-lg :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.7777778em;margin-bottom:1.7777778em}.prose-lg :where(figure>*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose-lg :where(figcaption):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.8888889em;line-height:1.5;margin-top:1em}.prose-lg :where(.prose-lg>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-lg :where(.prose-lg>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.invisible{visibility:hidden}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{top:0;right:0;bottom:0;left:0}.inset-x-0{left:0;right:0}.inset-y-0{top:0;bottom:0}.-left-4{left:-1rem}.-right-2{right:-.5rem}.-top-2{top:-.5rem}.-top-4{top:-1rem}.bottom-0{bottom:0}.bottom-4{bottom:1rem}.bottom-6{bottom:1.5rem}.left-0{left:0}.left-1\/2{left:50%}.left-2{left:.5rem}.left-4{left:1rem}.left-6{left:1.5rem}.left-\[50\%\]{left:50%}.right-0{right:0}.right-1{right:.25rem}.right-3{right:.75rem}.right-4{right:1rem}.right-6{right:1.5rem}.top-0{top:0}.top-1\.5{top:.375rem}.top-1\/2{top:50%}.top-3\.5{top:.875rem}.top-4{top:1rem}.top-6{top:1.5rem}.top-\[1px\]{top:1px}.top-\[50\%\]{top:50%}.top-\[60\%\]{top:60%}.top-full{top:100%}.z-10{z-index:10}.z-20{z-index:20}.z-50{z-index:50}.z-\[1\]{z-index:1}.order-first{order:-9999}.order-last{order:9999}.\!m-0{margin:0!important}.-m-2{margin:-.5rem}.-mx-1{margin-left:-.25rem;margin-right:-.25rem}.-my-2{margin-top:-.5rem;margin-bottom:-.5rem}.mx-2{margin-left:.5rem;margin-right:.5rem}.mx-3\.5{margin-left:.875rem;margin-right:.875rem}.mx-auto{margin-left:auto;margin-right:auto}.my-0{margin-top:0;margin-bottom:0}.my-1{margin-top:.25rem;margin-bottom:.25rem}.my-12{margin-top:3rem;margin-bottom:3rem}.my-8{margin-top:2rem;margin-bottom:2rem}.mb-1{margin-bottom:.25rem}.mb-1\.5{margin-bottom:.375rem}.mb-10{margin-bottom:2.5rem}.mb-12{margin-bottom:3rem}.mb-16{margin-bottom:4rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.ml-1{margin-left:.25rem}.ml-4{margin-left:1rem}.ml-9{margin-left:2.25rem}.ml-auto{margin-left:auto}.mr-1{margin-right:.25rem}.mr-2{margin-right:.5rem}.mt-0{margin-top:0}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-1\.5{margin-top:.375rem}.mt-10{margin-top:2.5rem}.mt-12{margin-top:3rem}.mt-2{margin-top:.5rem}.mt-24{margin-top:6rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.mt-auto{margin-top:auto}.line-clamp-2{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}.line-clamp-3{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3}.block{display:block}.inline-block{display:inline-block}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.aspect-\[16\/10\]{aspect-ratio:16/10}.aspect-\[4\/3\]{aspect-ratio:4/3}.aspect-square{aspect-ratio:1 / 1}.size-10{width:2.5rem;height:2.5rem}.size-3\.5{width:.875rem;height:.875rem}.size-4{width:1rem;height:1rem}.size-6{width:1.5rem;height:1.5rem}.size-8{width:2rem;height:2rem}.size-\[--cell-size\]{width:var(--cell-size);height:var(--cell-size)}.h-0{height:0px}.h-1\.5{height:.375rem}.h-10{height:2.5rem}.h-11{height:2.75rem}.h-12{height:3rem}.h-14{height:3.5rem}.h-16{height:4rem}.h-2{height:.5rem}.h-2\.5{height:.625rem}.h-20{height:5rem}.h-24{height:6rem}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-4{height:1rem}.h-48{height:12rem}.h-5{height:1.25rem}.h-56{height:14rem}.h-6{height:1.5rem}.h-64{height:16rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-80{height:20rem}.h-9{height:2.25rem}.h-96{height:24rem}.h-\[--cell-size\]{height:var(--cell-size)}.h-\[1px\]{height:1px}.h-\[400px\]{height:400px}.h-\[80vh\]{height:80vh}.h-\[var\(--radix-navigation-menu-viewport-height\)\]{height:var(--radix-navigation-menu-viewport-height)}.h-\[var\(--radix-select-trigger-height\)\]{height:var(--radix-select-trigger-height)}.h-auto{height:auto}.h-full{height:100%}.h-px{height:1px}.h-svh{height:100svh}.max-h-\[--radix-context-menu-content-available-height\]{max-height:var(--radix-context-menu-content-available-height)}.max-h-\[--radix-select-content-available-height\]{max-height:var(--radix-select-content-available-height)}.max-h-\[300px\]{max-height:300px}.max-h-\[70vh\]{max-height:70vh}.max-h-\[85vh\]{max-height:85vh}.max-h-\[var\(--radix-dropdown-menu-content-available-height\)\]{max-height:var(--radix-dropdown-menu-content-available-height)}.min-h-0{min-height:0px}.min-h-\[36px\]{min-height:36px}.min-h-\[44px\]{min-height:44px}.min-h-\[48px\]{min-height:48px}.min-h-\[60vh\]{min-height:60vh}.min-h-\[80px\]{min-height:80px}.min-h-\[80vh\]{min-height:80vh}.min-h-screen{min-height:100vh}.min-h-svh{min-height:100svh}.w-0{width:0px}.w-10{width:2.5rem}.w-11{width:2.75rem}.w-12{width:3rem}.w-14{width:3.5rem}.w-16{width:4rem}.w-2{width:.5rem}.w-2\.5{width:.625rem}.w-20{width:5rem}.w-24{width:6rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-3\/4{width:75%}.w-4{width:1rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-64{width:16rem}.w-7{width:1.75rem}.w-72{width:18rem}.w-8{width:2rem}.w-9{width:2.25rem}.w-\[--cell-size\]{width:var(--cell-size)}.w-\[--sidebar-width\]{width:var(--sidebar-width)}.w-\[100px\]{width:100px}.w-\[1px\]{width:1px}.w-auto{width:auto}.w-fit{width:-moz-fit-content;width:fit-content}.w-full{width:100%}.w-max{width:-moz-max-content;width:max-content}.w-px{width:1px}.min-w-0{min-width:0px}.min-w-10{min-width:2.5rem}.min-w-11{min-width:2.75rem}.min-w-5{min-width:1.25rem}.min-w-9{min-width:2.25rem}.min-w-\[--cell-size\]{min-width:var(--cell-size)}.min-w-\[12rem\]{min-width:12rem}.min-w-\[160px\]{min-width:160px}.min-w-\[220px\]{min-width:220px}.min-w-\[240px\]{min-width:240px}.min-w-\[260px\]{min-width:260px}.min-w-\[44px\]{min-width:44px}.min-w-\[8rem\]{min-width:8rem}.min-w-\[var\(--radix-select-trigger-width\)\]{min-width:var(--radix-select-trigger-width)}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-4xl{max-width:56rem}.max-w-5xl{max-width:64rem}.max-w-7xl{max-width:80rem}.max-w-\[--skeleton-width\]{max-width:var(--skeleton-width)}.max-w-full{max-width:100%}.max-w-lg{max-width:32rem}.max-w-max{max-width:-moz-max-content;max-width:max-content}.max-w-md{max-width:28rem}.max-w-none{max-width:none}.max-w-sm{max-width:24rem}.flex-1{flex:1 1 0%}.flex-shrink-0,.shrink-0{flex-shrink:0}.grow{flex-grow:1}.basis-full{flex-basis:100%}.caption-bottom{caption-side:bottom}.border-collapse{border-collapse:collapse}.origin-\[--radix-context-menu-content-transform-origin\]{transform-origin:var(--radix-context-menu-content-transform-origin)}.origin-\[--radix-dropdown-menu-content-transform-origin\]{transform-origin:var(--radix-dropdown-menu-content-transform-origin)}.origin-\[--radix-hover-card-content-transform-origin\]{transform-origin:var(--radix-hover-card-content-transform-origin)}.origin-\[--radix-menubar-content-transform-origin\]{transform-origin:var(--radix-menubar-content-transform-origin)}.origin-\[--radix-popover-content-transform-origin\]{transform-origin:var(--radix-popover-content-transform-origin)}.origin-\[--radix-select-content-transform-origin\]{transform-origin:var(--radix-select-content-transform-origin)}.origin-\[--radix-tooltip-content-transform-origin\]{transform-origin:var(--radix-tooltip-content-transform-origin)}.-translate-x-1\/2{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-x-px{--tw-translate-x: -1px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-1\/2{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-\[-50\%\]{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-px{--tw-translate-x: 1px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-\[-50\%\]{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-180{--tw-rotate: 180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-45{--tw-rotate: 45deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-105{--tw-scale-x: 1.05;--tw-scale-y: 1.05;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:spin 1s linear infinite}.cursor-default{cursor:default}.cursor-pointer{cursor:pointer}.cursor-text{cursor:text}.touch-none{touch-action:none}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.resize-none{resize:none}.list-inside{list-style-position:inside}.list-disc{list-style-type:disc}.list-none{list-style-type:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.place-content-center{place-content:center}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-stretch{align-items:stretch}.justify-start{justify-content:flex-start}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-0{gap:0px}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-12{gap:3rem}.gap-2{gap:.5rem}.gap-2\.5{gap:.625rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-7{gap:1.75rem}.gap-8{gap:2rem}.space-x-1>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.25rem * var(--tw-space-x-reverse));margin-left:calc(.25rem * calc(1 - var(--tw-space-x-reverse)))}.space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(1rem * var(--tw-space-x-reverse));margin-left:calc(1rem * calc(1 - var(--tw-space-x-reverse)))}.space-x-6>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(1.5rem * var(--tw-space-x-reverse));margin-left:calc(1.5rem * calc(1 - var(--tw-space-x-reverse)))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-1\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.375rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem * var(--tw-space-y-reverse))}.space-y-10>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(2.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2.5rem * var(--tw-space-y-reverse))}.space-y-12>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(3rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(3rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-20>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(5rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(2rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2rem * var(--tw-space-y-reverse))}.self-stretch{align-self:stretch}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.whitespace-nowrap{white-space:nowrap}.text-balance{text-wrap:balance}.break-words{overflow-wrap:break-word}.rounded{border-radius:.25rem}.rounded-\[calc\(var\(--radius\)-5px\)\]{border-radius:calc(var(--radius) - 5px)}.rounded-\[inherit\]{border-radius:inherit}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-none{border-radius:0}.rounded-sm{border-radius:calc(var(--radius) - 4px)}.rounded-xl{border-radius:.75rem}.rounded-l-md{border-top-left-radius:calc(var(--radius) - 2px);border-bottom-left-radius:calc(var(--radius) - 2px)}.rounded-r-md{border-top-right-radius:calc(var(--radius) - 2px);border-bottom-right-radius:calc(var(--radius) - 2px)}.rounded-t-\[10px\]{border-top-left-radius:10px;border-top-right-radius:10px}.rounded-tl-sm{border-top-left-radius:calc(var(--radius) - 4px)}.border{border-width:1px}.border-0{border-width:0px}.border-2{border-width:2px}.border-4{border-width:4px}.border-y{border-top-width:1px;border-bottom-width:1px}.border-b{border-bottom-width:1px}.border-b-\[12px\]{border-bottom-width:12px}.border-l{border-left-width:1px}.border-l-4{border-left-width:4px}.border-l-\[20px\]{border-left-width:20px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-t-\[12px\]{border-top-width:12px}.border-dashed{border-style:dashed}.border-\[\#0A2540\]{--tw-border-opacity: 1;border-color:rgb(10 37 64 / var(--tw-border-opacity, 1))}.border-\[\#4A6FA5\]{--tw-border-opacity: 1;border-color:rgb(74 111 165 / var(--tw-border-opacity, 1))}.border-\[\#FF6B35\]{--tw-border-opacity: 1;border-color:rgb(255 107 53 / var(--tw-border-opacity, 1))}.border-border{border-color:hsl(var(--border))}.border-destructive\/50{border-color:hsl(var(--destructive) / .5)}.border-gray-100{--tw-border-opacity: 1;border-color:rgb(243 244 246 / var(--tw-border-opacity, 1))}.border-gray-200{--tw-border-opacity: 1;border-color:rgb(229 231 235 / var(--tw-border-opacity, 1))}.border-gray-300{--tw-border-opacity: 1;border-color:rgb(209 213 219 / var(--tw-border-opacity, 1))}.border-gray-400{--tw-border-opacity: 1;border-color:rgb(156 163 175 / var(--tw-border-opacity, 1))}.border-gray-700{--tw-border-opacity: 1;border-color:rgb(55 65 81 / var(--tw-border-opacity, 1))}.border-input{border-color:hsl(var(--input))}.border-primary{border-color:hsl(var(--primary))}.border-red-200{--tw-border-opacity: 1;border-color:rgb(254 202 202 / var(--tw-border-opacity, 1))}.border-sidebar-border{border-color:hsl(var(--sidebar-border))}.border-slate-200{--tw-border-opacity: 1;border-color:rgb(226 232 240 / var(--tw-border-opacity, 1))}.border-slate-300{--tw-border-opacity: 1;border-color:rgb(203 213 225 / var(--tw-border-opacity, 1))}.border-transparent{border-color:transparent}.border-white{--tw-border-opacity: 1;border-color:rgb(255 255 255 / var(--tw-border-opacity, 1))}.border-b-transparent{border-bottom-color:transparent}.border-l-transparent{border-left-color:transparent}.border-l-white{--tw-border-opacity: 1;border-left-color:rgb(255 255 255 / var(--tw-border-opacity, 1))}.border-t-transparent{border-top-color:transparent}.bg-\[\#0A2540\]{--tw-bg-opacity: 1;background-color:rgb(10 37 64 / var(--tw-bg-opacity, 1))}.bg-\[\#0A2540\]\/10{background-color:#0a25401a}.bg-\[\#0A2540\]\/5{background-color:#0a25400d}.bg-\[\#0A2540\]\/85{background-color:#0a2540d9}.bg-\[\#4A6FA5\]{--tw-bg-opacity: 1;background-color:rgb(74 111 165 / var(--tw-bg-opacity, 1))}.bg-\[\#4A6FA5\]\/10{background-color:#4a6fa51a}.bg-\[\#FF6B35\]{--tw-bg-opacity: 1;background-color:rgb(255 107 53 / var(--tw-bg-opacity, 1))}.bg-accent{background-color:hsl(var(--accent))}.bg-background{background-color:hsl(var(--background))}.bg-black{--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity, 1))}.bg-black\/60{background-color:#0009}.bg-black\/70{background-color:#000000b3}.bg-black\/80{background-color:#000c}.bg-black\/90{background-color:#000000e6}.bg-blue-50{--tw-bg-opacity: 1;background-color:rgb(239 246 255 / var(--tw-bg-opacity, 1))}.bg-border{background-color:hsl(var(--border))}.bg-card{background-color:hsl(var(--card))}.bg-destructive{background-color:hsl(var(--destructive))}.bg-foreground{background-color:hsl(var(--foreground))}.bg-gray-100{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}.bg-gray-200{--tw-bg-opacity: 1;background-color:rgb(229 231 235 / var(--tw-bg-opacity, 1))}.bg-gray-300{--tw-bg-opacity: 1;background-color:rgb(209 213 219 / var(--tw-bg-opacity, 1))}.bg-gray-50{--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity, 1))}.bg-gray-900{--tw-bg-opacity: 1;background-color:rgb(17 24 39 / var(--tw-bg-opacity, 1))}.bg-input{background-color:hsl(var(--input))}.bg-muted{background-color:hsl(var(--muted))}.bg-muted\/50{background-color:hsl(var(--muted) / .5)}.bg-popover{background-color:hsl(var(--popover))}.bg-primary{background-color:hsl(var(--primary))}.bg-red-50{--tw-bg-opacity: 1;background-color:rgb(254 242 242 / var(--tw-bg-opacity, 1))}.bg-secondary{background-color:hsl(var(--secondary))}.bg-sidebar{background-color:hsl(var(--sidebar-background))}.bg-sidebar-border{background-color:hsl(var(--sidebar-border))}.bg-slate-900{--tw-bg-opacity: 1;background-color:rgb(15 23 42 / var(--tw-bg-opacity, 1))}.bg-transparent{background-color:transparent}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.bg-white\/10{background-color:#ffffff1a}.bg-white\/20{background-color:#fff3}.bg-white\/5{background-color:#ffffff0d}.bg-white\/90{background-color:#ffffffe6}.bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--tw-gradient-stops))}.bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.bg-gradient-to-t{background-image:linear-gradient(to top,var(--tw-gradient-stops))}.from-\[\#0A2540\]{--tw-gradient-from: #0A2540 var(--tw-gradient-from-position);--tw-gradient-to: rgb(10 37 64 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-\[\#0A2540\]\/90{--tw-gradient-from: rgb(10 37 64 / .9) var(--tw-gradient-from-position);--tw-gradient-to: rgb(10 37 64 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-\[\#0A2540\]\/95{--tw-gradient-from: rgb(10 37 64 / .95) var(--tw-gradient-from-position);--tw-gradient-to: rgb(10 37 64 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-black\/80{--tw-gradient-from: rgb(0 0 0 / .8) var(--tw-gradient-from-position);--tw-gradient-to: rgb(0 0 0 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-gray-50{--tw-gradient-from: #f9fafb var(--tw-gradient-from-position);--tw-gradient-to: rgb(249 250 251 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-slate-900{--tw-gradient-from: #0f172a var(--tw-gradient-from-position);--tw-gradient-to: rgb(15 23 42 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.via-slate-800{--tw-gradient-to: rgb(30 41 59 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), #1e293b var(--tw-gradient-via-position), var(--tw-gradient-to)}.to-\[\#1a3a5c\]{--tw-gradient-to: #1a3a5c var(--tw-gradient-to-position)}.to-slate-900{--tw-gradient-to: #0f172a var(--tw-gradient-to-position)}.to-transparent{--tw-gradient-to: transparent var(--tw-gradient-to-position)}.to-white{--tw-gradient-to: #fff var(--tw-gradient-to-position)}.bg-cover{background-size:cover}.bg-center{background-position:center}.fill-current{fill:currentColor}.object-contain{-o-object-fit:contain;object-fit:contain}.object-cover{-o-object-fit:cover;object-fit:cover}.p-0{padding:0}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-2\.5{padding:.625rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.p-\[1px\]{padding:1px}.px-1{padding-left:.25rem;padding-right:.25rem}.px-10{padding-left:2.5rem;padding-right:2.5rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-8{padding-left:2rem;padding-right:2rem}.px-\[--cell-size\]{padding-left:var(--cell-size);padding-right:var(--cell-size)}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-10{padding-top:2.5rem;padding-bottom:2.5rem}.py-12{padding-top:3rem;padding-bottom:3rem}.py-16{padding-top:4rem;padding-bottom:4rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-20{padding-top:5rem;padding-bottom:5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-3\.5{padding-top:.875rem;padding-bottom:.875rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pb-10{padding-bottom:2.5rem}.pb-16{padding-bottom:4rem}.pb-2{padding-bottom:.5rem}.pb-3{padding-bottom:.75rem}.pb-4{padding-bottom:1rem}.pb-5{padding-bottom:1.25rem}.pl-2{padding-left:.5rem}.pl-2\.5{padding-left:.625rem}.pl-3{padding-left:.75rem}.pl-8{padding-left:2rem}.pr-1{padding-right:.25rem}.pr-2{padding-right:.5rem}.pr-2\.5{padding-right:.625rem}.pr-3{padding-right:.75rem}.pr-4{padding-right:1rem}.pt-0{padding-top:0}.pt-12{padding-top:3rem}.pt-20{padding-top:5rem}.pt-3{padding-top:.75rem}.pt-6{padding-top:1.5rem}.pt-8{padding-top:2rem}.text-left{text-align:left}.text-center{text-align:center}.align-middle{vertical-align:middle}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-5xl{font-size:3rem;line-height:1}.text-8xl{font-size:6rem;line-height:1}.text-\[0\.8rem\]{font-size:.8rem}.text-\[10px\]{font-size:10px}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-sm\/relaxed{font-size:.875rem;line-height:1.625}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.tabular-nums{--tw-numeric-spacing: tabular-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.leading-none{line-height:1}.leading-normal{line-height:1.5}.leading-relaxed{line-height:1.625}.leading-snug{line-height:1.375}.leading-tight{line-height:1.25}.tracking-tight{letter-spacing:-.025em}.tracking-wide{letter-spacing:.025em}.tracking-widest{letter-spacing:.1em}.text-\[\#0A2540\]{--tw-text-opacity: 1;color:rgb(10 37 64 / var(--tw-text-opacity, 1))}.text-\[\#25D366\]{--tw-text-opacity: 1;color:rgb(37 211 102 / var(--tw-text-opacity, 1))}.text-\[\#4A6FA5\]{--tw-text-opacity: 1;color:rgb(74 111 165 / var(--tw-text-opacity, 1))}.text-\[\#CC5500\]{--tw-text-opacity: 1;color:rgb(204 85 0 / var(--tw-text-opacity, 1))}.text-\[\#FF6B35\]{--tw-text-opacity: 1;color:rgb(255 107 53 / var(--tw-text-opacity, 1))}.text-accent-foreground{color:hsl(var(--accent-foreground))}.text-blue-500{--tw-text-opacity: 1;color:rgb(59 130 246 / var(--tw-text-opacity, 1))}.text-blue-600{--tw-text-opacity: 1;color:rgb(37 99 235 / var(--tw-text-opacity, 1))}.text-card-foreground{color:hsl(var(--card-foreground))}.text-current{color:currentColor}.text-destructive{color:hsl(var(--destructive))}.text-destructive-foreground{color:hsl(var(--destructive-foreground))}.text-foreground{color:hsl(var(--foreground))}.text-gray-200{--tw-text-opacity: 1;color:rgb(229 231 235 / var(--tw-text-opacity, 1))}.text-gray-300{--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity, 1))}.text-gray-400{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.text-gray-500{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.text-gray-600{--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}.text-gray-700{--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity, 1))}.text-gray-900{--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity, 1))}.text-green-400{--tw-text-opacity: 1;color:rgb(74 222 128 / var(--tw-text-opacity, 1))}.text-green-500{--tw-text-opacity: 1;color:rgb(34 197 94 / var(--tw-text-opacity, 1))}.text-green-600{--tw-text-opacity: 1;color:rgb(22 163 74 / var(--tw-text-opacity, 1))}.text-muted-foreground{color:hsl(var(--muted-foreground))}.text-popover-foreground{color:hsl(var(--popover-foreground))}.text-primary{color:hsl(var(--primary))}.text-primary-foreground{color:hsl(var(--primary-foreground))}.text-red-400{--tw-text-opacity: 1;color:rgb(248 113 113 / var(--tw-text-opacity, 1))}.text-red-500{--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity, 1))}.text-red-600{--tw-text-opacity: 1;color:rgb(220 38 38 / var(--tw-text-opacity, 1))}.text-red-700{--tw-text-opacity: 1;color:rgb(185 28 28 / var(--tw-text-opacity, 1))}.text-secondary-foreground{color:hsl(var(--secondary-foreground))}.text-sidebar-foreground{color:hsl(var(--sidebar-foreground))}.text-sidebar-foreground\/70{color:hsl(var(--sidebar-foreground) / .7)}.text-slate-200{--tw-text-opacity: 1;color:rgb(226 232 240 / var(--tw-text-opacity, 1))}.text-slate-300{--tw-text-opacity: 1;color:rgb(203 213 225 / var(--tw-text-opacity, 1))}.text-slate-400{--tw-text-opacity: 1;color:rgb(148 163 184 / var(--tw-text-opacity, 1))}.text-slate-600{--tw-text-opacity: 1;color:rgb(71 85 105 / var(--tw-text-opacity, 1))}.text-slate-700{--tw-text-opacity: 1;color:rgb(51 65 85 / var(--tw-text-opacity, 1))}.text-slate-900{--tw-text-opacity: 1;color:rgb(15 23 42 / var(--tw-text-opacity, 1))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.underline-offset-4{text-underline-offset:4px}.opacity-0{opacity:0}.opacity-20{opacity:.2}.opacity-25{opacity:.25}.opacity-30{opacity:.3}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-75{opacity:.75}.shadow-\[0_0_0_1px_hsl\(var\(--sidebar-border\)\)\]{--tw-shadow: 0 0 0 1px hsl(var(--sidebar-border));--tw-shadow-colored: 0 0 0 1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-md{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-none{--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-xl{--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.outline-none{outline:2px solid transparent;outline-offset:2px}.outline{outline-style:solid}.ring{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-0{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-2{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-ring{--tw-ring-color: hsl(var(--ring))}.ring-sidebar-ring{--tw-ring-color: hsl(var(--sidebar-ring))}.ring-offset-background{--tw-ring-offset-color: hsl(var(--background))}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur-sm{--tw-backdrop-blur: blur(4px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[color\,box-shadow\]{transition-property:color,box-shadow;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[height\]{transition-property:height;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[left\,right\,width\]{transition-property:left,right,width;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[margin\,opacity\]{transition-property:margin,opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[width\,height\,padding\]{transition-property:width,height,padding;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[width\]{transition-property:width;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-shadow{transition-property:box-shadow;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-100{transition-duration:.1s}.duration-1000{transition-duration:1s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.duration-500{transition-duration:.5s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease-linear{transition-timing-function:linear}@keyframes enter{0%{opacity:var(--tw-enter-opacity, 1);transform:translate3d(var(--tw-enter-translate-x, 0),var(--tw-enter-translate-y, 0),0) scale3d(var(--tw-enter-scale, 1),var(--tw-enter-scale, 1),var(--tw-enter-scale, 1)) rotate(var(--tw-enter-rotate, 0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity, 1);transform:translate3d(var(--tw-exit-translate-x, 0),var(--tw-exit-translate-y, 0),0) scale3d(var(--tw-exit-scale, 1),var(--tw-exit-scale, 1),var(--tw-exit-scale, 1)) rotate(var(--tw-exit-rotate, 0))}}.animate-in{animation-name:enter;animation-duration:.15s;--tw-enter-opacity: initial;--tw-enter-scale: initial;--tw-enter-rotate: initial;--tw-enter-translate-x: initial;--tw-enter-translate-y: initial}.fade-in-0{--tw-enter-opacity: 0}.fade-in-80{--tw-enter-opacity: .8}.zoom-in-95{--tw-enter-scale: .95}.duration-100{animation-duration:.1s}.duration-1000{animation-duration:1s}.duration-200{animation-duration:.2s}.duration-300{animation-duration:.3s}.duration-500{animation-duration:.5s}.ease-in-out{animation-timing-function:cubic-bezier(.4,0,.2,1)}.ease-linear{animation-timing-function:linear}.\[--cell-size\:2rem\]{--cell-size: 2rem}@plugin "@tailwindcss/typography";.opacity-0:not([class*=animate-]):not([class*=group-hover]):not([class*=opacity-100]):not([class*=pointer-events-none]){pointer-events:none}@keyframes fade-in-up{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.animate-fade-in-up{animation:fade-in-up .5s ease-out forwards}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.blog-content h2{font-size:1.5rem;font-weight:700;color:#0a2540;margin-top:2.5rem;margin-bottom:1.5rem}.blog-content h3{font-size:1.25rem;font-weight:600;color:#0a2540;margin-top:2rem;margin-bottom:1rem}.blog-content p{margin-bottom:1.5rem;line-height:1.75}.blog-content ul,.blog-content ol{margin-bottom:1.5rem;padding-left:1.5rem}.blog-content ul{list-style-type:disc}.blog-content ol{list-style-type:decimal}.blog-content li{margin-bottom:.5rem}.blog-content table{width:100%;border-collapse:collapse;margin-bottom:1.5rem}.blog-content thead{background-color:#0a2540;color:#fff}.blog-content th{padding:.75rem 1.5rem;text-align:left;font-size:.875rem;font-weight:600}.blog-content td{padding:1rem 1.5rem;font-size:.875rem}.blog-content tbody tr:nth-child(2n){background-color:#f9fafb}.blog-content strong{color:#0a2540;font-weight:600}.blog-content a{color:#ff6b35;text-decoration:underline}.blog-content a:hover{color:#e55a2b}.blog-content blockquote{border-left:4px solid #4A6FA5;padding-left:1.5rem;margin:1.5rem 0;font-style:italic;color:#6b7280}.blog-content code{background-color:#f3f4f6;padding:.125rem .375rem;border-radius:.25rem;font-size:.875rem}.blog-content pre{background-color:#1f2937;color:#f9fafb;padding:1.5rem;border-radius:.5rem;overflow-x:auto;margin-bottom:1.5rem}.blog-content pre code{background-color:transparent;padding:0;color:inherit}.file\:border-0::file-selector-button{border-width:0px}.file\:bg-transparent::file-selector-button{background-color:transparent}.file\:text-sm::file-selector-button{font-size:.875rem;line-height:1.25rem}.file\:font-medium::file-selector-button{font-weight:500}.file\:text-foreground::file-selector-button{color:hsl(var(--foreground))}.placeholder\:text-muted-foreground::-moz-placeholder{color:hsl(var(--muted-foreground))}.placeholder\:text-muted-foreground::placeholder{color:hsl(var(--muted-foreground))}.after\:absolute:after{content:var(--tw-content);position:absolute}.after\:-inset-2:after{content:var(--tw-content);top:-.5rem;right:-.5rem;bottom:-.5rem;left:-.5rem}.after\:inset-y-0:after{content:var(--tw-content);top:0;bottom:0}.after\:left-1\/2:after{content:var(--tw-content);left:50%}.after\:w-1:after{content:var(--tw-content);width:.25rem}.after\:w-\[2px\]:after{content:var(--tw-content);width:2px}.after\:-translate-x-1\/2:after{content:var(--tw-content);--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.first\:rounded-l-md:first-child{border-top-left-radius:calc(var(--radius) - 2px);border-bottom-left-radius:calc(var(--radius) - 2px)}.first\:border-l:first-child{border-left-width:1px}.last\:mb-0:last-child{margin-bottom:0}.last\:mt-0:last-child{margin-top:0}.last\:rounded-r-md:last-child{border-top-right-radius:calc(var(--radius) - 2px);border-bottom-right-radius:calc(var(--radius) - 2px)}.last\:border-b-0:last-child{border-bottom-width:0px}.hover\:-translate-y-1:hover{--tw-translate-y: -.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:scale-110:hover{--tw-scale-x: 1.1;--tw-scale-y: 1.1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:border-\[\#4A6FA5\]:hover{--tw-border-opacity: 1;border-color:rgb(74 111 165 / var(--tw-border-opacity, 1))}.hover\:border-\[\#FF6B35\]:hover{--tw-border-opacity: 1;border-color:rgb(255 107 53 / var(--tw-border-opacity, 1))}.hover\:border-gray-300:hover{--tw-border-opacity: 1;border-color:rgb(209 213 219 / var(--tw-border-opacity, 1))}.hover\:border-slate-300:hover{--tw-border-opacity: 1;border-color:rgb(203 213 225 / var(--tw-border-opacity, 1))}.hover\:bg-\[\#0A2540\]:hover{--tw-bg-opacity: 1;background-color:rgb(10 37 64 / var(--tw-bg-opacity, 1))}.hover\:bg-\[\#1a3a5c\]:hover{--tw-bg-opacity: 1;background-color:rgb(26 58 92 / var(--tw-bg-opacity, 1))}.hover\:bg-\[\#3a5f95\]:hover{--tw-bg-opacity: 1;background-color:rgb(58 95 149 / var(--tw-bg-opacity, 1))}.hover\:bg-\[\#FF6B35\]:hover{--tw-bg-opacity: 1;background-color:rgb(255 107 53 / var(--tw-bg-opacity, 1))}.hover\:bg-\[\#e55a2b\]:hover{--tw-bg-opacity: 1;background-color:rgb(229 90 43 / var(--tw-bg-opacity, 1))}.hover\:bg-accent:hover{background-color:hsl(var(--accent))}.hover\:bg-destructive\/80:hover{background-color:hsl(var(--destructive) / .8)}.hover\:bg-destructive\/90:hover{background-color:hsl(var(--destructive) / .9)}.hover\:bg-gray-100:hover{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}.hover\:bg-gray-200:hover{--tw-bg-opacity: 1;background-color:rgb(229 231 235 / var(--tw-bg-opacity, 1))}.hover\:bg-gray-300:hover{--tw-bg-opacity: 1;background-color:rgb(209 213 219 / var(--tw-bg-opacity, 1))}.hover\:bg-gray-400:hover{--tw-bg-opacity: 1;background-color:rgb(156 163 175 / var(--tw-bg-opacity, 1))}.hover\:bg-gray-50:hover{--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity, 1))}.hover\:bg-muted:hover{background-color:hsl(var(--muted))}.hover\:bg-muted\/50:hover{background-color:hsl(var(--muted) / .5)}.hover\:bg-primary\/80:hover{background-color:hsl(var(--primary) / .8)}.hover\:bg-primary\/90:hover{background-color:hsl(var(--primary) / .9)}.hover\:bg-secondary\/80:hover{background-color:hsl(var(--secondary) / .8)}.hover\:bg-sidebar-accent:hover{background-color:hsl(var(--sidebar-accent))}.hover\:bg-slate-50:hover{--tw-bg-opacity: 1;background-color:rgb(248 250 252 / var(--tw-bg-opacity, 1))}.hover\:bg-slate-800:hover{--tw-bg-opacity: 1;background-color:rgb(30 41 59 / var(--tw-bg-opacity, 1))}.hover\:bg-white:hover{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.hover\:bg-white\/30:hover{background-color:#ffffff4d}.hover\:text-\[\#0A2540\]:hover{--tw-text-opacity: 1;color:rgb(10 37 64 / var(--tw-text-opacity, 1))}.hover\:text-\[\#FF6B35\]:hover{--tw-text-opacity: 1;color:rgb(255 107 53 / var(--tw-text-opacity, 1))}.hover\:text-\[\#e55a2b\]:hover{--tw-text-opacity: 1;color:rgb(229 90 43 / var(--tw-text-opacity, 1))}.hover\:text-accent-foreground:hover{color:hsl(var(--accent-foreground))}.hover\:text-foreground:hover{color:hsl(var(--foreground))}.hover\:text-muted-foreground:hover{color:hsl(var(--muted-foreground))}.hover\:text-red-300:hover{--tw-text-opacity: 1;color:rgb(252 165 165 / var(--tw-text-opacity, 1))}.hover\:text-red-800:hover{--tw-text-opacity: 1;color:rgb(153 27 27 / var(--tw-text-opacity, 1))}.hover\:text-sidebar-accent-foreground:hover{color:hsl(var(--sidebar-accent-foreground))}.hover\:text-white:hover{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-100:hover{opacity:1}.hover\:opacity-80:hover{opacity:.8}.hover\:shadow-\[0_0_0_1px_hsl\(var\(--sidebar-accent\)\)\]:hover{--tw-shadow: 0 0 0 1px hsl(var(--sidebar-accent));--tw-shadow-colored: 0 0 0 1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.hover\:shadow-lg:hover{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.hover\:shadow-md:hover{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.hover\:after\:bg-sidebar-border:hover:after{content:var(--tw-content);background-color:hsl(var(--sidebar-border))}.focus\:border-transparent:focus{border-color:transparent}.focus\:bg-accent:focus{background-color:hsl(var(--accent))}.focus\:text-accent-foreground:focus{color:hsl(var(--accent-foreground))}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-2:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-\[\#4A6FA5\]:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(74 111 165 / var(--tw-ring-opacity, 1))}.focus\:ring-\[\#FF6B35\]:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(255 107 53 / var(--tw-ring-opacity, 1))}.focus\:ring-ring:focus{--tw-ring-color: hsl(var(--ring))}.focus\:ring-offset-2:focus{--tw-ring-offset-width: 2px}.focus-visible\:border-ring:focus-visible{border-color:hsl(var(--ring))}.focus-visible\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.focus-visible\:ring-0:focus-visible{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-visible\:ring-1:focus-visible{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-visible\:ring-2:focus-visible{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-visible\:ring-\[3px\]:focus-visible{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-visible\:ring-ring:focus-visible{--tw-ring-color: hsl(var(--ring))}.focus-visible\:ring-ring\/50:focus-visible{--tw-ring-color: hsl(var(--ring) / .5)}.focus-visible\:ring-sidebar-ring:focus-visible{--tw-ring-color: hsl(var(--sidebar-ring))}.focus-visible\:ring-offset-1:focus-visible{--tw-ring-offset-width: 1px}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width: 2px}.focus-visible\:ring-offset-background:focus-visible{--tw-ring-offset-color: hsl(var(--background))}.active\:bg-sidebar-accent:active{background-color:hsl(var(--sidebar-accent))}.active\:text-sidebar-accent-foreground:active{color:hsl(var(--sidebar-accent-foreground))}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.group\/menu-item:focus-within .group-focus-within\/menu-item\:opacity-100{opacity:1}.group:hover .group-hover\:block{display:block}.group:hover .group-hover\:translate-x-1{--tw-translate-x: .25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:scale-105{--tw-scale-x: 1.05;--tw-scale-y: 1.05;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:text-\[\#FF6B35\]{--tw-text-opacity: 1;color:rgb(255 107 53 / var(--tw-text-opacity, 1))}.group\/menu-item:hover .group-hover\/menu-item\:opacity-100,.group:hover .group-hover\:opacity-100{opacity:1}.group.toaster .group-\[\.toaster\]\:border-border{border-color:hsl(var(--border))}.group.toast .group-\[\.toast\]\:bg-muted{background-color:hsl(var(--muted))}.group.toast .group-\[\.toast\]\:bg-primary{background-color:hsl(var(--primary))}.group.toaster .group-\[\.toaster\]\:bg-background{background-color:hsl(var(--background))}.group.toast .group-\[\.toast\]\:text-muted-foreground{color:hsl(var(--muted-foreground))}.group.toast .group-\[\.toast\]\:text-primary-foreground{color:hsl(var(--primary-foreground))}.group.toaster .group-\[\.toaster\]\:text-foreground{color:hsl(var(--foreground))}.group.toaster .group-\[\.toaster\]\:shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.peer\/menu-button:hover~.peer-hover\/menu-button\:text-sidebar-accent-foreground{color:hsl(var(--sidebar-accent-foreground))}.peer:disabled~.peer-disabled\:cursor-not-allowed{cursor:not-allowed}.peer:disabled~.peer-disabled\:opacity-70{opacity:.7}.has-\[\>button\]\:ml-\[-0\.45rem\]:has(>button){margin-left:-.45rem}.has-\[\>button\]\:mr-\[-0\.4rem\]:has(>button){margin-right:-.4rem}.has-\[\>kbd\]\:ml-\[-0\.35rem\]:has(>kbd){margin-left:-.35rem}.has-\[\>kbd\]\:mr-\[-0\.35rem\]:has(>kbd){margin-right:-.35rem}.has-\[\>\[data-align\=block-end\]\]\:h-auto:has(>[data-align=block-end]){height:auto}.has-\[\>\[data-align\=block-start\]\]\:h-auto:has(>[data-align=block-start]){height:auto}.has-\[\>textarea\]\:h-auto:has(>textarea){height:auto}.has-\[\>\[data-slot\=field\]\]\:w-full:has(>[data-slot=field]){width:100%}.has-\[\>\[data-align\=block-end\]\]\:flex-col:has(>[data-align=block-end]){flex-direction:column}.has-\[\>\[data-align\=block-start\]\]\:flex-col:has(>[data-align=block-start]){flex-direction:column}.has-\[\>\[data-slot\=field\]\]\:flex-col:has(>[data-slot=field]){flex-direction:column}.has-\[\>\[data-slot\=field-content\]\]\:items-start:has(>[data-slot=field-content]){align-items:flex-start}.has-\[\>\[data-slot\=button-group\]\]\:gap-2:has(>[data-slot=button-group]){gap:.5rem}.has-\[\>\[data-slot\=checkbox-group\]\]\:gap-3:has(>[data-slot=checkbox-group]){gap:.75rem}.has-\[\>\[data-slot\=radio-group\]\]\:gap-3:has(>[data-slot=radio-group]){gap:.75rem}.has-\[\>\[data-slot\=field\]\]\:rounded-md:has(>[data-slot=field]){border-radius:calc(var(--radius) - 2px)}.has-\[\>\[data-slot\=field\]\]\:border:has(>[data-slot=field]){border-width:1px}.has-\[\[data-slot\]\[aria-invalid\=true\]\]\:border-destructive:has([data-slot][aria-invalid=true]){border-color:hsl(var(--destructive))}.has-\[\[data-variant\=inset\]\]\:bg-sidebar:has([data-variant=inset]){background-color:hsl(var(--sidebar-background))}.has-\[\>svg\]\:p-0:has(>svg){padding:0}.has-\[\>svg\]\:px-2:has(>svg){padding-left:.5rem;padding-right:.5rem}.has-\[\>svg\]\:px-2\.5:has(>svg){padding-left:.625rem;padding-right:.625rem}.has-\[\:disabled\]\:opacity-50:has(:disabled){opacity:.5}.has-\[\[data-slot\=input-group-control\]\:focus-visible\]\:ring-1:has([data-slot=input-group-control]:focus-visible){--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.has-\[\[data-slot\=input-group-control\]\:focus-visible\]\:ring-ring:has([data-slot=input-group-control]:focus-visible){--tw-ring-color: hsl(var(--ring))}.has-\[\[data-slot\]\[aria-invalid\=true\]\]\:ring-destructive\/20:has([data-slot][aria-invalid=true]){--tw-ring-color: hsl(var(--destructive) / .2)}.group\/item:has([data-slot=item-description]) .group-has-\[\[data-slot\=item-description\]\]\/item\:translate-y-0\.5{--tw-translate-y: .125rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group\/item:has([data-slot=item-description]) .group-has-\[\[data-slot\=item-description\]\]\/item\:self-start{align-self:flex-start}.group\/field:has([data-orientation=horizontal]) .group-has-\[\[data-orientation\=horizontal\]\]\/field\:text-balance{text-wrap:balance}.group\/input-group:has(>input) .group-has-\[\>input\]\/input-group\:pb-2\.5{padding-bottom:.625rem}.group\/input-group:has(>input) .group-has-\[\>input\]\/input-group\:pt-2\.5{padding-top:.625rem}.group\/menu-item:has([data-sidebar=menu-action]) .group-has-\[\[data-sidebar\=menu-action\]\]\/menu-item\:pr-8{padding-right:2rem}.aria-disabled\:pointer-events-none[aria-disabled=true]{pointer-events:none}.aria-disabled\:opacity-50[aria-disabled=true]{opacity:.5}.aria-selected\:text-muted-foreground[aria-selected=true]{color:hsl(var(--muted-foreground))}.data-\[disabled\=true\]\:pointer-events-none[data-disabled=true],.data-\[disabled\]\:pointer-events-none[data-disabled]{pointer-events:none}.data-\[orientation\=vertical\]\:h-auto[data-orientation=vertical]{height:auto}.data-\[panel-group-direction\=vertical\]\:h-px[data-panel-group-direction=vertical]{height:1px}.data-\[panel-group-direction\=vertical\]\:w-full[data-panel-group-direction=vertical]{width:100%}.data-\[side\=bottom\]\:translate-y-1[data-side=bottom]{--tw-translate-y: .25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[side\=left\]\:-translate-x-1[data-side=left]{--tw-translate-x: -.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[side\=right\]\:translate-x-1[data-side=right]{--tw-translate-x: .25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[side\=top\]\:-translate-y-1[data-side=top]{--tw-translate-y: -.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[state\=checked\]\:translate-x-5[data-state=checked]{--tw-translate-x: 1.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[state\=unchecked\]\:translate-x-0[data-state=unchecked]{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes accordion-up{0%{height:var(--radix-accordion-content-height)}to{height:0}}.data-\[state\=closed\]\:animate-accordion-up[data-state=closed]{animation:accordion-up .2s ease-out}@keyframes accordion-down{0%{height:0}to{height:var(--radix-accordion-content-height)}}.data-\[state\=open\]\:animate-accordion-down[data-state=open]{animation:accordion-down .2s ease-out}.data-\[panel-group-direction\=vertical\]\:flex-col[data-panel-group-direction=vertical]{flex-direction:column}.data-\[slot\=checkbox-group\]\:gap-3[data-slot=checkbox-group]{gap:.75rem}.data-\[range-end\=true\]\:rounded-md[data-range-end=true]{border-radius:calc(var(--radius) - 2px)}.data-\[range-middle\=true\]\:rounded-none[data-range-middle=true]{border-radius:0}.data-\[range-start\=true\]\:rounded-md[data-range-start=true]{border-radius:calc(var(--radius) - 2px)}.data-\[selected\=true\]\:rounded-none[data-selected=true]{border-radius:0}.data-\[active\=true\]\:bg-sidebar-accent[data-active=true]{background-color:hsl(var(--sidebar-accent))}.data-\[range-end\=true\]\:bg-primary[data-range-end=true]{background-color:hsl(var(--primary))}.data-\[range-middle\=true\]\:bg-accent[data-range-middle=true]{background-color:hsl(var(--accent))}.data-\[range-start\=true\]\:bg-primary[data-range-start=true],.data-\[selected-single\=true\]\:bg-primary[data-selected-single=true]{background-color:hsl(var(--primary))}.data-\[selected\=\'true\'\]\:bg-accent[data-selected=true]{background-color:hsl(var(--accent))}.data-\[state\=active\]\:bg-background[data-state=active]{background-color:hsl(var(--background))}.data-\[state\=checked\]\:bg-primary[data-state=checked]{background-color:hsl(var(--primary))}.data-\[state\=on\]\:bg-accent[data-state=on],.data-\[state\=open\]\:bg-accent[data-state=open]{background-color:hsl(var(--accent))}.data-\[state\=open\]\:bg-accent\/50[data-state=open]{background-color:hsl(var(--accent) / .5)}.data-\[state\=open\]\:bg-secondary[data-state=open]{background-color:hsl(var(--secondary))}.data-\[state\=selected\]\:bg-muted[data-state=selected]{background-color:hsl(var(--muted))}.data-\[state\=unchecked\]\:bg-input[data-state=unchecked]{background-color:hsl(var(--input))}.data-\[variant\=label\]\:text-sm[data-variant=label]{font-size:.875rem;line-height:1.25rem}.data-\[variant\=legend\]\:text-base[data-variant=legend]{font-size:1rem;line-height:1.5rem}.data-\[active\=true\]\:font-medium[data-active=true]{font-weight:500}.data-\[active\=true\]\:text-sidebar-accent-foreground[data-active=true]{color:hsl(var(--sidebar-accent-foreground))}.data-\[invalid\=true\]\:text-destructive[data-invalid=true]{color:hsl(var(--destructive))}.data-\[placeholder\]\:text-muted-foreground[data-placeholder]{color:hsl(var(--muted-foreground))}.data-\[range-end\=true\]\:text-primary-foreground[data-range-end=true]{color:hsl(var(--primary-foreground))}.data-\[range-middle\=true\]\:text-accent-foreground[data-range-middle=true]{color:hsl(var(--accent-foreground))}.data-\[range-start\=true\]\:text-primary-foreground[data-range-start=true],.data-\[selected-single\=true\]\:text-primary-foreground[data-selected-single=true]{color:hsl(var(--primary-foreground))}.data-\[selected\=true\]\:text-accent-foreground[data-selected=true]{color:hsl(var(--accent-foreground))}.data-\[state\=active\]\:text-foreground[data-state=active]{color:hsl(var(--foreground))}.data-\[state\=checked\]\:text-primary-foreground[data-state=checked]{color:hsl(var(--primary-foreground))}.data-\[state\=on\]\:text-accent-foreground[data-state=on],.data-\[state\=open\]\:text-accent-foreground[data-state=open]{color:hsl(var(--accent-foreground))}.data-\[state\=open\]\:text-muted-foreground[data-state=open]{color:hsl(var(--muted-foreground))}.data-\[disabled\=true\]\:opacity-50[data-disabled=true],.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.data-\[state\=open\]\:opacity-100[data-state=open]{opacity:1}.data-\[state\=active\]\:shadow-sm[data-state=active]{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.data-\[state\=closed\]\:duration-300[data-state=closed]{transition-duration:.3s}.data-\[state\=open\]\:duration-500[data-state=open]{transition-duration:.5s}.data-\[motion\^\=from-\]\:animate-in[data-motion^=from-],.data-\[state\=open\]\:animate-in[data-state=open],.data-\[state\=visible\]\:animate-in[data-state=visible]{animation-name:enter;animation-duration:.15s;--tw-enter-opacity: initial;--tw-enter-scale: initial;--tw-enter-rotate: initial;--tw-enter-translate-x: initial;--tw-enter-translate-y: initial}.data-\[motion\^\=to-\]\:animate-out[data-motion^=to-],.data-\[state\=closed\]\:animate-out[data-state=closed],.data-\[state\=hidden\]\:animate-out[data-state=hidden]{animation-name:exit;animation-duration:.15s;--tw-exit-opacity: initial;--tw-exit-scale: initial;--tw-exit-rotate: initial;--tw-exit-translate-x: initial;--tw-exit-translate-y: initial}.data-\[motion\^\=from-\]\:fade-in[data-motion^=from-]{--tw-enter-opacity: 0}.data-\[motion\^\=to-\]\:fade-out[data-motion^=to-],.data-\[state\=closed\]\:fade-out-0[data-state=closed],.data-\[state\=hidden\]\:fade-out[data-state=hidden]{--tw-exit-opacity: 0}.data-\[state\=open\]\:fade-in-0[data-state=open],.data-\[state\=visible\]\:fade-in[data-state=visible]{--tw-enter-opacity: 0}.data-\[state\=closed\]\:zoom-out-95[data-state=closed]{--tw-exit-scale: .95}.data-\[state\=open\]\:zoom-in-90[data-state=open]{--tw-enter-scale: .9}.data-\[state\=open\]\:zoom-in-95[data-state=open]{--tw-enter-scale: .95}.data-\[motion\=from-end\]\:slide-in-from-right-52[data-motion=from-end]{--tw-enter-translate-x: 13rem}.data-\[motion\=from-start\]\:slide-in-from-left-52[data-motion=from-start]{--tw-enter-translate-x: -13rem}.data-\[motion\=to-end\]\:slide-out-to-right-52[data-motion=to-end]{--tw-exit-translate-x: 13rem}.data-\[motion\=to-start\]\:slide-out-to-left-52[data-motion=to-start]{--tw-exit-translate-x: -13rem}.data-\[side\=bottom\]\:slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y: -.5rem}.data-\[side\=left\]\:slide-in-from-right-2[data-side=left]{--tw-enter-translate-x: .5rem}.data-\[side\=right\]\:slide-in-from-left-2[data-side=right]{--tw-enter-translate-x: -.5rem}.data-\[side\=top\]\:slide-in-from-bottom-2[data-side=top]{--tw-enter-translate-y: .5rem}.data-\[state\=closed\]\:slide-out-to-bottom[data-state=closed]{--tw-exit-translate-y: 100%}.data-\[state\=closed\]\:slide-out-to-left[data-state=closed]{--tw-exit-translate-x: -100%}.data-\[state\=closed\]\:slide-out-to-left-1\/2[data-state=closed]{--tw-exit-translate-x: -50%}.data-\[state\=closed\]\:slide-out-to-right[data-state=closed]{--tw-exit-translate-x: 100%}.data-\[state\=closed\]\:slide-out-to-top[data-state=closed]{--tw-exit-translate-y: -100%}.data-\[state\=closed\]\:slide-out-to-top-\[48\%\][data-state=closed]{--tw-exit-translate-y: -48%}.data-\[state\=open\]\:slide-in-from-bottom[data-state=open]{--tw-enter-translate-y: 100%}.data-\[state\=open\]\:slide-in-from-left[data-state=open]{--tw-enter-translate-x: -100%}.data-\[state\=open\]\:slide-in-from-left-1\/2[data-state=open]{--tw-enter-translate-x: -50%}.data-\[state\=open\]\:slide-in-from-right[data-state=open]{--tw-enter-translate-x: 100%}.data-\[state\=open\]\:slide-in-from-top[data-state=open]{--tw-enter-translate-y: -100%}.data-\[state\=open\]\:slide-in-from-top-\[48\%\][data-state=open]{--tw-enter-translate-y: -48%}.data-\[state\=closed\]\:duration-300[data-state=closed]{animation-duration:.3s}.data-\[state\=open\]\:duration-500[data-state=open]{animation-duration:.5s}.data-\[panel-group-direction\=vertical\]\:after\:left-0[data-panel-group-direction=vertical]:after{content:var(--tw-content);left:0}.data-\[panel-group-direction\=vertical\]\:after\:h-1[data-panel-group-direction=vertical]:after{content:var(--tw-content);height:.25rem}.data-\[panel-group-direction\=vertical\]\:after\:w-full[data-panel-group-direction=vertical]:after{content:var(--tw-content);width:100%}.data-\[panel-group-direction\=vertical\]\:after\:-translate-y-1\/2[data-panel-group-direction=vertical]:after{content:var(--tw-content);--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[panel-group-direction\=vertical\]\:after\:translate-x-0[data-panel-group-direction=vertical]:after{content:var(--tw-content);--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[state\=open\]\:hover\:bg-accent:hover[data-state=open]{background-color:hsl(var(--accent))}.data-\[state\=open\]\:hover\:bg-sidebar-accent:hover[data-state=open]{background-color:hsl(var(--sidebar-accent))}.data-\[state\=open\]\:hover\:text-sidebar-accent-foreground:hover[data-state=open]{color:hsl(var(--sidebar-accent-foreground))}.data-\[state\=open\]\:focus\:bg-accent:focus[data-state=open]{background-color:hsl(var(--accent))}.group\/day[data-focused=true] .group-data-\[focused\=true\]\/day\:relative{position:relative}.group[data-collapsible=offcanvas] .group-data-\[collapsible\=offcanvas\]\:left-\[calc\(var\(--sidebar-width\)\*-1\)\]{left:calc(var(--sidebar-width) * -1)}.group[data-collapsible=offcanvas] .group-data-\[collapsible\=offcanvas\]\:right-\[calc\(var\(--sidebar-width\)\*-1\)\]{right:calc(var(--sidebar-width) * -1)}.group[data-side=left] .group-data-\[side\=left\]\:-right-4{right:-1rem}.group[data-side=right] .group-data-\[side\=right\]\:left-0{left:0}.group\/day[data-focused=true] .group-data-\[focused\=true\]\/day\:z-10{z-index:10}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:-mt-8{margin-top:-2rem}.group\/field-group[data-variant=outline] .group-data-\[variant\=outline\]\/field-group\:-mb-2{margin-bottom:-.5rem}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:hidden{display:none}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:\!size-8{width:2rem!important;height:2rem!important}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:w-\[--sidebar-width-icon\]{width:var(--sidebar-width-icon)}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:w-\[calc\(var\(--sidebar-width-icon\)_\+_theme\(spacing\.4\)\)\]{width:calc(var(--sidebar-width-icon) + 1rem)}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:w-\[calc\(var\(--sidebar-width-icon\)_\+_theme\(spacing\.4\)_\+2px\)\]{width:calc(var(--sidebar-width-icon) + 1rem + 2px)}.group[data-collapsible=offcanvas] .group-data-\[collapsible\=offcanvas\]\:w-0{width:0px}.group[data-collapsible=offcanvas] .group-data-\[collapsible\=offcanvas\]\:translate-x-0{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group[data-side=right] .group-data-\[side\=right\]\:rotate-180,.group[data-state=open] .group-data-\[state\=open\]\:rotate-180{--tw-rotate: 180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:overflow-hidden{overflow:hidden}.group[data-variant=floating] .group-data-\[variant\=floating\]\:rounded-lg{border-radius:var(--radius)}.group[data-variant=floating] .group-data-\[variant\=floating\]\:border{border-width:1px}.group[data-side=left] .group-data-\[side\=left\]\:border-r{border-right-width:1px}.group[data-side=right] .group-data-\[side\=right\]\:border-l{border-left-width:1px}.group\/day[data-focused=true] .group-data-\[focused\=true\]\/day\:border-ring{border-color:hsl(var(--ring))}.group[data-variant=floating] .group-data-\[variant\=floating\]\:border-sidebar-border{border-color:hsl(var(--sidebar-border))}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:\!p-0{padding:0!important}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:\!p-2{padding:.5rem!important}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:opacity-0{opacity:0}.group\/field[data-disabled=true] .group-data-\[disabled\=true\]\/field\:opacity-50,.group\/input-group[data-disabled=true] .group-data-\[disabled\=true\]\/input-group\:opacity-50{opacity:.5}.group[data-variant=floating] .group-data-\[variant\=floating\]\:shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.group\/day[data-focused=true] .group-data-\[focused\=true\]\/day\:ring-\[3px\]{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.group\/day[data-focused=true] .group-data-\[focused\=true\]\/day\:ring-ring\/50{--tw-ring-color: hsl(var(--ring) / .5)}.group[data-collapsible=offcanvas] .group-data-\[collapsible\=offcanvas\]\:after\:left-full:after{content:var(--tw-content);left:100%}.group[data-collapsible=offcanvas] .group-data-\[collapsible\=offcanvas\]\:hover\:bg-sidebar:hover{background-color:hsl(var(--sidebar-background))}.peer\/menu-button[data-size=default]~.peer-data-\[size\=default\]\/menu-button\:top-1\.5{top:.375rem}.peer\/menu-button[data-size=lg]~.peer-data-\[size\=lg\]\/menu-button\:top-2\.5{top:.625rem}.peer\/menu-button[data-size=sm]~.peer-data-\[size\=sm\]\/menu-button\:top-1{top:.25rem}.peer\/menu-button[data-active=true]~.peer-data-\[active\=true\]\/menu-button\:text-sidebar-accent-foreground{color:hsl(var(--sidebar-accent-foreground))}.dark\:border-destructive:is(.dark *){border-color:hsl(var(--destructive))}.dark\:bg-input\/30:is(.dark *){background-color:hsl(var(--input) / .3)}.dark\:bg-transparent:is(.dark *){background-color:transparent}.dark\:has-\[\[data-slot\]\[aria-invalid\=true\]\]\:ring-destructive\/40:has([data-slot][aria-invalid=true]):is(.dark *){--tw-ring-color: hsl(var(--destructive) / .4)}@media (min-width: 640px){.sm\:mb-2{margin-bottom:.5rem}.sm\:mr-2{margin-right:.5rem}.sm\:mt-0{margin-top:0}.sm\:block{display:block}.sm\:flex{display:flex}.sm\:h-11{height:2.75rem}.sm\:h-12{height:3rem}.sm\:h-14{height:3.5rem}.sm\:h-20{height:5rem}.sm\:h-64{height:16rem}.sm\:h-7{height:1.75rem}.sm\:w-11{width:2.75rem}.sm\:w-12{width:3rem}.sm\:w-14{width:3.5rem}.sm\:w-20{width:5rem}.sm\:w-7{width:1.75rem}.sm\:max-w-sm{max-width:24rem}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:justify-end{justify-content:flex-end}.sm\:gap-2\.5{gap:.625rem}.sm\:gap-3{gap:.75rem}.sm\:gap-4{gap:1rem}.sm\:gap-6{gap:1.5rem}.sm\:space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.sm\:rounded-lg{border-radius:var(--radius)}.sm\:p-3{padding:.75rem}.sm\:p-4{padding:1rem}.sm\:p-5{padding:1.25rem}.sm\:p-6{padding:1.5rem}.sm\:px-4{padding-left:1rem;padding-right:1rem}.sm\:px-5{padding-left:1.25rem;padding-right:1.25rem}.sm\:px-6{padding-left:1.5rem;padding-right:1.5rem}.sm\:px-8{padding-left:2rem;padding-right:2rem}.sm\:py-3{padding-top:.75rem;padding-bottom:.75rem}.sm\:py-4{padding-top:1rem;padding-bottom:1rem}.sm\:text-left{text-align:left}.sm\:text-2xl{font-size:1.5rem;line-height:2rem}.sm\:text-3xl{font-size:1.875rem;line-height:2.25rem}.sm\:text-4xl{font-size:2.25rem;line-height:2.5rem}.sm\:text-base{font-size:1rem;line-height:1.5rem}.sm\:text-lg{font-size:1.125rem;line-height:1.75rem}.sm\:text-sm{font-size:.875rem;line-height:1.25rem}.sm\:text-xl{font-size:1.25rem;line-height:1.75rem}.sm\:text-xs{font-size:.75rem;line-height:1rem}}@media (min-width: 768px){.md\:absolute{position:absolute}.md\:mb-12{margin-bottom:3rem}.md\:mb-16{margin-bottom:4rem}.md\:mb-2{margin-bottom:.5rem}.md\:mb-3{margin-bottom:.75rem}.md\:mb-4{margin-bottom:1rem}.md\:mb-6{margin-bottom:1.5rem}.md\:mb-8{margin-bottom:2rem}.md\:mt-12{margin-top:3rem}.md\:mt-6{margin-top:1.5rem}.md\:block{display:block}.md\:flex{display:flex}.md\:h-10{height:2.5rem}.md\:h-12{height:3rem}.md\:h-16{height:4rem}.md\:h-72{height:18rem}.md\:h-8{height:2rem}.md\:h-96{height:24rem}.md\:h-\[500px\]{height:500px}.md\:min-h-\[calc\(100vh-64px\)\]{min-height:calc(100vh - 64px)}.md\:w-10{width:2.5rem}.md\:w-12{width:3rem}.md\:w-16{width:4rem}.md\:w-8{width:2rem}.md\:w-\[var\(--radix-navigation-menu-viewport-width\)\]{width:var(--radix-navigation-menu-viewport-width)}.md\:w-auto{width:auto}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.md\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.md\:flex-row{flex-direction:row}.md\:gap-10{gap:2.5rem}.md\:gap-4{gap:1rem}.md\:gap-6{gap:1.5rem}.md\:gap-8{gap:2rem}.md\:space-y-16>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(4rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(4rem * var(--tw-space-y-reverse))}.md\:space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.md\:space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.md\:space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.md\:p-12{padding:3rem}.md\:p-4{padding:1rem}.md\:p-5{padding:1.25rem}.md\:p-6{padding:1.5rem}.md\:p-8{padding:2rem}.md\:px-10{padding-left:2.5rem;padding-right:2.5rem}.md\:px-6{padding-left:1.5rem;padding-right:1.5rem}.md\:px-8{padding-left:2rem;padding-right:2rem}.md\:py-12{padding-top:3rem;padding-bottom:3rem}.md\:py-16{padding-top:4rem;padding-bottom:4rem}.md\:py-20{padding-top:5rem;padding-bottom:5rem}.md\:py-24{padding-top:6rem;padding-bottom:6rem}.md\:py-28{padding-top:7rem;padding-bottom:7rem}.md\:py-4{padding-top:1rem;padding-bottom:1rem}.md\:pb-16{padding-bottom:4rem}.md\:pb-24{padding-bottom:6rem}.md\:pt-16{padding-top:4rem}.md\:pt-28{padding-top:7rem}.md\:text-left{text-align:left}.md\:text-2xl{font-size:1.5rem;line-height:2rem}.md\:text-4xl{font-size:2.25rem;line-height:2.5rem}.md\:text-5xl{font-size:3rem;line-height:1}.md\:text-base{font-size:1rem;line-height:1.5rem}.md\:text-lg{font-size:1.125rem;line-height:1.75rem}.md\:text-sm{font-size:.875rem;line-height:1.25rem}.md\:text-xl{font-size:1.25rem;line-height:1.75rem}.md\:opacity-0{opacity:0}.after\:md\:hidden:after{content:var(--tw-content);display:none}.peer[data-variant=inset]~.md\:peer-data-\[variant\=inset\]\:m-2{margin:.5rem}.peer[data-state=collapsed][data-variant=inset]~.md\:peer-data-\[state\=collapsed\]\:peer-data-\[variant\=inset\]\:ml-2{margin-left:.5rem}.peer[data-variant=inset]~.md\:peer-data-\[variant\=inset\]\:ml-0{margin-left:0}.peer[data-variant=inset]~.md\:peer-data-\[variant\=inset\]\:rounded-xl{border-radius:.75rem}.peer[data-variant=inset]~.md\:peer-data-\[variant\=inset\]\:shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}}@media (min-width: 1024px){.lg\:order-1{order:1}.lg\:order-2{order:2}.lg\:col-span-2{grid-column:span 2 / span 2}.lg\:col-span-3{grid-column:span 3 / span 3}.lg\:flex{display:flex}.lg\:hidden{display:none}.lg\:h-80{height:20rem}.lg\:h-auto{height:auto}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.lg\:gap-12{gap:3rem}.lg\:gap-6{gap:1.5rem}.lg\:gap-8{gap:2rem}.lg\:space-y-20>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(5rem * var(--tw-space-y-reverse))}.lg\:p-8{padding:2rem}.lg\:px-8{padding-left:2rem;padding-right:2rem}.lg\:py-20{padding-top:5rem;padding-bottom:5rem}.lg\:py-24{padding-top:6rem;padding-bottom:6rem}.lg\:py-28{padding-top:7rem;padding-bottom:7rem}.lg\:pb-24{padding-bottom:6rem}.lg\:pt-20{padding-top:5rem}.lg\:text-3xl{font-size:1.875rem;line-height:2.25rem}.lg\:text-5xl{font-size:3rem;line-height:1}}@media (min-width: 1280px){.xl\:p-12{padding:3rem}}.\[\&\+\[data-slot\=item-content\]\]\:flex-none+[data-slot=item-content]{flex:none}.\[\&\:first-child\[data-selected\=true\]_button\]\:rounded-l-md:first-child[data-selected=true] button{border-top-left-radius:calc(var(--radius) - 2px);border-bottom-left-radius:calc(var(--radius) - 2px)}.\[\&\:has\(\[role\=checkbox\]\)\]\:pr-0:has([role=checkbox]){padding-right:0}.\[\&\:last-child\[data-selected\=true\]_button\]\:rounded-r-md:last-child[data-selected=true] button{border-top-right-radius:calc(var(--radius) - 2px);border-bottom-right-radius:calc(var(--radius) - 2px)}.\[\&\>\*\:not\(\:first-child\)\]\:rounded-l-none>*:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.\[\&\>\*\:not\(\:first-child\)\]\:rounded-t-none>*:not(:first-child){border-top-left-radius:0;border-top-right-radius:0}.\[\&\>\*\:not\(\:first-child\)\]\:border-l-0>*:not(:first-child){border-left-width:0px}.\[\&\>\*\:not\(\:first-child\)\]\:border-t-0>*:not(:first-child){border-top-width:0px}.\[\&\>\*\:not\(\:last-child\)\]\:rounded-b-none>*:not(:last-child){border-bottom-right-radius:0;border-bottom-left-radius:0}.\[\&\>\*\:not\(\:last-child\)\]\:rounded-r-none>*:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.\[\&\>\*\]\:w-full>*{width:100%}.\[\&\>\*\]\:focus-visible\:relative:focus-visible>*{position:relative}.\[\&\>\*\]\:focus-visible\:z-10:focus-visible>*{z-index:10}.\[\&\>\.sr-only\]\:w-auto>.sr-only{width:auto}.\[\&\>\[data-slot\=field-group\]\]\:gap-4>[data-slot=field-group]{gap:1rem}.\[\&\>\[data-slot\=field-label\]\]\:flex-auto>[data-slot=field-label]{flex:1 1 auto}.\[\&\>\[data-slot\=field\]\]\:p-4>[data-slot=field]{padding:1rem}.has-\[select\[aria-hidden\=true\]\:last-child\]\:\[\&\>\[data-slot\=select-trigger\]\:last-of-type\]\:rounded-r-md>[data-slot=select-trigger]:last-of-type:has(select[aria-hidden=true]:last-child){border-top-right-radius:calc(var(--radius) - 2px);border-bottom-right-radius:calc(var(--radius) - 2px)}.\[\&\>\[data-slot\=select-trigger\]\:not\(\[class\*\=\'w-\'\]\)\]\:w-fit>[data-slot=select-trigger]:not([class*=w-]){width:-moz-fit-content;width:fit-content}.\[\&\>a\:hover\]\:text-primary>a:hover{color:hsl(var(--primary))}.\[\&\>a\]\:underline>a{text-decoration-line:underline}.\[\&\>a\]\:underline-offset-4>a{text-underline-offset:4px}.\[\&\>button\]\:hidden>button{display:none}.\[\&\>input\]\:flex-1>input{flex:1 1 0%}.has-\[\>\[data-align\=block-end\]\]\:\[\&\>input\]\:pt-3>input:has(>[data-align=block-end]){padding-top:.75rem}.has-\[\>\[data-align\=block-start\]\]\:\[\&\>input\]\:pb-3>input:has(>[data-align=block-start]){padding-bottom:.75rem}.has-\[\>\[data-align\=inline-end\]\]\:\[\&\>input\]\:pr-2>input:has(>[data-align=inline-end]){padding-right:.5rem}.has-\[\>\[data-align\=inline-start\]\]\:\[\&\>input\]\:pl-2>input:has(>[data-align=inline-start]){padding-left:.5rem}.\[\&\>kbd\]\:rounded-\[calc\(var\(--radius\)-5px\)\]>kbd{border-radius:calc(var(--radius) - 5px)}.\[\&\>span\:last-child\]\:truncate>span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.\[\&\>span\]\:line-clamp-1>span{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1}.\[\&\>span\]\:text-xs>span{font-size:.75rem;line-height:1rem}.\[\&\>span\]\:opacity-70>span{opacity:.7}.\[\&\>svg\+div\]\:translate-y-\[-3px\]>svg+div{--tw-translate-y: -3px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.\[\&\>svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-3\.5>svg:not([class*=size-]){width:.875rem;height:.875rem}.\[\&\>svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-4>svg:not([class*=size-]){width:1rem;height:1rem}.\[\&\>svg\]\:absolute>svg{position:absolute}.\[\&\>svg\]\:left-4>svg{left:1rem}.\[\&\>svg\]\:top-4>svg{top:1rem}.\[\&\>svg\]\:size-3\.5>svg{width:.875rem;height:.875rem}.\[\&\>svg\]\:size-4>svg{width:1rem;height:1rem}.\[\&\>svg\]\:h-3\.5>svg{height:.875rem}.\[\&\>svg\]\:w-3\.5>svg{width:.875rem}.\[\&\>svg\]\:shrink-0>svg{flex-shrink:0}.\[\&\>svg\]\:text-destructive>svg{color:hsl(var(--destructive))}.\[\&\>svg\]\:text-foreground>svg{color:hsl(var(--foreground))}.\[\&\>svg\]\:text-muted-foreground>svg{color:hsl(var(--muted-foreground))}.\[\&\>svg\]\:text-sidebar-accent-foreground>svg{color:hsl(var(--sidebar-accent-foreground))}.\[\&\>svg\~\*\]\:pl-7>svg~*{padding-left:1.75rem}.\[\&\>tr\]\:last\:border-b-0:last-child>tr{border-bottom-width:0px}.\[\&\[data-panel-group-direction\=vertical\]\>div\]\:rotate-90[data-panel-group-direction=vertical]>div{--tw-rotate: 90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.\[\&\[data-state\=open\]\>svg\]\:rotate-180[data-state=open]>svg{--tw-rotate: 180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.\[\&_\[cmdk-group-heading\]\]\:px-2 [cmdk-group-heading]{padding-left:.5rem;padding-right:.5rem}.\[\&_\[cmdk-group-heading\]\]\:py-1\.5 [cmdk-group-heading]{padding-top:.375rem;padding-bottom:.375rem}.\[\&_\[cmdk-group-heading\]\]\:text-xs [cmdk-group-heading]{font-size:.75rem;line-height:1rem}.\[\&_\[cmdk-group-heading\]\]\:font-medium [cmdk-group-heading]{font-weight:500}.\[\&_\[cmdk-group-heading\]\]\:text-muted-foreground [cmdk-group-heading]{color:hsl(var(--muted-foreground))}.\[\&_\[cmdk-group\]\:not\(\[hidden\]\)_\~\[cmdk-group\]\]\:pt-0 [cmdk-group]:not([hidden])~[cmdk-group]{padding-top:0}.\[\&_\[cmdk-group\]\]\:px-2 [cmdk-group]{padding-left:.5rem;padding-right:.5rem}.\[\&_\[cmdk-input-wrapper\]_svg\]\:h-5 [cmdk-input-wrapper] svg{height:1.25rem}.\[\&_\[cmdk-input-wrapper\]_svg\]\:w-5 [cmdk-input-wrapper] svg{width:1.25rem}.\[\&_\[cmdk-input\]\]\:h-12 [cmdk-input]{height:3rem}.\[\&_\[cmdk-item\]\]\:px-2 [cmdk-item]{padding-left:.5rem;padding-right:.5rem}.\[\&_\[cmdk-item\]\]\:py-3 [cmdk-item]{padding-top:.75rem;padding-bottom:.75rem}.\[\&_\[cmdk-item\]_svg\]\:h-5 [cmdk-item] svg{height:1.25rem}.\[\&_\[cmdk-item\]_svg\]\:w-5 [cmdk-item] svg{width:1.25rem}.\[\&_img\]\:size-full img{width:100%;height:100%}.\[\&_img\]\:object-cover img{-o-object-fit:cover;object-fit:cover}.\[\&_p\]\:leading-relaxed p{line-height:1.625}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-4 svg:not([class*=size-]){width:1rem;height:1rem}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-6 svg:not([class*=size-]){width:1.5rem;height:1.5rem}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:size-4 svg{width:1rem;height:1rem}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&_tr\:last-child\]\:border-0 tr:last-child{border-width:0px}.\[\&_tr\]\:border-b tr{border-bottom-width:1px}[data-side=left][data-collapsible=offcanvas] .\[\[data-side\=left\]\[data-collapsible\=offcanvas\]_\&\]\:-right-2{right:-.5rem}[data-side=left][data-state=collapsed] .\[\[data-side\=left\]\[data-state\=collapsed\]_\&\]\:cursor-e-resize{cursor:e-resize}[data-side=left] .\[\[data-side\=left\]_\&\]\:cursor-w-resize{cursor:w-resize}[data-side=right][data-collapsible=offcanvas] .\[\[data-side\=right\]\[data-collapsible\=offcanvas\]_\&\]\:-left-2{left:-.5rem}[data-side=right][data-state=collapsed] .\[\[data-side\=right\]\[data-state\=collapsed\]_\&\]\:cursor-w-resize{cursor:w-resize}[data-side=right] .\[\[data-side\=right\]_\&\]\:cursor-e-resize{cursor:e-resize}[data-slot=card-content] .\[\[data-slot\=card-content\]_\&\]\:bg-transparent,[data-slot=popover-content] .\[\[data-slot\=popover-content\]_\&\]\:bg-transparent{background-color:transparent}[data-variant=legend]+.\[\[data-variant\=legend\]\+\&\]\:-mt-1\.5{margin-top:-.375rem}


html{-webkit-text-size-adjust:100%}
body,body.home,body.page,body.error404,body.single{
  margin:0!important;padding:0!important;background:#fff!important;color:#0a0a0a!important;
  font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",
    "Segoe UI Symbol","Noto Color Emoji"!important;
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;
  line-height:1.5!important;font-size:16px!important;
}
/* the theme forces a serif display face (Prata) on headings, while the
   source site is sans-serif throughout, so headings inherit the body stack */
h1,h2,h3,h4,h5,h6,.wp-block-heading,button,input,select,textarea{
  font-family:inherit!important
}
.wp-site-blocks{display:block!important;max-width:none!important;width:100%!important;
  padding:0!important;margin:0!important;gap:0!important}
.wp-site-blocks>*+*{margin-block-start:0!important}
.wp-site-blocks>main,.wp-site-blocks>div>main{
  padding:0!important;margin:0!important;max-width:none!important;width:100%!important}
.wp-block-post-content,.entry-content,.wp-block-group{
  max-width:none!important;margin-left:0!important;margin-right:0!important;
  padding:0!important;width:100%!important}
/* the theme also leaves a 40px block margin under the last content block,
   which the source page does not have - it shows up as trailing dead space */
.wp-block-post-content>*{margin-block-start:0!important;margin-block-end:0!important;
  margin-bottom:0!important}
.skip-link{position:absolute!important;left:-9999px!important;top:-9999px!important;
  width:1px!important;height:1px!important;overflow:hidden!important}
#wp--skip-link--target{scroll-margin-top:0}
img{max-width:100%;height:auto}
a{text-decoration:none}


.wpcf7{max-width:100%}
.wpcf7 form{display:block;margin:0}
/* wpautop runs over the stored CF7 markup and leaves stray <br>s plus <p>
   wrappers between field groups; the source form has neither, and they push
   the form ~20px taller. Both are neutralised here. */
.wpcf7 form br{display:none}
.wpcf7 form p{margin:0}
.wpcf7 .wpcf7-form-control-wrap{display:block;position:relative}
.wpcf7 input.wpcf7-form-control:not([type=submit]):not([type=file]):not([type=checkbox]):not([type=radio]),
.wpcf7 select.wpcf7-form-control,
.wpcf7 textarea.wpcf7-form-control{
  display:block;width:100%;padding:.5rem 1rem;border:1px solid #d1d5db;border-radius:.375rem;
  background:#fff;color:#111827;font-family:inherit;font-size:1rem;line-height:1.5;
  transition:border-color .15s ease,box-shadow .15s ease;outline:none;
}
.wpcf7 select.wpcf7-form-control{appearance:auto;background-image:none}
/* The source textarea is left at its default inline-block, which leaves the
   usual baseline gap under the box; forcing it to block removes that gap and
   makes the Message group 6px shorter than the original. Mirror the source. */
.wpcf7 textarea.wpcf7-form-control{display:inline-block;min-height:7.5rem;resize:vertical}
.wpcf7 input.wpcf7-form-control:focus,
.wpcf7 select.wpcf7-form-control:focus,
.wpcf7 textarea.wpcf7-form-control:focus{
  border-color:#4A6FA5;box-shadow:0 0 0 2px rgba(74,111,165,.35)
}
.wpcf7 input.wpcf7-form-control.wpcf7-not-valid,
.wpcf7 select.wpcf7-form-control.wpcf7-not-valid,
.wpcf7 textarea.wpcf7-form-control.wpcf7-not-valid{border-color:#dc2626}
.wpcf7 .wpcf7-not-valid-tip{display:block;margin-top:.3rem;font-size:.75rem;line-height:1.4;color:#dc2626}
/* Upload drop-zone: the source renders a centred icon + two captions inside a
   dashed box and keeps the real <input type=file> hidden. CF7 prints the bare
   file control, so it is hidden here and the box itself becomes the trigger
   (wired up in the interaction shim). */
.wpcf7 input[type=file].wpcf7-form-control{position:absolute;width:1px;height:1px;
  padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
/* the source label carries mb-2 (8px) above the drop-zone; the stored markup
   says mb-1 (4px). Adjacent sibling margins collapse, so asking for 8px here
   yields exactly the source's 8px gap whatever the label's own margin is. */
.kc-upload{cursor:pointer;padding:1.5rem;margin-top:.5rem}
.kc-upload-over{border-color:#4A6FA5!important;background:#f8fafc}
.kc-upload:hover{border-color:#4A6FA5}
/* CF7 runs wpautop over the stored markup, which wraps the two captions in a
   <p> with its own margin and leaves stray <br>s behind - the source site has
   neither. Neutralise both so the box measures the same 144px.
   NB: the captions are not the last children of the <p> (stray <br>s follow,
   and the file control adds a further span), so the bottom margins are cleared
   wholesale and only the first caption keeps the source's mb-1. */
.kc-upload p{margin:0}
.kc-upload br{display:none}
.kc-upload p span{margin-bottom:0}
.kc-upload p>span:first-of-type{margin-bottom:.25rem}
/* the source caption is regular weight grey; the stored markup says medium navy */
.kc-upload p>span:first-of-type{font-weight:400}
.kc-upload-icon{display:block;text-align:center}
.kc-upload-icon svg{width:2.5rem;height:2.5rem;color:#9ca3af;margin:0 auto .75rem;display:block}
.kc-upload-name{display:block;margin-top:.5rem;font-size:.8125rem;font-weight:600;color:#0A2540;
  word-break:break-all}
.kc-upload-name:empty{display:none}
/* captions inside the drop-zone are grey on the source site, not navy */
.kc-upload span{color:#4b5563}
.kc-upload .kc-upload-icon{color:#9ca3af}
.kc-upload .kc-upload-name{color:#0A2540;font-weight:600}
.wpcf7 .wpcf7-submit{
  display:flex;align-items:center;justify-content:center;gap:.5rem;
  width:100%;min-height:48px;padding:.875rem 1.5rem;border:0;border-radius:.375rem;
  background:#FF6B35;color:#fff;font-family:inherit;font-size:1rem;font-weight:600;
  cursor:pointer;transition:background .2s ease,transform .2s ease;
}
.wpcf7 .wpcf7-submit svg{width:1.25rem;height:1.25rem;flex:none}
.wpcf7 .wpcf7-submit:hover{background:#e55a2b;transform:scale(1.02)}
.wpcf7 .wpcf7-submit:disabled{opacity:.5;cursor:not-allowed;transform:none}
/* CF7's own stylesheet keeps the spinner in flow with visibility:hidden, and
   because it sits after a full-width submit button it wraps to its own line and
   adds ~24px the source form does not have. Take it out of flow until the form
   is actually submitting. */
.wpcf7 .wpcf7-spinner{display:none;margin:0 0 0 .75rem}
.wpcf7 form.submitting .wpcf7-spinner{display:inline-block}
.wpcf7 form .wpcf7-response-output{
  margin:1rem 0 0!important;padding:.85rem 1.1rem;border-radius:.375rem;
  font-size:.875rem;line-height:1.5;border:1px solid transparent;
}
.wpcf7 form.sent .wpcf7-response-output{background:#ecfdf5;border-color:#a7f3d0;color:#065f46}
.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.failed .wpcf7-response-output,
.wpcf7 form.aborted .wpcf7-response-output{background:#fef2f2;border-color:#fecaca;color:#991b1b}
.wpcf7 form.unaccepted .wpcf7-response-output{background:#fffbeb;border-color:#fde68a;color:#92400e}
.wpcf7 .wpcf7-list-item{margin:0}
.wpcf7 .wpcf7-acceptance label{display:flex;align-items:flex-start;gap:.5rem;font-size:.8125rem;color:#4b5563}
.wpcf7 .wpcf7-acceptance input[type=checkbox]{margin-top:.2rem}
.korecera-form{width:100%}

/* ============================================================
   Korecera design system v4  -  customprecisionceramicparts.com
   Scope: every rule is nested under .kc-page, so the legacy
   pages (Tailwind clone markup) are never affected.

   Brief: a precision engineering supplier. Deep navy chrome
   (top strip + sticky bar + footer), a white specification
   body, one engineering blue for the primary action and for
   links, and a warm accent held under three percent of the
   page. Roughly 80 percent of the page is white or a light
   neutral; dark is the frame and one emphasis band, never
   every section.

   Type: IBM Plex Sans with a system fallback, three weights.
   Figures are tabular. Radius 6px on containers, 4px on
   controls. Hairline rules instead of shadows.
   ============================================================ */

/* IBM Plex Sans, self hosted from the site's own media library so no
   third party font CDN is contacted. If the files are absent the
   browser silently falls through to the system stack below. */
@font-face{font-family:"IBM Plex Sans";font-style:normal;font-weight:400;font-display:swap;
  src:url("/wp-content/uploads/2026/09/ibm-plex-sans-400.woff2") format("woff2");}
@font-face{font-family:"IBM Plex Sans";font-style:normal;font-weight:500;font-display:swap;
  src:url("/wp-content/uploads/2026/09/ibm-plex-sans-500.woff2") format("woff2");}
@font-face{font-family:"IBM Plex Sans";font-style:normal;font-weight:600;font-display:swap;
  src:url("/wp-content/uploads/2026/09/ibm-plex-sans-600.woff2") format("woff2");}

.kc-page{
  /* ink */
  --kc-ink:#0c2136;      /* headings, dark blocks */
  --kc-ink-2:#25313c;    /* body copy */
  --kc-ink-3:#66737f;    /* secondary text */
  --kc-ink-4:#5c6874;    /* faint labels. The binding constraint is not white
                            (5.30:1) but the surface tones: 4.71:1 on the
                            technical grey. The brief's secondary #66737f
                            clears white at 4.86:1 and the light surface at
                            4.52:1, but reaches only 4.02:1 on #e6eaee. */
  /* surfaces */
  --kc-bg:#ffffff;
  --kc-bg-2:#f5f7f9;
  --kc-bg-3:#e6eaee;
  --kc-line:#dee4ea;
  --kc-line-2:#e9edf1;
  /* action */
  --kc-cta:#236aa6;
  --kc-cta-d:#1a5484;
  --kc-cta-l:#eaf2f9;
  --kc-link:#236aa6;
  --kc-link-l:#eaf2f9;
  /* the warm accent. Under three percent of the page: the numeral on a
     dark band and nothing else. At 3.16:1 on white it may not carry
     reading text, which is what keeps it from creeping into body copy. */
  --kc-accent:#d97735;
  /* frame */
  --kc-dark:#0c2136;
  --kc-dark-2:#08192a;
  --kc-dark-3:#16354f;
  /* state */
  --kc-ok:#166534;
  --kc-ok-l:#eaf4ee;
  --kc-flag:#8a5a00;
  --kc-flag-l:#fdf6e7;
  --kc-danger:#b42318;
  --kc-danger-l:#fdf2f1;
  /* metrics */
  --kc-wrap:1240px;
  --kc-narrow:880px;
  --kc-pad:40px;
  /* 80px between eleven structurally identical sections read as one flat
     list rather than a page with a beat. 104px gives the standard block its
     own air; the tight variant then pulls the dense blocks back in. */
  --kc-sec:104px;
  --kc-r:6px;
  --kc-r-sm:4px;
  /* 4 8 12 16 24 32 48 64 80 */
  --kc-s1:4px;  --kc-s2:8px;  --kc-s3:12px; --kc-s4:16px; --kc-s5:24px;
  --kc-s6:32px; --kc-s7:48px; --kc-s8:64px; --kc-s9:80px;
  --kc-t:.15s ease;
  --kc-font:"IBM Plex Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,
    "Helvetica Neue",Arial,"Noto Sans",sans-serif;
  --kc-mono:ui-monospace,SFMono-Regular,Menlo,Consolas,"Liberation Mono",monospace;
  color:var(--kc-ink-2);
  background:var(--kc-bg);
  font-family:var(--kc-font);
  font-size:17px;
  line-height:1.6;
  text-align:left;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  overflow-x:hidden;
}
/* overflow-x:hidden forces overflow-y to compute to auto, which makes this
   element a scroll container - and a scroll container silently kills every
   position:sticky inside it. Measured on the live site: the bar carried
   position:sticky and still travelled the full 1466px with the page. clip
   does not create a scroll container, so pair it with a visible overflow-y
   and the bar can pin. Browsers without clip keep the old clipping rule and
   simply lose the sticky behaviour, which is where they already are. */
@supports (overflow:clip){
  .kc-page{overflow-x:clip;overflow-y:visible}
}
.kc-page *,.kc-page *::before,.kc-page *::after{box-sizing:border-box}
.kc-page img{max-width:100%;height:auto;display:block}
.kc-page svg{display:block}
.kc-page figure{margin:0}
/* the locked bar floats over the top of the viewport, so an in-page #link
   must stop clear of it instead of parking its target underneath */
.kc-page [id]{scroll-margin-top:96px}
.kc-page button{font:inherit;color:inherit}
.kc-page p{margin:0}
.kc-page ul,.kc-page ol{margin:0;padding:0;list-style:none}
.kc-page :focus-visible{outline:2px solid var(--kc-link);outline-offset:2px}

/* ---------- typography ---------- */
.kc-page h1,.kc-page h2,.kc-page h3,.kc-page h4{
  margin:0;font-weight:600;letter-spacing:-.011em;color:var(--kc-ink);
}
/* The step from h2 down to body copy was 2.0x (34px against 17px), so eleven
   section headings all read at one weight and the page had no spine to scan
   down. Widening the ladder puts that ratio at 2.6x on a 1440 viewport. The
   banner headline is set by its own rule in kc_v4_shell and stays clear. */
.kc-page h1{font-size:clamp(36px,4.2vw,52px);line-height:1.1;letter-spacing:-.022em}
.kc-page h2{font-size:clamp(30px,3vw,44px);line-height:1.15;letter-spacing:-.02em}
.kc-page h3{font-size:clamp(22px,1.7vw,24px);line-height:1.28;letter-spacing:-.01em}
.kc-page h4{font-size:15.5px;line-height:1.4;font-weight:500;letter-spacing:0}
/* The lead sat one step above body copy; two steps separates the opening
   statement from the paragraph under it without shouting. */
.kc-page .kc-lead{font-size:20px;line-height:1.5;color:var(--kc-ink-2);max-width:70ch}
.kc-page .kc-p{max-width:70ch}
.kc-page .kc-small{font-size:14px;line-height:1.5;color:var(--kc-ink-3);max-width:70ch}
.kc-page .kc-eyebrow{
  font-size:12px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;
  color:var(--kc-ink-3);margin:0 0 var(--kc-s4);
}
.kc-page .kc-eyebrow-k{color:var(--kc-ink-3)}
.kc-page strong{font-weight:600;color:var(--kc-ink)}
.kc-page em{font-style:normal;color:var(--kc-ink-3)}
.kc-page code{
  font-family:var(--kc-mono);font-size:.9em;background:var(--kc-bg-2);
  padding:2px 6px;border-radius:var(--kc-r-sm);color:var(--kc-ink);
}
/* tabular figures everywhere a value is read as a value */
.kc-page .kc-num,.kc-page .kc-cap-v,.kc-page .kc-tbl td.kc-n{
  font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1;
}
.kc-page .kc-num{white-space:nowrap}

/* links carry a persistent underline in prose so colour is never the only cue */
.kc-page a{color:var(--kc-link);text-decoration:underline;text-underline-offset:2px;
  text-decoration-thickness:1px}
.kc-page a:hover{color:#0f47a8;text-decoration-thickness:2px}
.kc-page a.kc-btn,.kc-page a.kc-logo,.kc-page a.kc-mi-a,.kc-page a.kc-link-card,
.kc-page a.kc-gate,.kc-page a.kc-hub-t,.kc-page a.kc-drop-i,.kc-page a.kc-top-a,
.kc-page a.kc-mnav-a,.kc-page a.kc-shot,.kc-page .kc-foot a,.kc-page a.kc-part-i{
  text-decoration:none;
}

/* ---------- layout ---------- */
.kc-page .kc-wrap{max-width:var(--kc-wrap);margin:0 auto;padding:0 var(--kc-pad)}
.kc-page .kc-wrap-n{max-width:var(--kc-narrow);margin:0 auto;padding:0 var(--kc-pad)}
.kc-page .kc-sec{padding:var(--kc-sec) 0;border-top:1px solid var(--kc-line-2)}
.kc-page .kc-sec:first-child{border-top:0}
.kc-page .kc-sec-alt{background:var(--kc-bg-2)}
.kc-page .kc-sec-dark{background:var(--kc-dark);color:#dbe3ea;border-top:0}
.kc-page .kc-sec-dark h1,.kc-page .kc-sec-dark h2,
.kc-page .kc-sec-dark h3,.kc-page .kc-sec-dark h4{color:#fff}
.kc-page .kc-sec-dark .kc-lead,.kc-page .kc-sec-dark p{color:#c2cdd8}
.kc-page .kc-sec-dark .kc-small{color:#9daab6}
.kc-page .kc-sec-dark .kc-eyebrow{color:#9dc0e8}
/* The link blue is tuned for white, where it clears 5.5:1. On this navy it
   drops to 2.86:1, and the links that land here are the related-page pointers
   at the foot of a guide - the ones a visitor is most likely to follow. The
   eyebrow blue is 8.7:1 on the same background. Scoped to links inside a
   paragraph so buttons, which carry their own colour, are untouched. */
.kc-page .kc-sec-dark p a,.kc-page .kc-band p a{color:#9dc0e8}
.kc-page .kc-sec-dark p a:hover,.kc-page .kc-band p a:hover{color:#c2dcf5}
.kc-page .kc-head{max-width:820px;margin:0 0 44px}
.kc-page .kc-head-c{margin-left:auto;margin-right:auto;text-align:center}
.kc-page .kc-p-l{color:var(--kc-ink-3)}

.kc-page .kc-grid{display:grid;gap:var(--kc-s5)}
.kc-page .kc-g2{grid-template-columns:repeat(2,1fr)}
.kc-page .kc-g3{grid-template-columns:repeat(3,1fr)}
.kc-page .kc-g4{grid-template-columns:repeat(4,1fr)}
.kc-page .kc-split{display:grid;grid-template-columns:1.05fr .95fr;
  gap:var(--kc-s7);align-items:start}
.kc-page .kc-split-wide{display:grid;grid-template-columns:1.35fr .65fr;
  gap:var(--kc-s7);align-items:start}
.kc-page .kc-stack{display:flex;flex-direction:column;gap:var(--kc-s4)}
/* a grid or flex child must be allowed to shrink below its content width,
   otherwise a wide table pushes the whole track past the viewport */
.kc-page .kc-split>*,.kc-page .kc-split-wide>*,.kc-page .kc-grid>*,
.kc-page .kc-stack>*{min-width:0}
.kc-page .kc-row{display:flex;flex-wrap:wrap;gap:var(--kc-s3);align-items:center}
.kc-page .kc-row-t{display:flex;flex-wrap:wrap;gap:var(--kc-s3);
  align-items:baseline;justify-content:space-between}

/* ---------- buttons ---------- */
.kc-page .kc-btn{
  display:inline-flex;align-items:center;gap:9px;justify-content:center;
  min-height:48px;padding:0 22px;border-radius:var(--kc-r-sm);
  border:1px solid transparent;
  font-size:15px;font-weight:600;line-height:1;cursor:pointer;
  transition:background-color var(--kc-t),border-color var(--kc-t),color var(--kc-t);
}
.kc-page .kc-btn-primary{background:var(--kc-cta);color:#fff}
.kc-page .kc-btn-primary:hover{background:var(--kc-cta-d);color:#fff;text-decoration:none}
.kc-page .kc-btn-ink{background:var(--kc-dark);color:#fff}
.kc-page .kc-btn-ink:hover{background:var(--kc-dark-3);color:#fff;text-decoration:none}
.kc-page .kc-btn-ghost{background:transparent;border-color:var(--kc-line);color:var(--kc-ink)}
.kc-page .kc-btn-ghost:hover{border-color:var(--kc-ink);color:var(--kc-ink);text-decoration:none}
.kc-page .kc-btn-light{background:#fff;color:var(--kc-ink)}
.kc-page .kc-btn-light:hover{background:#e6ecf1;color:var(--kc-ink);text-decoration:none}
.kc-page .kc-btn-sm{min-height:40px;padding:0 16px;font-size:14px}
.kc-page .kc-btn-full{width:100%}
.kc-page .kc-arrow{font-size:14px;line-height:1}

/* ---------- cards ---------- */
.kc-page .kc-card{
  background:#fff;border:1px solid var(--kc-line);border-radius:var(--kc-r);
  padding:var(--kc-s5);display:flex;flex-direction:column;gap:var(--kc-s3);
  transition:border-color var(--kc-t);
}
.kc-page .kc-card:hover{border-color:#b4c2cc}
.kc-page .kc-card-flat{border-color:var(--kc-line-2);background:var(--kc-bg-2)}
.kc-page .kc-card-dark{background:var(--kc-dark-3);border-color:#22394e;color:#dbe3ea}
.kc-page .kc-card-dark h3,.kc-page .kc-card-dark h4{color:#fff}
.kc-page .kc-card-p0{border-left:3px solid var(--kc-cta)}
.kc-page .kc-link-card{
  display:flex;flex-direction:column;gap:var(--kc-s2);padding:var(--kc-s5);
  border:1px solid var(--kc-line);border-radius:var(--kc-r);background:#fff;
  transition:border-color var(--kc-t),background-color var(--kc-t);
}
.kc-page .kc-link-card:hover{border-color:var(--kc-link);background:var(--kc-link-l)}
.kc-page .kc-link-card .kc-lc-t{font-weight:600;color:var(--kc-ink);font-size:16px;line-height:1.35}
.kc-page .kc-link-card .kc-lc-d{font-size:14px;color:var(--kc-ink-3);line-height:1.5}
.kc-page .kc-link-card .kc-lc-g{margin-top:auto;padding-top:var(--kc-s3);
  font-size:12px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;
  color:var(--kc-link)}

/* ---------- flat link list (used where cards would be too repetitive) ---------- */
.kc-page .kc-list{display:grid;gap:0;border-top:1px solid var(--kc-line)}
.kc-page .kc-list-2{grid-template-columns:repeat(2,1fr);column-gap:var(--kc-s7)}
.kc-page .kc-list-3{grid-template-columns:repeat(3,1fr);column-gap:var(--kc-s7)}
.kc-page .kc-li{
  display:block;padding:var(--kc-s4) 0;border-bottom:1px solid var(--kc-line-2);
}
.kc-page .kc-li-t{font-weight:600;color:var(--kc-ink);font-size:16px;line-height:1.35}
.kc-page .kc-li-t:hover{color:var(--kc-link);text-decoration:underline}
.kc-page .kc-li-d{display:block;font-size:14px;color:var(--kc-ink-3);
  line-height:1.5;margin-top:3px}

/* ---------- capability strip ---------- */
.kc-page .kc-caps{
  display:grid;grid-template-columns:repeat(5,1fr);gap:0;
  border:1px solid var(--kc-line);border-radius:var(--kc-r);overflow:hidden;background:#fff;
}
.kc-page .kc-cap{padding:var(--kc-s5) var(--kc-s4);border-left:1px solid var(--kc-line-2)}
.kc-page .kc-cap:first-child{border-left:0}
/* An unclassed paragraph dropped straight into the wrapper runs the full
   1160px, which at 17px is about 136 characters to a line - twice what the
   eye can track back from. Only one paragraph on the site does it, and it is
   the only unclassed one in a wrapper, so the cap is scoped to those rather
   than to every paragraph: a card or column paragraph is already narrower and
   must stay exactly as wide as its container. */
.kc-page .kc-wrap > p:not([class]){max-width:70ch}
/* The name is shared: 50 of these are the grid cells above, but on eight
   pages it is also a standalone note under the figures, and there it ran the
   full 1160px wrapper at 17px - about 136 characters to a line, far past the
   point where the eye loses the return sweep. The cells are divs, so scoping
   to p caps the note without moving a single figure. */
.kc-page p.kc-cap{max-width:70ch}
/* The five confirmed figures are the most quotable thing on the page and they
   were set at 22px, one step off body copy, so a reader scanning for the
   number had nothing to land on. They are numerals, and carry a size above
   running text without shouting. */
.kc-page .kc-cap-v{font-size:clamp(26px,2.3vw,32px);font-weight:600;letter-spacing:-.018em;
  line-height:1.06;color:var(--kc-ink)}
.kc-page .kc-cap-k{font-size:12px;font-weight:500;letter-spacing:.04em;
  color:var(--kc-ink-3);margin-top:6px}

/* ---------- tables ---------- */
.kc-page .kc-tbl-wrap{overflow-x:auto;border:1px solid var(--kc-line);
  border-radius:var(--kc-r);background:#fff;min-width:0;
  /* A cell that carries no colour of its own inherits this, and the panel is
     always white. Without it, a table inside a dark band inherited the band's
     #dbe3ea - pale text on the white panel at 1.30:1, which the contrast audit
     caught as unreadable figures. The panel states the colour once for every
     cell rather than each cell restating it. */
  color:var(--kc-ink-2)}
.kc-page table.kc-tbl{width:100%;border-collapse:collapse;font-size:15px;line-height:1.5;
  min-width:560px}
.kc-page .kc-tbl caption{
  text-align:left;padding:var(--kc-s3) var(--kc-s4);font-size:12.5px;font-weight:600;
  letter-spacing:.05em;text-transform:uppercase;color:var(--kc-ink-3);
  background:var(--kc-bg-2);border-bottom:1px solid var(--kc-line);
}
.kc-page .kc-tbl th,.kc-page .kc-tbl td{
  padding:var(--kc-s3) var(--kc-s4);text-align:left;
  border-bottom:1px solid var(--kc-line-2);vertical-align:top;
}
.kc-page .kc-tbl thead th{
  font-size:12.5px;font-weight:600;letter-spacing:.03em;text-transform:uppercase;
  color:var(--kc-ink);background:var(--kc-bg-2);white-space:nowrap;
}
.kc-page .kc-tbl tbody tr:last-child th,
.kc-page .kc-tbl tbody tr:last-child td{border-bottom:0}
.kc-page .kc-tbl tbody th{font-weight:600;color:var(--kc-ink);width:30%}
/* a value cell is right aligned so figures line up on the decimal */
.kc-page .kc-tbl td.kc-n{text-align:right;white-space:nowrap}
.kc-page .kc-tbl thead th.kc-n{text-align:right}
.kc-page .kc-tbl-m tbody th,.kc-page .kc-tbl-m thead th:first-child{
  width:1%;white-space:nowrap;
}
.kc-page .kc-tbl-mark{font-weight:600}
.kc-page .kc-tbl .kc-y{color:var(--kc-ok)}
.kc-page .kc-tbl .kc-n-weak{color:var(--kc-ink-3)}

/* ---------- key/value spec list ---------- */
.kc-page .kc-kv{display:grid;grid-template-columns:auto 1fr;gap:0;
  border-top:1px solid var(--kc-line-2)}
.kc-page .kc-kv dt,.kc-page .kc-kv dd{margin:0;padding:var(--kc-s3) 0;
  border-bottom:1px solid var(--kc-line-2)}
.kc-page .kc-kv dt{font-size:14px;color:var(--kc-ink-3);padding-right:var(--kc-s5);white-space:nowrap}
.kc-page .kc-kv dd{font-size:15px;color:var(--kc-ink);font-weight:500}

/* ---------- notes / flags ---------- */
.kc-page .kc-note{
  border:1px solid var(--kc-line);border-left:3px solid var(--kc-ink-3);
  background:var(--kc-bg-2);padding:var(--kc-s4) var(--kc-s5);
  border-radius:var(--kc-r-sm);font-size:14.5px;line-height:1.55;color:var(--kc-ink-3);
}
.kc-page .kc-note-flag{border-left-color:var(--kc-flag);background:var(--kc-flag-l);color:#5c3d00}
.kc-page .kc-note-ok{border-left-color:var(--kc-ok);background:var(--kc-ok-l);color:#134a2f}
.kc-page .kc-note-k{
  display:block;font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;
  color:var(--kc-ink-3);margin-bottom:5px;
}
.kc-page .kc-note-flag .kc-note-k{color:var(--kc-flag)}
.kc-page .kc-note-ok .kc-note-k{color:var(--kc-ok)}

/* ---------- badges ---------- */
.kc-page .kc-badge{
  display:inline-block;font-size:12px;font-weight:500;letter-spacing:.03em;
  padding:4px 10px;border:1px solid var(--kc-line);border-radius:var(--kc-r-sm);
  color:var(--kc-ink-3);background:#fff;white-space:nowrap;
}
.kc-page .kc-badge-a{border-color:#b9cf94;color:#3f6212;background:#f4f8ec}
/* div, not the bare class: the icon badge row further down the sheet is a ul
   and reuses both names. See the note there. */
.kc-page div.kc-badges{display:flex;flex-wrap:wrap;gap:var(--kc-s2)}

/* ---------- process steps ---------- */
.kc-page .kc-steps{counter-reset:kcstep;display:grid;gap:0}
.kc-page .kc-step{
  position:relative;padding:var(--kc-s5) 0 var(--kc-s5) var(--kc-s8);
  border-bottom:1px solid var(--kc-line-2);counter-increment:kcstep;
}
.kc-page .kc-step:last-child{border-bottom:0}
.kc-page .kc-step::before{
  content:counter(kcstep,decimal-leading-zero);position:absolute;left:0;top:var(--kc-s5);
  font-family:var(--kc-mono);font-size:13px;font-weight:600;color:var(--kc-cta);
  border:1px solid var(--kc-line);border-radius:var(--kc-r-sm);
  padding:3px 8px;background:#fff;
}
.kc-page .kc-step-t{font-weight:600;font-size:17px;margin-bottom:5px;color:var(--kc-ink)}
.kc-page .kc-step-d{font-size:15px;color:var(--kc-ink-3);max-width:70ch}
.kc-page .kc-steps-h{display:grid;grid-template-columns:repeat(4,1fr);gap:0}
.kc-page .kc-step-h{padding:var(--kc-s5);border:1px solid var(--kc-line);border-left:0}
.kc-page .kc-step-h:first-child{border-left:1px solid var(--kc-line)}
.kc-page .kc-step-h .kc-sh-n{
  font-family:var(--kc-mono);font-size:12px;color:var(--kc-cta);font-weight:600;
  display:block;margin-bottom:var(--kc-s3);
}
.kc-page .kc-step-h .kc-sh-t{font-weight:600;font-size:16px;margin-bottom:5px;color:var(--kc-ink)}
.kc-page .kc-step-h .kc-sh-d{font-size:14px;color:var(--kc-ink-3);line-height:1.5}

/* ---------- checklist ---------- */
.kc-page .kc-check{display:flex;flex-direction:column;gap:var(--kc-s3)}
.kc-page .kc-check li{
  position:relative;padding-left:28px;font-size:15px;color:var(--kc-ink-3);line-height:1.55;
}
.kc-page .kc-check li::before{
  content:"";position:absolute;left:0;top:4px;width:16px;height:16px;
  border:1px solid #bcc8d2;border-radius:3px;background:#fff;
}
.kc-page .kc-check li::after{
  content:"";position:absolute;left:5px;top:9px;width:6px;height:3px;
  border-left:1.7px solid var(--kc-cta);border-bottom:1.7px solid var(--kc-cta);
  transform:rotate(-45deg);
}
.kc-page .kc-check-tick li::before{border-color:var(--kc-ok);background:var(--kc-ok-l)}
.kc-page .kc-check-tick li::after{border-color:var(--kc-ok)}
.kc-page .kc-sec-dark .kc-check li{color:#c2cdd8}
.kc-page .kc-sec-dark .kc-check li::before{border-color:rgba(255,255,255,.28);background:rgba(255,255,255,.08)}
.kc-page .kc-sec-dark .kc-check li::after{border-color:#fff}

/* The specification panels that justify a dark band. They keep their white
   ground and read as instrument faces on the dark frame - recolouring them
   dark would both flatten the band and cost the contrast the figures need.
   Only the edge changes, so the panel separates from the band instead of
   merging into it. */
.kc-page .kc-sec-dark .kc-tbl-wrap,
.kc-page .kc-sec-dark .kc-caps{border-color:#22394e;
  box-shadow:0 1px 0 rgba(255,255,255,.05)}
/* The cells are pinned as well, so no later band rule can repaint them pale
   on the white panel again. */
.kc-page .kc-sec-dark .kc-tbl,
.kc-page .kc-sec-dark .kc-tbl td{color:var(--kc-ink-2)}
.kc-page .kc-sec-dark .kc-kv{border-top-color:#22394e}
.kc-page .kc-sec-dark .kc-kv dt{color:#9dc0e8}
.kc-page .kc-sec-dark .kc-kv dd{color:#dbe3ea}
.kc-page .kc-sec-dark .kc-tbl-hint{color:#9daab6}

/* --- components re-inked for the band ---
   Everything below was drawn for the light page, so each one leans on a
   value token (--kc-ink, --kc-ink-2/-3/-4, --kc-line, --kc-dark) that means
   dark-on-light and vanishes on #0c2136. The band predated all of them, which
   is why the gap was invisible until a band actually carried this content;
   kc_audit_dark.py lists what the bands contain so it is found by scan rather
   than by eye. Panels that keep their white ground (the spec table, the
   capability strip) are deliberately absent from this list. */
.kc-page .kc-sec-dark .kc-rb-u{color:#9dc0e8}
.kc-page .kc-sec-dark .kc-rb-l{color:#c2cdd8}
.kc-page .kc-sec-dark .kc-rb-t{background:rgba(255,255,255,.12)}
.kc-page .kc-sec-dark .kc-rb-f{background:#4e8fc4}
.kc-page .kc-sec-dark .kc-rb-v{color:#fff}
.kc-page .kc-sec-dark .kc-rb-x .kc-rb-v{color:#9daab6}
.kc-page .kc-sec-dark .kc-rb-note,
.kc-page .kc-sec-dark .kc-rb-c{color:#9daab6}

.kc-page .kc-sec-dark .kc-tol-ax{border-bottom-color:#22394e}
.kc-page .kc-sec-dark .kc-tol-t i{border-left-color:#22394e}
.kc-page .kc-sec-dark .kc-tol-t b{color:#9daab6}
.kc-page .kc-sec-dark .kc-tol-m i{background:#fff;color:#0c2136}
.kc-page .kc-sec-dark .kc-tol-lg li{border-bottom-color:#22394e}
.kc-page .kc-sec-dark .kc-tol-k{background:#fff;color:#0c2136}
.kc-page .kc-sec-dark .kc-tol-l{color:#c2cdd8}
.kc-page .kc-sec-dark .kc-tol-v{color:#fff}

.kc-page .kc-sec-dark .kc-fl-i::before{background:#22394e}
.kc-page .kc-sec-dark .kc-fl-n{background:#fff;border-color:#fff;color:#0c2136}
.kc-page .kc-sec-dark .kc-fl-t{color:#fff}
.kc-page .kc-sec-dark .kc-fl-d{color:#c2cdd8}

.kc-page .kc-sec-dark .kc-hub-list{border-top-color:#22394e}
.kc-page .kc-sec-dark .kc-hub-i:nth-child(even){border-left-color:#22394e}
.kc-page .kc-sec-dark .kc-hub-n{color:#9dc0e8}
.kc-page .kc-sec-dark .kc-hub-t{color:#fff}
.kc-page .kc-sec-dark .kc-hub-d{color:#c2cdd8}
.kc-page .kc-sec-dark .kc-hub-m{color:#9daab6}

.kc-page .kc-sec-dark .kc-step{border-bottom-color:#22394e}
.kc-page .kc-sec-dark .kc-step::before{border-color:#22394e;
  background:#08192a;color:#d97735}
.kc-page .kc-sec-dark .kc-step-t{color:#fff}
.kc-page .kc-sec-dark .kc-step-d{color:#c2cdd8}
.kc-page .kc-sec-dark .kc-step-h{border-color:#22394e}
.kc-page .kc-sec-dark .kc-step-h:first-child{border-left-color:#22394e}
.kc-page .kc-sec-dark .kc-step-h .kc-sh-t{color:#fff}
.kc-page .kc-sec-dark .kc-step-h .kc-sh-d{color:#c2cdd8}

.kc-page .kc-sec-dark .kc-note{background:#08192a;border-color:#22394e;
  border-left-color:#4e8fc4;color:#c2cdd8}
.kc-page .kc-sec-dark .kc-note-k{color:#9dc0e8}

.kc-page .kc-sec-dark .kc-btn-ghost{border-color:rgba(255,255,255,.35);
  color:#fff}
.kc-page .kc-sec-dark .kc-btn-ghost:hover{border-color:#fff;color:#fff}

/* ---------- faq ---------- */
.kc-page .kc-faq{border-top:1px solid var(--kc-line)}
.kc-page .kc-faq-i{border-bottom:1px solid var(--kc-line)}
.kc-page .kc-faq-q{
  width:100%;display:flex;align-items:flex-start;gap:var(--kc-s4);justify-content:space-between;
  padding:var(--kc-s4) 0;background:none;border:0;text-align:left;cursor:pointer;
  font-size:17px;font-weight:600;color:var(--kc-ink);line-height:1.45;
}
.kc-page .kc-faq-q:hover{color:var(--kc-link)}
.kc-page .kc-faq-m{flex:0 0 auto;font-size:20px;font-weight:400;color:var(--kc-ink-3);
  line-height:1;margin-top:2px;transition:transform var(--kc-t)}
.kc-page .kc-faq-i[data-open="1"] .kc-faq-m{transform:rotate(45deg);color:var(--kc-cta)}
.kc-page .kc-faq-a{display:none;padding:0 var(--kc-s7) var(--kc-s5) 0;
  font-size:15.5px;line-height:1.6;color:var(--kc-ink-3);max-width:78ch}
.kc-page .kc-faq-i[data-open="1"] .kc-faq-a{display:block}

/* ---------- cta band ---------- */
.kc-page .kc-band{
  background:var(--kc-dark);color:#fff;border-radius:var(--kc-r);
  padding:var(--kc-s7) var(--kc-s7);
  display:flex;flex-wrap:wrap;gap:var(--kc-s5);
  align-items:center;justify-content:space-between;
}
.kc-page .kc-band h2,.kc-page .kc-band h3{color:#fff}
.kc-page .kc-band .kc-band-x{max-width:620px}
.kc-page .kc-band p{color:#c2cdd8;margin-top:var(--kc-s3);font-size:16px}
.kc-page .kc-band .kc-btn-ghost{border-color:rgba(255,255,255,.35);color:#fff}
.kc-page .kc-band .kc-btn-ghost:hover{border-color:#fff;color:#fff;background:rgba(255,255,255,.12)}
.kc-page .kc-band-light{background:var(--kc-bg-2);border:1px solid var(--kc-line);color:var(--kc-ink)}
.kc-page .kc-band-light h2,.kc-page .kc-band-light h3{color:var(--kc-ink)}
.kc-page .kc-band-light p{color:var(--kc-ink-3)}

/* ---------- breadcrumb ---------- */
.kc-page .kc-crumb{font-size:13.5px;color:var(--kc-ink-3);padding:var(--kc-s4) 0 0}
.kc-page .kc-crumb ol{display:flex;flex-wrap:wrap;gap:var(--kc-s2);align-items:center}
.kc-page .kc-crumb li{display:flex;align-items:center;gap:var(--kc-s2)}
.kc-page .kc-crumb li+li::before{content:"/";color:var(--kc-ink-4)}
.kc-page .kc-crumb a{color:var(--kc-ink-3);text-decoration:none}
.kc-page .kc-crumb a:hover{color:var(--kc-link);text-decoration:underline}
.kc-page .kc-crumb [aria-current]{color:var(--kc-ink)}

/* provenance: reads as a footnote, not as a claim */
.kc-page .kc-foot-prov{font-variant-numeric:tabular-nums}
.kc-page .kc-foot-prov time{color:inherit}

/* ---------- hero ---------- */
/* ---------- hero: light and text-led. Every interior page uses this. ---------- */
.kc-page .kc-hero{
  position:relative;overflow:hidden;background:#fff;color:var(--kc-ink-2);
  padding:var(--kc-sec) 0;border-bottom:1px solid var(--kc-line);
}
/* a hairline grid at very low contrast - texture, not decoration */
.kc-page .kc-hero::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background-image:
    linear-gradient(rgba(16,42,67,.05) 1px,transparent 1px),
    linear-gradient(90deg,rgba(16,42,67,.05) 1px,transparent 1px);
  background-size:56px 56px;
  -webkit-mask-image:linear-gradient(180deg,#000 0%,transparent 88%);
  mask-image:linear-gradient(180deg,#000 0%,transparent 88%);
}
.kc-page .kc-hero .kc-wrap{position:relative;z-index:1}
.kc-page .kc-hero h1{color:var(--kc-ink)}
.kc-page .kc-hero h3{color:var(--kc-ink)}
.kc-page .kc-hero .kc-lead{color:var(--kc-ink-3)}
.kc-page .kc-hero .kc-eyebrow{color:var(--kc-cta)}
.kc-page .kc-hero .kc-small{color:var(--kc-ink-3)}
.kc-page .kc-hero-cta{display:flex;flex-wrap:wrap;gap:var(--kc-s3);
  margin-top:var(--kc-s6)}
/* the shared page shell still accepts these three even though no page passes
   them today; deleting the rules would break it silently if one ever does */
.kc-page .kc-hero-note{margin-top:var(--kc-s4);font-size:14px;line-height:1.55;
  color:var(--kc-ink-3);max-width:62ch}
.kc-page .kc-hero-note b{font-weight:600;color:var(--kc-ink-2)}
.kc-page .kc-hero-shot{
  width:100%;aspect-ratio:5/4;object-fit:cover;border-radius:var(--kc-r);
  border:1px solid var(--kc-line);background:var(--kc-bg-2);
}
.kc-page .kc-hero-shot-cap{margin-top:var(--kc-s3);font-size:13.5px;
  color:var(--kc-ink-4);line-height:1.5}
.kc-page .kc-hero-side{
  border:1px solid var(--kc-line);border-radius:var(--kc-r);
  background:var(--kc-bg-2);padding:var(--kc-s5);
}
.kc-page .kc-dot{width:6px;height:6px;border-radius:50%;background:var(--kc-cta);flex:0 0 auto}
.kc-page .kc-sec-dark .kc-dot{background:#fff}

/* ---------- hero, photographic: homepage only ----------
   The backdrop is a photograph, so every foreground colour below is chosen
   against the scrim rather than against white paper. The scrim is a lighting
   falloff, not a panel: heaviest under the copy column, clearing to almost
   nothing over the product on the right. The reading copy is HTML on top of
   the image, never pixels inside it. Every rule here is scoped to
   .kc-hero-photo so the 64 interior pages keep the light hero above. */
.kc-page .kc-hero-photo{
  position:relative;overflow:hidden;isolation:isolate;padding:0;
  background:var(--kc-dark-2);color:#fff;
  border-bottom:1px solid var(--kc-line);
  display:flex;flex-direction:column;
}
.kc-page .kc-hero-photo::before{display:none}
.kc-page .kc-hero-bg{
  position:absolute;inset:0;width:100%;height:100%;z-index:0;
  object-fit:cover;object-position:72% 50%;
}
.kc-page .kc-hero-scrim{
  position:absolute;inset:0;z-index:1;pointer-events:none;
  background:linear-gradient(94deg,rgba(6,19,33,.94) 0%,rgba(6,19,33,.89) 26%,
    rgba(6,19,33,.62) 48%,rgba(6,19,33,.14) 70%,rgba(6,19,33,.30) 100%);
}
.kc-page .kc-hero-inner{
  position:relative;z-index:2;display:flex;align-items:center;flex:1;
  min-height:min(70vh,600px);padding:var(--kc-s9) 0 var(--kc-s8);
}
/* the wrap is a flex item inside .kc-hero-inner, so without an explicit width
   it shrink-wraps and the copy column floats to the middle of the page */
.kc-page .kc-hero-inner>.kc-wrap{width:100%}
.kc-page .kc-hero-copy{max-width:660px}
.kc-page .kc-hero-photo h1{color:#fff}
.kc-page .kc-hero-photo .kc-eyebrow{color:#4e8fc4}
.kc-page .kc-hero-lead{
  margin:var(--kc-s4) 0 0;font-size:17px;line-height:1.62;max-width:54ch;
  color:#d5e0ea;
}
/* the secondary action has to read on a dark photograph */
.kc-page .kc-hero-photo .kc-btn-ghost{
  border-color:rgba(255,255,255,.42);color:#fff;
}
.kc-page .kc-hero-photo .kc-btn-ghost:hover{
  border-color:#fff;color:#fff;background:rgba(255,255,255,.12);
}
/* the four application routes, on a translucent band at the foot of the hero */
.kc-page .kc-hero-strip{
  position:relative;z-index:2;border-top:1px solid rgba(255,255,255,.18);
  background:rgba(6,19,33,.60);
}
.kc-page .kc-hero-strip ul{
  display:grid;grid-template-columns:repeat(4,1fr);gap:var(--kc-s5);
  margin:0;padding:var(--kc-s5) 0;list-style:none;
}
.kc-page .kc-hero-strip a{
  display:flex;align-items:center;gap:var(--kc-s3);
  color:#e6eef5;font-size:15px;font-weight:500;text-decoration:none;
}
.kc-page .kc-hero-strip a:hover{color:#fff}
.kc-page .kc-hero-ico{
  display:inline-flex;width:34px;height:34px;flex:0 0 auto;
  align-items:center;justify-content:center;border-radius:50%;
  border:1px solid rgba(126,206,235,.5);background:rgba(17,54,82,.55);
  color:#6fa8d6;
}
.kc-page .kc-hero-ico svg{width:18px;height:18px}

/* ---------- three verifiable supplier facts ---------- */
.kc-page .kc-facts3{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--kc-s7)}
.kc-page .kc-fact{border-top:2px solid var(--kc-dark);padding-top:var(--kc-s4)}
.kc-page .kc-fact-k{font-family:var(--kc-mono);font-size:12px;font-weight:600;
  letter-spacing:.06em;color:var(--kc-cta);display:block;margin-bottom:var(--kc-s2)}
.kc-page .kc-fact-t{font-weight:600;font-size:17px;color:var(--kc-ink);
  margin-bottom:var(--kc-s2);line-height:1.35}
.kc-page .kc-fact-d{font-size:15px;color:var(--kc-ink-3);line-height:1.55}

/* ---------- part examples ---------- */
.kc-page .kc-parts{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--kc-s5)}
.kc-page .kc-part-i{display:block}
.kc-page .kc-part-i img{width:100%;aspect-ratio:4/3;object-fit:cover;
  border-radius:var(--kc-r);border:1px solid var(--kc-line);background:var(--kc-bg-2)}
.kc-page .kc-part-t{font-weight:600;font-size:15.5px;color:var(--kc-ink);
  margin-top:var(--kc-s3);line-height:1.35}
.kc-page .kc-part-d{font-size:13.5px;color:var(--kc-ink-3);line-height:1.5;margin-top:3px}

/* ---------- material entry ---------- */
.kc-page .kc-mats{display:grid;grid-template-columns:repeat(3,1fr);gap:0;
  border-top:1px solid var(--kc-line)}
.kc-page .kc-mat-i{display:flex;flex-direction:column;gap:var(--kc-s2);
  padding:var(--kc-s5) var(--kc-s5) var(--kc-s5) 0;
  border-bottom:1px solid var(--kc-line-2)}
.kc-page .kc-mat-i:nth-child(3n+2){padding-left:var(--kc-s5);border-left:1px solid var(--kc-line-2)}
.kc-page .kc-mat-i:nth-child(3n){padding-left:var(--kc-s5);border-left:1px solid var(--kc-line-2)}
.kc-page .kc-mat-t{font-weight:600;font-size:17px;color:var(--kc-ink)}
.kc-page .kc-mat-t:hover{color:var(--kc-link)}
.kc-page .kc-mat-f{font-family:var(--kc-mono);font-size:12px;letter-spacing:.04em;
  color:var(--kc-cta)}
.kc-page .kc-mat-d{font-size:14.5px;color:var(--kc-ink-3);line-height:1.5}
.kc-page .kc-mat-s{font-size:13px;color:var(--kc-ink-4);margin-top:auto;
  padding-top:var(--kc-s2);line-height:1.45}

/* ---------- quality evidence ---------- */
.kc-page .kc-evid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--kc-s5)}
.kc-page .kc-shot{border:1px solid var(--kc-line);border-radius:var(--kc-r);
  overflow:hidden;background:#fff}
.kc-page .kc-shot img{width:100%;aspect-ratio:4/3;object-fit:cover}
.kc-page .kc-shot figcaption{padding:var(--kc-s3) var(--kc-s4);font-size:13.5px;
  color:var(--kc-ink-3);border-top:1px solid var(--kc-line-2);line-height:1.45}
.kc-page .kc-shots{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--kc-s4)}
/* A strip of three frames in a four-column track leaves the fourth column
   empty and makes every picture 25% narrower than it needs to be - the row
   reads as half finished rather than as a deliberate set. A three-frame strip
   takes three columns instead, so the frames fill the content column at the
   same weight they carry everywhere else. Strips of four (and two) keep the
   track they already had.
   :has() is the reason this needs no markup change on twenty pages. A browser
   without it drops the rule and sees the old four-column track - the empty
   column returns, nothing else breaks. */
.kc-page .kc-shots:has(> .kc-shot:nth-child(3):last-child){
  grid-template-columns:repeat(3,1fr)}
/* A shots grid sitting in a split column gets about 528px, not the 1160px of a
   full-width section, but it still reserved four columns - so each frame was
   squeezed to roughly 118px wide with three of the four columns left empty.
   Two columns bring the frames back to about 252px, close to the 276px they
   get at full width, and match the two-column arrangement the grid already
   falls back to on narrow screens. The two :has() selectors repeat the rule at
   higher specificity than the three-column one above, so a three-frame strip
   inside a split keeps two columns: three columns in a 528px box would give
   each frame 160px. */
.kc-page .kc-split .kc-shots,
.kc-page .kc-split .kc-shots:has(> .kc-shot:nth-child(3):last-child),
.kc-page .kc-split-wide .kc-shots,
.kc-page .kc-split-wide .kc-shots:has(> .kc-shot:nth-child(3):last-child){
  grid-template-columns:repeat(2,1fr)}
.kc-page .kc-sec-dark .kc-shot{border-color:#22394e;background:var(--kc-dark-3)}
.kc-page .kc-sec-dark .kc-shot figcaption{color:#9daab6;border-top-color:#22394e}

/* ---------- industries (flat list, no card chrome) ---------- */
.kc-page .kc-ind{display:grid;grid-template-columns:repeat(2,1fr);
  column-gap:var(--kc-s7);border-top:1px solid var(--kc-line)}
.kc-page .kc-ind-i{display:flex;gap:var(--kc-s4);padding:var(--kc-s4) 0;
  border-bottom:1px solid var(--kc-line-2)}
.kc-page .kc-ind-t{font-weight:600;font-size:16px;color:var(--kc-ink);line-height:1.35}
.kc-page .kc-ind-t:hover{color:var(--kc-link)}
.kc-page .kc-ind-d{font-size:14px;color:var(--kc-ink-3);line-height:1.5;margin-top:3px}

/* ---------- rfq form ---------- */
.kc-page .kc-rfq{border:1px solid var(--kc-line);border-radius:var(--kc-r);
  background:#fff;padding:var(--kc-s5)}
.kc-page .kc-f{display:flex;flex-direction:column;gap:6px;margin-bottom:var(--kc-s4)}
.kc-page .kc-f label{font-size:14px;font-weight:500;color:var(--kc-ink-2)}
.kc-page .kc-f label .kc-req{color:var(--kc-danger);margin-left:2px}
/* the optional marker sits in the same inline flow as the label text, so with
   no rule of its own it rendered flush against it and the two read as one
   word - "Companyoptional". Give it a separator and drop it a step in
   emphasis, because it qualifies the label rather than being part of it. */
.kc-page .kc-f label .kc-opt{color:var(--kc-ink-4);font-weight:400;
  font-size:12.5px;margin-left:6px}
.kc-page .kc-f label .kc-opt::before{content:"\00b7";margin-right:5px;
  color:var(--kc-ink-4)}
.kc-page .kc-f input[type=text],.kc-page .kc-f input[type=email],
.kc-page .kc-f input[type=tel],.kc-page .kc-f input[type=file],
.kc-page .kc-f input[type=number],
.kc-page .kc-f select,.kc-page .kc-f textarea{
  width:100%;min-height:48px;padding:12px 14px;border:1px solid var(--kc-line);
  border-radius:var(--kc-r-sm);font-size:16px;font-family:inherit;
  color:var(--kc-ink);background:#fff;
}
.kc-page .kc-f input:focus,.kc-page .kc-f select:focus,.kc-page .kc-f textarea:focus{
  outline:none;border-color:var(--kc-link);box-shadow:0 0 0 3px var(--kc-link-l);
}
.kc-page .kc-f textarea{min-height:120px;resize:vertical;line-height:1.5}
.kc-page .kc-f-2{display:grid;grid-template-columns:1fr 1fr;gap:var(--kc-s4)}
.kc-page .kc-f-note{font-size:13.5px;color:var(--kc-ink-3);line-height:1.5}
.kc-page .kc-f-submit{margin-top:var(--kc-s2)}
/* Guidance notes read as notes, not as drop targets. The dashed edge used to
   mark these too, which put four of them on the enquiry form in the same
   visual language as the one box that really does accept a file - and a
   paragraph of advice does not accept anything. A hairline keeps the grouping
   and leaves dashes to the upload zone, where they mean something.
   display:block for the same reason: an inline box that carries a border draws
   a separate edge on every line fragment, so a note that wrapped ended with a
   short second box hanging under a long first one. */
.kc-page .kc-f-filehint{
  display:block;font-size:13.5px;color:var(--kc-ink-3);
  border:1px solid var(--kc-line);border-radius:var(--kc-r-sm);
  padding:var(--kc-s3) var(--kc-s4);background:var(--kc-bg-2);
  margin-bottom:6px;line-height:1.5;
}
/* the two enquiry routes */
.kc-page .kc-paths{display:grid;grid-template-columns:1fr 1fr;gap:var(--kc-s3);
  margin-bottom:var(--kc-s5)}
.kc-page .kc-path{
  border:1px solid var(--kc-line);border-radius:var(--kc-r);background:#fff;
  padding:var(--kc-s4);text-align:left;cursor:pointer;display:block;
  transition:border-color var(--kc-t),background-color var(--kc-t);
}
.kc-page .kc-path:hover{border-color:var(--kc-ink-3)}
.kc-page .kc-path[aria-pressed="true"]{border-color:var(--kc-cta);background:var(--kc-cta-l)}
.kc-page .kc-path-t{font-size:15.5px;font-weight:600;color:var(--kc-ink);display:block}
/* --kc-ink-4 rather than --kc-ink-3: at 13.5px this line has to clear 4.5:1,
   and --kc-ink-3 reaches only 4.02:1 on the technical grey --kc-bg-3 that
   some of these blocks sit on. --kc-ink-4 clears 4.71:1 there and 5.7:1 on
   white, so the description stays secondary without dropping out. */
.kc-page .kc-path-d{font-size:13.5px;color:var(--kc-ink-4);display:block;margin-top:4px;
  line-height:1.45}

/* ---------- hub index ---------- */
.kc-page .kc-hub-list{display:grid;grid-template-columns:repeat(2,1fr);gap:0;
  border-top:1px solid var(--kc-line)}
.kc-page .kc-hub-i{display:flex;gap:var(--kc-s4);padding:var(--kc-s5) var(--kc-s5) var(--kc-s5) 0;
  border-bottom:1px solid var(--kc-line)}
.kc-page .kc-hub-i:nth-child(even){padding-left:var(--kc-s5);border-left:1px solid var(--kc-line)}
.kc-page .kc-hub-n{font-family:var(--kc-mono);font-size:12px;color:var(--kc-ink-4);
  flex:0 0 26px;padding-top:3px}
.kc-page .kc-hub-b{display:flex;flex-direction:column;gap:6px}
.kc-page .kc-hub-t{font-weight:600;font-size:16.5px;color:var(--kc-ink)}
.kc-page .kc-hub-t:hover{color:var(--kc-link)}
.kc-page .kc-hub-d{font-size:14.5px;color:var(--kc-ink-3);line-height:1.5}
.kc-page .kc-hub-m{font-size:12.5px;color:var(--kc-ink-4);font-family:var(--kc-mono)}

/* ---------- nav ---------- */
/* The sticky unit is the whole header, not the bar inside it. A sticky box
   can never escape its parent's box, and the bar's parent (header.kc-nav) is
   only as tall as the two strips it holds, 34+77px - so pinning the bar
   itself held it for exactly 34px and then let it scroll away with the
   header. Pinning the header at top:-34px lets the thin strip scroll out of
   view while the bar lands flush against the top of the viewport. The
   header's parent is the whole page, so it stays put all the way down, and
   it still occupies its own height in flow, so nothing is ever covered. */
.kc-page .kc-nav{position:sticky;top:-34px;z-index:70}

.kc-page .kc-top{background:var(--kc-dark-2)}
.kc-page .kc-top-in{
  max-width:var(--kc-wrap);margin:0 auto;padding:0 var(--kc-pad);height:34px;
  display:flex;align-items:center;justify-content:space-between;gap:var(--kc-s5);
  font-size:13px;color:#93a1af;
}
.kc-page .kc-top-l{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kc-page .kc-top-r{display:flex;align-items:center;gap:var(--kc-s5);flex:0 0 auto}
.kc-page .kc-top-i{display:flex;align-items:center;gap:7px;white-space:nowrap}
.kc-page .kc-top-i::before{
  content:"";width:5px;height:5px;border-radius:50%;background:#6f8aa6;flex:0 0 auto;
}
.kc-page .kc-top-a{color:#e2e9f0;border-bottom:1px solid #3d5a78;padding-bottom:1px}
.kc-page .kc-top-a:hover{color:#fff;border-bottom-color:#fff}

.kc-page .kc-bar{
  position:relative;z-index:80;background:var(--kc-dark);
  border-bottom:1px solid rgba(255,255,255,.1);
  -webkit-backdrop-filter:saturate(180%) blur(12px);
  backdrop-filter:saturate(180%) blur(12px);
}
.kc-page .kc-nav-in{
  max-width:var(--kc-wrap);margin:0 auto;padding:0 var(--kc-pad);height:76px;
  display:flex;align-items:center;gap:var(--kc-s1);
}
.kc-page .kc-logo{display:flex;align-items:center;gap:var(--kc-s3);flex:0 0 auto;
  margin-right:var(--kc-s4)}
.kc-page .kc-logo-m{
  width:34px;height:34px;border-radius:var(--kc-r-sm);background:#fff;color:var(--kc-dark);
  display:flex;align-items:center;justify-content:center;flex:0 0 auto;
  font-size:12.5px;font-weight:700;letter-spacing:.02em;
}
.kc-page .kc-logo-tx{display:flex;flex-direction:column;gap:3px}
.kc-page .kc-logo-t{font-size:16.5px;font-weight:600;letter-spacing:-.01em;color:#fff;line-height:1}
.kc-page .kc-logo-s{font-size:10px;letter-spacing:.12em;text-transform:uppercase;
  color:#8fa1b3;line-height:1}

.kc-page .kc-menu{display:flex;align-items:center;gap:0;margin-left:auto}
.kc-page .kc-mi{position:relative}
.kc-page .kc-mi-a{
  position:relative;display:flex;align-items:center;gap:7px;padding:10px 13px;
  border-radius:var(--kc-r-sm);font-size:14.5px;font-weight:500;color:#cfd9e3;white-space:nowrap;
  transition:background-color var(--kc-t),color var(--kc-t);
}
.kc-page .kc-mi-a:hover{color:#fff;background:rgba(255,255,255,.09)}
.kc-page .kc-mi-x{
  width:5px;height:5px;flex:0 0 auto;border-right:1.5px solid currentColor;
  border-bottom:1.5px solid currentColor;opacity:.55;
  transform:rotate(45deg) translate(-1px,-1px);
  transition:transform var(--kc-t),opacity var(--kc-t);
}
.kc-page .kc-mi[data-open="1"] .kc-mi-a{color:#fff;background:rgba(255,255,255,.11)}
.kc-page .kc-mi[data-open="1"] .kc-mi-x{transform:rotate(225deg) translate(-1px,-1px);opacity:1}
.kc-page .kc-mi-on .kc-mi-a{color:#fff}
.kc-page .kc-mi-on .kc-mi-a::after{
  content:"";position:absolute;left:13px;right:13px;bottom:4px;height:2px;background:#fff;
}

/* the panel that carries the whole taxonomy */
.kc-page .kc-drop{
  position:absolute;top:100%;left:-16px;z-index:90;display:none;
  padding-top:var(--kc-s3);width:min(880px,calc(100vw - 48px));
}
.kc-page .kc-mi[data-open="1"] .kc-drop{display:block}
@media (hover:hover){
  .kc-page .kc-mi:hover .kc-drop{display:block}
}
.kc-page .kc-drop-in{
  display:grid;grid-template-columns:270px minmax(0,1fr);
  background:#fff;border:1px solid var(--kc-line);border-radius:var(--kc-r);
  box-shadow:0 20px 44px -20px rgba(16,42,67,.35);
  overflow:hidden;
}
.kc-page .kc-drop-side{
  padding:var(--kc-s5);border-right:1px solid var(--kc-line);background:var(--kc-bg-2);
}
.kc-page .kc-drop-eb{
  font-size:11.5px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;
  color:var(--kc-ink-3);margin-bottom:var(--kc-s3);
}
.kc-page .kc-drop-h{font-size:16px;font-weight:600;color:var(--kc-ink);line-height:1.3;
  margin-bottom:var(--kc-s2)}
.kc-page .kc-drop-p{font-size:14px;line-height:1.5;color:var(--kc-ink-3)}
.kc-page .kc-drop-all{
  display:inline-flex;align-items:center;gap:9px;margin-top:var(--kc-s5);
  font-size:14px;font-weight:600;color:var(--kc-link);
}
.kc-page .kc-drop-all:hover{text-decoration:underline}
.kc-page .kc-ar{width:16px;height:1px;background:var(--kc-link);position:relative;flex:0 0 auto}
.kc-page .kc-ar::after{
  content:"";position:absolute;right:0;top:-2.5px;width:6px;height:6px;
  border-top:1.5px solid var(--kc-link);border-right:1.5px solid var(--kc-link);
  transform:rotate(45deg);
}
.kc-page .kc-drop-list{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;padding:var(--kc-s2);
  max-height:min(68vh,560px);overflow-y:auto;
}
.kc-page .kc-drop-i{
  display:flex;flex-direction:column;gap:3px;padding:9px var(--kc-s3);
  border-left:2px solid transparent;border-radius:0 var(--kc-r-sm) var(--kc-r-sm) 0;
}
.kc-page .kc-drop-i:hover{background:var(--kc-bg-2);border-left-color:var(--kc-cta)}
.kc-page .kc-drop-t{font-size:14px;font-weight:500;color:var(--kc-ink);line-height:1.3}
.kc-page .kc-drop-i:hover .kc-drop-t{color:var(--kc-link)}
.kc-page .kc-drop-d{font-size:12.5px;line-height:1.4;color:var(--kc-ink-4)}
.kc-page .kc-drop-ov{border-bottom:1px solid var(--kc-line-2);margin-bottom:var(--kc-s2);
  grid-column:1 / -1}
.kc-page .kc-drop-ov .kc-drop-t{font-weight:600;color:var(--kc-link)}

.kc-page .kc-nav-cta{flex:0 0 auto;margin-left:var(--kc-s4);
  min-height:48px;padding:0 18px}
.kc-page .kc-burger{
  display:none;width:44px;height:44px;margin-left:auto;cursor:pointer;
  border:1px solid rgba(255,255,255,.22);border-radius:var(--kc-r-sm);
  background:rgba(255,255,255,.07);align-items:center;justify-content:center;
}
.kc-page .kc-burger i{display:block;width:17px;height:1.5px;background:#e8eef4;position:relative}
.kc-page .kc-burger i::before,.kc-page .kc-burger i::after{
  content:"";position:absolute;left:0;width:17px;height:1.5px;background:#e8eef4;
}
.kc-page .kc-burger i::before{top:-5px}
.kc-page .kc-burger i::after{top:5px}

/* mobile: the same taxonomy as an accordion */
.kc-page .kc-scrim{display:none}
.kc-page .kc-mnav{display:none;background:var(--kc-dark-2);
  border-top:1px solid rgba(255,255,255,.1)}
.kc-page .kc-mnav[data-open="1"]{display:block;max-height:calc(100vh - 64px);overflow-y:auto}
.kc-page .kc-mnav-in{max-width:var(--kc-wrap);margin:0 auto;padding:var(--kc-s4) var(--kc-pad) var(--kc-s6)}
.kc-page .kc-mnav-in>.kc-btn{margin-bottom:var(--kc-s3)}
.kc-page .kc-mgrp{border-bottom:1px solid rgba(255,255,255,.09)}
.kc-page .kc-mgrp-b{
  width:100%;display:flex;align-items:center;justify-content:space-between;gap:var(--kc-s3);
  min-height:52px;padding:var(--kc-s4) 0;background:none;border:0;cursor:pointer;text-align:left;
  color:#e8eef4;font-size:16px;font-weight:500;
}
.kc-page .kc-mgrp-x{
  width:8px;height:8px;flex:0 0 auto;border-right:1.5px solid #93a1af;
  border-bottom:1.5px solid #93a1af;transform:rotate(45deg) translateY(-2px);
  transition:transform var(--kc-t),border-color var(--kc-t);
}
.kc-page .kc-mgrp[data-open="1"] .kc-mgrp-x{transform:rotate(225deg) translateY(-2px);border-color:#fff}
.kc-page .kc-mgrp-l{display:none;padding:2px 0 var(--kc-s4)}
.kc-page .kc-mgrp[data-open="1"] .kc-mgrp-l{display:block}
.kc-page .kc-mnav-a{display:block;min-height:44px;padding:10px 0 10px var(--kc-s4);
  margin-bottom:2px;font-size:15px;color:#aebbc8;border-left:2px solid rgba(255,255,255,.12);
  line-height:1.5}
.kc-page .kc-mnav-a:hover{color:#fff;border-left-color:#fff}
.kc-page .kc-mnav-hub{color:#fff;font-weight:600}

/* ---------- footer ---------- */
.kc-page .kc-foot{background:var(--kc-dark);color:#9daab6;padding:var(--kc-s8) 0 var(--kc-s5)}
.kc-page .kc-foot-grid{display:grid;grid-template-columns:1.6fr repeat(5,1fr);
  gap:var(--kc-s5)}
.kc-page .kc-foot h4{color:#fff;font-size:12.5px;letter-spacing:.08em;text-transform:uppercase;
  margin-bottom:var(--kc-s4);font-weight:600}
.kc-page .kc-foot ul{display:flex;flex-direction:column;gap:9px}
.kc-page .kc-foot a{color:#9daab6;font-size:14.5px}
.kc-page .kc-foot a:hover{color:#fff;text-decoration:underline}
.kc-page .kc-foot p{font-size:14.5px;line-height:1.6}
.kc-page .kc-foot-brand{display:flex;align-items:center;gap:var(--kc-s3);margin-bottom:var(--kc-s4)}
.kc-page .kc-foot-brand .kc-logo-m{background:#fff;color:var(--kc-dark)}
.kc-page .kc-foot-brand .kc-logo-t{color:#fff}
.kc-page .kc-foot-brand .kc-logo-s{color:#8fa1b3}
.kc-page .kc-foot-bot{
  margin-top:var(--kc-s7);padding-top:var(--kc-s5);border-top:1px solid #24425e;
  display:flex;flex-wrap:wrap;gap:var(--kc-s4);justify-content:space-between;
  font-size:13.5px;color:#8fa1b3;
}
.kc-page .kc-foot-bot-l{display:flex;flex-wrap:wrap;gap:var(--kc-s5)}
.kc-page .kc-foot-note{font-size:13.5px;color:#8fa1b3;margin-top:var(--kc-s3);line-height:1.55}

/* ---------- CF7 form restyled for v2 pages ---------- */
.kc-page .wpcf7{max-width:100%}
/* CF7 6.1 wraps its hidden control set in a fieldset, and a fieldset carries a
   border and padding by default - it reads as a stray box above the form */
.kc-page .wpcf7 fieldset{border:0;margin:0;padding:0;min-width:0}
.kc-page .wpcf7 .hidden-fields-container{display:none}
.kc-page .wpcf7 form{display:block;margin:0}
.kc-page .wpcf7 form p{margin:0 0 var(--kc-s4)}
.kc-page .wpcf7 label{display:block;font-size:14px;font-weight:500;color:var(--kc-ink-2);
  margin-bottom:6px}
.kc-page .wpcf7 br{display:none}
.kc-page .wpcf7 .wpcf7-form-control-wrap{display:block}
.kc-page .wpcf7 input.wpcf7-form-control:not([type=submit]):not([type=file]):not([type=checkbox]):not([type=radio]),
.kc-page .wpcf7 select.wpcf7-form-control,
.kc-page .wpcf7 textarea.wpcf7-form-control{
  display:block;width:100%;min-height:48px;padding:12px 14px;
  border:1px solid var(--kc-line);border-radius:var(--kc-r-sm);
  background:#fff;color:var(--kc-ink);font-family:inherit;font-size:16px;line-height:1.5;
  outline:none;transition:border-color var(--kc-t),box-shadow var(--kc-t);
}
.kc-page .wpcf7 select.wpcf7-form-control{appearance:auto;background-image:none}
.kc-page .wpcf7 textarea.wpcf7-form-control{min-height:130px;resize:vertical}
.kc-page .wpcf7 input.wpcf7-form-control:focus,
.kc-page .wpcf7 select.wpcf7-form-control:focus,
.kc-page .wpcf7 textarea.wpcf7-form-control:focus{
  border-color:var(--kc-link);box-shadow:0 0 0 3px var(--kc-link-l)
}
.kc-page .wpcf7 input.wpcf7-form-control.wpcf7-not-valid,
.kc-page .wpcf7 select.wpcf7-form-control.wpcf7-not-valid,
.kc-page .wpcf7 textarea.wpcf7-form-control.wpcf7-not-valid{border-color:var(--kc-danger)}
.kc-page .wpcf7 .wpcf7-not-valid-tip{display:block;margin-top:6px;font-size:13px;
  color:var(--kc-danger)}
/* The interaction shim swaps CF7's <input type=submit> for a <button> so an
   icon can sit inside it. A selector that names the element (input.…) stops
   matching at that point, which is how the legacy form bundle's orange submit
   button kept winning on v2 pages. Match on class only, never on the tag. */
.kc-page .wpcf7 .wpcf7-submit{
  display:inline-flex;align-items:center;justify-content:center;gap:9px;
  width:auto;min-height:48px;background:var(--kc-cta);color:#fff;border:0;
  border-radius:var(--kc-r-sm);padding:0 24px;font-family:inherit;font-size:16px;
  font-weight:600;line-height:1;cursor:pointer;
  transition:background-color var(--kc-t);
}
.kc-page .wpcf7 .wpcf7-submit svg{width:1.05em;height:1.05em;flex:none}
/* transform:none cancels the legacy bundle's hover scale - a growing button
   reads as consumer e-commerce, not as industrial tooling */
.kc-page .wpcf7 .wpcf7-submit:hover{background:var(--kc-cta-d);transform:none}
.kc-page .wpcf7 .wpcf7-submit:focus-visible{outline:2px solid var(--kc-link);outline-offset:2px}
.kc-page .wpcf7 .wpcf7-submit:disabled{opacity:.55;cursor:not-allowed}
.kc-page .wpcf7 .wpcf7-response-output{
  margin:var(--kc-s5) 0 0;padding:var(--kc-s4);border-radius:var(--kc-r-sm);
  font-size:15px;border:1px solid var(--kc-line);background:var(--kc-bg-2);
  color:var(--kc-ink-3);
}
.kc-page .wpcf7 form.sent .wpcf7-response-output{
  border-color:var(--kc-ok);background:var(--kc-ok-l);color:#134a2f
}
.kc-page .wpcf7 form.invalid .wpcf7-response-output,
.kc-page .wpcf7 form.failed .wpcf7-response-output{
  border-color:#e6b8b3;background:var(--kc-danger-l);color:#7a241b
}
.kc-page .wpcf7 form.spam .wpcf7-response-output{
  border-color:#e6b8b3;background:var(--kc-danger-l);color:#7a241b
}
/* Visually hidden but still focusable: the visitor sees and clicks the box
   around this control, so the box is what has to show focus. min-height is
   cleared because the generic .kc-f input rule hands every control 48px, which
   the sr-only sizing below does not undo on its own. */
.kc-page .wpcf7 input[type=file].wpcf7-form-control{
  position:absolute;width:1px;height:1px;min-height:0;padding:0;margin:-1px;
  overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0
}
/* The drop zone. A span, so it may legally sit inside the field paragraph,
   with display:block so it still lays out as a box. The page script builds it
   around the file control alone; it must never adopt an existing wrapper,
   because any wrapper that happens to contain the control also contains every
   other field - which is how clicking a name box once opened a file picker. */
.kc-page .kc-upload{
  display:block;border:1px dashed var(--kc-line);border-radius:var(--kc-r-sm);
  background:var(--kc-bg-2);cursor:pointer;padding:var(--kc-s5);text-align:center;
  margin-top:6px;transition:border-color var(--kc-t),background-color var(--kc-t);
}
.kc-page .kc-upload:hover{border-color:var(--kc-ink-3)}
.kc-page .kc-upload-over{border-color:var(--kc-cta);background:var(--kc-cta-l)}
.kc-page .kc-upload-icon svg{width:30px;height:30px;color:var(--kc-ink-3);
  margin:0 auto var(--kc-s3)}
/* Captions are named one at a time instead of caught with ".kc-upload span".
   A descendant selector ending in an element outranks a single class -
   ".kc-page .kc-upload span" beats ".kc-page .kc-upload-cta" - so a blanket
   rule quietly owns the size and colour of anything added to the box later. */
.kc-page .kc-upload .kc-f-filehint{border:0;background:none;padding:0;margin:0;
  font-size:13.5px;line-height:1.5}
.kc-page .kc-upload .kc-upload-cta{display:block;margin-top:6px;
  font-size:13.5px;font-weight:500;color:var(--kc-ink-2)}
.kc-page .kc-upload-name{display:block;margin-top:var(--kc-s2);font-size:14px;
  font-weight:600;color:var(--kc-ink)}
.kc-page .kc-upload-name:empty{display:none}
.kc-page .kc-upload-err{display:block;margin-top:var(--kc-s2);font-size:13.5px;
  color:var(--kc-danger);font-weight:500}
.kc-page .kc-upload-err:empty{display:none}
/* the control inside is visually hidden, so focus is drawn on the box */
.kc-page .kc-upload:focus-within{border-color:var(--kc-link);
  box-shadow:0 0 0 3px var(--kc-link-l)}

/* ---------- video block ---------- */
/* The clip came off a phone, so it is 9:16. Letting it fill its column would
   make it about 660px tall beside 400px of text, so the height is capped and
   the width left automatic - that keeps the aspect ratio and simply centres
   the frame in whatever space it is given. poster + preload="metadata" mean
   the visitor decides when the file is fetched; nothing autoplays, and there
   is no audio track to autoplay anyway. */
.kc-page .kc-video video{
  display:block;width:auto;max-width:100%;max-height:520px;margin:0 auto;
  border:1px solid var(--kc-line);border-radius:var(--kc-r);
  background:var(--kc-dark-2)
}
.kc-page .kc-video figcaption{margin-top:var(--kc-s3);font-size:13.5px;
  color:var(--kc-ink-3);line-height:1.5}

/* ---------- video, landscape ----------
   The shop clip is shot 16:9, so it is not height capped the way the portrait
   inspection-room clip above is. It takes the width of whatever column it is
   given and keeps its own shape: no crop, no letterbox, and never upscaled
   past the 1280 px source, which is why the width is capped rather than the
   height. */
.kc-page .kc-video-wide video{
  display:block;width:100%;max-width:1192px;height:auto;max-height:none;
  margin:0 auto;
}

/* The same clip carries the right hand column of the /about/ hero, in the
   frame hero_figure() would have filled with a still. Width leads so the
   column sets the size; the cap is copied from .kc-hs-media img so a clip
   hero and a photograph hero reserve the same height on a short viewport and
   the opening does not change size between them. object-fit only acts on the
   viewports where that cap is what decides the height. */
.kc-page .kc-hs-video video{
  display:block;width:100%;height:auto;max-height:min(520px,58vh);
  object-fit:cover;margin:0;
  border-radius:var(--kc-r);border:1px solid var(--kc-line);
  background:var(--kc-bg-2);
}

/* The certificate is a portrait scan, so the frame keeps the scan's own
   aspect ratio instead of a fixed one, and a max-width stops it from
   dominating the column it sits in. */
.kc-page .kc-cert{margin:0}
.kc-page .kc-cert img{
  display:block;width:100%;max-width:420px;height:auto;margin:0 auto;
  border:1px solid var(--kc-line);border-radius:var(--kc-r);
  background:var(--kc-bg-2)
}
.kc-page .kc-cert figcaption{margin-top:var(--kc-s3);font-size:13.5px;
  color:var(--kc-ink-3);line-height:1.5;text-align:center}

/* ---------- equipment overview sheet ---------- */
.kc-page .kc-equip{margin:0}
.kc-page .kc-equip img{
  display:block;width:100%;height:auto;
  border:1px solid var(--kc-line);border-radius:var(--kc-r);
  background:var(--kc-bg-2)
}
.kc-page .kc-equip figcaption{margin-top:var(--kc-s4);font-size:13.5px;
  color:var(--kc-ink-3);line-height:1.5;max-width:78ch}
.kc-page .kc-eqgroup h3{font-size:15px;margin:0}
.kc-page .kc-eqlist{margin:var(--kc-s3) 0 0;padding:0;list-style:none}
.kc-page .kc-eqlist li{
  font-size:14px;line-height:1.5;color:var(--kc-ink-3);
  padding:var(--kc-s2) 0;border-top:1px solid var(--kc-line-2)
}
.kc-page .kc-eqlist li:first-child{border-top:0;padding-top:0}
.kc-page .kc-eqlist b{display:block;font-weight:600;color:var(--kc-ink)}

/* ---------- utility ---------- */
.kc-page .kc-mt0{margin-top:0}
.kc-page .kc-mt8{margin-top:var(--kc-s2)}
.kc-page .kc-mt14{margin-top:var(--kc-s3)}
.kc-page .kc-mt20{margin-top:var(--kc-s4)}
.kc-page .kc-mt28{margin-top:var(--kc-s5)}
.kc-page .kc-mt40{margin-top:var(--kc-s6)}
.kc-page .kc-mb20{margin-bottom:var(--kc-s4)}
.kc-page .kc-maxw{max-width:760px}
.kc-page .kc-hide{display:none}
.kc-page .kc-vh{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

/* ---------- responsive ---------- */
@media (max-width:1080px){
  .kc-page{--kc-pad:24px}
  .kc-page .kc-menu{display:none}
  .kc-page .kc-burger{display:flex}
  .kc-page .kc-nav-cta{display:none}
  .kc-page .kc-top-l{display:none}
  .kc-page .kc-top-in{justify-content:center}
  .kc-page .kc-scrim{position:fixed;inset:0;background:rgba(11,31,51,.5);z-index:75}
  .kc-page .kc-scrim[data-open="1"]{display:block}
  .kc-page .kc-foot-grid{grid-template-columns:1.4fr 1fr 1fr;gap:var(--kc-s5)}
  .kc-page .kc-hero-strip ul{grid-template-columns:repeat(2,1fr);
    gap:var(--kc-s3) var(--kc-s5)}
  .kc-page .kc-split,.kc-page .kc-split-wide{grid-template-columns:1fr;gap:var(--kc-s6)}
  .kc-page .kc-g4{grid-template-columns:repeat(2,1fr)}
  .kc-page .kc-shots,.kc-page .kc-evid,.kc-page .kc-parts{grid-template-columns:repeat(2,1fr)}
  /* the three-column strip rule is more specific than the line above, so it
     has to be brought back to two columns here as well - including inside a
     split, where the wider three-column rule would otherwise win */
  .kc-page .kc-shots:has(> .kc-shot:nth-child(3):last-child),
  .kc-page .kc-split .kc-shots:has(> .kc-shot:nth-child(3):last-child),
  .kc-page .kc-split-wide .kc-shots:has(> .kc-shot:nth-child(3):last-child){
    grid-template-columns:repeat(2,1fr)}
  .kc-page .kc-steps-h{grid-template-columns:repeat(2,1fr)}
  .kc-page .kc-step-h{border-left:1px solid var(--kc-line);margin:-1px 0 0 -1px}
  .kc-page .kc-mats{grid-template-columns:repeat(2,1fr)}
  .kc-page .kc-mat-i:nth-child(3n+2),.kc-page .kc-mat-i:nth-child(3n){
    padding-left:0;border-left:0}
  .kc-page .kc-mat-i:nth-child(2n){padding-left:var(--kc-s5);
    border-left:1px solid var(--kc-line-2)}
  .kc-page .kc-facts3{grid-template-columns:1fr;gap:var(--kc-s5)}
  .kc-page .kc-hero-shot{aspect-ratio:16/9}
  .kc-page .kc-hero-inner{min-height:min(60vh,500px)}
}
@media (max-width:860px){
  .kc-page .kc-sec{padding:64px 0}
  .kc-page .kc-head{margin-bottom:32px}
  .kc-page .kc-g3{grid-template-columns:1fr}
  .kc-page .kc-gates{grid-template-columns:repeat(2,1fr)}
  .kc-page .kc-gate{border-left:1px solid var(--kc-line);margin:-1px 0 0 -1px}
  .kc-page .kc-caps{grid-template-columns:repeat(2,1fr)}
  .kc-page .kc-cap{border-left:1px solid var(--kc-line-2);margin-top:-1px}
  .kc-page .kc-hub-list{grid-template-columns:1fr}
  .kc-page .kc-hub-i:nth-child(even){padding-left:0;border-left:0}
  .kc-page .kc-band{padding:var(--kc-s5)}
  .kc-page .kc-ind,.kc-page .kc-list-2,.kc-page .kc-list-3{grid-template-columns:1fr}
  .kc-page .kc-paths{grid-template-columns:1fr}
}
@media (max-width:640px){
  .kc-page{--kc-pad:20px;--kc-sec:56px;font-size:16px;line-height:1.6}
  .kc-page h1{font-size:clamp(30px,8.4vw,36px);line-height:1.15}
  .kc-page h2{font-size:clamp(24px,6.4vw,30px);line-height:1.2}
  .kc-page h3{font-size:21px;line-height:1.3}
  .kc-page h4{font-size:14.5px}
  .kc-page .kc-lead{font-size:17.5px;line-height:1.5}
  .kc-page .kc-head{margin-bottom:28px}
  .kc-page .kc-cap-v{font-size:26px}
  .kc-page .kc-small{font-size:13.5px}
  .kc-page .kc-top-in{height:32px;font-size:12px}
  /* the thin strip is 2px shorter down here, so the pin offset follows it -
     otherwise a 2px sliver of it stays visible above the locked bar */
  .kc-page .kc-nav{top:-32px}
  .kc-page .kc-top-r{gap:var(--kc-s3)}
  .kc-page .kc-top-i{display:none}
  .kc-page .kc-top-i:first-child{display:flex}
  .kc-page .kc-nav-in{height:64px}
  .kc-page .kc-logo-m{width:32px;height:32px}
  .kc-page .kc-logo-s{display:none}
  .kc-page .kc-logo-tx{gap:0}
  .kc-page .kc-sec{padding:var(--kc-sec) 0}
  .kc-page .kc-hero{padding:var(--kc-s7) 0 var(--kc-s6)}
  /* the enquiry hero spends that air on getting the first fields above the
     fold instead of on opening white space */
  .kc-page .kc-hero-rfq{padding:var(--kc-s6) 0 var(--kc-s5)}
  .kc-page .kc-hero-shot{aspect-ratio:4/3}
  /* the photographic hero is full-bleed and sets its own vertical rhythm, so
     it takes the interior-page padding back off */
  .kc-page .kc-hero-photo{padding:0}
  /* portrait crop: the 16:9 scene has to keep the parts in frame on a phone,
     so the backdrop is pinned further right and the scrim turns vertical -
     the copy sits above the parts rather than beside them */
  .kc-page .kc-hero-bg{object-position:76% 50%}
  .kc-page .kc-hero-scrim{
    background:linear-gradient(178deg,rgba(6,19,33,.91) 0%,
      rgba(6,19,33,.85) 42%,rgba(6,19,33,.62) 66%,rgba(6,19,33,.80) 100%);
  }
  .kc-page .kc-hero-inner{min-height:0;align-items:flex-start;
    padding:var(--kc-s8) 0 var(--kc-s6)}
  .kc-page .kc-hero-lead{font-size:16px}
  .kc-page .kc-hero-strip ul{grid-template-columns:1fr;padding:var(--kc-s4) 0}
  .kc-page .kc-g2,.kc-page .kc-g4,.kc-page .kc-gates,
  .kc-page .kc-steps-h,.kc-page .kc-caps,.kc-page .kc-facts3,
  .kc-page .kc-mats{grid-template-columns:1fr}
  .kc-page .kc-mat-i:nth-child(2n){padding-left:0;border-left:0}
  /* .kc-shots / .kc-evid / .kc-parts stay two-column: eight photographs
     stacked one per screen is a 2000px wall of images on a phone */
  .kc-page .kc-shots,.kc-page .kc-evid,.kc-page .kc-parts{gap:var(--kc-s3)}
  .kc-page .kc-shot figcaption{padding:var(--kc-s2) var(--kc-s3);font-size:12.5px}
  .kc-page .kc-f-2{grid-template-columns:1fr}
  .kc-page .kc-foot-grid{grid-template-columns:1fr;gap:var(--kc-s5)}
  .kc-page .kc-step{padding-left:0;padding-top:var(--kc-s8)}
  .kc-page .kc-step::before{top:var(--kc-s4)}
  .kc-page .kc-kv{grid-template-columns:1fr}
  .kc-page .kc-kv dt{padding-bottom:0;border-bottom:0}
  .kc-page .kc-kv dd{padding-top:4px}
  .kc-page .kc-rfq,.kc-page .kc-hero-side{padding:var(--kc-s4)}
  .kc-page .kc-band{padding:var(--kc-s5) var(--kc-s4)}
  .kc-page .kc-btn{width:100%}
  .kc-page .kc-btn-sm{width:auto}
  .kc-page .kc-row .kc-btn{width:100%}
}

/* ==================================================================
   Design brief V1.0 - alignment pass
   ================================================================== */

/* --- part examples: three columns on desktop. Each entry now carries four
   facts (part, material, key feature, link) instead of one line of prose, so
   the phone grid stops at one column rather than two. --- */
.kc-page .kc-parts{grid-template-columns:repeat(3,1fr)}

/* --- the qualification strip: every claim links to the page that proves it,
   which is what makes the strip checkable instead of assertive --- */
.kc-page .kc-fact-l{
  display:inline-block;margin-top:var(--kc-s3);font-size:13.5px;font-weight:500;
  color:var(--kc-link);text-decoration:underline;text-underline-offset:2px}
.kc-page .kc-fact-l:hover{color:var(--kc-cta-d)}

/* --- part card facts: the material and the feature that governs the part --- */
.kc-page .kc-part-m{
  display:flex;flex-direction:column;gap:3px;margin:var(--kc-s3) 0 0}
.kc-page .kc-part-m>div{display:flex;gap:7px;min-width:0}
.kc-page .kc-part-m dt{
  flex:0 0 auto;font-size:11.5px;font-weight:600;letter-spacing:.05em;
  text-transform:uppercase;color:var(--kc-ink-4);padding-top:2px}
.kc-page .kc-part-m dd{
  margin:0;font-size:13.5px;color:var(--kc-ink-2);line-height:1.45;min-width:0}
.kc-page .kc-part-l{
  display:inline-block;margin-top:var(--kc-s3);font-size:13.5px;font-weight:500;
  color:var(--kc-link);text-decoration:underline;text-underline-offset:2px}
.kc-page .kc-part-l:hover{color:var(--kc-cta-d)}

/* --- industry entry: where the part sits, which component classes arrive on
   drawings, and the condition that decides the grade --- */
.kc-page .kc-ind-m{
  display:flex;flex-direction:column;gap:5px;margin:var(--kc-s3) 0 0}
.kc-page .kc-ind-m>div{display:flex;gap:9px;min-width:0}
.kc-page .kc-ind-m dt{
  flex:0 0 33%;font-size:11.5px;font-weight:600;letter-spacing:.05em;
  text-transform:uppercase;color:var(--kc-ink-4);line-height:1.5}
.kc-page .kc-ind-m dd{
  margin:0;font-size:13.5px;color:var(--kc-ink-3);line-height:1.5;min-width:0}

/* --- a link inside body copy keeps its underline, so it is not carried by
   colour alone --- */
.kc-page .kc-tlink{
  color:var(--kc-link);text-decoration:underline;text-underline-offset:2px}
.kc-page .kc-tlink:hover{color:var(--kc-cta-d)}

/* --- submit in progress. The label carries the message; this only stops the
   control looking pressable while the request is out. --- */
.kc-page .wpcf7 form.kc-sending .wpcf7-submit{
  opacity:.82;cursor:progress}

/* --- route B fields. They live in the same form so that one submission
   covers either route; only the route selector puts them on screen. --- */
.kc-page .kc-enquiry .kc-f-pathb{display:none}
.kc-page .kc-enquiry.kc-pb .kc-f-pathb{display:block}

/* --- a wide technical table scrolls inside its own box and shows an edge
   shadow while there is content on that side. The local/scroll attachment
   pair is what makes the shadow appear and disappear at the right moment,
   with no script involved. --- */
.kc-page .kc-tbl-wrap{
  background-color:#fff;
  background-image:
    linear-gradient(to right,#fff,rgba(255,255,255,0)),
    linear-gradient(to left,#fff,rgba(255,255,255,0)),
    radial-gradient(farthest-side at 0 50%,rgba(16,42,67,.16),rgba(16,42,67,0)),
    radial-gradient(farthest-side at 100% 50%,rgba(16,42,67,.16),rgba(16,42,67,0));
  background-position:0 0,100% 0,0 0,100% 0;
  background-repeat:no-repeat;
  background-size:44px 100%,44px 100%,15px 100%,15px 100%;
  background-attachment:local,local,scroll,scroll}

/* the written half of the same cue, added next to a table only while that
   table actually overflows */
.kc-page .kc-tbl-hint{
  margin:var(--kc-s2) 0 0;font-size:12.5px;line-height:1.5;color:var(--kc-ink-4)}

/* --- motion: state changes are short and are removed outright for anyone
   who has asked the operating system for less movement --- */
@media (prefers-reduced-motion:reduce){
  .kc-page *,.kc-page *::before,.kc-page *::after{
    animation-duration:.01ms !important;animation-iteration-count:1 !important;
    transition-duration:.01ms !important;scroll-behavior:auto !important}
}

/* --- collapse the desktop menu below 1200px, not below 1080px: seven English
   labels plus the button start to crowd before the old breakpoint --- */
@media (max-width:1199px){
  .kc-page .kc-menu{display:none}
  .kc-page .kc-burger{display:flex}
  .kc-page .kc-nav-cta{display:none}
  .kc-page .kc-top-l{display:none}
  .kc-page .kc-top-in{justify-content:center}
}

/* --- one column for the part cards on a phone --- */
@media (max-width:640px){
  .kc-page .kc-parts{grid-template-columns:1fr}
}

/* --- touch targets: 44px minimum on the rows a thumb has to hit --- */
@media (hover:none),(max-width:860px){
  .kc-page .kc-mnav a,.kc-page .kc-drop-i,.kc-page .kc-foot-l a,
  .kc-page .kc-foot a.kc-foot-lk{
    min-height:44px;display:flex;align-items:center}
  .kc-page .kc-path{min-height:64px}
  .kc-page .kc-crumb a{
    min-height:44px;display:inline-flex;align-items:center}
}

/* ==================================================================
   v4  visual layer
   ------------------------------------------------------------------
   Measured on the built output, the site carried 2.4 photographs per
   page against roughly 12,800 characters of copy, so a single image
   had to hold about 5,300 characters of text. The pages read as walls
   of specification because most of them are. This layer adds the
   missing visual vocabulary - a photographic hero, image cards, a
   photograph wall, an alternating image/copy block, a material card
   that carries its own key figures - without touching the frame:
   navy chrome, white specification body, hairline rules, one rust
   action colour, tabular figures.

   Every rule stays scoped to .kc-page and matches on class only, so
   the legacy clone markup and the theme's own bundles are untouched.
   ================================================================== */

/* ---------- interior hero, photographic ----------
   The copy column stays text-led; the photograph carries the product.
   This replaces the blank hairline-grid hero that made every interior
   page open on white space. Applied via the .kc-hero-split modifier so
   the 64 other pages keep the text-led hero above. */
.kc-page .kc-hero-split .kc-wrap{
  display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.02fr);
  gap:var(--kc-s8);align-items:center;
}
.kc-page .kc-hs-copy{max-width:560px}
.kc-page .kc-hs-media{margin:0;min-width:0}
/* The frame follows the photograph instead of a fixed 4:3 box.
   A fixed box plus object-fit:cover scales a picture up until it covers the
   box and then throws the rest away, silently. 25% of the width went off a
   16:9 frame and 44% of the height off a 3:4 one, on every interior page, and
   nothing in the markup or in a stylesheet reading says so - the image really
   is width:100%. It is invisible on a workshop frame and destroys a picture
   whose whole frame is content.
   Width leads, the height follows the photograph's own proportions, and the
   cap stops a portrait frame from pushing the page below the fold. The cap
   sits on the box rather than on the loaded file, so the space reserved
   before the image arrives is already 520px and the hero does not jump. */
.kc-page .kc-hs-media img{
  display:block;width:100%;height:auto;max-height:min(520px,58vh);
  object-fit:cover;
  border-radius:var(--kc-r);border:1px solid var(--kc-line);
  background:var(--kc-bg-2);
}
/* A composed sheet is a document, not a photograph: every panel is content
   and the outer columns carry their own labels. It takes its own proportions
   in any frame, so no container may crop it. kc_parts applies the class from
   kc_visual.SHEET. The selector beats .kc-hs-media img and .kc-pair img by
   one element, so it does not depend on where it sits in this file. */
.kc-page figure img.kc-sheet{aspect-ratio:16/9;object-fit:contain}
.kc-page .kc-hs-media figcaption{
  margin-top:var(--kc-s3);font-size:13.5px;line-height:1.5;
  color:var(--kc-ink-4);
}

/* ---------- enquiry hero ----------
   /request-a-quote/ is the one interior page whose hero holds a working panel
   instead of a photograph. The form used to sit 62% of the way down the
   document, so a visitor arriving from a "request a quote" button had to
   scroll before they could type anything. Here the copy column keeps the
   reassurance and the right column is the box they fill in, on screen at
   load. The ratio is biased towards the form so its two-up field rows stay
   two-up at this width rather than collapsing to one field per row.
   align-items:start because a 900px form next to 300px of copy reads as
   top-aligned, not centred. */
.kc-page .kc-hero-rfq .kc-wrap{
  grid-template-columns:minmax(0,.84fr) minmax(0,1.16fr);
  align-items:start;
}
.kc-page .kc-hero-rfq .kc-hs-copy{max-width:none;padding-top:var(--kc-s2)}
.kc-page .kc-hero-rfq .kc-hero-note{margin-top:var(--kc-s5)}
/* the panel is the only thing on this page a visitor is meant to touch, so it
   is the one element that carries the card shadow used elsewhere on the site */
.kc-page .kc-hero-rfq .kc-rfq{box-shadow:0 2px 10px rgba(16,42,67,.07)}

/* ---------- alternating image / copy block ----------
   The workhorse of the application and solution pages: one photograph
   against one text column, direction alternating down the page. */
.kc-page .kc-zz{
  display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:var(--kc-s8);align-items:center;
  padding:var(--kc-s7) 0;border-top:1px solid var(--kc-line-2);
}
.kc-page .kc-zz:first-child{border-top:0;padding-top:0}
.kc-page .kc-zz:last-child{padding-bottom:0}
.kc-page .kc-zz:nth-child(even) .kc-zz-media{order:2}
.kc-page .kc-zz-media{margin:0;min-width:0}
.kc-page .kc-zz-media img{
  display:block;width:100%;aspect-ratio:3/2;object-fit:cover;
  border-radius:var(--kc-r);border:1px solid var(--kc-line);
  background:var(--kc-bg-2);
}
.kc-page .kc-zz-media figcaption{
  margin-top:var(--kc-s3);font-size:13.5px;line-height:1.5;
  color:var(--kc-ink-4);
}
.kc-page .kc-zz-body{min-width:0}
.kc-page .kc-zz-k{
  font-family:var(--kc-mono);font-size:12px;font-weight:600;
  letter-spacing:.06em;color:var(--kc-cta);display:block;
  margin-bottom:var(--kc-s2);
}
.kc-page .kc-zz-t{
  margin:0 0 var(--kc-s3);font-size:22px;font-weight:600;line-height:1.3;
  color:var(--kc-ink);
}
.kc-page .kc-zz-p{
  margin:0 0 var(--kc-s4);font-size:15.5px;line-height:1.6;
  color:var(--kc-ink-3);
}
.kc-page .kc-zz-l{
  display:inline-block;margin-top:var(--kc-s4);font-size:14.5px;
  font-weight:500;color:var(--kc-link);
}

/* ---------- photograph wall ----------
   Seamless tiles, one per application area. The label sits on the
   photograph over a gradient, so the name is legible at any exposure. */
.kc-page .kc-tiles{
  display:grid;grid-template-columns:repeat(4,1fr);gap:1px;
  background:var(--kc-line);border:1px solid var(--kc-line);
  border-radius:var(--kc-r);overflow:hidden;
}
.kc-page .kc-tile{
  position:relative;display:block;overflow:hidden;background:var(--kc-dark-2);
  text-decoration:none;
}
.kc-page .kc-tile img{
  display:block;width:100%;height:100%;aspect-ratio:4/3;object-fit:cover;
  transition:transform .4s ease;
}
.kc-page .kc-tile::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(180deg,rgba(6,19,33,0) 40%,
    rgba(6,19,33,.55) 74%,rgba(6,19,33,.86) 100%);
}
.kc-page .kc-tile-n{
  position:absolute;left:var(--kc-s4);right:var(--kc-s4);bottom:var(--kc-s4);
  z-index:1;color:#fff;font-weight:600;font-size:15px;line-height:1.3;
}
.kc-page .kc-tile:hover img{transform:scale(1.045)}
.kc-page .kc-tile:focus-visible{outline:2px solid var(--kc-link);
  outline-offset:-2px}

/* ---------- image cards ----------
   A hub entry with a photograph, a title and one line of detail. Used
   where the text-only numbered index left eight families as bare rows. */
.kc-page .kc-vcards{
  display:grid;grid-template-columns:repeat(3,1fr);gap:var(--kc-s5);
}
.kc-page .kc-vcards-4{grid-template-columns:repeat(4,1fr)}
.kc-page .kc-vcard{
  display:flex;flex-direction:column;overflow:hidden;background:#fff;
  border:1px solid var(--kc-line);border-radius:var(--kc-r);
  text-decoration:none;transition:border-color var(--kc-t),box-shadow var(--kc-t);
}
.kc-page .kc-vcard:hover{border-color:var(--kc-ink-4);
  box-shadow:0 2px 10px rgba(16,42,67,.07)}
.kc-page .kc-vcard img{
  display:block;width:100%;aspect-ratio:3/2;object-fit:cover;
  background:var(--kc-bg-2);border-bottom:1px solid var(--kc-line);
}
.kc-page .kc-vcard-b{
  display:flex;flex-direction:column;flex:1;
  padding:var(--kc-s4) var(--kc-s5) var(--kc-s5);
}
.kc-page .kc-vcard-n{
  font-family:var(--kc-mono);font-size:12px;font-weight:600;
  color:var(--kc-ink-4);margin-bottom:var(--kc-s2);
}
.kc-page .kc-vcard-t{
  font-weight:600;font-size:17px;line-height:1.35;color:var(--kc-ink);
  margin-bottom:var(--kc-s2);
}
.kc-page .kc-vcard-d{
  flex:1;font-size:14.5px;line-height:1.55;color:var(--kc-ink-3);
}
.kc-page .kc-vcard-l{
  margin-top:var(--kc-s3);font-size:14px;font-weight:500;color:var(--kc-link);
}

/* ---------- material card with its own key figures ----------
   The reference pattern in this segment: a material entry that answers
   the first three questions before the click. Figures come from the
   material table that already backs the page, so the card cannot drift
   from the specification. */
.kc-page .kc-mcards{
  display:grid;grid-template-columns:repeat(4,1fr);gap:var(--kc-s5);
}
.kc-page .kc-mcard{
  display:flex;flex-direction:column;overflow:hidden;background:#fff;
  border:1px solid var(--kc-line);border-radius:var(--kc-r);
  text-decoration:none;transition:border-color var(--kc-t),box-shadow var(--kc-t);
}
.kc-page .kc-mcard:hover{border-color:var(--kc-ink-4);
  box-shadow:0 2px 10px rgba(16,42,67,.07)}
.kc-page .kc-mcard img{
  display:block;width:100%;aspect-ratio:4/3;object-fit:cover;
  background:var(--kc-bg-2);border-bottom:1px solid var(--kc-line);
}
.kc-page .kc-mcard-b{
  display:flex;flex-direction:column;flex:1;gap:var(--kc-s3);
  padding:var(--kc-s4);
}
.kc-page .kc-mcard-h{display:flex;align-items:baseline;
  justify-content:space-between;gap:var(--kc-s2)}
.kc-page .kc-mcard-t{font-weight:600;font-size:16px;color:var(--kc-link)}
.kc-page .kc-mcard-f{
  font-family:var(--kc-mono);font-size:12px;color:var(--kc-ink-4);
  white-space:nowrap;
}
.kc-page .kc-mcard-s{margin:0;display:grid;gap:5px}
.kc-page .kc-mcard-s>div{
  display:grid;grid-template-columns:auto minmax(0,1fr);gap:var(--kc-s2);
  font-size:12.5px;line-height:1.4;
}
.kc-page .kc-mcard-s dt{color:var(--kc-ink-4)}
.kc-page .kc-mcard-s dd{
  margin:0;text-align:right;font-family:var(--kc-mono);font-weight:500;
  color:var(--kc-ink-2);font-variant-numeric:tabular-nums;
}
.kc-page .kc-mcard-l{
  margin-top:auto;padding-top:var(--kc-s2);font-size:14px;font-weight:500;
  color:var(--kc-link);
}

/* ---------- icon badge row ----------
   Three commitments under a rule, each with a drawn icon rather than an
   emoji or a photograph. */
.kc-page ul.kc-badges{
  display:grid;grid-template-columns:repeat(3,1fr);gap:var(--kc-s6);
  margin:0;padding:0;list-style:none;
}
/* Every property the pill rule sets is reset here, not only the ones this
   component needs. Unscoped, the pill's 12px size, grey border, white chip
   and white-space:nowrap all landed on these cards: the grid columns then
   sized themselves to one unwrapped line and the row measured 2180px inside
   a 1160px wrapper, so .kc-page's overflow-x clipped the second and third
   commitments off the page entirely. */
.kc-page ul.kc-badges > .kc-badge{
  display:flex;align-items:flex-start;gap:var(--kc-s3);
  border:0;border-top:2px solid var(--kc-dark);
  padding:var(--kc-s4) 0 0;border-radius:0;background:none;
  font-size:inherit;font-weight:400;letter-spacing:normal;
  color:inherit;white-space:normal;
}
.kc-page .kc-badge-i{
  display:inline-flex;width:38px;height:38px;flex:0 0 auto;
  align-items:center;justify-content:center;border-radius:50%;
  border:1px solid var(--kc-line);background:var(--kc-bg-2);color:var(--kc-cta);
}
.kc-page .kc-badge-i svg{width:19px;height:19px}
.kc-page .kc-badge-b{min-width:0}
.kc-page .kc-badge-t{
  display:block;font-size:15.5px;font-weight:600;line-height:1.35;
  color:var(--kc-ink);margin-bottom:3px;
}
.kc-page .kc-badge-d{font-size:14px;line-height:1.5;color:var(--kc-ink-3)}
.kc-page .kc-sec-dark .kc-badge{border-top-color:rgba(255,255,255,.5)}
.kc-page .kc-sec-dark .kc-badge-t{color:#fff}
.kc-page .kc-sec-dark .kc-badge-d{color:#c3d2de}
.kc-page .kc-sec-dark .kc-badge-i{
  border-color:rgba(255,255,255,.35);background:rgba(255,255,255,.08);
  color:#6fa8d6;
}

/* ---------- dash list ----------
   A quieter alternative to the ticked checklist: a hairline marker and
   the item, no green box repeating eight times down the page. */
.kc-page .kc-dash{margin:0;padding:0;list-style:none;display:grid;
  gap:var(--kc-s2)}
.kc-page .kc-dash li{
  position:relative;padding-left:18px;font-size:15px;line-height:1.55;
  color:var(--kc-ink-2);
}
.kc-page .kc-dash li::before{
  content:"";position:absolute;left:0;top:.7em;width:10px;height:1px;
  background:var(--kc-cta);
}
.kc-page .kc-sec-dark .kc-dash li{color:#d5e0ea}
.kc-page .kc-sec-dark .kc-dash li::before{background:#4e8fc4}

/* ---------- figure pair ----------
   Two photographs side by side under one caption, for before/after and
   for a part shown from two angles. */
.kc-page .kc-pair{display:grid;grid-template-columns:1fr 1fr;
  gap:var(--kc-s5)}
.kc-page .kc-pair figure{margin:0}
.kc-page .kc-pair img{display:block;width:100%;aspect-ratio:4/3;
  object-fit:cover;border-radius:var(--kc-r);border:1px solid var(--kc-line);
  background:var(--kc-bg-2)}
.kc-page .kc-pair figcaption{margin-top:var(--kc-s3);font-size:13.5px;
  color:var(--kc-ink-4);line-height:1.5}

/* ---------- responsive ---------- */
@media (max-width:1080px){
  .kc-page .kc-hero-split .kc-wrap{grid-template-columns:1fr;
    gap:var(--kc-s7)}
  /* enquiry hero on one column: heading, form, then the prose about it.
     Stacked as heading+prose+form the panel started at 612px on a tablet and
     633px on a phone, which put the first field at 1036px - below the screen
     the visitor is looking at. display:contents lifts the copy's two halves
     into the grid so the form can be ordered between them. */
  .kc-page .kc-hero-rfq .kc-wrap{gap:var(--kc-s6)}
  .kc-page .kc-hero-rfq .kc-hs-copy{display:contents}
  .kc-page .kc-hero-rfq .kc-hs-head{order:1}
  .kc-page .kc-hero-rfq .kc-rfq{order:2}
  .kc-page .kc-hero-rfq .kc-hs-body{order:3}
  .kc-page .kc-hero-rfq .kc-hs-body .kc-lead{margin-top:0}
  .kc-page .kc-hs-copy{max-width:none}
  /* single column, so the hero frame is already full width and keeps the
     photograph's own proportions from the base rule above - no 16:9 override,
     which would have cut the same 25% off the sides of a landscape frame the
     moment the page went one column */
  .kc-page .kc-vcards,.kc-page .kc-vcards-4{grid-template-columns:repeat(2,1fr)}
  .kc-page .kc-mcards{grid-template-columns:repeat(2,1fr)}
  .kc-page ul.kc-badges{grid-template-columns:repeat(2,1fr)}
  .kc-page .kc-tiles{grid-template-columns:repeat(3,1fr)}
  .kc-page .kc-zz{gap:var(--kc-s6)}
}
@media (max-width:860px){
  .kc-page .kc-zz{grid-template-columns:1fr;gap:var(--kc-s5)}
  .kc-page .kc-zz:nth-child(even) .kc-zz-media{order:0}
  .kc-page .kc-zz-media img{aspect-ratio:16/9}
  .kc-page .kc-pair{grid-template-columns:1fr}
}
@media (max-width:640px){
  .kc-page .kc-vcards,.kc-page .kc-vcards-4,.kc-page .kc-mcards,
  .kc-page ul.kc-badges{grid-template-columns:1fr}
  .kc-page .kc-tiles{grid-template-columns:repeat(2,1fr)}
  .kc-page .kc-zz-t{font-size:19px}
}

/* ---------- photograph band ----------
   Two or three frames between the copy and the questions, on the pages
   that would otherwise close on an unbroken run of paragraphs. Three across
   is the readable maximum at 1160px; below that the row steps down rather
   than shrinking the captions past 13.5px. Declared after the .kc-pair
   rules above so it wins at equal specificity. */
.kc-page .kc-pair-3{grid-template-columns:repeat(3,1fr)}
@media (max-width:1080px){
  .kc-page .kc-pair-3{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:860px){
  .kc-page .kc-pair-3{grid-template-columns:1fr}
}

/* ---------- property bars ----------
   A material comparison drawn as the interval the table itself publishes.
   The bar is the range, not a single value: collapsing "500 - 900 MPa" to
   one length would invent a figure the source does not state, and the
   material table is the one place on this site that may not do that. Where
   the source publishes no value the row is drawn without a bar. */
.kc-page .kc-rb-u{margin:0 0 var(--kc-s3);font-size:12px;font-weight:600;
  letter-spacing:.08em;text-transform:uppercase;color:var(--kc-ink-4)}
.kc-page .kc-rb{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.kc-page .kc-rb li{display:grid;
  grid-template-columns:minmax(130px,170px) 1fr minmax(84px,auto);
  align-items:center;gap:var(--kc-s4)}
.kc-page .kc-rb-l{font-size:13.5px;line-height:1.3;color:var(--kc-ink-2)}
.kc-page .kc-rb-t{position:relative;height:14px;border-radius:2px;
  background:var(--kc-bg-3)}
.kc-page .kc-rb-f{position:absolute;top:3px;bottom:3px;border-radius:2px;
  background:var(--kc-dark-3)}
.kc-page .kc-rb-v{font-size:13px;font-weight:600;color:var(--kc-ink);
  text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.kc-page .kc-rb-x .kc-rb-v{font-weight:400;color:var(--kc-ink-4)}
.kc-page .kc-rb-note{margin:var(--kc-s4) 0 0;font-size:14px;
  color:var(--kc-ink-4);line-height:1.5;max-width:600px}
.kc-page .kc-rb-c{margin:var(--kc-s3) 0 0;font-size:12.5px;
  color:var(--kc-ink-4);line-height:1.45}
@media (max-width:640px){
  .kc-page .kc-rb li{grid-template-columns:1fr auto;gap:4px var(--kc-s3)}
  .kc-page .kc-rb-l{grid-column:1 / -1}
}

/* ---------- tolerance axis ----------
   Accuracy figures on a logarithmic scale. A linear axis would collapse
   three of the four marks into the first pixel, so the scale is logarithmic
   and the numbers are carried by a numbered legend rather than by labels
   pinned to the marks, which collide. No value on this axis is written with
   a plus or minus sign: these are capability figures, and the site states
   them bare. */
/* The marks are placed by percentage, so the last one lands on the wrapper's
   right edge and its centred label overhangs it by 3px. That is not clipped:
   .kc-page is the clip boundary and it is the full 1440px viewport, so the
   label sits in the wrapper's margin and is fully visible. Left as is. */
.kc-page .kc-tol-ax{position:relative;height:64px;margin:0 0 34px;
  border-bottom:1px solid var(--kc-line)}
.kc-page .kc-tol-t{position:absolute;bottom:0;width:1px;
  transform:translateX(-50%)}
.kc-page .kc-tol-t i{display:block;height:10px;
  border-left:1px solid var(--kc-line)}
.kc-page .kc-tol-t b{position:absolute;top:12px;left:50%;
  transform:translateX(-50%);font-size:11.5px;font-weight:500;
  color:var(--kc-ink-4);white-space:nowrap;
  font-variant-numeric:tabular-nums}
.kc-page .kc-tol-m{position:absolute;bottom:7px;transform:translateX(-50%)}
.kc-page .kc-tol-m i{display:flex;align-items:center;justify-content:center;
  width:22px;height:22px;border-radius:50%;background:var(--kc-dark);
  color:#fff;font-size:11.5px;font-weight:700;font-style:normal}
.kc-page .kc-tol-lg{list-style:none;margin:0;padding:0;display:grid;
  grid-template-columns:repeat(2,1fr);gap:8px var(--kc-s6)}
.kc-page .kc-tol-lg li{display:grid;grid-template-columns:auto 1fr auto;
  align-items:baseline;gap:var(--kc-s3);padding-bottom:6px;
  border-bottom:1px solid var(--kc-line-2)}
.kc-page .kc-tol-k{display:inline-flex;align-items:center;justify-content:center;
  width:18px;height:18px;border-radius:50%;background:var(--kc-dark);
  color:#fff;font-size:10.5px;font-weight:700}
.kc-page .kc-tol-l{font-size:13.5px;color:var(--kc-ink-2)}
.kc-page .kc-tol-v{font-size:13px;font-weight:600;color:var(--kc-ink);
  font-variant-numeric:tabular-nums;white-space:nowrap}

/* ---------- process flow ----------
   The route through the works, carried by the layout instead of by
   "first, second, third" inside a paragraph. */
.kc-page .kc-flow{list-style:none;margin:0;padding:0;display:grid;gap:0}
.kc-page .kc-flow-3{grid-template-columns:repeat(3,1fr)}
.kc-page .kc-flow-4{grid-template-columns:repeat(4,1fr)}
.kc-page .kc-flow-5{grid-template-columns:repeat(5,1fr)}
.kc-page .kc-fl-i{position:relative;padding:var(--kc-s6) var(--kc-s5) 0 0}
.kc-page .kc-fl-i::before{content:"";position:absolute;left:0;right:0;top:19px;
  height:1px;background:var(--kc-line)}
.kc-page .kc-fl-n{position:relative;z-index:1;display:inline-flex;
  align-items:center;justify-content:center;width:38px;height:38px;
  border-radius:50%;background:var(--kc-bg);border:2px solid var(--kc-dark);
  color:var(--kc-dark);font-size:14px;font-weight:700}
.kc-page .kc-fl-t{display:block;margin:var(--kc-s4) 0 0;font-size:15.5px;
  font-weight:600;color:var(--kc-ink);line-height:1.35}
.kc-page .kc-fl-d{display:block;margin:6px 0 0;font-size:13.5px;
  color:var(--kc-ink-3);line-height:1.5}

@media (max-width:860px){
  .kc-page .kc-flow-3,.kc-page .kc-flow-4,.kc-page .kc-flow-5{
    grid-template-columns:1fr;gap:var(--kc-s5)}
  .kc-page .kc-fl-i{padding:0 0 0 58px}
  .kc-page .kc-fl-i::before{left:19px;right:auto;top:0;bottom:-20px;
    width:1px;height:auto}
  .kc-page .kc-fl-i:last-child::before{display:none}
  .kc-page .kc-fl-n{position:absolute;left:0;top:0}
  .kc-page .kc-fl-t{margin-top:6px}
}
@media (max-width:640px){
  .kc-page .kc-tol-lg{grid-template-columns:1fr}
}

/* ---- site search ---------------------------------------------------------
   The only interactive page on the site: a term box that queries the REST API
   and draws the hit list client side. Kept in the sheet rather than inline in
   the page so it picks up the same type scale, radius and hairline rules as
   every other v2 page, and is scoped to .kc-page like everything else here.

   Added 2026-09-21. The page and its script had existed for some time but had
   never been wired into the build, so no rule for these class names had ever
   been written - the first render of /search/ was an unstyled form. */
.kc-page .kc-search-form{display:flex;gap:var(--kc-s3);align-items:stretch;
  margin:var(--kc-s5) 0 0;max-width:760px}
.kc-page .kc-search-input{flex:1 1 auto;min-width:0;font-family:inherit;
  font-size:16px;line-height:1.4;color:var(--kc-ink-2);background:var(--kc-bg);
  border:1px solid var(--kc-line);border-radius:var(--kc-r);padding:13px 15px;
  transition:border-color var(--kc-t),box-shadow var(--kc-t)}
.kc-page .kc-search-input::placeholder{color:var(--kc-ink-4)}
.kc-page .kc-search-input:focus{outline:2px solid var(--kc-link);
  outline-offset:1px;border-color:var(--kc-link)}
.kc-page .kc-search-form .kc-btn{white-space:nowrap;flex:0 0 auto}
.kc-page .kc-search-out{margin-top:var(--kc-s6);min-height:48px}
.kc-page .kc-search-note{font-size:15px;line-height:1.6;color:var(--kc-ink-3);
  margin:0;max-width:62ch}
.kc-page .kc-search-head{font-size:13px;letter-spacing:.06em;
  text-transform:uppercase;color:var(--kc-ink-4);margin:0 0 var(--kc-s2);
  padding-bottom:var(--kc-s2);border-bottom:1px solid var(--kc-line)}
.kc-page .kc-hits{display:flex;flex-direction:column;max-width:820px}
.kc-page .kc-hit{display:flex;gap:var(--kc-s3);align-items:baseline;
  padding:14px 2px;border-bottom:1px solid var(--kc-line-2);
  text-decoration:none;transition:background-color var(--kc-t)}
.kc-page .kc-hit:hover{background:var(--kc-bg-2)}
.kc-page .kc-hit-k{flex:0 0 auto;font-size:11px;letter-spacing:.06em;
  text-transform:uppercase;color:var(--kc-ink-4);border:1px solid var(--kc-line);
  border-radius:var(--kc-r-sm);padding:3px 7px}
.kc-page .kc-hit-t{font-size:16px;line-height:1.35;color:var(--kc-link)}
.kc-page .kc-hit:hover .kc-hit-t{text-decoration:underline}
@media (max-width:640px){
  .kc-page .kc-search-form{flex-direction:column}
  .kc-page .kc-hit{flex-wrap:wrap;gap:var(--kc-s1) var(--kc-s2)}
}

/* ============================================================
   Korecera shell additions  -  v4 layer

   Loaded after kc_v2.css / kc_v3.css and scoped the same way, so a rule
   here wins on order where the two disagree and nothing reaches the
   cloned Tailwind markup.

   One component lives here: the sticky in-page navigation. It is the only
   part of the shape of an interior page that the old sheet had no answer
   for - a visitor landing half way down a material page had to scroll to
   find out what else was on it.

   No call to action sits in this bar. The prototypes carried one and the
   brief allows exactly one strong action in the header, so a second
   button 76px below it would not be a second action, it would be the
   same action twice - the header's "Submit a Drawing", repeated.
   ============================================================ */

.kc-page{
  /* pinned bar height, so the in-page navigation and the anchor offset both
     follow it instead of repeating the number */
  --kc-barh:76px;
  --kc-pnh:48px;
}

.kc-page .kc-pn{
  position:sticky;top:var(--kc-barh);z-index:60;background:var(--kc-bg);
  border-bottom:1px solid var(--kc-line);
}
.kc-page .kc-pn-in{
  max-width:var(--kc-wrap);margin:0 auto;padding:0 var(--kc-pad);
  display:flex;align-items:center;gap:2px;height:var(--kc-pnh);
  overflow-x:auto;overflow-y:hidden;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:none;-ms-overflow-style:none;
}
.kc-page .kc-pn-in::-webkit-scrollbar{display:none}
/* The label is what tells a visitor the row is the page's own contents
   rather than a second menu. It takes about 100px of the row and earns it:
   six short labels under a header that already has five menus are otherwise
   ambiguous. Monospace and uppercase, the same treatment the eyebrow and
   the figure captions get, so it reads as a document artefact. */
.kc-page .kc-pn-lab{
  flex:0 0 auto;font-family:var(--kc-mono);font-size:10px;letter-spacing:.12em;
  text-transform:uppercase;color:var(--kc-ink-4);white-space:nowrap;
  padding-right:14px;margin-right:8px;border-right:1px solid var(--kc-line);
  align-self:center;line-height:1;
}
.kc-page .kc-pn-a{
  flex:0 0 auto;height:var(--kc-pnh);display:flex;align-items:center;
  padding:0 13px;font-size:13px;font-weight:500;letter-spacing:.005em;
  color:var(--kc-ink-3);text-decoration:none;white-space:nowrap;
  border-bottom:2px solid transparent;transition:color var(--kc-t),
    border-color var(--kc-t);
}
.kc-page .kc-pn-a:hover{color:var(--kc-ink);border-bottom-color:var(--kc-line)}
.kc-page .kc-pn-a:focus-visible{outline:2px solid var(--kc-link);outline-offset:-3px}
.kc-page .kc-pn-a[aria-current="true"]{
  color:var(--kc-link);border-bottom-color:var(--kc-link);
}

/* A direct #hash landing has to clear both bars. Pages without the strip keep
   the single-bar offset above; :has() degrades to no change, which is the
   offset those pages already had. */
.kc-page:has(.kc-pn) [id]{scroll-margin-top:142px}

/* The strip is a phone-width affordance as well, so it swipes rather than
   wrapping: a wrapped row would push the content down by a whole line for
   every extra label. Only the phone breakpoint changes --kc-barh, and it
   changes it to the 64px the bar is actually set to there - the two numbers
   have to move together or the strip pins over the bar. */
@media (max-width:900px){
  .kc-page .kc-pn-lab{display:none}
  .kc-page .kc-pn-a{padding:0 12px}
  .kc-page:has(.kc-pn) [id]{scroll-margin-top:130px}
}
@media (max-width:640px){
  .kc-page{--kc-barh:64px;--kc-pnh:44px}
  .kc-page .kc-pn-in{padding:0 16px}
  .kc-page .kc-pn-a{padding:0 11px}
  /* 64 + 44 = 108, plus the same 18px of air the wide layout adds. It was
     122, which is 108 + 14, and the live click test measured the target
     landing 4px under the strip's lower edge on a phone - the target was
     visible but its own heading was clipped. */
  .kc-page:has(.kc-pn) [id]{scroll-margin-top:126px}
}

/* ============================================================
   Homepage hero  -  application routes under the buttons

   The front page used to open on a full bleed photograph with the copy
   laid over it, which made it the only page on the site that opened on
   a different shape from every other page. It now opens on the same two
   column hero the interior pages use: copy in the left column, one
   workshop photograph in the right.

   The four application routes used to sit in a dark band across the
   foot of that photograph. They move into the copy column as a two by
   two block, because they are read in the same glance as the headline -
   a buyer scanning the opening is asking whether this page is about
   their part at all, and the four routes answer that faster than a
   paragraph does.

   Hairlines rather than cards: four boxed cards above the fold compete
   with the two buttons that matter, and the site's own instrument look
   is a rule, not a panel.
   ============================================================ */

.kc-page .kc-hs-body .kc-hero-apps,
.kc-page .kc-hs-copy .kc-hero-apps{
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));
  gap:0 var(--kc-s5);margin:var(--kc-s6) 0 0;padding:0;list-style:none;
  border-top:1px solid var(--kc-line);max-width:560px;
}
.kc-page .kc-hero-apps li{
  min-width:0;padding:var(--kc-s4) 0;border-bottom:1px solid var(--kc-line);
}
.kc-page .kc-hero-apps a{display:block;text-decoration:none;color:inherit}
.kc-page .kc-hero-apps .kc-ha-k{
  display:block;font-family:var(--kc-mono);font-size:10.5px;
  letter-spacing:.1em;text-transform:uppercase;color:var(--kc-ink-4);
  line-height:1.4;
}
.kc-page .kc-hero-apps .kc-ha-v{
  display:block;margin-top:6px;font-size:15px;font-weight:500;
  line-height:1.35;color:var(--kc-ink);
}
.kc-page .kc-hero-apps a:hover .kc-ha-v{color:var(--kc-link)}
.kc-page .kc-hero-apps a:focus-visible{
  outline:2px solid var(--kc-link);outline-offset:2px;
}
@media (max-width:900px){
  .kc-page .kc-hs-body .kc-hero-apps,
  .kc-page .kc-hs-copy .kc-hero-apps{margin-top:var(--kc-s5)}
}

/* ---------- brand mark ----------
   The chip is a white rounded tile in the header and in the footer (the
   stylesheet already gave it both a ground and a radius), so the artwork
   inside it only has to fill the tile minus its own breathing room. Sizing
   the image as a percentage means the 34px chip and the 32px chip at
   <=640px both stay correct without a second rule, and height:auto keeps
   the square canvas square. */
.kc-page .kc-logo-m{padding:4px}
.kc-page .kc-logo-m img{
  display:block;width:100%;height:auto;
}

/* A table sitting in a split column has already been narrowed by the layout.
   The component default of min-width:560px is wider than that column at some
   desktop sizes, and the overrun does not widen the document - it turns into an
   inner horizontal scroll inside .kc-tbl-wrap, so the right-hand column is
   clipped and every document-level check still passes. Inside a side-by-side
   split the table is given the column it was dealt and allowed to wrap.
   Below 901px the split has already collapsed to one column, so the component
   default applies again and narrow screens keep the sideways scroll. */
@media (min-width:901px){
  .kc-page .kc-split .kc-tbl{min-width:0}
}

/* ---------- the route strip on the photographic homepage hero ----------
   The stylesheet already carried the strip, its four columns, the circular
   icon and the whole phone behaviour for it - the homepage simply stopped
   using them. What was missing is the two line label: the strip was written
   for four words on one line, and these four routes each need the route and
   the kind of parts it covers, because "Thermal management" on its own does
   not tell a buyer whether the page is about their part.

   Aligned to the top rather than the middle so the icon sits level with the
   route name whether the description runs to one line or two. */
.kc-page .kc-hero-strip a{align-items:flex-start}
.kc-page .kc-hero-strip .kc-hs-t{display:block;min-width:0;padding-top:1px}
.kc-page .kc-hero-strip .kc-hs-k{
  display:block;font-size:15px;font-weight:600;line-height:1.3;color:#fff;
}
.kc-page .kc-hero-strip .kc-hs-v{
  display:block;margin-top:3px;font-size:13px;font-weight:400;line-height:1.45;
  color:#b6c9d8;
}
.kc-page .kc-hero-strip a:hover .kc-hs-k,
.kc-page .kc-hero-strip a:hover .kc-hs-v{color:#fff}
.kc-page .kc-hero-strip a:focus-visible{
  outline:2px solid #8fd8f2;outline-offset:4px;border-radius:4px;
}
/* On a phone the icon and a two line label are taller than the row the strip
   was sized for, so the rows get their own breathing room back. */
@media (max-width:640px){
  .kc-page .kc-hero-strip li+li{margin-top:var(--kc-s4)}
}

/* ---------- hero, supplied banner: homepage only ----------
   The front page opens on one commissioned artwork. The file the customer
   delivered carries the photography, and it used to carry the words as well.
   On 2026-10-01 that was judged a failure to read, and the reason is
   measurable: the file ships at 1983 px, the CDN serves it at 1600 px, and a
   1920 px window paints it back up at about 1.2x, so every glyph in it is
   resampled twice before it reaches the glass. Type the page sets itself is
   served as text, shaped and hinted by the reader's own engine at the size it
   is finally drawn at, and stays sharp at any width and pixel ratio.

   So the words were lifted out of the file and set in the page's own face, in
   the artwork's own order and wording: kicker, headline, lead, both buttons,
   and the four columns across the foot. The plate underneath is that same
   artwork with the words and the duplicated logo removed and nothing else
   retouched, so the composition is the one that was approved.

   Every band is a percentage box over the plate. A percentage of an image
   scales with the image, so one set of coordinates holds at any width and no
   band needs a breakpoint of its own; type sizes are stated in vw for the same
   reason, because the plate is always exactly 100vw wide. The plate is never
   cropped, rescaled or redrawn.

   The plate is a background, so it carries no alt text and no heading. The h1
   is real text now, which is the one thing the image-only version could not
   offer, and the four columns are ordinary links rather than empty boxes laid
   over pixels.

   Below 1240 px - the design's own content width - a percentage box a few
   characters wide stops being readable, so the copy and the columns leave the
   overlay and stack under the plate on the flat field the plate itself ends
   on. Background is sampled from that same band so the plate and the row under
   it read as one block. */
.kc-page .kc-hero-banner{
  position:relative;padding:0;display:block;background:#001e3f;color:#fff;
}
.kc-page .kc-hb-frame{position:relative;display:block;overflow:hidden}
.kc-page .kc-hb-img{display:block;width:100%;height:auto}
/* The copy is one percentage box on the plate, so it tracks the photograph as
   it scales and needs no breakpoint of its own. */
.kc-page .kc-hb-copy{
  position:absolute;left:3.33%;top:15.2%;width:37.2%;z-index:2;
}
.kc-page .kc-hb-kicker{
  display:flex;align-items:center;gap:.5em;margin:0;
  font-size:clamp(9px,.84vw,16.5px);line-height:1.4;
  letter-spacing:.09em;text-transform:uppercase;font-weight:600;
  color:#cbd8e6;
  /* the last two words of the eyebrow cross from the flat field onto the
     machine behind it, where the delivered artwork had them too. A soft dark
     halo is what keeps a small letter-spaced line crisp there rather than a
     plate or a scrim, which would show. */
  text-shadow:0 1px 2px rgba(3,12,26,.5);
}
.kc-page .kc-hb-rule{
  flex:0 0 auto;display:block;width:5.1vw;height:1px;
  background:rgba(203,216,230,.62);
}
/* The banner headline is the one piece of type that has to outrank the section
   headings without any help from position. At 2.95vw it measured 42.5px on a
   1440 window, and once the section ladder moved to 44px the two were six
   percent apart - technically ranked, visually level. 3.25vw puts it at 46.8px
   there and the cap at 62px keeps it from outgrowing the three-line box on the
   widest screens. */
.kc-page .kc-hb-h1{
  margin:0;font-size:clamp(19px,3.25vw,62px);line-height:1.02;
  letter-spacing:-.012em;font-weight:700;color:#fff;
  text-shadow:0 1px 3px rgba(3,12,26,.34);
}
.kc-page .kc-hb-h1 span{display:block}
/* The third line is the artwork's own accent, sampled off the delivered file
   at #2d8efc. */
.kc-page .kc-hb-h1 .kc-hb-accent{color:#2d8efc}
/* max-width is stated in vw, not em, because it is the measure the artwork
   wrapped at - the lead has to break into the same three lines. */
.kc-page .kc-hb-lead{
  margin:.62em 0 0;font-size:clamp(10px,.98vw,19.5px);line-height:1.3;
  color:#d6e3f0;max-width:31.4vw;
}
/* The button row is measured, not guessed. In the artwork the two buttons run
   from the left margin to 37.87 % of the plate and stop just inside the dark
   panel's slanted edge, so the row has a fixed width to hit. Measured at 1920,
   the copy set in the site's own stack came out about 30 px wider over the two
   buttons than the artwork's, which pushed the ghost button's right border off
   the panel and onto the bright workshop photograph behind it. Setting the row
   at .9vw - 17.3 px at 1920, against the artwork's own cap height of 12 px -
   brings both the label widths and the row width back onto the artwork.
   The vertical padding is raised to .93em at the same time: the button's
   height is 1.2em of line box plus twice the padding plus the border, so
   shrinking the type would otherwise have cost 3 px of button height. */
.kc-page .kc-hb-cta{
  display:flex;flex-wrap:wrap;gap:.78vw;margin:1.05em 0 0;
  font-size:clamp(9px,.9vw,18px);
}
.kc-page .kc-hb-btn{
  display:inline-flex;align-items:center;gap:.42em;white-space:nowrap;
  padding:.93em 1.05em;border-radius:6px;text-decoration:none;
  font:inherit;font-weight:600;line-height:1.2;
  border:1px solid transparent;
  transition:background-color .15s ease,border-color .15s ease;
}
.kc-page .kc-hb-arw{font-size:.92em;line-height:1}
/* The drawing mark on the primary button. Sized in em against the button's own
   font so it tracks the clamp the same way the label does, and capped to the
   line box (1.2em) so the marked button is no taller than the plain one - a
   larger box would push the two buttons out of height agreement. */
.kc-page .kc-hb-btn-ic{
  flex:0 0 auto;width:1.2em;height:1.2em;display:block;
}
.kc-page .kc-hb-btn-primary{background:#268cfe;color:#fff;gap:.5em}
.kc-page .kc-hb-btn-primary:hover{background:#3f9bff}
.kc-page .kc-hb-btn-ghost{border-color:rgba(255,255,255,.55);color:#fff}
.kc-page .kc-hb-btn-ghost:hover{
  background:rgba(255,255,255,.13);border-color:#fff;
}
.kc-page .kc-hb-btn:focus-visible{outline:3px solid #7fd4f0;outline-offset:2px}
/* The four columns across the foot of the plate: material, process,
   inspection, production. Each column is one link, and the dividers sit where
   the artwork's own dividers sat. */
.kc-page .kc-hb-strip{
  position:absolute;left:0;right:0;bottom:0;height:13%;z-index:2;
  /* The columns are not equal. The artwork's three dividers sit at 25.47 %,
     52.45 % and 76.65 % of its width, so the four tracks are the four spans
     between them rather than quarters - an even grid pulls the third and
     fourth columns about 4 % of the width to the left of where they are
     drawn. */
  display:grid;
  grid-template-columns:23.37fr 28.67fr 25.71fr 22.27fr;
  align-items:center;padding:0 2.4% 0 3.48%;
}
.kc-page .kc-hb-cell{
  position:relative;display:flex;align-items:center;
  gap:1.95vw;padding:0;border-radius:5px;
  text-decoration:none;color:inherit;
  transition:background-color .15s ease;
}
/* the divider sits on the column line and the column's own content starts
   2.2vw to its right, which is where the artwork put both. */
.kc-page .kc-hb-cell+.kc-hb-cell{padding-left:2.2vw}
.kc-page .kc-hb-cell+.kc-hb-cell::before{
  content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);
  width:1px;height:clamp(15px,2.1vw,42px);background:rgba(255,255,255,.2);
}
.kc-page .kc-hb-cell:hover{background:rgba(255,255,255,.08)}
.kc-page .kc-hb-cell:focus-visible{outline:2px solid #7fd4f0;outline-offset:1px}
.kc-page .kc-hb-cell svg{
  flex:0 0 auto;width:clamp(20px,3.9vw,76px);height:auto;color:#2b8bf9;
}
.kc-page .kc-hb-tx{display:block;min-width:0}
.kc-page .kc-hb-cell b{
  display:block;font-size:clamp(9px,.88vw,17.5px);line-height:1.2;
  letter-spacing:.075em;text-transform:uppercase;font-weight:700;color:#fff;
}
/* Scoped through the cell rather than left as a bare class: the rule this
   replaces was `.kc-hb-cell span span`, and two type selectors beat one class,
   so a bare `.kc-hb-sub` would lose to a rule that is no longer wanted. */
.kc-page .kc-hb-cell .kc-hb-sub{
  display:block;margin-top:.42em;
  font-size:clamp(8px,.83vw,16.5px);line-height:1.3;color:#9fb6cd;
}
.kc-page .kc-hb-cell sub{font-size:.72em;line-height:0}
/* The foot row keeps the four application routes on the page: three of the
   four have their only inbound link here. The two buttons are already real
   buttons in the copy above, so this row carries routes and nothing else. */
.kc-page .kc-hb-foot{position:relative;z-index:2;background:#001e3f;
  border-top:1px solid rgba(255,255,255,.14)}
.kc-page .kc-hb-foot .kc-wrap{padding:var(--kc-s4) 0}
.kc-page .kc-hb-apps{
  display:flex;flex-wrap:wrap;align-items:center;
  gap:var(--kc-s2) var(--kc-s5);margin:0;padding:0;list-style:none;
}
.kc-page .kc-hb-apps li{position:relative;font-size:14px;line-height:1.5}
.kc-page .kc-hb-apps a{color:#c9d8e6;text-decoration:none}
.kc-page .kc-hb-apps a:hover{
  color:#fff;text-decoration:underline;text-underline-offset:3px;
}
.kc-page .kc-hb-apps a:focus-visible{outline:2px solid #7fd4f0;outline-offset:3px}
.kc-page .kc-hb-apps li+li::before{
  content:"";position:absolute;left:-14px;top:50%;width:1px;height:12px;
  margin-top:-6px;background:rgba(255,255,255,.24);
}
/* Under 1240 px - the design's own content width - a percentage box a few
   characters wide is a column of fragments rather than a headline, so the copy
   and the columns stop being an overlay and stack under the plate. The plate
   stays full bleed at every width; only the layers above it change. */
@media (max-width:1240px){
  .kc-page .kc-hb-copy{
    position:static;width:auto;
    padding:var(--kc-s7) var(--kc-pad) var(--kc-s6);
  }
  .kc-page .kc-hb-kicker{font-size:12.5px;gap:10px;margin-bottom:8px}
  .kc-page .kc-hb-rule{width:58px}
  .kc-page .kc-hb-h1{font-size:clamp(28px,5.6vw,44px);line-height:1.12}
  .kc-page .kc-hb-lead{font-size:17px;line-height:1.6;max-width:52em;
    margin-top:10px}
  .kc-page .kc-hb-cta{gap:var(--kc-s3);margin-top:var(--kc-s5);
    font-size:15.5px}
  .kc-page .kc-hb-btn{padding:.72em 1.15em}
  /* the copy is on flat field here, so the halos the overlay needs would only
     soften it */
  .kc-page .kc-hb-kicker,.kc-page .kc-hb-h1{text-shadow:none}
  .kc-page .kc-hb-strip{
    position:static;height:auto;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:var(--kc-s4) var(--kc-s6);
    padding:0 var(--kc-pad) var(--kc-s7);
  }
  .kc-page .kc-hb-cell,
  .kc-page .kc-hb-cell+.kc-hb-cell{padding:0;gap:12px}
  .kc-page .kc-hb-cell+.kc-hb-cell::before{display:none}
  .kc-page .kc-hb-cell svg{width:26px}
  .kc-page .kc-hb-cell b{font-size:13px;letter-spacing:.06em}
  .kc-page .kc-hb-cell .kc-hb-sub{font-size:13px}
}
@media (max-width:640px){
  .kc-page .kc-hb-copy{padding:var(--kc-s6) var(--kc-pad) var(--kc-s5)}
  .kc-page .kc-hb-h1{font-size:clamp(26px,8.2vw,34px)}
  .kc-page .kc-hb-lead{font-size:16px}
  .kc-page .kc-hb-btn{width:100%;justify-content:center}
  .kc-page .kc-hb-strip{
    grid-template-columns:minmax(0,1fr);
    gap:var(--kc-s4);padding:0 var(--kc-pad) var(--kc-s6);
  }
  .kc-page .kc-hb-foot .kc-wrap{padding:var(--kc-s4) 0 var(--kc-s5)}
  .kc-page .kc-hb-apps{gap:var(--kc-s2) var(--kc-s4);font-size:13.5px}
  .kc-page .kc-hb-apps li+li::before{left:-11px}
}

/* ==================================================================
   Component examples: one screen, no ragged row
   ==================================================================

   Two things are put right here. The first was a defect, not a matter of
   taste. The frame rule in the sheet was written against `.kc-part-i img`,
   a class the markup has never carried - the cards emit `.kc-part > img` -
   so neither aspect-ratio nor object-fit ever applied, and the six frames
   painted at their own ratios: 1.78, 1.78, 1.00, 1.00, 1.33, 1.00. Inside
   equal-height cards those ran from 208px to 371px tall, which left a
   quarter of a card empty under the two landscape frames. Measured on the
   live page before the fix: block 1343px, every card 513px, and the block
   could not fit any desktop viewport at all. The frames are pinned to the
   3:2 crop the replacement photography was made to.

   The second is the brief: the whole block sits inside one viewport at 100
   percent with air above and below. The band gives back part of its own
   padding and the card rhythm is tightened to pay for the rest. */

/* This block reverses the global rhythm on purpose. It is built to sit inside
   one viewport with air above and below, and its card grid is a fixed 708px.
   The wider heading ladder above the grid added about ten pixels, and the
   standard block padding would then put the section 71px past a 1440x900
   window. So its own padding comes down rather than up, and the heading sits
   closer to the cards it introduces. Measured at 1440x900: 883px, 17px spare. */
.kc-page .kc-sec-tight{padding:24px 0}
/* The heading measure is lifted here as well. At 43px this title wraps to two
   lines inside the 820px measure the rest of the sheet uses, and a second line
   of heading costs 50px of the viewport budget the block cannot spare - the
   block went to 933px against a 900px window, measured live. Freed to the
   wrapper width it sets on one line and the block returns to 883px. The lead
   keeps its own 70ch cap, so the copy does not widen with the heading. */
.kc-page .kc-sec-tight .kc-head{max-width:none;margin-bottom:24px}
.kc-page .kc-sec-tight .kc-lead{font-size:17.5px;line-height:1.5}
.kc-page .kc-sec-tight .kc-parts{row-gap:20px}

/* The tight block is the same section with less air, not a different one, so
   it steps down with the standard block at every breakpoint. These live here
   rather than in kc_v3 because that sheet is linked first: the base rules
   above would win over anything an earlier media query set. */
@media (max-width:860px){
  .kc-page .kc-sec-tight{padding:48px 0}
  .kc-page .kc-sec-tight .kc-head{margin-bottom:24px}
}
@media (max-width:640px){
  .kc-page .kc-sec-tight{padding:40px 0}
  .kc-page .kc-sec-tight .kc-head{margin-bottom:20px}
}

.kc-page .kc-part img{
  display:block;width:100%;aspect-ratio:3/2;object-fit:cover;
  border-radius:var(--kc-r);border:1px solid var(--kc-line);
  background:var(--kc-bg-2);
}
.kc-page .kc-part-t{font-size:15px;line-height:1.3;margin-top:6px}
.kc-page .kc-part-m{gap:1px;margin:6px 0 0}
.kc-page .kc-part-m dt{font-size:11px;padding-top:1px}
.kc-page .kc-part-m dd{font-size:12.5px;line-height:1.3}
.kc-page .kc-part-l{margin-top:4px;font-size:12.5px}

/* =====================================================================
   P7 homepage redesign (2026-10-09, management-approved composition).
   Six sections only: hero, value strip, component families, materials,
   manufacturing evidence, RFQ band. Palette per the approved tokens
   (navy #0f2233 / deep #0b1f33 / accent #2d6ea3); the rest of the site
   keeps the shared variables until the hub batches align them.
   The hero photograph is the management-approved AI composite (class B):
   it is a scene, never presented as Korecera workshop evidence, and the
   img tag is the only place the file is named, so replacement is one URL.
   ===================================================================== */
.kc-page .kc-p7-hero{
  position:relative;display:flex;background:linear-gradient(100deg,#0b1f33 0%,#0f2233 55%,#13293c 100%);
  color:#fff;min-height:560px;
}
.kc-page .kc-p7-hero-copy{
  flex:0 0 46%;padding:88px 30px 88px 64px;position:relative;z-index:2;
  display:flex;flex-direction:column;justify-content:center;
}
.kc-page .kc-p7-kicker{
  display:flex;align-items:center;gap:14px;margin:0 0 26px;
  font-size:12px;letter-spacing:.32em;text-transform:uppercase;
  font-weight:600;color:#8fb4d4;
}
.kc-page .kc-p7-rule{flex:0 0 auto;display:block;width:56px;height:1px;background:#3d5a73}
.kc-page .kc-p7-h1{
  margin:0;font-size:clamp(34px,3.6vw,52px);line-height:1.14;
  letter-spacing:-.012em;font-weight:600;color:#fff;max-width:560px;
}
.kc-page .kc-p7-h1 span{display:block}
.kc-page .kc-p7-h1 .kc-p7-accent{color:#9fc4e6}
.kc-page .kc-p7-lead{
  margin:26px 0 0;font-size:16px;line-height:1.75;color:#c3cfda;max-width:470px;
}
.kc-page .kc-p7-cta{display:flex;flex-wrap:wrap;gap:16px;margin:38px 0 0}
.kc-page .kc-p7-btn{
  display:inline-flex;align-items:center;white-space:nowrap;
  padding:13px 26px;border-radius:4px;text-decoration:none;
  font:inherit;font-size:14px;font-weight:600;line-height:1.2;
  border:1px solid transparent;
}
.kc-page .kc-p7-btn-primary{background:#2d6ea3;color:#fff}
.kc-page .kc-p7-btn-primary:hover{background:#3a7fb5}
.kc-page .kc-p7-btn-ghost{border-color:#56718a;color:#dce6ef}
.kc-page .kc-p7-btn-ghost:hover{background:rgba(255,255,255,.08);border-color:#8fa6bc}
.kc-page .kc-p7-btn:focus-visible{outline:3px solid #7fd4f0;outline-offset:2px}
.kc-page .kc-p7-hero-media{flex:1;position:relative;min-width:0;overflow:hidden}
.kc-page .kc-p7-hero-img{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  object-position:left center;display:block;
}
.kc-page .kc-p7-hero-media::before{
  content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background:linear-gradient(90deg,#0f2233 0%,rgba(15,34,51,.45) 22%,rgba(15,34,51,0) 55%);
}
/* ---- 02 value strip ---- */
.kc-page .kc-p7-val{background:#fafbfc;border-bottom:1px solid var(--kc-line-2)}
.kc-page .kc-p7-val-grid{display:flex;padding:34px 0}
.kc-page .kc-p7-val-item{flex:1;padding:0 26px;border-left:1px solid var(--kc-line)}
.kc-page .kc-p7-val-item:first-child{border-left:0;padding-left:0}
.kc-page .kc-p7-val-item b{display:block;font-size:15px;color:#0f2233;font-weight:600}
.kc-page .kc-p7-val-item span{
  display:block;margin-top:6px;font-size:12.5px;color:var(--kc-ink-3);line-height:1.55;
}
/* ---- section shells ---- */
.kc-page .kc-p7-sec{padding:72px 0;background:#fff}
.kc-page .kc-p7-sec-alt{background:#f5f7f8}
.kc-page .kc-p7-head{max-width:640px;margin-bottom:34px}
.kc-page .kc-p7-eyeb{
  margin:0;font-size:11.5px;letter-spacing:.24em;text-transform:uppercase;
  font-weight:600;color:#2d6ea3;
}
.kc-page .kc-p7-h2{margin:10px 0 0;font-size:clamp(26px,2.4vw,34px);line-height:1.2;color:#0f2233;font-weight:600}
.kc-page .kc-p7-plead{margin:12px 0 0;font-size:15px;color:var(--kc-ink-3);line-height:1.65}
.kc-page .kc-p7-srow{display:flex;justify-content:space-between;align-items:flex-end;gap:30px}
.kc-page .kc-p7-alink{color:#2d6ea3;font-size:14px;font-weight:600;text-decoration:none;white-space:nowrap}
.kc-page .kc-p7-alink:hover{text-decoration:underline}
/* ---- 03 component cards ---- */
.kc-page .kc-p7-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.kc-page .kc-p7-card{
  background:#fff;border:1px solid #e9eef2;border-radius:6px;overflow:hidden;
  display:flex;flex-direction:column;box-shadow:0 1px 5px rgba(15,34,51,.05);
}
.kc-page .kc-p7-card-ph{aspect-ratio:16/10;overflow:hidden;background:#dee5ea}
.kc-page .kc-p7-card-ph img{width:100%;height:100%;object-fit:cover;display:block}
.kc-page .kc-p7-card-bd{padding:18px 20px 20px}
.kc-page .kc-p7-card-bd b{font-size:17px;color:#0f2233;font-weight:600}
.kc-page .kc-p7-card-bd p{margin:6px 0 0;font-size:13px;color:var(--kc-ink-3);line-height:1.55}
.kc-page .kc-p7-card-bd a{
  display:inline-block;margin-top:12px;font-size:13px;color:#2d6ea3;
  font-weight:600;text-decoration:none;
}
.kc-page .kc-p7-card-bd a:hover{text-decoration:underline}
/* ---- 04 material gallery ---- */
.kc-page .kc-p7-mats{display:grid;grid-template-columns:repeat(6,1fr);gap:18px}
.kc-page .kc-p7-mat{background:#fff;border:1px solid #e9eef2;border-radius:6px;overflow:hidden}
.kc-page .kc-p7-mat-ph{aspect-ratio:1/1;overflow:hidden;background:#dee5ea}
.kc-page .kc-p7-mat-ph img{width:100%;height:100%;object-fit:cover;display:block}
.kc-page .kc-p7-mat-bd{padding:14px 15px 16px}
.kc-page .kc-p7-mat-bd b{display:block;font-size:14px;color:#0f2233;font-weight:600}
.kc-page .kc-p7-mat-bd span{display:block;margin-top:6px;font-size:11.5px;color:var(--kc-ink-3);line-height:1.5}
.kc-page .kc-p7-mat-bd a{color:inherit;text-decoration:none;display:block}
/* ---- 05 manufacturing evidence: one dominant + three supporting ---- */
.kc-page .kc-p7-mfg{display:grid;grid-template-columns:1.55fr 1fr;gap:22px;align-items:stretch}
.kc-page .kc-p7-mfg-dom{position:relative;border-radius:6px;overflow:hidden;min-height:430px;background:#223}
.kc-page .kc-p7-mfg-dom img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.kc-page .kc-p7-mfg-dom b{
  position:absolute;left:0;right:0;bottom:0;padding:46px 22px 16px;
  background:linear-gradient(180deg,rgba(11,31,51,0),rgba(11,31,51,.85));
  color:#fff;font-size:15px;font-weight:600;
}
.kc-page .kc-p7-mfg-sup{display:grid;grid-template-rows:repeat(3,1fr);gap:22px}
.kc-page .kc-p7-ev{position:relative;border-radius:6px;overflow:hidden;background:#223}
.kc-page .kc-p7-ev img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.kc-page .kc-p7-ev b{
  position:absolute;left:0;right:0;bottom:0;padding:36px 16px 14px;
  background:linear-gradient(180deg,rgba(11,31,51,0),rgba(11,31,51,.85));
  color:#fff;font-size:13.5px;font-weight:600;
}
.kc-page .kc-p7-stats{
  display:flex;margin-top:26px;background:#0f2233;border-radius:6px;color:#fff;
}
.kc-page .kc-p7-stat{flex:1;padding:26px 30px;border-left:1px solid #2b4258}
.kc-page .kc-p7-stat:first-child{border-left:0}
.kc-page .kc-p7-stat b{display:block;font-size:26px;font-weight:600;color:#fff}
.kc-page .kc-p7-stat span{display:block;margin-top:6px;font-size:12px;color:#9db2c4}
.kc-page .kc-p7-capqual{
  margin:14px 0 0;font-size:12.5px;color:var(--kc-ink-3);line-height:1.6;
}
/* ---- 06 RFQ band ---- */
.kc-page .kc-p7-rfq{background:linear-gradient(100deg,#0b1f33,#0f2233);color:#fff;padding:64px 0}
.kc-page .kc-p7-rfq-flex{display:flex;align-items:center;gap:50px}
.kc-page .kc-p7-rfq h2{margin:0;font-size:clamp(24px,2.3vw,32px);font-weight:600;line-height:1.25;max-width:520px}
.kc-page .kc-p7-rfq .kc-p7-rfq-note{
  margin:12px 0 0;color:#b9c9d7;font-size:14.5px;line-height:1.65;max-width:560px;
}
.kc-page .kc-p7-rfq-cta{margin-left:auto;text-align:right;flex-shrink:0}
.kc-page .kc-p7-rfq-hours{
  margin:12px 0 0;font-size:11.5px;color:#8aa0b3;max-width:300px;line-height:1.6;
}
/* ---- responsive ---- */
@media (max-width:1240px){
  .kc-page .kc-p7-hero{flex-direction:column;min-height:0}
  .kc-page .kc-p7-hero-copy{flex:auto;padding:64px 40px 48px}
  .kc-page .kc-p7-hero-media{min-height:380px}
  .kc-page .kc-p7-hero-img{object-position:60% 35%}
  .kc-page .kc-p7-hero-media::before{background:linear-gradient(180deg,#0f2233 0%,rgba(15,34,51,.35) 30%,rgba(15,34,51,0) 60%)}
}
@media (max-width:900px){
  .kc-page .kc-p7-val-grid{flex-direction:column;gap:18px;padding:26px 0}
  .kc-page .kc-p7-val-item{border-left:0;padding:0;border-top:1px solid var(--kc-line);padding-top:16px}
  .kc-page .kc-p7-val-item:first-child{border-top:0;padding-top:0}
  .kc-page .kc-p7-mats{grid-template-columns:repeat(3,1fr)}
  .kc-page .kc-p7-mfg{grid-template-columns:1fr}
  .kc-page .kc-p7-mfg-dom{min-height:320px}
  .kc-page .kc-p7-mfg-sup{grid-template-rows:none;grid-template-columns:repeat(3,1fr)}
  .kc-page .kc-p7-ev{aspect-ratio:4/3}
  .kc-page .kc-p7-stats{flex-wrap:wrap}
  .kc-page .kc-p7-stat{flex:1 1 40%;border-top:1px solid #2b4258}
  .kc-page .kc-p7-stat:first-child,.kc-page .kc-p7-stat:nth-child(2){border-top:0}
  .kc-page .kc-p7-stat:nth-child(3){border-left:0}
  .kc-page .kc-p7-rfq-flex{flex-direction:column;align-items:flex-start;gap:26px}
  .kc-page .kc-p7-rfq-cta{margin-left:0;text-align:left}
  .kc-page .kc-p7-rfq-hours{max-width:560px}
  .kc-page .kc-p7-srow{flex-direction:column;align-items:flex-start;gap:12px}
}
@media (max-width:640px){
  .kc-page .kc-p7-hero-copy{padding:44px 18px 36px}
  .kc-page .kc-p7-h1{font-size:29px}
  .kc-page .kc-p7-lead{font-size:13.5px;margin-top:14px}
  .kc-page .kc-p7-cta{margin-top:24px;gap:12px}
  .kc-page .kc-p7-btn{padding:12px 20px;font-size:13.5px}
  .kc-page .kc-p7-hero-media{min-height:230px}
  .kc-page .kc-p7-val-grid{padding:20px 0}
  .kc-page .kc-p7-val-item b{font-size:12.5px}
  .kc-page .kc-p7-val-item span{font-size:10.5px}
  .kc-page .kc-p7-sec{padding:44px 0}
  .kc-page .kc-p7-grid{grid-template-columns:1fr;gap:14px}
  .kc-page .kc-p7-mats{grid-template-columns:1fr 1fr;gap:12px}
  .kc-page .kc-p7-mfg-sup{grid-template-columns:1fr;gap:14px}
  .kc-page .kc-p7-stats{flex-direction:column}
  .kc-page .kc-p7-stat{flex:none;border-left:0;border-top:1px solid #2b4258;padding:18px 22px}
  .kc-page .kc-p7-stat:first-child{border-top:0}
  .kc-page .kc-p7-rfq{padding:40px 0}
}

/* P7 typeface alignment (2026-10-09 management feedback): the approved
   homepage prototypes were reviewed in the Segoe UI face, and management
   asked for the production homepage to match the template. The six P7
   sections therefore put Segoe UI ahead of the site's IBM Plex Sans; every
   other page keeps the shared stack until the hub batches align it. */
.kc-page :is(.kc-p7-hero,.kc-p7-val,.kc-p7-sec,.kc-p7-rfq){
  font-family:"Segoe UI","IBM Plex Sans",-apple-system,BlinkMacSystemFont,
    Roboto,Arial,sans-serif;
}

/* ==== P7.1 homepage recomposition (2026-10-10, management approved).
   Second screen story, editorial component gallery (2 big + 4 small),
   materials (1 large + 5 rows), independent quality evidence. The P7
   STAGE D classes stay for rollback. ==== */
.kc-page .kc-p71-story{
  background:linear-gradient(180deg,#13293c 0%,#2c4157 90px,#eef2f4 300px);
  padding:110px 0 84px;
}
.kc-page .kc-p71-sgrid{
  display:grid;grid-template-columns:1.35fr 1fr;gap:56px;align-items:center;
}
.kc-page .kc-p71-simg{
  position:relative;border-radius:6px;overflow:hidden;aspect-ratio:4/3;
  box-shadow:0 14px 34px rgba(11,31,51,.22);
}
.kc-page .kc-p71-simg img{width:100%;height:100%;object-fit:cover;display:block}
.kc-page .kc-p71-tag{
  position:absolute;left:0;bottom:0;padding:40px 18px 12px;width:100%;
  background:linear-gradient(180deg,rgba(11,31,51,0),rgba(11,31,51,.82));
  color:#fff;font-size:12.5px;font-weight:600;letter-spacing:.04em;
}
.kc-page .kc-p71-h2{
  margin:10px 0 0;font-size:clamp(26px,2.5vw,36px);line-height:1.2;
  color:#0f2233;font-weight:600;
}
.kc-page .kc-p71-scp{
  margin:16px 0 0;font-size:15px;line-height:1.75;color:var(--kc-ink-3);
  max-width:430px;
}
.kc-page .kc-p71-slink{
  display:inline-flex;align-items:center;gap:8px;margin-top:26px;
  font-size:14.5px;font-weight:600;color:#2d6ea3;text-decoration:none;
}
.kc-page .kc-p71-slink:hover{text-decoration:underline}
.kc-page .kc-p71-comp{padding:78px 0;background:#fafbfc}
.kc-page .kc-p71-cgrid{display:grid;grid-template-columns:repeat(12,1fr);gap:22px}
.kc-page .kc-p71-card{
  background:#fff;border:1px solid #e9eef2;border-radius:6px;overflow:hidden;
  display:flex;flex-direction:column;box-shadow:0 1px 4px rgba(15,34,51,.04);
  color:inherit;text-decoration:none;
}
.kc-page .kc-p71-cbig{grid-column:span 6}
.kc-page .kc-p71-csm{grid-column:span 3}
.kc-page .kc-p71-ph{overflow:hidden;background:#dce5ea}
.kc-page .kc-p71-cbig .kc-p71-ph{aspect-ratio:3/2}
.kc-page .kc-p71-csm .kc-p71-ph{aspect-ratio:4/3}
.kc-page .kc-p71-ph img{width:100%;height:100%;object-fit:cover;display:block}
.kc-page .kc-p71-cbd{padding:20px 24px 22px}
.kc-page .kc-p71-csm .kc-p71-cbd{padding:14px 16px 16px}
.kc-page .kc-p71-cbd b{font-size:18px;color:#0f2233;font-weight:600}
.kc-page .kc-p71-csm .kc-p71-cbd b{font-size:14.5px}
.kc-page .kc-p71-cbd p{margin:7px 0 0;font-size:13.5px;color:var(--kc-ink-3);line-height:1.6}
.kc-page .kc-p71-lk{
  display:inline-block;margin-top:12px;font-size:13px;color:#2d6ea3;
  font-weight:600;
}
.kc-page .kc-p71-mats{padding:78px 0;background:#fff}
.kc-page .kc-p71-mgrid{
  display:grid;grid-template-columns:1.15fr 1fr;gap:22px;align-items:stretch;
}
.kc-page .kc-p71-mlarge{
  background:#fafbfc;border:1px solid #e9eef2;border-radius:6px;
  overflow:hidden;display:flex;flex-direction:column;color:inherit;
  text-decoration:none;
}
.kc-page .kc-p71-mlarge .kc-p71-ph{aspect-ratio:16/10}
.kc-page .kc-p71-mlarge .kc-p71-cbd{padding:22px 26px 24px}
.kc-page .kc-p71-mlarge .kc-p71-cbd b{font-size:19px}
.kc-page .kc-p71-mlarge .kc-p71-cbd b i{
  font-style:normal;font-weight:500;color:var(--kc-ink-3);font-size:15px;
}
.kc-page .kc-p71-mlarge .kc-p71-cbd p{
  margin:8px 0 0;font-size:14px;color:var(--kc-ink-3);line-height:1.65;
  max-width:420px;
}
.kc-page .kc-p71-mrows{display:flex;flex-direction:column;gap:14px}
.kc-page .kc-p71-mrow{
  display:flex;align-items:center;gap:16px;background:#fafbfc;
  border:1px solid #e9eef2;border-radius:6px;padding:10px 16px 10px 10px;
  flex:1;color:inherit;text-decoration:none;
}
.kc-page .kc-p71-mth{
  flex:0 0 96px;height:72px;border-radius:4px;overflow:hidden;background:#dce5ea;
}
.kc-page .kc-p71-mth img{width:100%;height:100%;object-fit:cover;display:block}
.kc-page .kc-p71-mtx b{font-size:14.5px;color:#0f2233;font-weight:600}
.kc-page .kc-p71-mtx b i{
  font-style:normal;font-weight:500;color:var(--kc-ink-3);font-size:12.5px;
}
.kc-page .kc-p71-mtx span{
  display:block;margin-top:3px;font-size:12.5px;color:var(--kc-ink-3);
  line-height:1.5;
}
.kc-page .kc-p71-arr{margin-left:auto;color:#2d6ea3;font-size:20px}
.kc-page .kc-p71-qual{background:#eef2f4;padding:78px 0 84px}
.kc-page .kc-p71-qgrid{
  display:grid;grid-template-columns:1fr 1.08fr;gap:56px;align-items:center;
}
.kc-page .kc-p71-qimg{
  position:relative;border-radius:6px;overflow:hidden;aspect-ratio:4/3;
  box-shadow:0 14px 34px rgba(11,31,51,.16);
}
.kc-page .kc-p71-qimg img{width:100%;height:100%;object-fit:cover;display:block}
.kc-page .kc-p71-qcp{
  margin:16px 0 0;font-size:15px;line-height:1.75;color:var(--kc-ink-3);
}
.kc-page .kc-p71-stats{
  display:flex;margin-top:46px;background:#0f2233;border-radius:6px;color:#fff;
}
.kc-page .kc-p71-stat{flex:1;padding:26px 30px;border-left:1px solid #2b4258}
.kc-page .kc-p71-stat:first-child{border-left:0}
.kc-page .kc-p71-stat b{display:block;font-size:26px;font-weight:600;color:#fff}
.kc-page .kc-p71-stat span{display:block;margin-top:6px;font-size:12px;color:#9db2c4}
@media (max-width:1240px){
  .kc-page .kc-p71-sgrid,.kc-page .kc-p71-qgrid{gap:40px}
}
@media (max-width:900px){
  .kc-page .kc-p71-story{padding:70px 0 60px}
  .kc-page .kc-p71-sgrid,.kc-page .kc-p71-qgrid{grid-template-columns:1fr}
  .kc-page .kc-p71-cgrid{gap:16px}
  .kc-page .kc-p71-cbig{grid-column:span 12}
  .kc-page .kc-p71-csm{grid-column:span 6}
  .kc-page .kc-p71-mgrid{grid-template-columns:1fr}
  .kc-page .kc-p71-stats{flex-wrap:wrap}
  .kc-page .kc-p71-stat{flex:1 1 40%;border-top:1px solid #2b4258}
  .kc-page .kc-p71-stat:first-child,.kc-page .kc-p71-stat:nth-child(2){border-top:0}
  .kc-page .kc-p71-stat:nth-child(3){border-left:0}
}
@media (max-width:640px){
  .kc-page .kc-p71-srow{margin-bottom:22px}
  .kc-page .kc-p71-story{
    padding:40px 0 34px;
    background:linear-gradient(180deg,#13293c 0%,#2c4157 60px,#eef2f4 170px);
  }
  .kc-page .kc-p71-sgrid{gap:24px}
  .kc-page .kc-p71-scp{margin-top:11px;font-size:14px;line-height:1.65}
  .kc-page .kc-p71-h2{margin-top:8px}
  .kc-page .kc-p71-slink{margin-top:18px}
  .kc-page .kc-p71-comp,.kc-page .kc-p71-mats,.kc-page .kc-p71-qual{padding:48px 0}
  .kc-page .kc-p71-cgrid{gap:12px}
  .kc-page .kc-p71-csm{grid-column:span 6}
  .kc-page .kc-p71-csm .kc-p71-cbd{padding:10px 12px 12px}
  .kc-page .kc-p71-csm .kc-p71-cbd b{font-size:13px;display:block}
  .kc-page .kc-p71-cbig .kc-p71-cbd{padding:14px 16px 16px}
  .kc-page .kc-p71-cbig .kc-p71-cbd b{font-size:16px}
  .kc-page .kc-p71-cbig .kc-p71-cbd p{font-size:13px}
  .kc-page .kc-p71-lk{margin-top:7px;font-size:12px}
  .kc-page .kc-p71-mrow{gap:12px}
  .kc-page .kc-p71-mth{flex:0 0 72px;height:56px}
  .kc-page .kc-p71-stats{flex-wrap:wrap}
  .kc-page .kc-p71-stat{
    flex:1 1 40%;border-left:0;border-top:1px solid #2b4258;padding:15px 16px;
  }
  .kc-page .kc-p71-stat:first-child,.kc-page .kc-p71-stat:nth-child(2){border-top:0}
  .kc-page .kc-p71-stat:nth-child(3){border-left:0}
  .kc-page .kc-p71-stat b{font-size:21px}
  .kc-page .kc-p71-stat span{font-size:10.5px}
}
.kc-page :is(.kc-p71-story,.kc-p71-comp,.kc-p71-mats,.kc-p71-qual){
  font-family:"Segoe UI","IBM Plex Sans",-apple-system,BlinkMacSystemFont,
    Roboto,Arial,sans-serif;
}

/* ==== P8 infographic: seven-step manufacturing process (2026-10-16,
   management command, homepage only). Scoped to .kc-p8x-* so no other
   page is affected. The artwork carries its own heading and white
   background - no extra chrome, no second heading. ==== */
.kc-page .kc-p8x-proc{background:#fff;padding:6px 0 0}
.kc-page .kc-p8x-proc-scroll{width:100%}
.kc-page .kc-p8x-proc picture{display:block}
.kc-page .kc-p8x-proc img{
  width:100%;height:auto;display:block;
}
@media (max-width:900px){
  /* Seven columns cannot stay readable below ~900px: keep a readable
     minimum render width and scroll horizontally. The scroll container
     absorbs the overflow, so the page itself never scrolls sideways. */
  .kc-page .kc-p8x-proc-scroll{
    overflow-x:auto;-webkit-overflow-scrolling:touch;
  }
  .kc-page .kc-p8x-proc img{min-width:900px}
}

/* ==== P7.2 core hubs (2026-10-10, management approved).
   Image-led Components + Materials hubs reusing the approved homepage
   design tokens. Scoped to .kc-p72-* so no existing page is affected. ==== */
.kc-page .kc-p72-hero{
  background:linear-gradient(100deg,#0b1f33 0%,#0f2233 55%,#13293c 100%);
  color:#fff;
}
.kc-page .kc-p72-hgrid{
  display:grid;grid-template-columns:1.05fr 1fr;gap:56px;
  align-items:center;padding:84px 0;
}
.kc-page .kc-p72-hero .kc-eyebrow{color:#9fc4e6}
.kc-page .kc-p72-h1{
  margin:12px 0 0;font-size:clamp(32px,3.4vw,50px);line-height:1.14;
  letter-spacing:-.012em;font-weight:600;color:#fff;
}
.kc-page .kc-p72-ac{color:#9fc4e6}
.kc-page .kc-p72-lead{
  margin:22px 0 0;font-size:15.5px;line-height:1.75;color:#c3cfda;
  max-width:470px;
}
.kc-page .kc-p72-ctas{display:flex;flex-wrap:wrap;gap:14px;margin:32px 0 0}
.kc-page .kc-p72-btn{
  display:inline-flex;align-items:center;white-space:nowrap;
  padding:13px 26px;border-radius:4px;font-size:14px;font-weight:600;
  line-height:1.2;border:1px solid transparent;text-decoration:none;
}
.kc-page .kc-p72-bp{background:#2d6ea3;color:#fff}
.kc-page .kc-p72-bp:hover{background:#3a7fb5}
.kc-page .kc-p72-bg{border-color:#56718a;color:#dce6ef}
.kc-page .kc-p72-bg:hover{background:rgba(255,255,255,.08)}
.kc-page .kc-p72-bw{background:#fff;color:#0f2233}
.kc-page .kc-p72-hmedia{
  border-radius:6px;overflow:hidden;aspect-ratio:4/3;
  box-shadow:0 16px 40px rgba(0,0,0,.35);
}
.kc-page .kc-p72-hmedia img{
  width:100%;height:100%;object-fit:cover;display:block;
}
.kc-page .kc-p72-mosaic{
  display:grid;grid-template-columns:repeat(3,1fr);gap:10px;width:100%;
}
.kc-page .kc-p72-cell{
  border-radius:5px;overflow:hidden;aspect-ratio:1/1;background:#222333;
}
.kc-page .kc-p72-cell img{width:100%;height:100%;object-fit:cover;display:block}
.kc-page .kc-p72-sec{padding:78px 0}
.kc-page .kc-p72-off{background:#fafbfc}
.kc-page .kc-p72-white{background:#fff}
.kc-page .kc-p72-gray{background:#eef2f4}
.kc-page .kc-p72-srow{
  display:flex;justify-content:space-between;align-items:flex-end;gap:30px;
  margin-bottom:34px;
}
.kc-page .kc-p72-srow h2{
  margin:10px 0 0;font-size:clamp(26px,2.4vw,34px);line-height:1.2;
  color:#0f2233;font-weight:600;
}
.kc-page .kc-p72-plead{
  margin:12px 0 0;font-size:15px;color:#5e7385;line-height:1.65;
  max-width:640px;
}
.kc-page .kc-p72-alink{
  color:#2d6ea3;font-size:14px;font-weight:600;white-space:nowrap;
  text-decoration:none;
}
.kc-page .kc-p72-alink:hover{text-decoration:underline}
.kc-page .kc-p72-bgrid{
  display:grid;grid-template-columns:1fr 1fr;gap:22px;
}
.kc-page .kc-p72-bcard,.kc-page .kc-p72-ccard,.kc-page .kc-p72-mcard{
  background:#fff;border:1px solid #e9eef2;border-radius:6px;overflow:hidden;
  display:flex;flex-direction:column;color:inherit;text-decoration:none;
  box-shadow:0 1px 4px rgba(15,34,51,.04);
}
.kc-page .kc-p72-ph{overflow:hidden;background:#dce5ea}
.kc-page .kc-p72-bcard .kc-p72-ph{aspect-ratio:16/9}
.kc-page .kc-p72-ccard .kc-p72-ph{aspect-ratio:4/3}
.kc-page .kc-p72-mcard .kc-p72-ph{aspect-ratio:4/3}
.kc-page .kc-p72-ph img{width:100%;height:100%;object-fit:cover;display:block}
.kc-page .kc-p72-bcard .kc-p72-bd{padding:18px 22px 20px}
.kc-page .kc-p72-bcard .kc-p72-bd b{font-size:17.5px;color:#0f2233;font-weight:600}
.kc-page .kc-p72-bcard .kc-p72-bd p{
  margin:6px 0 0;font-size:13.5px;color:#5e7385;line-height:1.6;
}
.kc-page .kc-p72-lk{
  display:inline-block;margin-top:10px;font-size:13px;color:#2d6ea3;
  font-weight:600;
}
.kc-page .kc-p72-cgrid{
  display:grid;grid-template-columns:repeat(4,1fr);gap:16px;
}
.kc-page .kc-p72-ccard .kc-p72-bd{
  padding:12px 14px 14px;display:flex;flex-direction:column;
}
.kc-page .kc-p72-ccard .kc-p72-bd b{
  font-size:14px;color:#0f2233;font-weight:600;display:block;
}
.kc-page .kc-p72-ccard .kc-p72-lk{margin-top:8px;font-size:12.5px}
.kc-page .kc-p72-cap{
  background:#0f2233;border-radius:6px;color:#fff;display:flex;
  margin-top:30px;
}
.kc-page .kc-p72-cap>div{
  flex:1;padding:24px 28px;border-left:1px solid #2b4258;
}
.kc-page .kc-p72-cap>div:first-child{border-left:0}
.kc-page .kc-p72-cap b{display:block;font-size:24px;font-weight:600}
.kc-page .kc-p72-cap span{display:block;margin-top:5px;font-size:12px;color:#9db2c4}
.kc-page .kc-p72-capq{
  margin:14px 2px 0;font-size:12.5px;color:#5e7385;line-height:1.6;
}
.kc-page .kc-p72-mgrid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:20px;
}
.kc-page .kc-p72-mcard .kc-p72-bd{padding:16px 18px 18px}
.kc-page .kc-p72-mcard .kc-p72-bd b{
  font-size:16.5px;color:#0f2233;font-weight:600;
}
.kc-page .kc-p72-mcard .kc-p72-bd b i{
  font-style:normal;font-weight:500;color:#5e7385;font-size:13px;
}
.kc-page .kc-p72-mcard .kc-p72-bd p{
  margin:6px 0 0;font-size:13px;color:#5e7385;line-height:1.55;
}
.kc-page .kc-p72-rrow{
  display:flex;align-items:center;gap:18px;background:#fff;
  border:1px solid #e9eef2;border-radius:6px;padding:14px 20px;
  margin-bottom:10px;
}
.kc-page .kc-p72-rq{flex:0 0 300px;font-weight:600;color:#0f2233;font-size:14.5px}
.kc-page .kc-p72-rs{color:#5e7385;font-size:13.5px;line-height:1.5}
.kc-page .kc-p72-go{
  margin-left:auto;color:#2d6ea3;font-weight:600;font-size:13px;
  white-space:nowrap;text-decoration:none;
}
.kc-page .kc-p72-go:hover{text-decoration:underline}
.kc-page .kc-p72-rfq{
  background:linear-gradient(100deg,#0b1f33,#0f2233);color:#fff;padding:60px 0;
}
.kc-page .kc-p72-rfqf{display:flex;align-items:center;gap:50px}
.kc-page .kc-p72-rfq h2{
  margin:0;font-size:clamp(23px,2.2vw,30px);font-weight:600;line-height:1.25;
  max-width:520px;color:#fff;
}
.kc-page .kc-p72-rnote{margin:10px 0 0;color:#b9c9d7;font-size:14px;line-height:1.6}
.kc-page .kc-p72-rcta{margin-left:auto;flex-shrink:0}
.kc-page :is(.kc-p72-hero,.kc-p72-sec,.kc-p72-rfq){
  font-family:"Segoe UI","IBM Plex Sans",-apple-system,BlinkMacSystemFont,
    Roboto,Arial,sans-serif;
}
@media (max-width:1240px){
  .kc-page .kc-p72-hgrid{gap:40px}
}
@media (max-width:900px){
  .kc-page .kc-p72-hgrid{grid-template-columns:1fr;padding:56px 0 48px}
  .kc-page .kc-p72-bgrid{gap:16px}
  .kc-page .kc-p72-cgrid{grid-template-columns:repeat(2,1fr)}
  .kc-page .kc-p72-mgrid{grid-template-columns:repeat(2,1fr)}
  .kc-page .kc-p72-srow{flex-direction:column;align-items:flex-start;gap:12px}
  .kc-page .kc-p72-cap{flex-wrap:wrap}
  .kc-page .kc-p72-cap>div{flex:1 1 40%;border-top:1px solid #2b4258}
  .kc-page .kc-p72-cap>div:first-child,.kc-page .kc-p72-cap>div:nth-child(2){border-top:0}
  .kc-page .kc-p72-cap>div:nth-child(3){border-left:0}
  .kc-page .kc-p72-rfqf{flex-direction:column;align-items:flex-start;gap:24px}
  .kc-page .kc-p72-rcta{margin-left:0}
}
@media (max-width:640px){
  .kc-page .kc-p72-hgrid{padding:40px 0 36px;gap:22px}
  .kc-page .kc-p72-h1{font-size:28px}
  .kc-page .kc-p72-lead{font-size:13.5px;margin-top:12px}
  .kc-page .kc-p72-ctas{margin-top:20px;gap:11px}
  .kc-page .kc-p72-btn{padding:12px 20px;font-size:13.5px}
  .kc-page .kc-p72-sec{padding:46px 0}
  .kc-page .kc-p72-srow{margin-bottom:22px}
  .kc-page .kc-p72-bgrid{grid-template-columns:1fr;gap:14px}
  .kc-page .kc-p72-bcard .kc-p72-ph{aspect-ratio:3/2}
  .kc-page .kc-p72-bcard .kc-p72-bd{padding:14px 16px 16px}
  .kc-page .kc-p72-cgrid{gap:11px}
  .kc-page .kc-p72-ccard .kc-p72-bd{padding:10px 11px 12px}
  .kc-page .kc-p72-ccard .kc-p72-bd b{font-size:12.5px}
  .kc-page .kc-p72-ccard .kc-p72-lk{margin-top:6px;font-size:11.5px}
  .kc-page .kc-p72-mgrid{grid-template-columns:1fr;gap:14px}
  .kc-page .kc-p72-rrow{flex-wrap:wrap;gap:8px;padding:12px 14px}
  .kc-page .kc-p72-rq{flex:1 1 100%;font-size:13.5px}
  .kc-page .kc-p72-go{margin-left:0}
  .kc-page .kc-p72-cap>div{flex:1 1 40%;padding:15px 16px}
  .kc-page .kc-p72-cap b{font-size:19px}
  .kc-page .kc-p72-cap span{font-size:10.5px}
  .kc-page .kc-p72-rfq{padding:38px 0}
}


/* ==== P7.3 three hubs (2026-10-10, management approved).
   Manufacturing (kc-p73m-*), Engineering Resources (kc-p73r-*),
   Company/About (kc-p73c-*). Three distinct compositions, one design
   system; buttons reuse the published .kc-p72-* set. Scoped so no other
   page is affected. ==== */

/* ---------------- Manufacturing: full-bleed workshop hero ---------- */
.kc-page .kc-p73m-hero{
  position:relative;min-height:560px;display:flex;align-items:center;
  color:#fff;overflow:hidden;
}
.kc-page .kc-p73m-bgimg{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
}
.kc-page .kc-p73m-ov{
  position:absolute;inset:0;
  background:linear-gradient(92deg,rgba(11,31,51,.92) 0%,rgba(11,31,51,.72) 42%,
    rgba(11,31,51,.18) 78%,rgba(11,31,51,.05) 100%);
}
.kc-page .kc-p73m-hin{
  position:relative;width:100%;padding:90px var(--kc-pad);
}
.kc-page .kc-p73m-hero .kc-eyebrow{color:#9fc4e6}
.kc-page .kc-p73m-h1{
  margin:12px 0 0;font-size:clamp(32px,4vw,52px);line-height:1.12;
  letter-spacing:-.012em;max-width:560px;font-weight:600;color:#fff;
}
.kc-page .kc-p73m-lead{
  margin:20px 0 0;font-size:15.5px;line-height:1.75;color:#c3cfda;
  max-width:480px;
}
.kc-page .kc-p73m-ctas{display:flex;gap:14px;margin:32px 0 0;flex-wrap:wrap}
.kc-page .kc-p73m-cred{
  position:absolute;right:18px;bottom:14px;color:rgba(255,255,255,.75);
  font-size:11px;letter-spacing:.04em;z-index:1;
}
/* six-stage timeline */
.kc-page .kc-p73m-sec{padding:78px 0}
.kc-page .kc-p73m-off{background:#fafbfc}
.kc-page .kc-p73m-white{background:#fff}
.kc-page .kc-p73m-gray{background:#eef2f4}
.kc-page .kc-p73m-srow{margin-bottom:36px}
.kc-page .kc-p73m-srow h2{
  margin:10px 0 0;font-size:clamp(25px,2.4vw,33px);color:#0f2233;
  font-weight:600;line-height:1.2;
}
.kc-page .kc-p73m-plead{
  margin:12px 0 0;font-size:15px;color:#5e7385;line-height:1.65;
  max-width:660px;
}
.kc-page .kc-p73m-tl{
  display:grid;grid-template-columns:repeat(6,1fr);gap:0;position:relative;
}
.kc-page .kc-p73m-tl:before{
  content:"";position:absolute;top:15px;left:6%;right:6%;height:2px;
  background:linear-gradient(90deg,#2d6ea3,#9fc4e6);
}
.kc-page .kc-p73m-st{padding:0 12px;text-align:left;position:relative}
.kc-page .kc-p73m-dot{
  width:32px;height:32px;border-radius:50%;background:#0f2233;color:#fff;
  display:flex;align-items:center;justify-content:center;font-size:12.5px;
  font-weight:700;margin-bottom:16px;position:relative;z-index:1;
  border:3px solid #eef2f4;
}
.kc-page .kc-p73m-st b{display:block;font-size:14.5px;color:#0f2233}
.kc-page .kc-p73m-st span{
  display:block;margin-top:6px;font-size:12.5px;color:#5e7385;line-height:1.55;
}
.kc-page .kc-p73m-tlq{
  margin:26px 0 0;font-size:12.5px;color:#5e7385;line-height:1.6;
  border-left:3px solid #c5d2dc;padding-left:14px;max-width:760px;
}
/* asymmetric capability grid */
.kc-page .kc-p73m-cgrid{
  display:grid;grid-template-columns:1.35fr 1fr;grid-template-rows:auto auto;
  gap:20px;
}
.kc-page .kc-p73m-cap{
  position:relative;border-radius:6px;overflow:hidden;display:block;
  text-decoration:none;background:#0b1f33;color:#fff;min-height:100%;
}
.kc-page .kc-p73m-cap img{
  width:100%;height:100%;object-fit:cover;display:block;position:absolute;
  inset:0;
}
.kc-page .kc-p73m-cv{
  position:relative;z-index:1;padding:24px 26px;display:flex;
  flex-direction:column;justify-content:flex-end;min-height:100%;
  background:linear-gradient(180deg,rgba(11,31,51,0) 30%,rgba(11,31,51,.86) 100%);
}
.kc-page .kc-p73m-cap b{font-size:19px;font-weight:600;color:#fff}
.kc-page .kc-p73m-cap span{
  margin-top:5px;font-size:13px;color:#c3cfda;line-height:1.5;
}
.kc-page .kc-p73m-go{
  margin-top:10px;font-size:12.5px;font-weight:600;color:#9fc4e6;
}
.kc-page .kc-p73m-f1{grid-row:span 2;min-height:520px}
.kc-page .kc-p73m-f2{min-height:250px}
.kc-page .kc-p73m-crow{
  display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:20px 0 0;
}
.kc-page .kc-p73m-cc{
  background:#fff;border:1px solid #e9eef2;border-radius:6px;
  padding:18px 20px;text-decoration:none;display:flex;flex-direction:column;
  min-height:128px;
}
.kc-page .kc-p73m-cc b{font-size:14.5px;color:#0f2233;font-weight:600}
.kc-page .kc-p73m-cc span{
  margin-top:6px;font-size:12.5px;color:#5e7385;line-height:1.5;flex:1;
}
.kc-page .kc-p73m-cc .kc-p73m-go{color:#2d6ea3}
/* inspection preview */
.kc-page .kc-p73m-qwrap{
  display:grid;grid-template-columns:1fr 1.05fr;gap:52px;align-items:center;
}
.kc-page .kc-p73m-qimg{
  border-radius:6px;overflow:hidden;aspect-ratio:4/3;
  box-shadow:0 14px 34px rgba(11,31,51,.16);
}
.kc-page .kc-p73m-qimg img{width:100%;height:100%;object-fit:cover;display:block}
.kc-page .kc-p73m-qtxt h2{
  margin:10px 0 0;font-size:clamp(24px,2.2vw,31px);color:#0f2233;
  font-weight:600;line-height:1.22;
}
.kc-page .kc-p73m-qtxt .kc-p73m-plead{max-width:460px}
.kc-page .kc-p73m-qstats{
  display:flex;margin:28px 0 0;background:#0f2233;border-radius:6px;
  color:#fff;
}
.kc-page .kc-p73m-qstats>div{
  flex:1;padding:20px 24px;border-left:1px solid #2b4258;
}
.kc-page .kc-p73m-qstats>div:first-child{border-left:0}
.kc-page .kc-p73m-qstats b{display:block;font-size:23px;font-weight:600}
.kc-page .kc-p73m-qstats span{
  display:block;margin-top:4px;font-size:11.5px;color:#9db2c4;
}
.kc-page .kc-p73m-qcap{
  margin:12px 0 0;font-size:12px;color:#5e7385;line-height:1.6;
}
.kc-page .kc-p73m-qlinks{display:flex;gap:24px;margin:22px 0 0;flex-wrap:wrap}
.kc-page .kc-p73m-qlinks a{
  font-size:14px;font-weight:600;color:#2d6ea3;text-decoration:none;
}
.kc-page .kc-p73m-qlinks a:hover{text-decoration:underline}
.kc-page .kc-p73m-rfq{
  background:linear-gradient(100deg,#0b1f33,#0f2233);color:#fff;padding:60px 0;
}
.kc-page .kc-p73m-rfqf{display:flex;align-items:center;gap:50px}
.kc-page .kc-p73m-rfq h2{
  margin:0;font-size:clamp(23px,2.2vw,30px);font-weight:600;line-height:1.25;
  max-width:520px;color:#fff;
}
.kc-page .kc-p73m-rnote{margin:10px 0 0;color:#b9c9d7;font-size:14px;line-height:1.6}
.kc-page .kc-p73m-rcta{margin-left:auto;flex-shrink:0}
.kc-page :is(.kc-p73m-hero,.kc-p73m-sec,.kc-p73m-rfq){
  font-family:"Segoe UI","IBM Plex Sans",-apple-system,BlinkMacSystemFont,
    Roboto,Arial,sans-serif;
}
@media (max-width:1240px){
  .kc-page .kc-p73m-qwrap{gap:40px}
}
@media (max-width:1024px){
  .kc-page .kc-p73m-tl{grid-template-columns:repeat(3,1fr);gap:26px 0}
  .kc-page .kc-p73m-tl:before{display:none}
  .kc-page .kc-p73m-crow{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:900px){
  .kc-page .kc-p73m-qwrap{grid-template-columns:1fr;gap:34px}
}
@media (max-width:640px){
  .kc-page .kc-p73m-hero{min-height:480px}
  .kc-page .kc-p73m-hin{padding:64px var(--kc-pad)}
  .kc-page .kc-p73m-h1{font-size:29px}
  .kc-page .kc-p73m-lead{font-size:13.5px;margin-top:13px}
  .kc-page .kc-p73m-ctas{margin-top:22px;gap:11px}
  .kc-page .kc-p72-btn{padding:12px 20px;font-size:13.5px}
  .kc-page .kc-p73m-sec{padding:46px 0}
  .kc-page .kc-p73m-srow{margin-bottom:22px}
  .kc-page .kc-p73m-tl{grid-template-columns:repeat(2,1fr);gap:20px 14px}
  .kc-page .kc-p73m-st{padding:0 4px}
  .kc-page .kc-p73m-cgrid{grid-template-columns:1fr}
  .kc-page .kc-p73m-f1{grid-row:auto;min-height:300px}
  .kc-page .kc-p73m-f2{min-height:220px}
  .kc-page .kc-p73m-crow{grid-template-columns:1fr 1fr;gap:11px}
  .kc-page .kc-p73m-cc{padding:13px 14px;min-height:112px}
  .kc-page .kc-p73m-cc b{font-size:13px}
  .kc-page .kc-p73m-cc span{font-size:12px}
  .kc-page .kc-p73m-qstats{flex-wrap:wrap}
  .kc-page .kc-p73m-qstats>div{flex:1 1 40%;border-top:1px solid #2b4258;padding:14px 16px}
  .kc-page .kc-p73m-qstats>div:first-child,
  .kc-page .kc-p73m-qstats>div:nth-child(2){border-top:0}
  .kc-page .kc-p73m-qstats>div:nth-child(3){border-left:0}
  .kc-page .kc-p73m-rfq{padding:38px 0}
  .kc-page .kc-p73m-rfqf{flex-direction:column;align-items:flex-start;gap:22px}
  .kc-page .kc-p73m-rcta{margin-left:0}
}

/* ---------------- Resources: light editorial hero ------------------ */
.kc-page .kc-p73r-ehero{background:#fff;border-bottom:1px solid #e9eef2}
.kc-page .kc-p73r-hin{
  max-width:var(--kc-wrap);margin:0 auto;padding:64px var(--kc-pad) 0;
  display:grid;grid-template-columns:1.1fr .9fr;gap:48px;align-items:end;
}
.kc-page .kc-p73r-ehero h1{
  margin:12px 0 0;font-size:clamp(30px,3.2vw,44px);line-height:1.16;
  color:#0f2233;font-weight:600;letter-spacing:-.01em;
}
.kc-page .kc-p73r-lead{
  margin:16px 0 0;font-size:15.5px;line-height:1.75;color:#5e7385;
  max-width:480px;
}
.kc-page .kc-p73r-ctas{margin:26px 0 48px}
.kc-page .kc-p73r-ph{
  border-radius:8px 8px 0 0;overflow:hidden;height:300px;
  box-shadow:0 -14px 40px rgba(11,31,51,.10);
}
.kc-page .kc-p73r-ph img{width:100%;height:100%;object-fit:cover;display:block}
.kc-page .kc-p73r-sec{padding:70px 0}
.kc-page .kc-p73r-off{background:#fafbfc}
.kc-page .kc-p73r-white{background:#fff}
.kc-page .kc-p73r-srow{margin-bottom:32px}
.kc-page .kc-p73r-srow h2{
  margin:10px 0 0;font-size:clamp(24px,2.3vw,32px);color:#0f2233;
  font-weight:600;line-height:1.2;
}
.kc-page .kc-p73r-plead{
  margin:12px 0 0;font-size:15px;color:#5e7385;line-height:1.65;
  max-width:640px;
}
/* featured guide */
.kc-page .kc-p73r-feat{
  display:grid;grid-template-columns:1.15fr 1fr;background:#fff;
  border:1px solid #e9eef2;border-radius:8px;overflow:hidden;
}
.kc-page .kc-p73r-featph{min-height:320px;position:relative;background:#dce5ea}
.kc-page .kc-p73r-featph img{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  display:block;
}
.kc-page .kc-p73r-featbd{
  padding:38px 42px;display:flex;flex-direction:column;justify-content:center;
}
.kc-page .kc-p73r-tag{
  font-size:11.5px;font-weight:700;letter-spacing:.16em;color:#2d6ea3;
  text-transform:uppercase;
}
.kc-page .kc-p73r-featbd h3{
  margin:12px 0 0;font-size:clamp(21px,2vw,27px);line-height:1.25;
  color:#0f2233;font-weight:600;
}
.kc-page .kc-p73r-featbd p{
  margin:12px 0 0;font-size:14.5px;color:#5e7385;line-height:1.7;
}
.kc-page .kc-p73r-fgo{
  margin-top:20px;font-size:14px;font-weight:600;color:#2d6ea3;
  text-decoration:none;
}
.kc-page .kc-p73r-fgo:hover{text-decoration:underline}
/* category groups */
.kc-page .kc-p73r-cgrp{
  margin:0 0 26px;background:#fff;border:1px solid #e9eef2;
  border-radius:8px;overflow:hidden;
}
.kc-page .kc-p73r-chead{
  display:flex;align-items:baseline;gap:14px;padding:18px 26px;
  border-bottom:1px solid #eef2f4;background:#fafbfc;
}
.kc-page .kc-p73r-num{
  font-size:12px;font-weight:700;color:#9fc4e6;letter-spacing:.1em;
}
.kc-page .kc-p73r-chead h3{margin:0;font-size:17px;color:#0f2233;font-weight:600}
.kc-page .kc-p73r-chead .kc-p73r-cnt{margin-left:auto;font-size:12px;color:#5e7385}
.kc-page .kc-p73r-glist{display:grid;grid-template-columns:1fr 1fr}
.kc-page .kc-p73r-gitem{
  display:block;padding:18px 26px;text-decoration:none;
  border-bottom:1px solid #f1f5f8;
}
.kc-page .kc-p73r-gitem:nth-child(odd){border-right:1px solid #f1f5f8}
.kc-page .kc-p73r-gitem:hover{background:#fafbfc}
.kc-page .kc-p73r-gitem b{
  display:block;font-size:14.5px;color:#0f2233;font-weight:600;
}
.kc-page .kc-p73r-gitem span{
  display:block;margin-top:4px;font-size:12.5px;color:#5e7385;line-height:1.55;
}
.kc-page .kc-p73r-last .kc-p73r-gitem{border-bottom:0}
/* compact index */
.kc-page .kc-p73r-idx{
  background:#0f2233;border-radius:8px;padding:34px 38px;color:#fff;
}
.kc-page .kc-p73r-idx h3{margin:0;font-size:18px;font-weight:600}
.kc-page .kc-p73r-idxnote{
  margin:10px 0 0;font-size:12.5px;color:#9db2c4;line-height:1.65;
  max-width:860px;
}
.kc-page .kc-p73r-ilist{
  display:grid;grid-template-columns:1fr 1fr 1fr;gap:0 34px;margin:18px 0 0;
}
.kc-page .kc-p73r-ilist a{
  display:block;padding:8px 0;font-size:13px;color:#c3cfda;
  text-decoration:none;border-bottom:1px solid #24384c;
}
.kc-page .kc-p73r-ilist a:hover{color:#fff}
.kc-page .kc-p73r-rfq{
  background:linear-gradient(100deg,#0b1f33,#0f2233);color:#fff;padding:58px 0;
}
.kc-page .kc-p73r-rfqf{display:flex;align-items:center;gap:50px}
.kc-page .kc-p73r-rfq h2{
  margin:0;font-size:clamp(23px,2.2vw,30px);font-weight:600;line-height:1.25;
  max-width:560px;color:#fff;
}
.kc-page .kc-p73r-rnote{margin:10px 0 0;color:#b9c9d7;font-size:14px;line-height:1.6}
.kc-page .kc-p73r-rcta{margin-left:auto;flex-shrink:0}
.kc-page :is(.kc-p73r-ehero,.kc-p73r-sec,.kc-p73r-rfq){
  font-family:"Segoe UI","IBM Plex Sans",-apple-system,BlinkMacSystemFont,
    Roboto,Arial,sans-serif;
}
@media (max-width:1024px){
  .kc-page .kc-p73r-glist{grid-template-columns:1fr}
  .kc-page .kc-p73r-gitem:nth-child(odd){border-right:0}
  .kc-page .kc-p73r-ilist{grid-template-columns:1fr 1fr}
  .kc-page .kc-p73r-hin{gap:30px}
}
@media (max-width:640px){
  .kc-page .kc-p73r-hin{grid-template-columns:1fr;padding:44px var(--kc-pad) 0}
  .kc-page .kc-p73r-ehero h1{font-size:27px}
  .kc-page .kc-p73r-lead{font-size:13.5px;margin-top:11px}
  .kc-page .kc-p73r-ctas{margin:20px 0 30px}
  .kc-page .kc-p73r-ph{height:210px}
  .kc-page .kc-p73r-sec{padding:44px 0}
  .kc-page .kc-p73r-feat{grid-template-columns:1fr}
  .kc-page .kc-p73r-featph{min-height:200px}
  .kc-page .kc-p73r-featbd{padding:22px 20px 26px}
  .kc-page .kc-p73r-chead{padding:14px 18px;flex-wrap:wrap;gap:8px}
  .kc-page .kc-p73r-gitem{padding:14px 18px}
  .kc-page .kc-p73r-idx{padding:24px 20px}
  .kc-page .kc-p73r-ilist{grid-template-columns:1fr}
  .kc-page .kc-p73r-rfq{padding:38px 0}
  .kc-page .kc-p73r-rfqf{flex-direction:column;align-items:flex-start;gap:22px}
  .kc-page .kc-p73r-rcta{margin-left:0}
}

/* ---------------- Company: documentary hero ------------------------ */
.kc-page .kc-p73c-hero{
  position:relative;min-height:540px;display:flex;align-items:flex-end;
  color:#fff;overflow:hidden;
}
.kc-page .kc-p73c-bgimg{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
}
.kc-page .kc-p73c-ov{
  position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(11,31,51,.25) 0%,rgba(11,31,51,.55) 55%,
    rgba(11,31,51,.92) 100%);
}
.kc-page .kc-p73c-hin{
  position:relative;width:100%;padding:0 var(--kc-pad) 56px;
}
.kc-page .kc-p73c-hero .kc-eyebrow{color:#9fc4e6}
.kc-page .kc-p73c-h1{
  margin:12px 0 0;font-size:clamp(31px,3.6vw,48px);font-weight:600;
  letter-spacing:-.012em;line-height:1.14;max-width:620px;color:#fff;
}
.kc-page .kc-p73c-lead{
  margin:16px 0 0;font-size:15.5px;line-height:1.7;color:#c3cfda;
  max-width:560px;
}
.kc-page .kc-p73c-cred{
  position:absolute;right:18px;bottom:14px;color:rgba(255,255,255,.75);
  font-size:11px;letter-spacing:.04em;z-index:1;
}
.kc-page .kc-p73c-sec{padding:74px 0}
.kc-page .kc-p73c-off{background:#fafbfc}
.kc-page .kc-p73c-white{background:#fff}
.kc-page .kc-p73c-srow{margin-bottom:32px}
.kc-page .kc-p73c-srow h2{
  margin:10px 0 0;font-size:clamp(24px,2.3vw,32px);color:#0f2233;
  font-weight:600;line-height:1.2;
}
.kc-page .kc-p73c-plead{
  margin:12px 0 0;font-size:15px;color:#5e7385;line-height:1.65;
  max-width:660px;
}
/* operation photo composition */
.kc-page .kc-p73c-opgrid{
  display:grid;grid-template-columns:1.25fr 1fr;gap:18px;
}
.kc-page .kc-p73c-opp{
  border-radius:6px;overflow:hidden;position:relative;min-height:300px;
  background:#dce5ea;
}
.kc-page .kc-p73c-opp img{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  display:block;
}
.kc-page .kc-p73c-side{display:grid;grid-template-rows:1fr 1fr;gap:18px}
.kc-page .kc-p73c-side .kc-p73c-opp{min-height:140px}
.kc-page .kc-p73c-optxt{
  display:grid;grid-template-columns:1fr 1fr;gap:44px;margin:34px 0 0;
}
.kc-page .kc-p73c-optxt h3{margin:0;font-size:17px;color:#0f2233;font-weight:600}
.kc-page .kc-p73c-optxt p{margin:10px 0 0;font-size:14px;color:#5e7385;line-height:1.7}
/* four-step evidence flow */
.kc-page .kc-p73c-flow{
  display:grid;grid-template-columns:repeat(4,1fr);gap:0;background:#fff;
  border:1px solid #e9eef2;border-radius:8px;overflow:hidden;
}
.kc-page .kc-p73c-fs{
  padding:26px 26px 30px;border-left:1px solid #eef2f4;position:relative;
}
.kc-page .kc-p73c-fs:first-child{border-left:0}
.kc-page .kc-p73c-fnum{
  font-size:12px;font-weight:700;color:#2d6ea3;letter-spacing:.12em;
}
.kc-page .kc-p73c-fs b{
  display:block;margin-top:10px;font-size:16px;color:#0f2233;font-weight:600;
}
.kc-page .kc-p73c-fs p{margin:8px 0 0;font-size:13px;color:#5e7385;line-height:1.6}
.kc-page .kc-p73c-fimg{
  margin-top:16px;border-radius:4px;overflow:hidden;aspect-ratio:16/10;
  background:#dce5ea;
}
.kc-page .kc-p73c-fimg img{width:100%;height:100%;object-fit:cover;display:block}
/* documentation panel */
.kc-page .kc-p73c-docgrid{
  display:grid;grid-template-columns:1.05fr 1fr;gap:52px;align-items:center;
}
.kc-page .kc-p73c-docp{
  border-radius:6px;overflow:hidden;aspect-ratio:4/3;background:#dce5ea;
  box-shadow:0 14px 34px rgba(11,31,51,.14);
}
.kc-page .kc-p73c-docp img{width:100%;height:100%;object-fit:cover;display:block}
.kc-page .kc-p73c-doch{
  margin:10px 0 0;font-size:clamp(23px,2.2vw,30px);color:#0f2233;
  font-weight:600;line-height:1.22;
}
.kc-page .kc-p73c-dl{
  margin:20px 0 0;display:flex;flex-direction:column;gap:12px;
}
.kc-page .kc-p73c-di{
  display:flex;gap:14px;align-items:flex-start;background:#fff;
  border:1px solid #e9eef2;border-radius:6px;padding:14px 18px;
}
.kc-page .kc-p73c-mk{
  flex-shrink:0;width:22px;height:22px;border-radius:50%;background:#eaf2f8;
  color:#2d6ea3;font-size:12px;font-weight:700;display:flex;align-items:center;
  justify-content:center;margin-top:1px;
}
.kc-page .kc-p73c-di b{font-size:14px;color:#0f2233;font-weight:600}
.kc-page .kc-p73c-di span{
  display:block;margin-top:2px;font-size:12.5px;color:#5e7385;line-height:1.55;
}
/* business info */
.kc-page .kc-p73c-biz{
  background:#fff;border:1px solid #e9eef2;border-radius:8px;
  display:grid;grid-template-columns:1fr 1fr;overflow:hidden;
}
.kc-page .kc-p73c-biz>div{padding:32px 38px}
.kc-page .kc-p73c-biz>div:first-child{border-right:1px solid #eef2f4}
.kc-page .kc-p73c-biz h3{
  margin:0 0 14px;font-size:16px;color:#0f2233;font-weight:600;
}
.kc-page .kc-p73c-kv{
  display:flex;gap:10px;font-size:14px;color:#3a4a58;padding:7px 0;
  border-bottom:1px solid #f1f5f8;
}
.kc-page .kc-p73c-kv:last-child{border-bottom:0}
.kc-page .kc-p73c-kv b{
  flex:0 0 120px;font-weight:600;color:#0f2233;font-size:13px;
}
.kc-page .kc-p73c-biz a{
  color:#2d6ea3;text-decoration:none;font-weight:600;
}
.kc-page .kc-p73c-biz a:hover{text-decoration:underline}
.kc-page .kc-p73c-blks{display:flex;flex-wrap:wrap;gap:12px}
.kc-page .kc-p73c-blks a{
  font-size:13.5px;border:1px solid #c5d2dc;border-radius:4px;
  padding:9px 16px;text-decoration:none;color:#0f2233;font-weight:500;
}
.kc-page .kc-p73c-blks a:hover{border-color:#2d6ea3;color:#2d6ea3}
.kc-page .kc-p73c-rfq{
  background:linear-gradient(100deg,#0b1f33,#0f2233);color:#fff;padding:58px 0;
}
.kc-page .kc-p73c-rfqf{display:flex;align-items:center;gap:50px}
.kc-page .kc-p73c-rfq h2{
  margin:0;font-size:clamp(23px,2.2vw,30px);font-weight:600;line-height:1.25;
  max-width:560px;color:#fff;
}
.kc-page .kc-p73c-rnote{margin:10px 0 0;color:#b9c9d7;font-size:14px;line-height:1.6}
.kc-page .kc-p73c-rcta{margin-left:auto;flex-shrink:0}
.kc-page :is(.kc-p73c-hero,.kc-p73c-sec,.kc-p73c-rfq){
  font-family:"Segoe UI","IBM Plex Sans",-apple-system,BlinkMacSystemFont,
    Roboto,Arial,sans-serif;
}
@media (max-width:1024px){
  .kc-page .kc-p73c-flow{grid-template-columns:1fr 1fr}
  .kc-page .kc-p73c-fs{border-top:1px solid #eef2f4}
  .kc-page .kc-p73c-fs:nth-child(-n+2){border-top:0}
  .kc-page .kc-p73c-fs:nth-child(3){border-left:0}
  .kc-page .kc-p73c-biz{grid-template-columns:1fr}
  .kc-page .kc-p73c-biz>div:first-child{
    border-right:0;border-bottom:1px solid #eef2f4;
  }
}
@media (max-width:640px){
  .kc-page .kc-p73c-hero{min-height:440px}
  .kc-page .kc-p73c-hin{padding:0 var(--kc-pad) 40px}
  .kc-page .kc-p73c-h1{font-size:27px}
  .kc-page .kc-p73c-lead{font-size:13.5px;margin-top:11px}
  .kc-page .kc-p73c-sec{padding:44px 0}
  .kc-page .kc-p73c-srow{margin-bottom:22px}
  .kc-page .kc-p73c-opgrid{grid-template-columns:1fr}
  .kc-page .kc-p73c-side{grid-template-rows:none;grid-template-columns:1fr 1fr}
  .kc-page .kc-p73c-side .kc-p73c-opp{min-height:110px}
  .kc-page .kc-p73c-optxt{grid-template-columns:1fr;gap:22px;margin-top:24px}
  .kc-page .kc-p73c-flow{grid-template-columns:1fr}
  .kc-page .kc-p73c-fs{border-left:0;border-top:1px solid #eef2f4}
  .kc-page .kc-p73c-fs:first-child{border-top:0}
  .kc-page .kc-p73c-docgrid{grid-template-columns:1fr;gap:26px}
  .kc-page .kc-p73c-biz>div{padding:22px 20px}
  .kc-page .kc-p73c-rfq{padding:38px 0}
  .kc-page .kc-p73c-rfqf{flex-direction:column;align-items:flex-start;gap:22px}
  .kc-page .kc-p73c-rcta{margin-left:0}
}
/* ============================================================
   P7.4 production global header (management-approved prototype)

   Every rule is scoped under .kc-page so it outranks the site-wide
   content-link rules (.kc-page a, the old dark-header logo rules)
   without touching anything outside the new header.
   ============================================================ */
.kc-page:has(.kc-nav.kc-p74){--kc-barh:84px}
html.kc74-scrolled .kc-page:has(.kc-nav.kc-p74){--kc-barh:64px}
@media (max-width:1280px){
  .kc-page:has(.kc-nav.kc-p74){--kc-barh:62px}
}
.kc-page:has(.kc-nav.kc-p74) [id]{scroll-margin-top:calc(var(--kc-barh) + 18px)}
.kc-page:has(.kc-nav.kc-p74):has(.kc-pn) [id]{scroll-margin-top:calc(var(--kc-barh) + 66px)}

.kc-page .kc-nav.kc-p74{position:sticky;top:0;z-index:70}
.admin-bar .kc-page .kc-nav.kc-p74{top:32px}
@media (max-width:782px){.admin-bar .kc-page .kc-nav.kc-p74{top:46px}}
@media (max-width:600px){.admin-bar .kc-page .kc-nav.kc-p74{top:0}}

.kc-page .kc-p74{font-size:16px;background:#fff;
 font-family:"Segoe UI","IBM Plex Sans",-apple-system,"Helvetica Neue",
 Arial,sans-serif}
.kc-page .kc-p74 *,.kc-page .kc-p74 *::before,
.kc-page .kc-p74 *::after{box-sizing:border-box}
.kc-page .kc-p74-bar{background:#fff;border-bottom:1px solid #E3E9F0}
.kc-page .kc-p74-in{display:flex;align-items:center;gap:18px;height:84px;
 max-width:1240px;margin:0 auto;padding:0 16px}
.kc-page .kc-p74--scrolled .kc-p74-in{height:64px}
.kc-page .kc-p74--scrolled .kc-logo-s{display:none}
/* the old header was dark, so the shared logo rules paint the wordmark
   white - restore brand colors inside the white bar */
.kc-page .kc-p74 .kc-logo-t{color:#0F2233}
.kc-page .kc-p74 .kc-logo-s{color:#7E93A6}

.kc-page .kc-p74-nav{display:flex;align-items:center;gap:4px;flex:1 1 auto;
 justify-content:center;min-width:0}
.kc-page .kc-p74-mi{position:static;display:flex;align-items:center}
.kc-page .kc-p74-mia{display:flex;align-items:center;padding:30px 10px;
 font-size:15px;font-weight:500;color:#22303C;text-decoration:none;
 position:relative;white-space:nowrap}
.kc-page .kc-p74--scrolled .kc-p74-mia{padding:22px 10px}
.kc-page .kc-p74-mib{display:flex;align-items:center;justify-content:center;
 width:13px;height:84px;background:none;border:0;cursor:pointer;
 padding:0;color:#8A9BA8}
.kc-page .kc-p74--scrolled .kc-p74-mib{height:64px}
.kc-page .kc-p74-crt{width:7px;height:7px;border-right:1.8px solid currentColor;
 border-bottom:1.8px solid currentColor;transform:rotate(45deg);
 transition:transform .18s ease}
.kc-page .kc-p74-mia:hover,.kc-page .kc-p74-mia:focus-visible,
.kc-page .kc-p74-mib:hover,.kc-page .kc-p74-mib:focus-visible,
.kc-page .kc-p74-mi.on .kc-p74-mia,.kc-page .kc-p74-mi.on .kc-p74-mib,
.kc-page .kc-p74-mi[data-current] .kc-p74-mia{color:#2D6EA3;
 text-decoration:none}
.kc-page .kc-p74-mi.on .kc-p74-crt{transform:rotate(225deg)}
.kc-page .kc-p74-mia::after{content:"";position:absolute;left:13px;
 right:13px;bottom:0;height:2px;background:#2D6EA3;border-radius:2px;
 transform:scaleX(0);transition:transform .18s ease;transform-origin:center}
.kc-page .kc-p74-mia:hover::after,.kc-page .kc-p74-mia:focus-visible::after,
.kc-page .kc-p74-mi.on .kc-p74-mia::after,
.kc-page .kc-p74-mi[data-current] .kc-p74-mia::after{transform:scaleX(1)}

.kc-page .kc-p74-right{display:flex;align-items:center;gap:18px;
 flex:0 0 auto}
.kc-page .kc-p74-lang{display:flex;align-items:center;gap:7px;
 font-size:13.5px;font-weight:500;color:#5A6B7A;letter-spacing:.02em;
 white-space:nowrap;text-decoration:none}
.kc-page .kc-p74-cta{display:inline-flex;align-items:center;
 justify-content:center;background:#2D6EA3;color:#fff;font-size:14.5px;
 font-weight:600;letter-spacing:.01em;text-decoration:none;
 padding:12px 24px;border-radius:6px;transition:background .15s ease;
 white-space:nowrap}
.kc-page .kc-p74-cta:hover{background:#25618C;color:#fff;
 text-decoration:none}
.kc-page .kc-p74-cta:focus-visible{outline:2px solid #0F2233;
 outline-offset:2px;text-decoration:none}

.kc-page .kc-p74-panel{display:none;position:absolute;top:100%;left:0;
 right:0;background:#fff;border-bottom:1px solid #E3E9F0;
 border-top:2px solid #2D6EA3;
 box-shadow:0 24px 48px -20px rgba(15,34,51,.28);
 padding:26px 0;z-index:80}
.kc-page .kc-p74-mi.on .kc-p74-panel{display:block}
.kc-page .kc-p74-pin{display:flex;gap:30px;max-width:1240px;margin:0 auto;
 padding:0 24px;align-items:flex-start}
.kc-page .kc-p74-pintro{flex:0 0 218px;border-right:1px solid #EEF2F4;
 padding-right:26px}
.kc-page .kc-p74-peb{font-size:11px;font-weight:700;letter-spacing:.14em;
 text-transform:uppercase;color:#2D6EA3;margin-bottom:8px}
.kc-page .kc-p74-pd{font-size:13.5px;line-height:1.5;color:#5A6B7A;
 margin-bottom:16px}
.kc-page .kc-p74-pall{display:inline-flex;align-items:center;gap:6px;
 font-size:14px;font-weight:600;color:#0F2233;text-decoration:none;
 border-bottom:2px solid #2D6EA3;padding-bottom:3px}
.kc-page .kc-p74-pall:hover,.kc-page .kc-p74-pall:focus-visible{
 color:#2D6EA3;text-decoration:none}
.kc-page .kc-p74-plinks{display:flex;gap:34px;flex:1 1 auto;min-width:0}
.kc-page .kc-p74-pcol{min-width:198px}
.kc-page .kc-p74-pcol a{display:block;font-size:14.5px;font-weight:500;
 color:#22303C;text-decoration:none;padding:7px 0}
.kc-page .kc-p74-pcol a:hover,.kc-page .kc-p74-pcol a:focus-visible{
 color:#2D6EA3;text-decoration:none}
.kc-page .kc-p74-pct{font-size:11px;font-weight:700;letter-spacing:.12em;
 text-transform:uppercase;color:#7E93A6;margin-bottom:6px}
.kc-page .kc-p74-pph{flex:0 0 232px}
.kc-page .kc-p74-pph img{width:232px;height:158px;object-fit:cover;
 border-radius:8px;display:block}

.kc-page .kc-p74-burger{display:none;flex-direction:column;gap:5px;
 width:44px;height:44px;align-items:center;justify-content:center;
 background:none;border:0;cursor:pointer;padding:0}
.kc-page .kc-p74-burger i{width:21px;height:2px;background:#0F2233;
 border-radius:2px}
.kc-page .kc-p74-scrim{display:none;position:fixed;inset:0;
 background:rgba(11,31,51,.52);z-index:9970}
.kc-page .kc-p74-drawer{display:none;position:fixed;top:0;right:0;bottom:0;
 width:322px;max-width:88vw;background:#fff;z-index:9971;
 overflow-y:auto;padding:18px 20px 26px;
 box-shadow:-18px 0 40px -22px rgba(15,34,51,.4)}
.kc-page .kc-p74--drawer .kc-p74-scrim{display:block}
.kc-page .kc-p74--drawer .kc-p74-drawer{display:block}
.kc-page .kc-p74-dtop{display:flex;align-items:center;
 justify-content:space-between;margin-bottom:16px}
.kc-page .kc-p74-dlang{display:flex;align-items:center;gap:7px;
 font-size:13px;color:#5A6B7A;text-decoration:none}
.kc-page .kc-p74-dclose{width:40px;height:40px;border:1px solid #E3E9F0;
 border-radius:6px;background:#fff;color:#0F2233;font-size:15px;
 cursor:pointer}
.kc-page .kc-p74-cta-full{width:100%;margin-bottom:18px}
.kc-page .kc-p74-dgrp{border-bottom:1px solid #EEF2F4}
.kc-page .kc-p74-drow{display:flex;align-items:center;
 justify-content:space-between}
.kc-page .kc-p74-dhub{flex:1 1 auto;display:block;padding:14px 0;
 font-size:15.5px;font-weight:600;color:#0F2233;text-decoration:none}
.kc-page .kc-p74-dhub:hover,.kc-page .kc-p74-dhub:focus-visible{
 color:#2D6EA3;text-decoration:none}
.kc-page .kc-p74-dexp{width:44px;height:44px;background:none;border:0;
 cursor:pointer;display:flex;align-items:center;justify-content:center;
 padding:0;color:#5A6B7A}
.kc-page .kc-p74-dexp i{width:11px;height:11px;
 border-right:2px solid currentColor;border-bottom:2px solid currentColor;
 transform:rotate(45deg);transition:transform .18s ease}
.kc-page .kc-p74-dgrp[data-open="1"] .kc-p74-dexp{color:#2D6EA3}
.kc-page .kc-p74-dgrp[data-open="1"] .kc-p74-dexp i{transform:rotate(225deg)}
.kc-page .kc-p74-dsub{display:none;padding:0 0 12px}
.kc-page .kc-p74-dgrp[data-open="1"] .kc-p74-dsub{display:block}
.kc-page .kc-p74-dsub a{display:block;padding:9px 0 9px 12px;
 font-size:14.5px;color:#3B4A57;text-decoration:none;
 border-left:2px solid #EEF2F4}
.kc-page .kc-p74-dsub a:hover,.kc-page .kc-p74-dsub a:focus-visible{
 color:#2D6EA3;border-left-color:#2D6EA3;text-decoration:none}

.kc-page .kc-p74 a:focus-visible,
.kc-page .kc-p74 button:focus-visible{outline:2px solid #2D6EA3;
 outline-offset:2px;text-decoration:none}
@media (prefers-reduced-motion:reduce){
 .kc-page .kc-p74 *,.kc-page .kc-p74 *::before,
 .kc-page .kc-p74 *::after{transition:none !important}
}

@media (max-width:1280px){
 .kc-page .kc-p74-nav{display:none}
 .kc-page .kc-p74-burger{display:flex}
 .kc-page .kc-p74-in{height:62px;gap:16px;justify-content:space-between}
 .kc-page .kc-p74-cta{padding:10px 16px;font-size:13.5px}
 .kc-page .kc-logo-s{display:none}
 .kc-page .kc-p74-mib{display:none}
}
@media (max-width:480px){
 .kc-page .kc-p74-lang{display:none}
 .kc-page .kc-p74-cta{padding:9px 12px;font-size:12.5px}
}

/* ============ P11.1 pilot page (ceramic-rings-seals) ============
   All rules are scoped under the .kc-p11-1 root class that wraps this one
   page's content. Approved design: p11/P11_1_REFINED_PROTOTYPE.html (Git
   de2e0ae). No global selectors, no token changes, no shared breakpoints. */
.kc-p11-1{font-family:"Segoe UI","IBM Plex Sans",-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;color:#0F2233;font-size:15.5px;line-height:1.7;-webkit-font-smoothing:antialiased}
.kc-p11-1 p,.kc-p11-1 ul,.kc-p11-1 ol,.kc-p11-1 figure,.kc-p11-1 figcaption,.kc-p11-1 h2,.kc-p11-1 h3{margin:0;padding:0}
.kc-p11-1 ul,.kc-p11-1 ol{list-style:none}
.kc-p11-1 img{max-width:100%;height:auto;display:block}
.kc-p11-1 a{color:#2D6EA3;text-decoration:none}
.kc-p11-1 a:hover{text-decoration:underline}
.kc-p11-1 .kc-p11-1-eyebrow{font-size:12px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:#2D6EA3;margin-bottom:14px}
.kc-p11-1 .kc-p11-1-h1{font-size:44px;line-height:1.12;font-weight:650;letter-spacing:-.01em}
.kc-p11-1 .kc-p11-1-h2{font-size:30px;line-height:1.2;font-weight:650;letter-spacing:-.01em;margin-bottom:14px}
.kc-p11-1 .kc-p11-1-h3{font-size:19px;line-height:1.35;font-weight:600}
.kc-p11-1 .kc-p11-1-lede{font-size:17px;color:#4A5B6A;max-width:62ch}
.kc-p11-1 .kc-p11-1-sec{padding:64px 0}
.kc-p11-1 .kc-p11-1-sec--alt{background:#FAFBFC}
.kc-p11-1 .kc-p11-1-sec-head{margin-bottom:30px;max-width:760px}
.kc-p11-1 .kc-p11-1-sec-head .kc-p11-1-lede{margin-top:12px;font-size:15.5px}
.kc-p11-1 .kc-p11-1-chips{display:flex;flex-wrap:wrap;gap:10px;margin:20px 0}
.kc-p11-1 .kc-p11-1-chips li{font-size:13px;font-weight:600;color:#0F2233;background:#EEF2F4;border:1px solid #DCE4EA;border-radius:999px;padding:7px 16px}
.kc-p11-1 .kc-p11-1-btn{display:inline-block;font-weight:600;font-size:15px;padding:14px 30px;border-radius:4px;border:1.5px solid transparent;cursor:pointer;text-decoration:none}
.kc-p11-1 .kc-p11-1-btn:hover{text-decoration:none}
.kc-p11-1 .kc-p11-1-btn--pri{background:#2D6EA3;color:#fff}
.kc-p11-1 .kc-p11-1-btn--pri:hover{background:#265d8c}
.kc-p11-1 .kc-p11-1-btn--ghost{border-color:#2D6EA3;color:#2D6EA3;background:transparent}
.kc-p11-1 .kc-p11-1-btn--ghost:hover{background:#eaf2f9}
.kc-p11-1 .kc-p11-1-btn--light{background:#fff;color:#0B1F33}
.kc-p11-1 .kc-p11-1-btn--light:hover{background:#EEF2F4}
.kc-p11-1 .kc-p11-1-note{font-size:13px;line-height:1.6;color:#4A5B6A;background:#EEF2F4;border-left:3px solid #2D6EA3;padding:14px 18px;border-radius:0 6px 6px 0}
.kc-p11-1 .kc-p11-1-note b{display:block;font-size:11px;letter-spacing:.1em;color:#0F2233;margin-bottom:6px}
.kc-p11-1 .kc-p11-1-note--flag{border-left-color:#B4552D}
.kc-p11-1 .kc-p11-1-cap{font-size:12.5px;color:#4A5B6A;margin-top:10px;line-height:1.5}
/* hero */
.kc-p11-1 .kc-p11-1-hero{background:#FAFBFC;border-bottom:1px solid #DCE4EA;padding:48px 0 56px}
.kc-p11-1 .kc-p11-1-hero__grid{display:grid;grid-template-columns:1.05fr 1fr;gap:48px;align-items:center}
.kc-p11-1 .kc-p11-1-hero__sum{margin-top:18px;font-size:14.5px;color:#4A5B6A;max-width:56ch;border-top:1px solid #DCE4EA;padding-top:14px}
.kc-p11-1 .kc-p11-1-hero__cta{display:flex;gap:14px;margin-top:24px;flex-wrap:wrap}
.kc-p11-1 .kc-p11-1-hero__main{border-radius:8px;overflow:hidden;background:#EEF2F4;border:1px solid #DCE4EA;margin:0}
.kc-p11-1 .kc-p11-1-hero__main img{width:100%;aspect-ratio:4/3;object-fit:cover;height:auto}
.kc-p11-1 .kc-p11-1-hero__thumbs{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:12px}
.kc-p11-1 .kc-p11-1-hero__thumbs button{border:2px solid #DCE4EA;border-radius:6px;overflow:hidden;cursor:pointer;background:none;padding:0;transition:border-color .15s}
.kc-p11-1 .kc-p11-1-hero__thumbs button[aria-pressed="true"]{border-color:#2D6EA3}
.kc-p11-1 .kc-p11-1-hero__thumbs img{width:100%;aspect-ratio:4/3;object-fit:cover;height:auto}
/* geometry */
.kc-p11-1 .kc-p11-1-geom__grid{display:grid;grid-template-columns:1fr 1.1fr;gap:56px;align-items:start}
.kc-p11-1 .kc-p11-1-geom__grid>*,.kc-p11-1 .kc-p11-1-mfg__grid>*,.kc-p11-1 .kc-p11-1-spec__grid>*,.kc-p11-1 .kc-p11-1-rfq__grid>*,.kc-p11-1 .kc-p11-1-mat__card{min-width:0}
.kc-p11-1 .kc-p11-1-geom__fig{background:#fff;border:1px solid #DCE4EA;border-radius:8px;padding:22px;margin:0}
.kc-p11-1 .kc-p11-1-geom__fig svg{width:100%;height:auto;display:block;overflow:hidden}
.kc-p11-1 .kc-p11-1-geom__list li{padding:13px 0;border-bottom:1px solid #DCE4EA}
.kc-p11-1 .kc-p11-1-geom__list li:first-child{padding-top:0}
.kc-p11-1 .kc-p11-1-geom__list .kc-p11-1-h3{margin-bottom:4px}
.kc-p11-1 .kc-p11-1-geom__list p{font-size:14px;color:#4A5B6A}
/* tables */
.kc-p11-1 .kc-p11-1-tblwrap{overflow-x:auto;margin-top:24px;border:1px solid #DCE4EA;border-radius:8px;background:#fff}
.kc-p11-1 .kc-p11-1-tbl{min-width:760px;width:100%;border-collapse:collapse;font-size:13.5px}
.kc-p11-1 .kc-p11-1-tbl caption{text-align:left;font-size:12.5px;font-weight:600;color:#0F2233;padding:12px 18px;background:#EEF2F4;letter-spacing:.03em}
.kc-p11-1 .kc-p11-1-tbl th{background:#0F2233;color:#fff;text-align:left;font-weight:600;padding:12px 18px;white-space:nowrap;font-size:12.5px;letter-spacing:.05em}
.kc-p11-1 .kc-p11-1-tbl td{padding:13px 18px;border-top:1px solid #DCE4EA;vertical-align:top;color:#4A5B6A;line-height:1.55}
.kc-p11-1 .kc-p11-1-tbl td:first-child{color:#0F2233;font-weight:600;white-space:nowrap}
.kc-p11-1 .kc-p11-1-tbl:not(.kc-p11-1-tbl--dark) tbody tr:nth-child(even){background:#FAFBFC}
.kc-p11-1 .kc-p11-1-tblwrap--scroll{position:relative}
.kc-p11-1 .kc-p11-1-tblwrap--scroll::after{content:"Scroll or swipe to see the full table";display:block;font-size:11.5px;color:#4A5B6A;padding:7px 14px;border-top:1px dashed #DCE4EA;text-align:center;background:#FAFBFC}
.kc-p11-1 .kc-p11-1-val{white-space:nowrap;font-weight:650;color:#0F2233;font-variant-numeric:tabular-nums;text-align:right}
/* materials */
.kc-p11-1 .kc-p11-1-mat{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.kc-p11-1 .kc-p11-1-mat__card{background:#fff;border:1px solid #DCE4EA;border-radius:8px;padding:22px 22px;display:flex;flex-direction:column;gap:10px;border-top:3px solid #2D6EA3}
.kc-p11-1 .kc-p11-1-mat__code{font-size:13px;font-weight:600;letter-spacing:.06em;color:#2D6EA3}
.kc-p11-1 .kc-p11-1-mat__card p{font-size:13.5px;color:#4A5B6A;flex:1}
.kc-p11-1 .kc-p11-1-mat__card a{font-size:13px;font-weight:600}
/* manufacturing */
.kc-p11-1 .kc-p11-1-mfg__grid{display:grid;grid-template-columns:1.5fr 1fr;gap:48px;align-items:start}
.kc-p11-1 .kc-p11-1-steps{counter-reset:kc-p11-1-step}
.kc-p11-1 .kc-p11-1-steps li{display:grid;grid-template-columns:56px 1fr;gap:20px;padding:20px 0;border-bottom:1px solid #DCE4EA}
.kc-p11-1 .kc-p11-1-steps li:last-child{border-bottom:0}
.kc-p11-1 .kc-p11-1-steps__n{counter-increment:kc-p11-1-step;width:44px;height:44px;border-radius:50%;border:2px solid #2D6EA3;color:#2D6EA3;font-weight:650;font-size:17px;display:flex;align-items:center;justify-content:center}
.kc-p11-1 .kc-p11-1-steps__n::before{content:counter(kc-p11-1-step,decimal-leading-zero)}
.kc-p11-1 .kc-p11-1-steps p{font-size:14px;color:#4A5B6A;margin-top:6px;max-width:60ch}
.kc-p11-1 .kc-p11-1-mfg__shots{display:grid;gap:16px}
.kc-p11-1 .kc-p11-1-mfg__shots figure{border-radius:8px;overflow:hidden;border:1px solid #DCE4EA;margin:0}
.kc-p11-1 .kc-p11-1-mfg__shots img{width:100%;aspect-ratio:3/2;object-fit:cover;height:auto}
.kc-p11-1 .kc-p11-1-rail{display:grid;gap:14px;margin-top:24px}
.kc-p11-1 .kc-p11-1-diff{display:flex;flex-wrap:wrap;gap:10px 28px;margin-top:10px}
.kc-p11-1 .kc-p11-1-diff li{font-size:13.5px;color:#4A5B6A;padding-left:20px;position:relative;flex:1 1 320px}
.kc-p11-1 .kc-p11-1-diff li::before{content:"";position:absolute;left:0;top:9px;width:8px;height:8px;background:#2D6EA3;border-radius:2px}
/* tolerances & inspection */
.kc-p11-1 .kc-p11-1-spec__grid{display:grid;grid-template-columns:1.15fr 1fr;gap:48px;align-items:start}
.kc-p11-1 .kc-p11-1-spec .kc-p11-1-tblwrap{margin-top:0}
.kc-p11-1 .kc-p11-1-spec__fig{border-radius:8px;overflow:hidden;border:1px solid #DCE4EA;margin:0 0 20px}
.kc-p11-1 .kc-p11-1-spec__fig img{width:100%;aspect-ratio:1/1;object-fit:cover;height:auto}
.kc-p11-1 .kc-p11-1-spec__note{padding:14px 18px 16px;margin-top:0;border-top:1px solid #DCE4EA}
/* applications */
.kc-p11-1 .kc-p11-1-apps{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.kc-p11-1 .kc-p11-1-apps__tile{border:1px solid #DCE4EA;border-radius:8px;overflow:hidden;background:#fff;display:flex;flex-direction:column}
.kc-p11-1 .kc-p11-1-apps__tile img{width:100%;aspect-ratio:3/2;object-fit:cover;height:auto}
.kc-p11-1 .kc-p11-1-apps__tile div{padding:13px 16px;min-height:60px;display:flex;align-items:center}
.kc-p11-1 .kc-p11-1-apps__tile p{font-size:13.5px;font-weight:600;color:#0F2233}
.kc-p11-1 .kc-p11-1-apps__more{margin-top:20px;display:flex;flex-wrap:wrap;gap:10px 26px}
.kc-p11-1 .kc-p11-1-apps__more li{font-size:13.5px;color:#4A5B6A;padding-left:18px;position:relative}
.kc-p11-1 .kc-p11-1-apps__more li::before{content:"";position:absolute;left:0;top:8px;width:7px;height:7px;border:1.5px solid #2D6EA3;border-radius:50%}
/* FAQ */
.kc-p11-1 .kc-p11-1-faq{max-width:860px}
.kc-p11-1 .kc-p11-1-faq details{border:1px solid #DCE4EA;border-radius:8px;background:#fff;margin-bottom:14px}
.kc-p11-1 .kc-p11-1-faq summary{cursor:pointer;list-style:none;padding:20px 24px;font-weight:600;font-size:16px;display:flex;justify-content:space-between;align-items:center;gap:16px}
.kc-p11-1 .kc-p11-1-faq summary::-webkit-details-marker{display:none}
.kc-p11-1 .kc-p11-1-faq summary::after{content:"+";font-size:22px;color:#2D6EA3;font-weight:400;flex:none}
.kc-p11-1 .kc-p11-1-faq details[open] summary::after{content:"\2013"}
.kc-p11-1 .kc-p11-1-faq details[open] summary{border-bottom:1px solid #DCE4EA}
.kc-p11-1 .kc-p11-1-faq__a{padding:18px 24px;font-size:14.5px;color:#4A5B6A}
/* RFQ */
.kc-p11-1 .kc-p11-1-rfq{background:#0B1F33;color:#fff;padding:64px 0}
.kc-p11-1 .kc-p11-1-rfq .kc-p11-1-h2{color:#fff}
.kc-p11-1 .kc-p11-1-rfq .kc-p11-1-eyebrow--mut{color:#9FC4E6}
.kc-p11-1 .kc-p11-1-rfq__grid{display:grid;grid-template-columns:1.2fr 1fr;gap:56px;align-items:center}
.kc-p11-1 .kc-p11-1-rfq p{color:#9FC4E6;margin-top:14px;max-width:56ch}
.kc-p11-1 .kc-p11-1-rfq__list{margin:26px 0 30px;display:grid;gap:12px}
.kc-p11-1 .kc-p11-1-rfq__list li{padding-left:28px;position:relative;font-size:14.5px;color:#D7E3EE}
.kc-p11-1 .kc-p11-1-rfq__list li::before{content:"";position:absolute;left:0;top:8px;width:12px;height:6px;border-left:2px solid #9FC4E6;border-bottom:2px solid #9FC4E6;transform:rotate(-45deg)}
.kc-p11-1 .kc-p11-1-rfq__tblwrap{background:transparent;border-color:rgba(255,255,255,.14)}
.kc-p11-1 .kc-p11-1-rfq__tblwrap .kc-p11-1-tbl caption{background:rgba(255,255,255,.06);color:#9FC4E6}
.kc-p11-1 .kc-p11-1-rfq__tblwrap .kc-p11-1-tbl th{background:rgba(255,255,255,.08);color:#fff}
.kc-p11-1 .kc-p11-1-rfq__tblwrap .kc-p11-1-tbl td{border-top-color:rgba(255,255,255,.14)}
.kc-p11-1 .kc-p11-1-rfq__tblwrap .kc-p11-1-tblwrap--scroll::after,.kc-p11-1 .kc-p11-1-rfq__tblwrap.kc-p11-1-tblwrap--scroll::after{background:rgba(255,255,255,.06);color:#9FC4E6;border-top-color:rgba(255,255,255,.14)}
.kc-p11-1 .kc-p11-1-rfq__tblwrap .kc-p11-1-tbl td:first-child{color:#fff}
.kc-p11-1 .kc-p11-1-rfq__tblwrap .kc-p11-1-tbl td:last-child{color:#9FC4E6}
.kc-p11-1 .kc-p11-1-rfq__foot{margin-top:32px;padding-top:22px;border-top:1px solid rgba(255,255,255,.14);display:flex;flex-wrap:wrap;gap:10px 34px}
.kc-p11-1 .kc-p11-1-rfq__foot a{color:#9FC4E6;font-size:13.5px}
.kc-p11-1 .kc-p11-1-rfq__foot a:hover{color:#fff}
/* responsive */
@media (max-width:1240px){
 .kc-p11-1 .kc-p11-1-hero__grid{grid-template-columns:1fr 1fr;gap:36px}
 .kc-p11-1 .kc-p11-1-mat{grid-template-columns:repeat(2,1fr)}
 .kc-p11-1 .kc-p11-1-apps{grid-template-columns:repeat(2,1fr)}
 .kc-p11-1 .kc-p11-1-geom__grid{grid-template-columns:1fr}
 .kc-p11-1 .kc-p11-1-mfg__grid,.kc-p11-1 .kc-p11-1-spec__grid,.kc-p11-1 .kc-p11-1-rfq__grid{grid-template-columns:1fr;gap:36px}
}
@media (max-width:900px){
 .kc-p11-1 .kc-p11-1-sec{padding:48px 0}
 .kc-p11-1 .kc-p11-1-h1{font-size:34px}
 .kc-p11-1 .kc-p11-1-h2{font-size:26px}
 .kc-p11-1 .kc-p11-1-hero{padding:40px 0 48px}
 .kc-p11-1 .kc-p11-1-hero__grid{grid-template-columns:1fr}
}
@media (max-width:640px){
 .kc-p11-1 .kc-p11-1-sec{padding:40px 0}
 .kc-p11-1 .kc-p11-1-h1{font-size:29px}
 .kc-p11-1 .kc-p11-1-h2{font-size:23px}
 .kc-p11-1 .kc-p11-1-hero{padding:36px 0 40px}
 .kc-p11-1 .kc-p11-1-rfq{padding:48px 0}
 .kc-p11-1 .kc-p11-1-mat{grid-template-columns:1fr}
 .kc-p11-1 .kc-p11-1-apps{grid-template-columns:1fr}
 .kc-p11-1 .kc-p11-1-hero__cta .kc-p11-1-btn{width:100%;text-align:center}
 .kc-p11-1 .kc-p11-1-tbl{min-width:680px;font-size:13px}
 .kc-p11-1 .kc-p11-1-steps li{grid-template-columns:44px 1fr;gap:14px}
 .kc-p11-1 .kc-p11-1-steps__n{width:38px;height:38px;font-size:15px}
 .kc-p11-1 .kc-p11-1-faq summary{padding:18px 18px}
 .kc-p11-1 .kc-p11-1-faq__a{padding:16px 18px}
}

/* ---- P11 Phase 2 Batch 1 additions (append-only; scoped to .kc-p11-1) ----
   Five-material grid variant for ceramic-tubes-sleeves. No existing rule
   above is modified; the rings page does not use the --5 modifier. */
.kc-p11-1 .kc-p11-1-mat--5{grid-template-columns:repeat(5,1fr)}
@media (max-width:1240px){
 .kc-p11-1 .kc-p11-1-mat--5{grid-template-columns:repeat(3,1fr)}
}
@media (max-width:900px){
 .kc-p11-1 .kc-p11-1-mat--5{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:640px){
 .kc-p11-1 .kc-p11-1-mat--5{grid-template-columns:1fr}
}
