/* =================================================================
 * NORSUR · Tecpack stylesheet
 *   - tecpack.html         · indice grid
 *   - tecpack-producto.html · ficha A4 imprimible (12 paginas)
 *   Print media query hace las hojas tamano A4 exacto para PDF.
 * ================================================================= */

/* ---------- INDEX PAGE (tecpack.html) ---------- */
.tecpack-body { background: #f1e7d0; color: #14120f; }

.tp-hero { padding: 120px 40px 60px; max-width: 1280px; margin: 0 auto; }
.tp-hero .eyebrow { font-family: "JetBrains Mono", monospace; font-size: 11px; letter-spacing: 0.18em; text-transform: uppercase; opacity: 0.65; margin: 0 0 16px; }
.tp-hero h1 { font-family: "Cormorant Garamond", serif; font-weight: 400; font-size: clamp(60px, 8vw, 120px); line-height: 0.9; margin: 0 0 20px; letter-spacing: -0.02em; }
.tp-hero h1 em { font-style: italic; opacity: 0.5; }
.tp-lead { max-width: 620px; font-size: 16px; line-height: 1.6; opacity: 0.8; margin: 0 0 40px; }
.tp-meta { display: flex; gap: 60px; padding-top: 30px; border-top: 1px solid rgba(0,0,0,0.12); }
.tp-meta > div { display: flex; flex-direction: column; gap: 4px; }
.tp-meta em { font-family: "Cormorant Garamond", serif; font-size: 48px; font-weight: 400; font-style: italic; line-height: 1; }
.tp-meta span { font-family: "JetBrains Mono", monospace; font-size: 10px; letter-spacing: 0.15em; text-transform: uppercase; opacity: 0.6; }

.tp-filters { max-width: 1280px; margin: 0 auto; padding: 0 40px 40px; display: flex; flex-direction: column; gap: 20px; }
.tp-filter-group { display: flex; align-items: center; gap: 20px; flex-wrap: wrap; }
.tp-filter-label { font-family: "JetBrains Mono", monospace; font-size: 10px; letter-spacing: 0.15em; text-transform: uppercase; opacity: 0.55; min-width: 80px; }
.tp-filter-chips { display: flex; gap: 6px; flex-wrap: wrap; }
.tp-filter-chips a {
  padding: 6px 14px; border: 1px solid rgba(0,0,0,0.15); border-radius: 100px;
  font-family: "JetBrains Mono", monospace; font-size: 11px; letter-spacing: 0.05em;
  text-decoration: none; color: #14120f; transition: all 0.2s;
}
.tp-filter-chips a:hover { border-color: #14120f; }
.tp-filter-chips a.active { background: #14120f; color: #f1e7d0; border-color: #14120f; }
.tp-search {
  padding: 10px 16px; border: 1px solid rgba(0,0,0,0.15); border-radius: 100px;
  font-family: "JetBrains Mono", monospace; font-size: 12px;
  background: transparent; color: #14120f; max-width: 320px;
}
.tp-search:focus { outline: none; border-color: #14120f; }

.tp-grid { max-width: 1280px; margin: 0 auto 120px; padding: 0 40px; display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 24px; }
.tp-card {
  display: flex; flex-direction: column; text-decoration: none; color: #14120f;
  background: #fefaf0; border: 1px solid rgba(0,0,0,0.08); transition: all 0.25s;
  overflow: hidden;
}
.tp-card:hover { transform: translateY(-2px); box-shadow: 0 12px 30px rgba(0,0,0,0.12); border-color: rgba(0,0,0,0.2); }
.tp-card-img { aspect-ratio: 3/4; background-size: cover; background-position: center; background-color: #ebe1c8; }
.tp-card-body { padding: 14px 14px 10px; }
.tp-card-sku { font-family: "JetBrains Mono", monospace; font-size: 10px; letter-spacing: 0.1em; opacity: 0.55; margin-bottom: 4px; }
.tp-card-name { font-family: "Cormorant Garamond", serif; font-size: 18px; font-weight: 500; line-height: 1.2; margin-bottom: 8px; }
.tp-card-meta { display: flex; gap: 8px; flex-wrap: wrap; font-family: "JetBrains Mono", monospace; font-size: 10px; opacity: 0.6; }
.tp-card-meta span { padding: 2px 6px; border: 1px solid rgba(0,0,0,0.1); border-radius: 100px; }
.tp-card-open { padding: 10px 14px; font-family: "JetBrains Mono", monospace; font-size: 10px; letter-spacing: 0.12em; text-transform: uppercase; border-top: 1px solid rgba(0,0,0,0.06); background: rgba(20,18,15,0.02); }
.tp-card:hover .tp-card-open { background: #14120f; color: #f1e7d0; }
.tp-empty { grid-column: 1 / -1; text-align: center; padding: 80px 20px; font-family: "JetBrains Mono", monospace; opacity: 0.5; }

.tp-footer { background: #14120f; color: #f1e7d0; padding: 40px 0; text-align: center; }
.tp-footer p { font-family: "JetBrains Mono", monospace; font-size: 11px; letter-spacing: 0.08em; opacity: 0.7; margin: 4px 0; }
.tp-footer-legal { opacity: 0.45 !important; font-size: 10px !important; }

/* =================================================================
 * SINGLE PAGE (tecpack-producto.html) · A4 editorial
 * ================================================================= */
.tecpack-single { background: #dcd4c0; padding: 40px 0; }

.btn-print {
  padding: 8px 18px; background: #14120f; color: #f1e7d0; border: none; border-radius: 100px;
  font-family: "JetBrains Mono", monospace; font-size: 11px; letter-spacing: 0.1em; text-transform: uppercase;
  cursor: pointer; transition: opacity 0.2s; margin-right: 12px;
}
.btn-print:hover { opacity: 0.85; }
.btn-back {
  padding: 8px 14px; border: 1px solid rgba(0,0,0,0.2); border-radius: 100px;
  font-family: "JetBrains Mono", monospace; font-size: 11px; letter-spacing: 0.1em; text-transform: uppercase;
  text-decoration: none; color: #14120f;
}

.tp-sheet { max-width: 900px; margin: 20px auto; }
.tp-page {
  background: #ffffff; color: #14120f;
  width: 210mm; min-height: 297mm;
  margin: 0 auto 30px; padding: 14mm 16mm;
  box-shadow: 0 20px 50px rgba(0,0,0,0.18);
  page-break-after: always;
  display: block;
  box-sizing: border-box;
  position: relative;
  font-family: "Inter", sans-serif;
}

/* ---------- PAGE HEADER ---------- */
.tp-page-head {
  display: grid; grid-template-columns: 1fr auto 1fr;
  align-items: flex-start; gap: 8mm;
  padding-bottom: 6mm; border-bottom: 1px solid #14120f; margin-bottom: 8mm;
}
.tp-page-head-l { justify-self: start; }
.tp-brand-row { display: flex; gap: 10px; align-items: center; }
.tp-brand-logo { width: 28px; height: 34px; fill: none; stroke: #14120f; stroke-width: 14; }
.tp-brand-name { font-family: "Cormorant Garamond", serif; font-size: 20px; font-weight: 500; letter-spacing: 0.04em; line-height: 1; }
.tp-brand-sub { font-family: "JetBrains Mono", monospace; font-size: 8.5px; letter-spacing: 0.15em; text-transform: uppercase; opacity: 0.65; margin-top: 3px; }
.tp-page-head-c { text-align: center; align-self: center; }
.tp-page-title-mini {
  font-family: "JetBrains Mono", monospace; font-size: 9px; letter-spacing: 0.25em;
  text-transform: uppercase; color: #14120f; opacity: 0.7;
  padding: 3px 14px; border: 1px solid rgba(0,0,0,0.25); border-radius: 100px;
  display: inline-block;
}
.tp-page-head-r { text-align: right; }
.tp-sku-big { font-family: "JetBrains Mono", monospace; font-size: 16px; font-weight: 600; letter-spacing: 0.06em; }
.tp-season { font-family: "JetBrains Mono", monospace; font-size: 9.5px; letter-spacing: 0.1em; opacity: 0.7; margin-top: 3px; }
.tp-pagenum { font-family: "JetBrains Mono", monospace; font-size: 8.5px; opacity: 0.5; margin-top: 4px; letter-spacing: 0.1em; }

/* ---------- PAGE FOOTER ---------- */
.tp-page-foot {
  position: absolute; bottom: 8mm; left: 16mm; right: 16mm;
  padding-top: 4mm; border-top: 1px solid rgba(0,0,0,0.12);
  font-family: "JetBrains Mono", monospace; font-size: 7.5px;
  opacity: 0.55; display: flex; justify-content: space-between;
  flex-wrap: wrap; gap: 4mm; letter-spacing: 0.05em;
}
.tp-page-foot p { margin: 0; }

/* ---------- TITLE BLOCK ---------- */
.tp-title-block { margin-bottom: 8mm; }
.tp-name { font-family: "Cormorant Garamond", serif; font-size: 38px; font-weight: 400; line-height: 1; margin: 0 0 5px; letter-spacing: -0.01em; }
.tp-name em { font-style: italic; opacity: 0.55; }
.tp-subtitle { font-family: "JetBrains Mono", monospace; font-size: 10px; letter-spacing: 0.12em; text-transform: uppercase; opacity: 0.7; margin-bottom: 8px; }
.tp-concept { font-family: "Inter", sans-serif; font-size: 10.5px; line-height: 1.55; opacity: 0.82; max-width: 95%; margin: 0; }

/* ---------- SECTION HEADERS (numbered) ---------- */
.tp-section { margin-bottom: 7mm; break-inside: avoid; }
.tp-h {
  font-family: "JetBrains Mono", monospace; font-size: 10px; letter-spacing: 0.14em; text-transform: uppercase;
  font-weight: 600; margin: 0 0 3.5mm; padding-bottom: 1.5mm; border-bottom: 2px solid #14120f;
  display: flex; align-items: center; gap: 8px;
}
.tp-h-n {
  font-family: "JetBrains Mono", monospace; font-size: 9px;
  background: #14120f; color: #f1e7d0;
  padding: 2px 7px; letter-spacing: 0.05em; font-weight: 600;
}

/* ---------- COVER PAGE ---------- */
.tp-page-cover {
  background: #fefaf0;
  padding: 0;
  overflow: hidden;
}
.tp-cover-marks { position: absolute; inset: 8mm; pointer-events: none; z-index: 2; }
.tp-cover-mark {
  position: absolute; width: 10mm; height: 10mm;
  border: 1px solid #14120f;
}
.tp-cover-tl { top: 0; left: 0; border-right: 0; border-bottom: 0; }
.tp-cover-tr { top: 0; right: 0; border-left: 0; border-bottom: 0; }
.tp-cover-bl { bottom: 0; left: 0; border-right: 0; border-top: 0; }
.tp-cover-br { bottom: 0; right: 0; border-left: 0; border-top: 0; }

.tp-cover-top {
  position: relative; z-index: 3;
  padding: 14mm 16mm 0;
  display: flex; justify-content: space-between; align-items: flex-start;
}
.tp-cover-brand { display: flex; gap: 12px; align-items: center; }
.tp-brand-logo-big { width: 38px; height: 46px; fill: none; stroke: #14120f; stroke-width: 12; }
.tp-cover-name { font-family: "Cormorant Garamond", serif; font-size: 30px; font-weight: 500; letter-spacing: 0.1em; line-height: 1; }
.tp-cover-sub { font-family: "JetBrains Mono", monospace; font-size: 9px; letter-spacing: 0.14em; text-transform: uppercase; opacity: 0.65; margin-top: 4px; }
.tp-cover-class { text-align: right; }
.tp-cover-badge {
  font-family: "JetBrains Mono", monospace; font-size: 8.5px; letter-spacing: 0.3em;
  text-transform: uppercase;
  background: #14120f; color: #f1e7d0; padding: 5px 12px; display: inline-block;
}
.tp-cover-ref { font-family: "JetBrains Mono", monospace; font-size: 10px; letter-spacing: 0.08em; margin-top: 6px; opacity: 0.7; }

.tp-cover-hero {
  margin: 10mm 16mm 0; height: 115mm;
  background-color: #ebe1c8; background-size: cover; background-position: center;
  border: 1px solid rgba(0,0,0,0.12);
  position: relative;
}
.tp-cover-hero::after {
  content: "";
  position: absolute; inset: 0;
  background: linear-gradient(180deg, transparent 60%, rgba(20,18,15,0.06) 100%);
  pointer-events: none;
}

.tp-cover-body {
  padding: 8mm 16mm 4mm;
}
.tp-cover-eyebrow {
  font-family: "JetBrains Mono", monospace; font-size: 9px; letter-spacing: 0.2em;
  text-transform: uppercase; opacity: 0.65; margin-bottom: 3mm;
}
.tp-cover-title {
  font-family: "Cormorant Garamond", serif; font-size: 48px; font-weight: 400;
  line-height: 0.98; margin: 0 0 4mm; letter-spacing: -0.015em;
}
.tp-cover-concept {
  font-family: "Inter", sans-serif; font-size: 10.5px; line-height: 1.55;
  opacity: 0.82; max-width: 85%; margin: 0 0 6mm;
}
.tp-cover-grid {
  display: grid; grid-template-columns: repeat(4, 1fr);
  gap: 4mm 6mm; padding-top: 4mm; border-top: 1px solid rgba(0,0,0,0.18);
}
.tp-cover-grid > div { display: flex; flex-direction: column; gap: 1mm; }
.tp-cover-grid span {
  font-family: "JetBrains Mono", monospace; font-size: 8px; letter-spacing: 0.15em;
  text-transform: uppercase; opacity: 0.55;
}
.tp-cover-grid strong {
  font-family: "Cormorant Garamond", serif; font-size: 17px; font-weight: 500;
  letter-spacing: 0.01em;
}

.tp-cover-foot {
  position: absolute; bottom: 14mm; left: 16mm; right: 16mm;
  display: grid; grid-template-columns: 1fr 1fr; gap: 10mm;
  align-items: flex-end;
  padding-top: 5mm; border-top: 1px solid rgba(0,0,0,0.18);
}
.tp-cover-foot-l { display: flex; flex-direction: column; gap: 3mm; }
.tp-cover-meta { font-family: "JetBrains Mono", monospace; font-size: 8.5px; letter-spacing: 0.08em; opacity: 0.6; }

.tp-cover-toc { }
.tp-cover-toc-label {
  font-family: "JetBrains Mono", monospace; font-size: 8px; letter-spacing: 0.2em;
  text-transform: uppercase; opacity: 0.55; margin-bottom: 2mm; padding-bottom: 1mm;
  border-bottom: 1px solid rgba(0,0,0,0.15);
}
.tp-cover-toc ol {
  list-style: none; padding: 0; margin: 0;
  font-family: "Inter", sans-serif; font-size: 9px; line-height: 1.65;
  column-count: 2; column-gap: 8mm;
}
.tp-cover-toc ol li { counter-increment: toc; break-inside: avoid; }
.tp-cover-toc ol { counter-reset: toc; }
.tp-cover-toc ol li::before {
  content: counter(toc, decimal-leading-zero) "  ";
  font-family: "JetBrains Mono", monospace; font-size: 7.5px;
  opacity: 0.5; letter-spacing: 0.08em;
}

/* ---------- BARCODE ---------- */
.tp-barcode {
  display: inline-flex; align-items: flex-end;
  height: 11mm; background: #fefaf0;
  padding: 2mm 3mm; border: 1px solid rgba(0,0,0,0.18);
  position: relative;
}
.tp-bar {
  display: inline-block; background: #14120f;
  height: 100%; margin-right: 0.6mm;
}
.tp-barcode-text {
  position: absolute; bottom: -4mm; left: 3mm;
  font-family: "JetBrains Mono", monospace; font-size: 7px;
  letter-spacing: 0.18em; opacity: 0.8;
}

/* ---------- GRID TWO (overview + image) ---------- */
.tp-grid-two { display: grid; grid-template-columns: 1fr 1.1fr; gap: 7mm; margin-bottom: 7mm; }
.tp-flat, .tp-overview { display: block; }
.tp-flat-label, .tp-overview-label {
  font-family: "JetBrains Mono", monospace; font-size: 9px; letter-spacing: 0.15em;
  text-transform: uppercase; opacity: 0.65; margin-bottom: 3mm; padding-bottom: 1.5mm; border-bottom: 1px solid rgba(0,0,0,0.18);
}
.tp-flat-img { aspect-ratio: 3/4; background-size: cover; background-position: center; background-color: #f4ecd4; border: 1px solid rgba(0,0,0,0.12); }
.tp-flat-caption { font-family: "Inter", sans-serif; font-size: 8.5px; opacity: 0.55; margin-top: 2mm; font-style: italic; line-height: 1.4; }

.tp-overview-table { width: 100%; border-collapse: collapse; font-family: "Inter", sans-serif; font-size: 9.5px; }
.tp-overview-table th, .tp-overview-table td { text-align: left; padding: 1.8mm 2mm; border-bottom: 1px solid rgba(0,0,0,0.08); vertical-align: top; }
.tp-overview-table th { font-family: "JetBrains Mono", monospace; font-weight: 500; width: 40%; font-size: 8.5px; letter-spacing: 0.06em; text-transform: uppercase; opacity: 0.65; }

/* ---------- COLORWAYS ---------- */
.tp-colorways { display: grid; grid-template-columns: repeat(5, 1fr); gap: 3mm; }
.tp-color-chip { display: flex; flex-direction: column; align-items: flex-start; gap: 1.5mm; }
.tp-color-sw { width: 100%; aspect-ratio: 3/2; border: 1px solid rgba(0,0,0,0.18); box-shadow: inset 0 0 0 0.6mm #fefaf0; }
.tp-color-name { font-family: "Cormorant Garamond", serif; font-size: 12px; font-weight: 500; line-height: 1.1; }
.tp-color-tpx { font-family: "JetBrains Mono", monospace; font-size: 8.5px; font-weight: 500; opacity: 0.85; }
.tp-color-key { font-family: "JetBrains Mono", monospace; font-size: 7.5px; opacity: 0.5; letter-spacing: 0.04em; }
.tp-color-note {
  font-family: "Inter", sans-serif; font-size: 8.5px; opacity: 0.65;
  margin-top: 3mm; padding: 2.5mm 3mm; background: rgba(20,18,15,0.03);
  border-left: 2px solid #14120f; font-style: italic;
}
.tp-color-meta { display: flex; flex-direction: column; gap: 0.8mm; }

/* ---------- REVISION / HS / TABLES GENERIC ---------- */
.tp-revision, .tp-bom, .tp-pattern-pieces, .tp-trim-costs, .tp-print-techniques,
.tp-seams, .tp-pom, .tp-lab-tests, .tp-cost, .tp-cost-summary, .tp-volume, .tp-suppliers, .tp-aql {
  width: 100%; border-collapse: collapse;
  font-family: "Inter", sans-serif; font-size: 9.5px;
}
.tp-revision th, .tp-revision td, .tp-bom th, .tp-bom td,
.tp-pattern-pieces th, .tp-pattern-pieces td, .tp-trim-costs th, .tp-trim-costs td,
.tp-print-techniques th, .tp-print-techniques td, .tp-seams th, .tp-seams td,
.tp-pom th, .tp-pom td, .tp-lab-tests th, .tp-lab-tests td,
.tp-cost th, .tp-cost td, .tp-cost-summary th, .tp-cost-summary td,
.tp-volume th, .tp-volume td, .tp-suppliers th, .tp-suppliers td,
.tp-aql th, .tp-aql td {
  text-align: left; padding: 2.2mm 2mm;
  border-bottom: 1px solid rgba(0,0,0,0.08); vertical-align: top;
}
.tp-revision th, .tp-bom th, .tp-pattern-pieces th, .tp-trim-costs th,
.tp-print-techniques th, .tp-seams th, .tp-pom th, .tp-lab-tests th,
.tp-cost thead th, .tp-cost-summary th, .tp-volume th, .tp-suppliers th, .tp-aql th {
  font-family: "JetBrains Mono", monospace; font-weight: 600; font-size: 8.5px;
  letter-spacing: 0.06em; text-transform: uppercase; opacity: 0.72;
  background: rgba(20,18,15,0.04);
}
.tp-num { text-align: right !important; font-family: "JetBrains Mono", monospace; font-variant-numeric: tabular-nums; }
.tp-mono { font-family: "JetBrains Mono", monospace; font-size: 9px; letter-spacing: 0.04em; }

/* ---------- CONSTRUCTION ---------- */
.tp-construction { margin: 0; padding-left: 18px; font-family: "Inter", sans-serif; font-size: 9.5px; line-height: 1.65; }
.tp-construction li { margin-bottom: 1.3mm; }
.tp-construction-meta {
  margin-top: 4mm; padding: 3mm 3.5mm; background: rgba(20,18,15,0.04);
  font-family: "JetBrains Mono", monospace; font-size: 8.5px;
  display: grid; grid-template-columns: 1fr 1fr; gap: 2mm 6mm;
  border-left: 2px solid #14120f;
}

/* ---------- SIZE CHART ---------- */
.tp-size { width: 100%; border-collapse: collapse; font-family: "JetBrains Mono", monospace; font-size: 9.5px; }
.tp-size th, .tp-size td { text-align: center; padding: 2.2mm; border: 1px solid rgba(0,0,0,0.12); }
.tp-size th { background: #14120f; color: #f1e7d0; font-size: 8.5px; letter-spacing: 0.06em; text-transform: uppercase; }
.tp-size td:first-child, .tp-size th:first-child { text-align: left; font-weight: 600; }

/* ---------- POM ---------- */
.tp-pom-n {
  display: inline-block; background: #14120f; color: #f1e7d0;
  padding: 1px 5px; font-family: "JetBrains Mono", monospace; font-size: 8px;
  letter-spacing: 0.05em; margin-right: 6px; font-weight: 600;
}

/* ---------- GRADING ---------- */
.tp-grading-box {
  padding: 3.5mm 4mm; background: rgba(20,18,15,0.04);
  font-family: "JetBrains Mono", monospace; font-size: 10px; line-height: 1.6;
  border-left: 2px solid #14120f; letter-spacing: 0.02em;
}

/* ---------- MARKER NOTE ---------- */
.tp-marker-note {
  font-family: "Inter", sans-serif; font-size: 8.5px; opacity: 0.7;
  margin-top: 3mm; padding: 2.5mm 3mm; background: #fefaf0;
  border: 1px dashed rgba(0,0,0,0.2); line-height: 1.5; font-style: italic;
}

/* ---------- BRAND MARK BLOCK ---------- */
.tp-brand-block { display: grid; grid-template-columns: 1fr 2fr; gap: 5mm; align-items: start; }
.tp-brand-visual { padding: 6mm; background: rgba(20,18,15,0.04); text-align: center; border: 1px solid rgba(0,0,0,0.1); }
.tp-brand-svg { width: 62px; height: 74px; fill: none; stroke: #14120f; stroke-width: 10; display: block; margin: 0 auto 3mm; }
.tp-brand-desc strong { font-family: "JetBrains Mono", monospace; font-size: 9.5px; letter-spacing: 0.1em; text-transform: uppercase; display: block; margin-bottom: 1.5mm; }
.tp-brand-desc p { font-family: "Inter", sans-serif; font-size: 8.5px; line-height: 1.5; margin: 0; opacity: 0.75; }
.tp-brand-table { width: 100%; border-collapse: collapse; font-family: "Inter", sans-serif; font-size: 9px; }
.tp-brand-table th, .tp-brand-table td { text-align: left; padding: 1.8mm; border-bottom: 1px solid rgba(0,0,0,0.08); vertical-align: top; }
.tp-brand-table th { font-family: "JetBrains Mono", monospace; font-weight: 500; width: 35%; font-size: 8px; letter-spacing: 0.05em; text-transform: uppercase; opacity: 0.7; }

/* ---------- WASH CARE ---------- */
.tp-wash-text { font-family: "Inter", sans-serif; font-size: 10px; line-height: 1.55; padding: 3mm 3.5mm; background: rgba(20,18,15,0.04); border-left: 2px solid #14120f; margin-bottom: 3mm; }
.tp-wash-picto { list-style: none; margin: 0 0 3mm; padding: 0; display: grid; grid-template-columns: repeat(2, 1fr); gap: 2mm; }
.tp-wash-picto li { display: flex; align-items: center; gap: 3mm; font-family: "Inter", sans-serif; font-size: 9.5px; }
.tp-wash-badge { display: inline-flex; align-items: center; justify-content: center; min-width: 9mm; height: 9mm; border: 1.5px solid #14120f; border-radius: 2px; font-family: "JetBrains Mono", monospace; font-size: 8.5px; font-weight: 600; padding: 0 1.5mm; }
.tp-wash-label-spec { font-family: "Inter", sans-serif; font-size: 9px; line-height: 1.55; padding: 2.5mm 3mm; border: 1px dashed rgba(0,0,0,0.2); background: #fefaf0; }
.tp-wash-label-spec strong { font-family: "JetBrains Mono", monospace; font-size: 8.5px; letter-spacing: 0.08em; text-transform: uppercase; display: block; margin-bottom: 1mm; }

/* ---------- LABS GRID ---------- */
.tp-labs-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 2.5mm; }
.tp-labs-grid > div {
  display: flex; flex-direction: column; gap: 1mm;
  padding: 2.5mm 3mm; border: 1px solid rgba(0,0,0,0.1); background: #fefaf0;
}
.tp-labs-grid strong { font-family: "Cormorant Garamond", serif; font-size: 13px; font-weight: 500; }
.tp-labs-grid span { font-family: "JetBrains Mono", monospace; font-size: 8.5px; opacity: 0.65; letter-spacing: 0.04em; }

/* ---------- COST TABLES ---------- */
.tp-cost tfoot .tp-cost-total {
  background: #14120f; color: #f1e7d0;
}
.tp-cost tfoot .tp-cost-total th, .tp-cost tfoot .tp-cost-total { border: none; }
.tp-cost tfoot .tp-cost-total th { padding: 3mm 2mm; font-size: 10px; text-transform: uppercase; }
.tp-cost-summary th { text-transform: none !important; opacity: 1 !important; }
.tp-cost-summary tr:last-child { font-weight: 600; }

/* ---------- TIMELINE ---------- */
.tp-timeline {
  display: grid;
  grid-template-columns: 1fr 6px 1fr 6px 1fr 6px 1fr 6px 1fr;
  gap: 0; align-items: center;
  padding: 3mm 0;
}
.tp-tl-step {
  padding: 3mm 3mm; border: 1px solid rgba(0,0,0,0.15); background: #fefaf0;
  display: flex; flex-direction: column; gap: 1mm; min-height: 22mm;
  justify-content: center;
}
.tp-tl-step.tp-tl-end { background: #14120f; color: #f1e7d0; border-color: #14120f; }
.tp-tl-num { font-family: "JetBrains Mono", monospace; font-size: 8px; opacity: 0.6; letter-spacing: 0.15em; }
.tp-tl-end .tp-tl-num { opacity: 0.8; }
.tp-tl-label { font-family: "Cormorant Garamond", serif; font-size: 13px; font-weight: 500; line-height: 1.2; }
.tp-tl-dur { font-family: "JetBrains Mono", monospace; font-size: 9px; letter-spacing: 0.05em; opacity: 0.8; }
.tp-tl-arrow {
  height: 2px; background: #14120f; opacity: 0.5;
}

/* ---------- COMPLIANCE + SUSTAIN ---------- */
.tp-two-col { display: grid; grid-template-columns: 1fr 1fr; gap: 5mm; align-items: start; }
.tp-compliance, .tp-sustain, .tp-defects, .tp-inspect {
  list-style: none; padding: 0; margin: 0;
  font-family: "Inter", sans-serif; font-size: 9.5px; line-height: 1.55;
}
.tp-compliance li, .tp-inspect li {
  padding: 1.5mm 0 1.5mm 5mm; border-bottom: 1px solid rgba(0,0,0,0.06);
  position: relative;
}
.tp-compliance li::before, .tp-inspect li::before {
  content: ""; position: absolute; left: 0; top: 3mm;
  width: 3mm; height: 1px; background: #14120f;
}
.tp-inspect { counter-reset: ins; }
.tp-inspect li { counter-increment: ins; padding-left: 8mm; }
.tp-inspect li::before {
  content: counter(ins, decimal-leading-zero);
  width: auto; height: auto; background: none;
  font-family: "JetBrains Mono", monospace; font-size: 8px; letter-spacing: 0.05em;
  font-weight: 600; color: #14120f; opacity: 0.8;
}

.tp-sustain li {
  display: flex; align-items: flex-start; gap: 3mm;
  padding: 1.5mm 0; border-bottom: 1px solid rgba(0,0,0,0.06);
}
.tp-sustain-dot {
  display: inline-block; width: 6px; height: 6px; border-radius: 50%;
  background: #14120f; flex-shrink: 0; margin-top: 1.5mm;
}
.tp-labeling-box {
  padding: 3mm 3.5mm; background: rgba(20,18,15,0.04);
  font-family: "Inter", sans-serif; font-size: 9.5px; line-height: 1.55;
  border-left: 2px solid #14120f;
}

/* ---------- DEFECTS ---------- */
.tp-defects li {
  padding: 1.5mm 0 1.5mm 6mm; border-bottom: 1px solid rgba(0,0,0,0.06);
  position: relative;
}
.tp-defects li::before {
  content: ""; position: absolute; left: 0; top: 2.8mm;
  width: 3mm; height: 3mm;
}
.tp-defects-critical li::before { background: #8b2830; }
.tp-defects-major li::before    { background: #d4621a; }
.tp-defects-minor li::before    { background: #d4a83a; }

/* ---------- QC CHECKLIST ---------- */
.tp-qc {
  margin: 0; padding-left: 0; list-style: none;
  font-family: "Inter", sans-serif; font-size: 9.5px; line-height: 1.6;
  columns: 2; column-gap: 6mm;
}
.tp-qc li {
  margin-bottom: 2mm; break-inside: avoid;
  padding-left: 7mm; position: relative;
}
.tp-qc { counter-reset: qc; }
.tp-qc li { counter-increment: qc; }
.tp-qc li::before {
  content: counter(qc, decimal-leading-zero);
  position: absolute; left: 0; top: 0;
  font-family: "JetBrains Mono", monospace; font-size: 8px; letter-spacing: 0.05em;
  font-weight: 600; color: #14120f;
  background: #fefaf0; border: 1px solid #14120f;
  padding: 1px 4px;
}

/* ---------- SIGN OFF ---------- */
.tp-signoff { margin-top: 8mm; }
.tp-sign { width: 100%; border-collapse: collapse; table-layout: fixed; }
.tp-sign th { font-family: "JetBrains Mono", monospace; font-size: 8px; letter-spacing: 0.1em; text-transform: uppercase; text-align: left; padding: 2mm; border-bottom: 1px solid #14120f; width: 25%; }
.tp-sign td { padding: 3mm 2mm; vertical-align: top; }
.tp-sign-box { min-height: 26mm; border: 1px dashed rgba(0,0,0,0.35); background: #fefaf0; margin-bottom: 2mm; padding: 2.5mm 3mm; display: flex; flex-direction: column; gap: 1mm; }
.tp-sign-name { font-family: "Cormorant Garamond", serif; font-size: 12px; color: #14120f; border-bottom: 1px solid rgba(0,0,0,0.15); padding-bottom: 0.8mm; }
.tp-sign-role { font-family: "JetBrains Mono", monospace; font-size: 7px; letter-spacing: 0.08em; text-transform: uppercase; opacity: 0.6; }
.tp-sign-sig { font-family: "JetBrains Mono", monospace; font-size: 7.5px; margin-top: auto; opacity: 0.55; letter-spacing: 0.05em; }
.tp-sign-date { font-family: "JetBrains Mono", monospace; font-size: 7.5px; opacity: 0.55; letter-spacing: 0.05em; }
.tp-sign small { font-family: "JetBrains Mono", monospace; font-size: 7px; opacity: 0.55; letter-spacing: 0.04em; line-height: 1.4; display: block; }

/* ---------- SEAL ---------- */
.tp-seal {
  margin-top: 5mm; padding: 4mm 5mm;
  border: 1px solid rgba(0,0,0,0.25);
  display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 5mm;
  background: linear-gradient(135deg, #fefaf0 0%, #f4ead0 100%);
}
.tp-seal-mark { width: 16mm; height: 20mm; color: #14120f; }
.tp-seal-mark svg { width: 100%; height: 100%; }
.tp-seal-text { display: flex; flex-direction: column; gap: 0.8mm; }
.tp-seal-text strong { font-family: "Cormorant Garamond", serif; font-size: 15px; letter-spacing: 0.15em; text-transform: uppercase; color: #14120f; }
.tp-seal-text span { font-family: "JetBrains Mono", monospace; font-size: 8.5px; letter-spacing: 0.08em; opacity: 0.7; text-transform: uppercase; }
.tp-seal-barcode .tp-barcode { height: 14mm; }

/* ---------- FLATS (page 4) ---------- */
.tp-flats-grid {
  display: grid; grid-template-columns: 1fr 1fr; gap: 6mm;
  margin-bottom: 7mm;
}
.tp-flat-figure {
  margin: 0; display: flex; flex-direction: column; gap: 2mm;
}
.tp-flat-svg-wrap {
  aspect-ratio: 3/4; background: #fefaf0;
  border: 1px solid rgba(0,0,0,0.12);
  position: relative; overflow: hidden;
}
.tp-flat-svg-back { filter: saturate(0.6); }
.tp-flat-view-ph {
  position: absolute; inset: 5mm;
  background-size: contain; background-position: center; background-repeat: no-repeat;
  opacity: 0.82;
}
.tp-flat-callouts {
  position: absolute; inset: 0; pointer-events: none;
}
.tp-flat-callout {
  position: absolute;
  font-family: "JetBrains Mono", monospace; font-size: 8px;
  letter-spacing: 0.08em; text-transform: uppercase;
  padding: 2px 6px; background: #14120f; color: #f1e7d0;
  border-radius: 2px;
}
.tp-cl-tl { top: 6mm; left: 6mm; }
.tp-cl-tr { top: 6mm; right: 6mm; }
.tp-cl-cr { top: 50%; right: 4mm; transform: translateY(-50%); }
.tp-cl-bl { bottom: 6mm; left: 6mm; }
.tp-flat-figure figcaption {
  text-align: center;
  font-family: "JetBrains Mono", monospace; font-size: 9px;
  letter-spacing: 0.12em; text-transform: uppercase; opacity: 0.7;
}

/* ---------- TURNAROUND PAGE ---------- */
.tp-page-turnaround.tp-turnaround-missing { display: none !important; }
.tp-turnaround-hero {
  display: flex; flex-direction: column; align-items: center; gap: 3mm;
  padding: 5mm; background: #fefaf0; border: 1px solid rgba(0,0,0,0.1);
}
.tp-turnaround-hero img {
  width: 75mm; height: 75mm; object-fit: contain;
  background: #ebe1c8; border: 1px solid rgba(0,0,0,0.12);
  display: block;
}
.tp-turnaround-btn {
  padding: 7px 16px; background: #14120f; color: #f1e7d0; border: none; border-radius: 100px;
  font-family: "JetBrains Mono", monospace; font-size: 9.5px; letter-spacing: 0.12em; text-transform: uppercase;
  cursor: pointer; transition: opacity 0.2s;
}
.tp-turnaround-btn:hover { opacity: 0.85; }

.tp-turnaround-grid {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 3mm;
}
.tp-turnaround-cell {
  margin: 0; display: flex; flex-direction: column; align-items: stretch;
  background: #fefaf0; border: 1px solid rgba(0,0,0,0.1); padding: 2mm;
}
.tp-turnaround-cell img {
  width: 100%; aspect-ratio: 1 / 1; object-fit: contain;
  background: #ebe1c8; border: 1px solid rgba(0,0,0,0.08); display: block;
}
.tp-turnaround-cell figcaption {
  margin-top: 1.5mm; text-align: center;
  font-family: "JetBrains Mono", monospace; font-size: 8.5px;
  letter-spacing: 0.12em; text-transform: uppercase; opacity: 0.7;
}

/* ---------- MISSING ---------- */
.tp-missing { max-width: 640px; margin: 100px auto; text-align: center; padding: 60px 40px; background: #fefaf0; border: 1px solid rgba(0,0,0,0.12); }
.tp-missing h2 { font-family: "Cormorant Garamond", serif; font-size: 32px; font-weight: 400; margin: 0 0 10px; }

/* =================================================================
 * PRINT (A4 exact, PDF export)
 * ================================================================= */
@media print {
  @page { size: A4; margin: 0; }
  body { margin: 0; background: white !important; padding: 0 !important; }
  .no-print, .topbar, header.topbar, .announce, .mobile-menu { display: none !important; }
  .tecpack-single { padding: 0 !important; background: white !important; }
  .tp-sheet { max-width: none; margin: 0; }
  .tp-page {
    width: 210mm; min-height: 297mm; height: 297mm;
    margin: 0; padding: 14mm 16mm;
    box-shadow: none; border: none;
    page-break-after: always; page-break-inside: avoid;
  }
  .tp-page-cover {
    padding: 0;
  }
  .tp-page:last-child { page-break-after: auto; }
  .tp-card:hover { transform: none; box-shadow: none; }
  .tp-page-turnaround { background: #ffffff !important; }
  .tp-turnaround-btn { display: none !important; }
  .tp-turnaround-cell, .tp-turnaround-hero { break-inside: avoid; }
  .tp-section { break-inside: avoid; }
  .tp-signoff { break-inside: avoid; }
  .tp-timeline { break-inside: avoid; }
}
