/* Shared compliance UI: under-construction notice, cookie-consent dialog,
   footer legal nav. Loaded by every page. No third-party anything. */

/* --- Skip-to-content link (first focusable element on every page) --- */
.pn-skip{
  position:absolute;
  left:-9999px;
  top:0;
  z-index:10000;
  background:#1F2933;
  color:#fff;
  font-weight:700;
  padding:14px 22px;
  border-radius:0 0 12px 0;
  text-decoration:underline;
}
.pn-skip:focus{
  left:0;
  outline:3px solid #FFC53D;
  outline-offset:-3px;
}

/* --- Under-construction notice bar --- */
.pn-uc{
  background:#FFC53D;
  color:#1F2933;
  border-bottom:3px solid #1F2933;
  padding:12px 20px;
  text-align:center;
  font-size:1rem;
  line-height:1.45;
}

/* --- Footer legal nav --- */
.pn-legal{
  margin-top:18px;
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  align-items:center;
  gap:2px 10px;
}
.pn-legal a,
.pn-legal button{
  font:inherit;
  font-size:.95rem;
  color:inherit;
  background:none;
  border:0;
  cursor:pointer;
  text-decoration:underline;
  text-underline-offset:3px;
  padding:12px 6px; /* keeps the touch target ≥44px tall */
  display:inline-block;
}
.pn-legal a:focus-visible,
.pn-legal button:focus-visible{
  outline:2px solid currentColor;
  outline-offset:2px;
  border-radius:6px;
}

/* --- Cookie consent dialog --- */
.pn-consent{
  position:fixed;
  left:50%;
  bottom:16px;
  transform:translateX(-50%);
  width:min(720px, calc(100vw - 24px));
  background:#fff;
  color:#1F2933;
  border:3px solid #1F2933;
  border-radius:18px;
  box-shadow:0 12px 40px rgba(31,41,51,.28);
  padding:20px 22px;
  z-index:9999;
  font-size:1rem;
  line-height:1.5;
}
.pn-consent h2{
  margin:0 0 8px;
  font-size:1.15rem;
}
.pn-consent p{margin:0 0 14px;}
.pn-consent .pn-consent-actions{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  align-items:center;
}
.pn-consent .pn-btn{
  font:inherit;
  font-weight:700;
  min-height:44px;
  padding:10px 22px;
  border-radius:999px;
  border:3px solid #1F2933;
  background:#1F2933;
  color:#fff;
  cursor:pointer;
}
.pn-consent .pn-btn-ghost{
  background:#fff;
  color:#1F2933;
  font-weight:600;
}
.pn-consent .pn-btn:focus-visible,
.pn-consent input:focus-visible,
.pn-consent a:focus-visible{
  outline:2px solid #1F2933;
  outline-offset:2px;
}
.pn-consent .pn-consent-panel{
  margin:14px 0 4px;
  border-top:2px solid #E3E8EE;
  padding-top:12px;
}
.pn-consent .pn-consent-panel[hidden]{display:none;}
.pn-consent .pn-cat{
  display:flex;
  align-items:flex-start;
  gap:10px;
  padding:8px 0;
}
.pn-consent .pn-cat input{
  width:22px;
  height:22px;
  margin-top:2px;
  accent-color:#1F2933;
  flex:none;
}
.pn-consent .pn-cat .pn-cat-name{font-weight:700;}
.pn-consent .pn-cat .pn-cat-desc{
  display:block;
  font-size:.92rem;
  color:#3E4C59;
}
.pn-consent .pn-consent-note{
  font-size:.92rem;
  color:#3E4C59;
  margin-top:10px;
}
.pn-consent a{color:inherit;}
@media (max-width:520px){
  .pn-consent{padding:16px;}
  .pn-consent .pn-btn{flex:1 1 auto;}
}
@media (prefers-reduced-motion: reduce){
  .pn-consent, .pn-uc{transition:none !important; animation:none !important;}
}
