/* Clean reconstruction of the observed public template, not copied Joomla CSS.
   Artwork is not imported: the text mark and labelled banner remain placeholders.
   Admin/sign-in never load these scoped styles. No external assets or scripts. */
.public-site {
  --board-blue: #0081c3;
  --board-navy: #0b3161;
  --board-yellow: #ffdd30;
  --board-width: 58.75rem;
  min-height: 100vh;
  min-height: 100dvh;
  display: flex;
  flex-direction: column;
  color: #202020;
  font-family: "Century Gothic", CenturyGothic, Helvetica, Arial, sans-serif;
  background-color: #00a8dc;
  background-image: linear-gradient(158deg, transparent 12%, #65d2ed66 12.1%, transparent 35%),
    linear-gradient(195deg, #0064a8bb 0, transparent 35%),
    linear-gradient(25deg, transparent 55%, #b6f0fa33 55.1%, transparent 72%);
  background-size: 100% 60rem;
  background-repeat: no-repeat;
}
.public-site .masthead, .public-site .public-banner, .public-site .preview-banner, .public-site .site-footer { flex: none; }
.public-site .masthead { background: transparent; border: 0; box-shadow: none; }
.public-site .brand { max-width: var(--board-width); padding: 1.5rem 1rem 1rem; justify-content: center; }
.public-site .brand-home { display: flex; flex-direction: column; align-items: center; gap: .65rem; width: 100%; color: #fff; text-align: center; text-decoration: none; }
.public-site .brand-mark { flex: none; width: 8rem; height: 8rem; padding: .75rem; border-radius: 50%; background: #ffe78d; color: var(--board-navy); border: .25rem solid #fff; box-shadow: 0 1px 5px #002d5b66; font-size: 1.5rem; overflow-wrap: anywhere; line-height: 1.2; }
.public-site .brand-mark span { max-width: 100%; }
.public-site .brand-mark-long { font-size: .95rem; }
.public-site .public-logo { display: block; width: 100%; height: auto; max-width: 100%; max-height: 12.25rem; object-fit: contain; }
.public-site .public-board-photo { display: block; width: 100%; height: auto; background: #e7f0f4; }
.public-site .brand-title { color: #fff; font-family: Georgia, "Times New Roman", serif; font-size: clamp(1.4rem, 3vw, 2.35rem); font-weight: 700; line-height: 1.2; overflow-wrap: anywhere; text-shadow: 1px 2px 3px #00304e; }
.public-site .brand-home:hover .brand-title { text-decoration: underline; text-underline-offset: .15em; }
.public-site .topnav { max-width: var(--board-width); margin: 0 auto; background: var(--board-yellow); color: #111; }
.public-site .topnav-inner { max-width: none; padding: 0; display: block; }
.public-site .primary-links { display: flex; flex-wrap: wrap; list-style: none; margin: 0; padding: 0; }
.public-site .primary-links li { min-width: 0; max-width: 100%; }
.public-site .topnav a { display: block; height: 100%; color: #111; font-weight: 700; font-size: .875rem; line-height: 1.6; padding: .55rem .65rem; overflow-wrap: anywhere; }
.public-site .topnav a:hover { background: var(--board-navy); color: #fff; text-decoration: underline; }
.public-site .topnav a[aria-current="page"] { background: #fff1a4; text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: .2em; }
.public-site .topnav a[aria-current="page"]:hover { background: var(--board-navy); color: #fff; }
.public-site .external-mark { font-size: .85em; }
.public-site .visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
.public-site .public-banner { width: 100%; max-width: var(--board-width); margin: 0 auto; }
.public-site .banner-placeholder { width: 100%; min-width: 0; aspect-ratio: 3 / 2; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .5rem; padding: 2rem 1rem; background: #e7f0f4; color: #344b5e; text-align: center; border: 1px solid #c3d6df; }
.public-site .placeholder-frame { width: 4rem; height: 3rem; border: 2px solid #718c9b; border-radius: .2rem; background: linear-gradient(145deg, transparent 49%, #b6cbd6 50%, #b6cbd6 62%, transparent 63%); }
.public-site .placeholder-title { font-size: clamp(1.25rem, 3vw, 1.75rem); margin: .5rem 0 0; }
.public-site .placeholder-note { margin: 0; font-size: .9rem; }
.public-site .banner-divider { height: 2.5rem; background: var(--board-blue); }
.public-site .container { flex: 1 0 auto; width: 100%; max-width: var(--board-width); margin: 0 auto; padding: 1.75rem 1.25rem 3rem; background: #fff; min-height: 22rem; }
.public-site .panel { border: 0; border-radius: 0; padding: 0; box-shadow: none; }
.public-site .breadcrumbs { margin: 0 0 1rem; font-size: .875rem; color: #344b5e; }
.public-site .breadcrumbs ol { display: flex; flex-wrap: wrap; gap: .35rem .5rem; list-style: none; padding: 0; margin: 0; }
.public-site .breadcrumbs li { display: flex; align-items: baseline; gap: .5rem; min-width: 0; }
.public-site .breadcrumbs li:last-child { flex: 1 1 12rem; }
.public-site .breadcrumbs [aria-current] { min-width: 0; overflow-wrap: anywhere; }
.public-site .breadcrumbs a { color: #00689d; text-decoration: underline; text-underline-offset: .15em; }
.public-site .breadcrumbs a:hover { color: var(--board-navy); }
.public-site .breadcrumb-separator { flex: none; }
.public-site .page-heading { color: var(--board-blue); border-bottom: 1px solid #e5e5e5; font-family: inherit; font-weight: 400; font-size: clamp(1.55rem, 4vw, 2rem); line-height: 1.3; margin: 0 0 1.5rem; padding-bottom: 1rem; overflow-wrap: anywhere; }
.public-site .page-body { line-height: 1.65; overflow-wrap: anywhere; }
.public-site .page-body p { margin: 0 0 1rem; }
.public-site .page-body > :first-child { margin-top: 0; }
.public-site .page-body a { color: #00689d; text-decoration: underline; text-underline-offset: .15em; }
.public-site .page-body a:hover { color: var(--board-navy); }
.public-site .page-body h2, .public-site .page-body h3, .public-site .page-body h4 { color: var(--board-navy); line-height: 1.35; margin: 1.75rem 0 .65rem; }
.public-site .page-body h2 { color: var(--board-blue); font-size: 1.5rem; font-weight: 400; }
.public-site .page-body h3 { font-size: 1.25rem; font-weight: 600; }
.public-site .page-body h4 { font-size: 1.125rem; font-weight: 600; }
.public-site .page-body ul, .public-site .page-body ol { padding-left: 1.5rem; margin: .75rem 0 1.25rem; }
.public-site .page-body li + li { margin-top: .35rem; }
.public-site .page-body li > ul, .public-site .page-body li > ol { margin: .35rem 0 .5rem; }
.public-site .page-body .text-center { text-align: center; }
.public-site .page-body img { display: block; max-width: 100%; height: auto; margin: 1rem auto; }
.public-site .public-table-scroll { max-width: 100%; overflow-x: auto; margin: 1.25rem 0; }
.public-site .public-table-scroll:focus-visible { outline: 3px solid var(--board-navy); outline-offset: 2px; }
.public-site .page-body table { display: table; width: 100%; margin: 0; font-size: .95rem; line-height: 1.5; overflow-wrap: normal; }
.public-site .page-body th { background: #edf4f8; color: var(--board-navy); }
.public-site .page-body td, .public-site .page-body th { padding: .65rem .6rem; }
.public-site .page-body td > :first-child { margin-top: 0; }
.public-site .page-body td > :last-child { margin-bottom: 0; }
.public-site .page-body .table-striped > tbody > tr:nth-child(odd) { background: #f3f7f9; }
.public-site .page-body blockquote { margin: 1.5rem 0; border-left: 4px solid var(--board-blue); padding: .5rem 1rem; background: #f2f7fa; }
.public-site .public-error-status { margin: 0 0 .5rem; color: #344b5e; font-size: .875rem; font-weight: 700; }
.public-site .public-error .page-body { max-width: 42rem; }
.public-site .page-body .public-home-link { display: inline-block; padding: .65rem 1rem; background: var(--board-navy); color: #fff; font-weight: 700; text-underline-offset: .2em; }
.public-site .page-body .public-home-link:hover { background: #164b7b; }
.public-site .site-footer { max-width: none; margin: 0; background: linear-gradient(#0b3161, #021029); color: #fff; padding: 1.25rem max(1rem, calc((100% - var(--board-width)) / 2 + 1.25rem)) 2rem; border: 0; text-align: center; font-size: .875rem; overflow-wrap: anywhere; }
.public-site .site-footer p { margin: .5rem 0; }
.public-site .site-footer > :first-child { margin-top: 0; }
.public-site .site-footer > :last-child { margin-bottom: 0; }
.public-site .site-footer h2, .public-site .site-footer h3, .public-site .site-footer h4 { color: #fff; line-height: 1.35; margin: 1.25rem 0 .5rem; }
.public-site .site-footer h2 { font-size: 1.25rem; }
.public-site .site-footer h3 { font-size: 1.125rem; }
.public-site .site-footer h4 { font-size: 1rem; }
.public-site .site-footer ul, .public-site .site-footer ol { display: table; max-width: 100%; margin: .75rem auto; padding-left: 1.5rem; text-align: left; }
.public-site .site-footer li + li { margin-top: .35rem; }
.public-site .site-footer .text-center { text-align: center; }
.public-site .site-footer a { color: #a9e2ff; text-decoration: underline; text-underline-offset: .15em; }
.public-site .site-footer a:hover { color: #fff; }
.public-site .site-footer img { max-width: 100%; height: auto; }
.public-site .site-footer .public-table-scroll { margin: 1rem 0; text-align: left; }
.public-site .site-footer .public-table-scroll:focus-visible { outline-color: var(--board-yellow); }
.public-site .site-footer table { width: 100%; line-height: 1.5; overflow-wrap: normal; }
.public-site .site-footer th, .public-site .site-footer td { padding: .65rem; border-color: #64819f; }
.public-site .site-footer th { color: #fff; background: #163f70; }
.public-site .site-footer .table-striped > tbody > tr:nth-child(odd) { background: #ffffff0d; }
.public-site .site-footer .media-unavailable { color: #202020; text-align: left; }
.public-site .preview-banner { width: 100%; max-width: var(--board-width); margin: 0 auto; background: #fff1ad; color: #202020; }
.public-site :focus-visible { outline-color: var(--board-navy); }
.public-site .brand-home:focus-visible, .public-site .site-footer :focus-visible { outline-color: #ffdd30; }
@media (max-width: 40rem) {
  .public-site .brand { padding: 1rem .85rem; }
  .public-site .brand-mark { width: 5.5rem; height: 5.5rem; font-size: 1.1rem; }
  /* Logos retain their natural proportions and shrink to the available width. */
  .public-site .brand-mark-long { font-size: .7rem; padding: .4rem; }
  .public-site .primary-links li { flex: 1 1 50%; }
  .public-site .topnav a { padding: .65rem .85rem; }
  .public-site .banner-placeholder { min-height: 13rem; }
  .public-site .banner-divider { height: 1.25rem; }
  .public-site .container { padding: 1.25rem .85rem 2rem; }
  .public-site .site-footer { padding: 1.25rem .85rem 2rem; }
}
@media print {
  .public-site { display: block; min-height: 0; background: #fff; color: #000; }
  .public-site .brand { padding: 0 0 1rem; }
  .public-site .public-logo { max-height: 5rem; }
  .public-site .brand-title { color: #000; text-shadow: none; font-size: 1.25rem; }
  .public-site .brand-mark, .public-site .public-banner, .public-site .topnav, .public-site .breadcrumbs, .public-site .preview-banner, .public-site .skip-link { display: none; }
  .public-site .container { min-height: 0; max-width: none; padding: 0; }
  .public-site .page-heading { color: #000; }
  .public-site .public-table-scroll { overflow: visible; margin: 1rem 0; }
  .public-site .page-body table { table-layout: fixed; overflow-wrap: anywhere; font-size: .85rem; }
  .public-site .page-body tr { break-inside: avoid; }
  .public-site .site-footer { background: #fff; color: #000; padding: 1rem 0; }
  .public-site .site-footer a { color: #000; }
  .public-site .site-footer h2, .public-site .site-footer h3, .public-site .site-footer h4 { color: #000; }
  .public-site .site-footer .public-table-scroll { overflow: visible; }
  .public-site .site-footer table { table-layout: fixed; overflow-wrap: anywhere; }
  .public-site .site-footer th { color: #000; background: #fff; }
  .public-site .site-footer tr { break-inside: avoid; }
}
