/* Shared presentation for public pages that do not have a bespoke page layout. */
.public-site {
  --site-panel: #0d1317;
  --site-panel-raised: #11191f;
  --site-line: #27323a;
  --site-muted: #9fa8af;
  --site-red-soft: rgba(224, 25, 32, .14);
}

.public-site .site-main > h1,
.public-site .site-main > .d-flex h1 {
  font-size: clamp(2rem, 4.5vw, 3.65rem);
  font-weight: 800;
  letter-spacing: -.035em;
  line-height: .98;
  text-transform: uppercase;
}

.public-site .site-main > h1::before,
.public-site .site-main > .d-flex h1::before {
  content: "PRL / ";
  display: block;
  margin-bottom: .55rem;
  color: var(--prl-red);
  font-size: .74rem;
  font-weight: 700;
  letter-spacing: .11em;
}

.public-site .site-main h2,
.public-site .site-main h3 {
  font-weight: 700;
}

.public-site .site-main > section > h2,
.public-site .site-main > h2,
.public-site .site-main section > .d-flex h2 {
  text-transform: uppercase;
  letter-spacing: .025em;
}

.public-site .card,
.public-site .site-main > .table-responsive,
.public-site .site-main > section > .table-responsive,
.public-site .site-main > section > .card,
.public-site .site-main > .row > [class*="col"] > .card {
  background: linear-gradient(135deg, var(--site-panel-raised), var(--site-panel));
  border: 1px solid var(--site-line);
  border-radius: .4rem;
  box-shadow: 0 14px 35px rgba(0, 0, 0, .14);
}

.public-site .site-main > .table-responsive,
.public-site .site-main > section > .table-responsive {
  overflow: auto;
}

.public-site .site-main > .table-responsive .table,
.public-site .site-main > section > .table-responsive .table {
  margin-bottom: 0;
}

.public-site .table > thead > tr > th {
  padding: .7rem .85rem;
  border-bottom: 1px solid #36424b;
  color: var(--site-muted);
  font-size: .7rem;
  font-weight: 700;
  letter-spacing: .055em;
  text-transform: uppercase;
  white-space: nowrap;
}

.public-site .table > tbody > tr > td {
  padding: .7rem .85rem;
  border-color: #202a31;
}

.public-site .table-striped > tbody > tr:nth-of-type(odd) > * {
  --bs-table-bg-type: rgba(255, 255, 255, .025);
}

.public-site .table > tbody > tr:hover > * {
  --bs-table-bg-state: rgba(255, 255, 255, .04);
}

.public-site .table a:not(.btn) {
  color: #fff;
  font-weight: 700;
  text-decoration: none;
}

.public-site .table a:not(.btn):hover { color: #ff555a; }

.public-site .btn {
  border-radius: .22rem;
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .035em;
  text-transform: uppercase;
}

.public-site .btn-primary,
.public-site .btn-danger {
  --bs-btn-bg: var(--prl-red);
  --bs-btn-border-color: var(--prl-red);
  --bs-btn-hover-bg: #f02a31;
  --bs-btn-hover-border-color: #f02a31;
  --bs-btn-active-bg: #bd1117;
  --bs-btn-active-border-color: #bd1117;
}

.public-site .btn-outline-primary {
  --bs-btn-color: #d9dde0;
  --bs-btn-border-color: #46525b;
  --bs-btn-hover-bg: var(--site-red-soft);
  --bs-btn-hover-border-color: var(--prl-red);
}

.public-site .form-control,
.public-site .form-select {
  border-color: #34414a;
  border-radius: .25rem;
  background-color: #0b1014;
}

.public-site .form-control:focus,
.public-site .form-select:focus {
  border-color: var(--prl-red);
  box-shadow: 0 0 0 .2rem rgba(224, 25, 32, .16);
}

.public-site .pagination { gap: .25rem; margin-top: 1rem; }
.public-site .page-link {
  min-width: 2.25rem;
  border: 1px solid var(--site-line);
  border-radius: .2rem !important;
  background: var(--site-panel);
  color: #d9dde0;
  text-align: center;
}
.public-site .active > .page-link,
.public-site .page-link:hover {
  border-color: var(--prl-red);
  background: var(--prl-red);
  color: #fff;
}

.public-site .accordion-button { font-weight: 700; }
.public-site .accordion-button:not(.collapsed) {
  background: var(--site-red-soft);
  color: #fff;
  box-shadow: inset 3px 0 var(--prl-red);
}

.public-site dl.row {
  padding: 1rem;
  border: 1px solid var(--site-line);
  border-radius: .4rem;
  background: var(--site-panel);
}
.public-site dl.row dt {
  color: var(--site-muted);
  font-size: .72rem;
  letter-spacing: .05em;
  text-transform: uppercase;
}

.public-site .badge { letter-spacing: .025em; }
.public-site .alert { border-radius: .3rem; }

@media (max-width: 767px) {
  .public-site .site-main { padding-top: 1.25rem !important; }
  .public-site .site-main > h1,
  .public-site .site-main > .d-flex h1 { font-size: 2.15rem; }
  .public-site .table > thead > tr > th,
  .public-site .table > tbody > tr > td { padding: .58rem .65rem; }
  .public-site .site-main > .d-flex:has(h1) { align-items: flex-start !important; }
}
