.site-access-lock{
  overflow:hidden !important;
}

.site-access-overlay{
  position:fixed;
  inset:0;
  z-index:12000;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:1.25rem;
  background:rgba(20,9,14,.72);
  backdrop-filter:blur(16px);
}

.site-access-card{
  width:min(100%,540px);
  background:rgba(253,246,240,.98);
  border:1px solid rgba(232,213,200,.95);
  box-shadow:0 24px 80px rgba(42,14,22,.28);
  padding:1.6rem 1.5rem;
  color:#2a1520;
}

.site-access-eyebrow{
  font-size:.54rem;
  letter-spacing:.28em;
  text-transform:uppercase;
  color:#c45272;
  margin-bottom:.9rem;
}

.site-access-title{
  font-family:'Cormorant Garamond',serif;
  font-size:clamp(2rem,5vw,3rem);
  font-weight:300;
  line-height:1.02;
  margin-bottom:.75rem;
  color:#2a0e16;
}

.site-access-copy{
  font-size:.76rem;
  line-height:1.9;
  color:#6f5661;
}

.site-access-list{
  list-style:none;
  margin:1rem 0 0;
  display:grid;
  gap:.6rem;
}

.site-access-list li{
  font-size:.68rem;
  line-height:1.8;
  color:#84606d;
  padding-left:1.1rem;
  position:relative;
}

.site-access-list li::before{
  content:'•';
  position:absolute;
  left:0;
  color:#c45272;
}

.site-access-actions{
  margin-top:1.35rem;
  display:flex;
  gap:.75rem;
  flex-wrap:wrap;
}

.site-access-btn{
  border:1px solid #e8d5c8;
  background:#fff8f4;
  color:#2a1520;
  min-height:46px;
  padding:.9rem 1.15rem;
  font:inherit;
  font-size:.62rem;
  letter-spacing:.2em;
  text-transform:uppercase;
  cursor:pointer;
  transition:background .25s,border-color .25s,color .25s,transform .2s;
}

.site-access-btn:hover{
  transform:translateY(-1px);
}

.site-access-btn-primary{
  background:#c45272;
  border-color:#c45272;
  color:#fff;
}

.site-access-btn-primary:hover{
  background:#6b1a2a;
  border-color:#6b1a2a;
}

.site-access-btn-secondary:hover{
  border-color:#c45272;
  color:#c45272;
}

.cookie-banner{
  position:fixed;
  left:1rem;
  right:1rem;
  bottom:1rem;
  z-index:11950;
  display:flex;
  justify-content:center;
  pointer-events:none;
}

.cookie-banner-panel{
  width:min(100%,760px);
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:1rem;
  align-items:center;
  background:rgba(253,246,240,.98);
  border:1px solid rgba(232,213,200,.95);
  box-shadow:0 20px 60px rgba(42,14,22,.2);
  padding:1rem 1.1rem;
  pointer-events:auto;
}

.cookie-banner-copy{
  min-width:0;
}

.cookie-banner-title{
  font-size:.58rem;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:#c45272;
  margin-bottom:.35rem;
}

.cookie-banner-text{
  font-size:.72rem;
  line-height:1.8;
  color:#6f5661;
}

.cookie-banner-text a{
  color:#c45272;
}

.cookie-banner-actions{
  display:flex;
  gap:.65rem;
  flex-wrap:wrap;
  justify-content:flex-end;
}

html[data-theme="dark"] .site-access-card,
html[data-theme="dark"] .cookie-banner-panel{
  background:rgba(26,17,24,.98);
  border-color:rgba(58,37,53,.95);
  box-shadow:0 24px 80px rgba(0,0,0,.36);
}

html[data-theme="dark"] .site-access-title{
  color:#f5e8ee;
}

html[data-theme="dark"] .site-access-copy,
html[data-theme="dark"] .site-access-list li,
html[data-theme="dark"] .cookie-banner-text{
  color:#c4a0b4;
}

html[data-theme="dark"] .site-access-btn,
html[data-theme="dark"] .site-access-btn-secondary{
  background:#24141d;
  border-color:#3a2535;
  color:#f0e0e8;
}

html[data-theme="dark"] .site-access-btn-secondary:hover{
  border-color:#e06080;
  color:#ffe3ea;
}

html[data-theme="dark"] .site-access-btn-primary{
  background:#e06080;
  border-color:#e06080;
  color:#fff;
}

html[data-theme="dark"] .site-access-btn-primary:hover{
  background:#c45272;
  border-color:#c45272;
}

@media(max-width:640px){
  .site-access-overlay{
    align-items:flex-end;
    padding:.75rem;
  }

  .site-access-card{
    width:100%;
    padding:1.25rem 1rem;
  }

  .site-access-actions,
  .cookie-banner-actions{
    flex-direction:column;
  }

  .site-access-btn,
  .cookie-banner-actions .site-access-btn{
    width:100%;
  }

  .cookie-banner{
    left:.75rem;
    right:.75rem;
    bottom:.75rem;
  }

  .cookie-banner-panel{
    grid-template-columns:1fr;
    padding:.95rem;
  }
}
