/* ============================================
   OASIS · Cookies banner + preferences modal
   ============================================ */

.cookies-banner{
  position:fixed;left:0;right:0;bottom:0;z-index:9000;
  padding:18px clamp(16px,4vw,40px);
  background:var(--ink,#0A1424);color:var(--paper,#F4F0E8);
  box-shadow:0 -12px 40px rgba(10,20,36,.18);
  border-top:1px solid rgba(232,226,212,.08);
  display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;
  transform:translateY(120%);transition:transform .55s cubic-bezier(.22,.8,.28,1);
  font-family:'Inter',sans-serif;
}
.cookies-banner.is-open{transform:translateY(0)}

.cookies-banner-text{
  flex:1 1 460px;max-width:780px;
  font-size:14px;line-height:1.55;color:rgba(232,226,212,.82);
}
.cookies-banner-text strong{color:var(--paper,#F4F0E8);font-weight:600}
.cookies-banner-text a{color:var(--aqua,#00C2B0);text-decoration:underline;text-underline-offset:3px}
.cookies-banner-text a:hover{color:var(--aqua-pale,#BFEFEA)}

.cookies-banner-actions{
  display:flex;align-items:center;gap:10px;flex-shrink:0;
}

.cookies-btn{
  font-family:'Inter',sans-serif;font-size:14px;font-weight:600;letter-spacing:-.005em;
  padding:13px 22px;border-radius:999px;border:1px solid transparent;
  cursor:pointer;transition:transform .25s, background .25s, color .25s, border-color .25s;
  white-space:nowrap;
}
.cookies-btn-primary{
  background:var(--paper,#F4F0E8);color:var(--ink,#0A1424);
}
.cookies-btn-primary:hover{transform:translateY(-1px);background:#fff}
.cookies-btn-ghost{
  background:transparent;color:var(--paper,#F4F0E8);
  border-color:rgba(232,226,212,.28);
}
.cookies-btn-ghost:hover{border-color:rgba(232,226,212,.55);background:rgba(232,226,212,.06)}

/* Modal */
.cookies-modal{
  position:fixed;inset:0;z-index:9100;
  background:rgba(10,20,36,.6);backdrop-filter:blur(8px) saturate(140%);
  -webkit-backdrop-filter:blur(8px) saturate(140%);
  display:flex;align-items:center;justify-content:center;padding:20px;
  opacity:0;visibility:hidden;pointer-events:none;
  transition:opacity .35s ease, visibility .35s;
}
.cookies-modal.is-open{opacity:1;visibility:visible;pointer-events:auto}

.cookies-modal-panel{
  background:var(--paper,#F4F0E8);color:var(--ink,#0A1424);
  width:100%;max-width:540px;
  border-radius:24px;padding:36px 32px 28px;
  box-shadow:0 30px 80px rgba(10,20,36,.35);
  transform:translateY(20px) scale(.97);
  transition:transform .45s cubic-bezier(.22,.8,.28,1);
  font-family:'Inter',sans-serif;
  max-height:calc(100vh - 40px);overflow-y:auto;
}
.cookies-modal.is-open .cookies-modal-panel{transform:translateY(0) scale(1)}

.cookies-modal-eyebrow{
  font-family:'JetBrains Mono',monospace;font-size:10px;font-weight:600;
  letter-spacing:.2em;text-transform:uppercase;
  color:var(--aqua-deep,#008A7E);margin-bottom:12px;
  display:inline-flex;align-items:center;gap:8px;
}
.cookies-modal-eyebrow::before{content:"";width:24px;height:1px;background:var(--aqua-deep,#008A7E)}

.cookies-modal-title{
  font-family:'Fraunces',serif;font-weight:400;font-size:30px;line-height:1.05;
  letter-spacing:-.02em;margin-bottom:8px;
}
.cookies-modal-lead{
  font-size:14px;color:var(--ink-soft,#3D4A66);line-height:1.55;margin-bottom:22px;
}

.cookies-category{
  border:1px solid rgba(10,20,36,.1);border-radius:14px;
  padding:14px 16px;margin-bottom:10px;
  display:flex;align-items:flex-start;gap:14px;
  transition:border-color .25s, background .25s;
}
.cookies-category:hover{border-color:rgba(10,20,36,.18)}

.cookies-category-info{flex:1;min-width:0}
.cookies-category-name{
  font-size:14px;font-weight:600;color:var(--ink,#0A1424);margin-bottom:3px;
  display:flex;align-items:center;gap:8px;flex-wrap:wrap;
}
.cookies-category-badge{
  font-family:'JetBrains Mono',monospace;font-size:9px;font-weight:600;
  letter-spacing:.18em;text-transform:uppercase;
  padding:3px 7px;border-radius:6px;
  background:rgba(0,138,126,.12);color:var(--aqua-deep,#008A7E);
}
.cookies-category-desc{
  font-size:12.5px;color:var(--ink-soft,#3D4A66);line-height:1.5;
}

/* Toggle */
.cookies-toggle{
  position:relative;display:inline-block;width:40px;height:22px;flex-shrink:0;
}
.cookies-toggle input{opacity:0;width:0;height:0}
.cookies-toggle-slider{
  position:absolute;inset:0;cursor:pointer;
  background:rgba(10,20,36,.18);border-radius:999px;
  transition:background .25s;
}
.cookies-toggle-slider::before{
  content:"";position:absolute;top:3px;left:3px;width:16px;height:16px;
  background:#fff;border-radius:50%;
  transition:transform .25s;
  box-shadow:0 1px 3px rgba(10,20,36,.2);
}
.cookies-toggle input:checked + .cookies-toggle-slider{background:var(--aqua,#00C2B0)}
.cookies-toggle input:checked + .cookies-toggle-slider::before{transform:translateX(18px)}
.cookies-toggle input:disabled + .cookies-toggle-slider{cursor:not-allowed;background:rgba(0,138,126,.55)}

.cookies-modal-foot{
  display:flex;justify-content:flex-end;gap:10px;margin-top:18px;flex-wrap:wrap;
}
.cookies-modal-foot .cookies-btn-primary{
  background:var(--ink,#0A1424);color:var(--paper,#F4F0E8);
}
.cookies-modal-foot .cookies-btn-primary:hover{background:#15213A}

@media (max-width:680px){
  .cookies-banner{flex-direction:column;align-items:stretch;gap:14px;padding:18px 18px 16px}
  .cookies-banner-actions{justify-content:stretch}
  .cookies-banner-actions .cookies-btn{flex:1}
  .cookies-modal-panel{padding:28px 22px 22px;border-radius:20px}
  .cookies-modal-title{font-size:24px}
}
