:root {
  --pa-blue: #355b82;
  --pa-blue-dark: #284767;
  --pa-gray: #5c6f82;
  --pa-white: #ffffff;
  --pa-light: #f3f6fa;
  --pa-light-2: #e9f0f7;
  --pa-border: #d3dde8;
  --pa-text: #17324d;
  --pa-focus: #ffb703;
  --font-family-pa: "Public Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

* {
  box-sizing: border-box;
}

html,
body {
  margin: 0;
  padding: 0;
  font-family: var(--font-family-pa);
  color: var(--pa-text);
  background: var(--pa-white);
}

a {
  color: var(--pa-blue);
  text-decoration-thickness: .08em;
  text-underline-offset: .22em;
}

a:hover {
  color: var(--pa-blue-dark);
}

a:focus,
button:focus,
input:focus {
  outline: 3px solid var(--pa-focus);
  outline-offset: 2px;
}

.container {
  width: min(1240px, 94vw);
  margin: 0 auto;
}

.skip-link {
  position: absolute;
  left: -9999px;
  width: 1px;
  height: 1px;
  overflow: hidden;
}

.skip-link:focus {
  left: 1rem;
  top: 1rem;
  width: auto;
  height: auto;
  padding: .75rem 1rem;
  position: fixed;
  background: var(--pa-focus);
  color: #111;
  z-index: 3000;
}

.it-header-wrapper {
  position: sticky;
  top: 0;
  z-index: 1100;
  background: var(--pa-white);
  box-shadow: 0 2px 14px rgba(23, 50, 77, .08);
}

.it-header-slim-wrapper {
  background: var(--pa-blue);
  color: var(--pa-white);
}

.it-header-slim-wrapper-content {
  min-height: 2.15rem;
  display: flex;
  align-items: center;
  gap: .45rem;
  font-size: .9rem;
}

.it-nav-wrapper {
  border-bottom: 1px solid var(--pa-border);
  background: var(--pa-white);
}

.it-nav-wrapper .pa-module {
  border: 0;
  background: transparent;
  padding: .2rem 0 .8rem;
}

.masthead-grid {
  display: grid;
  grid-template-columns: 1fr;
  align-items: center;
  gap: .8rem;
  padding: .9rem 0;
}

.logo-link {
  display: inline-flex;
  align-items: center;
  gap: .75rem;
  text-decoration: none;
}

.site-name {
  color: var(--pa-text);
  font-size: 1.3rem;
  font-weight: 700;
}

.site-name-wrap {
  display: inline-flex;
  flex-direction: column;
  gap: .1rem;
}

.site-subtitle {
  font-size: 1rem;
  font-weight: 500;
  color: var(--pa-gray);
}

.search-area form {
  display: flex;
  gap: .5rem;
}

.search-area input {
  flex: 1;
  border: 1px solid var(--pa-border);
  border-radius: .35rem;
  min-height: 2.7rem;
  padding: .5rem .75rem;
}

.search-area button,
.btn-home {
  border: 0;
  border-radius: .35rem;
  background: var(--pa-blue);
  color: var(--pa-white);
  min-height: 2.7rem;
  padding: .55rem .95rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  font-weight: 600;
}

.search-area button:hover,
.btn-home:hover {
  background: var(--pa-blue-dark);
  color: var(--pa-white);
}

.menu-toggle {
  justify-self: end;
  border: 1px solid var(--pa-blue);
  color: var(--pa-blue);
  background: transparent;
  border-radius: .35rem;
  padding: .45rem .85rem;
}

.it-main-nav {
  background: var(--pa-light);
  border-bottom: 1px solid var(--pa-border);
}

.pa-head-main {
  display: grid;
  grid-template-columns: 1fr;
  gap: .9rem;
  padding: .85rem 0;
}

.pa-head-actions {
  display: grid;
  grid-template-columns: 1fr;
  gap: .6rem;
}

.top-nav-links .pa-module {
  padding: 0;
}

.top-nav-links .module-title {
  display: none;
}

.top-nav-links ul,
.top-nav-links .mod-menu {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: .45rem .7rem;
}

.top-nav-links a {
  display: inline-flex;
  align-items: center;
  text-decoration: none;
  font-size: .95rem;
  font-weight: 600;
}

.social-area {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .45rem .7rem;
}

.social-label {
  font-weight: 700;
  font-size: .95rem;
}

.social-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  text-decoration: none;
  font-weight: 600;
  font-size: .92rem;
  border: 1px solid var(--pa-border);
  background: var(--pa-white);
  border-radius: 999px;
  padding: 0;
  text-transform: lowercase;
}

.social-link span {
  font-size: .78rem;
  line-height: 1;
  font-weight: 800;
}

.social-link:hover {
  border-color: var(--pa-blue);
  background: #eef3f8;
}

.nav-row {
  display: grid;
  grid-template-columns: 1fr;
  gap: .6rem;
}

.nav-inner-secondary ul,
.nav-inner-secondary .mod-menu {
  justify-content: flex-start;
}

.pa-header--green .it-nav-wrapper,
.pa-header--green .it-main-nav {
  background: var(--pa-white);
  border-color: var(--pa-border);
}

.pa-header--green .site-name,
.pa-header--green .site-subtitle,
.pa-header--green .social-label,
.pa-header--green .top-nav-links a,
.pa-header--green .social-link,
.pa-header--green .it-main-nav a,
.pa-header--green .it-main-nav .mod-menu__toggle-sub {
  color: var(--pa-text);
}

.pa-header--green .search-area input {
  background: var(--pa-white);
  color: var(--pa-text);
  border-color: var(--pa-border);
}

.pa-header--green .search-area input::placeholder {
  color: var(--pa-gray);
}

.pa-header--green .search-area button {
  background: var(--pa-blue);
  border: 1px solid var(--pa-blue);
}

.pa-header--green .search-area button:hover {
  background: var(--pa-blue-dark);
}

.pa-header--green .default-pa-menu a:hover,
.pa-header--green .it-main-nav .nav-inner > ul.mod-menu > li > a:hover,
.pa-header--green .it-main-nav .nav-inner > ul.mod-menu > li > .mod-menu__toggle-sub:hover {
  background: #e4ebf4;
}

.pa-header--green .it-main-nav .nav-inner > ul.mod-menu .mod-menu__sub {
  background: #fff;
}

.pa-header--green .it-main-nav .nav-inner > ul.mod-menu .mod-menu__sub a,
.pa-header--green .it-main-nav .nav-inner > ul.mod-menu .mod-menu__sub .separator {
  color: var(--pa-text);
}

.pa-header--green .it-main-nav {
  background: var(--pa-light);
}

/* Social icons from top menu items (alternative to text links) */
.top-nav-links li.social-icon > a,
.top-nav-links li.social-facebook > a,
.top-nav-links li.social-instagram > a,
.top-nav-links li.social-twitter > a,
.top-nav-links li.social-x > a,
.top-nav-links li.social-telegram > a {
  width: 2rem;
  height: 2rem;
  justify-content: center;
  border-radius: 999px;
  border: 1px solid var(--pa-border);
  background: var(--pa-white);
  font-size: 0;
  padding: 0;
  position: relative;
}

.top-nav-links li.social-icon > a:hover,
.top-nav-links li.social-facebook > a:hover,
.top-nav-links li.social-instagram > a:hover,
.top-nav-links li.social-twitter > a:hover,
.top-nav-links li.social-x > a:hover,
.top-nav-links li.social-telegram > a:hover {
  border-color: var(--pa-blue);
  background: #eef3f8;
}

.top-nav-links li.social-icon > a::before,
.top-nav-links li.social-facebook > a::before,
.top-nav-links li.social-instagram > a::before,
.top-nav-links li.social-twitter > a::before,
.top-nav-links li.social-x > a::before,
.top-nav-links li.social-telegram > a::before {
  font-size: .8rem;
  font-weight: 800;
  line-height: 1;
  color: var(--pa-blue);
}

.top-nav-links li.social-icon > a::before,
.top-nav-links li.social-facebook > a::before {
  content: "f";
}

.top-nav-links li.social-instagram > a::before {
  content: "ig";
}

.top-nav-links li.social-twitter > a::before,
.top-nav-links li.social-x > a::before {
  content: "x";
}

.top-nav-links li.social-telegram > a::before {
  content: "tg";
}

.nav-inner {
  position: relative;
}

.default-pa-menu {
  margin: 0;
  padding: .4rem 0;
  list-style: none;
  display: none;
  flex-direction: column;
  gap: .2rem;
}

.default-pa-menu.is-open {
  display: flex;
}

.default-pa-menu a {
  display: block;
  text-decoration: none;
  font-weight: 700;
  padding: .7rem .5rem;
  border-radius: .3rem;
}

.default-pa-menu a:hover {
  background: #e4ebf4;
}

.it-main-nav .pa-module {
  border: 0;
  background: transparent;
  padding: 0;
}

.it-main-nav .pa-module .module-title {
  display: none;
}

.it-main-nav .pa-module .module-body ul {
  margin: 0;
  padding: .4rem 0;
  list-style: none;
  display: none;
  flex-direction: column;
  gap: .2rem;
}

.it-main-nav .pa-module .module-body ul.is-open {
  display: flex;
}

.it-main-nav .pa-module .module-body ul > li > a {
  display: block;
  text-decoration: none;
  font-weight: 700;
  padding: .7rem .5rem;
  border-radius: .3rem;
}

.it-main-nav .pa-module .module-body ul > li > a:hover {
  background: #e4ebf4;
}

.it-main-nav .pa-module li {
  position: relative;
}

.it-main-nav .pa-module li > ul {
  list-style: none;
  margin: 0;
  padding: .35rem 0;
  display: none;
  background: var(--pa-white);
  border: 1px solid var(--pa-border);
  border-radius: .4rem;
}

.it-main-nav .pa-module li > ul > li > a {
  display: block;
  padding: .55rem .85rem;
  text-decoration: none;
  border-radius: .25rem;
}

.it-main-nav .pa-module li > ul > li > a:hover {
  background: var(--pa-light);
}

.it-main-nav .pa-module li.parent.is-open > ul {
  display: block;
}

.submenu-toggle {
  border: 0;
  background: transparent;
  color: var(--pa-blue);
  font-weight: 700;
  margin-left: .25rem;
  cursor: pointer;
}

.it-main-nav .pa-module li.parent > .submenu-toggle {
  position: absolute;
  right: .15rem;
  top: .45rem;
  padding: .25rem .35rem;
}

.it-main-nav .pa-module li.parent > a {
  padding-right: 2rem;
}

/* Direct mod_menu output in navigation (without module chrome wrappers) */
.it-main-nav .nav-inner > ul.mod-menu,
.it-main-nav .nav-inner > ul.mod-list,
.it-main-nav .nav-inner > ul.nav {
  margin: 0;
  padding: .4rem 0;
  list-style: none;
  display: none;
  flex-direction: column;
  gap: .2rem;
}

.it-main-nav .nav-inner > ul.mod-menu.is-open,
.it-main-nav .nav-inner > ul.mod-list.is-open,
.it-main-nav .nav-inner > ul.nav.is-open {
  display: flex;
}

.it-main-nav .nav-inner > ul.mod-menu > li > a,
.it-main-nav .nav-inner > ul.mod-list > li > a,
.it-main-nav .nav-inner > ul.nav > li > a {
  display: block;
  text-decoration: none;
  font-weight: 700;
  padding: .7rem .5rem;
  border-radius: .3rem;
}

.it-main-nav .nav-inner > ul.mod-menu > li > .separator,
.it-main-nav .nav-inner > ul.mod-list > li > .separator,
.it-main-nav .nav-inner > ul.nav > li > .separator {
  display: block;
  font-weight: 700;
  padding: .7rem .5rem;
  border-radius: .3rem;
  color: var(--pa-text);
}

.it-main-nav .nav-inner > ul.mod-menu > li > a:hover,
.it-main-nav .nav-inner > ul.mod-list > li > a:hover,
.it-main-nav .nav-inner > ul.nav > li > a:hover {
  background: #e4ebf4;
}

.it-main-nav .nav-inner > ul.mod-menu li,
.it-main-nav .nav-inner > ul.mod-list li,
.it-main-nav .nav-inner > ul.nav li {
  position: relative;
}

.it-main-nav .nav-inner > ul.mod-menu li > ul,
.it-main-nav .nav-inner > ul.mod-list li > ul,
.it-main-nav .nav-inner > ul.nav li > ul {
  list-style: none;
  margin: 0;
  padding: .35rem 0;
  display: none;
  background: var(--pa-white);
  border: 1px solid var(--pa-border);
  border-radius: .4rem;
}

.it-main-nav .nav-inner > ul.mod-menu li.parent.is-open > ul,
.it-main-nav .nav-inner > ul.mod-list li.parent.is-open > ul,
.it-main-nav .nav-inner > ul.nav li.parent.is-open > ul {
  display: block;
}

/* Joomla 6 mod_menu markup (button + mod-menu__sub) */
.it-main-nav .nav-inner > ul.mod-menu > li {
  list-style: none;
}

.it-main-nav .nav-inner > ul.mod-menu > li > .mod-menu__toggle-sub {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  border: 0;
  background: transparent;
  color: var(--pa-blue);
  font-weight: 700;
  font-size: inherit;
  font-family: inherit;
  line-height: 1.25;
  padding: .7rem .5rem;
  border-radius: .3rem;
  cursor: pointer;
}

.it-main-nav .nav-inner > ul.mod-menu > li > .mod-menu__toggle-sub .mod-menu__separator {
  font: inherit;
  color: inherit;
}

.it-main-nav .nav-inner > ul.mod-menu > li > .mod-menu__toggle-sub .icon-chevron-down {
  display: none;
}

.it-main-nav .nav-inner > ul.mod-menu > li > .mod-menu__toggle-sub::after {
  content: "▾";
  font-size: .9em;
  line-height: 1;
  transform: translateY(.02em);
}

.it-main-nav .nav-inner > ul.mod-menu > li > .mod-menu__toggle-sub:hover {
  background: #e4ebf4;
}

.it-main-nav .nav-inner > ul.mod-menu .mod-menu__sub {
  display: none !important;
  position: absolute;
  left: 0;
  top: calc(100% + .2rem);
  min-width: 230px;
  z-index: 1200;
  list-style: none;
  margin: 0;
  padding: .35rem 0;
  background: var(--pa-white);
  border: 1px solid var(--pa-border);
  border-radius: .4rem;
  box-shadow: 0 12px 24px rgba(23, 50, 77, .12);
}

.it-main-nav .nav-inner > ul.mod-menu > li:hover > .mod-menu__sub,
.it-main-nav .nav-inner > ul.mod-menu > li:focus-within > .mod-menu__sub,
.it-main-nav .nav-inner > ul.mod-menu > li > .mod-menu__sub[aria-hidden="false"] {
  display: block !important;
}

.it-main-nav .nav-inner > ul.mod-menu .mod-menu__sub > li > a {
  display: block;
  padding: .55rem .85rem;
  text-decoration: none;
  border-radius: .25rem;
}

.it-main-nav .nav-inner > ul.mod-menu .mod-menu__sub > li > a:hover {
  background: var(--pa-light);
}

.hero-area {
  background: linear-gradient(155deg, #edf3f9 0%, #dfe9f4 100%);
  padding: 1.4rem 0;
}

.hero-default-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1rem;
}

.eyebrow {
  margin: 0 0 .35rem;
  font-size: .88rem;
  text-transform: uppercase;
  letter-spacing: .04em;
  color: var(--pa-gray);
  font-weight: 700;
}

.hero-default h1 {
  margin: 0;
  font-size: clamp(1.8rem, 3vw, 2.4rem);
  line-height: 1.2;
}

.hero-default p {
  margin: .8rem 0 0;
  max-width: 64ch;
}

.hero-metrics {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: .7rem;
}

.hero-metrics article {
  border: 1px solid var(--pa-border);
  border-radius: .45rem;
  background: rgba(255, 255, 255, .82);
  padding: .8rem;
}

.hero-metrics strong {
  display: block;
  color: var(--pa-blue);
  font-size: 1.2rem;
}

/* Hero module with image (custom module content pattern) */
.pa-hero-split {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1rem;
  align-items: stretch;
}

.pa-hero-split.pa-hero-img-right .pa-hero-content {
  order: 1;
}

.pa-hero-split.pa-hero-img-right .pa-hero-media {
  order: 2;
}

.pa-hero-split.pa-hero-img-left .pa-hero-media {
  order: 1;
}

.pa-hero-split.pa-hero-img-left .pa-hero-content {
  order: 2;
}

.pa-hero-split--clean .pa-hero-content {
  border: 0;
  border-radius: 0;
  padding: 0;
}

.pa-hero-content {
  background: var(--pa-white);
  border: 1px solid var(--pa-border);
  border-radius: .6rem;
  padding: 1rem;
}

/* When hero module already has pa-mod-hero container, keep one single visual box */
.pa-mod-hero .pa-hero-content {
  background: transparent;
  border: 0;
  border-radius: 0;
  padding: 0;
}

.pa-hero-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .6rem;
  margin-bottom: .6rem;
  font-size: .9rem;
  color: var(--pa-gray);
  text-transform: uppercase;
  font-weight: 700;
}

.pa-hero-content h1,
.pa-hero-content h2 {
  margin: 0 0 .65rem;
  line-height: 1.15;
  color: #0b8a62;
  font-size: clamp(1.7rem, 2.9vw, 3rem);
}

.pa-hero-content p {
  margin: 0 0 .7rem;
  max-width: 62ch;
}

.pa-hero-tags {
  margin-top: .9rem;
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
}

.pa-hero-tags a,
.pa-hero-tags span {
  border: 2px solid #0b8a62;
  color: #0b8a62;
  border-radius: 999px;
  padding: .2rem .7rem;
  font-weight: 700;
  text-decoration: none;
  font-size: .95rem;
}

.pa-hero-media {
  border-radius: .6rem;
  overflow: hidden;
  min-height: 240px;
  background: #dfe6ee;
}

.pa-hero-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.pa-hero-media {
  margin: 0;
}

.pa-mod-hero .pa-hero-media {
  border: 1px solid var(--pa-border);
}

/* Generic content pattern for maintop/mainbottom:
   image on top + text content below */
.pa-media-top-card {
  display: flex;
  flex-direction: column;
  gap: .75rem;
}

.pa-media-top-card .pa-media-top {
  margin: 0;
  overflow: hidden;
  border-radius: .45rem;
  background: #dfe6ee;
}

.pa-media-top-card .pa-media-top img {
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  display: block;
}

.pa-media-top-card .pa-media-body {
  display: flex;
  flex-direction: column;
  gap: .55rem;
}

.pa-media-top-card .pa-media-body h2,
.pa-media-top-card .pa-media-body h3 {
  margin: 0;
  color: var(--pa-text);
  line-height: 1.2;
}

.pa-media-top-card .pa-media-body p {
  margin: 0;
}

.pa-media-top-card .pa-media-cta {
  margin-top: .2rem;
}

.pa-hero-media figcaption {
  font-size: .9rem;
  color: var(--pa-gray);
  margin-top: .45rem;
}

.pa-hero-split--no-image {
  grid-template-columns: 1fr;
}

.pa-hero-split--no-image .pa-hero-media {
  display: none;
}

.quick-links {
  background: var(--pa-white);
  border-bottom: 1px solid var(--pa-border);
}

.quick-links-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: .55rem;
  padding: .9rem 0;
}

.quick-links-grid a {
  text-decoration: none;
  background: var(--pa-light);
  border: 1px solid var(--pa-border);
  border-radius: .4rem;
  padding: .75rem .9rem;
  font-weight: 700;
}

.breadcrumbs-area {
  border-bottom: 1px solid var(--pa-border);
  background: #fcfdff;
  padding: .65rem 0;
}

.main-wrapper {
  padding: 1.25rem 0 2rem;
}

.main-top,
.main-bottom {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1rem;
  margin-bottom: 1rem;
}

.main-top .moduletable,
.main-bottom .moduletable {
  border: 1px solid var(--pa-border);
  border-radius: .6rem;
  background: var(--pa-white);
  padding: 1rem;
}

/* PA Blocks modules should stack one below another in maintop/mainbottom */
.main-top .pa-module--blocks,
.main-bottom .pa-module--blocks {
  grid-column: 1 / -1;
}

/* Strong fallback: PA Blocks in mainbottom stay full width */
.main-bottom .module-mod_pa_blocks {
  grid-column: 1 / -1 !important;
  width: 100%;
}

.main-top > [id^="mod-custom"],
.main-bottom > [id^="mod-custom"] {
  border: 1px solid var(--pa-border);
  border-radius: .6rem;
  background: var(--pa-white);
  padding: 1rem;
}

.pa-module {
  border: 1px solid var(--pa-border);
  border-radius: .6rem;
  background: var(--pa-white);
  padding: 1rem;
}

.pa-module + .pa-module {
  margin-top: .8rem;
}

.pa-module .module-title {
  margin: 0 0 .6rem;
  font-size: 1.18rem;
  line-height: 1.25;
}

.pa-module .module-body > :first-child {
  margin-top: 0;
}

.pa-module .module-body > :last-child {
  margin-bottom: 0;
}

.highlight-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: .9rem;
  margin: 0 0 1rem;
}

.highlight-card {
  border: 1px solid var(--pa-border);
  background: var(--pa-light);
  border-radius: .6rem;
  padding: 1rem;
}

.highlight-card h2 {
  margin: 0;
  font-size: 1.2rem;
}

.highlight-card p {
  margin: .6rem 0;
}

.content-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1rem;
}

.content-grid.no-sidebar {
  grid-template-columns: 1fr;
}

.component-shell,
.content-column .card,
.content-column article {
  border: 1px solid var(--pa-border);
  border-radius: .6rem;
  background: var(--pa-white);
  padding: 1rem;
}

.sidebar-column {
  border: 1px solid var(--pa-border);
  border-radius: .6rem;
  background: #f7fafe;
  padding: 1rem;
}

.sidebar-column .moduletable {
  margin-bottom: 1rem;
  padding-bottom: 1rem;
  border-bottom: 1px solid var(--pa-border);
}

.sidebar-column .moduletable:last-child {
  margin-bottom: 0;
  padding-bottom: 0;
  border-bottom: 0;
}

.sidebar-column .pa-module {
  background: #f7fafe;
}

.card-pa-news,
.card-pa-alert {
  border-left: 4px solid var(--pa-blue);
}

.card-pa-news .article-image {
  margin: 0 0 1rem;
}

.card-pa-news .article-image img {
  width: 100%;
  height: auto;
  border-radius: .45rem;
  display: block;
}

/* Manual module classes for Joomla Advanced tab */
:is(.pa-module, .moduletable).pa-mod-card {
  background: var(--pa-white);
  border: 1px solid var(--pa-border);
  border-radius: .6rem;
  padding: 1rem;
  color: var(--pa-text);
}

:is(.pa-module, .moduletable).pa-mod-soft {
  background: var(--pa-light);
  border: 1px solid var(--pa-border);
  border-radius: .6rem;
  padding: 1rem;
  color: var(--pa-text);
}

:is(.pa-module, .moduletable).pa-mod-hero {
  background: linear-gradient(155deg, #edf3f9 0%, #dfe9f4 100%);
  border: 1px solid var(--pa-border);
  border-radius: .6rem;
  padding: 1rem;
  color: var(--pa-text);
}

:is(.pa-module, .moduletable).pa-mod-alert {
  background: var(--pa-white);
  border: 1px solid var(--pa-border);
  border-left: 4px solid var(--pa-blue);
  border-radius: .6rem;
  padding: 1rem;
  color: var(--pa-text);
}

:is(.pa-module, .moduletable).pa-mod-list {
  background: var(--pa-white);
  border: 1px solid var(--pa-border);
  border-radius: .6rem;
  padding: 1rem;
  color: var(--pa-text);
}

:is(.pa-module, .moduletable).pa-mod-plain {
  background: transparent;
  border: 0;
  padding: 0;
}

:is(.pa-module, .moduletable).pa-mod-footer {
  background: transparent;
  border: 0;
  color: var(--pa-white);
}

:is(.pa-module, .moduletable).pa-mod-footer a,
:is(.pa-module, .moduletable).pa-mod-footer p,
:is(.pa-module, .moduletable).pa-mod-footer li,
:is(.pa-module, .moduletable).pa-mod-footer span {
  color: var(--pa-white);
}

.pa-hd-s {
  font-size: 1rem;
  margin-bottom: .45rem;
}

.pa-hd-m {
  font-size: 1.24rem;
  margin-bottom: .65rem;
}

.pa-hd-xl {
  font-size: clamp(1.65rem, 2.6vw, 2.2rem);
  margin-bottom: .75rem;
}

.pa-hd-blue {
  color: var(--pa-blue);
}

.pa-hd-gray {
  color: var(--pa-gray);
}

/* Fallback titles/content when Joomla uses inherited module chrome */
.moduletable.pa-mod-card > h1,
.moduletable.pa-mod-card > h2,
.moduletable.pa-mod-card > h3,
.moduletable.pa-mod-card > h4,
.moduletable.pa-mod-card > h5,
.moduletable.pa-mod-soft > h1,
.moduletable.pa-mod-soft > h2,
.moduletable.pa-mod-soft > h3,
.moduletable.pa-mod-soft > h4,
.moduletable.pa-mod-soft > h5,
.moduletable.pa-mod-alert > h1,
.moduletable.pa-mod-alert > h2,
.moduletable.pa-mod-alert > h3,
.moduletable.pa-mod-alert > h4,
.moduletable.pa-mod-alert > h5,
.moduletable.pa-mod-list > h1,
.moduletable.pa-mod-list > h2,
.moduletable.pa-mod-list > h3,
.moduletable.pa-mod-list > h4,
.moduletable.pa-mod-list > h5,
.moduletable.pa-mod-hero > h1,
.moduletable.pa-mod-hero > h2,
.moduletable.pa-mod-hero > h3,
.moduletable.pa-mod-hero > h4,
.moduletable.pa-mod-hero > h5 {
  margin-top: 0;
  color: var(--pa-text);
}

.moduletable.pa-mod-card p,
.moduletable.pa-mod-soft p,
.moduletable.pa-mod-alert p,
.moduletable.pa-mod-list p,
.moduletable.pa-mod-hero p,
.moduletable.pa-mod-card li,
.moduletable.pa-mod-soft li,
.moduletable.pa-mod-alert li,
.moduletable.pa-mod-list li,
.moduletable.pa-mod-hero li,
.moduletable.pa-mod-card span,
.moduletable.pa-mod-soft span,
.moduletable.pa-mod-alert span,
.moduletable.pa-mod-list span,
.moduletable.pa-mod-hero span {
  color: var(--pa-text);
}

.it-footer {
  margin-top: 2rem;
  background: var(--pa-gray);
  color: var(--pa-white);
}

.it-footer a {
  color: var(--pa-white);
}

.it-footer .pa-module {
  background: transparent;
  border: 0;
  color: var(--pa-white);
  padding: 0;
}

.it-footer .pa-module .module-title,
.it-footer .pa-module .module-body,
.it-footer .pa-module a,
.it-footer .pa-module p,
.it-footer .pa-module li,
.it-footer .pa-module span {
  color: var(--pa-white);
}

.footer-top {
  padding: 1.2rem 0;
  border-bottom: 1px solid rgba(255, 255, 255, .24);
}

.footer-top-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1rem;
}

.footer-top-modules,
.footer-bottom-modules {
  display: grid;
  grid-template-columns: 1fr;
  gap: .8rem;
}

.footer-top-modules > .moduletable,
.footer-bottom-modules > .moduletable,
.footer-top-modules > [id^="mod-custom"],
.footer-bottom-modules > [id^="mod-custom"] {
  margin: 0;
}

.footer-brand h2 {
  margin: 0;
  font-size: 1.2rem;
}

.footer-brand p {
  margin: .45rem 0 0;
}

.footer-bottom {
  padding: .95rem 0 1.2rem;
}

.footer-bottom-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: .8rem;
}

.footer-meta p {
  margin: 0;
}

.error-wrapper {
  padding: 2.5rem 0;
}

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  border: 0;
}

@media (min-width: 768px) {
  .pa-head-main {
    grid-template-columns: minmax(320px, 1fr) minmax(420px, 1fr);
    align-items: center;
  }

  .pa-head-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    align-items: center;
    gap: .5rem 1rem;
  }

  .pa-head-actions .top-nav-links,
  .pa-head-actions .social-area {
    display: inline-flex;
    align-items: center;
  }

  .pa-head-actions .search-area {
    margin-left: auto;
    flex: 1 1 360px;
    max-width: 560px;
  }

  .nav-row {
    grid-template-columns: minmax(0, 2fr) minmax(0, 1.4fr);
    align-items: center;
  }

  .nav-inner-secondary ul,
  .nav-inner-secondary .mod-menu {
    justify-content: flex-end;
  }

  .masthead-grid {
    grid-template-columns: auto minmax(260px, 420px) auto;
    gap: 1rem;
  }

  .menu-toggle {
    display: none;
  }

  .default-pa-menu {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    gap: .35rem;
    padding: .65rem 0;
  }

  .it-main-nav .pa-module .module-body > ul,
  .it-main-nav .pa-module .module-body ul.menu,
  .it-main-nav .pa-module .module-body ul.mod-menu {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    gap: .35rem;
    padding: .65rem 0;
  }

  .it-main-nav .nav-inner > ul.mod-menu,
  .it-main-nav .nav-inner > ul.mod-list,
  .it-main-nav .nav-inner > ul.nav {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    gap: .35rem;
    padding: .65rem 0;
  }

  .it-main-nav .pa-module li.parent:hover > ul,
  .it-main-nav .pa-module li:hover > ul,
  .it-main-nav .pa-module li.parent:focus-within > ul {
    display: block;
    position: absolute;
    left: 0;
    top: calc(100% + .2rem);
    min-width: 230px;
    z-index: 1200;
    box-shadow: 0 12px 24px rgba(23, 50, 77, .12);
  }

  .it-main-nav .nav-inner > ul.mod-menu li.parent:hover > ul,
  .it-main-nav .nav-inner > ul.mod-menu li:hover > ul,
  .it-main-nav .nav-inner > ul.mod-menu li.parent:focus-within > ul,
  .it-main-nav .nav-inner > ul.mod-list li.parent:hover > ul,
  .it-main-nav .nav-inner > ul.mod-list li:hover > ul,
  .it-main-nav .nav-inner > ul.mod-list li.parent:focus-within > ul,
  .it-main-nav .nav-inner > ul.nav li.parent:hover > ul,
  .it-main-nav .nav-inner > ul.nav li:hover > ul,
  .it-main-nav .nav-inner > ul.nav li.parent:focus-within > ul {
    display: block;
    position: absolute;
    left: 0;
    top: calc(100% + .2rem);
    min-width: 230px;
    z-index: 1200;
    box-shadow: 0 12px 24px rgba(23, 50, 77, .12);
  }

  .submenu-toggle {
    display: none;
  }

  .hero-default-grid {
    grid-template-columns: minmax(0, 2fr) minmax(260px, 1fr);
    gap: 1.1rem;
    align-items: center;
  }

  .pa-hero-split {
    grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr);
    gap: 1rem;
  }

  .pa-hero-split.pa-hero-img-left {
    grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr);
  }

  /* Strong override for module/editor/theme conflicts */
  .hero-area .pa-hero-split,
  .hero-area .mod-custom .pa-hero-split,
  .hero-area .moduletable .pa-hero-split {
    display: grid !important;
    grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr) !important;
    align-items: stretch;
    gap: 1rem;
  }

  .pa-hero-media {
    min-height: 360px;
  }

  .quick-links-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .highlight-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .main-top,
  .main-bottom {
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 1rem;
  }

  .content-grid {
    grid-template-columns: minmax(0, 1.9fr) minmax(280px, 1fr);
    align-items: start;
  }

  .footer-top-grid {
    grid-template-columns: minmax(0, 1fr) minmax(0, 2fr);
    gap: 1.2rem;
  }

  .footer-top-modules {
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  }

  .footer-bottom-grid {
    grid-template-columns: minmax(0, 1fr) minmax(0, 2fr);
    align-items: center;
  }
}

@media (prefers-reduced-motion: reduce) {
  * {
    animation: none !important;
    transition: none !important;
    scroll-behavior: auto !important;
  }
}

/* Desktop balance: maintop in columns, mainbottom stacked */
@media (min-width: 992px) {
  .main-top {
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)) !important;
  }

  .main-bottom {
    grid-template-columns: 1fr !important;
  }
}

/* ------------------------------------------------------------------
   Hard fallback for module suffix/header classes across core + Helix
   (handles concatenated classes like "moduletablepa-mod-card")
   ------------------------------------------------------------------ */
[class*="pa-mod-card"],
[class*="pa-mod-soft"],
[class*="pa-mod-hero"],
[class*="pa-mod-alert"],
[class*="pa-mod-list"],
[class*="pa-mod-plain"],
[class*="pa-mod-footer"] {
  border-radius: .6rem !important;
}

[class*="pa-mod-card"] {
  background: var(--pa-white) !important;
  border: 1px solid var(--pa-border) !important;
  padding: 1rem !important;
  color: var(--pa-text) !important;
}

[class*="pa-mod-soft"] {
  background: var(--pa-light) !important;
  border: 1px solid var(--pa-border) !important;
  padding: 1rem !important;
  color: var(--pa-text) !important;
}

[class*="pa-mod-hero"] {
  background: linear-gradient(155deg, #edf3f9 0%, #dfe9f4 100%) !important;
  border: 1px solid var(--pa-border) !important;
  padding: 1rem !important;
  color: var(--pa-text) !important;
}

[class*="pa-mod-alert"] {
  background: var(--pa-white) !important;
  border: 1px solid var(--pa-border) !important;
  border-left: 4px solid var(--pa-blue) !important;
  padding: 1rem !important;
  color: var(--pa-text) !important;
}

[class*="pa-mod-list"] {
  background: var(--pa-white) !important;
  border: 1px solid var(--pa-border) !important;
  padding: 1rem !important;
  color: var(--pa-text) !important;
}

[class*="pa-mod-plain"] {
  background: transparent !important;
  border: 0 !important;
  padding: 0 !important;
}

[class*="pa-mod-footer"] {
  background: transparent !important;
  border: 0 !important;
  color: var(--pa-white) !important;
}

[class*="pa-mod-footer"] a,
[class*="pa-mod-footer"] p,
[class*="pa-mod-footer"] li,
[class*="pa-mod-footer"] span {
  color: var(--pa-white) !important;
}

[class*="pa-hd-s"] {
  font-size: 1rem !important;
  margin-bottom: .45rem !important;
}

[class*="pa-hd-m"] {
  font-size: 1.24rem !important;
  margin-bottom: .65rem !important;
}

[class*="pa-hd-xl"] {
  font-size: clamp(1.65rem, 2.6vw, 2.2rem) !important;
  margin-bottom: .75rem !important;
}

[class*="pa-hd-blue"] {
  color: var(--pa-blue) !important;
}

[class*="pa-hd-gray"] {
  color: var(--pa-gray) !important;
}

/* ------------------------------------------------------------------
   SIMPLE AUTO LAYOUT FALLBACK (no HTML snippet required)
   Works with plain module content: text paragraphs + one image
   ------------------------------------------------------------------ */
@media (min-width: 992px) {
  .hero-area .pa-module.pa-mod-hero .module-body,
  .hero-area .moduletable.pa-mod-hero .module-body,
  .hero-area .pa-module[class*="pa-mod-hero"] .module-body,
  .hero-area .moduletable[class*="pa-mod-hero"] .module-body {
    display: grid !important;
    grid-template-columns: minmax(0, 1.1fr) minmax(280px, .9fr) !important;
    gap: 1rem !important;
    align-items: start !important;
  }

  .hero-area .pa-module.pa-mod-hero .module-body > *:not(img),
  .hero-area .moduletable.pa-mod-hero .module-body > *:not(img),
  .hero-area .pa-module[class*="pa-mod-hero"] .module-body > *:not(img),
  .hero-area .moduletable[class*="pa-mod-hero"] .module-body > *:not(img) {
    grid-column: 1 !important;
    margin-right: 0 !important;
  }

  .hero-area .pa-module.pa-mod-hero .module-body > img,
  .hero-area .moduletable.pa-mod-hero .module-body > img,
  .hero-area .pa-module[class*="pa-mod-hero"] .module-body > img,
  .hero-area .moduletable[class*="pa-mod-hero"] .module-body > img {
    grid-column: 2 !important;
    grid-row: 1 / span 20 !important;
    width: 100% !important;
    max-width: none !important;
    height: 100% !important;
    min-height: 280px !important;
    object-fit: cover !important;
    border-radius: .5rem !important;
    border: 1px solid var(--pa-border) !important;
    margin: 0 !important;
  }

  .hero-area .pa-module[class*="pa-hero-img-left"] .module-body > img,
  .hero-area .moduletable[class*="pa-hero-img-left"] .module-body > img {
    grid-column: 1 !important;
  }

  .hero-area .pa-module[class*="pa-hero-img-left"] .module-body > *:not(img),
  .hero-area .moduletable[class*="pa-hero-img-left"] .module-body > *:not(img) {
    grid-column: 2 !important;
  }
}

.main-top .pa-module .module-body,
.main-top .moduletable .module-body,
.main-bottom .pa-module .module-body,
.main-bottom .moduletable .module-body {
  display: flex !important;
  flex-direction: column !important;
  gap: .6rem !important;
}

.main-top .pa-module .module-body > img,
.main-top .moduletable .module-body > img,
.main-bottom .pa-module .module-body > img,
.main-bottom .moduletable .module-body > img {
  order: -1 !important;
  width: 100% !important;
  height: auto !important;
  aspect-ratio: 16 / 9 !important;
  object-fit: cover !important;
  border-radius: .45rem !important;
  border: 1px solid var(--pa-border) !important;
  margin: 0 0 .25rem !important;
}
