body[data-age-gate-pending] { overflow: hidden; }
body[data-age-gate-pending] > main { visibility: hidden; }
.cvAgeGate[open] {
  position: fixed; inset: 0; margin: auto;
  width: min(540px, calc(100% - 32px)); height: fit-content;
  max-height: calc(100vh - 32px); max-height: calc(100dvh - 32px);
  overflow-y: auto; padding: 38px;
  border: 1px solid rgba(223,183,118,.5); border-radius: 20px;
  background: radial-gradient(ellipse at top, #57361f, #21140d 70%);
  color: #f4e5cf; font-family: Arial, Helvetica, sans-serif;
  text-align: center; box-sizing: border-box;
  box-shadow: 0 18px 70px rgba(0,0,0,.4);
}
.cvAgeGate::backdrop { background: rgba(20,12,8,.97); }
.cvAgeBrand { display: block; color: #e7bd78; font: italic 26px/1.4 Georgia, serif; }
.cvAgeGate h1, .cvAgeGate h2 { margin: 24px 0 16px; color: #f2d7aa; font: 400 34px/1.2 Georgia, serif; }
.cvAgeGate p { color: #e5d6c3; font-size: 16px; line-height: 1.6; }
.cvAgeActions { display: grid; gap: 12px; margin-top: 26px; }
.cvAgeActions button, .cvAgeLeave {
  display: block; padding: 14px 18px; min-height: 48px;
  border: 1px solid #c99e63; border-radius: 10px;
  background: transparent; color: #f2dfbf;
  font: 700 15px/1.4 Arial, sans-serif;
  cursor: pointer; text-decoration: none; overflow-wrap: anywhere;
}
#cvAgeYes { background: linear-gradient(135deg, #e2bc7d, #b47741); color: #24170d; }
.cvAgeGate button:hover, .cvAgeLeave:hover { filter: brightness(1.12); }
.cvAgeLegal { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px 24px; margin-top: 24px; }
.cvAgeLegal a { padding: 8px 0; color: #cdb798; font-size: 13px; text-decoration: underline; }
.cvAgeGate :focus-visible { outline: 3px solid #f8d99e; outline-offset: 4px; }
.cvAgeGate [hidden] { display: none; }
@media (max-width:600px) {
  .cvAgeGate[open] { padding: 28px 22px; }
  .cvAgeGate h1, .cvAgeGate h2 { font-size: 29px; }
}