/* Self-contained cookie-consent UI (CookieYes-compatible markup/classes).
   Provides layout, animations and the show/hide logic the JS toggles.
   Per-element colors come from inline styles on the markup, matching the
   original CookieYes banner theme. */

.cky-overlay{
  position:fixed; inset:0; width:100%; height:100%;
  background:rgba(0,0,0,.6); z-index:2147483645;
  opacity:0; visibility:hidden; transition:opacity .3s ease, visibility .3s ease;
}
.cky-overlay.cky-show{ opacity:1; visibility:visible; }

/* ---------- Bottom banner ---------- */
.cky-consent-container{
  position:fixed; left:0; right:0; bottom:0; z-index:2147483646;
  max-width:680px; margin:16px; box-sizing:border-box;
  transition:transform .4s cubic-bezier(.22,.61,.36,1), opacity .35s ease;
}
.cky-consent-container.cky-banner-bottom{ left:auto; }
.cky-consent-container.cky-hide{
  transform:translateY(140%); opacity:0; pointer-events:none; visibility:hidden;
}
.cky-consent-bar{
  border:1px solid #fff; border-radius:8px; padding:22px 24px;
  box-shadow:0 8px 30px rgba(0,0,0,.25); font-family:inherit;
}
.cky-title{ font-size:18px; font-weight:700; margin:0 0 8px; }
.cky-notice-des{ font-size:14px; line-height:1.5; }
.cky-notice-des p{ margin:0 0 12px; }
.cky-notice-btn-wrapper{ display:flex; flex-wrap:wrap; gap:10px; margin-top:6px; }

/* ---------- Buttons ---------- */
.cky-btn{
  appearance:none; cursor:pointer; font:inherit; font-size:14px; font-weight:600;
  padding:10px 18px; border:1px solid #000; border-radius:4px; background:transparent;
  transition:filter .2s ease, opacity .2s ease; line-height:1;
}
.cky-btn:hover{ filter:brightness(.85); opacity:.92; }
.cky-btn-accept{ background:#000; color:#fff; }

/* ---------- Preference modal ---------- */
.cky-modal{
  position:fixed; inset:0; z-index:2147483647;
  display:flex; align-items:center; justify-content:center; padding:20px;
  opacity:0; visibility:hidden; transition:opacity .3s ease, visibility .3s ease;
}
.cky-modal.cky-modal-open{ opacity:1; visibility:visible; }
.cky-preference-center{
  width:100%; max-width:845px; max-height:85vh; display:flex; flex-direction:column;
  border:1px solid #fff; border-radius:6px; overflow:hidden;
  box-shadow:0 20px 60px rgba(0,0,0,.4);
  transform:translateY(16px) scale(.98); transition:transform .3s cubic-bezier(.22,.61,.36,1);
}
.cky-modal.cky-modal-open .cky-preference-center{ transform:none; }
.cky-preference-header{
  display:flex; align-items:center; justify-content:space-between;
  padding:20px 24px; border-bottom:1px solid rgba(0,0,0,.08);
}
.cky-preference-title{ font-size:18px; font-weight:700; }
.cky-btn-close{ background:none; border:0; cursor:pointer; padding:4px; line-height:0; }
.cky-btn-close img{ width:18px; height:18px; }
.cky-preference-body-wrapper{ padding:20px 24px; overflow-y:auto; flex:1; }
.cky-preference-content-wrapper{ font-size:14px; line-height:1.5; }
.cky-preference-content-wrapper p{ margin:0 0 10px; }
.cky-show-desc-btn{ background:none; border:0; padding:0; color:inherit; text-decoration:underline; cursor:pointer; font:inherit; }
.cky-horizontal-separator{ height:1px; background:rgba(0,0,0,.1); margin:16px 0; }

/* ---------- Accordions ---------- */
.cky-accordion{ border-bottom:1px solid rgba(0,0,0,.08); }
.cky-accordion-item{ display:flex; align-items:flex-start; gap:10px; padding:16px 0; }
.cky-accordion-chevron{ cursor:pointer; padding-top:2px; }
.cky-chevron-right{ display:inline-block; border:solid currentColor; border-width:0 2px 2px 0; padding:3px; transform:rotate(-45deg); transition:transform .25s ease; }
.cky-accordion.cky-accordion-active .cky-chevron-right{ transform:rotate(45deg); }
.cky-accordion-header-wrapper{ flex:1; }
.cky-accordion-header{ display:flex; align-items:center; gap:12px; }
.cky-accordion-btn{ background:none; border:0; cursor:pointer; font:inherit; font-size:15px; font-weight:700; padding:0; color:inherit; }
.cky-always-active{ color:#1863dc; font-size:13px; font-weight:600; }
.cky-accordion-header-des{ font-size:13px; line-height:1.5; margin-top:8px; opacity:.85; }
.cky-accordion-body{ overflow:hidden; max-height:0; transition:max-height .3s ease; }
.cky-accordion.cky-accordion-active .cky-accordion-body{ max-height:400px; }
.cky-audit-table{ border:1px solid #474444; border-radius:4px; padding:12px; margin-top:10px; font-size:13px; }
.cky-empty-cookies-text{ margin:0; }

/* category on/off switch */
.cky-switch{ position:relative; display:inline-flex; align-items:center; }
.cky-switch input{ position:absolute; opacity:0; width:0; height:0; }
.cky-switch label{ position:relative; display:inline-block; width:42px; height:22px; border-radius:22px; background:#bcbcbc; cursor:pointer; transition:background .2s ease; }
.cky-switch label::after{ content:""; position:absolute; top:2px; left:2px; width:18px; height:18px; border-radius:50%; background:#fff; transition:transform .2s ease; }
.cky-switch input:checked + label{ background:#1863dc; }
.cky-switch input:checked + label::after{ transform:translateX(20px); }

/* ---------- Footer ---------- */
.cky-footer-wrapper{ position:relative; border-top:1px solid rgba(0,0,0,.08); }
.cky-footer-shadow{ position:absolute; top:-40px; left:0; right:0; height:40px; pointer-events:none; }
.cky-prefrence-btn-wrapper{ display:flex; flex-wrap:wrap; gap:10px; justify-content:flex-end; padding:16px 24px; }

a.cookie-preferences-trigger{ cursor:pointer; }

@media (max-width:600px){
  .cky-consent-container{ margin:10px; max-width:none; }
  .cky-notice-btn-wrapper, .cky-prefrence-btn-wrapper{ flex-direction:column; }
  .cky-btn{ width:100%; }
}
