/* Catalog product edition — extends the established Vibgyor brand. */
.factory-section .section-head-copy { color: #c7cbc9; }
.factory-section :is([id], .factory-card) { scroll-margin-top: 120px; }
.factory-films, .factory-photos {
  display: grid;
  gap: 20px;
}
.factory-films { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.factory-photos { grid-template-columns: repeat(4, minmax(0, 1fr)); margin-top: 20px; }
.factory-card { margin: 0; background: #242829; border: 1px solid #414647; min-width: 0; }
.factory-player, .factory-photo { display: block; position: relative; overflow: hidden; background: #101313; }
.factory-player { aspect-ratio: 16 / 9; }
.factory-photo { aspect-ratio: 4 / 3; }
.factory-play {
  position: relative;
  display: block;
  width: 100%;
  height: 100%;
  padding: 0;
  border: 0;
  cursor: pointer;
  color: #fff;
  font: inherit;
  text-align: left;
  background: #101313;
}
.factory-play img, .factory-photo img { display: block; width: 100%; height: 100%; object-fit: cover; }
.factory-photo:focus-visible, .factory-play:focus-visible { outline: 2px solid var(--orange); outline-offset: -3px; }
.factory-play-label {
  position: absolute;
  inset: auto 12px 12px;
  display: flex;
  align-items: center;
  gap: 9px;
  width: fit-content;
  padding: 10px 13px;
  background: #151919;
  font-weight: 700;
  font-size: 13px;
}
.factory-play-label span { color: var(--orange); }
.factory-play-label small { color: #d6dad7; font-weight: 500; }
.factory-play:hover .factory-play-label { background: #2c3233; }
.factory-player video { display: block; width: 100%; height: 100%; object-fit: contain; background: #101313; }
.factory-player video::cue { background: rgba(0, 0, 0, .84); }
.factory-card-copy { padding: 16px 19px 19px; }
.factory-card-copy h3 { font: 500 26px/1.08 var(--display); margin: 0 0 7px; }
.factory-card-copy p, .factory-inquiry p { font-size: 13px; color: #c7cbc9; margin: 0; }
.factory-card-copy .text-link { display: inline-block; color: var(--orange); margin-top: 10px; }
.factory-inquiry {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px 28px;
  flex-wrap: wrap;
  border-top: 1px solid #414647;
  margin-top: 25px;
  padding-top: 20px;
}
.factory-inquiry p { max-width: 530px; }
.factory-section { scroll-margin-top: 95px; }
@media (max-width: 850px) { .factory-photos { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 720px) { .factory-films { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 450px) { .factory-photos { grid-template-columns: minmax(0, 1fr); } }

[hidden] { display: none !important; }
.catalog-hero { padding: 72px 0 64px; }
.catalog-hero .hero-grid { grid-template-columns: minmax(0,1fr) minmax(0,1.02fr); gap: 50px; align-items: center; min-height: 0; }
.catalog-hero .hero-copy { padding: 0; min-width: 0; }
.catalog-hero .hero-title { font-size: clamp(56px, 5.1vw, 76px); line-height: 1.02; max-width: 610px; }
.catalog-hero .hero-lede { max-width: 530px; font-size: 15px; margin-top: 24px; }
.catalog-hero .hero-actions { gap: 12px; flex-wrap: wrap; margin-top: 26px; }
.catalog-hero .hero-actions .button { padding: 15px 19px; font-size: 12px; gap: 14px; }
.catalog-hero .hero-proof { margin-top: 30px; }
.hero-proof-item span { max-width: 130px; }
.catalog-hero-visual { background: #fff; color: var(--ink); padding: 22px; position: relative; box-shadow: 22px 22px 0 rgba(255,255,255,.035); }
.hero-visual-label { display: flex; justify-content: space-between; gap: 12px; font-size: 9px; font-weight: 700; letter-spacing: .06em; color: #676b6c; border-bottom: 1px solid #e3e6e3; padding-bottom: 13px; }
.hero-product-large { display: block; padding: 20px 0 15px; }
.hero-product-large img { width: 100%; height: 235px; object-fit: contain; }
.hero-product-large>span { display: flex; justify-content: space-between; padding-top: 16px; font-size: 10px; font-weight: 700; letter-spacing: .03em; }
.hero-product-large b { color: #33775b; }
.hero-product-pair { display: grid; grid-template-columns: 1fr 1fr; border-top: 1px solid #e3e6e3; }
.hero-product-pair>a { padding: 15px 12px 0; }
.hero-product-pair>a:first-child { border-right: 1px solid #e3e6e3; }
.hero-product-pair img { width: 100%; height: 125px; object-fit: contain; }
.hero-product-pair span { display: block; padding-top: 12px; font-size: 9px; font-weight: 700; }
.family-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 30px 25px; }
.family-tile { display: block; border: 1px solid var(--line); background: #f8f6f1; transition: border-color .2s, transform .2s; }
.family-tile:hover { border-color: var(--orange); transform: translateY(-4px); }
.family-tile-image { height: 250px; padding: 30px; position: relative; background: white; border-bottom: 1px solid var(--line); }
.family-tile-image img { width: 100%; height: 100%; object-fit: contain; }
.family-tile-image>span { position: absolute; top: 14px; left: 18px; font-size: 11px; color: #747976; }
.family-tile-copy { padding: 27px; }
.family-tile-copy h3 { margin: 8px 0 10px; font-family: var(--display); font-weight: 500; font-size: 35px; line-height: 1.05; }
.family-tile-copy p:not(.eyebrow) { font-size: 12px; color: var(--muted); min-height: 22px; }
.family-tile-copy .text-link { margin-top: 12px; display: inline-block; font-size: 12px; }
.process-choice-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); border: 1px solid #414546; }
.process-choice { display: flex; flex-direction: column; padding: 27px; color: #eeeae3; border-right: 1px solid #414546; transition: background .2s; }
.process-choice:last-child { border-right: 0; }
.process-choice:hover { background: #292f30; }
.process-choice h3 { font-family: var(--display); font-size: 31px; font-weight: 500; line-height: 1.05; margin-top: 42px; margin-bottom: 12px; }
.process-choice p { font-size: 13px; color: #c0c3c1; margin: 0 0 20px; }
.process-choice .text-link { font-size: 12px; margin-top: auto; color: var(--orange); }
.spec-preview-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); border-top: 1px solid var(--line); }
.spec-preview-grid>div { display: grid; padding: 32px; border-right: 1px solid var(--line); }
.spec-preview-grid>div:first-child { padding-left: 0; }
.spec-preview-grid>div:last-child { border: 0; }
.spec-preview-grid span { font-size: 10px; letter-spacing: .08em; color: var(--muted); }
.spec-preview-grid strong { font-family: var(--display); font-size: 39px; font-weight: 500; margin-top: 20px; }
.spec-preview-grid b { font-family: var(--display); font-size: 70px; line-height: 1.1; color: #ae5320; font-weight: 500; }
.spec-preview-grid p { font-size: 13px; }
.company-facts { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.company-facts>div { padding: 26px; border-right: 1px solid var(--line); }
.company-facts>div:first-child { padding-left: 0; }
.company-facts>div:last-child { border: 0; }
.company-facts strong { display: block; font: 500 55px/1.2 var(--display); }
.company-facts span { font-size: 12px; color: var(--muted); }
.quality-line { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; padding: 18px 0; font-size: 13px; }
.quality-line strong { display: inline-block; padding-bottom: 8px; }
.supply-steps { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 25px; list-style: none; padding: 30px 0 0; margin: 0; border-top: 1px solid var(--line); }
.supply-steps b { font-size: 12px; display: block; margin-bottom: 10px; }
.supply-steps span { font-size: 12px; color: var(--muted); display: block; }
.catalog-controls { border-top: 1px solid var(--line); }
.catalog-controls .filter-group { padding: 24px 0; gap: 10px; flex-wrap: wrap; }
.catalog-controls .filter-button { border-radius: 0; font-size: 12px; }
.catalog-search-row { display: flex; align-items: flex-end; gap: 20px; padding-bottom: 24px; }
.catalog-search,.catalog-status { display: grid; gap: 8px; font-size: 11px; font-weight: 700; }
.catalog-search { flex: 1; }
.catalog-status { width: 220px; }
.catalog-search input,.catalog-status select { min-height: 50px; width: 100%; border: 1px solid var(--line); border-radius: 0; padding: 12px 15px; background: #fff; font-size: 13px; font-weight: 400; color: var(--ink); }
.catalog-search input:focus,.catalog-status select:focus { outline: 2px solid #ad501b; outline-offset: 3px; }
.catalog-reset { min-height: 50px; padding: 12px 0 12px 15px; border: 0; background: transparent; color: var(--ink); font-size: 12px; cursor: pointer; text-decoration: underline; text-underline-offset: 4px; }
.catalog-result-line { display: flex; justify-content: space-between; gap: 20px; align-items: center; border-top: 1px solid var(--line); padding: 12px 0 24px; }
.catalog-result-line p { margin: 0; font-size: 12px; color: var(--muted); }
.catalog-result-line .text-link { font-size: 12px; }
.material-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 25px; }
.material-card { display: flex; flex-direction: column; background: #f9f7f3; border: 1px solid var(--line); min-width: 0; }
.material-image { display: block; position: relative; background: #fff; border-bottom: 1px solid var(--line); height: 245px; padding: 35px 24px 25px; }
.material-image img { width: 100%; height: 100%; object-fit: contain; transition: transform .3s; }
.material-image:hover img { transform: scale(1.035); }
.material-badge { position: absolute; top: 13px; right: 13px; font-size: 9px; padding: 4px 9px; letter-spacing: .03em; background: #e4eee6; color: #21543d; font-weight: 700; }
.material-badge.leaded { background: #e7edf5; color: #31567d; }
.material-badge.auxiliary { background: #eee8df; color: #6c5031; }
.material-body { padding: 26px; display: flex; flex-direction: column; flex: 1; }
.material-body .eyebrow { font-size: 9px; margin: 0 0 13px; }
.material-body h2 { margin: 0 0 15px; font: 500 35px/1.04 var(--display); }
.material-body>p { font-size: 12px; color: var(--muted); line-height: 1.8; }
.material-body ul { padding: 0 0 10px; list-style: none; margin: 7px 0 17px; font-size: 11px; }
.material-body li { padding: 9px 0; border-bottom: 1px solid #e2ded5; }
.material-body li:before { content: '+'; padding-right: 9px; color: #377052; }
.material-body>.text-link { margin-top: auto; font-size: 12px; align-self: flex-start; }
.catalog-empty { padding: 60px 20px; text-align: center; border: 1px solid var(--line); }
.catalog-empty a { text-decoration: underline; }
.catalog-table-wrap { width: 100%; overflow-x: auto; background: #f9f8f4; border: 1px solid var(--line); }
.catalog-matrix { border-collapse: collapse; width: 100%; min-width: 860px; margin: 0; font-size: 12px; }
.catalog-matrix th { background: var(--ink); color: #fff; font-size: 10px; letter-spacing: .02em; font-weight: 600; text-align: left; padding: 17px; }
.catalog-matrix td { text-align: left; vertical-align: middle; border-bottom: 1px solid #ddd9d0; padding: 17px; }
.catalog-matrix tr:last-child td { border-bottom: 0; }
.catalog-matrix tbody tr:nth-child(even) { background: #f0eee7; }
.catalog-matrix tbody tr:hover { background: #fff2e7; }
.catalog-matrix .text-link { font-size: 11px; white-space: nowrap; }
.table-family { font-size: 9px; display: block; color: var(--muted); padding-bottom: 6px; }
.catalog-matrix td strong { font-size: 12px; white-space: nowrap; }
.catalog-note { color: var(--muted); font-size: 11px; line-height: 1.9; max-width: 950px; margin: 16px 0 0; }
.catalog-note:first-child { margin-bottom: 14px; }
.material-detail { padding-top: 40px; }
.material-detail .breadcrumbs { margin-bottom: 40px; }
.material-detail-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 70px; align-items: center; }
.material-detail-photo { border: 1px solid var(--line); padding: 45px 30px 22px; background: #fff; }
.material-detail-photo img { width: 100%; height: 300px; object-fit: contain; }
.material-detail-photo>span { display: block; border-top: 1px solid #e8e5df; margin-top: 25px; padding-top: 17px; font-size: 10px; color: var(--muted); }
.material-detail .page-title { font-size: clamp(50px,5.3vw,76px); margin-top: 0; }
.material-detail .check-list { margin: 26px 0; }
.material-detail-actions { display: flex; flex-wrap: wrap; gap: 20px; align-items: center; }
.material-detail-actions .text-link { font-size: 12px; }
.aux-spec-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); border: 1px solid var(--line); }
.aux-spec-grid>div { display: grid; gap: 30px; padding: 35px; border-right: 1px solid var(--line); }
.aux-spec-grid>div:last-child { border: 0; }
.aux-spec-grid span { font-size: 11px; color: var(--muted); }
.aux-spec-grid strong { font: 500 32px/1.15 var(--display); }
.catalog-download-strip { display: flex; justify-content: space-between; gap: 30px; align-items: center; padding: 35px; border: 1px solid var(--line); }
.catalog-download-strip h2 { font: 500 38px/1.1 var(--display); }
.catalog-download-strip p { font-size: 13px; }
.catalog-legacy-note { padding-top: 25px; font-size: 13px; }
.preview-notice { padding: 7px 20px; text-align: center; background: #e8d8bb; color: #3d311e; font-size: 10px; font-weight: 700; letter-spacing: .06em; }
.preview-notice span { font-weight: 400; letter-spacing: 0; margin-left: 15px; }
a:focus-visible,button:focus-visible,summary:focus-visible { outline: 2px solid #b5541f; outline-offset: 5px; }
.section-dark .eyebrow { color: #d0b193; }
.section-dark .section-head-copy { color: #bfc3c0; }
.text-link::after { content: none; }
@media(min-width:1400px){ .catalog-hero .hero-title {font-size:76px;} }
@media(max-width:1100px){
 .catalog-hero .hero-grid {gap:35px;}
 .catalog-hero .hero-title {font-size:67px;}
 .family-tile-copy {padding:22px;}
 .family-tile-copy h3 {font-size:30px;}
 .process-choice {padding:23px;}
 .process-choice h3 {font-size:28px;}
 .material-detail-grid {gap:40px;}
 .hero-visual-label {font-size:8px;}
}
@media(max-width:900px){
 .catalog-hero .hero-grid {grid-template-columns:1fr; gap:45px;}
 .catalog-hero .hero-title {font-size:76px;max-width:750px;}
 .catalog-hero .hero-lede {max-width:650px;}
 .catalog-hero-visual {max-width:700px;}
 .hero-product-large img {height:280px;}
 .family-grid,.material-grid {grid-template-columns:repeat(2,minmax(0,1fr));}
 .process-choice-grid {grid-template-columns:1fr 1fr;}
 .process-choice:nth-child(2) {border-right:0;}
 .process-choice:nth-child(-n+2) {border-bottom:1px solid #414546;}
 .spec-preview-grid strong {font-size:31px;}
 .material-detail-grid {grid-template-columns:1fr;gap:35px;}
 .material-detail-photo img {height:300px;}
 .catalog-search-row {flex-wrap:wrap;}
 .catalog-search {min-width:240px;}
 .catalog-status {width:190px;}
 .company-facts strong {font-size:43px;}
 .catalog-download-strip {flex-direction:column;align-items:flex-start;}
}
@media(max-width:600px){
 :root {--container:calc(100vw - 36px);}
 .catalog-hero {padding:44px 0;}
 .catalog-hero .hero-title {font-size:57px;}
 .catalog-hero .hero-lede {font-size:14px;}
 .catalog-hero .hero-actions {flex-direction:column;align-items:stretch;}
 .catalog-hero .hero-actions .button {justify-content:space-between;}
 .catalog-hero .hero-proof {gap:15px; margin-top:32px;}
 .hero-proof-item strong {font-size:38px;}
 .hero-proof-item span {font-size:10px;}
 .catalog-hero-visual {padding:16px;box-shadow:8px 8px 0 rgba(255,255,255,.04);}
 .hero-product-large img {height:190px;}
 .hero-visual-label {font-size:7px;}
 .hero-product-large>span {font-size:8px;}
 .hero-product-pair img {height:90px;}
 .hero-product-pair span {font-size:7px;}
 .family-grid,.material-grid {grid-template-columns:1fr;gap:20px;}
 .family-tile-image {height:250px;}
 .family-tile-copy h3 {font-size:35px;}
 .process-choice {padding:22px 18px;}
 .process-choice h3 {font-size:28px;margin-top:28px;}
 .process-choice p,.process-choice .text-link {font-size:11px;}
 .spec-preview-grid {grid-template-columns:1fr;}
 .spec-preview-grid>div {padding:24px 0; border:0; border-bottom:1px solid var(--line);}
 .spec-preview-grid strong {font-size:39px;margin-top:8px;}
 .spec-preview-grid b {font-size:58px;}
 .company-facts {grid-template-columns:1fr 1fr;}
 .company-facts>div {padding:22px 12px;}
 .company-facts>div:nth-child(odd){padding-left:0;}
 .company-facts>div:nth-child(2){border-right:0;}
 .company-facts>div:nth-child(-n+2){border-bottom:1px solid var(--line);}
 .quality-line {grid-template-columns:1fr;gap:0;}
 .supply-steps {grid-template-columns:1fr 1fr;gap:25px;}
 .catalog-search-row {display:grid;grid-template-columns:1fr;gap:16px;}
 .catalog-search,.catalog-status {width:100%;min-width:0;}
 .catalog-reset {padding-left:0;text-align:left;min-height:30px;}
 .catalog-result-line {align-items:flex-start;flex-direction:column;gap:8px;}
 .catalog-controls .filter-group {gap:7px;}
 .catalog-controls .filter-button {padding:9px 12px;font-size:11px;}
 .material-image {height:255px;}
 .material-detail-photo {padding:35px 20px 20px;}
 .material-detail-photo img {height:210px;}
 .material-detail .page-title {font-size:55px;}
 .aux-spec-grid {grid-template-columns:1fr;}
 .aux-spec-grid>div {border-right:0;border-bottom:1px solid var(--line);padding:26px;gap:16px;}
 .preview-notice {font-size:8px;}
 .preview-notice span {display:block;margin:3px 0 0;}
}
@media(prefers-reduced-motion:reduce){html {scroll-behavior:auto;} *,*:before,*:after {transition:none!important;animation:none!important;}}
