/* Guías visuales de fabricación: imágenes completas, texto legible y ampliación accesible. */
.cnc-rules-section{scroll-margin-top:90px}
.cnc-rules-intro{display:grid;gap:14px}
.cnc-rules-help{font-size:.82rem;color:var(--steel)}
.cnc-rules-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:40px 28px}
.cnc-rule{min-width:0;margin:0;scroll-margin-top:90px}
.cnc-rule-image{display:block;position:relative;overflow:hidden;background:#fff;border:1px solid var(--line);border-radius:var(--r);cursor:zoom-in;transition:border-color .2s}
.cnc-rule-image:hover{border-color:var(--orange-deep)}
.cnc-rule-image:focus-visible,.cnc-rule-dialog button:focus-visible,.cnc-rule-viewport:focus-visible{outline:3px solid var(--orange-deep);outline-offset:4px}
.cnc-rule-image img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:contain}
.cnc-rule-expand{display:flex;align-items:center;gap:7px;width:max-content;margin:4px 14px 12px auto;padding:6px 10px;color:var(--ink-2);background:var(--paper);border-radius:3px;font-size:.75rem;font-weight:500}
.cnc-rule-expand svg,.cnc-rule-dialog button svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.6;flex:none}
.cnc-rule-caption{padding:18px 0 0}
.cnc-rule-caption h3{font-size:1.12rem;line-height:1.25;letter-spacing:-.015em;font-variation-settings:'wdth' 105}
.cnc-rule-caption h3 span{color:var(--orange-deep);font-family:var(--mono);font-size:.72rem;letter-spacing:.04em;margin-right:9px;font-weight:500}
.cnc-rule-caption p{margin-top:8px;font-size:.95rem;color:var(--ink-2);line-height:1.6;max-width:65ch}
.cnc-rule:last-child:nth-child(odd){grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;align-items:center;padding-top:32px;border-top:1px solid var(--line-strong)}
.cnc-rule:last-child:nth-child(odd) .cnc-rule-caption{padding:0 clamp(0px,3vw,44px)}
.cnc-rule:last-child:nth-child(odd) h3{font-size:clamp(1.55rem,2.4vw,2.3rem);max-width:18ch}
.cnc-rule:last-child:nth-child(odd) h3 span{display:block;margin:0 0 14px}
.cnc-rule:last-child:nth-child(odd) p{font-size:1.05rem;max-width:38ch;margin-top:18px}
.side:not(.cnc-rules-intro)>.cnc-rules-help{margin-top:14px}
.cnc-rule-diagram-button{display:block;width:100%;padding:0;border:0;background:transparent;text-align:inherit;cursor:zoom-in;border-radius:4px}
.cnc-rule-diagram-button:hover{outline:1px solid var(--orange-deep)}
.cnc-rule-diagram-button:focus-visible{outline:3px solid var(--orange-deep);outline-offset:4px}
.cnc-rule-diagram-button .cnc-rule-expand{margin:8px 0 0 auto}
.cnc-rule-dialog{padding:0;border:0;border-radius:0;background:#fff;color:var(--ink);width:100vw;max-width:none;height:100dvh;max-height:none;overflow:hidden;margin:0}
.cnc-rule-dialog:not([open]){display:none}
.cnc-rule-dialog[open]{display:flex;flex-direction:column}
.cnc-rule-dialog::backdrop{background:rgba(20,24,28,.78)}
.cnc-rule-dialog-head{display:flex;gap:20px;align-items:center;justify-content:space-between;flex:none;padding:16px 24px;border-bottom:1px solid var(--line)}
.cnc-rule-dialog-head h3{font-size:1.15rem;line-height:1.3;font-family:var(--body);font-variation-settings:normal;letter-spacing:0}
.cnc-rule-dialog-head .mono{display:block;font-size:.65rem;margin-bottom:4px;color:var(--orange-deep)}
.cnc-rule-dialog button{min-height:44px;display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--line-strong);border-radius:4px;padding:8px 12px;font-size:.85rem;background:#fff;flex:none;transition:background .2s}
.cnc-rule-dialog button:hover,.cnc-rule-dialog button:active{background:var(--paper)}
.cnc-rule-dialog-body{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,340px);gap:28px;flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;padding:24px}
.cnc-rule-dialog-body:focus-visible{outline:2px solid var(--orange-deep);outline-offset:-3px}
.cnc-rule-viewport{position:sticky;top:0;display:flex;align-items:center;justify-content:center;min-width:0;height:calc(100dvh - 184px)}
.cnc-rule-viewport img,.cnc-rule-viewport>svg{display:block;width:100%;height:100%;max-width:100%;object-fit:contain}
.cnc-rule-explanation{padding:6px 0 12px 24px;border-left:1px solid var(--line);align-self:start}
.cnc-rule-explanation h4{font:600 1rem/1.4 var(--body);letter-spacing:0;color:var(--ink);margin:24px 0 8px}
.cnc-rule-explanation h4:first-child{margin-top:0}
.cnc-rule-explanation p{font-size:.95rem;line-height:1.65;color:var(--ink-2);max-width:68ch;overflow-wrap:break-word}
.cnc-rule-dialog-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;flex:none;padding:12px 24px max(12px,env(safe-area-inset-bottom));border-top:1px solid var(--line)}
.cnc-rule-dialog-foot p{font-size:.75rem;color:var(--steel)}
.cnc-rule-dialog-nav{display:flex;gap:8px}
html.cnc-rule-open{overflow:hidden}
/* Los SVG nativos conservan la misma paleta y el mismo trazo al ampliarlos. */
.cnc-rule-diagram{background:var(--paper);border-radius:4px}
.cnc-rule-diagram .s{fill:none;stroke:var(--ink);stroke-width:1.4;stroke-linejoin:round}
.cnc-rule-diagram .m{fill:#e3e4e1;stroke:var(--ink);stroke-width:1.2}
.cnc-rule-diagram .t{fill:none;stroke:var(--orange);stroke-width:1.6}
.cnc-rule-diagram .d{fill:none;stroke:var(--orange-deep);stroke-width:1}
.cnc-rule-diagram text{font:600 10px var(--mono);fill:var(--orange-deep);letter-spacing:.04em}
.cnc-rule-diagram .draw{stroke-dasharray:none;stroke-dashoffset:0}
.cnc-rule-diagram .p3d-gap,.cnc-rule-diagram .p3d-cut{fill:var(--paper);stroke:none}
.cnc-rule-diagram .p3d-hole{fill:var(--paper);stroke:var(--ink);stroke-width:1.2}
.cnc-rule-diagram .p3d-insert{fill:#c9ced1;stroke:var(--ink);stroke-width:1.2}
.cnc-rule-diagram .p3d-letters{font:600 54px var(--display);font-variation-settings:'wdth' 112;letter-spacing:-.04em;fill:var(--ink)}
.cnc-rule-diagram .k{fill:none;stroke:var(--ink);stroke-width:7;stroke-linecap:round;stroke-linejoin:round}
.cnc-rule-diagram .ch-bendline{fill:none;stroke:var(--orange);stroke-width:1.2;stroke-dasharray:5 4}
@media(max-width:1000px){
  .cnc-rule-dialog-body{display:block}
  .cnc-rule-viewport{position:static;height:auto;margin-bottom:24px}
  .cnc-rule-viewport img,.cnc-rule-viewport>svg{height:auto;max-height:none}
  .cnc-rule-explanation{border-left:0;border-top:1px solid var(--line);padding:24px 0 0}
}
@media(max-width:767px){
  .cnc-rules-grid{grid-template-columns:1fr;gap:30px}
  .cnc-rule-caption{padding-top:14px}
  .cnc-rule:last-child:nth-child(odd){grid-column:auto;display:block;padding-top:0;border:0}
  .cnc-rule:last-child:nth-child(odd) .cnc-rule-caption{padding:14px 0 0}
  .cnc-rule:last-child:nth-child(odd) h3{font-size:1.12rem;max-width:none}
  .cnc-rule:last-child:nth-child(odd) h3 span{display:inline;margin:0 9px 0 0}
  .cnc-rule:last-child:nth-child(odd) p{font-size:.95rem;max-width:none;margin-top:8px}
  .cnc-rule-dialog-head{padding:12px 16px;gap:10px}
  .cnc-rule-dialog-head h3{font-size:1rem}
  .cnc-rule-dialog-body{padding:16px}
  .cnc-rule-dialog-foot{padding:10px 16px max(10px,env(safe-area-inset-bottom))}
  .cnc-rule-dialog-foot p{display:none}
  .cnc-rule-dialog-nav{width:100%;justify-content:space-between}
  .cnc-rule-dialog button{font-size:.8rem}
}
@media(prefers-reduced-motion:reduce){.cnc-rule-image,.cnc-rule-dialog button{transition:none}}
@media print{.cnc-rules-grid{gap:24px}.cnc-rule{break-inside:avoid}.cnc-rule-image{border:0}.cnc-rule-expand,.cnc-rules-help,.cnc-rule-dialog{display:none!important}.cnc-rule:last-child:nth-child(odd){display:block}.cnc-rule:last-child:nth-child(odd) .cnc-rule-caption{padding:18px 0 0}}

/* Tipografía de las cotas: misma escala en impresión 3D y chapa. */
.rule svg text:not(.p3d-letters),.cnc-rule-diagram text:not(.p3d-letters){font-size:8.5px}
