/* ElessMelody — cookie banner + Cookie Preferences dialog */
.ec-banner{position:fixed;left:16px;right:16px;bottom:16px;z-index:3500;max-width:1080px;margin:0 auto;
  background:#FFFDFA;color:#16324F;border:1px solid rgba(22,50,79,.12);border-radius:18px;box-shadow:0 24px 60px -30px rgba(10,16,26,.6);
  opacity:0;transform:translateY(12px);transition:opacity .3s ease, transform .3s ease;font-family:inherit;}
.ec-banner.is-on{opacity:1;transform:none;}
.ec-banner[hidden]{display:none;}
.ec-inner{display:flex;align-items:center;gap:24px;padding:20px 24px;}
.ec-copy{flex:1;min-width:0;}
.ec-title{margin:0;font-size:13px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;}
.ec-text{margin:6px 0 0;font-size:14px;line-height:1.55;color:#3E4B5C;}
.ec-text a,.ec-intro a{color:#16324F;text-decoration:underline;text-underline-offset:3px;}
.ec-actions{display:flex;gap:10px;flex-shrink:0;flex-wrap:wrap;}
/* "Accept All" and "Reject Non-Essential" share the same style: refusing is as easy as accepting */
.ec-btn{min-height:46px;padding:0 20px;border-radius:999px;border:1px solid #16324F;background:#FFFDFA;color:#16324F;
  font:inherit;font-size:14px;font-weight:600;cursor:pointer;transition:background .2s, color .2s;}
.ec-btn:hover{background:#16324F;color:#FFFDFA;}
.ec-btn-main{background:#16324F;color:#FFFDFA;}
.ec-btn-main:hover{background:#0F2238;}
.ec-btn:focus-visible,.ec-x:focus-visible,.ec-switch input:focus-visible + span{outline:2px solid #E8622C;outline-offset:2px;}
.ec-modal{position:fixed;inset:0;z-index:3600;display:grid;place-items:center;padding:16px;}
.ec-modal[hidden]{display:none;}
.ec-backdrop{position:absolute;inset:0;background:rgba(10,16,26,.5);}
.ec-dialog{position:relative;width:min(560px,100%);max-height:calc(100vh - 32px);overflow:auto;background:#FFFDFA;color:#16324F;
  border-radius:18px;padding:24px 26px;box-shadow:0 30px 80px -30px rgba(10,16,26,.7);outline:none;font-family:inherit;}
.ec-head{display:flex;align-items:center;justify-content:space-between;gap:12px;}
.ec-head h2{margin:0;font-size:20px;font-weight:600;}
.ec-x{width:40px;height:40px;border-radius:50%;border:0;background:transparent;color:#16324F;font-size:26px;line-height:1;cursor:pointer;}
.ec-x:hover{background:rgba(22,50,79,.07);}
.ec-intro{margin:10px 0 8px;font-size:14px;line-height:1.55;color:#3E4B5C;}
.ec-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 0;border-top:1px solid rgba(22,50,79,.1);}
.ec-row-t{margin:0;font-size:15px;font-weight:600;}
.ec-row-d{margin:2px 0 0;font-size:13px;color:#5C6878;line-height:1.5;}
.ec-always{font-size:12px;font-weight:700;letter-spacing:.06em;color:#5C6878;white-space:nowrap;}
.ec-switch{position:relative;display:inline-block;width:46px;height:26px;flex-shrink:0;cursor:pointer;}
.ec-switch input{position:absolute;inset:0;z-index:1;opacity:0;margin:0;cursor:pointer;}
.ec-switch span[aria-hidden]{position:absolute;inset:0;border-radius:999px;background:#C7CFD9;transition:background .2s;}
.ec-switch span[aria-hidden]::after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;transition:transform .2s;box-shadow:0 1px 3px rgba(0,0,0,.2);}
.ec-switch input:checked + span{background:#E8622C;}
.ec-switch input:checked + span::after{transform:translateX(20px);}
.ec-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;}
.ec-actions-dialog{margin-top:18px;justify-content:flex-end;}
@media (max-width:760px){
  .ec-inner{flex-direction:column;align-items:stretch;gap:14px;padding:18px;}
  .ec-actions{display:grid;grid-template-columns:1fr 1fr;}      /* Reject and Accept side by side, same size */
  .ec-actions .ec-btn-prefs{grid-column:1 / -1;}
  .ec-actions-dialog{display:grid;grid-template-columns:1fr;}
}
@media (prefers-reduced-motion: reduce){.ec-banner{transition:none;}}
