/* Cookie consent: Abou Philippe's own design tokens (paper ground, navy ink, serif titles,
   pill buttons, the gold-to-cyan stripe the review card uses). Every rule is scoped to .apc
   and sets its own ground, ink and box model, because some pages carry bare element rules
   (the review page styles every button, label and input) that would otherwise leak in. */
.apc{position:fixed;z-index:1000;left:50%;bottom:20px;transform:translateX(-50%);width:calc(100% - 40px);max-width:880px;
  box-sizing:border-box;margin:0;padding:22px 24px 20px;background:var(--paper,#fbf8f3);color:var(--ink,#16242f);
  border-radius:20px;border:1px solid var(--line,rgba(10,37,64,.12));box-shadow:0 24px 60px rgba(6,36,63,.28);
  font-family:var(--sans,'Acumin Pro',system-ui,sans-serif);font-size:15px;line-height:1.55;text-align:left;overflow:hidden;
  -webkit-font-smoothing:antialiased;animation:apc-in .35s cubic-bezier(.2,.7,.2,1) both}
.apc::before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,var(--gold,#c9a24b),var(--cyan,#00cfd1))}
.apc *,.apc *::before,.apc *::after{box-sizing:border-box}
@keyframes apc-in{from{opacity:0;transform:translate(-50%,14px)}to{opacity:1;transform:translate(-50%,0)}}
@keyframes apc-up{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.apc{animation:none}}

.apc p{margin:0;padding:0}
.apc .apc-title{font-family:var(--serif,'Averia Serif Libre',Georgia,serif);font-weight:600;font-size:1.12rem;line-height:1.25;color:var(--navy,#0a2540);margin:0 0 4px}
.apc .apc-text{font-size:.9rem;line-height:1.6;color:var(--muted,#5b6b78)}
.apc a{color:var(--blue,#0369a1);font-weight:600;text-decoration:underline;text-underline-offset:2px}

/* Banner: text left, actions right on a wide screen. */
.apc--banner{display:flex;align-items:center;gap:24px}
.apc--banner .apc-body{flex:1 1 auto;min-width:0}
.apc-actions{display:flex;align-items:center;gap:14px;flex:0 0 auto}
.apc-pair{display:flex;gap:10px}

/* Reject all and Accept all: ONE style, deliberately. */
.apc .apc-btn{display:inline-flex;align-items:center;justify-content:center;width:auto;min-height:44px;margin:0;padding:.7rem 1.35rem;
  border:1px solid var(--navy,#0a2540);border-radius:999px;background:var(--navy,#0a2540);color:#fff;
  font-family:inherit;font-size:.9rem;font-weight:600;line-height:1.2;letter-spacing:0;text-transform:none;white-space:nowrap;cursor:pointer;
  transition:background .2s,border-color .2s}

.apc .apc-link{display:inline-block;width:auto;margin:0;padding:.35rem .2rem;border:0;border-radius:6px;background:none;
  color:var(--blue,#0369a1);font-family:inherit;font-size:.88rem;font-weight:600;line-height:1.2;text-decoration:underline;
  text-underline-offset:3px;white-space:nowrap;cursor:pointer}

.apc .apc-save{display:inline-flex;align-items:center;justify-content:center;width:auto;min-height:44px;margin:0;padding:.7rem 1.5rem;border:0;
  border-radius:999px;background:linear-gradient(135deg,var(--cyan,#00cfd1),var(--blue,#0369a1));color:#fff;
  font-family:inherit;font-size:.9rem;font-weight:600;line-height:1.2;white-space:nowrap;cursor:pointer;
  box-shadow:0 6px 18px rgba(6,182,212,.22);transition:background .25s,color .25s}

/* Hover only where a pointer can hover: on a phone a tap leaves :hover stuck on whatever
   button appears under the finger next (the Save button turned gold after "Manage preferences"). */
@media (hover:hover){
  .apc a:hover{color:var(--navy,#0a2540)}
  .apc .apc-btn:hover{background:var(--deep,#06243f);border-color:var(--deep,#06243f);color:#fff}
  .apc .apc-link:hover{background:none;color:var(--navy,#0a2540)}
  .apc .apc-save:hover{background:linear-gradient(135deg,var(--gold,#c9a24b),var(--gold-soft,#e7c884));color:#3a2c08}
}
.apc button:focus-visible,.apc a:focus-visible,.apc input:focus-visible+.apc-track{outline:2px solid var(--gold,#c9a24b);outline-offset:2px}
.apc .apc-h:focus{outline:none}

/* Manage preferences */
.apc--manage{max-width:600px;max-height:calc(100vh - 40px);overflow-y:auto}
.apc .apc-h{font-family:var(--serif,'Averia Serif Libre',Georgia,serif);font-weight:600;font-size:1.45rem;line-height:1.2;color:var(--navy,#0a2540);margin:0 0 6px}
.apc .apc-list{list-style:none;margin:16px 0 18px;padding:0;display:grid;gap:10px}
.apc .apc-row{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0;padding:13px 16px;
  background:var(--white,#fff);border:1px solid var(--line,rgba(10,37,64,.12));border-radius:14px}
.apc .apc-row-text{display:grid;gap:2px;margin:0;font-size:.85rem;font-weight:400;line-height:1.5;color:var(--muted,#5b6b78);
  text-transform:none;letter-spacing:0;cursor:pointer}
.apc .apc-row-text strong{font-size:.95rem;font-weight:600;color:var(--navy,#0a2540)}

.apc .apc-switch{position:relative;flex:0 0 auto;width:46px;height:26px}
.apc .apc-switch input{position:absolute;inset:0;z-index:1;width:100%;height:100%;margin:0;padding:0;border:0;opacity:0;cursor:pointer}
.apc .apc-switch input:disabled{cursor:not-allowed}
.apc .apc-track{position:absolute;inset:0;border-radius:999px;background:#d8d2c4;transition:background .2s}
.apc .apc-track::after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;
  box-shadow:0 1px 3px rgba(6,36,63,.3);transition:transform .2s}
.apc .apc-switch input:checked+.apc-track{background:linear-gradient(135deg,var(--cyan,#00cfd1),var(--blue,#0369a1))}
.apc .apc-switch input:checked+.apc-track::after{transform:translateX(20px)}
.apc .apc-switch input:disabled+.apc-track{opacity:.55}
.apc .apc-switch input:disabled:checked+.apc-track{background:var(--navy,#0a2540)}

.apc-actions--manage{justify-content:space-between;flex-wrap:wrap}

/* Footer "Cookie preferences": a button that looks exactly like its sibling links. */
.apc-footer-link,.apc-footer-link:hover,.apc-footer-link:focus{display:inline;width:auto;margin:0;padding:0;border:0;border-radius:0;background:none;
  color:inherit;font:inherit;letter-spacing:inherit;text-transform:inherit;text-decoration:none;box-shadow:none;cursor:pointer}
.apc-footer-link:focus-visible{outline:2px solid var(--gold,#c9a24b);outline-offset:2px}

/* Phone: a full-width sheet on the bottom edge, the two choices side by side. */
@media (max-width:680px){
  .apc{left:0;right:0;bottom:0;transform:none;width:100%;max-width:none;border-radius:20px 20px 0 0;border-width:1px 0 0;
    padding:20px 16px calc(14px + env(safe-area-inset-bottom,0px));animation-name:apc-up}
  .apc--banner{flex-direction:column;align-items:stretch;gap:14px}
  .apc-actions{flex-direction:column-reverse;align-items:stretch;gap:6px}
  .apc-pair{width:100%}
  .apc .apc-pair .apc-btn{flex:1 1 0;padding-left:.6rem;padding-right:.6rem}
  .apc .apc-link{align-self:center}
  .apc--manage{max-height:88vh}
  .apc .apc-h{font-size:1.3rem}
  .apc-actions--manage{flex-direction:column;align-items:stretch;gap:10px}
  .apc .apc-save{width:100%}
}
