/* 내 보관함(js/hive-keep.js) */
:root{--hk-bg:#fff;--hk-soft:var(--hv-ui-group,#f2f2f7);--hk-line:rgba(0,0,0,.08);--hk-tx:#1d1d1f;--hk-tx2:#6e6e73;--hk-red:#ff3b30;--hk-dark:#1d1d1f;--hk-font:var(--font-pret,-apple-system,BlinkMacSystemFont,"Apple SD Gothic Neo","Pretendard",system-ui,sans-serif)}
html.hk-lock,html.hk-lock body{overflow:hidden}

/* 떠 있는 하트 */
.hk-fab{position:fixed;right:16px;bottom:96px;z-index:880;width:48px;height:48px;display:grid;place-items:center;padding:0;border:0;border-radius:50%;background:rgba(255,255,255,.86);-webkit-backdrop-filter:blur(14px) saturate(1.6);backdrop-filter:blur(14px) saturate(1.6);color:var(--hk-tx);box-shadow:0 1px 2px rgba(0,0,0,.08),0 8px 24px rgba(0,0,0,.14);cursor:pointer;opacity:0;transform:translateY(10px) scale(.9);transition:opacity .3s,transform .3s cubic-bezier(.2,.8,.2,1),color .2s}
.hk-fab.is-in{opacity:1;transform:none}
.hk-fab--pair{-webkit-backdrop-filter:none;backdrop-filter:none}
.hk-fab--pair svg{width:38%;height:38%}
.hk-fab:focus-visible,.hk-heart:focus-visible{outline:2px solid #0066cc;outline-offset:3px}
[data-hive-keep].is-kept{color:var(--hk-red)}
[data-hive-keep].is-kept svg path{fill:currentColor}
.hk-pop svg{animation:hk-pop .45s cubic-bezier(.2,1.6,.4,1)}
@keyframes hk-pop{0%{transform:scale(.7)}50%{transform:scale(1.25)}100%{transform:scale(1)}}

/* 알림 */
.hk-toast{position:fixed;left:0;right:0;margin-inline:auto;width:max-content;bottom:calc(96px + env(safe-area-inset-bottom));z-index:100001;display:flex;align-items:center;gap:12px;max-width:calc(100vw - 32px);padding:10px 10px 10px 18px;border-radius:999px;background:rgba(29,29,31,.92);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);color:#fff;font:500 14px/1.4 var(--hk-font);box-shadow:0 10px 30px rgba(0,0,0,.25);opacity:0;pointer-events:none;transform:translateY(12px);transition:opacity .25s,transform .25s}
.hk-toast.is-on{opacity:1;pointer-events:auto;transform:none}
.hk-toast-t{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.hk-toast-a{flex:none;min-height:36px;padding:0 14px;border:0;border-radius:999px;background:#fff;color:var(--hk-dark);font:600 13px/1 var(--hk-font);cursor:pointer;white-space:nowrap}

/* 창 */
.hk-wrap{position:fixed;inset:0;z-index:100000;font-family:var(--hk-font);color:var(--hk-tx)}
.hk-wrap[hidden]{display:none}
.hk-dim{position:absolute;inset:0;background:rgba(0,0,0,.28);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);opacity:0;transition:opacity .25s}
.hk-wrap.is-open .hk-dim{opacity:1}
.hk-panel{position:absolute;left:0;right:0;bottom:0;max-height:88vh;max-height:88dvh;display:flex;flex-direction:column;background:var(--hk-bg);border-radius:22px 22px 0 0;box-shadow:0 -10px 40px rgba(0,0,0,.18);transform:translateY(100%);transition:transform .32s cubic-bezier(.2,.8,.2,1);padding-bottom:env(safe-area-inset-bottom)}
.hk-wrap.is-open .hk-panel{transform:none}
.hk-grab{display:block;width:40px;height:5px;margin:8px auto 0;border-radius:3px;background:rgba(0,0,0,.18)}
.hk-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 16px 6px 20px}
.hk-title{margin:0;font:700 19px/1.3 var(--hk-font);letter-spacing:-.01em}
.hk-x{width:44px;height:44px;display:grid;place-items:center;padding:0;border:0;border-radius:50%;background:transparent;color:var(--hk-tx);cursor:pointer}
.hk-x:hover{background:var(--hk-soft)}
.hk-x:focus-visible,.hk-tab:focus-visible,.hk-btn:focus-visible,.hk-mini:focus-visible,.hk-back:focus-visible,.hk-link:focus-visible{outline:2px solid #0066cc;outline-offset:2px}
.hk-tabs{display:flex;gap:4px;margin:4px 20px 8px;padding:3px;border-radius:12px;background:var(--hk-soft)}
.hk-tab{flex:1;min-height:38px;border:0;border-radius:9px;background:transparent;color:var(--hk-tx2);font:600 14px/1 var(--hk-font);cursor:pointer;transition:background .2s,color .2s}
.hk-tab.is-on{background:#fff;color:var(--hk-tx);box-shadow:0 1px 3px rgba(0,0,0,.08)}
.hk-body{flex:1;min-height:180px;overflow:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;padding:4px 20px 12px}
.hk-loading{margin:28px 0;text-align:center;color:var(--hk-tx2);font-size:14px}
.hk-empty{display:flex;flex-direction:column;align-items:center;gap:12px;padding:36px 12px;text-align:center;color:var(--hk-tx2);font-size:14px;line-height:1.6;word-break:keep-all}
.hk-empty svg{color:#c7c7cc}
.hk-empty p{margin:0;max-width:280px}

/* 목록 */
.hk-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.hk-item{display:flex;gap:14px;padding:14px 0;border-bottom:1px solid var(--hk-line)}
.hk-item:last-child{border-bottom:0}
.hk-thumb{flex:0 0 88px;height:88px;border-radius:14px;overflow:hidden;background:var(--hk-soft);display:grid;place-items:center;text-decoration:none}
.hk-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.hk-thumb-t{font:600 12px/1.3 var(--hk-font);color:var(--hk-tx2);text-align:center;padding:4px}
.hk-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.hk-top{display:flex;gap:6px;flex-wrap:wrap}
.hk-kind,.hk-cat{display:inline-flex;align-items:center;height:20px;padding:0 7px;border-radius:6px;font:600 11.5px/1 var(--hk-font)}
.hk-kind{background:var(--hk-dark);color:#fff}
.hk-cat{background:var(--hk-soft);color:var(--hk-tx2)}
.hk-name{color:var(--hk-tx);font:600 15px/1.4 var(--hk-font);text-decoration:none;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;word-break:keep-all}
.hk-name:hover{text-decoration:underline}
.hk-note{margin:0;color:var(--hk-tx2);font-size:13px;line-height:1.45;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}
.hk-price{margin:2px 0 0;display:flex;align-items:baseline;gap:6px;flex-wrap:wrap;font-size:15px}
.hk-price strong{font-weight:700}
.hk-price s{color:#aeaeb2;font-size:12.5px}
.hk-off{color:var(--hk-red);font-weight:700}
.hk-acts{display:flex;align-items:center;gap:6px;margin-top:6px;flex-wrap:wrap}
.hk-pick{display:inline-flex;align-items:center;gap:5px;min-height:36px;padding:0 14px;border:0;border-radius:999px;background:var(--hk-soft);color:var(--hk-tx);font:600 12.5px/1 var(--hk-font);cursor:pointer;margin-right:auto}
.hk-pick[aria-pressed="true"]{background:var(--hk-dark);color:#fff}
.hk-pick:focus-visible{outline:2px solid #0066cc;outline-offset:2px}
.hk-mini{display:inline-flex;align-items:center;gap:5px;min-height:36px;padding:0 12px;border:1px solid var(--hk-line);border-radius:999px;background:#fff;color:var(--hk-tx);font:600 12.5px/1 var(--hk-font);cursor:pointer}
.hk-mini.is-on{background:var(--hk-dark);border-color:var(--hk-dark);color:#fff}
.hk-heart{margin-left:auto;width:40px;height:40px;display:grid;place-items:center;padding:0;border:0;border-radius:50%;background:transparent;color:var(--hk-tx2);cursor:pointer}
.hk-heart svg{width:20px;height:20px}
.hk-heart:hover{background:var(--hk-soft)}

/* 아래 동작 */
.hk-foot{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:12px 20px 14px;border-top:1px solid var(--hk-line);background:var(--hk-bg)}
.hk-foot:empty{display:none}
.hk-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:48px;padding:0 18px;border-radius:14px;font:600 15px/1 var(--hk-font);text-decoration:none;cursor:pointer;flex:1;border:1px solid transparent}
.hk-btn-dark{background:var(--hk-dark);color:#fff}
.hk-btn-dark:disabled{background:#d1d1d6;color:#fff;cursor:default}
.hk-btn-line{background:#fff;color:var(--hk-tx);border-color:rgba(0,0,0,.14)}
.hk-empty .hk-btn{flex:0 0 auto;margin-top:4px}
.hk-link{flex:0 0 100%;min-height:36px;border:0;background:transparent;color:var(--hk-tx2);font:600 13px/1 var(--hk-font);text-decoration:underline;text-underline-offset:3px;cursor:pointer}

/* 비교 */
.hk-back{display:inline-flex;align-items:center;gap:4px;min-height:40px;margin:0 0 8px -8px;padding:0 10px;border:0;border-radius:10px;background:transparent;color:var(--hk-tx);font:600 14px/1 var(--hk-font);cursor:pointer}
.hk-cmp{display:grid;grid-template-columns:repeat(var(--hk-cols,2),minmax(150px,1fr));gap:12px;overflow-x:auto;padding-bottom:6px;scroll-snap-type:x mandatory}
.hk-col{position:relative;display:flex;flex-direction:column;gap:8px;padding:10px;border-radius:16px;background:var(--hk-soft);scroll-snap-align:start;min-width:0}
.hk-col-img{aspect-ratio:4/3;border-radius:12px;overflow:hidden;background:#e5e5ea}
.hk-col-img img{width:100%;height:100%;object-fit:cover;display:block}
.hk-best{position:absolute;top:16px;left:16px;padding:4px 8px;border-radius:7px;background:var(--hk-red);color:#fff;font:700 11.5px/1 var(--hk-font)}
.hk-col-t{font:700 15px/1.4 var(--hk-font);word-break:keep-all}
.hk-dl{margin:0;display:grid;grid-template-columns:auto;gap:2px}
.hk-dl dt{margin-top:6px;color:var(--hk-tx2);font:500 12px/1.3 var(--hk-font)}
.hk-dl dd{margin:0;font-size:13.5px;line-height:1.45;word-break:keep-all}
.hk-dl dd.is-price{font-weight:700;font-size:15px}
.hk-dl dd.is-old{color:#aeaeb2;text-decoration:line-through}
.hk-col .hk-btn{min-height:44px;flex:0 0 auto;margin-top:auto;font-size:14px}
.hk-wrap.is-compare .hk-tabs{display:none}

/* 이어 보기 */
.hk-resume{position:fixed;left:16px;bottom:calc(96px + env(safe-area-inset-bottom));z-index:870;display:flex;align-items:center;gap:10px;max-width:min(360px,calc(100vw - 96px));padding:6px 6px 6px 6px;border-radius:999px;background:rgba(255,255,255,.9);-webkit-backdrop-filter:blur(14px) saturate(1.6);backdrop-filter:blur(14px) saturate(1.6);box-shadow:0 1px 2px rgba(0,0,0,.06),0 10px 28px rgba(0,0,0,.14);color:var(--hk-tx);text-decoration:none;font-family:var(--hk-font);opacity:0;transform:translateY(12px);transition:opacity .3s,transform .3s cubic-bezier(.2,.8,.2,1)}
.hk-resume.is-in{opacity:1;transform:none}
.hk-resume img{width:36px;height:36px;border-radius:50%;object-fit:cover;flex:none}
.hk-resume-t{min-width:0;display:flex;flex-direction:column;line-height:1.25}
.hk-resume-t small{font-size:11.5px;color:var(--hk-tx2)}
.hk-resume-t b{font-size:13.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hk-resume-x{flex:none;width:36px;height:36px;display:grid;place-items:center;padding:0;border:0;border-radius:50%;background:transparent;color:var(--hk-tx2);cursor:pointer}

@media (min-width:900px){
  .hk-panel{left:auto;top:0;right:0;bottom:0;width:440px;max-height:none;border-radius:22px 0 0 22px;transform:translateX(100%)}
  .hk-grab{display:none}
  .hk-head{padding-top:18px}
  .hk-fab{right:24px}
  .hk-cmp{grid-template-columns:repeat(var(--hk-cols,2),1fr)}
  .hk-wrap.is-compare .hk-panel{width:min(820px,92vw)}
  .hk-toast{bottom:32px}
  .hk-resume{bottom:28px;left:24px}
}
@media (prefers-reduced-motion:reduce){.hk-fab,.hk-panel,.hk-dim,.hk-toast,.hk-resume{transition:none}.hk-pop svg{animation:none}}
/* 짧은 상담 요청 */
.hk-form{display:flex;flex-direction:column;gap:12px}
.hk-field{display:flex;flex-direction:column;gap:6px}
.hk-field label{font:600 13px/1.3 var(--hk-font)}
.hk-field input,.hk-field textarea{width:100%;box-sizing:border-box;min-height:46px;padding:11px 14px;border:1px solid rgba(0,0,0,.14);border-radius:12px;background:#fff;color:var(--hk-tx);font:400 15px/1.5 var(--hk-font)}
.hk-field textarea{resize:vertical;min-height:120px}
.hk-field input:focus,.hk-field textarea:focus{outline:none;border-color:#0066cc;box-shadow:0 0 0 3px rgba(0,102,204,.15)}
.hk-agree{display:flex;gap:10px;align-items:flex-start;min-height:44px;font-size:13.5px;line-height:1.5;cursor:pointer;word-break:keep-all}
.hk-agree input{flex:none;width:20px;height:20px;margin:1px 0 0;accent-color:var(--hk-dark);-webkit-appearance:auto;appearance:auto;opacity:1;position:static}
.hk-form-msg{margin:0;min-height:1.4em;font-size:13px;color:var(--hk-tx2)}
/* 목록 카드 안 하트(이벤트 목록 등) */
.hk-inline{flex:none;width:40px;height:40px;display:inline-grid;place-items:center;padding:0;border:1px solid rgba(0,0,0,.12);border-radius:50%;background:#fff;color:#1d1d1f;cursor:pointer;vertical-align:middle;transition:color .2s,border-color .2s}
.hk-inline.is-kept{color:#ff3b30;border-color:rgba(255,59,48,.35)}
.hk-inline:focus-visible{outline:2px solid #0066cc;outline-offset:2px}
.hev-insta-actions .hk-inline{background:rgba(255,255,255,.16);border-color:rgba(255,255,255,.45);color:#fff}
.hev-insta-actions .hk-inline.is-kept{color:#ff6b6b}
/* 카드 오른쪽 위 하트(이벤트 목록 그리드·리스트·인스타형) */
.hev-card:has(> .hk-card-heart),.hev-row:has(> .hk-card-heart){position:relative}
.hk-card-heart{position:absolute;top:10px;right:10px;z-index:4;width:38px;height:38px;border:0;background:rgba(255,255,255,.9);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 1px 2px rgba(0,0,0,.08),0 4px 12px rgba(0,0,0,.12)}
.hk-card-heart svg{width:19px;height:19px}
.hev-row > .hk-card-heart{top:12px;right:12px;background:var(--hk-soft);box-shadow:none}
.hev-row:has(> .hk-card-heart) .hev-row-body{padding-right:44px}
.hev-insta-card > .hk-card-heart{background:rgba(255,255,255,.88);border:0;color:#1d1d1f}
.hev-insta-card > .hk-card-heart.is-kept{color:#ff3b30}
/* 시술(care) 목록: 사진 왼쪽 위(오른쪽 위는 담기 토글), 사진 없는 줄은 버튼 줄 */
.hev-row:has(> .hk-on-photo){position:relative}
.hk-care-heart.hk-on-photo{position:absolute;top:10px;left:10px;z-index:4;width:32px;height:32px;border:0;background:rgba(255,255,255,.9);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 1px 2px rgba(0,0,0,.08),0 3px 10px rgba(0,0,0,.12)}
.hk-care-heart.hk-on-photo svg{width:16px;height:16px}
.hk-care-heart.hk-on-photo::after{content:'';position:absolute;inset:-6px}
.hev-wrap.hpr-view-grid .hk-care-heart.hk-on-photo{top:10px;left:10px;width:38px;height:38px}
.hev-wrap.hpr-view-grid .hk-care-heart.hk-on-photo svg{width:19px;height:19px}
.hev-row-actions .hk-care-heart{flex:0 0 40px!important;width:40px;height:40px;border-color:transparent;background:rgba(118,118,128,.12)}
/* 목록형: 사진 세로 가운데 기준으로 사진 안쪽 왼쪽 위 (PC 사진 112px, 휴대폰 64px) */
.hev-wrap:not(.hpr-view-grid) .hk-care-heart.hk-on-photo{top:calc(50% - 56px + 6px);left:24px}
@media (max-width:900px){.hev-wrap:not(.hpr-view-grid) .hk-care-heart.hk-on-photo{top:calc(50% - 32px + 4px);left:18px;width:28px;height:28px}.hev-wrap:not(.hpr-view-grid) .hk-care-heart.hk-on-photo svg{width:15px;height:15px}}
.hk-mini.hk-mini-book{background:var(--hk-dark);border-color:var(--hk-dark);color:#fff;text-decoration:none}.hk-mini.hk-mini-book:hover{opacity:.88}
.hk-col .hk-col-book{margin-top:0}
.hk-main-heart{top:12px;right:12px}
