/* CNC application selector. All equipment data also works without JavaScript. */
/* Show the original FKS photo without a card, above the section's dot overlay. */
.product-hero-split > .cnc-fks-photo { position:relative; z-index:1; padding:0; border:0; border-radius:0; background:transparent; box-shadow:none; }
.product-hero-split > .cnc-fks-photo img { border-radius:0; }
.cnc-hero-link { display:inline-flex; gap:12px; align-items:center; margin-top:24px; font-size:.9rem; color:#24587b; font-weight:600; text-underline-offset:5px; }
.cnc-hero-link:hover { text-decoration:underline; }
.cnc-configurations { padding:var(--spacing-xl) 0 var(--spacing-lg); background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-secondary) 100%); color:#fff; scroll-margin-top:110px; }
.cnc-config-intro { display:grid; grid-template-columns:1.15fr 1fr; gap:90px; align-items:end; margin-bottom:42px; }
.cnc-availability { display:inline-flex; align-items:center; gap:10px; color:#e8c080; font-size:.7rem; font-weight:600; letter-spacing:.12em; text-transform:uppercase; margin-bottom:22px; }
.cnc-availability > span { width:6px; height:6px; background:currentColor; border-radius:50%; }
.cnc-config-intro h2 { color:white; font-size:clamp(2rem,4vw,3rem); line-height:1.15; letter-spacing:-.02em; margin:0; }
.cnc-config-intro h2 span { color:#a8cdeb; }
.cnc-config-description p { color:#e0e7ec; line-height:1.75; margin:0; font-size:.93rem; max-width:460px; }
.cnc-config-description .cnc-config-small { margin-top:14px; font-size:.76rem; color:#a3b7c4; }
.cnc-finder { color:#233443; }
.cnc-filter-panel { margin-bottom:24px; }
.cnc-filter-panel[hidden] { display:none; }
.cnc-filter-panel > summary { display:inline-flex; align-items:center; gap:12px; max-width:100%; min-height:46px; padding:11px 15px; border:1px solid #62707a; background:rgba(255,255,255,.035); color:#e0e5e9; font-size:.75rem; font-weight:600; line-height:1.5; list-style:none; cursor:pointer; transition:background-color 180ms ease,border-color 180ms ease; }
.cnc-filter-panel > summary::-webkit-details-marker { display:none; }
.cnc-filter-panel > summary > svg { flex:none; }
.cnc-filter-selection { padding-left:12px; border-left:1px solid #62707a; color:#adc9dd; font-weight:400; }
.cnc-filter-chevron { transition:transform 180ms ease; }
.cnc-filter-panel[open] .cnc-filter-chevron { transform:rotate(180deg); }
.cnc-filter-panel[open] > summary { border-color:#8bb9d7; }
.cnc-filter-panel .cnc-filterbar { padding-top:12px; margin-bottom:0; }
.cnc-filterbar { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:28px; }
.cnc-filterbar[hidden], .cnc-machine[hidden] { display:none!important; }
.cnc-filterbar button { position:relative; display:inline-flex; flex:1 1 auto; align-items:center; justify-content:flex-start; gap:12px; font:inherit; font-size:.72rem; font-weight:650; letter-spacing:.03em; text-transform:uppercase; line-height:1.5; min-height:58px; padding:12px 15px; background:rgba(255,255,255,.025); color:#e0e5e9; border:1px solid #53616d; border-radius:0; cursor:pointer; transition:background-color 180ms ease,border-color 180ms ease,color 180ms ease,box-shadow 180ms ease; }
.cnc-filterbar button::after { content:''; position:absolute; height:3px; left:-1px; right:-1px; bottom:-1px; background:var(--color-accent); transform:scaleX(0); transform-origin:left; transition:transform 180ms ease; }
.cnc-filter-icon { flex:none; color:#91b3cb; transition:color 180ms ease,transform 180ms ease; }
.cnc-filter-label { white-space:nowrap; }
.cnc-filter-count { display:grid; place-items:center; min-width:25px; height:25px; margin-left:auto; padding:0 6px; font-size:.68rem; font-weight:600; font-variant-numeric:tabular-nums; background:rgba(255,255,255,.075); color:#b8cfdf; transition:background-color 180ms ease,color 180ms ease; }
.cnc-filterbar button[aria-pressed="true"] { background:#fff; border-color:transparent; color:var(--color-primary); }
.cnc-filterbar button[aria-pressed="true"]::after { transform:scaleX(1); }
.cnc-filterbar button[aria-pressed="true"] .cnc-filter-icon { color:#087cc4; }
.cnc-filterbar button[aria-pressed="true"] .cnc-filter-count { background:#e8f4ff; color:#09699f; }
.cnc-list-heading { display:flex; justify-content:space-between; gap:16px; padding:0 0 15px; font-size:.65rem; color:#a0b5c3; }
.cnc-list-heading > :first-child { letter-spacing:.09em; text-transform:uppercase; }
.cnc-machine-list { border-radius:0; overflow:hidden; background:#fff; }
.cnc-machine { border-bottom:1px solid #e3e9ed; scroll-margin-top:120px; }
.cnc-machine > summary { display:grid; grid-template-columns:1fr 24px; gap:6px 16px; padding:22px 26px; list-style:none; cursor:pointer; background:#edf2f5; transition:background-color 180ms ease,box-shadow 180ms ease; }
.cnc-machine > summary::-webkit-details-marker { display:none; }
.cnc-machine-code { grid-column:1; font-size:.65rem; letter-spacing:.1em; color:#58768a; font-weight:650; }
.cnc-machine-title { grid-column:1; transition:color 180ms ease; }
.cnc-machine-title strong { display:block; font-size:.87rem; font-weight:600; line-height:1.4; }
.cnc-machine-title > span, .cnc-machine-chip { display:none; }
.cnc-expand { grid-column:2; grid-row:1/3; align-self:center; color:#738b9b; font-size:1.2rem; transition:transform 180ms ease,color 180ms ease; }
.cnc-expand::after { content:'›'; }
.cnc-machine[open] > summary { background:linear-gradient(to right,var(--color-accent) 0 3px,#fff 3px); background-origin:border-box; }
.cnc-machine[open] .cnc-expand { color:var(--color-accent); }
.cnc-machine[open] .cnc-expand::after { content:'→'; }
.cnc-machine-body { padding:30px; }
.cnc-profile-top { display:flex; justify-content:space-between; gap:16px; align-items:center; }
.cnc-profile-series { font:700 clamp(1.6rem,2.8vw,2.3rem)/1 var(--font-family-heading); color:#637786; letter-spacing:-.025em; }
.cnc-profile-status { display:inline-flex; align-items:center; gap:7px; font-size:.65rem; color:#795725; border:1px solid #e9dbc2; background:#fcf8ef; padding:5px 9px; border-radius:3px; }
.cnc-profile-status::before { content:''; width:5px; height:5px; border-radius:50%; background:#a17632; }
.cnc-profile h3 { margin:18px 0 24px; font-size:clamp(1.25rem,2vw,1.7rem); color:var(--color-primary); line-height:1.25; letter-spacing:-.02em; }
.cnc-metrics { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); padding:22px 0; border-top:1px solid #dde7ed; border-bottom:1px solid #dde7ed; gap:14px; }
.cnc-metrics > div + div { border-left:1px solid #dde7ed; padding-left:22px; }
.cnc-metrics strong { display:block; font-family:var(--font-family-heading); font-size:clamp(1.7rem,3vw,2.65rem); letter-spacing:-.035em; font-weight:600; line-height:1.1; color:var(--color-primary); }
.cnc-metrics strong small { font-family:var(--font-family-sans); font-size:.75rem; font-weight:500; color:#586d7a; letter-spacing:0; }
.cnc-metrics span { display:block; color:#587286; font-size:.65rem; margin-top:8px; }
.cnc-machine-info > p { margin:24px 0; font-size:.84rem; color:#5a6e7d; line-height:1.8; }
.cnc-spec-details { margin-bottom:25px; border-top:1px solid #e3eaee; border-bottom:1px solid #e3eaee; }
.cnc-spec-heading { margin:0; font-family:var(--font-family-sans); font-size:.75rem; font-weight:600; line-height:1.6; color:#2e5871; padding:15px 0; }
.cnc-machine-info dl { margin:0 0 14px; }
.cnc-machine-info dl > div { display:grid; grid-template-columns:130px minmax(0,1fr); gap:16px; padding:9px 0; border-top:1px solid #edf1f4; font-size:.73rem; }
.cnc-machine-info dt { color:#6a7e8b; }
.cnc-machine-info dd { margin:0; color:#29465b; font-weight:550; overflow-wrap:anywhere; }
.cnc-machine-info .btn { gap:24px; min-height:48px; font-size:.78rem; }
.cnc-machine-info .btn > span { display:inline-block; transition:transform 180ms ease; }
.cnc-finder-footer { display:flex; justify-content:space-between; align-items:center; gap:24px; padding:26px 0; border-bottom:1px solid #354854; }
.cnc-finder-footer p { margin:0; font-size:.81rem; font-weight:550; color:#dce6ec; }
.cnc-finder-footer p span { font-size:.74rem; font-weight:400; color:#9db2c1; }
.cnc-advice { color:#d3e7f4; font-size:.76rem; font-weight:550; text-underline-offset:5px; }
.cnc-advice:hover { color:white; text-decoration:underline; }
.cnc-advice > span { display:inline-block; transition:transform 180ms ease; }
.cnc-config-note { font-size:.67rem; color:#98adbb; max-width:860px; margin:20px 0 0; line-height:1.75; }
.cnc-configurations :focus-visible, .cnc-hero-link:focus-visible { outline:3px solid #1787ca; outline-offset:3px; }
.cnc-filterbar button:focus-visible::after { transform:scaleX(1); }
.cnc-machine > summary:focus-visible { outline-offset:-3px; }
@media (hover:hover) and (pointer:fine) {
 .cnc-filter-panel > summary:hover { border-color:#8bb9d7; background:rgba(0,136,255,.1); }
 .cnc-filterbar button:not([aria-pressed="true"]):hover { background:rgba(0,136,255,.1); border-color:#6994b2; color:#fff; }
 .cnc-filterbar button:hover::after { transform:scaleX(1); }
 .cnc-filterbar button:hover .cnc-filter-icon { transform:translateY(-2px); color:#b9e1ff; }
 .cnc-filterbar button[aria-pressed="true"]:hover .cnc-filter-icon { color:#087cc4; }
 .cnc-filterbar button:not([aria-pressed="true"]):hover .cnc-filter-count { background:rgba(0,136,255,.2); color:#e3f3ff; }
 .cnc-machine:not([open]) > summary:hover { background:linear-gradient(to right,var(--color-accent) 0 3px,#e3eff8 3px); background-origin:border-box; border-bottom-color:transparent; }
 .cnc-machine > summary:hover .cnc-machine-title { color:#086ba7; }
 .cnc-machine > summary:hover .cnc-expand { color:var(--color-accent); transform:translateX(4px); }
 .cnc-machine-info .btn:hover > span, .cnc-advice:hover > span { transform:translate(3px,-3px); }
}
@media (min-width:993px) {
 .cnc-enhanced .cnc-machine-list { display:grid; grid-template-columns:340px minmax(0,1fr); grid-template-rows:repeat(var(--cnc-count,7),minmax(78px,auto)); background:linear-gradient(to right,#edf2f5 340px,#fff 340px); min-height:610px; }
 .cnc-enhanced .cnc-machine { display:contents; }
 .cnc-enhanced .cnc-machine::details-content { display:contents; }
 .cnc-enhanced .cnc-machine:not([open]) > .cnc-machine-body { display:none; }
 .cnc-enhanced .cnc-machine > summary { grid-column:1; grid-row:var(--cnc-row); border-bottom:1px solid #dfe7ec; align-content:center; padding:19px 26px; }
 .cnc-enhanced .cnc-machine[open] > summary { border-bottom-color:transparent; }
 .cnc-enhanced .cnc-machine-body { grid-column:2; grid-row:1 / span var(--cnc-count,7); align-self:start; padding:40px 46px; }
}
@media (max-width:992px) {
 /* The closed mobile menu must not intercept clicks through invisible links. */
 .desktop-nav:not(.active) { visibility:hidden; pointer-events:none; }
 .desktop-nav:not(.active) * { pointer-events:none!important; }
 .cnc-config-intro { gap:30px; }
 .cnc-machine > summary { grid-template-columns:85px minmax(0,1fr) 24px; padding:21px 25px; }
 .cnc-machine-code { grid-column:1; grid-row:1; align-self:center; }
 .cnc-machine-title { grid-column:2; grid-row:1; }
 .cnc-expand { grid-column:3; grid-row:1; }
 .cnc-machine-body { padding:30px; }
}
@media (max-width:650px) {
 .cnc-configurations { padding:52px 0 35px; }
 .cnc-config-intro { grid-template-columns:1fr; gap:23px; margin-bottom:26px; }
 .cnc-config-intro h2 { font-size:2.25rem; }
 .cnc-availability { font-size:.62rem; margin-bottom:20px; }
 .cnc-config-description p { font-size:.82rem; }
 .cnc-config-description .cnc-config-small { font-size:.7rem; }
 .cnc-filterbar { gap:7px; margin-bottom:22px; }
 .cnc-filterbar button { flex-grow:0; padding:9px 10px; gap:7px; min-height:48px; font-size:.63rem; }
 .cnc-filter-icon { width:16px; height:16px; }
 .cnc-filter-count { min-width:20px; height:22px; padding:0 4px; font-size:.61rem; }
 .cnc-list-heading { font-size:.59rem; }
 .cnc-machine > summary { grid-template-columns:minmax(0,1fr) 24px; gap:5px 12px; padding:18px 20px; }
 .cnc-machine-code { grid-column:1; grid-row:1; }
 .cnc-machine-title { grid-column:1; grid-row:2; }
 .cnc-machine-title strong { font-size:.82rem; }
 .cnc-expand { grid-column:2; grid-row:1/3; }
 .cnc-machine-body { padding:22px 20px 28px; }
 .cnc-profile-series { font-size:2rem; }
 .cnc-profile-status { font-size:.6rem; padding:4px 7px; }
 .cnc-profile h3 { font-size:1.25rem; margin:17px 0 21px; }
 .cnc-metrics { gap:10px; padding:19px 0; }
 .cnc-metrics > div + div { padding-left:12px; }
 .cnc-metrics strong { font-size:1.7rem; }
 .cnc-metrics span { font-size:.61rem; }
 .cnc-machine-info > p { font-size:.78rem; }
 .cnc-machine-info dl > div { grid-template-columns:96px minmax(0,1fr); font-size:.7rem; gap:10px; }
 .cnc-machine-info .btn { width:100%; padding:12px; font-size:.73rem; justify-content:space-between; }
 .cnc-finder-footer { display:block; padding:22px 0; }
 .cnc-advice { display:inline-block; padding-top:16px; }
}
@media (prefers-reduced-motion:reduce) {
 html { scroll-behavior:auto; }
 .cnc-configurations *, .cnc-configurations *::before, .cnc-configurations *::after { transition:none!important; }
 .cnc-configurations .cnc-filter-icon, .cnc-configurations .cnc-expand, .cnc-machine-info .btn > span, .cnc-advice > span { transform:none!important; }
}
