/* PIÑA showroom: cookie-consent base (buttons, dialog, switches, --cc-* tokens). Each page sets the tokens. */
:root{
  --cc-ink:#1b1b1f;--cc-body:#45454d;--cc-white:#ffffff;--cc-paper:#f5f4f1;
  --cc-line:#e8e6e1;--cc-ghost:#dedbd4;--cc-dot:#c4c0b8;--cc-red:#b3261e;--cc-ink-rgb:27,27,31;
  --cc-font:"Helvetica Neue",Arial,sans-serif;
  --cc-display:"Helvetica Neue",Arial,sans-serif;
  --cc-r:24px;--cc-ease:cubic-bezier(.2,.7,.2,1);
  --cc-shadow:0 1px 0 rgba(var(--cc-ink-rgb),.04),0 2px 6px rgba(var(--cc-ink-rgb),.04),0 24px 64px -12px rgba(var(--cc-ink-rgb),.22);
}

.cc,.cc *,.cc *::before,.cc *::after,.ccd,.ccd *,.ccd *::before,.ccd *::after{box-sizing:border-box}
.cc,.ccd{font-family:var(--cc-font);color:var(--cc-body);font-size:1rem;line-height:1.5;-webkit-font-smoothing:antialiased;text-align:left}
.cc [hidden],.ccd [hidden]{display:none!important}

/* ---------- shared parts ---------- */
.cc__eyebrow{display:flex;align-items:center;gap:10px;margin:0;font-size:.8125rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--cc-body)}
.cc__eyebrow::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--cc-red);flex:none}
.cc__title{font-family:var(--cc-display);font-weight:300;letter-spacing:-.02em;color:var(--cc-ink);margin:0;text-wrap:balance}
.cc__text{margin:0;color:var(--cc-body);text-wrap:pretty}
.cc__text a,.ccd a{color:var(--cc-ink);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}
.cc__text a:hover,.ccd a:hover{color:var(--cc-red)}

/* the two (or three) choice buttons are one style: equal weight, no nudging */
.cc__btn{appearance:none;-webkit-appearance:none;margin:0;font:inherit;font-weight:600;font-size:1rem;line-height:1.2;
  display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:12px 24px;border-radius:999px;
  border:1.5px solid var(--cc-ink);background:var(--cc-white);color:var(--cc-ink);cursor:pointer;text-align:center;
  transition:background-color .2s var(--cc-ease),color .2s var(--cc-ease)}
.cc__btn:hover{background:var(--cc-ink);color:var(--cc-white)}
.cc__link{appearance:none;-webkit-appearance:none;margin:0;font:inherit;font-weight:600;font-size:1rem;color:var(--cc-ink);background:none;border:0;padding:0 2px;
  min-height:44px;display:inline-flex;align-items:center;gap:8px;cursor:pointer;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px}
.cc__link:hover{color:var(--cc-red)}
.cc__link svg{width:16px;height:16px;flex:none}
.cc button:focus-visible,.cc a:focus-visible,.ccd button:focus-visible,.ccd a:focus-visible,.ccd input:focus-visible+.cc-sw__track,.ccd summary:focus-visible{
  outline:3px solid var(--cc-ink);outline-offset:3px;border-radius:999px}
.ccd summary:focus-visible{border-radius:8px}


/* ---------- layer 1 · card (desktop) ---------- */
.cc{position:fixed;z-index:1000;pointer-events:none}
.cc__panel{pointer-events:auto;background:var(--cc-white);border:1px solid rgba(var(--cc-ink-rgb),.08);box-shadow:var(--cc-shadow)}
.cc--card{right:32px;bottom:32px;width:min(31rem,calc(100vw - 64px))}
.cc--card.cc--left{right:auto;left:32px}   /* data-position="left": for pages whose hero copy sits bottom-right */
.cc--card .cc__panel{border-radius:var(--cc-r);max-height:calc(100vh - 64px);overflow:auto;overscroll-behavior:contain}
.cc--card .cc__head{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;padding:28px 32px 0}
.cc--card .cc__title{font-size:1.75rem;line-height:1.12;margin-top:14px}
.cc--card .cc__body{padding:12px 32px 0}
.cc--card .cc__text{font-size:1.0625rem;max-width:40ch}
.cc--card .cc__choices{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:24px 32px 0}
.cc--card .cc__foot{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:24px;padding:8px 32px 10px;background:var(--cc-paper);border-top:1px solid var(--cc-line)}
.cc--card .cc__policy{font-size:.9375rem;color:var(--cc-body);min-height:44px;display:inline-flex;align-items:center}

/* ---------- layer 1 · sheet (phone) ---------- */
.cc--sheet{left:0;right:0;bottom:0}
.cc--sheet .cc__panel{border-radius:var(--cc-r) var(--cc-r) 0 0;border-bottom:0;max-height:88vh;max-height:88dvh;overflow:auto;overscroll-behavior:contain;
  padding:10px 20px calc(16px + env(safe-area-inset-bottom))}
.cc__grip{display:block;width:40px;height:4px;border-radius:2px;background:var(--cc-ghost);margin:0 auto 18px}
.cc--sheet .cc__head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
.cc--sheet .cc__title{font-size:1.625rem;line-height:1.12;margin-top:12px}
.cc--sheet .cc__body{padding-top:10px}
.cc--sheet .cc__text{font-size:1.0625rem}
.cc--sheet .cc__choices{display:grid;grid-template-columns:1fr;gap:10px;padding-top:20px}
.cc--sheet .cc__btn{width:100%;min-height:54px;transition:none}
.cc--sheet .cc__btn:hover{background:var(--cc-white);color:var(--cc-ink)}
.cc--sheet .cc__btn:active{background:var(--cc-ink);color:var(--cc-white)}
.cc--sheet .cc__link:hover{color:var(--cc-ink)}
.cc--sheet .cc__link:active{color:var(--cc-red)}
.cc--sheet .cc__foot{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:12px;padding-top:4px;border-top:1px solid var(--cc-line)}
.cc--sheet .cc__policy{font-size:.9375rem;min-height:44px;display:inline-flex;align-items:center}

/* confirmation (replaces the panel content for a moment) */
.cc__done{display:flex;align-items:center;gap:14px;padding:20px 28px;font-size:1.0625rem;color:var(--cc-ink)}
.cc--sheet .cc__done{padding:8px 0 4px}
.cc__tick{width:32px;height:32px;flex:none;border-radius:50%;border:1.5px solid var(--cc-ink);display:grid;place-items:center}
.cc__tick svg{width:14px;height:14px}

/* ---------- layer 2 · settings dialog ---------- */
.ccd{padding:0;border:0;background:var(--cc-white);color:var(--cc-body);box-shadow:var(--cc-shadow);overflow:hidden}
.ccd[open]{display:flex;flex-direction:column}
.ccd::backdrop{background:rgba(var(--cc-ink-rgb),.38);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}
.ccd--card{width:min(46rem,calc(100vw - 64px));max-width:none;max-height:calc(100vh - 64px);border-radius:var(--cc-r)}
.ccd--sheet{width:100%;max-width:100%;height:auto;max-height:94vh;max-height:94dvh;margin:auto 0 0;border-radius:var(--cc-r) var(--cc-r) 0 0}

.ccd__head{flex:none;display:flex;align-items:flex-start;justify-content:space-between;gap:24px;padding:28px 32px 20px;border-bottom:1px solid var(--cc-line);background:var(--cc-paper)}
.ccd--sheet .ccd__head{position:relative;padding:28px 20px 16px}
.ccd--sheet .cc__grip{position:absolute;top:10px;left:50%;margin:0 0 0 -20px}
.ccd__title{font-size:1.875rem;line-height:1.12;margin-top:12px}
.ccd--sheet .ccd__title{font-size:1.5rem}
.ccd__x{appearance:none;-webkit-appearance:none;flex:none;width:48px;height:48px;border-radius:50%;border:1px solid rgba(var(--cc-ink-rgb),.18);background:var(--cc-white);color:var(--cc-ink);
  display:grid;place-items:center;cursor:pointer;transition:background-color .2s var(--cc-ease)}
.ccd__x:hover{background:var(--cc-line)}
.ccd--sheet .ccd__x:hover{background:var(--cc-white)}
.ccd--sheet .ccd__x:active{background:var(--cc-line)}
.ccd__x svg{width:16px;height:16px}

.ccd__scroll{flex:1 1 auto;overflow:auto;overscroll-behavior:contain;padding:8px 32px 8px}
.ccd--sheet .ccd__scroll{padding:4px 20px 8px}
.ccd__intro{margin:16px 0 8px;font-size:1.0625rem;max-width:60ch}

.ccd__cat{border-top:1px solid var(--cc-line);padding:22px 0 20px}
.ccd__cat:first-of-type{border-top:0}
.ccd__row{display:flex;align-items:flex-start;justify-content:space-between;gap:24px}
.ccd__name{margin:0;font-weight:600;font-size:1.1875rem;line-height:1.3;color:var(--cc-ink)}
.ccd__desc{margin:6px 0 0;font-size:1rem;max-width:52ch}
.ccd__always{flex:none;display:inline-flex;align-items:center;gap:8px;min-height:44px;font-weight:600;font-size:.9375rem;color:var(--cc-ink)}
.ccd__always svg{width:14px;height:14px}

/* details: which cookies, why, how long */
.ccd details{margin-top:10px}
.ccd summary{list-style:none;display:inline-flex;align-items:center;gap:8px;min-height:44px;cursor:pointer;font-weight:600;font-size:.9375rem;color:var(--cc-ink);
  text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px}
.ccd summary::-webkit-details-marker{display:none}
.ccd summary svg{width:12px;height:12px;transition:transform .2s var(--cc-ease)}
.ccd details[open] summary svg{transform:rotate(180deg)}
.ccd table{width:100%;border-collapse:collapse;margin:6px 0 4px;font-size:.9375rem}
.ccd th,.ccd td{text-align:left;vertical-align:top;padding:10px 12px 10px 0;border-top:1px solid var(--cc-line)}
.ccd th{font-weight:600;color:var(--cc-ink);font-size:.8125rem;letter-spacing:.04em;text-transform:uppercase;border-top:0;padding-top:4px}
.ccd td:first-child{font-family:ui-monospace,"SFMono-Regular",Menlo,monospace;font-size:.875rem;color:var(--cc-ink);white-space:nowrap}
.ccd--sheet table,.ccd--sheet tbody,.ccd--sheet tr,.ccd--sheet td{display:block;width:100%}
.ccd--sheet thead{display:none}
.ccd--sheet tr{border-top:1px solid var(--cc-line);padding:10px 0}
.ccd--sheet td{border:0;padding:2px 0}

/* the switch: a real checkbox with role=switch, state also spelled out in words */
.cc-sw{flex:none;position:relative;display:inline-flex;align-items:center;gap:12px;min-height:44px;cursor:pointer;font-weight:600;font-size:.9375rem;color:var(--cc-ink)}
.cc-sw input{position:absolute;opacity:0;width:64px;height:44px;margin:0;right:0;cursor:pointer}
.cc-sw__track{position:relative;width:60px;height:34px;border-radius:999px;background:var(--cc-white);border:1.5px solid var(--cc-ink);transition:background-color .25s var(--cc-ease)}
.cc-sw__track::after{content:"";position:absolute;top:4px;left:4px;width:23px;height:23px;border-radius:50%;background:var(--cc-ink);transition:transform .3s var(--cc-ease),background-color .25s var(--cc-ease)}
.cc-sw input:checked+.cc-sw__track{background:var(--cc-ink)}
.cc-sw input:checked+.cc-sw__track::after{transform:translateX(26px);background:var(--cc-white)}
.cc-sw__state{min-width:2.4em;text-align:right}

.ccd__meta{margin:4px 0 16px;font-size:.9375rem}
.ccd__foot{flex:none;display:grid;grid-template-columns:repeat(3,1fr);gap:12px;padding:18px 32px 24px;border-top:1px solid var(--cc-line);background:var(--cc-white)}
.ccd--sheet .ccd__foot{grid-template-columns:1fr 1fr;gap:10px;padding:14px 20px calc(14px + env(safe-area-inset-bottom))}
.ccd--sheet .ccd__foot [data-ccd="save"]{grid-column:1 / -1}
.ccd--sheet .ccd__foot .cc__btn{padding-inline:12px}
.ccd--sheet .cc__btn{width:100%;transition:none}
.ccd--sheet .cc__btn:hover{background:var(--cc-white);color:var(--cc-ink)}
.ccd--sheet .cc__btn:active{background:var(--cc-ink);color:var(--cc-white)}

html.cc-lock{overflow:hidden}

/* footer re-open link (any page link with data-cc-open gets this look if it carries .cc-foot) */
a.cc-foot{color:inherit;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;display:inline-flex;align-items:center;min-height:44px}

/* ---------- motion (opt-in; off for reduced motion and Lesemodus) ---------- */
.cc--anim .cc__panel{opacity:0;transform:translateY(18px);transition:opacity .5s var(--cc-ease),transform .6s var(--cc-ease)}
.cc--anim.cc--sheet .cc__panel{opacity:1;transform:translateY(105%);transition:transform .55s var(--cc-ease)}
.cc--anim.cc--in .cc__panel{opacity:1;transform:none}
.cc--anim.cc--out .cc__panel{opacity:0;transform:translateY(12px);transition:opacity .35s ease,transform .4s ease}
.cc--anim.cc--sheet.cc--out .cc__panel{opacity:1;transform:translateY(105%)}
@keyframes cc-dot{from{opacity:0;transform:scale(.4)}to{opacity:1;transform:none}}
.ccd--anim[open]{animation:cc-rise .45s var(--cc-ease)}
.ccd--anim.ccd--sheet[open]{animation:cc-up .5s var(--cc-ease)}
.ccd--anim[open]::backdrop{animation:cc-fade .35s ease}
@keyframes cc-rise{from{opacity:0;transform:translateY(14px) scale(.985)}to{opacity:1;transform:none}}
@keyframes cc-up{from{transform:translateY(100%)}to{transform:none}}
@keyframes cc-fade{from{opacity:0}to{opacity:1}}

html[data-a11y-motion="off"] .cc *,html[data-a11y-motion="off"] .ccd,html[data-a11y-motion="off"] .ccd *{transition:none!important;animation:none!important}
@media (prefers-reduced-motion: reduce){
  .cc *,.ccd,.ccd *,.ccd::backdrop{transition:none!important;animation:none!important}
}
/* Lesemodus: decorative seal goes, the rest just grows (rem) */
html[data-a11y="on"] .cc--card{width:min(36rem,calc(100vw - 64px))}
@media (forced-colors: active){
  .cc__panel,.ccd{border:2px solid CanvasText}
  .cc-sw__track{border-color:CanvasText}
  .cc-sw input:checked+.cc-sw__track{background:Highlight}
}
@media print{.cc,.ccd{display:none!important}}
