/* ============================================================================
   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:"Noto Serif KR",Georgia,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-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}}
  /* 우측 여백 레일 — 본문 폭은 그대로 두고 바깥 여백만 사용, 스크롤 추종 */
  body{position:relative}
  .buyrail{display:none}
  @media(min-width:1440px){
    .buyrail{display:block;position:absolute;left:calc(50% + 462px);width:250px;pointer-events:none}
    .buyrail .dt-buy{position:sticky;top:86px;pointer-events:auto}
  }
  .dt-info .dt-buy{margin:16px 0 0;max-width:420px}
  .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}
.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}

/* 헤더 있는 목록·비교표는 본문을 왼쪽 정렬하고 마지막 열(가격·링크)만 가운데 */
.pkg-tbl thead + tbody td{text-align:left}
.pkg-tbl thead + tbody td:last-child{text-align:center;white-space:nowrap}
