/* Public theme tokens. Loaded only on the public site. */
.cms-site {
  color: var(--cms-text);
  background: var(--cms-page-bg);
  font-family: var(--cms-font-body) !important;
  font-size: var(--cms-font-size);
  line-height: var(--cms-line-height);
}
.cms-site button,
.cms-site input,
.cms-site select,
.cms-site textarea { font-family: var(--cms-font-body) !important; }
.cms-site h1,
.cms-site h2,
.cms-site h3,
.cms-site h4,
.cms-site h5,
.cms-site h6 { color: var(--cms-panel-title); font-family: var(--cms-font-heading) !important; font-weight: var(--cms-heading-weight); }
.cms-site a { color: var(--cms-link); }
.cms-site a:hover { color: var(--cms-link-hover); }
.cms-site .text-muted { color: var(--cms-muted) !important; }

.cms-site .container { max-width: var(--cms-content-width); }
.cms-site .cms-public-shell {
  padding: calc(clamp(.75rem, 2vw, 1.5rem) * var(--cms-spacing-scale));
  border: var(--cms-border-width) solid var(--cms-border-color);
  border-radius: var(--cms-shell-radius);
  background: var(--cms-container-bg);
  box-shadow: var(--cms-shadow);
}
.cms-site .cms-public-navbar {
  color: var(--cms-nav-text);
  border-color: var(--cms-border-color) !important;
  background: var(--cms-nav-bg) !important;
}
.cms-site .cms-public-navbar .navbar-brand,
.cms-site .cms-public-navbar .nav-link { color: var(--cms-nav-text); }
.cms-site .cms-public-navbar .nav-link:hover,
.cms-site .cms-public-navbar .nav-link.active { color: var(--cms-primary-dark); background: color-mix(in srgb, var(--cms-primary) 12%, transparent); }
.cms-site.cms-nav-transparent .cms-public-navbar { background: color-mix(in srgb, var(--cms-nav-bg) 82%, transparent) !important; backdrop-filter: blur(14px); }
.cms-site.cms-nav-accent .cms-public-navbar { background: var(--cms-primary) !important; }
.cms-site.cms-nav-accent .cms-public-navbar .navbar-brand,
.cms-site.cms-nav-accent .cms-public-navbar .nav-link { color: #fff; }
.cms-site.cms-nav-accent .cms-public-navbar .nav-link:hover,
.cms-site.cms-nav-accent .cms-public-navbar .nav-link.active { color: #fff; background: rgba(255,255,255,.16); }

.cms-site .cms-public-header { border: var(--cms-border-width) solid var(--cms-border-color); background: var(--cms-header-bg); }
.cms-site .cms-public-title { color: var(--cms-header-title); }
.cms-site .cms-public-subtitle { color: var(--cms-header-subtitle); }
.cms-site.cms-header-center .cms-public-header > .row { text-align: center; }
.cms-site.cms-header-center .cms-public-header > .row > .col { text-align: center !important; }

.cms-site .cms-public-tools,
.cms-site .cms-event-calendar { border: var(--cms-border-width) solid var(--cms-border-color); background: var(--cms-surface-alt); }
.cms-site .cms-event-card,
.cms-site .cms-media-box { border-color: var(--cms-border-color); background: var(--cms-surface); }
.cms-site .cms-event-date { background: var(--cms-primary); }
.cms-site .form-control,
.cms-site .input-group-text { color: var(--cms-text); border-color: var(--cms-border-color); background: var(--cms-surface); }
.cms-site .form-control:focus { border-color: var(--cms-primary); box-shadow: 0 0 0 .2rem color-mix(in srgb, var(--cms-primary) 18%, transparent); }

.cms-site .cms-public-article,
.cms-site .cms-public-sidebar .card {
  border: var(--cms-border-width) solid var(--cms-border-color);
  border-radius: var(--cms-panel-radius);
  background: var(--cms-panel-bg);
}
.cms-site .cms-public-article h2,
.cms-site .cms-public-sidebar .card-header { color: var(--cms-panel-title); }
.cms-site .cms-public-sidebar .card-header { border-color: var(--cms-border-color); background: var(--cms-sidebar-header-bg); color: var(--cms-sidebar-header-text); }
.cms-site .cms-public-sidebar .list-group-item { color: var(--cms-text); border-color: var(--cms-border-color); background: var(--cms-surface); }
.cms-site .cms-public-sidebar .list-group-item:hover { background: var(--cms-surface-alt); }
.cms-site .cms-public-sidebar .list-group-item.active { color: #fff; border-color: var(--cms-primary); background: var(--cms-primary); }
.cms-site.cms-panels-flat .cms-public-article,
.cms-site.cms-panels-flat .cms-public-sidebar .card { border-color: transparent; box-shadow: none; }
.cms-site.cms-panels-bordered .cms-public-article,
.cms-site.cms-panels-bordered .cms-public-sidebar .card { box-shadow: none; }
.cms-site.cms-panels-elevated .cms-public-article,
.cms-site.cms-panels-elevated .cms-public-sidebar .card { box-shadow: var(--cms-shadow); }

.cms-site .cms-article-gallery img { border-radius: var(--cms-image-radius) !important; }
.cms-site .btn { border-radius: var(--cms-button-radius); }
.cms-site .btn-primary { border-color: var(--cms-primary); background: var(--cms-primary); }
.cms-site .btn-primary:hover { border-color: var(--cms-primary-dark); background: var(--cms-primary-dark); }
.cms-site .btn-outline-primary { color: var(--cms-primary) !important; border-color: var(--cms-primary); }
.cms-site .btn-outline-primary:hover { color: #fff !important; background: var(--cms-primary); }
.cms-site .page-link { color: var(--cms-primary-dark); border-color: var(--cms-border-color); background: var(--cms-surface); }
.cms-site .page-item.active .page-link { color: #fff; border-color: var(--cms-primary); background: var(--cms-primary); }

.cms-site .cms-footer { color: var(--cms-footer-text); border-color: var(--cms-border-color) !important; background: var(--cms-footer-bg); }
.cms-site .cms-footer h1,
.cms-site .cms-footer h2,
.cms-site .cms-footer h3,
.cms-site .cms-footer h4,
.cms-site .cms-footer h5,
.cms-site .cms-footer h6 { color: var(--cms-footer-text); }

@media (max-width: 767.98px) {
  .cms-site .cms-public-shell { width: calc(100% - 1rem); padding: calc(.65rem * var(--cms-spacing-scale)); }
  .cms-site .cms-public-navbar .container { max-width: 100%; }
}
