/* ============================================================
   Admin — Image picker (reusable component)
   ============================================================ */
.pc-imgfield-preview img { display: block; }
.pc-imgfield-file { padding: .35rem .5rem; font-size: .85rem; }
.pc-imgfield-status.is-error { color: #dc3545; }
.pc-imgfield-status.is-success { color: #198754; }

.pc-imgfield-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
  gap: 12px;
}
.pc-imgfield-grid .pc-imgfield-tile {
  position: relative;
  border-radius: 8px;
  overflow: hidden;
  cursor: pointer;
  background: #F5F7FB;
  aspect-ratio: 4/3;
  border: 2px solid transparent;
  transition: border-color .15s ease, transform .15s ease;
}
.pc-imgfield-grid .pc-imgfield-tile:hover { border-color: var(--pc-gold); transform: translateY(-1px); }
.pc-imgfield-grid .pc-imgfield-tile img { width: 100%; height: 100%; object-fit: cover; display: block; }
.pc-imgfield-grid .pc-imgfield-tile .pc-imgfield-tile-name {
  position: absolute; left: 0; right: 0; bottom: 0;
  background: linear-gradient(0deg, rgba(0,0,0,.7), rgba(0,0,0,0));
  color: #fff; font-size: .65rem; padding: 14px 8px 6px;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
  opacity: 0; transition: opacity .15s ease;
}
.pc-imgfield-grid .pc-imgfield-tile:hover .pc-imgfield-tile-name { opacity: 1; }


/* ============================================================
   Error pages (404, 500, etc.)
   ============================================================ */
.pc-error-page {
  padding: 80px 0;
  min-height: 60vh;
  display: flex;
  align-items: center;
}
.pc-error-title {
  font-family: var(--pc-font-heading);
  font-weight: 800;
  font-size: clamp(2rem, 4vw, 3rem);
  color: var(--pc-primary, #1D5036);
  margin: 0 0 14px;
  line-height: 1.15;
}
.pc-error-lead {
  color: #4a5b75;
  font-size: 1.05rem;
  max-width: 540px;
}
.pc-error-card {
  background: #fff;
  border-radius: 14px;
  box-shadow: var(--pc-shadow);
  padding: 28px;
  border-top: 4px solid var(--pc-secondary, #CDAF68);
}
.pc-error-links {
  list-style: none;
  padding: 0;
  margin: 0;
}
.pc-error-links li { margin-bottom: 10px; }
.pc-error-links a {
  color: var(--pc-primary, #1D5036);
  text-decoration: none;
  font-weight: 500;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.pc-error-links a:hover {   color: var(--pc-primary-dark, #153D29); }
.pc-error-links i { color: var(--pc-secondary, #CDAF68); font-size: .9em; }

/* ============================================================
   Back-to-top button
   ============================================================ */
.pc-back-to-top {
  position: fixed;
  right: 20px;
  bottom: 96px;
  z-index: 1040;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: var(--pc-primary, #1D5036);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 0;
  box-shadow: 0 4px 14px rgba(var(--bs-primary-rgb),.3);
  opacity: 0;
  transform: translateY(10px);
  pointer-events: none;
  transition: opacity .25s ease, transform .25s ease, background .2s ease;
  cursor: pointer;
}
.pc-back-to-top.is-visible { opacity: 1; transform: translateY(0); pointer-events: auto; }
.pc-back-to-top:hover { background: var(--pc-primary-dark, #153D29); }
@media (max-width: 575.98px) { .pc-back-to-top { right: 14px; bottom: 84px; } }

/* ============================================================
   Print stylesheet — strip chrome and present content clearly
   ============================================================ */
@media print {
  .pc-topbar, .pc-header, .pc-mobile-bar, .pc-wa-float,
  .pc-cookie-banner, .pc-back-to-top, .pc-hero-arrow,
  .pc-hero-dots, .pc-final-cta, .pc-disclaimer,
  .pc-admin-sidebar, .pc-admin-topbar, .pc-breadcrumb,
  footer.pc-footer, .pc-footer { display: none !important; }
  body { background: #fff !important; color: #000 !important; }
  a { color: #000 !important; text-decoration: underline !important; }
  a[href^="http"]::after { content: " (" attr(href) ")"; font-size: 90%; }
  .pc-section { padding: 12mm 0 !important; }
  h1, h2, h3 { color: #000 !important; page-break-after: avoid; }
  .pc-article img, .pc-content img { max-width: 100% !important; page-break-inside: avoid; }
  .pc-callout { border: 1px solid #000; background: #fff !important; color: #000 !important; }
  .pc-callout h3, .pc-callout p, .pc-callout li { color: #000 !important; }
}
