/* Top Source Vietnam – DRAFT stylesheet (mobile-first, no external fonts) */
/* Brand palette from brand/logo.svg: logo red #FF0000, black #000000, white #FFFFFF. UI uses slightly deeper reds for WCAG AA text contrast. */
:root{--bg:#f6f6f6;--card:#fff;--ink:#111111;--muted:#555555;--brand:#d90000;--brand-2:#e00000;--brand-red:#ff0000;--brand-dark:#a80000;--line:#e3e3e3;--ph:#fff3c4;--ph-ink:#7a5a00;--r:18px;--shadow:0 1px 2px rgba(0,0,0,.05),0 6px 18px rgba(0,0,0,.06)}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;font:16px/1.55 system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;color:var(--ink);background:var(--bg)}
img{max-width:100%;height:auto;display:block}
a{color:var(--brand)}
.wrap{max-width:1280px;margin:0 auto;padding:0 16px}
.draft-bar{background:#000;color:#fff;font-size:13px;text-align:center;padding:6px 12px}
.draft-bar b{color:#ffcf5c}
header.site{position:sticky;top:0;z-index:20;background:rgba(255,255,255,.94);backdrop-filter:saturate(1.4) blur(8px);border-bottom:3px solid var(--brand-red)}
.nav{display:flex;align-items:center;justify-content:space-between;gap:12px;height:76px}
.logo{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink);font-weight:800;letter-spacing:-.02em}
.logo img{height:60px;width:auto}
.logo-tile{display:inline-block;background:#fff;border-radius:12px;padding:10px 14px;margin-bottom:10px}.logo-tile img{height:64px;width:auto}
.logo small{display:block;font-weight:500;font-size:11px;color:var(--muted);letter-spacing:.02em}
.menu-btn{border:1px solid var(--line);background:#fff;border-radius:12px;padding:8px 12px;font:inherit;font-size:14px}
nav.links{display:none;position:absolute;left:0;right:0;top:76px;background:var(--bg);border-bottom:1px solid var(--line);padding:8px 16px 16px}
nav.links.open{display:block}
nav.links a{display:block;padding:10px 4px;text-decoration:none;color:var(--ink);font-weight:600}
nav.links a[aria-current]{color:var(--brand)}
.btn{display:inline-block;background:var(--brand);color:#fff;text-decoration:none;font-weight:700;border-radius:999px;padding:12px 20px;border:0;font-size:15px;cursor:pointer}
.btn.alt{background:#fff;color:var(--ink);border:1px solid var(--line)}
.btn.hot{background:var(--brand-2)}
nav.links .btn{display:inline-block;margin-top:6px;color:#fff}
@media(min-width:900px){.menu-btn{display:none}nav.links{display:flex;position:static;padding:0;border:0;background:none;gap:4px;align-items:center}nav.links a{padding:8px 12px;border-radius:999px;font-size:15px}nav.links a:hover{background:#f0f0f0}nav.links .btn{margin:0 0 0 8px;padding:9px 16px}nav.links .btn:hover{background:var(--brand-dark)}}
/* hero */
.hero{padding-top:28px;padding-bottom:8px}
.eyebrow{display:inline-block;font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--brand);background:#ffe8e8;border-radius:999px;padding:5px 10px}
h1{font-size:clamp(30px,6.4vw,58px);line-height:1.05;letter-spacing:-.03em;margin:14px 0 12px}
h1 em{font-style:normal;color:var(--brand-2)}
.lead{font-size:clamp(16px,2.2vw,19px);color:var(--muted);max-width:640px;margin:0 0 18px}
.cta{display:flex;flex-wrap:wrap;gap:10px}
.chips{display:flex;gap:8px;overflow-x:auto;padding:18px 0 6px;scrollbar-width:none}
.chips::-webkit-scrollbar{display:none}
.chip{flex:0 0 auto;border:1px solid var(--line);background:#fff;border-radius:999px;padding:8px 14px;font-size:14px;font-weight:600;text-decoration:none;color:var(--ink)}
.chip:hover,.chip.on{background:var(--ink);color:#fff;border-color:var(--ink)}
/* masonry */
.masonry{columns:2;column-gap:12px;padding:12px 0 28px}
@media(min-width:700px){.masonry{columns:3;column-gap:16px}}
@media(min-width:1100px){.masonry{columns:4;column-gap:18px}}
.card{break-inside:avoid;margin:0 0 12px;background:var(--card);border-radius:var(--r);overflow:hidden;box-shadow:var(--shadow);transition:transform .18s ease,box-shadow .18s ease;display:block;text-decoration:none;color:inherit}
@media(min-width:700px){.card{margin-bottom:16px}}
a.card:hover{transform:translateY(-3px);box-shadow:0 2px 4px rgba(0,0,0,.06),0 14px 30px rgba(0,0,0,.10)}
.card img{width:100%;background:#ddd}
.card .body{padding:12px 14px 14px}
.card h3{margin:4px 0 4px;font-size:16px;line-height:1.25;letter-spacing:-.01em}
.card p{margin:0;font-size:14px;color:var(--muted)}
.tag{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--brand-2)}
.card.text{padding:18px}
.card.dark{background:#111;color:#fff;border-top:4px solid var(--brand-red)}.card.dark p{color:#d4d4d4}.card.dark .tag{color:#ff6b6b}
.card.coral{background:var(--brand-2);color:#fff}.card.coral p{color:#ffe3e3}.card.coral .tag{color:#fff}
.card.ink{background:#2a2a2a;color:#fff}.card.ink p{color:#d4d4d4}.card.ink .tag{color:#ff6b6b}
.big{font-size:22px!important;line-height:1.15!important}
/* sections */
section.block{padding-top:30px;padding-bottom:30px}
h2{font-size:clamp(24px,4vw,36px);letter-spacing:-.02em;line-height:1.1;margin:0 0 8px}
.sub{color:var(--muted);margin:0 0 16px;max-width:720px}
.page-head{padding-top:28px;padding-bottom:4px}
.page-head h1{font-size:clamp(28px,5vw,46px)}
.steps{list-style:none;padding:0;margin:0;display:grid;gap:12px}
@media(min-width:800px){.steps{grid-template-columns:repeat(3,1fr)}}
.steps li{background:#fff;border-radius:var(--r);padding:16px;box-shadow:var(--shadow)}
.steps b{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--brand);color:#fff;margin-right:8px;font-size:14px}
.two{display:grid;gap:16px}
@media(min-width:900px){.two{grid-template-columns:1fr 1fr}}
.panel{background:#fff;border-radius:var(--r);padding:20px;box-shadow:var(--shadow)}
.panel h3{margin-top:0}
.flow{display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-size:14px;font-weight:600;margin:10px 0}
.flow span{background:#eef3f1;border-radius:10px;padding:6px 10px}
.flow i{font-style:normal;color:var(--brand-2)}
/* placeholders */
.ph{background:var(--ph);color:var(--ph-ink);border:1px dashed #d9b400;border-radius:6px;padding:0 5px;font-size:.92em;font-weight:600}
.ph-box{background:var(--ph);border:2px dashed #d9b400;color:var(--ph-ink);border-radius:var(--r);padding:16px;font-weight:600;font-size:14px}
.note{font-size:13px;color:var(--muted)}
/* form */
form.rfq{display:grid;gap:12px}
@media(min-width:800px){form.rfq{grid-template-columns:1fr 1fr}.full{grid-column:1/-1}}
label{font-size:14px;font-weight:600;display:grid;gap:6px}
input,select,textarea{font:inherit;padding:11px 12px;border:1px solid #cfcfcf;border-radius:12px;background:#fff;width:100%}
textarea{min-height:120px}
input:focus,select:focus,textarea:focus{outline:2px solid var(--brand);border-color:transparent}
.check{display:flex;gap:8px;align-items:flex-start;font-weight:500}
.check input{width:auto;margin-top:4px}
#form-msg{display:none}
/* footer */
footer.site{background:#111;color:#cfcfcf;border-top:4px solid var(--brand-red);margin-top:20px;padding:30px 0 20px;font-size:14px}
footer.site a{color:#fff}
.fgrid{display:grid;gap:18px}
@media(min-width:800px){.fgrid{grid-template-columns:2fr 1fr 1fr}}
footer.site h4{color:#fff;margin:0 0 8px}
footer.site ul{list-style:none;padding:0;margin:0;display:grid;gap:4px}
footer.site .ph{color:#5a4300}
.legal{border-top:1px solid #333333;margin-top:20px;padding-top:12px;font-size:12px}
table.credits{width:100%;border-collapse:collapse;font-size:13px;background:#fff}
table.credits td,table.credits th{border:1px solid var(--line);padding:6px 8px;vertical-align:top;text-align:left}
.tablewrap{overflow-x:auto}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}
/* v2: legal review fixes */
.card .media{position:relative}
.illus{position:absolute;left:8px;bottom:8px;background:rgba(0,0,0,.55);color:#fff;font-size:10px;font-weight:600;letter-spacing:.03em;border-radius:6px;padding:2px 6px}
.warn{background:#fff7ed;border:1px solid #f3c79f;border-radius:var(--r);padding:14px 16px;font-size:14px}
.warn strong{color:#9a3412}
.form-note{font-size:13px;color:var(--muted);margin:0}
.legal-block{font-size:14px;line-height:1.6}
.doc{max-width:860px}
.doc h2{font-size:22px;margin-top:28px}
.doc h3{font-size:17px;margin:18px 0 6px}
.doc p,.doc li{font-size:15px}
.doc-status{background:#fff0f0;border-left:4px solid var(--brand);padding:10px 14px;border-radius:8px;font-size:14px}
.disclaimer{font-size:12px;line-height:1.5;color:#b5b5b5;max-width:980px}
nav.links a.btn[aria-current]{color:#fff}
/* v3: brand logo + spec cards (Vincent 09/10 instructions) */
.logo{gap:8px}
.logo-sub{font-weight:800;font-size:15px;line-height:1.1;color:var(--ink)}
.logo-sub small{display:block;font-weight:500;font-size:11px;color:var(--muted)}
@media(max-width:380px){.logo-sub small{display:none}}
.card.spec dl{display:grid;grid-template-columns:auto 1fr;gap:4px 10px;margin:8px 0 0;font-size:13px}
.card.spec dt{font-weight:700;color:var(--ink)}
.card.spec dd{margin:0;color:var(--muted)}
.card.spec .apps{margin-top:10px;font-size:13px;border-top:1px solid var(--line);padding-top:8px}
.photo-ph{aspect-ratio:4/3;display:grid;place-content:center;text-align:center;gap:4px;background:repeating-linear-gradient(45deg,#fff8d6,#fff8d6 12px,#fff3c4 12px,#fff3c4 24px);border-bottom:2px dashed #d9b400;color:var(--ph-ink);padding:16px}
.photo-ph span{font-weight:800;font-size:16px}.photo-ph small{font-size:12px}
.toc{display:flex;flex-wrap:wrap;gap:6px 14px;margin:0 0 14px;font-size:14px;font-weight:600}
.toc a{text-decoration:none;border-bottom:2px solid var(--brand-red)}
table.cr th,table.matrix th{background:#111;color:#fff}
table.matrix td{text-align:center;color:var(--brand);font-weight:700}
table.matrix tr th:first-child{background:#fff;color:var(--ink);text-align:left}
table.matrix tr:first-child th:first-child{background:#111;color:#fff}
section.wrap>h2{border-left:5px solid var(--brand-red);padding-left:10px}
.card.spec dd{overflow-wrap:anywhere}
@media(max-width:599px){.masonry:has(> .card.spec){columns:1}}
.card.spec .media img{aspect-ratio:4/3;object-fit:cover;width:100%}
.card.spec .media img[src*="humidity-card"],.card.spec .media img[src*="pouches-coloured"],.card.spec .media img[src*="glove-types"],.card.spec .media img[src*="food-clear-container"]{object-fit:contain;background:#fff}
/* v4: Legal review of new parts – larger, more readable photo caption */
.illus{font-size:12.5px;line-height:1.3;background:rgba(0,0,0,.72);right:8px;padding:4px 8px;max-width:calc(100% - 16px)}
.grid-note{font-size:13px;margin-top:0}
.card.spec dl{grid-template-columns:minmax(64px,38%) minmax(0,1fr)}
@media(max-width:599px){.illus{position:static;display:block;border-radius:0;max-width:none;font-size:12px;background:#222}}
/* v5: documentary hero photo */
.hero-split{display:grid;gap:28px;align-items:center}
@media(min-width:980px){.hero-split{grid-template-columns:minmax(0,1.05fr) minmax(0,1fr)}}
.hero-photo{margin:0}
.hero-photo .media{position:relative;border-radius:14px;overflow:hidden}
.hero-photo img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover}
.hero-photo figcaption{font-size:12px;color:#555;margin-top:6px}
.cr-fig{margin:0 0 16px;max-width:720px}
.cr-fig .media{position:relative;border-radius:12px;overflow:hidden}
.cr-fig img{display:block;width:100%;height:auto}
.card.spec .media img[src*="smt-feeder-reel"]{object-fit:contain;background:#fff}
.feature-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding-top:12px}
@media(min-width:1100px){.feature-row{grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}}
@media(max-width:599px){.feature-row{grid-template-columns:1fr}}
.feature-row .card{margin:0;height:100%}
.feature-row .card .media img{aspect-ratio:4/3;object-fit:cover;width:100%;height:auto}
.hero-split{grid-template-columns:minmax(0,1fr)}.hero-text{min-width:0}
@media(min-width:980px){.hero-split{grid-template-columns:minmax(0,1.05fr) minmax(0,1fr)}}
.photo-note{font-size:13px;color:#555;margin:10px 0 0}.photo-note a{color:inherit}

/* v8: more filter chips – wrap on wider screens */
@media (min-width:900px){.chips{flex-wrap:wrap;overflow:visible}}

/* v9: product hero duo + insights articles */
.hero-photo.hero-duo{display:grid;grid-template-columns:1fr 1fr;gap:12px;aspect-ratio:auto}
.hero-photo.hero-duo .media{aspect-ratio:3/4;border-radius:18px;overflow:hidden}
.hero-photo.hero-duo .media img{width:100%;height:100%;object-fit:cover}
.hero-photo.hero-duo .media:nth-child(2){margin-top:40px}
.article{max-width:820px}
.article h1{font-size:clamp(28px,4vw,44px);line-height:1.12;margin:.2em 0 .3em}
.article .crumbs{font-size:14px;color:#666}
.article .crumbs a{color:inherit}
.art-fig{margin:22px 0}
.art-fig .media{aspect-ratio:16/9;border-radius:16px;overflow:hidden}
.art-fig .media img{width:100%;height:100%;object-fit:cover}
.art-body p,.art-body li{font-size:17px;line-height:1.65}
.art-body sup{font-size:.7em;color:#d90000}
.sources{font-size:14px}
.sources a{word-break:break-word}

.trade-note{font-size:13px;color:#666;margin:6px 0 0}
.disclaimer-art{font-size:14px;color:#555;border-top:1px solid #ddd;padding-top:12px;margin-top:24px}

.hero-photo.hero-duo .media:first-child img{object-position:62% 30%}
.custom{margin:12px 0;padding:12px 14px;border-radius:12px;background:#f6f7f9;border:1px solid var(--line)}
.custom b{display:block;margin-bottom:6px}.custom ul{margin:0 0 10px;padding-left:18px;font-size:14px}
.btn.small{padding:8px 14px;font-size:14px}
.hp{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}
#form-msg:empty{display:none}#form-msg{padding:10px 12px;border-radius:10px;font-weight:600}
#form-msg.ok{background:#e8f6ec;color:#17622f}#form-msg.err{background:#fdecec;color:#9b1c1c}
.custom .cnote{font-size:13px;color:#555;margin:0 0 8px}
