/* Luison Core — accessibility panel + modes (classes «lsn-a11y-*» are set on <html> by a11y.js / the inline head script) */

/* ---- panel ---- */
.lsn-a11y{zoom:calc(1 / var(--lsn-a11y-z,1));font-family:var(--lsn-sans,'Jost',sans-serif)}
.lsn-a11y__btn{position:fixed;z-index:55;right:16px;bottom:16px;display:grid;place-items:center;width:48px;height:48px;padding:0;border:1px solid var(--lsn-gold-light,#d9bd84);border-radius:50%;background:var(--lsn-deep,#14281e);color:var(--lsn-gold-light,#d9bd84);cursor:pointer;box-shadow:0 8px 24px rgba(0,0,0,.28);transition:background .2s,color .2s}
.lsn-a11y__btn:hover,.lsn-a11y__btn[aria-expanded="true"]{background:var(--lsn-gold-light,#d9bd84);color:var(--lsn-deep,#14281e)}
.lsn-a11y :is(button):focus-visible{outline:3px solid var(--lsn-gold-light,#d9bd84);outline-offset:3px}
.lsn-a11y__panel{position:fixed;z-index:62;right:16px;bottom:76px;width:min(340px,calc(100vw - 32px));max-height:calc(100vh - 100px);overflow:auto;padding:20px 22px 18px;background:var(--lsn-deep,#14281e);color:var(--lsn-cream,#f6f1e7);border:1px solid rgba(217,189,132,.5);box-shadow:0 18px 48px rgba(0,0,0,.4);font-size:15px;line-height:1.4;font-weight:400}
.lsn-a11y__panel[hidden]{display:none}
.lsn-a11y__head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 14px}
.lsn-a11y__title{margin:0;font-family:var(--lsn-serif,'Cormorant Garamond',serif);font-size:24px;letter-spacing:.04em}
.lsn-a11y__close{display:grid;place-items:center;width:40px;height:40px;padding:0;border:1px solid transparent;background:none;color:inherit;cursor:pointer}
.lsn-a11y__close:hover{border-color:var(--lsn-gold-light,#d9bd84)}
.lsn-a11y__size{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-top:1px solid rgba(217,189,132,.25);border-bottom:1px solid rgba(217,189,132,.25)}
.lsn-a11y__label{font-size:15px}
.lsn-a11y__stepper{display:flex;align-items:center;gap:6px}
.lsn-a11y__value{min-width:52px;text-align:center;font-size:15px}
.lsn-a11y__step{min-width:44px;min-height:44px;padding:0 8px;border:1px solid var(--lsn-gold-light,#d9bd84);background:transparent;color:var(--lsn-gold-light,#d9bd84);font:inherit;font-size:17px;font-weight:500;cursor:pointer}
.lsn-a11y__step:hover:not(:disabled){background:var(--lsn-gold-light,#d9bd84);color:var(--lsn-deep,#14281e)}
.lsn-a11y__step:disabled{opacity:.4;cursor:default}
.lsn-a11y__list{display:grid;gap:8px;margin:14px 0}
.lsn-a11y__opt{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;min-height:44px;padding:8px 14px;border:1px solid rgba(217,189,132,.45);background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer}
.lsn-a11y__opt:hover{border-color:var(--lsn-gold-light,#d9bd84)}
.lsn-a11y__sw{position:relative;flex:none;width:38px;height:22px;border:1px solid var(--lsn-gold-light,#d9bd84);border-radius:11px}
.lsn-a11y__sw::after{content:"";position:absolute;top:3px;left:3px;width:14px;height:14px;border-radius:50%;background:var(--lsn-gold-light,#d9bd84);transition:transform .2s}
.lsn-a11y__opt[aria-pressed="true"]{background:rgba(217,189,132,.16);border-color:var(--lsn-gold-light,#d9bd84)}
.lsn-a11y__opt[aria-pressed="true"] .lsn-a11y__sw{background:var(--lsn-gold-light,#d9bd84)}
.lsn-a11y__opt[aria-pressed="true"] .lsn-a11y__sw::after{transform:translateX(16px);background:var(--lsn-deep,#14281e)}
.lsn-a11y__reset{width:100%;min-height:44px;border:0;background:none;color:var(--lsn-gold-light,#d9bd84);font:inherit;font-size:12px;letter-spacing:.2em;text-transform:uppercase;text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.lsn-a11y__reset:hover{color:var(--lsn-cream,#f6f1e7)}
@media (max-width:700px){
  /* side tab at mid-height: the cookie banner (bottom) and the product CTA bar must never cover it */
  .lsn-a11y__btn{right:0;top:36%;bottom:auto;width:44px;height:48px;border-right:0;border-radius:24px 0 0 24px}
  .lsn-a11y__panel{z-index:62;right:12px;left:12px;width:auto;bottom:calc(12px + env(safe-area-inset-bottom));max-height:calc(100vh - 80px)}
}

/* ---- text size (CSS zoom: the theme sizes text in px, so root font-size would do nothing; the panel is counter-zoomed above) ---- */
html.lsn-a11y-fs-1{--lsn-a11y-z:1.1}
html.lsn-a11y-fs-2{--lsn-a11y-z:1.25}
html.lsn-a11y-fs-3{--lsn-a11y-z:1.5}
html[class*="lsn-a11y-fs-"] body{zoom:var(--lsn-a11y-z)}
html[class*="lsn-a11y-fs-"] :is(select,input,textarea){max-width:100%}
@media (max-width:700px){
  html.lsn-a11y-fs-2{--lsn-a11y-z:1.2}
  html.lsn-a11y-fs-3{--lsn-a11y-z:1.3}
  /* the catalogue sort select is as wide as its longest option and its flex parent did not shrink it (2px overflow) */
  html[class*="lsn-a11y-fs-"] .lsn-shop-sort{min-width:0;max-width:100%}
  html[class*="lsn-a11y-fs-"] .lsn-shop-sort__select{min-width:0;width:100%;text-overflow:ellipsis}
}

/* ---- high contrast: the theme colours are tokens, so override the tokens (roles stay intact: light bg + dark text, dark bg + light text) ---- */
html.lsn-a11y-hc{
  --lsn-cream:#fff;--lsn-paper:#fff;--lsn-sand:#fff;--lsn-sand-deep:#f2f2f2;
  --lsn-ink:#000;--lsn-muted:#1a1a1a;--lsn-muted-2:#333;
  --lsn-line:#000;--lsn-line-soft:#595959;
  --lsn-gold:#6b4a00;--lsn-gold-dark:#3d2a00;--lsn-gold-light:#ffd966;
  --lsn-deep:#000;--lsn-green:#000;--lsn-darker:#000;--lsn-danger:#a40000;
}
html.lsn-a11y-hc a{text-decoration:underline;text-underline-offset:.18em}
html.lsn-a11y-hc :focus-visible{outline:3px solid #ffbf00!important;outline-offset:3px!important;box-shadow:0 0 0 6px #000}
html.lsn-a11y-hc :is(input,select,textarea){border:2px solid #000!important}
/* the theme puts --lsn-deep text on a --lsn-gold background in these states; in this mode gold turns dark brown, so the text goes white */
html.lsn-a11y-hc :is(.lsn-btn--dark:hover,.lsn-shop-pager__item[aria-current],.lsn-prod-reviews__pager .current){color:#fff}

/* ---- grayscale (on <html>: a filter on <body> would break position:fixed children) ---- */
html.lsn-a11y-gs{filter:grayscale(1)}

/* ---- readable font ---- */
html.lsn-a11y-rf{--lsn-serif:Verdana,Arial,Helvetica,sans-serif;--lsn-sans:Verdana,Arial,Helvetica,sans-serif}
html.lsn-a11y-rf body :not(svg,svg *){font-family:Verdana,Arial,Helvetica,sans-serif!important}
html.lsn-a11y-rf .lsn{font-weight:400}

/* ---- underline links ---- */
html.lsn-a11y-ul a{text-decoration:underline!important;text-underline-offset:.18em}
html.lsn-a11y-ul .lsn-a11y a{text-decoration:none!important}

/* ---- text spacing (WCAG 1.4.12 values) ---- */
html.lsn-a11y-sp body :not(.lsn-a11y,.lsn-a11y *,svg,svg *){line-height:1.8!important;letter-spacing:.08em!important;word-spacing:.16em!important}

/* ---- stop animations (video is paused from a11y.js) ---- */
html.lsn-a11y-st,html.lsn-a11y-st *,html.lsn-a11y-st *::before,html.lsn-a11y-st *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
html.lsn-a11y-st .lsn-js .lsn-reveal{opacity:1!important;transform:none!important}
