/* ==========================================================================
   Ari's Lemonade - shared compliance layer
   Cookie consent banner, accessibility widget, and legal page shell.
   Loaded by index.html and every legal page.
   ========================================================================== */
:root{
  --c-pink:#CF328D; --c-pink-deep:#A82470; --c-pink-soft:#FBEFF6;
  --c-blush:#FDF2F5; --c-blush-deep:#F6DFE6;
  --c-yellow-soft:#FDF8E4; --c-green-deep:#4F7A3C;
  --c-paper:#FFFDFA; --c-ink:#2A1F26; --c-ink-2:#57474F; --c-ink-3:#7E6E77;
  --c-rule:#E7DECD;
  --c-display:"Fraunces",Georgia,"Times New Roman",serif;
  --c-body:"Inter",-apple-system,"Segoe UI",Helvetica,Arial,sans-serif;
}

/* ---------------------------------------------------- cookie banner ---- */
.cookie-bar{
  position:fixed;left:0;right:0;bottom:0;z-index:300;
  background:var(--c-paper);border-top:2px solid var(--c-pink);
  box-shadow:0 -10px 40px -20px rgba(42,31,38,.45);
  padding:1.25rem 1.5rem;display:none;
}
.cookie-bar.is-open{display:block}
.cookie-bar-inner{
  max-width:1160px;margin-inline:auto;display:flex;flex-wrap:wrap;
  align-items:center;gap:1rem 2rem;justify-content:space-between;
}
.cookie-bar p{
  margin:0;font-family:var(--c-body);font-size:.875rem;line-height:1.6;
  color:var(--c-ink-2);max-width:62ch;
}
.cookie-bar a{color:var(--c-pink-deep)}
.cookie-bar-actions{display:flex;flex-wrap:wrap;gap:.6rem}
.cookie-btn{
  font-family:var(--c-body);font-size:.8125rem;font-weight:600;
  padding:.75rem 1.4rem;border-radius:3px;cursor:pointer;border:1px solid var(--c-rule);
  background:transparent;color:var(--c-ink);line-height:1;
  transition:background-color .2s,border-color .2s,color .2s;
}
.cookie-btn:hover{border-color:var(--c-ink)}
.cookie-btn--accept{background:var(--c-pink);border-color:var(--c-pink);color:#fff}
.cookie-btn--accept:hover{background:var(--c-pink-deep);border-color:var(--c-pink-deep);color:#fff}
@media (max-width:760px){
  /* clear the fixed call bar on the home page */
  .cookie-bar{padding-bottom:5.5rem}
  .cookie-bar-inner{flex-direction:column;align-items:flex-start}
  .cookie-btn{flex:1 1 auto}
}

/* ----------------------------------------------- accessibility widget -- */
.a11y-toggle{
  position:fixed;right:1rem;bottom:1rem;z-index:290;
  width:48px;height:48px;border-radius:50%;cursor:pointer;
  background:var(--c-paper);border:1px solid var(--c-rule);color:var(--c-pink-deep);
  display:grid;place-items:center;box-shadow:0 6px 20px -8px rgba(42,31,38,.35);
  transition:transform .2s,border-color .2s;
}
.a11y-toggle:hover{transform:scale(1.06);border-color:var(--c-pink)}
@media (max-width:760px){.a11y-toggle{bottom:5.5rem}}
/* while the bar is open, keep browser-driven scrolling (anchors, tab focus)
   from parking an element underneath it */
.cookie-open{scroll-padding-bottom:12rem}
@media (max-width:760px){.cookie-open{scroll-padding-bottom:18rem}}

/* the consent bar is full width at the bottom; lift the widget clear of it */
.cookie-open .a11y-toggle{bottom:9.5rem}
.cookie-open .a11y-panel{bottom:13.25rem}
@media (max-width:760px){
  .cookie-open .a11y-toggle{bottom:16rem}
  .cookie-open .a11y-panel{bottom:19.75rem}
}

.a11y-panel{
  position:fixed;right:1rem;bottom:4.75rem;z-index:295;width:min(19rem,calc(100vw - 2rem));
  background:var(--c-paper);border:1px solid var(--c-rule);border-radius:8px;
  box-shadow:0 18px 50px -18px rgba(42,31,38,.4);padding:1.25rem;display:none;
}
.a11y-panel.is-open{display:block}
@media (max-width:760px){.a11y-panel{bottom:9.5rem}}
.a11y-panel h2{
  font-family:var(--c-display);font-weight:400;font-size:1.125rem;
  margin:0 0 .85rem;color:var(--c-ink);
}
.a11y-opt{
  display:flex;align-items:center;justify-content:space-between;gap:1rem;
  padding:.6rem 0;border-bottom:1px solid var(--c-blush-deep);
}
.a11y-opt:last-of-type{border-bottom:0}
.a11y-opt span{font-family:var(--c-body);font-size:.875rem;color:var(--c-ink-2)}
.a11y-switch{
  position:relative;width:42px;height:24px;flex-shrink:0;border-radius:999px;
  border:1px solid var(--c-rule);background:#EFE9E0;cursor:pointer;padding:0;
  transition:background-color .2s,border-color .2s;
}
.a11y-switch::after{
  content:"";position:absolute;top:2px;left:2px;width:18px;height:18px;
  border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(42,31,38,.3);
  transition:transform .2s;
}
.a11y-switch[aria-pressed="true"]{background:var(--c-pink);border-color:var(--c-pink)}
.a11y-switch[aria-pressed="true"]::after{transform:translateX(18px)}
.a11y-reset{
  margin-top:.9rem;width:100%;font-family:var(--c-body);font-size:.75rem;
  background:none;border:0;color:var(--c-ink-3);text-decoration:underline;
  text-underline-offset:3px;cursor:pointer;padding:.3rem;
}
.a11y-reset:hover{color:var(--c-pink-deep)}

/* preference classes, set on <html> */
.a11y-text-lg{font-size:118%}
.a11y-dyslexic,.a11y-dyslexic body,
.a11y-dyslexic h1,.a11y-dyslexic h2,.a11y-dyslexic h3,.a11y-dyslexic h4,
.a11y-dyslexic p,.a11y-dyslexic li,.a11y-dyslexic a,
.a11y-dyslexic span,.a11y-dyslexic button,.a11y-dyslexic label{
  font-family:"Comic Sans MS","Trebuchet MS",Verdana,sans-serif !important;
  letter-spacing:.02em !important;word-spacing:.08em !important;
}
.a11y-contrast{--pink:#8E1F5F;--pink-deep:#7A1450;--ink:#000000;--ink-2:#22161C;--ink-3:#3A2F35}
.a11y-contrast body{background:#fff !important}
.a11y-contrast .hero-scrim{background:rgba(255,255,255,.93) !important}
.a11y-contrast .hero-video,.a11y-contrast .section-bg{display:none !important}
.a11y-contrast .lede,.a11y-contrast p,.a11y-contrast li{color:#22161C !important}
.a11y-calm *,.a11y-calm *::before,.a11y-calm *::after{
  animation-duration:.001ms !important;animation-iteration-count:1 !important;
  transition-duration:.001ms !important;scroll-behavior:auto !important;
}
.a11y-calm video{display:none !important}

/* ------------------------------------------------------- legal pages --- */
.legal-body{
  margin:0;background:var(--c-paper);color:var(--c-ink-2);
  font-family:var(--c-body);font-size:1.0625rem;line-height:1.75;
  -webkit-font-smoothing:antialiased;
}
.legal-head{border-bottom:1px solid var(--c-rule);background:var(--c-blush)}
.legal-wrap{max-width:52rem;margin-inline:auto;padding:0 1.5rem}
.legal-head .legal-wrap{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;padding-block:1.1rem}
.legal-head img{height:34px;width:auto;display:block}
.legal-head a.back{font-size:.875rem;color:var(--c-ink-2);text-decoration:none;font-weight:500}
.legal-head a.back:hover{color:var(--c-pink)}
.legal-main{padding-block:3.5rem 4rem}
.legal-main h1{
  font-family:var(--c-display);font-weight:400;font-size:clamp(2rem,4.5vw,2.75rem);
  line-height:1.1;letter-spacing:-.02em;color:var(--c-ink);margin:0 0 .75rem;
}
.legal-dates{
  font-size:.8125rem;letter-spacing:.1em;text-transform:uppercase;
  color:var(--c-ink-3);margin:0 0 2.5rem;
}
.legal-main h2{
  font-family:var(--c-display);font-weight:400;font-size:1.5rem;color:var(--c-ink);
  margin:2.75rem 0 .85rem;line-height:1.25;letter-spacing:-.01em;
}
.legal-main h3{
  font-family:var(--c-body);font-weight:600;font-size:1rem;color:var(--c-ink);
  margin:1.75rem 0 .5rem;
}
.legal-main p,.legal-main li{max-width:68ch}
.legal-main ul,.legal-main ol{padding-left:1.25rem}
.legal-main li{margin-bottom:.45rem}
.legal-main a{color:var(--c-pink-deep);text-underline-offset:3px}
.legal-main a:hover{color:var(--c-pink)}
.legal-note{
  background:var(--c-yellow-soft);border:1px solid var(--c-blush-deep);
  border-radius:8px;padding:1.1rem 1.35rem;margin:1.5rem 0;font-size:.9375rem;
}
.legal-table{width:100%;border-collapse:collapse;margin:1.25rem 0;font-size:.875rem}
.legal-table th,.legal-table td{
  text-align:left;padding:.7rem .6rem;border-bottom:1px solid var(--c-blush-deep);
  vertical-align:top;
}
.legal-table th{
  font-size:.75rem;letter-spacing:.09em;text-transform:uppercase;
  color:var(--c-pink-deep);font-weight:600;
}
.legal-table-wrap{overflow-x:auto}
.legal-foot{
  border-top:1px solid var(--c-rule);padding-block:2rem 3rem;
  font-size:.8125rem;color:var(--c-ink-3);
}
.legal-foot a{color:var(--c-ink-2);text-decoration:none}
.legal-foot a:hover{color:var(--c-pink)}
.legal-foot nav{display:flex;flex-wrap:wrap;gap:.6rem 1.4rem;margin-bottom:1rem}
.legal-foot button{
  background:none;border:0;padding:0;font:inherit;color:var(--c-ink-2);
  cursor:pointer;text-decoration:none;
}
.legal-foot button:hover{color:var(--c-pink)}

/* ------------------------------------------- footer legal row (index) -- */
.footer-legal{
  display:flex;flex-wrap:wrap;gap:.5rem 1.4rem;
  margin-top:1.5rem;padding-top:1.25rem;border-top:1px solid var(--c-rule);
}
.footer-legal a,.footer-legal button{
  font-family:var(--c-body);font-size:.8125rem;color:var(--c-ink-2);
  text-decoration:none;background:none;border:0;padding:0;cursor:pointer;
}
.footer-legal a:hover,.footer-legal button:hover{color:var(--c-pink)}

:where(.cookie-btn,.a11y-toggle,.a11y-switch,.a11y-reset,.footer-legal button):focus-visible{
  outline:2px solid var(--c-pink);outline-offset:3px;
}
