@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:wght@400&family=Roboto:wght@200;300;400&family=Roboto+Condensed:wght@300;400&display=swap');
/* OSDM 1.0.9 — consolidated stylesheet. Keep module positions and Joomla core views unchanged. */
:root {
  --osdm-ink:#282727;
  --osdm-menu-footer:#2a2933;
  --osdm-accent:#e9a454;
  --osdm-header-width:1140px;
}
html {scroll-behavior:smooth;}
body.site {
  margin:0;
  min-height:100vh;
  min-height:100svh;
  display:flex;
  flex-direction:column;
  background:#fff;
  color:#242a30;
}
/* Consistent link appearance, without ornamental text underlines. */
body.site a, body.site a:hover, body.site a:focus, body.site a:active {text-decoration:none !important;}
body.site a:focus-visible, body.site button:focus-visible {outline:2px solid #bd8750;outline-offset:3px;}
.container-header {
  position:relative;
  flex:none;
  background:linear-gradient(180deg,#e8e1cf 0%,#fdfbf7 100%) !important;
  background-image:linear-gradient(180deg,#e8e1cf 0%,#fdfbf7 100%) !important;
  color:var(--osdm-ink) !important;
  border-bottom:1px solid rgba(90,78,58,.17);
  box-shadow:0 2px 7px rgba(0,0,0,.055);
  z-index:20;
  overflow:visible;
}
.container-header .grid-child {
  width:min(calc(100% - 2rem),var(--osdm-header-width));
  max-width:var(--osdm-header-width);
  margin-inline:auto;
}
.container-header a:not(.osdm-main-menu a) {color:var(--osdm-ink);}
.container-header .osdm-brand-row {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:1.5rem;
  min-height:0;
  padding:2px 0 0;
}
.osdm-brand-row .navbar-brand {min-width:0;margin:0;padding:0;}
.osdm-brand-row .brand-logo {display:block;width:508px;max-width:100%;line-height:0;}
.osdm-brand-row .brand-logo img {display:block;width:508px;max-width:100%;height:auto;aspect-ratio:700/146;object-fit:contain;}
.osdm-header-tools {display:flex;align-items:center;justify-content:flex-end;gap:10px;align-self:center;flex-wrap:wrap;}
.osdm-header-logo img {max-height:65px;width:auto;}
.container-header .osdm-social-icon {
  width:29px;height:29px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;
  background:rgba(42,41,51,.13);color:#55515b !important;
  transition:background-color .2s ease,transform .2s ease,color .2s ease;
}
.container-header .osdm-social-icon svg {width:16px;height:16px;fill:currentColor;display:block;}
.container-header a.osdm-social-icon:hover {transform:translateY(-2px);background:var(--osdm-menu-footer);color:#fff !important;}
.osdm-social-inactive {cursor:default;opacity:.8;}
/* Desktop menu field: same width as content, slightly overlaps the lower header border. */
.osdm-nav {
  display:flex;
  align-items:stretch;
  justify-content:stretch;
  width:min(calc(100% - 2rem),var(--osdm-header-width));
  max-width:var(--osdm-header-width);
  padding:0;
  margin:-12px auto 0;
  transform:none;
  position:sticky;
  top:0;
  z-index:1000;
  flex:none;
}
.osdm-nav .osdm-main-menu {
  width:100%;min-width:0;
  margin:0;
  background:var(--osdm-menu-footer);
  border-radius:2px;
  padding:4px 12px;
  box-shadow:0 6px 17px rgba(33,30,39,.16);
}
.osdm-nav .osdm-main-menu > .moduletable,
.osdm-nav .osdm-main-menu > .mod-menu,
.osdm-nav .osdm-main-menu > ul.mod-menu {width:100%;}
/* First-level menu: Cassiopeia normally supplies layout via .container-header.
   Since navigation is now a sticky sibling, declare the same layout here.
   IMPORTANT: scope this strictly to the top-level list, not dropdowns. */
body.site > .osdm-nav nav.osdm-main-menu > ul.mod-menu {
  display:flex !important; flex-direction:row !important;
  justify-content:space-between !important;align-items:stretch !important;
  flex-wrap:nowrap !important;list-style:none;margin:0;padding:0;gap:0;
  width:100%;
}
.osdm-nav .osdm-main-menu > ul.mod-menu > li {
  position:relative;min-width:0;list-style:none;
  flex:0 1 auto !important; width:auto !important;
  display:flex;align-items:center;
  border:0 !important;box-shadow:none !important;
  background-image:none !important;
}
.osdm-nav .osdm-main-menu > ul.mod-menu > li > a,
.osdm-nav .osdm-main-menu > ul.mod-menu > li > button,
.osdm-nav .osdm-main-menu > ul.mod-menu > li > .mod-menu__heading {
  position:relative;display:inline-flex;align-items:center;gap:.4rem;
  padding:.88rem .65rem !important;
  color:#f5f2ec !important;
  font-size:.79rem;font-weight:600;line-height:1.3;
  letter-spacing:.015em;text-transform:uppercase;white-space:nowrap;
  border:0 !important;border-bottom:0 !important;box-shadow:none !important;
  background:transparent !important;background-image:none !important;
  text-decoration:none !important;
  transition:color .18s ease;
}
.osdm-nav .osdm-main-menu > ul.mod-menu > li > a:hover,
.osdm-nav .osdm-main-menu > ul.mod-menu > li > a:focus-visible,
.osdm-nav .osdm-main-menu > ul.mod-menu > li > button:hover {color:#fff6e6 !important;}
/* Recreate the menu module wrapper's horizontal context outside the header. */
@media (min-width:768px) {
  body.site > .osdm-nav .osdm-main-menu,
  body.site > .osdm-nav .osdm-main-menu > .moduletable {
    display:block; min-width:0; width:100%;
  }
  body.site > .osdm-nav .osdm-main-menu > ul.mod-menu > li > a,
  body.site > .osdm-nav .osdm-main-menu > ul.mod-menu > li > button {
    width:auto !important;
  }
}
/* Single indicator lives exclusively on top-level LI. Disable Cassiopeia/metismenu link indicators. */
.osdm-nav .osdm-main-menu > ul.mod-menu > li > a::before,
.osdm-nav .osdm-main-menu > ul.mod-menu > li > a::after,
.osdm-nav .osdm-main-menu > ul.mod-menu > li > button::before,
.osdm-nav .osdm-main-menu > ul.mod-menu > li > button::after,
.osdm-nav .osdm-main-menu > ul.mod-menu > li > .mod-menu__heading::before,
.osdm-nav .osdm-main-menu > ul.mod-menu > li > .mod-menu__heading::after {
  content:none !important;display:none !important;
  box-shadow:none !important;border:0 !important;background:none !important;
}
.osdm-nav .osdm-main-menu > ul.mod-menu > li::before {
  content:none !important;display:none !important;
}
.osdm-nav .osdm-main-menu > ul.mod-menu > li::after {
  content:"" !important;display:block !important;
  position:absolute;left:.65rem;right:.65rem;bottom:5px;
  height:1px;border:0 !important;pointer-events:none;
  background:var(--osdm-accent) !important;
  transform:scaleX(0);transform-origin:left center;
  transition:transform .25s ease-out;
}
.osdm-nav .osdm-main-menu > ul.mod-menu > li:hover::after,
.osdm-nav .osdm-main-menu > ul.mod-menu > li:focus-within::after,
.osdm-nav .osdm-main-menu > ul.mod-menu > li.active::after,
.osdm-nav .osdm-main-menu > ul.mod-menu > li.current::after {transform:scaleX(1);}
/* Submenu: keep Joomla metismenu dropdown mechanics and nested layout intact. */
.osdm-nav .osdm-main-menu .mod-menu__sub,
.osdm-nav .osdm-main-menu .mm-collapse,
.osdm-nav .osdm-main-menu .dropdown-menu {
  z-index:100;
  width:max-content;min-width:265px;max-width:min(380px,calc(100vw - 2rem));
  padding:10px 0;
  background:rgba(253,251,247,.80) !important; /* 20% transparency */
  color:var(--osdm-ink);
  border:1px solid rgba(120,105,83,.18);
  box-shadow:0 12px 30px rgba(31,29,37,.17);
  border-radius:2px;
  backdrop-filter:blur(2px);
}
.osdm-nav .osdm-main-menu .mod-menu__sub li,
.osdm-nav .osdm-main-menu .mm-collapse li,
.osdm-nav .osdm-main-menu .dropdown-menu li {min-width:0;}
.osdm-nav .osdm-main-menu .mod-menu__sub a,
.osdm-nav .osdm-main-menu .mm-collapse a,
.osdm-nav .osdm-main-menu .dropdown-menu a {
  display:block;padding:12px 19px !important;
  white-space:normal;overflow-wrap:normal;
  line-height:1.5;font-size:.8rem;font-weight:500;
  text-transform:uppercase;letter-spacing:.015em;
  color:#282727 !important;
  transition:color .2s ease,background-color .2s ease;
}
.osdm-nav .osdm-main-menu .mod-menu__sub a:hover,
.osdm-nav .osdm-main-menu .mm-collapse a:hover,
.osdm-nav .osdm-main-menu .dropdown-menu a:hover {background:rgba(229,212,187,.55) !important;color:#714124 !important;}
@media (min-width:992px) and (prefers-reduced-motion:no-preference) {
  .osdm-nav .osdm-main-menu .mod-menu__sub,
  .osdm-nav .osdm-main-menu .mm-collapse,
  .osdm-nav .osdm-main-menu .dropdown-menu {animation:osdm-submenu-in .2s ease-out;}
  @keyframes osdm-submenu-in {from {opacity:0;transform:translateY(6px);} to {opacity:1;transform:translateY(0);}}
}
/* 1.0.23 — dropdowns are out of document flow, never stretch the sticky bar.
   Joomla/metismenu still manages visibility; these rules only set geometry. */
@media (min-width: 992px) {
  body.site > .osdm-nav .osdm-main-menu > ul.mod-menu > li {
    position:relative;
    align-self:stretch;
  }
  body.site > .osdm-nav .osdm-main-menu > ul.mod-menu > li > :is(ul,.mod-menu__sub,.mm-collapse,.mm-collapsing,.dropdown-menu) {
    position:absolute !important;
    top:100%;
    left:0;
    margin:0;
    z-index:1100;
    min-width:265px;
  }
  body.site > .osdm-nav .osdm-main-menu > ul.mod-menu > li > .mm-collapse:not(.mm-show):not(.show):not(.mm-collapsing) {
    display:none;
  }
}
/* On the home page the dark navigation overlaps the hero image, without
   touching interior pages or the standalone parallax module. */
@media (min-width: 992px) {
  body.site.osdm-home > .osdm-nav { margin-bottom:-48px; }
}
/* Main area and menu now use the same horizontal boundaries. */
.site-grid {
  display:block !important;
  width:min(calc(100% - 2rem),var(--osdm-header-width));
  max-width:var(--osdm-header-width);
  margin:2.1rem auto 2.5rem;
  flex:1 0 auto;
}
.site-grid > * {min-width:0;margin-bottom:1.5rem;}
.osdm-main-row {display:flex !important;flex-direction:row;align-items:flex-start;gap:1.5rem;width:100%;min-width:0;}
.osdm-main-row > .container-component {
  flex:1 1 0;min-width:0;width:auto !important;max-width:none !important;
  grid-area:auto !important;grid-column:auto !important;grid-row:auto !important;
}
.osdm-main-row > .container-sidebar-right,
.osdm-main-row > .container-sidebar-left {
  flex:0 0 250px;width:250px !important;min-width:0;max-width:250px !important;
  margin:0;grid-area:auto !important;grid-column:auto !important;grid-row:auto !important;
  overflow-wrap:break-word;
}
.osdm-main-row > aside .moduletable,.osdm-main-row > aside .card {width:100%;max-width:100%;}
.container-component img,.container-component iframe {max-width:100%;}
.container-component img {height:auto;}
.container-component {overflow-wrap:break-word;}
.container-component .blog-items,.container-component .blog-items > * {min-width:0;}
.osdm-slider {grid-column:1/-1;min-width:0;}
.osdm-novo {margin-block:1rem;}
body.osdm-home .osdm-main-row > .container-component {flex:1 1 100%;width:100% !important;}
body.osdm-home .osdm-main-row > aside {display:none !important;}
/* Footer stays at viewport bottom on short pages; copyright row from 2019 design. */
.container-footer.footer {
  flex:none;
  margin-top:auto !important;
  padding:2rem 1rem 0 !important;
  background:var(--osdm-menu-footer) !important;
  background-image:none !important;
  color:#c9c7ca;
}
.container-footer .osdm-footer-columns {
  max-width:var(--osdm-header-width);width:100%;margin:0 auto;
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));
  gap:clamp(1rem,3vw,2.5rem);align-items:start;
  padding-bottom:1.65rem;
}
.container-footer .osdm-footer-column {min-width:0;overflow-wrap:anywhere;}
.container-footer .osdm-footer-column img {max-width:100%;height:auto;}
.container-footer a,.container-footer .mod-custom {color:inherit;}
.container-footer a:hover {color:#fff;}
.container-footer .osdm-footer-copyright {
  width:100%;max-width:var(--osdm-header-width);
  margin:0 auto;
  padding:1.05rem .5rem 1.25rem;
  border-top:1px solid rgba(255,255,255,.24);
  color:#c9c7ca;
  text-align:center;
  font-size:.82rem;
}
.container-footer .osdm-footer-copyright p {margin:0;}
@media (max-width:991px) {
  .osdm-main-row {flex-direction:column !important;}
  .osdm-main-row > .container-component,
  .osdm-main-row > .container-sidebar-right,
  .osdm-main-row > .container-sidebar-left {flex:none;width:100% !important;max-width:none !important;}
  .osdm-nav {margin:-12px auto 0;padding:0;}
  .osdm-nav .osdm-main-menu {width:100%;}
  .osdm-nav .osdm-main-menu > ul.mod-menu {flex-wrap:wrap;justify-content:flex-start;}
}
@media (max-width:767px) {
  .container-header .osdm-brand-row {flex-direction:column;align-items:flex-start;gap:.25rem;padding-top:.75rem;}
  .osdm-brand-row .brand-logo {width:min(100%,434px);}
  .osdm-brand-row .brand-logo img {width:100%;max-width:434px;}
  .osdm-header-tools {align-self:flex-end;}
  body.site > .osdm-nav nav.osdm-main-menu > ul.mod-menu {display:block !important;}
  .osdm-nav .osdm-main-menu > ul.mod-menu > li > a {white-space:normal;}
  .container-footer .osdm-footer-columns {grid-template-columns:1fr;}
}
@media (prefers-reduced-motion:reduce) {
  html {scroll-behavior:auto;}
  .container-header .osdm-social-icon,
  .osdm-nav .osdm-main-menu > ul.mod-menu > li::after,
  .osdm-nav .osdm-main-menu a {transition:none !important;}
  .osdm-nav .osdm-main-menu .mod-menu__sub,
  .osdm-nav .osdm-main-menu .mm-collapse,
  .osdm-nav .osdm-main-menu .dropdown-menu {animation:none !important;}
}

/* 1.0.10 – calmer, more readable editorial typography. */
:root {
  --osdm-heading-color: #344d63;
  --osdm-heading-hover: #93623e;
}
body.site {
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
  font-weight: 400;
  line-height: 1.6;
}
/* Restrict editorial styling to the content, preserving menu and footer typography. */
body.site .container-component h1,
body.site .container-component h2,
body.site .container-component h3,
body.site .container-component .page-header h1,
body.site .container-component .page-header h2,
body.site .container-component .item-title,
body.site .container-component .article-title {
  color: var(--osdm-heading-color);
  font-family: inherit;
  font-weight: 500;
  letter-spacing: -.02em;
  line-height: 1.23;
}
body.site .container-component h1,
body.site .container-component .page-header h1 {font-size: clamp(2rem, 2.7vw, 2.55rem);}
body.site .container-component h2,
body.site .container-component .page-header h2,
body.site .container-component .item-title {font-size: clamp(1.65rem, 2.25vw, 2.12rem);}
body.site .container-component h3 {font-size: clamp(1.3rem, 1.75vw, 1.65rem);}
body.site .container-component :is(h1,h2,h3,.item-title,.article-title) a,
body.site .container-component :is(h1,h2,h3,.item-title,.article-title) a:visited {
  color: var(--osdm-heading-color) !important;
  font-weight: inherit;
  text-decoration: none !important;
  transition: color .2s ease;
}
body.site .container-component :is(h1,h2,h3,.item-title,.article-title) a:hover,
body.site .container-component :is(h1,h2,h3,.item-title,.article-title) a:focus-visible {
  color: var(--osdm-heading-hover) !important;
}
/* One clearly visible navigation indicator; no secondary link underlines. */
.osdm-nav .osdm-main-menu > ul.mod-menu > li::after {
  background-color: #e9a454 !important;
  background-image: none !important;
  height: 1px !important;
  opacity: 1;
}
@media (max-width: 767px) {
  body.site .container-component h1 {font-size: 1.9rem;}
  body.site .container-component h2 {font-size: 1.6rem;}
}

/* 1.0.11 — requested font family test; Playfair Display exists at 400–900 only. */
body.site,
body.site .container-component,
body.site .container-sidebar-right,
body.site .container-sidebar-left,
body.site .container-footer {
  font-family: "Roboto", Arial, sans-serif;
  font-weight: 300;
}
body.site .container-component :is(h1,h2,h3,h4,h5,h6,.page-header h1,.page-header h2,.item-title,.article-title),
body.site .container-component :is(h1,h2,h3,h4,h5,h6,.item-title,.article-title) a {
  font-family: "Playfair Display", Georgia, serif !important;
  font-weight: 400 !important;
  letter-spacing: -.012em;
}
body.site .osdm-nav .osdm-main-menu > ul.mod-menu > li > a,
body.site .osdm-nav .osdm-main-menu > ul.mod-menu > li > button,
body.site .osdm-nav .osdm-main-menu > ul.mod-menu > li > .mod-menu__heading,
body.site .osdm-nav .osdm-main-menu .mod-menu__sub a,
body.site .osdm-nav .osdm-main-menu .mm-collapse a,
body.site .osdm-nav .osdm-main-menu .dropdown-menu a {
  font-family: "Roboto Condensed", "Arial Narrow", Arial, sans-serif !important;
  font-weight: 300 !important;
}
/* Keep the single hover indicator thin. */
body.site .osdm-nav .osdm-main-menu > ul.mod-menu > li::after {
  height: 1px !important;
}


/* OSDM 1.0.12 — targeted typography and spacing polish. */
/* Top navigation: the requested font size relative to its default size. */
body.site .osdm-nav .osdm-main-menu > ul.mod-menu > li > a,
body.site .osdm-nav .osdm-main-menu > ul.mod-menu > li > button,
body.site .osdm-nav .osdm-main-menu > ul.mod-menu > li > .mod-menu__heading {
  font-size: .92em !important;
  font-weight: 300 !important;
  line-height: 1.35;
  padding: .83rem .55rem !important;
}
/* Editorial hierarchy: headings have breathing room, text retains a coherent rhythm. */
body.site .container-component {
  font-weight: 300;
  line-height: 1.65;
}
body.site .container-component :is(h1,h2,h3,h4,h5,h6) {
  margin-block-start: 1.35em;
  margin-block-end: .42em;
  line-height: 1.23;
}
body.site .container-component :is(h1,h2,h3,h4,h5,h6):first-child,
body.site .container-component .page-header :is(h1,h2):first-child {
  margin-block-start: 0;
}
body.site .container-component p {
  margin-block-start: 0;
  margin-block-end: .85rem;
}
body.site .container-component :is(h1,h2,h3,h4,h5,h6) + p {
  margin-block-start: .18rem;
}
body.site .container-component :is(ul,ol) {
  margin-block-start: .35rem;
  margin-block-end: 1rem;
}
body.site .container-component li { margin-block-end: .18rem; }
/* Joomla blog titles are separate from the article intros. */
body.site .container-component :is(.page-header,.item-title,.article-title) {
  margin-block-start: 0;
  margin-block-end: .75rem;
}
body.site .container-component .blog-item,
body.site .container-component .items-leading > *,
body.site .container-component .blog-items > * {
  min-width:0;
}
body.site .container-component .blog-item .page-header { margin-block-end: .65rem; }
/* Do not disturb the menu indicator, footer, or grid layout. */


/* OSDM 1.0.13 — align editorial content inside the wider menu (8px each side). */
body.site .site-grid {
  width:min(calc(100% - 2rem - 16px), calc(var(--osdm-header-width) - 16px));
  max-width:calc(var(--osdm-header-width) - 16px);
}
/* Use the same light condensed typography and size in both menu levels. */
body.site .osdm-nav .osdm-main-menu :is(.mod-menu__sub,.mm-collapse,.dropdown-menu) a {
  font-family:"Roboto Condensed","Arial Narrow",Arial,sans-serif !important;
  font-size:.92em !important;
  font-weight:300 !important;
  line-height:1.5;
}
/* Improve the vertical rhythm between successive short content sections. */
body.site .container-component :is(h1,h2,h3,h4,h5,h6) {
  margin-block-start:1.08em;
  margin-block-end:.34em;
}
body.site .container-component .blog-item .page-header {margin-block-end:.5rem;}
/* The legacy slider is just a module position: span the viewport only if populated. */
body.site .site-grid > .osdm-slider {
  width:100vw;
  max-width:none;
  margin-left:calc(50% - 50vw);
  margin-right:calc(50% - 50vw);
  margin-top:-2.1rem;
  margin-bottom:2.1rem;
  padding:0;
}
.osdm-slider > :is(.moduletable,.mod-custom),
.osdm-slider > .moduletable > .mod-custom {
  width:100%;max-width:none;
}
.osdm-slider img {display:block;width:100%;max-width:100%;height:auto;}
.osdm-slider p {margin:0;}
/* Optional, not automatic: switches on only in the template style settings. */
.osdm-slider.osdm-slider-parallax {
  height:clamp(260px,38vw,560px);
  overflow:hidden;
  position:relative;
  isolation:isolate;
}
.osdm-slider.osdm-slider-parallax :is(.moduletable,.mod-custom,p) {height:100%;}
.osdm-slider.osdm-slider-parallax img {
  width:100%;height:100%;object-fit:cover;
  transform:translate3d(0,var(--osdm-parallax-shift,0px),0) scale(1.2);
  transform-origin:center center;
  will-change:transform;
}
@media (max-width:767px), (prefers-reduced-motion:reduce) {
  .osdm-slider.osdm-slider-parallax {height:auto;min-height:0;}
  .osdm-slider.osdm-slider-parallax :is(.moduletable,.mod-custom,p) {height:auto;}
  .osdm-slider.osdm-slider-parallax img {height:auto;transform:none !important;will-change:auto;}
}

/* OSDM 1.0.20 — only a Custom module using the "paralaks" layout enables this.
   No changes to navigation or page columns. */
body.site .site-grid > .osdm-slider.osdm-slider-parallax {
  position:relative;
  height:550px;
  max-height:none;
  overflow:hidden;
  isolation:isolate;
  --osdm-parallax-shift:0px;
}
body.site .osdm-slider.osdm-slider-parallax img {
  display:block;
  position:absolute;
  left:0;
  top:-70px;
  width:100%;
  height:calc(100% + 140px);
  max-width:none;
  object-fit:cover;
  object-position:center center;
  transform:translate3d(0,var(--osdm-parallax-shift),0);
  will-change:transform;
}
@media (max-width:767px), (prefers-reduced-motion:reduce) {
  body.site .site-grid > .osdm-slider.osdm-slider-parallax {height:auto;max-height:none;}
  body.site .osdm-slider.osdm-slider-parallax img {
    position:static;top:auto;width:100%;height:auto;
    transform:none !important;will-change:auto;
  }
}

/* 1.0.21 — sticky menu is a direct sibling of the header, not its descendant.
   Keep dropdowns absolutely positioned by Joomla; do not override their state. */
body.site > .osdm-nav { position:sticky; top:0; z-index:1000; }

/* OSDM 1.0.24 — precisely scoped submenu typography and mobile toggle.
   REM avoids compounded inheritance from Joomla nested list/link rules. */
@media (min-width: 992px) {
  body.site .osdm-nav .osdm-main-menu :is(.mod-menu__sub,.mm-collapse,.dropdown-menu) a {
    font-size: .92rem !important;
    font-weight: 400 !important;
    line-height: 1.5;
  }
}
.osdm-mobile-toggle { display:none; }
@media (max-width: 991px) {
  body.site > .osdm-nav {
    display:block;
    margin:-8px auto 0;
    background:var(--osdm-menu-footer);
    box-shadow:0 6px 17px rgba(33,30,39,.16);
    border-radius:2px;
    padding:0;
  }
  body.site .osdm-mobile-toggle {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:1rem;
    width:100%;
    padding:14px 18px;
    border:0;
    background:transparent;
    color:#f5f2ec;
    cursor:pointer;
    font-family:"Roboto Condensed",Arial,sans-serif;
    font-weight:400;
    font-size:1rem;
    text-transform:uppercase;
  }
  .osdm-mobile-toggle .osdm-burger {display:grid;gap:5px;}
  .osdm-mobile-toggle .osdm-burger span {display:block;width:23px;height:2px;background:currentColor;border-radius:2px;transition:transform .2s ease,opacity .2s ease;}
  .osdm-nav.osdm-mobile-open .osdm-burger span:first-child {transform:translateY(7px) rotate(45deg);}
  .osdm-nav.osdm-mobile-open .osdm-burger span:nth-child(2) {opacity:0;}
  .osdm-nav.osdm-mobile-open .osdm-burger span:last-child {transform:translateY(-7px) rotate(-45deg);}
  body.site > .osdm-nav nav.osdm-main-menu {display:none;width:100%;padding:0 12px 12px;max-height:calc(100dvh - 75px);overflow-y:auto;background:transparent;box-shadow:none;}
  body.site > .osdm-nav.osdm-mobile-open nav.osdm-main-menu {display:block;}
  body.site > .osdm-nav nav.osdm-main-menu > ul.mod-menu {
    display:block !important;
    width:100%;
    padding:0;
    margin:0;
  }
  body.site > .osdm-nav nav.osdm-main-menu > ul.mod-menu > li {
    display:block !important;
    width:100% !important;
    padding:0;
    flex:none !important;
  }
  body.site > .osdm-nav nav.osdm-main-menu > ul.mod-menu > li > a,
  body.site > .osdm-nav nav.osdm-main-menu > ul.mod-menu > li > button,
  body.site > .osdm-nav nav.osdm-main-menu > ul.mod-menu > li > .mod-menu__heading {
    display:flex;
    width:100% !important;
    justify-content:space-between;
    font-size:1rem !important;
    white-space:normal;
    padding:13px 12px !important;
  }
  body.site .osdm-nav .osdm-main-menu :is(.mod-menu__sub,.mm-collapse,.dropdown-menu) {
    position:static !important;
    width:100%;
    min-width:0;
    max-width:none;
    margin:0;
    box-shadow:none;
  }
  body.site .osdm-nav .osdm-main-menu :is(.mod-menu__sub,.mm-collapse,.dropdown-menu) a {
    font-size:.92rem !important;
    font-weight:400 !important;
  }
  body.site .osdm-nav .osdm-main-menu > ul.mod-menu > li::after {display:none !important;}
}
@media (prefers-reduced-motion: reduce) {
  .osdm-mobile-toggle .osdm-burger span {transition:none;}
}

/* OSDM 1.0.25: mobile-only clean header navigation.
   Overrides the previous mobile bar; desktop rules remain intact. */
@media (max-width: 991px) {
  body.site .container-header .osdm-brand-row {
    display:flex !important;
    flex-direction:row !important;
    align-items:center !important;
    justify-content:space-between !important;
    gap:12px !important;
    padding:10px 0 !important;
  }
  body.site .osdm-brand-row .navbar-brand {
    flex:1 1 auto;min-width:0;max-width:calc(100% - 58px);
  }
  body.site .osdm-brand-row .brand-logo,
  body.site .osdm-brand-row .brand-logo img {
    width:100%;max-width:508px;height:auto;
  }
  body.site .container-header .osdm-header-tools {display:none !important;}
  body.site .container-header .osdm-mobile-toggle {
    display:flex !important;
    flex:0 0 44px;
    align-items:center;
    justify-content:center;
    width:44px;height:44px;
    margin:0;padding:8px;
    background:transparent !important;
    color:#2a2933 !important;
    border:0 !important;
    border-radius:4px;
    box-shadow:none !important;
    cursor:pointer;
  }
  body.site .container-header .osdm-burger {display:grid;gap:6px;}
  body.site .container-header .osdm-burger span {
    display:block;width:26px;height:2px;border-radius:2px;
    background:#2a2933;
    transition:transform .2s ease,opacity .2s ease;
  }
  body.site:has(.osdm-nav.osdm-mobile-open) .osdm-burger span:first-child {transform:translateY(8px) rotate(45deg);}
  body.site:has(.osdm-nav.osdm-mobile-open) .osdm-burger span:nth-child(2) {opacity:0;}
  body.site:has(.osdm-nav.osdm-mobile-open) .osdm-burger span:last-child {transform:translateY(-8px) rotate(-45deg);}
  body.site > .osdm-nav {
    position:relative !important;
    display:block !important;
    width:min(calc(100% - 2rem),var(--osdm-header-width));
    height:0 !important;
    margin:0 auto !important;
    padding:0 !important;
    border:0 !important;
    background:transparent !important;
    box-shadow:none !important;
    z-index:1000;
    overflow:visible;
  }
  body.site > .osdm-nav nav.osdm-main-menu {
    display:none !important;
    position:absolute !important;
    top:0;left:0;right:0;
    width:100% !important;
    max-height:min(75dvh,650px);
    overflow-y:auto;
    margin:0 !important;
    padding:12px !important;
    background:rgba(42,41,51,.94) !important;
    -webkit-backdrop-filter:blur(5px);
    backdrop-filter:blur(5px);
    box-shadow:0 12px 25px rgba(0,0,0,.18);
    border-radius:0 0 3px 3px;
  }
  body.site > .osdm-nav.osdm-mobile-open nav.osdm-main-menu {display:block !important;}
  body.site .osdm-nav .osdm-main-menu > ul.mod-menu > li::after {display:none !important;}
  body.site .osdm-nav .osdm-main-menu :is(.mod-menu__sub,.mm-collapse,.dropdown-menu) {
    background:rgba(253,251,247,.94) !important;
    backdrop-filter:none;
  }
}
@media (prefers-reduced-motion:reduce) {
  body.site .container-header .osdm-burger span {transition:none !important;}
}

/* OSDM 1.0.26 — Mobile-only submenu hierarchy.
   Joomla/MetisMenu remains responsible for opening and closing sections.
   Only the first-level LI becomes a two-column row, keeping the arrow on the right.
   Desktop and sticky menu rules are untouched. */
@media (max-width: 991px) {
  body.site > .osdm-nav nav.osdm-main-menu > ul.mod-menu > li {
    display:grid !important;
    grid-template-columns:minmax(0,1fr) 42px;
    align-items:center;
    column-gap:0;
    width:100% !important;
    background:transparent !important;
    border-bottom:1px solid rgba(255,255,255,.09) !important;
  }
  body.site > .osdm-nav nav.osdm-main-menu > ul.mod-menu > li > a,
  body.site > .osdm-nav nav.osdm-main-menu > ul.mod-menu > li > .mod-menu__heading {
    grid-column:1;
    grid-row:1;
    display:flex !important;
    align-items:center;
    min-width:0;
    width:100% !important;
    margin:0 !important;
    padding:15px 10px !important;
    color:#f5f2ec !important;
    font-family:"Roboto Condensed",Arial,sans-serif !important;
    font-size:1.05rem !important;
    font-weight:400 !important;
    line-height:1.35 !important;
    letter-spacing:.015em;
    text-transform:uppercase;
    text-decoration:none !important;
  }
  /* Items without a disclosure button use the entire row. */
  body.site > .osdm-nav nav.osdm-main-menu > ul.mod-menu > li:not(:has(> button)) > a,
  body.site > .osdm-nav nav.osdm-main-menu > ul.mod-menu > li:not(:has(> button)) > .mod-menu__heading {
    grid-column:1 / -1;
  }
  body.site > .osdm-nav nav.osdm-main-menu > ul.mod-menu > li > button {
    grid-column:2;
    grid-row:1;
    position:relative !important;
    inset:auto !important;
    display:flex !important;
    align-items:center;
    justify-content:center;
    place-self:stretch;
    min-width:42px;
    width:42px !important;
    height:auto;
    margin:0 !important;
    padding:0 !important;
    border:0 !important;
    border-radius:0;
    background:transparent !important;
    color:#f5f2ec !important;
    font-size:1rem !important;
    line-height:1 !important;
    cursor:pointer;
  }
  body.site > .osdm-nav nav.osdm-main-menu > ul.mod-menu > li > button:hover,
  body.site > .osdm-nav nav.osdm-main-menu > ul.mod-menu > li > button:focus-visible {
    background:rgba(255,255,255,.09) !important;
  }
  body.site > .osdm-nav nav.osdm-main-menu > ul.mod-menu > li > :is(ul,.mod-menu__sub,.mm-collapse,.mm-collapsing,.dropdown-menu) {
    grid-column:1 / -1;
    grid-row:2;
    position:static !important;
    width:100% !important;
    min-width:0 !important;
    max-width:none !important;
    margin:0 0 8px !important;
    padding:4px 0 6px 10px !important;
    border:0 !important;
    border-left:1px solid #e9a454 !important;
    border-radius:0 !important;
    background:rgba(55,53,63,.92) !important;
    box-shadow:none !important;
    backdrop-filter:none !important;
    animation:none !important;
  }
  body.site > .osdm-nav nav.osdm-main-menu > ul.mod-menu > li > :is(ul,.mod-menu__sub,.mm-collapse,.mm-collapsing,.dropdown-menu) li {
    display:block !important;
    background:transparent !important;
    border:0 !important;
  }
  body.site > .osdm-nav nav.osdm-main-menu > ul.mod-menu > li > :is(ul,.mod-menu__sub,.mm-collapse,.mm-collapsing,.dropdown-menu) a {
    display:block !important;
    padding:12px 14px !important;
    color:#ece9e4 !important;
    background:transparent !important;
    font-family:"Roboto Condensed",Arial,sans-serif !important;
    font-weight:400 !important;
    font-size:1rem !important;
    line-height:1.45 !important;
    letter-spacing:.01em;
    text-transform:uppercase;
    text-decoration:none !important;
    white-space:normal;
    overflow-wrap:break-word;
  }
  body.site > .osdm-nav nav.osdm-main-menu > ul.mod-menu > li > :is(ul,.mod-menu__sub,.mm-collapse,.mm-collapsing,.dropdown-menu) a:hover,
  body.site > .osdm-nav nav.osdm-main-menu > ul.mod-menu > li > :is(ul,.mod-menu__sub,.mm-collapse,.mm-collapsing,.dropdown-menu) a:focus-visible {
    background:rgba(255,255,255,.09) !important;
    color:#fff !important;
  }
}

/* OSDM 1.0.28 — desktop header finishing only.
   Mobile navigation and the independent parallax module remain unchanged. */
@media (min-width: 992px) {
  body.site .container-header .osdm-brand-row {
    padding-bottom: 12px;
  }
  body.site .container-header .osdm-header-tools {
    padding-right: 20px;
  }
  body.site > .osdm-nav nav.osdm-main-menu {
    background: rgba(42, 41, 51, .96);
    -webkit-backdrop-filter: blur(4px);
    backdrop-filter: blur(4px);
  }
}


/* OSDM 1.0.30 — undecorated full-bleed home-feature image.
   Keep the module inserted after the first leading article, without borders or backgrounds. */
body.site.osdm-home .osdm-home-blog .osdm-home-leading {
  display:block !important;
}
body.site.osdm-home .osdm-home-blog .osdm-home-leading > .osdm-home-lead-first {
  margin:0 0 clamp(2rem,4vw,3rem);
  padding:0;
  border:0;
}
body.site.osdm-home .osdm-home-blog .osdm-home-lead-first .page-header,
body.site.osdm-home .osdm-home-blog .osdm-home-lead-first .item-title {
  margin-bottom:.75rem;
}
body.site.osdm-home .osdm-home-blog .osdm-home-lead-first img {
  max-width:100%;height:auto;
}
/* Break out of the content container; no frame, divider, color or shadow. */
body.site.osdm-home .osdm-home-blog .osdm-home-feature {
  position:relative;
  width:100vw;
  max-width:none;
  margin:0 0 clamp(2rem,4vw,3rem);
  margin-left:calc(50% - 50vw);
  padding:0;
  background:transparent;
  border:0;
  box-shadow:none;
}
body.site.osdm-home .osdm-home-blog .osdm-home-feature :is(img,video,iframe) {
  display:block;
  width:100%;
  max-width:100%;
  height:auto;
  border:0;
  border-radius:0;
  box-shadow:none;
}
body.site.osdm-home .osdm-home-blog .osdm-home-feature > :last-child {margin-bottom:0;}
@media (max-width:767px) {
  body.site.osdm-home .osdm-home-blog .osdm-home-leading > .osdm-home-lead-first {margin-bottom:1.75rem;}
  body.site.osdm-home .osdm-home-blog .osdm-home-feature {margin-bottom:1.75rem;}
}


/* OSDM 1.0.32+ — Full-bleed backgrounds, constrained article content.
   Desktop navigation, photo module, and first lead untouched.
   The entire section breaks out of .site-grid; no clipped pseudo-element layers. */
body.site.osdm-home .osdm-home-blog .osdm-home-leading > :is(.osdm-home-lead-first,.osdm-home-lead-2,.osdm-home-lead-3,.osdm-home-lead-4) {
  display:block !important;
  position:relative;
  box-sizing:border-box;
  width:100vw;
  max-width:none;
  margin:0 0 0 calc(50% - 50vw) !important;
  padding:clamp(2.75rem,5vw,4.5rem) 0;
  border:0;
  box-shadow:none;
  isolation:auto;
}
body.site.osdm-home .osdm-home-blog .osdm-home-leading > :is(.osdm-home-lead-first,.osdm-home-lead-2,.osdm-home-lead-3,.osdm-home-lead-4)::before {
  content:none;
}
body.site.osdm-home .osdm-home-blog .osdm-home-leading > .osdm-home-lead-first {background:#334050;color:#f8f6f1;}
body.site.osdm-home .osdm-home-blog .osdm-home-leading > .osdm-home-lead-2 {background:#ffffff;color:#344d63;}
body.site.osdm-home .osdm-home-blog .osdm-home-leading > .osdm-home-lead-3 {background:#fff6e8;}
body.site.osdm-home .osdm-home-blog .osdm-home-leading > .osdm-home-lead-4 {background:#ffffff;}
body.site.osdm-home .osdm-home-blog .osdm-home-leading .osdm-home-lead-inner {
  box-sizing:border-box;
  width:min(calc(100% - 2rem), var(--osdm-header-width));
  max-width:var(--osdm-header-width);
  margin-inline:auto;
  min-width:0;
}
body.site.osdm-home .osdm-home-blog .osdm-home-lead-inner > :first-child {margin-top:0;}
body.site.osdm-home .osdm-home-blog .osdm-home-feature {margin-bottom:0;}
body.site.osdm-home .osdm-home-blog .osdm-home-leading {margin-bottom:clamp(1.5rem,3vw,2.5rem);}
@media (max-width:767px) {
  body.site.osdm-home .osdm-home-blog .osdm-home-leading > :is(.osdm-home-lead-first,.osdm-home-lead-2,.osdm-home-lead-3,.osdm-home-lead-4) {padding:2rem 0;}
}

/* OSDM 1.0.35 — homepage contrast and reliable article image layout.
   Section colors are based on current lead order, not article IDs/titles. */
body.site.osdm-home .osdm-home-blog .osdm-home-leading > .osdm-home-lead-first,
body.site.osdm-home .osdm-home-blog .osdm-home-leading > .osdm-home-lead-first :is(p,li,small,span,div) {
  color:#f8f6f1;
}
body.site.osdm-home .osdm-home-blog .osdm-home-leading > .osdm-home-lead-first :is(h1,h2,h3,h4,h5,h6,.page-header a,.item-title a) {
  color:#fff !important;
}
body.site.osdm-home .osdm-home-blog .osdm-home-leading > .osdm-home-lead-first a {
  color:#fff !important;
  text-decoration-color:rgba(255,255,255,.6);
}
body.site.osdm-home .osdm-home-blog .osdm-home-leading > .osdm-home-lead-first a:hover,
body.site.osdm-home .osdm-home-blog .osdm-home-leading > .osdm-home-lead-first a:focus-visible {
  color:#ffe1a8 !important;
}
/* White final lead flows directly into the white Joomla pagination area. */
body.site.osdm-home .osdm-home-blog .osdm-home-leading > .osdm-home-lead-4 {
  padding-bottom:clamp(1.5rem,3vw,2.5rem);
}

/* OSDM 1.0.35 — The FIRST leading article is the dark full-width band.
   Keep its content centered and all subsequent bands tied to position, not article IDs. */
body.site.osdm-home .osdm-home-blog .osdm-home-leading > .osdm-home-lead-first {
  display:block !important;
  position:relative;
  box-sizing:border-box;
  width:100vw;
  max-width:none;
  margin:0 0 0 calc(50% - 50vw) !important;
  padding:clamp(2.75rem,5vw,4.5rem) 0 !important;
  background:#334050;
  color:#f8f6f1;
  border:0;
}
body.site.osdm-home .osdm-home-blog .osdm-home-leading > .osdm-home-lead-2 {
  background:#ffffff;
  color:#344d63;
}
body.site.osdm-home .osdm-home-blog .osdm-home-leading > .osdm-home-lead-3 {background:#fff6e8;}
body.site.osdm-home .osdm-home-blog .osdm-home-leading > .osdm-home-lead-4 {background:#fff;}
@media(max-width:767px) {
  body.site.osdm-home .osdm-home-blog .osdm-home-leading > .osdm-home-lead-first {padding:2rem 0 !important;}
}

/* OSDM 1.0.36 — homepage transitions and editorial spacing. */
body.site.osdm-home .site-grid > .osdm-slider,
body.site.osdm-home .site-grid > .osdm-slider.full-width {
  margin-bottom:0 !important;
}
body.site.osdm-home .site-grid > .osdm-main-row,
body.site.osdm-home .osdm-main-row > .container-component,
body.site.osdm-home .osdm-main-row > .container-component > main,
body.site.osdm-home .osdm-home-blog {margin-top:0 !important;padding-top:0 !important;}
body.site.osdm-home .osdm-home-blog .osdm-home-leading > :is(.osdm-home-lead-first,.osdm-home-lead-2,.osdm-home-lead-3,.osdm-home-lead-4) .page-header,
body.site.osdm-home .osdm-home-blog .osdm-home-leading > :is(.osdm-home-lead-first,.osdm-home-lead-2,.osdm-home-lead-3,.osdm-home-lead-4) .item-title {
  margin:0 0 clamp(1.2rem,2vw,1.8rem) !important;
}
body.site.osdm-home .osdm-home-blog .osdm-home-leading > :is(.osdm-home-lead-first,.osdm-home-lead-2,.osdm-home-lead-3,.osdm-home-lead-4) .page-header :is(h1,h2,h3) {margin-bottom:0 !important;}

/* OSDM 1.0.37 — home contrast, desktop submenu glass and third-lead editorial split.
   Keep these rules local: no changes to Joomla's mobile menu, sticky logic or module output. */
@media (min-width:992px) {
  /* The nav's own backdrop-filter creates an isolated backdrop root. It was
     preventing the dropdown from blurring the real image behind it. Apply
     the navigation blur to a decorative layer instead. */
  body.site > .osdm-nav nav.osdm-main-menu {
    position:relative;
    isolation:auto;
    background:transparent !important;
    -webkit-backdrop-filter:none !important;
    backdrop-filter:none !important;
  }
  body.site > .osdm-nav nav.osdm-main-menu::before {
    content:"";
    position:absolute;
    inset:0;
    z-index:0;
    border-radius:inherit;
    background:rgba(42,41,51,.92);
    -webkit-backdrop-filter:blur(4px);
    backdrop-filter:blur(4px);
    pointer-events:none;
  }
  body.site > .osdm-nav nav.osdm-main-menu > ul.mod-menu,
  body.site > .osdm-nav nav.osdm-main-menu > .moduletable {
    position:relative;
    z-index:1;
  }
  body.site > .osdm-nav nav.osdm-main-menu :is(.mod-menu__sub,.mm-collapse,.mm-collapsing,.dropdown-menu) {
    background:rgba(253,251,247,.82) !important;
    -webkit-backdrop-filter:blur(9px);
    backdrop-filter:blur(9px);
  }
}

/* Match the first hero article to the actual menu/footing base tone. */
body.site.osdm-home .osdm-home-blog .osdm-home-leading > .osdm-home-lead-first {
  background:var(--osdm-menu-footer) !important;
  padding-bottom:clamp(2.3rem,4.35vw,4rem) !important;
}
@media (max-width:767px) {
  body.site.osdm-home .osdm-home-blog .osdm-home-leading > .osdm-home-lead-first {
    padding-bottom:1.85rem !important;
  }
}

/* OSDM 1.0.39 — per-position choice of full, image-left or image-right.
   Split classes apply only on the homepage, while full layout retains Joomla markup. */
body.site.osdm-home .osdm-home-leading > :is(.osdm-layout-left,.osdm-layout-right) .osdm-feature-split {
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:1.5rem;
  min-width:0;
  align-items:start;
}
body.site.osdm-home .osdm-home-leading > :is(.osdm-layout-left,.osdm-layout-right) .osdm-feature-media {
  min-width:0;
  width:100%;
  overflow:hidden;
  aspect-ratio:5/4;
}
body.site.osdm-home .osdm-home-leading > :is(.osdm-layout-left,.osdm-layout-right) .osdm-feature-media :is(figure,p,.item-image,.image-left,.image-right) {
  width:100% !important;
  height:100% !important;
  max-width:none !important;
  float:none !important;
  margin:0 !important;
  padding:0 !important;
}
body.site.osdm-home .osdm-home-leading > :is(.osdm-layout-left,.osdm-layout-right) .osdm-feature-media img {
  display:block !important;
  width:100% !important;
  height:100% !important;
  max-width:none !important;
  margin:0 !important;
  float:none !important;
  object-fit:cover;
  object-position:center;
  transition:transform .45s ease;
}
body.site.osdm-home .osdm-home-leading > :is(.osdm-layout-left,.osdm-layout-right) .osdm-feature-copy {
  min-width:0;
}
body.site.osdm-home .osdm-home-leading > :is(.osdm-layout-left,.osdm-layout-right) .osdm-feature-copy :is(.page-header,.item-title) {
  margin-top:0 !important;
}
body.site.osdm-home .osdm-home-leading > :is(.osdm-layout-left,.osdm-layout-right) .osdm-feature-copy :is(p,ul,ol) {
  clear:none !important;
}
@media (min-width:900px) {
  body.site.osdm-home .osdm-home-leading > :is(.osdm-layout-left,.osdm-layout-right) .osdm-feature-split {
    grid-template-columns:minmax(0,1fr) minmax(0,1fr);
    gap:clamp(1.75rem,3.5vw,3rem);
  }
  body.site.osdm-home .osdm-home-leading > .osdm-layout-right .osdm-feature-media {order:2;}
  body.site.osdm-home .osdm-home-leading > .osdm-layout-right .osdm-feature-copy {order:1;}
}
@media (hover:hover) and (prefers-reduced-motion:no-preference) {
  body.site.osdm-home .osdm-home-leading > :is(.osdm-layout-left,.osdm-layout-right) .osdm-feature-media:hover img {
    transform:scale(1.035);
  }
}


/* OSDM 1.0.40 — interior article styling: headings, lists, tables, and sidebar.
   Restricted to non-home content so the homepage layout and the navigation
   remain exactly as they were in 1.0.39. */
body.site.osdm-interior .container-component main :is(.com-content-article,.item-page,.com-content-category,.com-content-blog) {
  --osdm-interior-border: #dbe0e5;
  --osdm-interior-muted: #f6f8f9;
  --osdm-interior-accent: #93623e;
}
/* Headings: a restrained editorial rhythm instead of decorative bars/boxes. */
body.site.osdm-interior .container-component main .com-content-article :is(h1,h2,h3,h4,h5,h6),
body.site.osdm-interior .container-component main .item-page :is(h1,h2,h3,h4,h5,h6) {
  clear:both;
  line-height:1.28;
}
body.site.osdm-interior .container-component main .com-content-article :is(h2,h3,h4),
body.site.osdm-interior .container-component main .item-page :is(h2,h3,h4) {
  margin-block-start:1.55rem;
  margin-block-end:.55rem;
}
body.site.osdm-interior .container-component main :is(.com-content-article,.item-page) > .page-header {
  margin-block:0 1.6rem;
}
body.site.osdm-interior .container-component main :is(.com-content-article,.item-page) > .page-header :is(h1,h2) {
  margin-block:0;
}
body.site.osdm-interior .container-component main :is(.com-content-article,.item-page) :is(h2,h3,h4,h5,h6) + p {
  margin-block-start:0;
}
body.site.osdm-interior .container-component main :is(.com-content-article,.item-page) p {
  line-height:1.72;
}
/* Ordinary and nested lists in the article body, not Joomla menus or pagination. */
body.site.osdm-interior .container-component main :is(.com-content-article,.item-page,.com-content-category) :is(ul:not(.pagination):not(.nav):not(.list-group),ol:not(.pagination):not(.nav)) {
  padding-inline-start:2.5rem;
  margin-block:.65rem 1.3rem;
  line-height:1.7;
}
body.site.osdm-interior .container-component main :is(.com-content-article,.item-page,.com-content-category) ul:not(.pagination):not(.nav):not(.list-group) {
  list-style:disc outside;
}
body.site.osdm-interior .container-component main :is(.com-content-article,.item-page,.com-content-category) ul:not(.pagination):not(.nav):not(.list-group) ul {
  list-style:circle outside;
}
body.site.osdm-interior .container-component main :is(.com-content-article,.item-page,.com-content-category) :is(ul,ol):not(.pagination):not(.nav) > li {
  padding-inline-start:.2rem;
  margin-block-end:.38rem;
}
body.site.osdm-interior .container-component main :is(.com-content-article,.item-page,.com-content-category) li::marker {
  color:var(--osdm-accent,#e9a454);
}
/* Lists of document links need clear focus styles without losing their bullets. */
body.site.osdm-interior .container-component main :is(.com-content-article,.item-page,.com-content-category) li > a:not(.btn) {
  color:#34516a;
  text-decoration:none;
  text-underline-offset:.18em;
  transition:color .18s ease;
}
body.site.osdm-interior .container-component main :is(.com-content-article,.item-page,.com-content-category) li > a:not(.btn):hover,
body.site.osdm-interior .container-component main :is(.com-content-article,.item-page,.com-content-category) li > a:not(.btn):focus-visible {
  color:#93623e;
  text-decoration:underline;
}
/* The interior sidebar needs slightly more breathing room than the base 250px. */
@media (min-width:992px) {
  body.site.osdm-interior .osdm-main-row > :is(.container-sidebar-right,.container-sidebar-left) {
    flex:0 0 285px;
    width:285px !important;
    max-width:285px !important;
    box-sizing:border-box;
  }
}
/* Sidebar: only a quiet divider toward the article; no cards or outer boxes. */
body.site.osdm-interior .osdm-main-row > .container-sidebar-right {
  border-left:1px solid #dbe0e5;
  padding-left:1.65rem;
  padding-right:1rem;
}
body.site.osdm-interior .osdm-main-row > .container-sidebar-left {
  border-right:1px solid #dbe0e5;
  padding-right:1.65rem;
  padding-left:1rem;
}
body.site.osdm-interior .osdm-main-row > aside :is(.card,.moduletable) {
  background:transparent !important;
  border:0 !important;
  border-radius:0 !important;
  box-shadow:none !important;
}
body.site.osdm-interior .osdm-main-row > aside :is(.card-header,.moduletable > h3,.moduletable > h4) {
  font-family:"Playfair Display",Georgia,serif;
  font-size:1.43rem;
  line-height:1.3;
  font-weight:400;
  background:transparent !important;
  border:0 !important;
  padding:.15rem 0 .65rem !important;
  color:#344d63;
}
body.site.osdm-interior .osdm-main-row > aside :is(.card-body,.moduletable) {
  padding-inline:0 !important;
}
body.site.osdm-interior .osdm-main-row > aside :is(.card-body,.moduletable) :is(ul,ol):not(.nav) > li {
  margin-block-end:.55rem;
  line-height:1.5;
}
/* Animated underline within the link width, matching the gold 1px menu accent. */
body.site.osdm-interior .osdm-main-row > aside a:not(.btn) {
  color:#34516a;
  text-decoration:none !important;
  background-image:linear-gradient(var(--osdm-accent,#e9a454),var(--osdm-accent,#e9a454));
  background-repeat:no-repeat;
  background-position:left bottom;
  background-size:0 1px;
  transition:color .2s ease,background-size .25s ease;
  -webkit-box-decoration-break:clone;
  box-decoration-break:clone;
}
body.site.osdm-interior .osdm-main-row > aside a:not(.btn):is(:hover,:focus-visible) {
  color:#93623e;
  background-size:100% 1px;
}
/* Preserve real table cells and headers. On small screens scroll the table, not
   the whole page; no forced column stacking or hidden columns. */
@media(max-width:767px) {
  body.site.osdm-interior .container-component main :is(.com-content-article,.item-page,.com-content-category) :is(ul,ol):not(.pagination):not(.nav) {
    padding-inline-start:2.125rem;
  }
}
@media(prefers-reduced-motion:reduce) {
  body.site.osdm-interior .container-component main li > a,
  body.site.osdm-interior .osdm-main-row > aside a {transition:none !important;}
}

/* OSDM 1.0.41 — mobile sidebar dividers follow column stacking. */
@media(max-width:767px) {
  body.site.osdm-interior .osdm-main-row > :is(.container-sidebar-right,.container-sidebar-left) {
    border-inline:0;
    border-top:1px solid #dbe0e5;
    padding:1rem 0 0;
  }
}


/* OSDM 1.0.43 — structural table refinement and symmetric sidebar spacing.
   Table cells keep their native HTML order. Numbered lists and bell schedules
   get independent alignment without requiring authors to edit article markup. */
@media (min-width:992px) {
  body.site.osdm-interior .osdm-main-row {
    gap:2.5rem; /* whitespace between article and sidebar's vertical divider */
  }
  body.site.osdm-interior .osdm-main-row > :is(.container-sidebar-right,.container-sidebar-left) {
    flex:0 0 310px;
    width:310px !important;
    max-width:310px !important;
  }
}
body.site.osdm-interior .osdm-main-row > .container-sidebar-right {
  padding-left:2.1rem; /* divider-to-module whitespace */
  padding-right:0;
}
body.site.osdm-interior .osdm-main-row > .container-sidebar-left {
  padding-right:2.1rem;
  padding-left:0;
}

@media (max-width:767px) {
  body.site.osdm-interior .osdm-main-row > :is(.container-sidebar-right,.container-sidebar-left) {
    padding:1rem 0 0;
  }
}

/* ================================================================
   OSDM 1.0.44 — TABLES (clean rebuild)
   One canonical block. No competing column striping or cell borders.
   Applies only inside interior Joomla articles/categories.
   ================================================================ */
body.site.osdm-interior .container-component main :is(.com-content-article,.item-page,.com-content-category) {
  --osdm-table-line:#e9e0d5;
  --osdm-table-stripe:#fbfaf8;
  --osdm-table-head:#faf5ed;
}
/* Main table geometry: retain semantic table layout. */
body.site.osdm-interior .container-component main :is(.com-content-article,.item-page,.com-content-category) table:not(.calendar) {
  width:100%;
  max-width:100%;
  margin:1.15rem 0 1.8rem;
  border:0 !important;
  border-collapse:collapse !important;
  border-spacing:0 !important;
  border-radius:0 !important;
  box-shadow:none !important;
  background:transparent !important;
  font-size:.96rem;
  line-height:1.55;
}
/* Transparent cells show only alternating rows — never column bands. */
body.site.osdm-interior .container-component main :is(.com-content-article,.item-page,.com-content-category) table:not(.calendar) tr > :is(th,td) {
  padding:.68rem .8rem;
  vertical-align:middle !important;
  text-align:left;
  border:0 !important;
  border-bottom:1px solid var(--osdm-table-line) !important;
  background:transparent !important;
  box-shadow:none !important;
  color:inherit;
  overflow-wrap:break-word;
}
/* Even rows: very soft warm neutral; no zebra on headers. */
body.site.osdm-interior .container-component main :is(.com-content-article,.item-page,.com-content-category) table:not(.calendar) tbody > tr:nth-child(even):not(:has(>th[colspan])) {
  background:var(--osdm-table-stripe);
}
body.site.osdm-interior .container-component main :is(.com-content-article,.item-page,.com-content-category) table:not(.calendar) thead tr {
  background:var(--osdm-table-head);
}
body.site.osdm-interior .container-component main :is(.com-content-article,.item-page,.com-content-category) table:not(.calendar) th {
  font-weight:500;
  color:#344d63 !important;
}
/* Native header/grouping rows can span several columns. */
body.site.osdm-interior .container-component main :is(.com-content-article,.item-page,.com-content-category) table:not(.calendar) tr:has(> :is(th,td)[colspan]) {
  background:var(--osdm-table-head) !important;
}
body.site.osdm-interior .container-component main :is(.com-content-article,.item-page,.com-content-category) table:not(.calendar) tr > :is(th,td)[colspan] {
  text-align:center;
}
/* Two columns: narrow numbering and readable names. Avoid requiring classes. */
body.site.osdm-interior .container-component main :is(.com-content-article,.item-page,.com-content-category) table:not(.calendar):has(tr > :nth-child(2):last-child):not(:has(tr > :nth-child(3))) tr > :first-child:not([colspan]) {
  width:5.5rem;
  text-align:center;
  white-space:nowrap;
}
/* Timetables with three columns: centered hours and time values. */
body.site.osdm-interior .container-component main :is(.com-content-article,.item-page,.com-content-category) table:not(.calendar):has(tr > :nth-child(3)) tr > :is(th,td):not([colspan]) {
  text-align:center;
}
body.site.osdm-interior .container-component main :is(.com-content-article,.item-page,.com-content-category) table:not(.calendar) :is(th,td) > p {
  margin:.1rem 0;
}
body.site.osdm-interior .container-component main :is(.com-content-article,.item-page,.com-content-category) table:not(.calendar) a {
  color:#34516a;
  text-decoration:none;
}
body.site.osdm-interior .container-component main :is(.com-content-article,.item-page,.com-content-category) table:not(.calendar) a:is(:hover,:focus-visible) {
  color:#93623e;
  text-decoration:underline;
}
@media(max-width:767px) {
  body.site.osdm-interior .container-component main :is(.com-content-article,.item-page,.com-content-category) table:not(.calendar) {
    display:block;
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
  }
  body.site.osdm-interior .container-component main :is(.com-content-article,.item-page,.com-content-category) table:not(.calendar) tr > :is(th,td) {
    padding:.6rem .7rem;
  }
}

/* ================================================================
   OSDM 1.0.45 — headings inside table cells only.
   Override global article heading margins/clear. The cell controls
   the spacing, including for tables whose section title is an H4.
   ================================================================ */
body.site.osdm-interior .container-component main
:is(.com-content-article,.item-page,.com-content-category)
table:not(.calendar) :is(th,td) :is(h2,h3,h4,h5,h6) {
  display:block;
  width:auto;
  max-width:100%;
  margin:0 !important;
  padding:0 !important;
  clear:none !important;
  text-align:inherit;
  font-family:"Playfair Display",Georgia,serif;
  font-weight:400 !important;
  line-height:1.3;
}
/* Keep group headings centered even when an H4 is embedded in a td. */
body.site.osdm-interior .container-component main
:is(.com-content-article,.item-page,.com-content-category)
table:not(.calendar) tr > :is(th,td)[colspan] :is(h2,h3,h4,h5,h6) {
  text-align:center;
}


/* ================================================================
   OSDM 1.0.47 — INTERIOR responsive finish
   This block is intentionally confined to osdm-interior. Desktop
   typography, the homepage, navigation, and table colors are unchanged.
   ================================================================ */
/* Table widths must stay inside the article; narrow devices may scroll
   horizontally within the table rather than moving the page itself. */
body.site.osdm-interior .osdm-main-row > .container-component,
body.site.osdm-interior .container-component main,
body.site.osdm-interior .container-component main :is(.com-content-article,.item-page,.com-content-category) {
  min-width:0;
  max-width:100%;
}
@media (max-width:991px) {
  /* Sidebar is already a full-width row at this breakpoint. Put its
     separator above the links, rather than leaving a vertical divider. */
  body.site.osdm-interior .osdm-main-row {
    gap:1.5rem;
  }
  body.site.osdm-interior .osdm-main-row > :is(.container-sidebar-right,.container-sidebar-left) {
    flex:0 1 auto;
    width:100% !important;
    max-width:100% !important;
    border-left:0 !important;
    border-right:0 !important;
    border-top:1px solid #e9e0d5 !important;
    padding:1.25rem 0 0 !important;
    margin:0 !important;
  }
  body.site.osdm-interior .osdm-main-row > aside :is(.card-header,.moduletable > h3,.moduletable > h4) {
    padding-top:0 !important;
  }
}
@media (max-width:767px) {
  body.site.osdm-interior .site-grid {
    width:calc(100% - 2rem);
    margin-top:1.5rem;
    margin-bottom:2rem;
  }
  body.site.osdm-interior .container-component main :is(.com-content-article,.item-page,.com-content-category) :is(h1,h2,h3,h4,h5,h6) {
    max-width:100%;
    overflow-wrap:break-word;
    hyphens:auto;
  }
  body.site.osdm-interior .container-component main :is(.com-content-article,.item-page) > .page-header {
    margin-bottom:1.2rem;
  }
  /* Joomla editors often float photos in articles. Retain the float on
     desktop, but do not squeeze text beside images on narrow screens. */
  body.site.osdm-interior .container-component main :is(.com-content-article,.item-page)
  img:is(.float-start,.float-end,.pull-left,.pull-right,[style*="float: left"],[style*="float:left"],[style*="float: right"],[style*="float:right"]) {
    float:none !important;
    display:block;
    max-width:100% !important;
    height:auto !important;
    margin:.75rem 0 1.25rem !important;
  }
  body.site.osdm-interior .container-component main :is(.com-content-article,.item-page,.com-content-category)
  table:not(.calendar) {
    max-width:100%;
    font-size:.9rem;
    scrollbar-width:thin;
    scrollbar-color:#c9b8a2 transparent;
  }
  body.site.osdm-interior .container-component main :is(.com-content-article,.item-page,.com-content-category)
  table:not(.calendar) :is(th,td) {
    padding:.6rem .65rem;
    vertical-align:middle !important;
  }
  /* Short numeric and time values must not split across lines. Longer
     descriptive entries can wrap naturally when needed. */
  body.site.osdm-interior .container-component main :is(.com-content-article,.item-page,.com-content-category)
  table:not(.calendar):has(tr > :nth-child(3)) tr > :is(th,td):not([colspan]) {
    white-space:nowrap;
  }
  body.site.osdm-interior .container-component main :is(.com-content-article,.item-page,.com-content-category)
  table:not(.calendar) :is(th,td) :is(h2,h3,h4,h5,h6) {
    overflow-wrap:anywhere;
    font-size:clamp(1.05rem,4.8vw,1.4rem);
  }
}
@media (max-width:400px) {
  body.site.osdm-interior .site-grid {width:calc(100% - 1.5rem);}
  body.site.osdm-interior .container-component main :is(.com-content-article,.item-page,.com-content-category)
  table:not(.calendar) tr > :is(th,td) {padding:.53rem .45rem;}
  body.site.osdm-interior .container-component main :is(.com-content-article,.item-page,.com-content-category)
  table:not(.calendar):has(tr > :nth-child(2):last-child):not(:has(tr > :nth-child(3))) tr > :first-child:not([colspan]) {
    width:3rem;
  }
}


/* ================================================================
   OSDM 1.0.48 — Mobile interior typography and timetable width.
   Preserves desktop, homepage, navigation and all adopted table colors.
   ================================================================ */
@media (max-width:767px) {
  /* Real Roboto Regular is available: use it for readable mobile copy. */
  body.site.osdm-interior .container-component,
  body.site.osdm-interior .container-component main,
  body.site.osdm-interior .container-component main :is(.com-content-article,.item-page,.com-content-category),
  body.site.osdm-interior .osdm-main-row > aside {
    font-family:"Roboto",Arial,sans-serif;
    font-weight:400;
    font-size:16px;
    line-height:1.625;
  }
  /* Keep bold/strong editorial emphasis and heading styles intact. */
  body.site.osdm-interior .container-component main :is(.com-content-article,.item-page,.com-content-category) :is(h1,h2,h3,h4,h5,h6),
  body.site.osdm-interior .container-component :is(.page-header h1,.page-header h2) {
    letter-spacing:0 !important;
    font-family:"Playfair Display",Georgia,serif !important;
    font-weight:400 !important;
  }
  body.site.osdm-interior .container-component main :is(.com-content-article,.item-page,.com-content-category) h3 {
    font-size:22px;
    line-height:1.3;
  }
  /* The article prose uses the same 16px body size; the table keeps
     its compact established 14.4px density for readable time values. */
  body.site.osdm-interior .container-component main :is(.com-content-article,.item-page,.com-content-category) :is(p,li) {
    font-weight:400;
  }
  /* Undo earlier display:block on tables; it shrink-wrapped 3-column
     schedules on narrow screens. Retain real table layout/colspan. */
  body.site.osdm-interior .container-component main :is(.com-content-article,.item-page,.com-content-category) table:not(.calendar) {
    display:table !important;
    width:100% !important;
    max-width:100% !important;
    table-layout:auto;
    overflow:visible;
  }
  body.site.osdm-interior .container-component main :is(.com-content-article,.item-page,.com-content-category) table:not(.calendar) :is(th,td) {
    font-weight:400;
  }
  body.site.osdm-interior .container-component main :is(.com-content-article,.item-page,.com-content-category) table:not(.calendar) :is(th,td) :is(h2,h3,h4,h5,h6) {
    letter-spacing:0 !important;
    font-weight:400 !important;
  }
}


/* ================================================================
   OSDM 1.0.50 — Mobile footer (unchanged from 1.0.49)
   ================================================================ */
@media (max-width:767px) {
  /* Footer: center the three stacked module areas and linked banners. */
  body.site .container-footer.footer {
    padding:2rem 20px 0 !important;
  }
  body.site .container-footer .osdm-footer-columns {
    grid-template-columns:minmax(0,1fr);
    justify-items:center;
    gap:1.6rem;
    padding-bottom:2rem;
  }
  body.site .container-footer .osdm-footer-column {
    width:100%;
    min-width:0;
    text-align:center;
  }
  body.site .container-footer .osdm-footer-column :is(p,ul,ol) {
    text-align:center;
  }
  body.site .container-footer .osdm-footer-column :is(ul,ol) {
    list-style:none;
    margin-inline:auto;
    padding-inline:0;
  }
  body.site .container-footer .osdm-footer-column img {
    display:block;
    margin-inline:auto;
    max-width:100%;
    height:auto;
  }
  body.site .container-footer .osdm-footer-copyright {
    padding:1rem 8px 1.4rem;
    font-size:.8rem;
    line-height:1.65;
    text-align:center;
  }

}

/* ================================================================
   OSDM 1.0.50 — Pagination across all viewport sizes
   Formerly mobile-only in 1.0.49. Preserve mobile appearance.
   ================================================================ */
/* Category/blog pagination: compact pills, separated rather than
   the default joined Bootstrap button group. */
body.site .container-component :is(.com-content-category-blog,.com-content-featured,.osdm-home-blog) :is(.pagination-wrapper,.com-content-category-blog__navigation,.com-content-featured__pagination) {
  margin-block:0 1.25rem;
  padding-block:0;
  text-align:center;
}
body.site .container-component :is(.com-content-category-blog,.com-content-featured,.osdm-home-blog) ul.pagination {
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  align-items:center;
  gap:7px;
  margin:0 auto;
  padding:0;
  list-style:none;
}
body.site .container-component :is(.com-content-category-blog,.com-content-featured,.osdm-home-blog) ul.pagination > li {
  margin:0;
  padding:0;
  border:0;
  background:none;
}
body.site .container-component :is(.com-content-category-blog,.com-content-featured,.osdm-home-blog) ul.pagination .page-link {
  display:flex;
  justify-content:center;
  align-items:center;
  min-width:38px;
  height:38px;
  padding:0 10px;
  border:1px solid #e9e0d5;
  border-radius:7px !important;
  background:#fbfaf8;
  color:#344d63;
  font:400 14px/1 Roboto,Arial,sans-serif;
  text-decoration:none;
  box-shadow:none;
  transition:background-color .2s ease,border-color .2s ease,color .2s ease;
}
body.site .container-component :is(.com-content-category-blog,.com-content-featured,.osdm-home-blog) ul.pagination :is(.active,[aria-current="page"]) > .page-link,
body.site .container-component :is(.com-content-category-blog,.com-content-featured,.osdm-home-blog) ul.pagination .page-link[aria-current="page"] {
  background:#2a2933;
  border-color:#2a2933;
  color:#fff;
}
body.site .container-component :is(.com-content-category-blog,.com-content-featured,.osdm-home-blog) ul.pagination .page-link:is(:hover,:focus-visible) {
  border-color:#e9a454;
  color:#93623e;
}
body.site .container-component :is(.com-content-category-blog,.com-content-featured,.osdm-home-blog) ul.pagination .disabled > .page-link {
  opacity:.4;
  pointer-events:none;
}
body.site .container-component :is(.com-content-category-blog,.com-content-featured,.osdm-home-blog) :is(.page-counter,.pagination-counter) {
  display:block;
  width:100%;
  margin:12px auto 0;
  text-align:center;
  color:#737780;
  font-size:.8rem;
}
body.site.osdm-home .osdm-main-row > .container-component > main > .pagination-wrapper {
  padding:0 20px 1.25rem;
}

@media (prefers-reduced-motion:reduce) {
  body.site .container-component ul.pagination .page-link {transition:none;}
}

/* ================================================================
   OSDM 1.0.50 — Joomla core contact form submit button
   Scoped to com_contact; does not change other Bootstrap buttons.
   ================================================================ */
body.site.com_contact .com-contact .com-contact__form button.btn.btn-primary,
body.site.com_contact .com-contact .com-contact__form button[type="submit"].btn-primary {
  --btn-bg:#334050;
  --btn-color:#fff;
  --btn-border-color:#334050;
  --btn-hover-bg:#45566b;
  --btn-hover-color:#fff;
  --btn-hover-border-color:#45566b;
  background-color:#334050;
  border:1px solid #334050;
  color:#fff;
  font-family:"Roboto",Arial,sans-serif;
  font-size:.95rem;
  font-weight:400;
  padding:12px 28px;
  border-radius:4px;
  opacity:1;
  transition:background-color .25s ease,border-color .25s ease,color .25s ease;
}
body.site.com_contact .com-contact .com-contact__form button.btn.btn-primary:is(:hover,:focus),
body.site.com_contact .com-contact .com-contact__form button[type="submit"].btn-primary:is(:hover,:focus) {
  background-color:#45566b;
  border-color:#45566b;
  color:#fff;
}
body.site.com_contact .com-contact .com-contact__form button.btn.btn-primary:focus-visible {
  outline:2px solid #e9a454;
  outline-offset:3px;
}
@media (prefers-reduced-motion:reduce) {
  body.site.com_contact .com-contact .com-contact__form button.btn.btn-primary {transition:none;}
}
