/* CNC catalog and material sheets share the calculator's drafting-paper theme. */
.cnc-page {
  --bg:#fff; --surface:#fff; --card:#fff; --card-hover:#f3f4f5;
  --text:#171716; --muted:#4d535a; --dim:#626b75;
  --border:#d9dde1; --border-md:#a8adb3;
  --accent:#20201e; --accent-dim:#f3f4f5; --accent-br:#a8adb3;
  --al:#20201e; --al-dim:#f3f4f5; --al-br:#a8adb3;
  --green:#34704e; --green-dim:#edf4ef;
  background:#fff;
}
.cnc-main { position:relative; isolation:isolate; }
.cnc-main::before {
  content:''; position:absolute; inset:0; z-index:-1; pointer-events:none;
  background-image:linear-gradient(rgba(28,39,51,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(28,39,51,.06) 1px,transparent 1px),linear-gradient(rgba(28,39,51,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(28,39,51,.025) 1px,transparent 1px);
  background-size:160px 160px,160px 160px,32px 32px,32px 32px;
}
.cnc-page :is(button,a,[tabindex]):focus-visible { outline:2px solid #42677d; outline-offset:4px; }
.cnc-page :is(.btn-solid,.summary-quote-btn,.btn-accent):hover { background:#393936; }

/* Catalog navigation and filters. */
.cnc-catalog-page :is(.page-header,.step-indicator,.main-layout) { max-width:1560px; padding-inline:clamp(24px,3.6vw,64px); }
.cnc-catalog-page .page-header { padding-top:126px; padding-bottom:40px; }
.cnc-catalog-page .breadcrumb { margin-bottom:30px; font:400 12px/1.6 Inter,sans-serif; text-transform:none; letter-spacing:0; }
.cnc-catalog-page .breadcrumb span { color:var(--muted); }
.cnc-catalog-page .page-header h1 { margin-bottom:24px; }
.cnc-catalog-page .page-header p { max-width:760px; font-size:16px; line-height:1.8; }
.cnc-catalog-page .step-indicator { padding-bottom:40px; }
.cnc-catalog-page .step-circle { width:40px; height:40px; border-width:1px; font:400 14px/1 Inter,sans-serif; box-shadow:none; }
.cnc-catalog-page .step-circle.active { background:var(--accent); border-color:var(--accent); color:#fff; }
.cnc-catalog-page .step-circle.done { background:#fff; border-color:var(--accent); color:var(--accent); }
.cnc-catalog-page .step-label { font-size:13px; font-weight:400; text-transform:none; letter-spacing:0; }
.cnc-catalog-page .step-label.done { color:var(--text); }
.cnc-catalog-page .step-line-fill.complete { background:var(--accent); }
.cnc-catalog-page .main-layout { gap:28px; padding-bottom:96px; }
.cnc-catalog-page .sidebar { width:248px; border:1px solid var(--border); box-shadow:none; }
.cnc-catalog-page .sidebar-header { padding:14px 22px; min-height:64px; }
.cnc-catalog-page .sidebar-title { font:500 14px/1.5 Inter,sans-serif; letter-spacing:0; text-transform:none; color:var(--text); }
.cnc-catalog-page .sidebar-clear { min-height:36px; font-size:12px; text-underline-offset:3px; }
.cnc-catalog-page .sidebar-section { padding:20px 22px; }
.cnc-catalog-page .sidebar-section-title { font-size:12px; font-weight:400; letter-spacing:.06em; }
.cnc-catalog-page .sidebar-toggle { min-height:40px; }
.cnc-catalog-page .toggle-label { color:var(--muted); font-weight:400; }
.cnc-catalog-page .toggle-switch.active+.toggle-label { font-weight:500; }
.cnc-catalog-page .sidebar-count { padding:18px 22px; background:#f7f8f8; }
.cnc-catalog-page .sidebar-count strong { font-weight:500; }
.cnc-catalog-page .back-btn { min-height:44px; padding:10px 16px; font-size:13px; letter-spacing:0; text-transform:none; margin-bottom:24px; }

/* Give the available material generous imagery and one clear reading column. */
.cnc-catalog-page :is(.cat-grid,.alloy-grid) { grid-template-columns:1fr; gap:24px; background:transparent; border:0; }
.cnc-catalog-page :is(.cat-card,.alloy-card) { display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); border:1px solid var(--border); background:#fff; transition:border-color .18s ease; }
.cnc-catalog-page :is(.cat-card,.alloy-card):hover { border-color:var(--border-md); background:#fff; transform:none; box-shadow:none; }
.cnc-catalog-page :is(.cat-card-accent,.cat-card-icon,.cat-card-photo-overlay,.alloy-card-top) { display:none; }
.cnc-catalog-page :is(.cat-card-photo,.alloy-card-img) { height:100%; min-height:380px; border-bottom:0; border-right:1px solid var(--border); }
.cnc-catalog-page .alloy-card-img { grid-row:1 / 3; }
.cnc-catalog-page :is(.cat-card-body,.alloy-card-body) { padding:32px; min-width:0; }
.cnc-catalog-page :is(.cat-card-name,.alloy-card-name) { font:500 30px/1.2 Inter,sans-serif; letter-spacing:-.035em; margin-bottom:16px; }
.cnc-catalog-page :is(.cat-card-sub,.alloy-card-desc) { font-size:15px; line-height:1.8; color:var(--muted); margin-bottom:24px; }
.cnc-catalog-page :is(.cat-card-caps,.alloy-card-caps) { gap:6px; margin-bottom:28px; }
.cnc-catalog-page :is(.cap-badge,.cap-badge.highlight) { font:400 12px/1.4 Inter,sans-serif; padding:5px 8px; letter-spacing:0; text-transform:none; color:var(--muted); background:#fff; border-color:var(--border); }
.cnc-catalog-page .cat-card-meta { padding-top:22px; border-top:1px solid var(--border); gap:16px; }
.cnc-catalog-page .cat-card-count { font:400 13px/1.5 Inter,sans-serif; letter-spacing:0; text-transform:none; }
.cnc-catalog-page .cat-card-arrow { width:44px; height:44px; color:var(--text); flex-shrink:0; }
.cnc-catalog-page .alloy-card-tag { font:400 12px/1.4 Inter,sans-serif; letter-spacing:0; text-transform:none; padding:5px 9px; border-color:var(--border); color:var(--muted); }
.cnc-catalog-page .alloy-card-alloy { font-size:14px; font-weight:400; margin-bottom:20px; }
.cnc-catalog-page .alloy-card-specs { gap:16px; padding-top:22px; }
.cnc-catalog-page .alloy-spec-label { font-size:11px; font-weight:400; letter-spacing:.02em; line-height:1.5; }
.cnc-catalog-page .alloy-spec-value { font-size:14px; font-weight:500; line-height:1.6; }
.cnc-catalog-page .alloy-card-footer { grid-column:2; gap:16px; padding:20px 32px; background:#fff; }
.cnc-catalog-page .alloy-card-select { font-size:13px; font-weight:500; letter-spacing:0; text-transform:none; white-space:nowrap; }
.cnc-catalog-page .stock-grid { gap:16px; background:transparent; border:0; }
.cnc-catalog-page .stock-card { border:1px solid var(--border); }
.cnc-catalog-page .stock-card:hover { background:#f3f4f5; transform:none; box-shadow:none; }
.cnc-catalog-page :is(.stock-card-top,.selected-summary::before) { display:none; }
.cnc-catalog-page .stock-card-value { font-weight:500; }
.cnc-catalog-page .selected-summary { box-shadow:none; }
.cnc-catalog-page .selected-summary-actions { flex-wrap:wrap; }

/* Embedded material sheet and its toolbar. */
.cnc-catalog-page .mat-panel-overlay { z-index:1200; background:rgba(23,23,22,.32); backdrop-filter:blur(3px); }
.cnc-catalog-page .mat-panel { z-index:1201; border-left:1px solid var(--border); background:#fff; box-shadow:-8px 0 32px rgba(23,23,22,.08); }
.cnc-catalog-page .mat-panel-topbar { height:68px; padding-inline:24px; background:#fff; border-color:var(--border); gap:12px; }
.cnc-catalog-page .mat-panel-topbar-left { min-width:0; }
.cnc-catalog-page .mat-panel-back { min-height:44px; padding:10px 16px; color:var(--text); border-color:var(--border-md); font-size:13px; letter-spacing:0; text-transform:none; white-space:nowrap; }
.cnc-catalog-page .mat-panel-back:hover { background:#f3f4f5; color:var(--text); border-color:var(--text); }
.cnc-catalog-page .mat-panel-label { color:var(--muted); font:400 12px/1.5 Inter,sans-serif; letter-spacing:0; text-transform:none; }
.cnc-catalog-page .mat-panel-close { width:44px; height:44px; flex-shrink:0; border:1px solid var(--border); color:var(--muted); }
.cnc-catalog-page .mat-panel-close:hover { background:#f3f4f5; color:var(--text); }
.cnc-catalog-page .mat-panel-loading { top:68px; background:#fff; }
.cnc-catalog-page .mat-panel-loading-text { color:var(--muted); }

/* Specification sheet. */
.cnc-detail-page .mat-hero { padding:40px clamp(24px,3.6vw,64px); }
.cnc-detail-page .mat-hero-inner { max-width:1432px; gap:40px; align-items:center; }
.cnc-detail-page .mat-hero-left { padding-bottom:0; }
.cnc-detail-page .mat-hero-back { min-height:44px; font-size:13px; font-weight:400; letter-spacing:0; text-transform:none; }
.cnc-detail-page :is(.mat-hero-label,.mat-section-label) { font:400 12px/1.6 Inter,sans-serif; letter-spacing:.08em; color:var(--dim); }
.cnc-detail-page .mat-hero-title { margin-bottom:24px; }
.cnc-detail-page :is(.mat-hero-sub,.mat-section-sub) { color:var(--muted); font-size:15px; line-height:1.8; }
.cnc-detail-page .mat-hero-right { height:auto; aspect-ratio:4/3; border:1px solid var(--border); }
.cnc-detail-page .mat-hero-img { display:block; }
.cnc-detail-page .mat-hero-img-overlay { display:none; }
.cnc-detail-page .mat-hero-chips { gap:8px; }
.cnc-detail-page .mat-hero-chip { padding:12px; border-color:var(--border); }
.cnc-detail-page .mat-hero-chip-num { font:500 20px/1.2 Inter,sans-serif; }
.cnc-detail-page .mat-hero-chip-label { font-size:11px; letter-spacing:0; text-transform:none; }
.cnc-detail-page :is(.mat-nav-inner,.mat-section) { max-width:1560px; padding-inline:clamp(24px,3.6vw,64px); }
.cnc-detail-page .mat-pill { font-size:13px; letter-spacing:0; text-transform:none; padding:18px 20px; }
.cnc-detail-page .mat-pill.active { background:#f3f4f5; }
.cnc-detail-page .mat-section { padding-block:56px; }
.cnc-detail-page :is(.mat-section-title,.mat-cta-title) { font-weight:500; letter-spacing:-.035em; line-height:1.2; }
.cnc-detail-page .props-grid { border:1px solid var(--border); gap:1px; }
.cnc-detail-page .prop-cell { min-width:0; padding:24px; }
.cnc-detail-page .prop-cell .label { font-size:11px; font-weight:400; letter-spacing:.03em; line-height:1.5; }
.cnc-detail-page .prop-cell .value { font:500 26px/1.4 Inter,sans-serif; }
.cnc-detail-page .prop-cell .unit { font-size:12px; line-height:1.5; }
.cnc-detail-page .material-notes { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; margin-top:24px; }
.cnc-detail-page .info-callout { background:#f3f4f5 !important; border:1px solid var(--border) !important; color:var(--muted) !important; border-radius:0; padding:20px; font-size:14px; line-height:1.8; overflow-wrap:anywhere; }
.cnc-detail-page .info-callout code { background:#e5e7e9 !important; }
.cnc-detail-page .envelope-card { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:32px; padding:32px; background:#fff; border:1px solid var(--border); margin-bottom:24px; }
.cnc-detail-page .envelope-card svg { filter:grayscale(1); }
.cnc-detail-page .tolerance-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; margin-bottom:24px; }
.cnc-detail-page .tolerance-grid > div { border-top:1px solid var(--border) !important; }
.cnc-detail-page .machining-data-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:32px; margin-bottom:32px; padding:24px; background:#fff; border:1px solid var(--border); }
.cnc-detail-page .mach-grid { margin-top:0; gap:24px; }
.cnc-detail-page .mach-bar { background:#e5e7e9; height:6px; border-radius:0; }
.cnc-detail-page .mach-bar-fill { background:var(--accent); border-radius:0; }
.cnc-detail-page .mach-label { gap:12px; font-weight:400; }
.cnc-detail-page .mach-label span { white-space:nowrap; color:var(--muted); }
.cnc-detail-page .weld-note { padding:24px; background:#f3f4f5; border:1px solid var(--border); display:flex; align-items:flex-start; gap:16px; }
.cnc-detail-page .weld-note > div:last-child > div { color:var(--muted) !important; font-size:14px !important; }
.cnc-detail-page .services-grid { gap:16px; }
.cnc-detail-page .service-card { padding:28px 22px; text-align:left; }
.cnc-detail-page .service-card-icon { display:flex; align-items:center; width:44px; height:44px; margin-bottom:20px; color:var(--accent); }
.cnc-detail-page .service-card-icon svg { display:block; width:44px; height:44px; flex-shrink:0; }
.cnc-detail-page .service-card-name { font-size:16px; font-weight:500; line-height:1.4; }
.cnc-detail-page .service-card-desc { font-size:14px; line-height:1.75; }
.cnc-detail-page .faq-list { gap:12px; }
.cnc-detail-page .faq-q-text { font-weight:500; line-height:1.6; }
.cnc-detail-page .faq-q-icon { margin-left:20px; }
.cnc-detail-page .mat-cta { padding:48px clamp(24px,3.6vw,64px); }
.cnc-detail-page .mat-cta-inner { max-width:1432px; }
.cnc-detail-page .btn-accent { min-height:46px; padding:13px 20px; font-size:14px; letter-spacing:0; text-transform:none; text-align:center; }
.cnc-detail-page .drawer { border-left:1px solid var(--border); box-shadow:-8px 0 32px rgba(23,23,22,.08); }
.cnc-detail-page .drawer-title { font-weight:500; line-height:1.2; }
.cnc-detail-page .drawer-grade-label { font:400 12px/1.5 Inter,sans-serif; letter-spacing:.06em; }
.cnc-detail-page .drawer-close { width:44px; height:44px; }
.cnc-detail-page .drawer-section-label { font-size:12px; font-weight:400; letter-spacing:.04em; }
.cnc-detail-page :is(.dr-table,.mp-table) { background:#fff; }
.cnc-detail-page :is(.dr-table,.mp-table) td { padding:12px 10px; }
.cnc-detail-page :is(.dr-table,.mp-table) td:last-child { font-weight:400; }
.cnc-detail-page .drawer-cta { background:#fff; }

@media (max-width:1100px) {
  .cnc-catalog-page :is(.cat-card,.alloy-card) { grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); }
  .cnc-catalog-page :is(.cat-card-body,.alloy-card-body) { padding:24px; }
  .cnc-detail-page .machining-data-grid { grid-template-columns:1fr; }
}
@media (max-width:700px) {
  .cnc-catalog-page .page-header { padding-top:108px; padding-bottom:32px; }
  .cnc-catalog-page .page-header h1 { margin-bottom:18px; }
  .cnc-catalog-page .page-header p { font-size:15px; }
  .cnc-catalog-page .step-indicator { padding-bottom:32px; }
  .cnc-catalog-page .step-dot { flex-direction:column; gap:10px; align-items:flex-start; }
  .cnc-catalog-page .step-label { font-size:11px; }
  .cnc-catalog-page .step-line { align-self:flex-start; margin:20px 12px 0; }
  .cnc-catalog-page .main-layout { padding-bottom:56px; }
  .cnc-catalog-page :is(.cat-card,.alloy-card) { grid-template-columns:1fr; }
  .cnc-catalog-page :is(.cat-card-photo,.alloy-card-img) { height:auto; min-height:0; aspect-ratio:4/3; grid-row:auto; border-right:0; border-bottom:1px solid var(--border); }
  .cnc-catalog-page :is(.cat-card-name,.alloy-card-name) { font-size:28px; }
  .cnc-catalog-page .alloy-card-footer { grid-column:1; padding:20px 24px; flex-wrap:wrap; }
  .cnc-catalog-page .alloy-card-specs { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .cnc-catalog-page .mat-panel { width:100%; }
  .cnc-catalog-page .mat-panel-topbar { padding-inline:16px; }
  .cnc-catalog-page .mat-panel-label { display:none; }
  .cnc-detail-page .mat-hero { padding-block:24px; }
  .cnc-detail-page .mat-hero-inner { gap:24px; }
  .cnc-detail-page .mat-hero-chips { flex-direction:column; align-items:flex-start; }
  .cnc-detail-page .mat-section { padding-block:40px; }
  .cnc-detail-page .mat-pill { padding:16px 14px; }
  .cnc-detail-page .prop-cell { padding:18px 14px; }
  .cnc-detail-page .prop-cell .value { font-size:23px; }
  .cnc-detail-page :is(.material-notes,.envelope-card,.tolerance-grid,.machining-data-grid,.drawer-cols) { grid-template-columns:1fr; }
  .cnc-detail-page :is(.envelope-card,.machining-data-grid) { padding:20px; }
  .cnc-detail-page .envelope-card > div:last-child { justify-self:center; }
  .cnc-detail-page .services-grid { grid-template-columns:1fr; }
  .cnc-detail-page :is(.drawer-header,.drawer-body,.drawer-cta) { padding:20px; }
  .cnc-detail-page .drawer { width:100%; }
  .cnc-detail-page .weld-note { padding:20px; gap:12px; }
}
@media (prefers-reduced-motion:reduce) {
  .cnc-page { scroll-behavior:auto; }
  .cnc-page *, .cnc-page *::before, .cnc-page *::after { animation:none !important; transition:none !important; }
}
