/* Cookie banner. Generated from BANNER_CSS in legal-setu-analytics.js by
   tools/sync-cookie-css.py -- edit the JS, not this file. */
/* ── Reset ── */
    /* Scoped to the card at CLASS specificity, and first in the sheet, so every
       .ls-cb-* / .ls-pref-* padding and margin below still wins. It used to be
       "#ls-cookie-overlay *", whose id specificity beat all of them and zeroed
       the card's section padding, so on phones the text touched the screen edge.
       (Selector must keep a cookie prefix: tools/sync-cookie-css.py refuses
       blocks with selectors it does not recognise.) */
    .ls-cb-card,.ls-cb-card *{box-sizing:border-box;margin:0;padding:0}

    /* ── Backdrop ── */
    #ls-cookie-overlay{
      position:fixed;z-index:99999;
      left:20px;bottom:20px;right:auto;top:auto;
      display:flex;
      opacity:0;transition:opacity .3s ease;
      pointer-events:none;
    }
    /* the card takes pointer events, the container never does, so nothing
       behind the notice is blocked or dimmed */
    #ls-cookie-overlay.ls-show .ls-cb-card{pointer-events:auto}
    #ls-cookie-overlay.ls-show{opacity:1}

    /* ── Card ── */
    .ls-cb-card{
      width:400px;max-width:calc(100vw - 40px);
      /* never taller than the screen once preferences are open */
      max-height:calc(100vh - 40px);overflow-y:auto;overscroll-behavior:contain;
      background:#fff;
      border-radius:16px;
      box-shadow:0 8px 48px rgba(12,14,26,.22);
      font-family:'Manrope',system-ui,sans-serif;
      transform:translateY(24px);transition:transform .35s cubic-bezier(.4,0,.2,1);
    }
    #ls-cookie-overlay.ls-show .ls-cb-card{transform:translateY(0)}
    /* no backdrop to reduce - the notice is opaque and blocks nothing */
    @media(prefers-reduced-motion:reduce){
      .ls-cb-card{transform:none;transition:opacity .25s ease}
      .ls-toggle-slider,.ls-toggle-slider::before,.ls-expand-prefs svg,.ls-prefs-panel,.ls-prefs-panel.open,#ls-cookie-reopen{transition:none}
    }

    /* ── Card header ── */
    .ls-cb-head{
      padding:18px 20px 14px;
      border-bottom:1px solid #F0F2F9;
      display:flex;align-items:center;gap:10px;
    }
    .ls-cb-head-icon{
      width:34px;height:34px;flex-shrink:0;
      background:linear-gradient(135deg,#2B3FD9,#4F63F0);
      border-radius:10px;display:flex;align-items:center;justify-content:center;
    }
    .ls-cb-head-icon svg{width:16px;height:16px;fill:none;stroke:#fff;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
    .ls-cb-head-text{flex:1}
    .ls-cb-head-title{font-size:14px;font-weight:800;color:#0C0E1A;letter-spacing:-.01em}
    .ls-cb-head-sub{font-size:14px;color:#667089;margin-top:1px;line-height:1.4}

    /* ── Body ── */
    .ls-cb-body{padding:14px 20px 16px}
    .ls-cb-desc{font-size:14px;color:#525870;line-height:1.55;margin-bottom:12px}
    .ls-cb-desc a{color:#2B3FD9;text-decoration:underline;cursor:pointer}

    /* ── Preference rows ── */
    .ls-pref-row{
      display:flex;align-items:center;gap:12px;
      padding:10px 0;border-bottom:1px solid #F0F2F9;
    }
    .ls-pref-row:last-of-type{border-bottom:none;padding-bottom:0}
    .ls-pref-info{flex:1}
    .ls-pref-name{font-size:14px;font-weight:700;color:#0C0E1A}
    .ls-pref-desc{font-size:14px;color:#667089;margin-top:1px;line-height:1.45}
    /* eyebrow: 11px uppercase is the only sub-14px text allowed; Teal Ink, not teal (3.20:1) */
    .ls-pref-required{font-size:11px;font-weight:700;color:#0B7D61;letter-spacing:1.2px;text-transform:uppercase;margin-top:4px;line-height:1.2}

    /* ── Toggle ── */
    .ls-toggle{position:relative;width:40px;height:22px;flex-shrink:0}
    .ls-toggle input{opacity:0;width:0;height:0;position:absolute}
    .ls-toggle-slider{position:absolute;inset:0;background:#D5DAEA;border-radius:100px;cursor:pointer;transition:background-color 150ms}
    .ls-toggle-slider::before{content:'';position:absolute;left:3px;top:3px;width:16px;height:16px;border-radius:50%;background:#fff;transition:transform 150ms;box-shadow:0 1px 3px rgba(12,14,26,.22)}
    .ls-toggle input:checked + .ls-toggle-slider{background:#2B3FD9}
    .ls-toggle input:checked + .ls-toggle-slider::before{transform:translateX(18px)}
    .ls-toggle input:disabled + .ls-toggle-slider{background:#0B7D61;cursor:not-allowed}
    /* the real checkbox is invisible, so its keyboard focus is drawn on the track */
    .ls-toggle input:focus-visible + .ls-toggle-slider{outline:2px solid #2B3FD9;outline-offset:2px}

    /* ── Buttons ── */
    .ls-cb-btns{
      display:grid;grid-template-columns:1fr 1fr;gap:8px;
      padding:14px 20px 18px;border-top:1px solid #F0F2FA;
    }
    .ls-btn-necessary{
      min-height:48px;padding:13px 14px;background:#EEF0F8;color:#3B4257;
      border:1.5px solid #D5DAEA;border-radius:10px;
      font-size:14px;font-weight:700;cursor:pointer;
      font-family:inherit;transition:background-color 150ms,color 150ms,border-color 150ms,transform 150ms;
    }
    .ls-btn-necessary:hover{background:#E8EBF8;color:#0C0E1A}
    .ls-btn-necessary:active,.ls-btn-accept:active,.ls-btn-save-prefs:active{transform:translateY(1px)}
    .ls-btn-accept{
      min-height:48px;padding:13px 14px;
      background:linear-gradient(135deg,#2B3FD9,#4F63F0);
      color:#fff;border:1.5px solid transparent;border-radius:10px;
      font-size:14px;font-weight:700;cursor:pointer;
      font-family:inherit;
      box-shadow:0 4px 12px rgba(43,63,217,.30);
      transition:box-shadow 150ms,transform 150ms;
    }
    .ls-btn-accept:hover{box-shadow:0 6px 18px rgba(43,63,217,.40);transform:translateY(-1px)}
    .ls-btn-save-prefs{
      grid-column:1/-1;min-height:48px;padding:13px 14px;
      background:linear-gradient(135deg,#2B3FD9,#4F63F0);
      color:#fff;border:none;border-radius:10px;
      font-size:14px;font-weight:700;cursor:pointer;
      font-family:inherit;
      box-shadow:0 4px 12px rgba(43,63,217,.30);transition:box-shadow 150ms,transform 150ms;
    }
    .ls-btn-save-prefs:hover{box-shadow:0 6px 18px rgba(43,63,217,.40);transform:translateY(-1px)}

    /* ── Expand prefs link ── */
    .ls-expand-prefs{
      display:flex;align-items:center;justify-content:center;gap:4px;
      font-size:14px;font-weight:700;color:#3B4257;
      min-height:44px;width:100%;
      cursor:pointer;background:none;border:none;border-radius:10px;
      font-family:inherit;padding:0 20px 4px;
      transition:color 150ms;
    }
    .ls-expand-prefs:hover{color:#2B3FD9}
    .ls-expand-prefs svg{width:12px;height:12px;fill:none;stroke:currentColor;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round;transition:transform 220ms}
    .ls-expand-prefs.open svg{transform:rotate(180deg)}

    /* ── Preferences panel (collapsible) ── */
    /* Opens by moving the grid row from 0fr to 1fr instead of tweening
       max-height, so the open height is the content's own. Closed also means
       visibility:hidden, which takes the toggles out of the tab order. */
    .ls-prefs-panel{
      display:grid;grid-template-rows:0fr;
      visibility:hidden;
      transition:grid-template-rows 220ms cubic-bezier(.22,1,.36,1),visibility 0s linear 220ms;
      border-top:1px solid #F0F2F9;
    }
    .ls-prefs-panel.open{grid-template-rows:1fr;visibility:visible;transition:grid-template-rows 220ms cubic-bezier(.22,1,.36,1),visibility 0s}
    .ls-prefs-inner{min-height:0;overflow:hidden;padding:0 20px}
    .ls-prefs-inner .ls-pref-row:first-child{margin-top:8px}
    .ls-prefs-inner .ls-pref-row:last-child{margin-bottom:10px}

    /* ── Re-open button ── */
    #ls-cookie-reopen{
      position:fixed;bottom:20px;left:20px;z-index:9998;
      width:44px;height:44px;
      background:linear-gradient(135deg,#2B3FD9,#4F63F0);
      border-radius:50%;border:none;cursor:pointer;
      display:none;align-items:center;justify-content:center;
      box-shadow:0 4px 12px rgba(43,63,217,.30);
      transition:transform 150ms,box-shadow 150ms;
    }
    #ls-cookie-reopen:hover{transform:translateY(-1px);box-shadow:0 6px 18px rgba(43,63,217,.40)}
    #ls-cookie-reopen:active{transform:translateY(1px)}

    /* ── Keyboard focus: 2px indigo ring, never animated ── */
    #ls-cookie-overlay :focus-visible,#ls-cookie-reopen:focus-visible{outline:2px solid #2B3FD9;outline-offset:2px}
    /* full-width row inside a scrolling card: draw the ring inside the edge */
    #ls-cookie-overlay .ls-expand-prefs:focus-visible{outline-offset:-2px}
    #ls-cookie-reopen svg{width:16px;height:16px;fill:none;stroke:#fff;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}

    /* ── Mobile ── */
    @media(max-width:600px){
      #ls-cookie-overlay{left:0;right:0;bottom:0}
      .ls-cb-card{width:100%;max-width:100%;max-height:100vh;border-radius:16px 16px 0 0}
      /* side by side, not stacked - stacking cost ~56px of a 812px screen */
      .ls-cb-btns{grid-template-columns:1fr 1fr;gap:8px;padding:10px 16px 14px}
      .ls-btn-necessary,.ls-btn-accept{min-height:48px;font-size:14px;padding:11px 8px}
      /* the visitor is already on the site; the domain line says nothing */
      .ls-cb-head-sub{display:none}
      .ls-cb-head{padding:13px 16px 10px}
      .ls-cb-body{padding:10px 16px 12px}
      .ls-cb-desc{font-size:14px;line-height:1.5;margin-bottom:6px}
      .ls-expand-prefs{min-height:44px;padding:0 16px}
      .ls-prefs-inner{padding:0 16px}
    }
