/* ============================================================
   smarthaccp.io 스킨 기본 스타일 — 2026-10-15, 사용자 확정 A안(스마트해썹_시안_사진적용/A안.html)을 옮겼다.
   흰 바탕 · 회색 3단 · 강조 파랑 하나. 서체는 시안 그대로 Gothic A1(본문·제목), Nanum Pen Script(일지 예시의 손글씨 칸만).
     두 서체 모두 OFL(상업 이용 가능). 시안을 사용자가 확정했으므로 서체도 따른다.
   시안과 다른 점:
     - 다크 모드를 뺐다 — 엔진이 그리는 회원·게시판 위젯(jqx)이 밝은 바탕 전제라 어두운 화면에서 깨진다.
     - form·label·input 전역 규칙을 .hc-form 안으로 좁혔다 — 엔진 화면(회원·게시판)의 폼까지 바뀌지 않게.
     - 섹션 틀(.sh-secbox)이 한 겹 끼므로 '구획 사이' 규칙을 자식 선택자에 기대지 않는다.
   ★ 이 파일을 고치면 design/layout.html 의 ?v= 를 올린다.
   ============================================================ */
:root{
  --bg:#ffffff; --panel:#f3f5f8; --panel-2:#e8ecf1;
  --ink:#1b2129; --ink-2:#4f5966; --ink-3:#8a94a0; --line:#e3e7ec;
  --accent:#2a6ef0; --accent-ink:#ffffff; --accent-soft:#ebf2ff; --accent-strong:#1d57c9;
  --ok:#1b8a57; --ok-soft:#e3f5ec; --warn:#b26a00; --warn-soft:#fff3dc; --bad:#d93a2f; --bad-soft:#fdeceb;
  --hand:#2b4ba0;
  --f-body:"Gothic A1","Apple SD Gothic Neo","Malgun Gothic",sans-serif;
  --f-hand:"Nanum Pen Script","Gothic A1",cursive;
  --wrap:1160px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:72px}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--f-body);font-size:17px;line-height:1.7;word-break:keep-all;overflow-wrap:anywhere}
img{max-width:100%}
[hidden]{display:none!important}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation:none!important;transition:none!important}}
.hc a{color:inherit}
.hc h1,.hc h2,.hc h3,.hc p{margin:0}
.hc h1,.hc h2{font-weight:800;letter-spacing:-.025em;line-height:1.3;text-wrap:balance}
.hc h3{font-size:20px;font-weight:800;line-height:1.4;letter-spacing:-.01em}
:focus-visible{outline:3px solid var(--accent);outline-offset:2px;border-radius:4px}
.wrap{max-width:var(--wrap);margin:0 auto;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
.num{font-variant-numeric:tabular-nums}
.c{text-align:center}.l{text-align:left}.r{text-align:right}
.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* 섹션 틀 — 편집기의 '위 여백 추가'(엔진 예약 이름) */
.sh-secbox{padding-top:var(--sh-secbox-gap,0)}

.btn{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:0 24px;border-radius:6px;font:inherit;font-weight:700;font-size:16px;text-decoration:none;border:0;cursor:pointer;transition:background .15s}
.btn-main{background:var(--accent);color:var(--accent-ink)!important}
.btn-main:hover{background:var(--accent-strong)}
.btn-sub{background:var(--panel);color:var(--ink)!important}
.btn-sub:hover{background:var(--panel-2)}
.btn-sub.on-gray{background:var(--bg)}

.sec{padding-block:112px}
.sec.gray{background:var(--panel)}
.sec.tight-top{padding-top:0}
.head{display:grid;gap:14px;max-width:720px;margin-bottom:48px}
.head h2{font-size:clamp(28px,3.6vw,42px)}
.head p,.head .desc{color:var(--ink-2);font-size:18px}
.head.center{margin-inline:auto;text-align:center;justify-items:center}
@media (max-width:760px){.sec{padding-block:72px}.head{margin-bottom:32px}}

/* 머리 */
.hdr{position:sticky;top:0;z-index:20;background:var(--bg);border-bottom:1px solid var(--line)}
.hdr .wrap{display:flex;align-items:center;gap:20px;height:64px;position:relative}
.logo{text-decoration:none;font-weight:800;font-size:20px;letter-spacing:-.02em;color:var(--ink);display:inline-flex;align-items:center}
.logo-img{display:block;height:36px;width:auto;max-width:180px}
.hc-foot .logo-img{height:32px}
.nav{display:flex;gap:2px;margin-left:auto}
.nav a{padding:8px 12px;border-radius:8px;font-size:15px;font-weight:500;color:var(--ink-2);text-decoration:none}
.nav a:hover{background:var(--panel);color:var(--ink)}
.hdr-mem{display:flex;gap:2px;font-size:14px}
.hdr-mem a{padding:8px 10px;border-radius:8px;color:var(--ink-3);text-decoration:none}
.hdr-mem a:hover{color:var(--ink);background:var(--panel)}
.hdr .btn{min-height:40px;padding:0 16px;font-size:15px}
.menu-btn{display:none;margin-left:auto;background:var(--panel);border:0;border-radius:6px;padding:9px 14px;color:var(--ink);font:inherit;font-size:15px;font-weight:700;cursor:pointer}
@media (max-width:1100px){
  .nav{display:none;position:absolute;top:64px;left:0;right:0;flex-direction:column;background:var(--bg);border-bottom:1px solid var(--line);padding:8px 16px 16px}
  .nav.open{display:flex}
  .nav a{padding:12px}
  .menu-btn{display:block}
  .hdr-mem{display:none}
  .nav.open + .hdr-mem{display:flex}
}
@media (max-width:460px){.hdr .btn{display:none}}

/* 첫 화면 */
.hero{padding-block:80px 72px}
.hero .wrap{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:56px;align-items:center}
.hero-copy{display:grid;gap:24px;min-width:0}
.hero h1{font-size:clamp(36px,4.8vw,56px);letter-spacing:-.035em}
.hero-lead{font-size:19px;color:var(--ink-2);max-width:30em}
.hero-actions{display:flex;flex-wrap:wrap;gap:10px}
.hero-fact{font-size:15px;color:var(--ink-3)}
.hero-fact b,.hero-fact strong{color:var(--ink);font-weight:700}
.hero-photo{margin:0;display:grid;gap:10px;min-width:0}
.hero-photo img,.hero-photo video{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;border-radius:6px;background:var(--panel)}
.hero-photo figcaption,.shot figcaption{font-size:13.5px;color:var(--ink-3)}
@media (max-width:960px){.hero .wrap{grid-template-columns:1fr}.hero{padding-block:48px}}

/* 인증·특허 줄 */
.logos{padding-block:8px 72px}
.certs-title{text-align:center;color:var(--ink-3);font-size:15px;margin-bottom:6px}
.certs-case{text-align:center;color:var(--ink);font-size:16px;font-weight:700;margin-bottom:24px}
.certs{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:28px 16px;align-items:start}
.certs li{display:grid;gap:8px;justify-items:center;min-width:0}
.certs img{display:block;height:120px;width:auto;max-width:100%;box-shadow:0 6px 16px -8px rgba(27,33,41,.35)}
.certs span{font-size:13.5px;color:var(--ink-2);text-align:center}
.certs-zoom{display:block;max-width:100%;cursor:zoom-in;transition:transform .15s}
.certs-zoom:hover{transform:translateY(-3px)}
/* 인증·특허 크게 보기(haccp.js 13) */
.hc-lb{position:fixed;inset:0;z-index:60;background:rgba(10,14,18,.88);display:grid;place-items:center;padding:60px 72px 24px}
.hc-lb figure{margin:0;display:grid;gap:12px;justify-items:center;min-height:0}
.hc-lb img{display:block;height:min(calc(100vh - 140px),880px);width:auto;max-width:100%;object-fit:contain;background:#fff;box-shadow:0 12px 40px rgba(0,0,0,.45)}
.hc-lb figcaption{color:#fff;font-size:15px;text-align:center}
.hc-lb-err{color:#fff;font-size:15px}
.hc-lb-btn{position:absolute;width:48px;height:48px;border:0;border-radius:50%;background:rgba(255,255,255,.16);color:#fff;font-size:26px;line-height:1;cursor:pointer;display:grid;place-items:center}
.hc-lb-btn:hover{background:rgba(255,255,255,.28)}
.hc-lb-close{top:12px;right:12px}
.hc-lb-prev,.hc-lb-next{top:50%;transform:translateY(-50%)}
.hc-lb-prev{left:12px}
.hc-lb-next{right:12px}
@media (max-width:760px){.hc-lb{padding:60px 12px 84px}.hc-lb figure{width:100%}.hc-lb img{width:100%;height:auto;max-height:calc(100vh - 200px)}.hc-lb-prev,.hc-lb-next{top:auto;bottom:16px;transform:none}.hc-lb-prev{left:calc(50% - 60px)}.hc-lb-next{right:calc(50% - 60px)}}
@media (max-width:760px){.certs{grid-template-columns:repeat(3,minmax(0,1fr))}.certs img{height:100px}}

/* 점검일지 양식(예시 그림) */
.doc{background:var(--bg);border:1px solid var(--line);border-radius:6px;min-width:0;font-size:14px;overflow:hidden}
.doc-top{display:grid;grid-template-columns:minmax(0,1fr) auto;border-bottom:1.5px solid var(--ink)}
.doc-name{padding:16px 18px;display:grid;gap:4px;align-content:center;min-width:0}
.doc-name strong{font-size:18px;font-weight:800;line-height:1.35}
.doc-name span{font-size:13px;color:var(--ink-3)}
.sign{border-collapse:collapse;border-left:1px solid var(--ink);font-size:12.5px;text-align:center}
.sign th{font-weight:700;padding:4px 0;border-bottom:1px solid var(--ink);border-left:1px solid var(--ink);width:62px;background:var(--panel)}
.sign th:first-child,.sign td:first-child{border-left:0}
.sign .side{width:26px;writing-mode:vertical-rl;letter-spacing:.3em;padding:0 2px}
.sign td{height:54px;border-left:1px solid var(--ink);position:relative;color:var(--ink-3)}
.sign .hand{font-family:var(--f-hand);font-size:22px;color:var(--hand);line-height:1}
.stamp{position:absolute;inset:0;margin:auto;width:44px;height:44px;border:2.5px solid var(--bad);border-radius:50%;color:var(--bad);display:grid;place-items:center;align-content:center;font-weight:800;font-size:12.5px;line-height:1.1;transform:rotate(-14deg)}
.stamp small{font-size:8.5px;font-weight:700}
.doc-info{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-bottom:1px solid var(--line)}
.doc-info div{padding:9px 14px;border-left:1px solid var(--line);display:grid;min-width:0}
.doc-info div:first-child{border-left:0}
.doc-info b{font-size:11.5px;font-weight:700;color:var(--ink-3)}
.doc-info span{font-weight:500}
@media (max-width:560px){.doc-info{grid-template-columns:1fr 1fr}.doc-info div:last-child{grid-column:1/-1;border-left:0;border-top:1px solid var(--line)}}
.tbl{overflow-x:auto}
.log{width:100%;border-collapse:collapse;min-width:480px}
.log td,.log th{overflow-wrap:normal;word-break:keep-all}
@media (max-width:560px){.doc-top{grid-template-columns:minmax(0,1fr)}.sign{border-left:0;border-top:1px solid var(--ink);width:100%}}
.log th{font-size:12.5px;font-weight:700;color:var(--ink-3);background:var(--panel);padding:8px 12px;text-align:center;white-space:nowrap}
.log td{padding:10px 12px;border-bottom:1px solid var(--line);white-space:nowrap;font-variant-numeric:tabular-nums}
.log td.l{white-space:normal}
.log tr.dev td{background:var(--bad-soft)}
.st{font-size:14px;font-weight:700}
.st.ok{color:var(--ok)}.st.bad{color:var(--bad);font-weight:800}.st.warn{color:var(--warn)}
.doc-foot{display:flex;flex-wrap:wrap;gap:6px 22px;padding:12px 16px;font-size:13.5px;color:var(--ink-2)}
.doc-foot b{color:var(--ink);font-weight:700;margin-right:6px}
.doc-foot .ex{margin-left:auto;font-size:12px;color:var(--ink-3)}
.play .live td{animation:hc-fill .35s both}
.play .live td:nth-child(1){animation-delay:.5s}.play .live td:nth-child(2){animation-delay:.7s}.play .live td:nth-child(3){animation-delay:.9s}
.play .live td:nth-child(4){animation-delay:1.15s}.play .live td:nth-child(5){animation-delay:1.35s}.play .live td:nth-child(6){animation-delay:1.6s}
.play .stamp{animation:hc-stamp .3s 2.3s both cubic-bezier(.3,1.6,.6,1)}
@keyframes hc-fill{from{opacity:0;background:var(--accent-soft)}}
@keyframes hc-stamp{from{opacity:0;transform:rotate(-14deg) scale(1.9)}to{opacity:1;transform:rotate(-14deg) scale(1)}}

/* 종이 vs 디지털 */
.versus{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;align-items:stretch}
.vs-col{background:var(--bg);border-radius:6px;padding:32px;display:grid;gap:20px;align-content:start;min-width:0}
.vs-col h3 small{display:block;font-size:14px;font-weight:500;color:var(--ink-3);margin-top:2px}
.paper-photo{margin:0;min-width:0}
.paper-photo img,.paper-photo video{display:block;width:100%;height:auto;border-radius:4px;box-shadow:0 10px 24px -16px rgba(15,29,36,.55)}
.paper-photo video{aspect-ratio:1000/792;object-fit:cover}
.facts{margin:0;padding-left:1.2em;display:grid;gap:8px;font-size:16px;color:var(--ink-2)}
.facts p{margin:0}
@media (max-width:860px){.versus{grid-template-columns:1fr}.vs-col{padding:24px 18px}}

/* 효과 */
.gains{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.gain{background:var(--panel);border-radius:6px;padding:32px 28px;display:grid;gap:10px;align-content:start;min-width:0}
.sec.gray .gain{background:var(--bg)}
.gain strong{font-size:44px;font-weight:800;letter-spacing:-.03em;color:var(--accent);font-variant-numeric:tabular-nums;line-height:1.1}
.gain h3{font-size:19px}
.gain p{color:var(--ink-2);font-size:16px}
@media (max-width:900px){.gains{grid-template-columns:1fr}}

/* 역할별 */
.roles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.role{background:var(--panel);border-radius:6px;padding:28px 24px;display:grid;gap:12px;align-content:start;min-width:0}
.sec.gray .role{background:var(--bg)}
.role .who{font-size:14px;font-weight:700;color:var(--accent)}
.role ul{margin:0;padding-left:1.1em;display:grid;gap:6px;font-size:15.5px;color:var(--ink-2)}
@media (max-width:960px){.roles{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:520px){.roles{grid-template-columns:1fr}}

/* 기능: 글과 화면이 번갈아(섹션 하나 = 한 줄) */
.feat{padding-block:48px}
.feat-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:56px;align-items:start}
.feat-row.flip .show-text{order:2}
.show-text{display:grid;gap:16px;min-width:0;padding-top:8px}
.show-text .kicker{font-size:15px;font-weight:700;color:var(--accent)}
.show-text h3{font-size:clamp(24px,2.6vw,32px);letter-spacing:-.025em}
.show-text p{color:var(--ink-2)}
.show-text ul{margin:0;padding-left:1.2em;display:grid;gap:6px;color:var(--ink-2);font-size:16px}
.stage{background:var(--panel);border-radius:6px;padding:36px;display:grid;grid-template-columns:minmax(0,1fr);gap:16px;place-items:center;min-width:0}
.sec.gray .stage{background:var(--bg)}
@media (max-width:900px){.feat-row{grid-template-columns:1fr;gap:28px}.feat-row.flip .show-text{order:0}.stage{padding:20px}.feat{padding-block:32px}}
.shot{margin:0;display:grid;gap:8px;width:100%}
.shot img,.shot video{display:block;width:100%;height:auto;border-radius:8px}
.shot video{aspect-ratio:4/3;object-fit:cover}

.logs{display:grid;gap:16px;width:100%;min-width:0}
.tabs{display:flex;flex-wrap:wrap;gap:6px}
.tabs button{border:0;background:var(--bg);color:var(--ink-2);padding:9px 14px;border-radius:6px;font:inherit;font-size:15px;font-weight:700;cursor:pointer;min-height:42px}
.tabs button:hover{color:var(--ink)}
.tabs button[aria-selected="true"]{background:var(--ink);color:var(--bg)}
.logs .log{min-width:420px}

.approve{width:100%;max-width:420px;background:var(--bg);border-radius:6px;padding:22px;display:grid;gap:4px;box-shadow:0 20px 50px -24px rgba(27,33,41,.3)}
.approve > strong{font-size:17px;font-weight:800;margin-bottom:8px}
.ap-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;padding:12px 0;border-top:1px solid var(--line)}
.ap-row b{font-weight:700;font-size:15px;display:block}
.ap-row span{font-size:13px;color:var(--ink-3)}
.ap-btn{background:var(--accent);color:var(--accent-ink);border:0;border-radius:8px;padding:8px 14px;font:inherit;font-size:14px;font-weight:700;cursor:pointer;min-height:38px}
.ap-done{font-size:14px;font-weight:800;color:var(--bad)!important;border:2px solid var(--bad);border-radius:50%;width:46px;height:46px;display:grid;place-items:center;transform:rotate(-12deg)}

.flow{width:100%;display:grid;gap:26px}
.node{background:var(--bg);border-radius:8px;padding:18px 20px;display:grid;gap:6px;position:relative}
.node + .node::before{content:"";position:absolute;left:50%;top:-21px;width:2px;height:16px;background:var(--ink-3)}
.node b{font-weight:800}
.node span{font-size:15px;color:var(--ink-2)}
.node.core{background:var(--accent);color:var(--accent-ink)}
.node.core span{color:var(--accent-ink);opacity:.85}

.ai-photo{display:block;width:100%;aspect-ratio:3/2;object-fit:cover;border-radius:6px}
.ai-list{width:100%;display:grid;gap:10px}
.ai-item{background:var(--bg);border-radius:8px;padding:18px 20px;display:grid;gap:4px}
.ai-item b{font-weight:800}
.ai-item span{font-size:15px;color:var(--ink-2)}

/* 장비 */
.hw{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}
.hw article{display:grid;gap:10px;align-content:start;min-width:0}
.hw-img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:8px;background:#fff}
.hw-img.contain{object-fit:contain;padding:8px}
.hw h3{font-size:17px}
.hw p{font-size:15px;color:var(--ink-2)}
@media (max-width:960px){.hw{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:480px){.hw{grid-template-columns:1fr}}

/* 도입 단계 */
.steps{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin:0;padding:0;list-style:none;counter-reset:s}
.steps li{background:var(--panel);border-radius:8px;padding:22px 20px;display:grid;gap:8px;align-content:start;min-width:0}
.sec.gray .steps li{background:var(--bg)}
.steps li::before{counter-increment:s;content:counter(s);width:30px;height:30px;border-radius:50%;background:var(--accent-soft);color:var(--accent);display:grid;place-items:center;font-weight:800;font-size:14px}
.steps h3{font-size:17px}
.steps p{font-size:15px;color:var(--ink-2)}
@media (max-width:960px){.steps{grid-template-columns:1fr}}

/* 지원사업 */
.support{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:48px;align-items:start}
.support .head{margin-bottom:0}
.todo{background:var(--accent-soft);border-radius:6px;padding:32px;display:grid;gap:16px}
.todo ul{margin:0;padding-left:1.2em;display:grid;gap:8px;font-size:16px}
.note{font-size:14px;color:var(--ink-2)}
@media (max-width:860px){.support{grid-template-columns:1fr}}

/* 요금제 */
.plans{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;align-items:stretch}
.plan{background:var(--bg);border-radius:6px;padding:32px 28px;display:grid;grid-template-rows:auto auto auto 1fr auto;gap:14px;min-width:0;border:2px solid transparent}
.plan.hot{border-color:var(--accent)}
.plan .pick{font-size:13px;font-weight:800;color:var(--accent)}
.plan h3{font-size:20px}
.plan .for{font-size:15px;color:var(--ink-2)}
.amt{font-size:34px;font-weight:800;letter-spacing:-.03em;font-variant-numeric:tabular-nums;line-height:1.2}
.amt small{font-size:15px;font-weight:500;color:var(--ink-3);letter-spacing:0;margin-left:2px}
.inc{margin:0;padding:0;list-style:none;display:grid;align-content:start;border-top:1px solid var(--line)}
.inc li{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--line);font-size:15px}
.inc li span:last-child{font-weight:700}
.inc .y{color:var(--ok)}.inc .n{color:var(--ink-3);font-weight:400!important}
.price-note{margin-top:16px;font-size:14px;color:var(--ink-3)}
@media (max-width:900px){.plans{grid-template-columns:1fr}}

/* 영상 */
.vfilter{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:20px}
.vfilter button{border:0;background:var(--panel);color:var(--ink-2);padding:9px 16px;border-radius:6px;font:inherit;font-size:15px;font-weight:700;cursor:pointer;min-height:42px}
.vfilter button[aria-pressed="true"]{background:var(--ink);color:var(--bg)}
/* 영상 카드(2026-10-16) — haccp.js 가 유튜브 주소면 .thumb 와 is-short(세로)·is-video(가로, 두 칸)를 붙인다. 못 붙인 항목은 글자 카드 */
.vlist{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:28px 16px;align-items:start}
.vlist li{min-width:0}
.vlist li.is-video{grid-column:span 2}
.vlist a{display:flex;flex-direction:column;gap:6px;text-decoration:none;color:var(--ink)}
.vlist li:not(.has-thumb) a{border:1px solid var(--line);border-radius:6px;padding:16px}
.vlist .thumb{position:relative;display:block;aspect-ratio:9/16;margin-bottom:4px;border-radius:6px;overflow:hidden;background:var(--panel)}
.vlist li.is-video .thumb{aspect-ratio:16/9}
.vlist .thumb img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .2s}
.vlist .thumb::after{content:"";position:absolute;left:50%;top:50%;width:46px;height:46px;margin:-23px 0 0 -23px;border-radius:50%;background:rgba(0,0,0,.55) center/18px no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M5 3.5v9l7.5-4.5z' fill='white'/%3E%3C/svg%3E")}
.vlist a:hover .thumb img{transform:scale(1.04)}
.vlist .cat{font-size:13px;font-weight:700;color:var(--ink-3)}
.vlist .t{font-weight:500;line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.vlist .go{display:none}
.vlist a:hover .t{text-decoration:underline;text-underline-offset:3px}
@media (max-width:1000px){.vlist{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:560px){.vlist{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 12px}}

/* 자주 묻는 질문 */
.faq{max-width:860px;margin-inline:auto;display:grid;gap:8px}
.faq details{background:var(--bg);border-radius:8px;padding:0 22px}
.sec:not(.gray) .faq details{background:var(--panel)}
.faq summary{cursor:pointer;padding:20px 0;font-weight:700;font-size:17px;list-style:none;display:flex;justify-content:space-between;gap:16px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-size:22px;line-height:1;color:var(--ink-3)}
.faq details[open] summary::after{content:"\2212"}
.faq .ans{padding:0 0 22px;color:var(--ink-2)}
.faq .ans p{margin:0 0 8px}

/* 문의 */
.contact{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);gap:48px;align-items:start}
.c-info{display:grid}
.c-item{display:grid;grid-template-columns:96px minmax(0,1fr);gap:12px;padding:16px 0;border-bottom:1px solid var(--line);align-items:center}
.c-item > span{font-size:14px;color:var(--ink-3);font-weight:700}
.c-val{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px}
.c-val strong{font-size:18px;font-weight:800;font-variant-numeric:tabular-nums}
.copy{font:inherit;font-size:13px;font-weight:700;border:0;background:var(--panel);color:var(--ink-2);padding:5px 10px;border-radius:8px;cursor:pointer}
@media (max-width:860px){.contact{grid-template-columns:1fr}}

/* 사이트 폼(문의 폼) — 엔진 폼에 번지지 않게 .hc-form 안에서만 */
.hc-form{background:var(--panel);border-radius:6px;padding:32px;display:grid;gap:16px;min-width:0;margin:0}
.hc-form .row2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.hc-form label{display:grid;grid-template-columns:minmax(0,1fr);gap:6px;font-size:15px;font-weight:700}
.hc-form label em{color:var(--bad);font-style:normal}
.hc-form input,.hc-form select,.hc-form textarea{font:inherit;font-size:16px;font-weight:400;padding:12px 14px;border:1px solid var(--line);border-radius:6px;background:var(--bg);color:var(--ink);width:100%;min-height:50px}
.hc-form input:focus,.hc-form select:focus,.hc-form textarea:focus{outline:2px solid var(--accent);outline-offset:0;border-color:transparent}
.hc-form textarea{min-height:130px;resize:vertical}
.hc-form .is-bad{border-color:var(--bad);background:var(--bad-soft)}
.hc-form .agree{display:flex;gap:10px;align-items:center;font-weight:500;font-size:14.5px;color:var(--ink-2)}
.hc-form .agree input{width:20px;min-height:20px;height:20px;flex:none}
.hc-form .agree a{color:var(--accent)}
.hc-form .cap{display:flex;gap:10px;align-items:center}
.hc-form .cap input{min-width:0;flex:1 1 auto}
.hc-form .cap img{height:50px;width:auto;max-width:50%;border-radius:6px;background:#fff;cursor:pointer;flex:none}
/* 자동등록 방지 ALTCHA 위젯(2026-10-15) — 문의 폼은 haccp.js 가 [data-hc-altcha] 에, 게시판 글쓰기는 lib(SPAM_IMG)가 .bd-cap 에 그린다 */
.hc-form .f-altcha{display:grid;gap:6px;font-size:15px;font-weight:700}
.hc-form .f-altcha em{color:var(--bad);font-style:normal}
.hc-form altcha-widget,.bd-cap altcha-widget{--altcha-max-width:320px;--altcha-border-radius:6px;--altcha-color-border:var(--line);--altcha-color-base:var(--bg);font-weight:400}
/* 위젯은 shadow DOM 없이 그린다 — 스킨의 폼 규칙(.hc-form input·label, .bd-field input)이 위젯 체크박스·라벨에 걸려
   체크박스가 22x50 막대가 되고 라벨이 굵은 grid 가 됐다. 위젯 안에서는 위젯 값(--altcha-checkbox-*)으로 되돌린다.
   체크됨 색은 위젯 규칙(.altcha-checkbox input:checked, 우선순위가 더 높다)이 그대로 칠한다 */
.hc-form altcha-widget input,.bd-cap altcha-widget input{min-height:0;width:var(--altcha-checkbox-size,22px);height:var(--altcha-checkbox-size,22px);padding:0;font-size:inherit;border:var(--altcha-checkbox-border-width,2px) solid var(--altcha-checkbox-border-color);border-radius:var(--altcha-checkbox-border-radius);background:var(--altcha-input-background-color)}
.hc-form altcha-widget input:focus:not(:checked){border-color:var(--altcha-checkbox-border-color)}
.hc-form altcha-widget label{display:inline;font-size:15px;font-weight:500}
.bd-cap altcha-widget{width:320px;max-width:100%}
.f-msg{font-size:15px;padding:12px 14px;border-radius:6px;margin:0}
.f-msg.ok{background:var(--ok-soft);color:var(--ok)}
.f-msg.err{background:var(--bad-soft);color:var(--bad)}
@media (max-width:860px){.hc-form{padding:22px 18px}}
@media (max-width:520px){.hc-form .row2{grid-template-columns:1fr}}

/* 마지막 권유 */
.closing{padding-block:96px;text-align:center}
.closing .wrap{display:grid;gap:18px;justify-items:center}
.closing h2{font-size:clamp(28px,3.6vw,42px)}
.closing p{color:var(--ink-2);font-size:18px}
.closing .hero-actions{justify-content:center}

/* 글 구획(운영자 페이지) */
.txt{max-width:820px}
.txt h2{font-size:clamp(24px,3vw,34px);margin-bottom:16px}
.txt .body p{margin:0 0 12px;color:var(--ink-2)}
.txt .body ul{color:var(--ink-2)}

/* 꼬리 */
.hc-foot{background:var(--panel);font-size:14.5px;color:var(--ink-2)}
.hc-foot .wrap{padding-block:48px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:32px}
.hc-foot .brand{display:grid;gap:10px;align-content:start}
.hc-foot dl{display:grid;grid-template-columns:auto minmax(0,1fr);gap:6px 18px;margin:0}
.hc-foot dt{color:var(--ink-3)}
.hc-foot dd{margin:0}
.hc-foot .links{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:6px 18px}
.hc-foot .links a{color:var(--ink-2);text-decoration:none;font-weight:700}
.hc-foot .links a:hover{text-decoration:underline}
.hc-foot .copyr{grid-column:1/-1;border-top:1px solid var(--line);padding-top:18px;font-size:13px;color:var(--ink-3)}
@media (max-width:760px){.hc-foot .wrap{grid-template-columns:1fr}}

/* 서브 화면(회원·게시판·운영자 페이지) 공통 제목 띠 */
.sub-head{padding-block:56px 32px;border-bottom:1px solid var(--line)}
.sub-head h1{font-size:clamp(26px,3.2vw,36px)}
.sub-head p{color:var(--ink-2);margin-top:8px}
.sub-body{padding-block:48px 96px}

/* 접수 완료 알림 */
.hc-modal{position:fixed;inset:0;z-index:50;background:rgba(15,20,26,.45);display:grid;place-items:center;padding:16px}
.hc-modal-box{background:var(--bg);border-radius:8px;padding:28px;max-width:420px;width:100%;display:grid;gap:12px}
.hc-modal-box h2{font-size:22px}
.hc-modal-box p{color:var(--ink-2)}
.hc-modal-box .btn{justify-self:end;min-height:44px}

/* 게시판(도입 문의 — board/haccp_inquiry). 제목 칸(th)은 모두 중앙, 본문은 칸마다 c·l 클래스 */
.bd .tbl{overflow-x:auto}
.bd-count{margin:0 0 12px;color:var(--ink-2)}
.bd-table{width:100%;border-collapse:collapse;min-width:720px;font-size:15px}
.bd-table th{text-align:center;font-size:13.5px;font-weight:700;color:var(--ink-3);background:var(--panel);padding:10px 12px;white-space:nowrap}
.bd-table td{padding:12px;border-bottom:1px solid var(--line)}
.bd-table td a{color:var(--ink);text-decoration:none;font-weight:500}
.bd-table td a:hover{text-decoration:underline}
.bd-foot{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-top:20px}
.bd-search{display:flex;gap:8px;flex-wrap:wrap}
.bd-search select,.bd-search input,.bd-pw input,.bd-field input,.bd-field select,.bd-field textarea{font:inherit;font-size:16px;padding:10px 12px;border:1px solid var(--line);border-radius:6px;background:var(--bg);color:var(--ink);min-height:46px}
.bd-search .btn{min-height:46px}
.bd-gate{display:grid;gap:16px;justify-items:start}
.bd-view{display:grid;gap:20px;max-width:860px}
.bd-view-head h2{font-size:24px}
.bd-meta{color:var(--ink-3);font-size:14px;margin-top:6px}
.bd-kv{width:100%;border-collapse:collapse;font-size:15px}
.bd-kv th{width:140px;text-align:center;background:var(--panel);font-weight:700;color:var(--ink-2);padding:10px 12px;border-bottom:1px solid var(--line)}
.bd-kv td{padding:10px 12px;border-bottom:1px solid var(--line)}
.bd-files{list-style:none;margin:0;padding:0;display:grid;gap:4px;font-size:14px}
.bd-view-body{line-height:1.8}
.bd-btns{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap}
.bd-btns > div{display:flex;gap:8px}
.bd-btns .btn{min-height:44px}
.bd-nav{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.bd-nav li{display:flex;gap:16px;padding:12px 0;border-bottom:1px solid var(--line)}
.bd-nav span{color:var(--ink-3);font-size:14px;flex:none}
.bd-form{display:grid;gap:16px;max-width:720px}
.bd-field{display:grid;gap:6px}
.bd-field > label,.bd-label{font-size:15px;font-weight:700}
.bd-field em,.sub-head em{color:var(--bad);font-style:normal}
.bd-field input,.bd-field textarea{width:100%}
.bd-cap{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
/* lib 의 그림 글자 모드(http)는 입력칸을 인라인 70x20 으로 낸다 — 이 스킨 입력칸 크기로 덮는다. 안내 한 줄은 다음 줄로 */
.bd-cap input#spam_id{width:220px!important;max-width:100%;height:50px!important;padding:0 14px!important;border:1px solid var(--line)!important;border-radius:6px!important;background:var(--bg)!important;box-shadow:none!important}
.bd-cap > span{flex-basis:100%;font-size:13px!important;color:var(--ink-2)!important}
.bd-privacy{background:var(--panel);border-radius:6px;padding:20px;display:grid;gap:10px}
.bd-privacy .bd-kv th{background:var(--bg)}
.bd-agree{display:flex;gap:8px;align-items:center;font-weight:700}
.bd-pw{max-width:420px;display:grid;gap:14px}
