/* ===================================================================
   celimax — Cookie Consent (GDPR)  •  shared component styles
   Namespaced with .cc-  so it won't collide with page styles.
   =================================================================== */
.cc-hidden{display:none !important;}
.cc *{box-sizing:border-box;}
body.cc-open [data-cc-block]{pointer-events:none;}

/* ---------- Layer 1: bottom banner ---------- */
.cc-banner{
  --cc-side:16px;--cc-bottom:200px;--cc-radius:0px;--cc-maxw:460px;
  position:fixed;left:var(--cc-side);right:var(--cc-side);bottom:var(--cc-bottom);z-index:9000;
  max-width:var(--cc-maxw);margin:0 auto;
  background:#fff;border:1px solid #e6e6e6;border-radius:var(--cc-radius);
  box-shadow:0 12px 40px rgba(0,0,0,.24);
  padding:16px 16px 15px;font-family:inherit;
  opacity:0;transform:translateY(16px);pointer-events:none;
  transition:opacity .35s ease,transform .4s cubic-bezier(.22,1,.36,1);
}
.cc-banner.cc-show{opacity:1;transform:translateY(0);pointer-events:auto;}
.cc-banner-inner{max-width:none;margin:0;}
.cc-text{font-size:12.5px;line-height:1.6;color:#333;font-weight:400;margin:0 0 12px;}
.cc-link{color:#111;font-weight:700;text-decoration:underline;text-underline-offset:2px;cursor:pointer;}
.cc-actions{display:flex;gap:12px;justify-content:center;flex-wrap:nowrap;}
.cc-btn{
  appearance:none;border:none;cursor:pointer;font-family:inherit;
  font-size:15px;font-weight:700;padding:15px 34px;border-radius:0;
  transition:transform .15s ease,background .2s ease,opacity .2s ease;line-height:1;
}
.cc-btn:hover{transform:translateY(-1px);}
.cc-btn-primary{background:#111;color:#fff;}
.cc-btn-primary:hover{background:#000;}
.cc-btn-ghost{background:#fff;color:#111;border:1.5px solid #111;}
.cc-btn-ghost:hover{background:#f6f6f6;}
.cc-actions .cc-btn{flex:0 0 auto;min-width:180px;}

/* ---------- Layer 2/3: modal overlay ---------- */
.cc-overlay{
  position:fixed;inset:0;z-index:9100;
  background:rgba(0,0,0,.5);
  display:flex;align-items:center;justify-content:center;padding:20px;
  opacity:0;pointer-events:none;transition:opacity .3s ease;
  font-family:"Pretendard",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
}
.cc-overlay.cc-show{opacity:1;pointer-events:auto;}
.cc-modal{
  background:#fff;border-radius:16px;width:100%;max-width:460px;
  max-height:86vh;display:flex;flex-direction:column;overflow:hidden;
  box-shadow:0 30px 80px rgba(0,0,0,.35);
}
.cc-modal-head{display:flex;align-items:center;gap:10px;padding:22px 24px 6px;flex:0 0 auto;}
.cc-back{
  appearance:none;border:none;background:none;cursor:pointer;
  width:30px;height:30px;display:flex;align-items:center;justify-content:center;
  border-radius:8px;color:#111;font-size:20px;line-height:1;margin-left:-6px;
}
.cc-back:hover{background:#f2f2f2;}
.cc-title{font-size:22px;font-weight:800;color:#111;letter-spacing:-.02em;margin:0;}
.cc-body{padding:8px 24px 4px;overflow-y:auto;flex:1 1 auto;-webkit-overflow-scrolling:touch;}

.cc-intro{background:#f5f5f4;border-radius:10px;padding:16px 18px;margin:10px 0 6px;}
.cc-intro-t{font-size:14px;font-weight:700;color:#111;margin:0 0 6px;}
.cc-intro-b{font-size:13px;color:#555;line-height:1.6;margin:0;}

.cc-divider{height:1px;background:#e6e6e6;margin:2px 0;border:0;}
.cc-cat{padding:20px 0;}
.cc-cat-head{display:flex;align-items:center;gap:12px;}
.cc-cat-label{font-size:15px;font-weight:700;color:#111;}
.cc-req{color:#d92d20;font-weight:800;margin-left:3px;}
.cc-cat-desc{font-size:13px;line-height:1.65;color:#5a6b63;margin:14px 0 0;}
.cc-check{
  appearance:none;-webkit-appearance:none;flex:0 0 auto;margin:0;
  width:22px;height:22px;border:2px solid #111;border-radius:6px;background:#fff;
  cursor:pointer;position:relative;transition:background .15s ease;
}
.cc-check:checked{background:#111;}
.cc-check:checked::after{
  content:"";position:absolute;left:6px;top:2px;width:6px;height:11px;
  border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg);
}

.cc-modal-foot{flex:0 0 auto;padding:16px 24px calc(20px + env(safe-area-inset-bottom));border-top:1px solid #eee;}
.cc-foot-btns{display:flex;gap:12px;}
.cc-foot-btns .cc-btn{flex:1;padding:15px 12px;text-align:center;}
.cc-error{color:#d92d20;font-size:12.5px;font-weight:600;margin:12px 2px 0;text-align:center;}

/* ---------- Layer 3: privacy policy modal ---------- */
.cc-privacy .cc-modal{max-width:640px;}
.cc-privacy-body{padding:6px 26px 24px;overflow-y:auto;flex:1 1 auto;-webkit-overflow-scrolling:touch;}
.cc-privacy-body h4{font-size:15px;font-weight:800;color:#111;margin:22px 0 8px;letter-spacing:-.01em;}
.cc-privacy-body p{font-size:13px;line-height:1.7;color:#444;margin:0 0 10px;}
.cc-privacy-body .cc-sub{font-weight:800;color:#111;font-size:13.5px;margin:16px 0 6px;}
.cc-privacy-body ul{margin:6px 0 12px;padding-left:20px;}
.cc-privacy-body li{font-size:13px;line-height:1.65;color:#444;margin:3px 0;}
.cc-table{width:100%;border-collapse:collapse;margin:6px 0 14px;font-size:12.5px;}
.cc-table th,.cc-table td{border:1px solid #e2e2e2;padding:8px 10px;text-align:left;vertical-align:top;color:#333;}
.cc-table th{background:#f3f2ef;font-weight:700;color:#111;}

@media (max-width:560px){
  .cc-banner{padding:15px;--cc-bottom:180px;}
  .cc-actions{gap:10px;}
  .cc-actions .cc-btn{flex:1 1 0;min-width:0;padding:14px 8px;font-size:14px;}
  .cc-modal{max-height:90vh;border-radius:14px;}
  .cc-title{font-size:20px;}
}
