/* the hidden attribute must beat the display rules below, or the modal/button show permanently */
#nredCookie[hidden], #nredCookiePrefs[hidden], #nredCookieReopen[hidden]{ display:none !important; }
.nc-banner{ position:fixed; inset:auto 0 0 0; z-index:9990; padding:0 1rem 1rem; }
.nc-banner-in{ max-width:var(--maxw,1180px); margin:0 auto; background:var(--surface,#fff); border:1px solid var(--border-light,#eee); box-shadow:var(--shadow-lg,0 24px 56px rgba(0,0,0,.16)); border-radius:var(--radius,1.1rem); padding:1.1rem 1.35rem; display:flex; align-items:center; gap:1.25rem; flex-wrap:wrap; }
.nc-banner-txt{ flex:1; min-width:260px; font-size:.86rem; line-height:1.6; color:var(--text-mid,#555); }
.nc-banner-txt strong{ display:block; color:var(--text,#1a1310); font-size:.95rem; margin-bottom:.2rem; }
.nc-banner-txt a{ color:var(--primary,#a81f18); font-weight:600; text-decoration:none; }
.nc-banner-btns{ display:flex; gap:.55rem; flex-shrink:0; flex-wrap:wrap; }
.nc-btn{ border-radius:980px; font-weight:700; padding:.6rem 1.3rem; font-size:.86rem; cursor:pointer; border:1px solid transparent; font-family:inherit; transition:transform .15s,background .15s,border-color .15s; white-space:nowrap; }
.nc-btn.solid{ background:var(--primary,#a81f18); color:#fff; box-shadow:var(--shadow-red,0 14px 34px rgba(168,31,24,.22)); }
.nc-btn.solid:hover{ background:var(--primary-dark,#861913); transform:translateY(-1px); }
.nc-btn.ghost{ background:var(--surface-low,#f6f4f3); color:var(--text-mid,#555); border-color:var(--border,#e2dcd8); }
.nc-btn.ghost:hover{ background:var(--surface-mid,#efeceb); }

.nc-overlay{ position:fixed; inset:0; z-index:9995; background:rgba(20,10,10,.5); display:flex; align-items:center; justify-content:center; padding:1.2rem; }
.nc-modal{ background:var(--surface,#fff); width:100%; max-width:560px; max-height:88vh; display:flex; flex-direction:column; border-radius:1.1rem; box-shadow:0 30px 80px rgba(0,0,0,.35); overflow:hidden; animation:ncPop .2s ease; }
@keyframes ncPop{ from{opacity:0;transform:translateY(14px)} to{opacity:1;transform:none} }
.nc-head{ display:flex; justify-content:space-between; align-items:center; padding:1.1rem 1.35rem; border-bottom:1px solid var(--border-light,#f0e6e4); font-weight:800; font-size:1.1rem; color:var(--text,#1a1310); }
.nc-x{ background:none; border:none; font-size:1.05rem; cursor:pointer; color:#999; line-height:1; }
.nc-body{ padding:1.1rem 1.35rem; overflow:auto; }
.nc-intro{ font-size:.85rem; color:var(--text-mid,#555); line-height:1.6; margin:0 0 1rem; }
.nc-cat{ border-top:1px solid var(--border-light,#f0e6e4); padding:.9rem 0; }
.nc-cat-h{ display:flex; justify-content:space-between; align-items:center; }
.nc-cat-t{ font-weight:700; color:var(--text,#1a1310); font-size:.95rem; }
.nc-cat-d{ font-size:.82rem; color:var(--text-mid,#666); line-height:1.55; margin:.35rem 0 0; }
.nc-always{ color:#16a34a; font-weight:700; font-size:.8rem; }
.nc-sw{ position:relative; display:inline-block; width:46px; height:26px; flex-shrink:0; }
.nc-sw input{ opacity:0; width:0; height:0; }
.nc-slider{ position:absolute; inset:0; background:#cfc7c4; border-radius:999px; transition:.2s; cursor:pointer; }
.nc-slider:before{ content:""; position:absolute; height:20px; width:20px; right:3px; top:3px; background:#fff; border-radius:50%; transition:.2s; box-shadow:0 1px 3px rgba(0,0,0,.3); }
.nc-sw input:checked + .nc-slider{ background:var(--primary,#a81f18); }
.nc-sw input:checked + .nc-slider:before{ transform:translateX(-20px); }
.nc-foot{ display:flex; gap:.55rem; justify-content:flex-start; flex-wrap:wrap; padding:1rem 1.35rem; border-top:1px solid var(--border-light,#f0e6e4); }
.nc-reopen{ position:fixed; left:0; top:calc(50% + 92px); z-index:897; width:56px; height:54px; border-radius:0 999px 999px 0; padding-inline-start:5px; border:none; background:var(--surface,#fff); box-shadow:3px 5px 16px rgba(0,0,0,.18); font-size:1.35rem; cursor:pointer; line-height:1; display:flex; align-items:center; justify-content:center; transition:transform .15s; }
.nc-reopen:hover{ transform:translateX(3px); }
@media(max-width:600px){ .nc-reopen{ width:50px; height:48px; top:calc(50% + 84px); } .nc-banner-btns{ width:100%; } .nc-btn{ flex:1; } }
