
/* SLD Consent Banner */
.sld-consent-backdrop{position:fixed;inset:0;background:rgba(10,28,45,.46);z-index:9998;display:none}
.sld-consent{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);width:min(760px,calc(100% - 32px));max-height:calc(100vh - 48px);overflow:auto;z-index:9999;background:#fff;color:#183149;border-radius:24px;box-shadow:0 24px 70px rgba(7,25,41,.26);padding:30px;display:none}
.sld-consent.is-open,.sld-consent-backdrop.is-open{display:block}
.sld-consent h2{margin:0 0 12px;color:#17395f;font-size:clamp(1.55rem,3vw,2.1rem);line-height:1.12}
.sld-consent p{margin:0 0 16px;line-height:1.6;color:#4e6070}
.sld-consent a{color:#245fae;font-weight:700;text-decoration:underline}
.sld-consent-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:22px}
.sld-consent .button{margin:0;border:0;cursor:pointer;white-space:nowrap}
.sld-consent .button-secondary{background:#eef2f4;color:#17395f}
.sld-consent .button-outline{background:#fff;color:#17395f;border:1px solid #cbd5dc}
.sld-consent-settings{display:none;margin-top:20px;padding-top:20px;border-top:1px solid #e4e9ed}
.sld-consent-settings.is-open{display:block}
.sld-consent-option{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;padding:16px 0;border-bottom:1px solid #edf0f2}
.sld-consent-option:last-child{border-bottom:0}
.sld-consent-option strong{display:block;color:#17395f;margin-bottom:4px}
.sld-consent-option small{display:block;color:#667784;line-height:1.45}
.sld-switch{position:relative;flex:0 0 auto;width:52px;height:30px}
.sld-switch input{position:absolute;opacity:0;width:1px;height:1px}
.sld-switch span{position:absolute;inset:0;background:#c8d1d8;border-radius:999px;transition:.2s}
.sld-switch span::after{content:"";position:absolute;width:24px;height:24px;left:3px;top:3px;background:#fff;border-radius:50%;box-shadow:0 2px 7px rgba(0,0,0,.2);transition:.2s}
.sld-switch input:checked + span{background:#94c93d}
.sld-switch input:checked + span::after{transform:translateX(22px)}
.sld-switch input:disabled + span{opacity:.72}
.sld-consent-note{font-size:.9rem;color:#71808b;margin-top:14px}
@media(max-width:640px){
  .sld-consent{bottom:12px;width:calc(100% - 20px);padding:22px 18px;border-radius:20px;max-height:calc(100vh - 24px)}
  .sld-consent-actions{display:grid;grid-template-columns:1fr}
  .sld-consent .button{width:100%;white-space:normal}
}


/* Mobile compact consent layout */
@media(max-width:640px){
  .sld-consent{
    bottom:10px;
    width:calc(100% - 20px);
    max-height:70vh;
    padding:18px 16px;
    border-radius:18px;
    overflow-y:auto;
    -webkit-overflow-scrolling:touch;
  }
  .sld-consent h2{
    font-size:1.55rem;
    line-height:1.08;
    margin-bottom:10px;
  }
  .sld-consent p{
    font-size:.93rem;
    line-height:1.45;
    margin-bottom:11px;
  }
  .sld-consent-settings{
    margin-top:12px;
    padding-top:10px;
  }
  .sld-consent-option{
    padding:10px 0;
    gap:12px;
  }
  .sld-consent-option strong{
    font-size:.98rem;
  }
  .sld-consent-option small{
    font-size:.82rem;
    line-height:1.35;
  }
  .sld-consent-actions{
    gap:8px;
    margin-top:14px;
  }
  .sld-consent .button{
    min-height:44px;
    padding:10px 14px;
    font-size:.92rem;
  }
  .sld-consent-note{
    font-size:.8rem;
    line-height:1.35;
    margin-top:10px;
  }
}

/* Mobile final: expanded settings fit into one phone viewport */
@media(max-width:640px){
  .sld-consent{
    bottom:max(10px,env(safe-area-inset-bottom));
    width:calc(100% - 24px);
    max-height:calc(100dvh - 120px);
    padding:14px 14px 12px;
    border-radius:18px;
    overflow-y:auto;
  }
  .sld-consent h2{
    font-size:1.38rem;
    line-height:1.05;
    margin-bottom:8px;
  }
  .sld-consent p{
    font-size:.82rem;
    line-height:1.32;
    margin-bottom:8px;
  }
  .sld-consent-settings{
    margin-top:9px;
    padding-top:7px;
  }
  .sld-consent-option{
    padding:7px 0;
    gap:9px;
    align-items:center;
  }
  .sld-consent-option strong{
    font-size:.88rem;
    line-height:1.15;
    margin-bottom:2px;
  }
  .sld-consent-option small{
    font-size:.72rem;
    line-height:1.25;
  }
  .sld-switch{
    width:44px;
    height:26px;
  }
  .sld-switch span::after{
    width:20px;
    height:20px;
    left:3px;
    top:3px;
  }
  .sld-switch input:checked + span::after{
    transform:translateX(18px);
  }
  .sld-consent-actions{
    gap:6px;
    margin-top:9px;
  }
  .sld-consent .button{
    min-height:38px;
    padding:7px 12px;
    font-size:.82rem;
    line-height:1.15;
  }
  .sld-consent-note{
    font-size:.7rem;
    line-height:1.25;
    margin-top:7px;
    margin-bottom:0;
  }
}

/* Extra-tight phones / Safari with reduced visible height */
@media(max-width:640px) and (max-height:760px){
  .sld-consent{
    max-height:calc(100dvh - 76px);
    padding:11px 12px 9px;
  }
  .sld-consent h2{font-size:1.24rem;margin-bottom:6px}
  .sld-consent p{font-size:.76rem;line-height:1.25;margin-bottom:6px}
  .sld-consent-settings{margin-top:6px;padding-top:5px}
  .sld-consent-option{padding:5px 0}
  .sld-consent-option strong{font-size:.82rem}
  .sld-consent-option small{font-size:.67rem;line-height:1.2}
  .sld-consent-actions{gap:5px;margin-top:7px}
  .sld-consent .button{min-height:34px;padding:6px 10px;font-size:.77rem}
  .sld-consent-note{font-size:.66rem;margin-top:5px}
}
