/* ============================================================================
   assets/detail.css — 제품 상세페이지 디자인 SSOT (Single Source of Truth)
   ----------------------------------------------------------------------------
   기준 = 가오스유니온 상세페이지(brands/gaossunion/agcl-reference-electrode/)
   상세페이지는 이 파일 1줄만 링크한다:
       <link rel="stylesheet" href="/assets/detail.css">

   ★ 페이지에 <style> 블록을 복사해 넣지 말 것. 디자인 수정은 이 파일 1곳에서만.
   ★ 색 SSOT = assets/site.css 의 --merck-* 토큰. 여기서는 토큰만 참조한다.
   ★ 레이아웃 표준 = CLAUDE.md 4.5
        크럼 -> h1+영문명 -> 대표사진 -> 정답블록 -> 모델별 가격표 -> 상세 -> 관련링크/CTA
        본문 폭 .wrap{max-width:920px}
   ★ 금지: 좌측 border-left 3~4px 색 바 / 주황 글씨 / #1E3A5F / #1a6e56 / #C2410C / #E8632C
   ============================================================================ */

/* ===== 1. 기본 · 타이포 · 레이아웃 · 카드 · 표 · FAQ · 상세 상단 ===== */
:root{
    --ink:#1A1A1A; --gray:#6B6B6B; --gray-2:#9A9A9A;
    --accent:var(--merck-link); --primary:var(--merck); --primary-d:var(--merck-d); --soft:var(--merck-soft); --line:#EAEAEA; --bg:#fff;
    --serif:"Pretendard Variable",Pretendard,-apple-system,BlinkMacSystemFont,"Apple SD Gothic Neo","Malgun Gothic",sans-serif;
    --sans:-apple-system,BlinkMacSystemFont,"Segoe UI","Apple SD Gothic Neo","Malgun Gothic",sans-serif;
  }
  *{box-sizing:border-box;margin:0;padding:0}
  body{font-family:var(--sans);background:#fff;color:var(--ink);line-height:1.75;word-break:keep-all;overflow-wrap:break-word}
  a{color:inherit}
  .wrap{max-width:920px;margin:0 auto;padding:0 24px}
  .hero{padding:40px 0 6px}
  .hero .crumb{font-size:13px;color:var(--gray-2);margin-bottom:12px}
  .hero .crumb a{color:var(--merck-link);text-decoration:none}
  .hero h1{font-family:var(--serif);font-size:28px;font-weight:700;line-height:1.3;letter-spacing:-.02em}
  .hero .lead{margin-top:12px;font-size:15.5px;color:var(--gray);line-height:1.7;max-width:780px}
  .hero .lead b{color:var(--ink)}
  /* --- 데이터시트/카탈로그 --- */
  .ds-sec{ padding:16px 0 60px; }
  .ds-hd{ font-family:var(--serif); font-size:20px; font-weight:700; letter-spacing:-.02em; margin-top:10px; }
  .ds-fbar{ position:sticky; top:0; background:#fff; padding:14px 0 10px; z-index:20; border-bottom:1px solid var(--line); margin-bottom:14px; }
  .ds-frow{ display:flex; flex-wrap:wrap; align-items:center; gap:6px; margin-bottom:8px; }
  .ds-flab{ font-size:12px; font-weight:800; color:#9C958D; width:42px; flex:0 0 auto; }
  .ds-chip{ font-size:12.5px; font-weight:700; padding:6px 12px; border-radius:20px; border:1.5px solid #E7E3DE; background:#fff; color:#5a5550; cursor:pointer; font-family:inherit; transition:border-color .13s,background .13s; }
  .ds-chip:hover{ border-color:var(--merck); }
  .ds-chip.on{ background:var(--merck); border-color:var(--merck); color:#fff; }
  .ds-fsearch{ margin-left:auto; }
  .ds-fsearch input{ height:36px; width:200px; border:1px solid var(--line); border-radius:9px; padding:0 12px; font-size:13.5px; font-family:inherit; }
  .ds-cnt{ font-size:13px; color:var(--gray); margin:0 2px 12px; }
  .ds-cnt b{ color:var(--merck-link); }
  .ds-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(230px,1fr)); gap:13px; }
  .dscard{ border:1px solid #E7E3DE; border-radius:14px; overflow:hidden; background:#fff; display:flex; flex-direction:column; transition:border-color .15s,box-shadow .15s; }
  .dscard.hidden{ display:none; }
  .dscard:hover{ border-color:var(--merck); box-shadow:0 6px 22px rgba(59,54,149,.10); }
  .dscard-im{ aspect-ratio:4/3; background:#FAF8F5; position:relative; overflow:hidden; }
  .dscard-im img{ width:100%; height:100%; object-fit:cover; display:block; }
  .dscard-bdg{ position:absolute; left:9px; top:9px; display:flex; gap:5px; flex-wrap:wrap; }
  .dscard-bdg .b{ font-size:11px; font-weight:800; padding:3px 8px; border-radius:14px; color:#fff; }
  .dscard-bdg .b.t{ background:rgba(59,54,149,.92); }
  .dscard-bdg .b.y{ background:rgba(27,26,24,.82); }
  .dscard-bd{ padding:12px 13px 14px; display:flex; flex-direction:column; flex:1; }
  .dscard-mdl{ font-family:var(--serif); font-size:15px; font-weight:700; letter-spacing:-.01em; }
  .dscard-nm{ font-size:11.5px; color:var(--gray); margin:3px 0 9px; line-height:1.45; min-height:33px; }
  .dscard-sp{ font-size:12px; color:#3a3a3a; border-top:1px dashed #ECE7E1; padding-top:8px; display:flex; flex-direction:column; gap:3px; }
  .dscard-sp .r{ display:flex; justify-content:space-between; gap:8px; }
  .dscard-sp .k{ color:#9C958D; }
  .dscard-sp .v{ font-weight:700; text-align:right; }
  .dscard-ft{ margin-top:auto; padding-top:11px; display:flex; align-items:flex-end; justify-content:space-between; gap:8px; }
  .ds-price{ font-family:var(--serif); font-size:16px; font-weight:700; color:var(--ink); }
  .ds-price small{ font-size:10.5px; color:#9C958D; font-weight:400; font-family:var(--sans); }
  .ds-price.ask{ font-size:13.5px; color:var(--merck-link); }
  .ds-lead{ font-size:10.5px; color:#9C958D; margin-top:2px; }
  .ds-detail{ font-size:12px; font-weight:800; color:var(--merck-link); text-decoration:none; white-space:nowrap; }
  .ds-empty{ padding:44px; text-align:center; color:#9C958D; font-size:14px; }
  .ds-foot{ margin-top:16px; font-size:12px; color:var(--gray-2); line-height:1.8; }
  .ds-back{ display:inline-block; margin-bottom:4px; font-size:13px; font-weight:700; color:var(--merck-link); text-decoration:none; }
  /* --- 대표 구성 데이터시트(Gas Flow Package) --- */
  .pkg{ padding:10px 0 4px; }
  .pkg-ans{ background:var(--merck-soft); border:1px solid var(--merck-line); border-radius:10px; padding:14px 16px; font-size:15px; color:#20302a; line-height:1.7; margin:4px 0 18px; }
  .pkg-ans b{ color:var(--ink); }
  .pkg-h{ font-family:var(--serif); font-size:21px; font-weight:700; letter-spacing:-.02em; margin:4px 0 14px; }
  .pkg-h span{ font-size:14px; color:var(--gray-2); font-weight:600; }
  .pkg-cols{ display:grid; grid-template-columns:1.25fr .9fr; gap:22px; align-items:start; margin-bottom:20px; }
  .pkg-feat{ list-style:none; display:flex; flex-direction:column; gap:9px; }
  .pkg-feat li{ font-size:13.5px; color:#3a3a3a; line-height:1.6; padding-left:16px; position:relative; }
  .pkg-feat li:before{ content:''; position:absolute; left:0; top:9px; width:6px; height:6px; border-radius:50%; background:var(--merck-link); }
  .pkg-feat b{ color:var(--ink); }
  .pkg-fig{ margin:0; border:1px solid #E7E3DE; border-radius:12px; overflow:hidden; background:#FAF8F5; }
  .pkg-fig img{ width:100%; display:block; }
  .pkg-fig figcaption{ font-size:11.5px; color:var(--gray-2); padding:7px 10px; text-align:center; }

.pkg-figs{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:14px;margin:6px 0 2px}
  .pkg-tblwrap{ overflow-x:auto; }
  .pkg-tbl{ width:100%; border-collapse:collapse; font-size:12.5px; min-width:580px; }
  .pkg-tbl th,.pkg-tbl td{ border:1px solid #E7E3DE; padding:8px 10px; text-align:center; }
  .pkg-tbl thead th{ background:var(--merck); color:#fff; font-weight:700; }
  .pkg-tbl th[scope=row]{ background:#FAF8F5; text-align:left; color:#5a5550; font-weight:700; white-space:nowrap; }
  .pkg-opt{ min-width:520px; }
  .pkg-opt td{ text-align:left; }
  .pkg-opt small{ color:var(--gray-2); font-size:11px; font-weight:400; display:inline-block; line-height:1.5; }
  .pkg-note{ font-size:12px; color:var(--gray-2); margin-top:12px; line-height:1.7; }
  .pkg-note a{ color:var(--merck-link); font-weight:700; text-decoration:none; }
  .pkg-hr{ border:0; border-top:1px solid var(--line); margin:26px 0 4px; }
  @media(max-width:720px){ .pkg-cols{ grid-template-columns:1fr; } }  .vid-sec{ padding:8px 0 4px; }
  .vid-wrap{ position:relative; max-width:720px; aspect-ratio:16/9; border-radius:12px; overflow:hidden; border:1px solid #E7E3DE; background:#000; }
  .vid-wrap iframe{ position:absolute; inset:0; width:100%; height:100%; border:0; }
  .vid-cap{ font-size:12px; color:var(--gray-2); margin-top:8px; }  .faq-sec{ padding:6px 0 8px; }
  .faq-h{ font-family:var(--serif); font-size:18px; font-weight:700; margin:0 0 8px; }
  .faq-item{ border-top:1px solid var(--line); padding:14px 0; }
  .faq-q{ font-size:14.5px; font-weight:700; color:var(--ink); margin:0 0 6px; }
  .faq-a{ font-size:13.5px; color:#3a3a3a; line-height:1.7; margin:0; }
  .faq-a b{ color:var(--ink); } .faq-a a{ color:var(--merck-link); font-weight:700; text-decoration:none; }  .warn{ background:var(--warn-bg); border:1px solid var(--warn-line); border-radius:10px; padding:14px 16px 15px; margin:14px 0; }
  .warn-h{ font-size:14px; font-weight:800; color:var(--ink); margin:0 0 6px; }
  .warn p{ font-size:13.5px; color:#3a2a20; line-height:1.7; margin:0; }
  .warn b{ color:var(--ink); }
  .detail-top .wrap{max-width:920px}
  .dt-grid{display:grid;grid-template-columns:minmax(0,38%) minmax(0,1fr);gap:24px;align-items:start;margin-top:6px}
  @media(max-width:720px){.dt-grid{grid-template-columns:1fr;gap:16px}}
  /* 우측 주문정보 레일(.buyrail)의 CSS 는 assets/site.css 에 있다.
     site.js 가 레일을 제어하고, detail.css 로 아직 이관 안 된 페이지도 레일이 떠야 하기 때문. */
  .dt-col:empty{display:none}
  .dt-grid:has(.dt-col:empty){grid-template-columns:1fr}
  .dt-img{border:1px solid #E7E3DE;border-radius:16px;overflow:hidden;background:#FAF8F5;aspect-ratio:4/3}
  .dt-img img{width:100%;height:100%;object-fit:cover;display:block}
  .dt-brand{font-size:12.5px;font-weight:800;letter-spacing:.04em;color:var(--merck-link)}
  .dt-name{font-family:var(--serif);font-size:clamp(21px,3.8vw,29px);font-weight:800;line-height:1.25;margin:7px 0 0}
  .dt-sum{margin:14px 0 0;background:var(--merck-soft);border:1px solid var(--merck-line);border-radius:10px;padding:14px 16px;font-size:14.5px;color:#3a3330;line-height:1.75}
  .dt-sum b{color:var(--ink)}
  .dt-info .qbtn{margin:18px 0 0}
  .dt-kw{margin:15px 0 0;display:flex;flex-wrap:wrap;gap:7px}
  .dt-kw a{font-size:12px;font-weight:700;color:#7a6f68;background:#F1EDE9;border-radius:20px;padding:5px 11px;text-decoration:none}
  .dt-ans{font-size:15px;font-weight:700;color:#17202A;line-height:1.55;margin:10px 0 2px}
  .dt-ans b{color:var(--merck-link)}
  .faq-tag{display:inline-block;font-size:10.5px;font-weight:800;letter-spacing:.02em;color:var(--merck);background:#EEF3F9;border-radius:5px;padding:2px 8px;margin-right:8px;vertical-align:middle}
  .ctbar{display:flex;align-items:center;justify-content:center;gap:38px;flex-wrap:wrap;max-width:560px;margin:16px auto;border:1px solid #E7E3DE;background:#FAF8F5;border-radius:14px;padding:15px 22px}
  .ctbar-info{display:flex;flex-direction:column;gap:2px}
  .ctbar-lb{font-size:11px;font-weight:800;color:var(--merck);letter-spacing:.06em}
  .ctbar-tel{font-size:24px;font-weight:800;color:#17202A;text-decoration:none}
  .ctbar-sub{font-size:12px;color:#8a8f97}
  .ctbar-chat{display:flex;align-items:center;gap:11px;text-decoration:none;color:inherit}
  .ctbar-qrbox{width:72px;height:72px;background:#fff;border:1px solid #E7E3DE;border-radius:8px;padding:5px;display:block;flex:none}
  .ctbar-qrbox svg{width:100%;height:100%;display:block}
  .ctbar-chat-tx{display:flex;flex-direction:column}
  .ctbar-chat-tx b{font-size:14px;color:#17202A}
  .ctbar-chat-tx small{font-size:11px;color:#8a8f97}
  @media(max-width:640px){.ctbar{justify-content:center;text-align:center}.ctbar-info{align-items:center}}
  .bc-video-cap{max-width:560px;margin:0 auto 10px;text-align:center;font-size:12.5px;color:#6B6B6B;line-height:1.5}
.shp-media{float:right;width:238px;margin:2px 0 14px 22px;border:1px solid #ECECEC;border-radius:12px;overflow:hidden;background:#fff}.shp-media img{width:100%;height:auto;display:block}.detail-top .wrap::after{content:"";display:block;clear:both}@media(max-width:640px){.shp-media{float:none;width:100%;max-width:250px;margin:12px auto 0}}
.dt-thumbs{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap}.dt-thumbs button{width:62px;height:62px;padding:2px;border:1px solid #E7E3DE;border-radius:8px;overflow:hidden;background:#fff;cursor:pointer}.dt-thumbs button:hover{border-color:var(--merck)}.dt-thumbs img{width:100%;height:100%;object-fit:contain;display:block}
.det-imgs figure{margin:0 0 22px}.det-imgs img{width:100%;max-width:760px;display:block;margin:0 auto;border:1px solid #ECECEC;border-radius:10px}.det-imgs figcaption{font-size:13px;color:#5a5550;text-align:center;margin:8px auto 0;max-width:640px;line-height:1.6}.det-h{font-size:14px;font-weight:800;color:var(--merck-link);margin:0 0 6px;text-align:center}

/* ===== 2. 모델별 상세 블록 (사양 리스트 · 배지 · 구매 안내 · 썸네일 라벨) ===== */
.mdl-hd{display:flex;gap:28px;align-items:flex-start;flex-wrap:wrap;margin-top:30px}.mdl-hd .mdl-tx{flex:1 1 320px;min-width:280px}.mdl-hd .mdl-im{flex:0 0 400px;display:flex;flex-direction:column;gap:12px}.mdl-hd figure{margin:0;width:400px;max-width:100%}.mdl-hd img{width:400px;max-width:100%;height:300px;object-fit:contain;background:#fff;border:1px solid #e5e7eb;border-radius:6px}.mdl-hd figcaption{font-size:12px;color:#6b7280;margin-top:3px;line-height:1.4;text-align:center}.mdl-en{font-size:13px;color:#6b7280;font-weight:400;display:block;margin-top:3px}.spec-ol{margin:6px 0 14px;padding-left:0;list-style:none;font-size:13.5px;line-height:1.75;color:#374151}.spec-ol li{margin:3px 0;padding-left:26px;position:relative}.spec-ol li .sn{position:absolute;left:0;top:2px;display:inline-flex;width:19px;height:19px;align-items:center;justify-content:center;border-radius:50%;color:#fff;font-size:11px;font-weight:700}.sn{background:var(--merck)}.sn.b{background:var(--merck)}.sn.d{background:var(--merck)}.sn.o{background:#646469}.sn.x{background:var(--danger)}.spec-ul{margin:2px 0 6px;padding-left:0;list-style:none;font-size:13.5px;line-height:1.7;color:#374151}.spec-ul li{margin:3px 0;padding-left:16px;position:relative}.spec-ul li:before{content:"·";position:absolute;left:4px;font-weight:900;color:#9ca3af}.spec-ul li.warn{color:#7c2d12}.spec-ul li.warn:before{content:"!";color:#B45309}.bdg{font-size:11px;font-weight:700;border-radius:4px;padding:1px 6px;margin-left:6px;white-space:nowrap}.bdg.in{background:#dcfce7;color:var(--merck-d)}.bdg.dl{background:#ccfbf1;color:var(--merck)}.bdg.op{background:#f1f5f9;color:#334155}.bdg.ex{background:#fee2e2;color:#991b1b}.part-h{font-size:13px;font-weight:800;color:#1c1917;margin:12px 0 4px}.spec-src{font-size:12px;color:#6b7280;margin:8px 0 6px}.buy-box{border:1px solid var(--merck-line);border-radius:12px;background:var(--merck-soft);padding:12px 16px;margin:10px 0 12px;font-size:13.5px;line-height:1.8;color:#3a3330}.buy-box .bt{display:block;font-weight:800;color:var(--merck-link);font-size:13px;margin-bottom:3px}.buy-box b{color:#1c1917}.mdl-im.slide{position:relative}.mdl-im.slide figure{display:none}.mdl-im.slide figure.on{display:block}.mdl-dots{display:flex;gap:6px;justify-content:center;margin-top:2px}.mdl-dots button{width:9px;height:9px;border-radius:50%;border:none;background:#d1d5db;padding:0;cursor:pointer}.mdl-dots button.on{background:var(--merck)}.mdl-nav{position:absolute;top:150px;transform:translateY(-50%);width:34px;height:34px;border-radius:50%;border:1px solid #d6d3d1;background:rgba(255,255,255,.92);color:#44403c;font-size:17px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 1px 4px rgba(0,0,0,.12);z-index:2}.mdl-nav:hover{background:var(--merck);color:#fff;border-color:var(--merck)}.mdl-nav.prev{left:8px}.mdl-nav.next{right:8px}.dt-thumbs button{display:flex;flex-direction:column;align-items:center}.dt-thumbs .thlb{display:block;font-size:11px;line-height:1.35;color:#57534e;margin-top:4px;text-align:center}.dt-thumbs .thlb b{display:block;color:#1c1917;font-size:11.5px}

/* ===== 3. 셀 비교표 · 구성품 포함/불포함 박스 ===== */
.mdl-hd figcaption b{display:inline-block;min-width:16px;height:16px;line-height:16px;border-radius:50%;background:#6b7280;color:#fff;font-size:10px;text-align:center;margin-right:4px}
.spec-ol li.warn{color:#7c2d12}.spec-ol li.warn .sn{background:#B45309}
.qpick th{background:#F6F4F1;font-size:13px;text-align:left;padding:9px 12px}.qpick td{font-size:13.5px;padding:9px 12px;border-top:1px solid #eee}.qpick a{color:var(--merck-link);font-weight:800;text-decoration:none}.qpick .st{color:#6b7280;font-size:12.5px;white-space:nowrap}
.inc-box{display:flex;gap:14px;flex-wrap:wrap;margin:10px 0 4px}.inc-box>div{flex:1 1 220px;border:1px solid #e5e7eb;border-radius:8px;padding:10px 12px;background:#fff}.inc-box .ih{font-size:12.5px;font-weight:800;margin:0 0 6px}.inc-box .inc .ih{color:var(--merck-d)}.inc-box .exc .ih{color:var(--merck)}.inc-box ul{margin:0;padding-left:0;list-style:none;font-size:13px;line-height:1.65;color:#374151}.inc-box li{padding-left:18px;position:relative;margin:2px 0}.inc-box .inc li:before{content:"✓";position:absolute;left:0;color:#16a34a;font-weight:900}.inc-box .exc li:before{content:"✕";position:absolute;left:0;color:#dc2626;font-weight:900}.lay-note{background:#F6F4F1;border-radius:10px;padding:12px 16px;font-size:13.5px;line-height:1.75;color:#3a3330;margin:14px 0 6px}.lay-note b{color:#1c1917}

/* ===== 4. 데이터 주도 템플릿(build_product_pages) 전용 ===== */
.dt-en{font-size:13px;color:var(--gray-2);margin-top:4px;line-height:1.5}
.dt-sub{font-size:13.5px;font-weight:700;color:var(--merck-link);margin-top:6px;line-height:1.55}
/* ── 조성·규격 — 코드가 아니라 조성으로 찾아온 사람을 첫 화면에서 확인시킨다 ── */
.dt-formula{margin:9px 0 0;font-size:clamp(14px,2.4vw,16.5px);font-weight:700;color:var(--ink);
  line-height:1.5;letter-spacing:-.01em;font-variant-numeric:tabular-nums;word-break:break-word}
.dt-facts{margin:12px 0 0;border-top:1px solid var(--merck-line)}
.dt-facts>div{display:flex;gap:12px;padding:6px 0;border-bottom:1px solid var(--merck-line);
  font-size:12.5px;line-height:1.6}
.dt-facts .k{flex:0 0 76px;color:var(--gray-2);font-weight:700}
.dt-facts .v{color:var(--ink);word-break:break-word;font-variant-numeric:tabular-nums}

/* ── 소재 분류 사이드바 — 브레드크럼은 위로만 간다. 옆 분류로 건너뛰는 길을 낸다 ── */
.detail-top .wrap.has-mnav{max-width:1180px;display:grid;grid-template-columns:196px minmax(0,1fr);
  gap:30px;align-items:start}
.detail-top .wrap.has-mnav>.crumb{grid-column:1/-1}
.mnav{position:sticky;top:78px;font-size:12.5px;line-height:1.5}
.mnav h2{font-size:11px;font-weight:800;letter-spacing:.05em;color:var(--gray-2);margin:0 0 10px;
  padding-bottom:8px;border-bottom:1px solid var(--merck-line)}
.mnav .g{font-weight:800;color:var(--ink);margin:14px 0 5px;font-size:12.5px}
.mnav .g:first-child{margin-top:0}
.mnav a{display:block;padding:3.5px 0 3.5px 9px;color:var(--gray-2);text-decoration:none;
  border-left:2px solid transparent}
.mnav a:hover{color:var(--merck-link)}
.mnav a[aria-current]{color:var(--ink);font-weight:700;border-left-color:var(--merck-link)}
.mnav-all{display:inline-block;margin-top:16px;padding-top:12px;border-top:1px solid var(--merck-line);
  font-size:12px;font-weight:700;color:var(--merck-link);text-decoration:none}
@media(max-width:1000px){
  .detail-top .wrap.has-mnav{grid-template-columns:1fr;max-width:920px;gap:0}
  .mnav{position:static;margin:10px 0 16px;border:1px solid var(--merck-line);border-radius:10px;
    padding:12px 14px;background:var(--merck-soft)}
  .mnav h2{margin-bottom:8px}
  .mnav-inner{display:flex;flex-wrap:wrap;gap:3px 14px}
  .mnav .g{width:100%;margin:9px 0 1px}
  .mnav a{padding:2px 0;border-left:0}
  .mnav a[aria-current]{border-left:0;text-decoration:underline}
  .mnav-all{margin-top:10px;padding-top:9px}
}

/* ── 계열·묶음 목록 페이지(main.wrap.mtl-page) — 좌측 분류를 진짜 왼쪽 열에 ──
   build.py inject_mnav_series() 가 main 에 .mtl-page 를 붙여 두었는데 받는 CSS 가
   없어서 사이드바가 본문 위에 통짜로 깔렸다(2026-09-11 확인). 상세페이지의
   .detail-top .wrap.has-mnav 와 같은 2열(분류 | 본문) 구조로 맞춘다. */
.mtl-page{max-width:1180px;display:grid;grid-template-columns:196px minmax(0,1fr);
  gap:0 30px;align-items:start}
.mtl-page>nav{grid-column:1/-1}                      /* 브레드크럼 — 두 열 위 */
.mtl-page>.mnav{grid-column:1;grid-row:2/span 200;align-self:start}
.mtl-page>*:not(nav):not(.mnav){grid-column:2;min-width:0}
@media(max-width:1000px){
  .mtl-page{grid-template-columns:1fr;gap:0;max-width:920px}
  .mtl-page>.mnav{grid-column:1;grid-row:auto}
  .mtl-page>*:not(nav):not(.mnav){grid-column:1}
}
.pkg-common{font-size:13px;color:#3a3330;background:var(--merck-soft);border:1px solid var(--merck-line);
  border-radius:8px;padding:9px 13px;margin-top:10px;line-height:1.7}
.pkg-common b{color:var(--ink);margin-right:4px}

/* 구매박스(우측 주문정보) — 금액 자릿수가 바뀌어도 줄바뀜·높이 변화가 없게 고정.
   site.js가 head 뒤쪽에 주입하는 .bb-* 규칙을 이기려면 .dt-buy 로 특이도를 올린다. */
.dt-buy .bb-price{white-space:nowrap;line-height:1.25}
.dt-buy .bb-price small{display:block;margin-left:0;margin-top:3px;white-space:nowrap}
.dt-buy .bb-row .v{white-space:nowrap}
/* 선택(모델명)은 길다 — 줄바꿈을 허용한다. 금액 칸만 고정폭으로 둔다. */
.dt-buy .bb-row.bb-sel{align-items:flex-start}
.dt-buy .bb-row.bb-sel .v{white-space:normal;word-break:keep-all;overflow-wrap:anywhere;line-height:1.5;font-weight:600}

/* 헤더 있는 목록·비교표는 본문을 왼쪽 정렬하고 마지막 열(가격·링크)만 가운데.
   자식 결합자(>)로 «그 표의 직속 칸» 만 잡는다. 자손 선택자로 두면 칸 안에 들어간
   표(계열 표의 접이식 안전표)의 셀까지 nowrap 이 걸려 문장이 한 줄로 뻗고
   잘려 보인다(2026-09-09 두두켐 LX-303 «제조사 참고» 행). */
.pkg-tbl > thead + tbody > tr > td{text-align:left}
.pkg-tbl > thead + tbody > tr > td:last-child{text-align:center;white-space:nowrap}

/* ── Hench 상세 전용 (2026-09 추가) ───────────────────────────── */
.hx-note{background:#EAF4FB;border:1px solid #D8E4F2;border-radius:10px;padding:13px 16px;
  font-size:13.5px;line-height:1.75;color:#24303a;margin:14px 0 6px}
.hx-note b{color:#0F69AF}
.xlink{margin:18px 0 4px;font-size:13px;line-height:2}
.xlink a{color:#3B3695;font-weight:700;text-decoration:none;margin-right:12px;white-space:nowrap}
.xlink a:hover{text-decoration:underline}
.bdg2{font-size:11px;font-weight:800;border-radius:4px;padding:1px 6px;margin-left:6px;white-space:nowrap}
.bdg2.in{background:#dcfce7;color:#166534}
.bdg2.ex{background:#fee2e2;color:#991b1b}

/* ── GHS 그림문자 ────────────────────────────────────────────────
   안전 정보 표의 "그림문자" 칸. 아이콘은 /img/ghs/ 한 벌을 전 브랜드가 공유한다. */
.ghs-row{display:flex;flex-wrap:wrap;gap:10px 14px;margin:2px 0}
.ghs-row .ghs{margin:0;width:66px;text-align:center}
.ghs-row .ghs img{width:52px;height:52px;display:block;margin:0 auto}
.ghs-row .ghs figcaption{font-size:11px;line-height:1.3;color:var(--gray-2);margin-top:3px;word-break:keep-all}

/* ── 삼흥(SH Scientific) 이관분 (2026-09-04) ─────────────────────────
   구형 150장이 인라인 <style> 로 들고 있던 것 중 detail.css·site.css
   어디에도 없던 컴포넌트만 옮겼다. 나머지는 detail.css 가 이미 갖고 있던
   같은 선택자의 최신판을 그대로 쓴다(구 스냅샷을 되살리지 않는다).
   우측 주문정보 레일(.buyrail)은 site.css 의 1440px 판을 쓴다 — 본문 폭이
   832px → 920px 로 바뀌었으므로 구 1416px 판은 버렸다. */

/* 카탈로그 원본 사진은 여백이 넓다 — 대표사진·카드에서만 확대해 맞춘다 */
.dt-img img[src*="/product/big/"],
.dscard-im img[src*="/product/big/"]{transform:scale(1.19);transform-origin:50% 47%}

/* 모델 썸네일 스트립 — 한 페이지에 여러 모델을 담은 시리즈 상세 */
.mdl-strip{display:grid;grid-template-columns:repeat(auto-fill,minmax(215px,1fr));gap:16px;margin:18px 0 14px}
.mdl-strip figure{margin:0;text-align:center}
.mdl-strip .mim{aspect-ratio:500/345;overflow:hidden;border-radius:10px;border:1px solid var(--line);background:#fff}
.mdl-strip .mim img{width:100%;height:100%;object-fit:cover;object-position:50% 48%}
.mdl-strip figcaption{font-size:14px;font-weight:700;margin-top:7px;color:var(--merck)}

/* 본문 영상 임베드 */
.bc-video .vwrap{position:relative;padding-bottom:56.25%;height:0;border-radius:12px;overflow:hidden;border:1px solid var(--line)}

/* 패키지 설명문단·특징 소제목 */
.pkg-desc{font-size:14px;color:#3a3330;line-height:1.8;margin:0 0 14px}
.pkg-feat-h{font-size:13.5px;font-weight:800;color:var(--merck);margin:8px 0 4px}


/* ── 회전 튜브로 PRO 상세 (2026-09-04 이관) ──────────────────────────────
   PRO_상세페이지_구성안.md 의 기준본이 쓰는 컴포넌트다. 페이지 한 장에서
   옮겨 왔지만 PRO 폼을 다른 제품에 쓸 때 그대로 재사용한다.
     .vs-*   두 모델 나란히 비교(가운데 축 · 우측 강조 열)
     .vsq    비교 아래 질문형 요약
     .qsel-* 견적 위저드 모달(빠른/상세 탭 · 옵션 선택)
     .qcta   위저드 열기 버튼 줄
     .faq-ex / .ex-grid  FAQ 안의 예시 블록
     .bc-fig .mkzone/.mkpop  대표사진 부위 확대 팝업
     .dt-left  좌측 열 안에 들어가는 좁은 문의 CTA 바
     SVG 도해 라벨(.ax .ay .ay2 .tl .gl .glz .tk .bd .bt .lg)
   구 테라코타(rgba(194,65,11)) · 주황 배경(#FFF3EC 계열) · 구 네이비(#16304d)는
   이관하면서 --merck-* 토큰으로 바꿨다. 색은 여기서 다시 정의하지 않는다. */
.vs{ margin:30px 0 8px; --ax:92px; --gp:16px; }
.vs-eb{ text-align:center; font-family:var(--serif); font-size:12.5px; font-weight:600; letter-spacing:.42em; color:var(--merck-d); margin:0 0 9px; text-indent:.42em; }
.vs-h{ text-align:center; font-family:var(--serif); font-size:27px; font-weight:600; color:#3A342E; letter-spacing:-.02em; margin:0 0 24px; line-height:1.4; }
.vs-h b{ font-weight:700; color:#1A1A1A; }
.vs-box{ display:grid; grid-template-columns:minmax(0,1fr) var(--ax) minmax(0,1fr); column-gap:var(--gp); grid-auto-flow:row dense; }
.vs-ax{ display:flex; align-items:center; justify-content:center; padding:0; }
.vs-c.a{ grid-column:1; }
.vs-ax{ grid-column:2; }
.vs-c.b{ grid-column:3; }
.vs-ax span{ font-size:15px; font-weight:800; color:#B4ADA5; letter-spacing:-.01em; }
.vs-c.b{ border-left:1.5px solid var(--merck-d); border-right:1.5px solid var(--merck-d); }
.vs-r1{ border-top:1px solid #EAE7E3; border-radius:12px 12px 0 0; padding-top:26px; }
.vs-c.b.vs-r1{ border-top:1.5px solid var(--merck-d); }
.vs-last{ border-bottom:1px solid #EAE7E3; border-radius:0 0 12px 12px; padding-bottom:28px; }
.vs-c.b.vs-last{ border-bottom:1.5px solid var(--merck-d); }
.vs-im{ background:#fff; border-radius:8px; overflow:hidden; margin:0 0 16px; }
.vs-im img{ width:100%; aspect-ratio:4/3; object-fit:contain; background:#fff; display:block; }
.vs-nm{ display:flex; align-items:center; justify-content:center; gap:8px; margin:0 0 22px; }
.vs-chip{ font-size:10.5px; font-weight:800; letter-spacing:.08em; padding:4px 9px; border-radius:5px; background:#F1EEEA; color:#8A837C; }
.vs-c.b .vs-chip{ background:var(--merck-d); color:#fff; }
.vs-nm span.t{ font-size:15px; font-weight:800; color:#7C736A; letter-spacing:-.01em; }
.vs-c.b .vs-nm span.t{ color:#1A1A1A; }
.vs-t li{ position:relative; }
.vs-sub{ display:block; margin-top:4px; font-size:12px; font-weight:400; color:#8A837C; line-height:1.55; }
.vs-c.b .vs-sub b{ color:var(--merck-d); font-weight:700; }
.vs-c:not(.vs-r1){ display:flex; align-items:center; border-top:1px solid #F0EDE9; }
.vs-c.b:not(.vs-r1){ border-top:1px solid var(--merck-line); }
.vs-c:not(.vs-r1) .vs-t{ width:100%; }
.vs-c.b .vs-t{ color:#3A352F; }
.vs-t b{ font-weight:800; color:#6E655C; }
.vs-c.b .vs-t b{ color:var(--merck-d); }
.vs-ft{ text-align:center; font-size:12.5px; color:#A8A099; margin:16px 0 0; line-height:1.75; }
.vs-ft b{ color:#7C736A; }
@media(max-width:760px){ .vs{ --ax:0px; --gp:9px; } .vs-h{ font-size:20px; } .vs-eb{ font-size:11px; letter-spacing:.3em; } .vs-box{ grid-template-columns:minmax(0,1fr) minmax(0,1fr); } .vs-ax{ grid-column:1 / -1; justify-content:center; padding:16px 0 6px; } .vs-c.a,.vs-c.b{ grid-column:auto; } .vs-ax span{ font-size:11.5px; letter-spacing:.05em; } .vs-c{ padding:0 12px; } .vs-r1{ padding-top:18px; } .vs-c:not(.vs-r1){ border-radius:0 !important; } .vs-last{ padding-bottom:20px; } .vs-im{ margin-bottom:12px; } .vs-nm{ flex-direction:column; gap:5px; margin-bottom:14px; } .vs-nm span.t{ font-size:12.5px; } .vs-t{ font-size:12px; padding:12px 0; line-height:1.6; gap:7px; } .vs-c:not(.vs-r1),.vs-c.b:not(.vs-r1){ border-top:0; } .vs-t br{ display:none; } }
.faq-ex{ margin:10px 0 0; display:flex; flex-direction:column; gap:9px; }
.faq-ex .ex{ background:#FAF8F5; border-radius:8px; padding:11px 14px; }
.faq-ex .ex-h{ font-size:12.5px; font-weight:800; color:var(--merck); margin:0 0 6px; letter-spacing:-.01em; }
.faq-ex ol,.faq-ex ul{ margin:0; padding:0; list-style:none; display:flex; flex-direction:column; gap:4px; }
.faq-ex li{ font-size:13.5px; color:#3a3a3a; line-height:1.65; padding-left:28px; position:relative; }
.faq-ex li .n{ position:absolute; left:0; top:-1px; font-size:16px; font-weight:800; color:var(--merck-d); }
.faq-ex li b{ color:#1A1A1A; }
.ex-grid{ display:grid; grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr); gap:18px; align-items:center; }
.exg{ width:100%; height:auto; display:block; }
@media(max-width:760px){ .ex-grid{ grid-template-columns:1fr; gap:12px; } }
.vsq{ margin:22px 0 4px; border:1px solid #E7E3DE; border-radius:14px; padding:20px 24px 22px; background:#fff; }
.vsq-q{ font-family:var(--serif); font-size:17px; font-weight:700; color:#1A1A1A; letter-spacing:-.02em; margin:0 0 10px; line-height:1.45; }
.vsq-q .vsq-b{ display:inline-block; margin-right:9px; font-family:var(--sans); font-size:11px; font-weight:800; color:#fff; background:var(--merck-d); border-radius:5px; padding:3px 8px; vertical-align:2px; }
.vsq .faq-a{ font-size:14px; margin:0; }
@media(max-width:760px){ .vsq{ padding:16px 15px 18px; } .vsq-q{ font-size:15px; } }
.vs-c.vs-align{ align-items:stretch; }
.vs-align .vs-t li{ display:flex; flex-direction:column; align-items:center; justify-content:center; padding:6px 0; }
.vs-align .vs-t li + li{ border-top:1px solid #F1EEEA; }
.vs-c.b.vs-align .vs-t li + li{ border-top:1px solid var(--merck-line); }
.qsel-back{position:fixed;inset:0;background:rgba(20,25,35,.55);z-index:10000;display:flex;align-items:center;justify-content:center;padding:20px}
.qsel-back[hidden]{display:none}
.qsel-card{background:#fff;border-radius:16px;max-width:560px;width:100%;max-height:88vh;overflow:auto;padding:26px 24px 22px;position:relative;box-shadow:0 24px 70px rgba(0,0,0,.35)}
.qsel-x{position:absolute;top:10px;right:14px;background:none;border:0;font-size:26px;line-height:1;color:#9A9A9A;cursor:pointer}
.qsel-title{font-family:var(--serif);font-size:20px;font-weight:800;margin:0 0 4px;color:#17202A}
.qsel-desc{font-size:13px;color:#6B6B6B;margin:0 0 16px}
.qsel-sec{margin:0 0 16px}
.qsel-lb{font-size:12.5px;font-weight:800;color:var(--merck);letter-spacing:.02em;margin:0 0 8px}
.qsel-lb small{font-weight:600;color:#9A9A9A}
.qsel-row{display:flex;flex-wrap:wrap;gap:8px}
.qsel-pill{display:inline-flex;align-items:center;gap:6px;border:1px solid #DDE3EA;border-radius:9px;padding:8px 12px;font-size:12.5px;cursor:pointer;background:#F8FAFC}
.qsel-pill input{accent-color:var(--merck)}
.qsel-pill:has(input:checked){border-color:var(--merck);background:#EEF3F9;font-weight:700}
.qsel-opts{display:grid;gap:7px}
.qsel-opt{display:flex;align-items:flex-start;gap:9px;border:1px solid #E7E3DE;border-radius:9px;padding:9px 12px;font-size:12.5px;cursor:pointer;line-height:1.5}
.qsel-opt input{margin-top:2px;accent-color:var(--merck-d)}
.qsel-opt:has(input:checked){border-color:var(--merck-d);background:var(--merck-soft)}
.qsel-opt b{color:#17202A}
.qsel-go{width:100%;margin-top:6px;background:var(--merck-d);color:#fff;border:0;border-radius:10px;padding:13px;font-size:15px;font-weight:800;cursor:pointer}
.qsel-msg{margin-top:9px;font-size:12.5px;color:var(--danger);text-align:center;min-height:1em}
.qcta{display:flex;align-items:center;gap:12px;margin:24px 0 4px;flex-wrap:wrap}
.qcta .qbtn{margin:0}
.qcta-note{font-size:12.5px;color:#8a8378}
.pkg .bc-fig{position:relative;overflow:visible}
.pkg .bc-fig>img{border-radius:11px}
.pkg .bc-fig .mkzone{position:absolute;cursor:help;z-index:20;border-radius:10px;background:transparent}
.pkg .bc-fig .mkzone:hover{background:rgba(59,54,149,.06)}
.pkg .bc-fig .mkzone:focus{outline:2px solid rgba(59,54,149,.45);outline-offset:2px}
.pkg .bc-fig .mkpop{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%) scale(.96);width:min(440px,64vw);max-width:64vw;height:auto;border-radius:12px;border:1px solid #E7E3DE;background:#fff;box-shadow:0 24px 64px rgba(20,30,50,.4);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .15s ease,transform .15s ease;z-index:9999}
.pkg .bc-fig .zl:hover ~ .pop-f,.pkg .bc-fig .zl:focus ~ .pop-f,.pkg .bc-fig .zr:hover ~ .pop-v,.pkg .bc-fig .zr:focus ~ .pop-v{opacity:1;visibility:visible;transform:translate(-50%,-50%) scale(1)}
.pkg .bc-video{width:100%;max-width:560px;margin:28px auto 10px;aspect-ratio:16/9;border-radius:12px;overflow:hidden;border:1px solid #E7E3DE;background:#000}
.pkg .bc-video iframe{width:100%;height:100%;border:0;display:block}
.ctsec{padding:6px 0}
.ct-qr-svg{width:100%;height:100%;display:block}
.dt-left{display:flex;flex-direction:column}
.dt-left .ctbar{max-width:none;margin:14px 0 0;flex-direction:row;align-items:center;justify-content:center;gap:16px;padding:12px 12px}
.dt-left .ctbar-info{align-items:flex-start}
.dt-left .ctbar-tel{font-size:19px}
.dt-left .ctbar-lb{font-size:10px}
.dt-left .ctbar-sub{font-size:10.5px}
.dt-left .ctbar-qrbox{width:54px;height:54px;padding:4px}
.dt-left .ctbar-chat{gap:8px}
.dt-left .ctbar-chat-tx b{font-size:12.5px}
.dt-left .ctbar-chat-tx small{font-size:10px}
.qsel-tabs{display:flex;gap:6px;margin:2px 0 12px}
.qsel-tab{flex:1;padding:9px;border:1px solid #DDE3EA;background:#F8FAFC;border-radius:9px;font-size:13px;font-weight:700;color:#6B6B6B;cursor:pointer}
.qsel-tab.is-on{border-color:var(--merck-d);background:var(--merck-soft);color:var(--merck)}
.qsel-inp,.qsel-fld select,.qsel-fld input{width:100%;border:1px solid #DDE3EA;border-radius:8px;padding:9px 10px;font-size:13px;font-family:inherit;background:#fff;color:#1A1A1A}
.qsel-specs{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.qsel-fld{display:flex;flex-direction:column;gap:4px;font-size:11.5px;font-weight:700;color:var(--merck)}
.qsel-fld-wide{grid-column:1 / -1}
@media(max-width:520px){.qsel-specs{grid-template-columns:1fr}}
.dt-info .qbtn-chat{background:var(--merck);margin-left:8px;text-decoration:none;display:inline-block}
.dt-info .qbtn-chat:hover{background:var(--merck-d)}
.qsel-req{margin-top:7px;font-size:12px;color:var(--merck);background:var(--merck-soft);border:1px solid var(--merck-line);border-radius:8px;padding:8px 10px;line-height:1.5}
.qsel-req b{color:var(--merck)}
html{scroll-behavior:smooth}
#faq-alicat{scroll-margin-top:80px}
.vs-more{display:inline-block;margin-top:5px;font-size:11px;font-weight:800;color:var(--merck-d);text-decoration:none}
.vs-more:hover{text-decoration:underline}
.gl{stroke:#EFEBE6;stroke-width:1}
.tk{stroke:#D8D2CB;stroke-width:1}
.ax,.ay,.ay2{font-size:13px;fill:#6E645C;font-family:inherit}
.ay{text-anchor:end}
.ay2{text-anchor:start;fill:#3F567C}
.ax{text-anchor:middle}
.tl{fill:none;stroke:var(--merck-d);stroke-width:2.4;stroke-linejoin:round}
.glz{fill:none;stroke:var(--merck);stroke-width:2;stroke-dasharray:5 4;stroke-linejoin:round}
.bd{fill:var(--merck-d)}
.bt{font-size:15px;font-weight:800;fill:#fff;text-anchor:middle;font-family:inherit}
.lg{font-size:13px;font-weight:700;font-family:inherit}

/* 본문 형광 강조 — alicat basis/controller 인라인에서 이관 (2026-09-05) */
mark.hl{background:linear-gradient(transparent 52%,#FFE8A3 52%);color:inherit;padding:0 2px;font-weight:700;border-radius:2px}
.pkg-tbl mark.hl{background:linear-gradient(transparent 48%,#FFE8A3 48%)}
.cfg-tbl td{text-align:left}

/* 카탈로그 PDF 다운로드 (상세 상단, 제품문의 옆) — 회원 게이트는 /dl/ Worker 가 본다 */
.dt-info .qbtn.dl-cat{background:#fff;color:var(--merck);border:1px solid var(--merck-line);
  margin-left:8px;text-decoration:none;display:inline-block}
.dt-info .qbtn.dl-cat:hover{background:var(--merck-soft);border-color:var(--merck-link)}
.dt-info .qbtn.dl-cat i{font-style:normal;font-size:11px;font-weight:700;color:var(--merck-link);
  margin-left:6px;padding:1px 5px;border-radius:3px;background:var(--merck-soft)}

/* ── 제조사 섹션 삽화·영상 (2026-09-09 신설, 기준=뉴웨어 CT-4000) ──
   제조사 페이지가 '제목 + 설명 + 그림' 한 세트로 설명하는 것을 같은 단위로 옮긴다.
   <figure> 를 쓰지 않는다 — 린터의 '대표사진' 패턴과 겹친다. */
.dt-p{font-size:14.5px;line-height:1.85;color:#3a3330;margin:0 0 14px}
.dt-figs{display:grid;gap:14px;margin:14px 0 6px}
.dt-figs.c1{grid-template-columns:1fr}
.dt-figs.c2{grid-template-columns:repeat(2,minmax(0,1fr))}
.dt-fig{border:1px solid var(--merck-line);border-radius:12px;overflow:hidden;background:#fff}
.dt-fig img,.dt-fig video{width:100%;height:auto;display:block;background:#fff}
.dt-cap{font-size:12px;line-height:1.5;color:#6b7280;padding:8px 12px 10px;border-top:1px solid var(--merck-line)}
.dt-vid{margin-top:10px;border:1px solid #E7E3DE;border-radius:16px;overflow:hidden;background:#FAF8F5}
.dt-vid video{width:100%;height:auto;display:block}
@media(max-width:640px){.dt-figs.c2{grid-template-columns:1fr}}

/* ===== 8. 상세페이지 새 레이아웃 (xnergy 교본) — body.pp-new 안에서만 ==========
   3열 구조:  좌측 내비(.mnav) | 본문(.mnav-body) | 가격(.buycol)
   가격 열은 예전 .buyrail 처럼 절대 배치하지 않고 **진짜 그리드 열**로 둔다.
   레일은 1560px 이상에서만 뜨고 그보다 좁으면 본문 글자를 덮었다(2026-09-11 확인).
   시험 대상 slug 는 _build/build.py 의 _PP_NEWLAYOUT 에서 고른다. ================ */

.pp-new .detail-top .wrap.has-mnav{
  max-width:1480px;
  grid-template-columns:190px minmax(0,1fr) 280px;
  gap:40px;
  align-items:start}
.pp-new .detail-top .wrap.has-mnav>.crumb{grid-column:1/-1}
/* 본문·FAQ 는 가운데 열 **안에** 들어간다(.pkg-in / .faq-in).
   상단만 3열이면 그리드 행 높이를 좌측 분류 목록이 정해서, 본문이 짧은 페이지에
   200px 가까운 빈칸이 생겼다(2026-09-11). 열을 페이지 끝까지 끌고 내려간다. */
.pp-new .pkg-in,.pp-new .faq-in{padding:0;margin:22px 0 0;background:none;border:0}
.pp-new .faq-in{border-top:1px solid var(--merck-line);padding-top:20px}
.pp-new .mnav-body>.pkg-in:first-of-type{margin-top:14px}

/* 가격 열 — 스크롤을 따라온다. 본문이 짧은 페이지에서도 잘리지 않게 top 만 고정한다. */
.pp-new .detail-top .wrap.has-mnav>.mnav{position:sticky;top:86px;align-self:start;
  max-height:calc(100vh - 106px);overflow-y:auto}
.pp-new .buycol{grid-column:3;position:sticky;top:86px;align-self:start;min-width:0}
.pp-new .buycol .bb{margin:0}
.pp-new .buycol-note{margin:10px 0 0;font-size:11.5px;color:var(--gray-2);line-height:1.65}
.pp-new .buycol-note b{color:var(--ink)}
/* site.css 의 «.dt-info .dt-buy{max-width:420px}» 는 본문 안으로 내려온 경우의 값이다.
   3열에서는 구매창이 .dt-info 밖(.buycol)에 있어 해당되지 않는다. */

/* 본문 열 — 사진과 글 */
.pp-new .dt-grid{gap:36px;grid-template-columns:minmax(0,320px) minmax(0,1fr)}

@media(max-width:1240px){
  /* 가격 열을 접어 본문 아래로 내린다 — 2열(내비 | 본문) */
  .pp-new .detail-top .wrap.has-mnav{grid-template-columns:190px minmax(0,1fr);max-width:1080px}

  .pp-new .buycol{grid-column:2;position:static;margin-top:20px;max-width:420px}
}
@media(max-width:1000px){
  .pp-new .detail-top .wrap.has-mnav{grid-template-columns:1fr;gap:0;max-width:920px}

  .pp-new .buycol{grid-column:1}
}
@media(max-width:720px){.pp-new .dt-grid{grid-template-columns:1fr;gap:16px}}

/* 대표사진 모서리 리본 — 어느 계열인지 사진만 보고도 알게 한다 */
.dt-img:has(.dt-ribbon){position:relative}
.dt-ribbon{position:absolute;top:0;left:0;width:112px;height:112px;overflow:hidden;z-index:2;
  pointer-events:none}
.dt-ribbon>span{position:absolute;top:20px;left:-34px;width:150px;transform:rotate(-45deg);
  background:#E8850C;color:#fff;font-size:10.5px;font-weight:800;letter-spacing:.02em;
  text-align:center;padding:4px 0;line-height:1.4;box-shadow:0 1px 3px rgba(0,0,0,.18)}

/* ── 하이라이트 ──
   조성 줄은 이 페이지의 «정답»이다 — 왼쪽 강조선과 옅은 바탕으로 한 덩이로 세운다.
   형광(mark.hl)은 구매 판단이 걸린 수치에만 쓴다: 농도·용매비·규격 상한. */
.pp-new .dt-formula{margin:12px 0 0;padding:11px 14px;background:#FFF8ED;
  border-left:4px solid #E8850C;border-radius:0 8px 8px 0}
mark.hl{background:linear-gradient(transparent 56%, #FFE3B8 56%);color:inherit;
  font-weight:800;padding:0 1px;border-radius:2px}
.dt-spec td b{font-weight:800;color:var(--ink)}

/* 조성 줄 — 기준(Vol%/wt%)은 배지로 떼어 낸다 */
.dt-formula .u{display:inline-block;margin-left:8px;padding:2px 8px;border-radius:5px;
  background:#FDF0E0;color:#B9600A;font-size:11.5px;font-weight:800;vertical-align:2px;
  letter-spacing:.01em}

/* 제목 밑 규격 표 */
.dt-spec{width:100%;border-collapse:collapse;margin:14px 0 0;font-size:12.8px;line-height:1.6}
.dt-spec th,.dt-spec td{padding:7px 0;border-top:1px solid var(--merck-line);text-align:left;
  vertical-align:top}
.dt-spec tr:last-child th,.dt-spec tr:last-child td{border-bottom:1px solid var(--merck-line)}
.dt-spec th{width:92px;color:var(--gray-2);font-weight:700;white-space:nowrap}
.dt-spec td{color:var(--ink);word-break:break-word;font-variant-numeric:tabular-nums}
.dt-spec .bg{display:inline-block;margin-left:6px;padding:1.5px 7px;border-radius:4px;
  background:#EAF4FB;color:#0F69AF;font-size:11px;font-weight:800;letter-spacing:.01em}
.dt-spec b{color:var(--ink);font-weight:800}

/* 정답블록 + 요약을 한 상자로 */
.dt-desc{margin:16px 0 0;background:var(--merck-soft);border:1px solid var(--merck-line);
  border-radius:10px;padding:14px 16px;font-size:14px;color:#3a3330;line-height:1.75}
.dt-desc b{color:var(--merck-link)}

/* 표 머리글 — 새 레이아웃 페이지 안에서만. 전체 2,900장에 번지지 않게 body 로 가둔다 */
.pp-new .pkg-tbl thead th{background:#2E3A52;color:#fff;font-weight:800;text-align:left;
  font-size:12.5px;letter-spacing:.02em}
.pp-new .pkg-lv thead th:first-child{width:132px}

/* ── 비슷한 배합 — 4열 카드 ── */
.rf-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.rf-card{display:flex;flex-direction:column;gap:7px;padding:13px 14px 12px;
  border:1px solid var(--merck-line);border-radius:12px;background:#fff;
  text-decoration:none;transition:border-color .15s,box-shadow .15s}
.rf-card:hover{border-color:var(--merck-link);box-shadow:0 2px 10px rgba(15,105,175,.10)}
.rf-card .c{font-size:15px;font-weight:800;color:var(--merck-link);letter-spacing:-.01em}
.rf-card .f{font-size:12.5px;color:var(--ink);line-height:1.55;word-break:break-word;
  font-variant-numeric:tabular-nums}
.rf-card .d{margin-top:auto;padding-top:9px;border-top:1px solid var(--merck-line);
  font-size:11.5px;color:var(--gray-2);line-height:1.55}
.rf-tag{align-self:flex-start;padding:1.5px 7px;border-radius:4px;font-size:11px;
  font-weight:800;white-space:nowrap}
.rf-eq{background:#E6F4EA;color:#1E7B3C}
.rf-un{background:#FDF0E0;color:#B9600A}
.rf-ap{background:#EEF1F6;color:#4A5568}
@media(max-width:1240px){.rf-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.rf-grid{grid-template-columns:1fr}}
