/* YRV privacy controls: isolated from the public theme to avoid footer/modal CSS collisions. */
.yrv-privacy-banner,
.yrv-privacy-modal,
.yrv-privacy-dialog,
.yrv-privacy-banner *,
.yrv-privacy-modal *{box-sizing:border-box}

.yrv-privacy-banner[hidden],
.yrv-privacy-modal[hidden]{display:none!important}

.yrv-privacy-banner{
  position:fixed;
  z-index:2147483000;
  left:max(18px,env(safe-area-inset-left));
  right:max(18px,env(safe-area-inset-right));
  bottom:max(18px,calc(env(safe-area-inset-bottom) + 12px));
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  width:min(1120px,calc(100% - 36px));
  margin:auto;
  padding:18px 20px;
  border:1px solid rgba(166,139,255,.22);
  border-radius:22px;
  background:rgba(10,9,16,.96);
  box-shadow:0 24px 80px rgba(0,0,0,.42);
  backdrop-filter:blur(24px);
  -webkit-backdrop-filter:blur(24px);
  color:#f7f5ff;
  font-family:inherit;
  line-height:1.45;
}
.yrv-privacy-banner-copy{min-width:0}
.yrv-privacy-banner-copy strong{display:block;margin:0 0 5px;font-size:1rem;line-height:1.3;color:#fff}
.yrv-privacy-banner-copy p{margin:0;max-width:700px;color:rgba(247,245,255,.72);font-size:.9rem;line-height:1.5}
.yrv-privacy-banner a,.yrv-privacy-modal a{color:#bdefff;text-decoration:none}
.yrv-privacy-banner a:hover,.yrv-privacy-modal a:hover{text-decoration:underline}
.yrv-privacy-banner-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:9px;flex:0 0 auto}
.yrv-privacy-banner button,.yrv-privacy-dialog button{font:inherit;cursor:pointer}
.yrv-privacy-banner .privacy-primary,
.yrv-privacy-banner .privacy-secondary,
.yrv-privacy-dialog .privacy-primary{
  min-height:42px;
  padding:9px 15px;
  border-radius:12px;
  border:1px solid rgba(255,255,255,.13);
  line-height:1.2;
  white-space:nowrap;
}
.yrv-privacy-banner .privacy-primary,
.yrv-privacy-dialog .privacy-primary{
  border-color:transparent;
  background:linear-gradient(135deg,#8c6cff,#61d5ff);
  color:#07080d;
  font-weight:750;
  box-shadow:0 8px 24px rgba(97,213,255,.12);
}
.yrv-privacy-banner .privacy-secondary{background:rgba(255,255,255,.055);color:#f7f5ff}
.yrv-privacy-banner .privacy-secondary:hover{background:rgba(255,255,255,.09)}

.yrv-privacy-modal{
  position:fixed;
  z-index:2147483001;
  inset:0;
  display:grid;
  place-items:center;
  overflow:auto;
  overscroll-behavior:contain;
  padding:22px;
  background:rgba(0,0,7,.72);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
}
.yrv-privacy-dialog{
  position:relative;
  display:flex;
  flex-direction:column;
  width:min(640px,100%);
  max-height:min(760px,calc(100vh - 44px));
  overflow:hidden;
  border:1px solid rgba(166,139,255,.22);
  border-radius:26px;
  background:linear-gradient(160deg,#14111f,#09090f);
  box-shadow:0 36px 110px rgba(0,0,0,.55);
  color:#f7f5ff;
  font-family:inherit;
  line-height:1.45;
}
@supports(height:100dvh){.yrv-privacy-dialog{max-height:min(760px,calc(100dvh - 44px))}}
.yrv-privacy-dialog>header{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:20px;
  flex:0 0 auto;
  padding:24px 24px 18px;
  border-bottom:1px solid rgba(255,255,255,.08);
  background:transparent;
}
.yrv-privacy-dialog>header span{display:block;margin:0 0 5px;color:#87dbff;font-size:.75rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}
.yrv-privacy-dialog h2{margin:0;color:#fff;font-family:inherit;font-size:clamp(1.35rem,4vw,1.85rem);font-weight:700;line-height:1.15;letter-spacing:-.025em}
.yrv-privacy-dialog>header>button{
  display:grid;
  place-items:center;
  flex:0 0 38px;
  width:38px;
  height:38px;
  margin:0;
  padding:0;
  border:1px solid rgba(255,255,255,.1);
  border-radius:12px;
  background:rgba(255,255,255,.05);
  color:#fff;
  font-size:1.35rem;
  line-height:1;
}
.yrv-privacy-dialog>header>button:hover{background:rgba(255,255,255,.1)}
.yrv-privacy-options{
  display:grid;
  gap:10px;
  min-height:0;
  overflow:auto;
  overscroll-behavior:contain;
  padding:20px 24px;
}
.yrv-privacy-options label{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  min-width:0;
  margin:0;
  padding:16px;
  border:1px solid rgba(255,255,255,.085);
  border-radius:16px;
  background:rgba(255,255,255,.03);
  color:#f7f5ff;
  cursor:pointer;
}
.yrv-privacy-options label.is-locked{opacity:.76;cursor:default}
.yrv-privacy-options label>span{min-width:0}
.yrv-privacy-options strong,.yrv-privacy-options small{display:block}
.yrv-privacy-options strong{color:#fff;font-size:.94rem;line-height:1.35}
.yrv-privacy-options small{margin-top:4px;color:rgba(247,245,255,.62);font-size:.82rem;line-height:1.4}
.yrv-privacy-options input[type="checkbox"]{
  appearance:none!important;
  -webkit-appearance:none!important;
  display:block!important;
  position:relative!important;
  flex:0 0 46px!important;
  width:46px!important;
  min-width:46px!important;
  max-width:46px!important;
  height:26px!important;
  min-height:26px!important;
  max-height:26px!important;
  margin:0!important;
  padding:0!important;
  border:1px solid rgba(255,255,255,.16)!important;
  border-radius:999px!important;
  background:#292b34!important;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.025)!important;
  cursor:pointer;
  outline:none!important;
  vertical-align:middle;
  overflow:hidden;
  transition:background .18s ease,border-color .18s ease,box-shadow .18s ease!important;
}
.yrv-privacy-options input[type="checkbox"]::after{
  content:"";
  position:absolute;
  top:2px;
  left:2px;
  width:20px;
  height:20px;
  margin:0;
  padding:0;
  border:0;
  border-radius:50%;
  background:#f7f8fb;
  box-shadow:0 2px 7px rgba(0,0,0,.32);
  transform:translateX(0);
  transition:transform .18s ease,background .18s ease,box-shadow .18s ease;
}
.yrv-privacy-options input[type="checkbox"]:checked{
  border-color:rgba(112,204,255,.72)!important;
  background:linear-gradient(135deg,#8569ff 0%,#65cfff 100%)!important;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.08),0 0 0 1px rgba(101,207,255,.08)!important;
}
.yrv-privacy-options input[type="checkbox"]:checked::after{
  transform:translateX(20px);
  background:#fff;
}
.yrv-privacy-options input[type="checkbox"]:focus-visible{
  outline:2px solid #87dbff!important;
  outline-offset:3px!important;
}
.yrv-privacy-options input[type="checkbox"]:disabled{
  cursor:default;
  opacity:.82!important;
}
.yrv-privacy-options label.is-locked input[type="checkbox"]:checked{
  border-color:rgba(138,151,176,.38)!important;
  background:#3a3d47!important;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.035)!important;
}
.yrv-privacy-dialog>footer{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  flex:0 0 auto;
  min-height:0;
  padding:18px 24px 24px;
  border-top:1px solid rgba(255,255,255,.06);
  background:rgba(9,9,15,.82);
}
.yrv-privacy-dialog>footer>a{font-size:.86rem}
.privacy-modal-open,.privacy-modal-open body{overflow:hidden!important}

/* The privacy settings entry behaves exactly like the surrounding footer links. */
.footer-main .footer-cookie-settings,
.legal-inline-links .footer-cookie-settings{
  appearance:none;
  -webkit-appearance:none;
  display:block;
  width:fit-content;
  max-width:100%;
  margin:0;
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
  color:var(--muted);
  font:inherit;
  font-size:12px;
  line-height:1.5;
  text-align:left;
  text-decoration:none;
  cursor:pointer;
}
.footer-main .footer-cookie-settings:hover,
.legal-inline-links .footer-cookie-settings:hover{color:var(--text);text-decoration:none}
body.route-home .footer-main .footer-cookie-settings,
body.yrv-legal-page .footer-main .footer-cookie-settings{
  margin:8px 0;
  color:var(--muted);
  font-size:.875rem;
}
body.route-portfolio .footer-main .footer-cookie-settings{
  display:block!important;
  margin:8px 0!important;
  color:var(--muted)!important;
  font-size:.875rem!important;
  text-decoration:none!important;
}
body.route-portfolio .footer-main .footer-cookie-settings:hover{color:var(--text)!important}
body.yrv-legal-page .legal-inline-links .footer-cookie-settings{
  display:inline-flex;
  align-items:center;
  width:auto;
  margin:0;
  color:var(--muted);
  font-size:.84rem;
  line-height:1.4;
}

@media(max-width:760px){
  .yrv-privacy-banner{align-items:stretch;flex-direction:column;gap:14px;padding:17px;border-radius:18px}
  .yrv-privacy-banner-actions{display:grid;grid-template-columns:1fr 1fr;width:100%}
  .yrv-privacy-banner-actions .privacy-primary{grid-column:1/-1;grid-row:1}
  .yrv-privacy-dialog>footer{align-items:stretch;flex-direction:column-reverse}
  .yrv-privacy-dialog>footer .privacy-primary{width:100%}
  .yrv-privacy-dialog>footer>a{text-align:center}
}
@media(max-width:430px){
  .yrv-privacy-banner{left:max(10px,env(safe-area-inset-left));right:max(10px,env(safe-area-inset-right));bottom:max(10px,env(safe-area-inset-bottom));width:calc(100% - 20px)}
  .yrv-privacy-banner-actions{grid-template-columns:1fr}
  .yrv-privacy-banner-actions .privacy-primary{grid-column:auto}
  .yrv-privacy-modal{padding:10px}
  .yrv-privacy-dialog{width:100%;max-height:calc(100vh - 20px);border-radius:20px}
  @supports(height:100dvh){.yrv-privacy-dialog{max-height:calc(100dvh - 20px)}}
  .yrv-privacy-dialog>header{gap:12px;padding:19px 18px 15px}
  .yrv-privacy-options{padding:16px 18px}
  .yrv-privacy-options label{gap:12px;padding:14px}
  .yrv-privacy-dialog>footer{padding:15px 18px 18px}
}
