/* =====================================================================
   Prapl — cookie consent banner
   Loaded from include/header.php on every page. The banner starts hidden
   and consent.js decides whether to show it, so there is no flash for
   visitors who have already chosen.

   Accept and Reject are deliberately the same size, weight and shape:
   under GDPR refusing has to be as easy as agreeing.
   ===================================================================== */

.cc{position:fixed;left:16px;right:16px;bottom:16px;z-index:9000;
    background:var(--card,#fff);border:1px solid var(--line-2,#d5deef);
    border-radius:var(--r-lg,22px);box-shadow:var(--sh-lg,0 40px 90px -40px rgba(24,45,110,.35));
    font-family:var(--font,system-ui,sans-serif);color:var(--tx,#000);
    max-width:1180px;margin-inline:auto;
    animation:ccUp .32s cubic-bezier(.2,.7,.2,1) both;}
@keyframes ccUp{from{opacity:0;transform:translateY(14px);}to{opacity:1;transform:none;}}

/* Close button. Only rendered once a choice exists - see consent.js. */
.cc-close{position:absolute;top:10px;right:12px;width:32px;height:32px;
          display:grid;place-items:center;border:0;border-radius:50%;
          background:transparent;color:var(--tx-mut,#000);opacity:.5;
          font-size:.9rem;cursor:pointer;transition:opacity .18s,background .18s;}
.cc-close:hover{opacity:1;background:var(--paper-2,#ecf1fb);}
.cc-close:focus-visible{outline:3px solid var(--blue,#2563eb);outline-offset:2px;opacity:1;}

.cc-inner{display:flex;gap:26px;align-items:flex-start;padding:22px 26px;}
/* When the close button is showing it would sit on top of the Accept button,
   so the row drops far enough to clear it. [hidden] keeps this off on a
   first visit, when there is no close button. */
.cc-close:not([hidden]) ~ .cc-inner{padding-top:38px;}
.cc-main{flex:1 1 auto;min-width:0;}

.cc-title{margin:0 0 6px;font-size:1.05rem;font-weight:800;letter-spacing:-.01em;color:var(--tx,#000);}
.cc-title i{color:var(--blue,#2563eb);margin-right:8px;}
.cc-text{margin:0;font-size:.9rem;line-height:1.6;color:var(--tx-soft,#000);max-width:74ch;}
.cc-text a{color:var(--blue,#2563eb);font-weight:600;text-decoration:underline;}

/* actions — Accept and Reject share every dimension */
.cc-actions{flex:none;display:flex;flex-direction:column;gap:10px;min-width:186px;}
.cc-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;
        width:100%;padding:.72rem 1.3rem;border-radius:100px;
        font-family:inherit;font-size:.92rem;font-weight:700;line-height:1.2;
        cursor:pointer;border:1px solid transparent;
        transition:transform .18s,box-shadow .18s,background .18s,border-color .18s;}
.cc-btn:focus-visible{outline:3px solid var(--blue,#2563eb);outline-offset:3px;}
.cc-accept{background:var(--blue,#2563eb);color:#fff;box-shadow:0 12px 30px -10px rgba(59,111,224,.65);}
.cc-accept:hover{transform:translateY(-2px);box-shadow:0 18px 40px -12px rgba(59,111,224,.75);}
.cc-reject{background:#fff;color:var(--tx,#000);border-color:var(--line-2,#d5deef);box-shadow:var(--sh-sm,0 2px 10px rgba(15,23,42,.05));}
.cc-reject:hover{transform:translateY(-2px);background:var(--paper-2,#ecf1fb);}
.cc-link{background:none;border:0;padding:4px 2px;font-family:inherit;font-size:.86rem;font-weight:700;
         color:var(--blue,#2563eb);cursor:pointer;text-decoration:underline;align-self:center;}
.cc-link:hover{color:var(--blue-2,#1d4ed8);}
.cc-link:focus-visible{outline:3px solid var(--blue,#2563eb);outline-offset:3px;border-radius:6px;}

/* the Customise panel */
.cc-opts{margin-top:18px;padding-top:18px;border-top:1px solid var(--line,#e2e8f6);
         display:flex;flex-direction:column;gap:12px;}
.cc-opt{display:flex;gap:13px;align-items:flex-start;background:var(--paper,#f4f7fd);
        border:1px solid var(--line,#e2e8f6);border-radius:var(--r-sm,12px);padding:13px 15px;}
.cc-opt-body{flex:1 1 auto;min-width:0;}
.cc-opt h3{margin:0 0 3px;font-size:.9rem;font-weight:700;color:var(--tx,#000);}
.cc-opt p{margin:0;font-size:.82rem;line-height:1.55;color:var(--tx-soft,#000);}
.cc-opt-ctl{flex:none;padding-top:2px;}
.cc-opt-ctl input{width:19px;height:19px;accent-color:var(--blue,#2563eb);cursor:pointer;}
.cc-opt-ctl input:disabled{cursor:not-allowed;opacity:.55;}
.cc-locked{font-size:.7rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase;
           color:var(--tx-mut,#000);opacity:.6;white-space:nowrap;}

@media (max-width:860px){
  .cc{left:10px;right:10px;bottom:10px;max-height:86vh;overflow-y:auto;}
  .cc-inner{flex-direction:column;gap:18px;padding:20px 18px;}
  .cc-actions{width:100%;min-width:0;}
  .cc-text{font-size:.87rem;}
}
@media (prefers-reduced-motion:reduce){
  .cc{animation:none;}
  .cc-btn:hover{transform:none;}
}
