:root {
  --uppt-ink: #26332d;
  --uppt-muted: #607068;
  --uppt-paper: #f8f7f3;
  --uppt-surface: #ffffff;
  --uppt-red: #a93032;
  --uppt-red-dark: #7c2229;
  --uppt-green: #326b51;
  --uppt-sand: #efe6d4;
  --uppt-line: #e5ded0;
  --cassiopeia-color-primary: var(--uppt-red);
  --cassiopeia-color-link: var(--uppt-red-dark);
  --cassiopeia-color-hover: var(--uppt-green);
}

html { scroll-behavior: smooth; }
body.site { background: var(--uppt-paper); color: var(--uppt-ink); font-family: system-ui, -apple-system, "Segoe UI", sans-serif; line-height: 1.65; }
a { color: var(--uppt-red-dark); text-decoration-thickness: .08em; text-underline-offset: .17em; }
a:hover, a:focus-visible { color: var(--uppt-green); }
:focus-visible { outline: 3px solid #d29631; outline-offset: 3px; }
h1, h2, h3, h4, .page-header { color: var(--uppt-ink); font-family: Georgia, "Times New Roman", serif; letter-spacing: -.025em; line-height: 1.17; }
h1 { font-size: clamp(2.1rem, 4vw, 3.7rem); }
h2 { font-size: clamp(1.6rem, 2.7vw, 2.4rem); }
h3 { font-size: clamp(1.25rem, 2vw, 1.7rem); }

.container-header { background: rgb(255 255 255 / 96%); background-image: none; box-shadow: 0 1px 0 var(--uppt-line); color: var(--uppt-ink); }
.container-header .grid-child { align-items: center; }
.container-header .grid-child:not(.container-nav) { padding-block: .25rem; }
.container-header .navbar-brand { align-items: center; display: flex; gap: 1rem; padding-block: .45rem; }
.container-header .brand-logo { flex: none; }
.container-header .brand-logo img { height: 62px; max-height: 62px; width: auto; }
.container-header .site-description { color: var(--uppt-ink); font-size: .9rem; font-weight: 720; letter-spacing: .02em; line-height: 1.3; max-width: 32ch; text-transform: none; }
.container-header .grid-child.container-nav { border-top: 1px solid var(--uppt-line); min-height: 52px; padding-block: .2rem; }
.container-header .container-nav nav { margin-top: 0; }
.container-header .navbar { padding: 0; width: 100%; }
.container-header .metismenu.mod-menu { align-items: center; display: flex; justify-content: space-between; width: 100%; }
.container-header .metismenu.mod-menu > .metismenu-item { flex-wrap: nowrap; font-size: .96rem; padding: 0; }
.container-header .metismenu.mod-menu > .metismenu-item > a { border-radius: .55rem; color: var(--uppt-ink); font-weight: 690; padding: .65rem .5rem; text-decoration: none; transition: background .2s ease, color .2s ease; }
.container-header .metismenu.mod-menu > .metismenu-item > a:hover,
.container-header .metismenu.mod-menu > .metismenu-item > a:focus-visible,
.container-header .metismenu.mod-menu > .metismenu-item.active > a { background: #f8eae6; color: var(--uppt-red-dark); text-decoration: none; }
.container-header .metismenu.mod-menu > .metismenu-item > a::after,
.container-header .metismenu.mod-menu > .metismenu-item > button::before { display: none; }
.container-header .metismenu.mod-menu > .metismenu-item > .mm-toggler { border-radius: .4rem; color: var(--uppt-ink); height: 2rem; justify-content: center; margin-inline: -.15rem .25rem; padding: .15rem; width: 1.8rem; }
.container-header .metismenu.mod-menu .mm-toggler::after { border-top-width: .35em; border-left-width: .35em; border-right-width: .35em; margin-inline-start: 0; }
.container-header .metismenu.mod-menu .mm-collapse { background: #fff; border: 1px solid var(--uppt-line); border-radius: .75rem; box-shadow: 0 16px 35px rgb(38 51 45 / 13%); min-width: 14rem; overflow: hidden; padding: .4rem; }
.container-header .metismenu.mod-menu .mm-collapse .metismenu-item { border-radius: .45rem; font-size: .93rem; padding: .1rem .35rem; }
.container-header .metismenu.mod-menu .mm-collapse a { border-radius: .45rem; color: var(--uppt-ink); padding: .45rem .5rem; text-decoration: none; white-space: normal; }
.container-header .metismenu.mod-menu .mm-collapse a:hover,
.container-header .metismenu.mod-menu .mm-collapse a:focus-visible { background: #f8eae6; color: var(--uppt-red-dark); }
.container-header .navbar-toggler { border: 1px solid var(--uppt-line); border-radius: .6rem; color: var(--uppt-ink); margin-block: .45rem; padding: .45rem .65rem; }

.container-banner { margin: 0; max-width: none; }
.uppt-hero { align-items: center; background: radial-gradient(circle at 90% 75%, rgb(201 124 95 / 18%), transparent 30%), linear-gradient(120deg, #f8e9df, #fbf5e9 70%); border-bottom: 1px solid var(--uppt-line); display: grid; gap: clamp(1rem, 4vw, 4rem); grid-template-columns: minmax(0, 1.5fr) minmax(10rem, .5fr); margin-inline: auto; min-height: 340px; padding: clamp(2.2rem, 4vw, 3.5rem) max(1.25rem, calc((100vw - 1180px) / 2)); }
.uppt-hero__copy { max-width: 730px; }
.uppt-eyebrow { color: var(--uppt-red-dark); display: block; font-size: .82rem; font-weight: 800; letter-spacing: .13em; margin-bottom: .9rem; text-transform: uppercase; }
.uppt-hero h1 { color: var(--uppt-ink); font-size: clamp(2.5rem, 4vw, 4rem); margin: 0 0 .8rem; text-wrap: balance; }
.uppt-hero p { color: #485b50; font-size: clamp(1rem, 1.5vw, 1.18rem); max-width: 55ch; }
.uppt-hero__actions { display: flex; flex-wrap: wrap; gap: .7rem; margin-top: 1.6rem; }
.uppt-button { background: var(--uppt-red); border: 2px solid var(--uppt-red); border-radius: 999px; color: #fff; font-weight: 750; padding: .65rem 1.25rem; text-decoration: none; }
.uppt-button:hover { background: var(--uppt-red-dark); border-color: var(--uppt-red-dark); color: #fff; }
.uppt-button--light { background: transparent; color: var(--uppt-red-dark); }
.uppt-button--light:hover { color: #fff; }
.uppt-hero__mark { align-items: center; aspect-ratio: 1; background: rgb(255 255 255 / 62%); border: 1px solid #e9cda1; border-radius: 42% 58% 56% 44%; box-shadow: 0 25px 70px rgb(107 71 37 / 10%); display: flex; justify-content: center; margin-inline: auto; max-width: 220px; padding: 1.6rem; transform: rotate(-5deg); }
.uppt-hero__mark img { height: auto; max-width: 100%; transform: rotate(5deg); }

.site-grid { column-gap: 1.6rem; row-gap: 0; }
.container-component, .container-sidebar-left, .container-sidebar-right { min-width: 0; }
.container-component { padding-block: 1.25rem 4rem; }
.container-component > :first-child { margin-top: 0; }
.itemid-101 .mod-breadcrumbs__wrapper { display: none; }
.mod-breadcrumbs__wrapper { margin-bottom: 1.7rem !important; }
.mod-breadcrumbs.breadcrumb { background: transparent; color: var(--uppt-muted); font-size: .86rem; gap: .2rem; padding: .2rem 0 !important; }
.mod-breadcrumbs__here { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.page-header { border-bottom: 1px solid var(--uppt-line); margin-bottom: 1.25rem; padding-bottom: .5rem; }
.blog-featured, .blog { display: grid; gap: 1.25rem; }
.blog-featured .blog-items, .blog .blog-items { display: grid; gap: 1.3rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 21rem), 1fr)); }
.blog-item, .item-content, .com-content-article { min-width: 0; }
.blog-featured .blog-item, .blog .blog-item { background: var(--uppt-surface); border: 1px solid var(--uppt-line); border-radius: .9rem; box-shadow: 0 8px 28px rgb(38 51 45 / 5%); overflow: hidden; padding: clamp(1.25rem, 2.2vw, 2rem); }
.blog-featured .items-leading .blog-item { margin-inline: auto; max-width: 1180px; width: 100%; }
.blog-item .item-content > p, .blog-item .item-content > ul, .blog-item .item-content > ol { max-width: 75ch; }
.blog-item .item-content > p:first-of-type { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 4; overflow: hidden; }
.blog-item .item-content > p:nth-of-type(n+2) { display: none; }
.blog-item h2, .blog-item h3 { font-size: clamp(1.35rem, 2vw, 1.8rem); margin-top: 0; }
.blog-item .item-title a { color: var(--uppt-red-dark); text-decoration: none; }
.blog-item .item-title a:hover, .blog-item .item-title a:focus-visible { text-decoration: underline; }
.blog .blog-item .page-header { border: 0; margin-bottom: .8rem; padding: 0; }
.blog .blog-item .page-header h2 { font-size: clamp(1.35rem, 2vw, 1.8rem); margin: 0; }
.blog .blog-item .page-header a { color: var(--uppt-red-dark); text-decoration: none; }
.blog .blog-item .page-header a:hover, .blog .blog-item .page-header a:focus-visible { text-decoration: underline; }
.blog-item .readmore a, .btn-primary { background: var(--uppt-red); border: 0; border-radius: 999px; color: #fff; display: inline-flex; font-weight: 700; padding: .58rem 1rem; text-decoration: none; }
.blog-item .readmore a:hover, .btn-primary:hover { background: var(--uppt-red-dark); color: #fff; }
.com-content-article { background: var(--uppt-surface); border: 1px solid var(--uppt-line); border-radius: .9rem; box-shadow: 0 8px 35px rgb(38 51 45 / 5%); margin-inline: auto; max-width: 900px; padding: clamp(1.4rem, 4vw, 3rem); }
.com-content-article h1 { font-size: clamp(2.15rem, 3.7vw, 3.5rem); }
.com-content-article__body { font-size: 1.065rem; }
.com-content-article__body > * { max-width: 72ch; }
.com-content-article__body > :is(figure, table, .table-responsive, .media-wide) { max-width: 100%; }
.com-content-article__body p, .com-content-article__body ul, .com-content-article__body ol { margin-block: 0 1.15em; }
.com-content-article__body img { border-radius: .7rem; height: auto; max-width: 100%; }
.com-content-article__body figure { margin: 1.7rem auto; }
.com-content-article__body figcaption { color: var(--uppt-muted); font-size: .88rem; margin-top: .45rem; text-align: center; }
.com-content-article__body .table-responsive { margin-block: 1.5rem; overflow-x: auto; }
.com-content-article__body table { border-collapse: collapse; min-width: min(100%, 34rem); width: 100%; }
.com-content-article__body th, .com-content-article__body td { border: 1px solid var(--uppt-line); padding: .7rem .85rem; vertical-align: top; }
.com-content-article__body th { background: #f7f1e5; text-align: left; }
.com-content-article__body blockquote { border-left: 4px solid var(--uppt-red); color: #45574d; font-family: Georgia, serif; font-size: 1.25rem; padding: .45rem 1.2rem; }
.com-content-article__body :is(iframe, video) { max-width: 100%; }
.article-info { color: var(--uppt-muted); display: flex; flex-wrap: wrap; font-size: .82rem; gap: .15rem .9rem; }
.article-info dd { margin: 0; }
.blog-item .article-info .createdby, .blog-item .article-info .hits { display: none; }
.article-info-term { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }

.com-content-category { margin-inline: auto; max-width: 1180px; }
.content-category > h1 { border-bottom: 1px solid var(--uppt-line); font-size: clamp(2.2rem, 4vw, 3.5rem); margin: 0 0 1.8rem; padding-bottom: .6rem; }
.com-content-category__articles { display: flow-root; }
.com-content-category__pagination { margin-bottom: .8rem; }
.com-content-category__pagination .form-select { border-color: var(--uppt-line); border-radius: .5rem; color: var(--uppt-ink); }
.content-category:has(.cat-children) .com-content-category__articles .alert-info,
.content-category:has(.cat-children) .com-content-category__articles:has(.alert-info) .com-content-category__pagination { display: none; }
.com-content-category__table { background: transparent; border: 0; margin: 0 0 2rem; }
.com-content-category__table thead { display: none; }
.com-content-category__table tbody { display: grid; gap: .85rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 22rem), 1fr)); }
.com-content-category__table tbody tr { background: #fff !important; border: 1px solid var(--uppt-line); border-radius: .8rem; box-shadow: 0 5px 18px rgb(38 51 45 / 4%); display: flex; flex-direction: column; padding: 1rem 1.25rem; }
.com-content-category__table tbody :is(th, td) { --bs-table-bg: transparent; --bs-table-bg-type: transparent; background: transparent !important; border: 0; box-shadow: none !important; display: block; padding: 0; }
.com-content-category__table .list-title a { color: var(--uppt-red-dark); font-family: Georgia, serif; font-size: 1.35rem; font-weight: 700; line-height: 1.25; text-decoration: none; }
.com-content-category__table .list-title a:hover { text-decoration: underline; }
.com-content-category__table .list-author { color: var(--uppt-muted); font-size: .85rem; margin-top: .65rem; }
.com-content-category__table .list-hits { display: none; }
.cat-children { display: grid; gap: .85rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr)); margin-top: 1.5rem; }
.cat-children > h3 { font-family: system-ui, -apple-system, "Segoe UI", sans-serif; font-size: .85rem; font-weight: 800; grid-column: 1 / -1; letter-spacing: .12em; margin: 0 0 .15rem; text-transform: uppercase; }
.com-content-category__children { background: #fff; border: 1px solid var(--uppt-line); border-radius: .8rem; box-shadow: 0 5px 18px rgb(38 51 45 / 4%); min-width: 0; transition: border-color .2s ease, transform .2s ease; }
.com-content-category__children:hover { border-color: #ca9c8a; transform: translateY(-2px); }
.com-content-category__children .page-header { border: 0; font-size: 1.35rem; margin: 0; padding: 0; }
.com-content-category__children a { align-items: center; color: var(--uppt-ink); display: flex; gap: .6rem; justify-content: space-between; min-height: 5.1rem; padding: 1rem 1.25rem; text-decoration: none; }
.com-content-category__children a::after { color: var(--uppt-red); content: "→"; font-family: system-ui, sans-serif; font-size: 1.2rem; font-weight: 500; }
.com-content-category__children a:hover { color: var(--uppt-red-dark); }

.com-contact { align-items: start; column-gap: 1.5rem; display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); margin-inline: auto; max-width: 1180px; }
.com-contact > .page-header { grid-column: 1 / -1; margin-bottom: 2rem; }
.com-contact > .page-header h1 { font-size: clamp(1.9rem, 3vw, 2.8rem); margin: 0; }
.com-contact__container { background: #fff; border: 1px solid var(--uppt-line); border-radius: .9rem; grid-column: 1; grid-row: 2 / span 2; padding: clamp(1.25rem, 2vw, 2rem); }
.com-contact__container h2 { font-size: 1.7rem; margin: 0 0 1.2rem; }
.com-contact__thumbnail { display: none; }
.com-contact__address { display: grid; gap: .3rem .75rem; grid-template-columns: 1.25rem 1fr; margin: 0; }
.com-contact__address :is(dt, dd) { margin: 0; }
.com-contact__address dt { color: var(--uppt-green); }
.com-contact__address dd { grid-column: 2; overflow-wrap: anywhere; }
.com-contact > h2:nth-of-type(1) { font-size: 1.7rem; grid-column: 2; grid-row: 2; margin: 0 0 .8rem; }
.com-contact__form { background: #fff; border: 1px solid var(--uppt-line); border-radius: .9rem; grid-column: 2; grid-row: 3; padding: clamp(1.25rem, 2vw, 2rem); }
.com-contact__form legend { font-family: Georgia, serif; font-size: 1.35rem; margin-bottom: .6rem; }
.com-contact__form .field-spacer { color: var(--uppt-muted); font-size: .85rem; margin-bottom: 1.2rem; }
.com-contact__form .control-group { margin-bottom: 1rem; }
.com-contact__form .control-label { font-weight: 650; margin-bottom: .3rem; }
.com-contact__form .form-control { border-color: #d5d8d2; border-radius: .5rem; min-height: 2.8rem; }
.com-contact__form textarea.form-control { min-height: 9rem; }
.com-contact > h2:nth-of-type(2) { font-size: 1.4rem; grid-column: 1; grid-row: 4; margin: 1.5rem 0 .5rem; }
.com-contact__miscinfo { color: var(--uppt-muted); grid-column: 1; grid-row: 5; }
.com-contact__miscinfo dd { margin: 0; }

.container-sidebar-right .moduletable, .container-sidebar-left .moduletable { background: #f5efdf; border-radius: 1rem; margin-bottom: 1rem; padding: 1.25rem; }
.container-footer { background: var(--uppt-ink); color: #f7f2e7; padding: 2rem 1rem; }
.container-footer a { color: #fff; }
.uppt-footer { align-items: center; display: flex; flex-wrap: wrap; gap: .5rem 1.2rem; justify-content: space-between; margin-inline: auto; max-width: 1200px; }
.uppt-footer strong { font-family: Georgia, serif; font-size: 1.4rem; }
.uppt-attachments { border-top: 1px solid var(--uppt-line); margin-top: 2.5rem; padding-top: 1.5rem; }
.uppt-attachments h2 { font-size: 1.4rem; }
.uppt-attachments ul { list-style: none; padding: 0; }
.uppt-attachments li { background: #f7f1e5; border-radius: .6rem; margin: .5rem 0; padding: .55rem .8rem; }
.pagination { flex-wrap: wrap; gap: .25rem; }
.page-link { border-radius: .5rem; }

@media (max-width: 991px) {
  .container-header { position: relative !important; }
  .container-header .container-nav { min-height: 0; }
  .container-header .navbar-collapse { width: 100%; }
  .container-header .metismenu.mod-menu { align-items: stretch; display: flex; flex-direction: column; padding-bottom: .65rem; }
  .container-header .metismenu.mod-menu > .metismenu-item { flex-wrap: wrap; justify-content: space-between; width: 100%; }
  .container-header .metismenu.mod-menu > .metismenu-item > a { flex: 1; }
  .container-header .metismenu.mod-menu > .metismenu-item > .mm-toggler { height: 2.6rem; margin: 0; padding-inline: .75rem; }
  .container-header .metismenu.mod-menu .mm-collapse { border: 0; border-left: 2px solid #e5bbb0; border-radius: 0; box-shadow: none; margin: 0 0 .5rem .8rem; min-width: 0; position: static; width: calc(100% - .8rem); }
}

@media (max-width: 768px) {
  .container-header .navbar-brand { gap: .7rem; }
  .container-header .brand-logo img { height: 56px; max-height: 56px; }
  .container-header .site-description { font-size: .78rem; max-width: 22ch; }
  .uppt-hero { display: block; min-height: 0; padding: 2.2rem 1.25rem 2.5rem; }
  .uppt-hero__mark { display: none; }
  .uppt-hero h1 { font-size: clamp(2.35rem, 10vw, 3.4rem); }
  .uppt-hero p { font-size: 1rem; }
  .container-component { padding-block: 1rem 3rem; }
  .mod-breadcrumbs__wrapper { margin-bottom: 1.2rem !important; }
  .com-content-article { border-radius: .8rem; padding: 1.25rem; }
  .com-content-article h1 { font-size: clamp(2rem, 9vw, 2.7rem); }
  .com-contact { display: grid; grid-template-columns: 1fr; }
  .com-contact > * { grid-column: 1 !important; grid-row: auto !important; }
  .com-contact > .page-header { margin-bottom: 1.4rem; }
  .com-contact__container { margin-bottom: 1.6rem; }
  .com-contact > h2:nth-of-type(2) { margin-top: 1.6rem; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: .01ms !important; }
}
