/* Harmony Lights Studio — Cookie Consent styles
   Luxury palette: warm ivory, cream, lavender, champagne gold, warm charcoal.
   Subtle, compact, fully responsive. Never covers the chat bubble (z 9999). */
.hls-consent-banner{
  position:fixed; left:16px; bottom:16px; z-index:9998;
  max-width:400px; width:calc(100% - 32px);
  background:#F5EFE7; color:#1D1A18;
  border:1px solid #C8A66A; border-radius:14px;
  box-shadow:0 12px 40px rgba(29,26,24,.18);
  opacity:0; transform:translateY(12px);
  transition:opacity .3s ease, transform .3s ease;
}
.hls-consent-banner.show{ opacity:1; transform:none; }
.hls-consent-inner{ padding:18px 18px 16px; }
.hls-consent-text{ margin:0 0 12px; font-size:.88rem; line-height:1.55; color:#1D1A18; }
.hls-consent-polink{ color:#8a6d2f; text-decoration:underline; }
.hls-consent-btns{ display:flex; flex-wrap:wrap; gap:8px; }
.hls-consent-btn{
  font-family:inherit; font-size:.85rem; cursor:pointer;
  border-radius:999px; padding:9px 16px;
  transition:background .2s ease, color .2s ease;
}
.hls-consent-btn:focus-visible{ outline:2px solid #C8A66A; outline-offset:2px; }
.hls-consent-accept{ background:#C8A66A; border:1px solid #C8A66A; color:#1D1A18; font-weight:600; }
.hls-consent-accept:hover{ background:#b8955a; }
.hls-consent-reject{ background:transparent; border:1px solid #A99B90; color:#1D1A18; }
.hls-consent-reject:hover{ border-color:#1D1A18; }
.hls-consent-manage{ background:transparent; border:1px solid transparent; color:#8a6d2f; text-decoration:underline; padding:9px 8px; }
.hls-consent-manage:hover{ color:#1D1A18; }

/* preferences modal */
.hls-consent-modalwrap{
  position:fixed; inset:0; z-index:10000;
  background:rgba(29,26,24,.5);
  display:flex; align-items:center; justify-content:center; padding:16px;
}
.hls-consent-modal{
  background:#F5EFE7; color:#1D1A18; border-radius:16px;
  border:1px solid #C8A66A;
  max-width:520px; width:100%; max-height:88vh; overflow:auto;
  padding:24px;
  box-shadow:0 24px 70px rgba(29,26,24,.3);
}
.hls-consent-mtitle{ margin:0 0 8px; font-size:1.35rem; }
.hls-consent-mdesc{ margin:0 0 16px; font-size:.9rem; line-height:1.6; color:#4a423c; }
.hls-consent-row{
  display:flex; align-items:flex-start; justify-content:space-between; gap:14px;
  padding:14px 0; border-top:1px solid #e5d9c8;
}
.hls-consent-rowname{ font-weight:600; font-size:.95rem; margin-bottom:4px; }
.hls-consent-rowdesc{ font-size:.85rem; line-height:1.55; color:#4a423c; }
.hls-always{
  display:inline-block; margin-top:6px; font-size:.75rem; font-weight:600;
  color:#8a6d2f; background:#f3e9d4; border-radius:999px; padding:3px 10px;
}
.hls-consent-mbtns{ margin-top:18px; }

/* toggle switch */
.hls-switch{ position:relative; display:inline-block; width:46px; height:26px; flex-shrink:0; margin-top:2px; }
.hls-switch input{ opacity:0; width:0; height:0; }
.hls-slider{
  position:absolute; inset:0; cursor:pointer; border-radius:999px;
  background:#cfc3b4; transition:background .2s ease;
}
.hls-slider:before{
  content:""; position:absolute; height:20px; width:20px; left:3px; top:3px;
  background:#fff; border-radius:50%; transition:transform .2s ease;
  box-shadow:0 1px 3px rgba(0,0,0,.25);
}
.hls-switch input:checked + .hls-slider{ background:#C8A66A; }
.hls-switch input:checked + .hls-slider:before{ transform:translateX(20px); }
.hls-switch input:disabled + .hls-slider{ background:#C8A66A; opacity:.75; cursor:not-allowed; }
.hls-switch input:focus-visible + .hls-slider{ outline:2px solid #1D1A18; outline-offset:2px; }

/* footer link */
.hls-cookie-prefs-link{
  background:none; border:none; padding:0; cursor:pointer;
  font:inherit; color:inherit; text-decoration:underline;
}
.hls-cookie-prefs-link:hover{ opacity:.8; }
.hls-cookie-prefs-link:focus-visible{ outline:2px solid #C8A66A; outline-offset:2px; }

/* mobile: compact bottom sheet, clear of the chat bubble */
@media (max-width:640px){
  .hls-consent-banner{ left:10px; right:10px; bottom:86px; width:auto; max-width:none; }
  .hls-consent-inner{ padding:14px 14px 12px; }
  .hls-consent-text{ font-size:.82rem; }
  .hls-consent-btn{ font-size:.82rem; padding:8px 13px; }
  .hls-consent-modal{ padding:20px 16px; }
}
