/* Dibia 7.3.6 — responsive navigation and editable site chrome. */
.dbx-root .dbx-header{z-index:80;position:relative}
.dbx-root[data-header-position="sticky"] .dbx-header,.dbx-root[data-header-position="overlay"] .dbx-header{position:fixed;top:0;left:0;right:0;max-width:none}
.dbx-root[data-header-position="reserved"] .dbx-header{position:sticky;top:0}
.dbx-root[data-header-position="overlay"] .dbx-header{position:fixed;top:0;left:0;right:0;max-width:none}
.dbx-root[data-header-position="overlay"] .dbx-main{padding-top:0}
.dbx-root .dbx-primary-nav{display:flex;align-items:center;gap:clamp(10px,1.7vw,25px)}
.dbx-root .dbx-nav-toggle{display:none;border:1px solid currentColor;background:transparent;color:inherit;border-radius:8px;padding:8px 13px;cursor:pointer;font:inherit;white-space:nowrap}
.dbx-root .dbx-nav-group{display:flex;position:relative;align-items:center;gap:1px}
.dbx-root .dbx-submenu-toggle{border:0;background:none;color:inherit;font:inherit;cursor:pointer;padding:8px 5px}
.dbx-root .dbx-submenu{display:none;position:absolute;top:100%;left:0;min-width:210px;max-width:330px;max-height:65vh;overflow:auto;background:#fff;color:#1c2734;box-shadow:0 12px 30px #0002;border-radius:12px;padding:8px;z-index:100}
.dbx-root .dbx-submenu a{display:block;padding:9px 13px;white-space:normal;font-size:0.94em}
.dbx-root .dbx-submenu a:hover,.dbx-root .dbx-submenu a:focus-visible{background:#edf1f5}
.dbx-root .dbx-nav-group:hover>.dbx-submenu,.dbx-root .dbx-nav-group:focus-within>.dbx-submenu,.dbx-root .dbx-nav-group.is-open>.dbx-submenu{display:block}
.dbx-root .dbx-service-card-link{display:block;height:100%;color:inherit;text-decoration:none}
.dbx-root .dbx-service-card-link:focus-visible{outline:3px solid var(--dbx-primary);outline-offset:4px}
.dbx-root .dbx-service-detail{display:grid;grid-template-columns:1fr 2fr;gap:32px;align-items:start}
.dbx-root .dbx-service-detail img{max-width:100%;border-radius:12px}
.dbx-root .dbx-service-detail h3{margin:0.5em 0;font-size:1.3rem}
.dbx-root .dbx-service-detail p{margin:0 0 1.2em}
.dbx-root .dbx-footer-banner{background:var(--dbx-banner-bg,#26344b);color:var(--dbx-banner-fg,#fff);display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:6px 15px;padding:18px 25px;font-size:0.94rem;text-align:center}
.dbx-root .dbx-footer-banner a{color:inherit;text-decoration:underline;text-underline-offset:3px}
.dbx-root[data-nav-desktop="centered"] .dbx-header{flex-wrap:wrap;justify-content:center;gap:15px}
.dbx-root[data-nav-desktop="centered"] .dbx-primary-nav{order:3;width:100%;justify-content:center}
.dbx-root[data-nav-desktop="centered"] .dbx-header-cta{margin:0 0 0 auto}
@media(min-width:1025px){
 .dbx-root[data-nav-desktop="drawer"] .dbx-nav-toggle{display:block}
 .dbx-root[data-nav-desktop="drawer"] .dbx-primary-nav{display:none!important}
 .dbx-root[data-nav-desktop="drawer"].dbx-menu-open .dbx-primary-nav{display:flex!important;position:absolute;right:30px;top:calc(100% - 1px);z-index:100;min-width:250px;max-width:90vw;flex-direction:column;align-items:stretch;background:#fff;color:#17283a;box-shadow:0 16px 35px #0003;padding:20px;border-radius:0 0 15px 15px}
}
@media (min-width:641px) and (max-width:1024px){
 .dbx-root .dbx-header{flex-wrap:wrap}
 .dbx-root[data-nav-tablet="drawer"] .dbx-nav-toggle{display:block}
 .dbx-root[data-nav-tablet="drawer"] .dbx-primary-nav{display:none!important}
 .dbx-root[data-nav-tablet="drawer"].dbx-menu-open .dbx-primary-nav{display:flex!important;position:absolute;top:100%;right:15px;min-width:260px;flex-direction:column;align-items:stretch;background:white;color:#162333;padding:18px;box-shadow:0 14px 35px #0003;z-index:90}
 .dbx-root[data-nav-tablet="scroll"] .dbx-primary-nav{display:flex;order:4;width:100%;overflow-x:auto;flex-wrap:nowrap;justify-content:flex-start}
 .dbx-root[data-nav-tablet="inline"] .dbx-primary-nav{display:flex;order:4;width:100%;flex-wrap:wrap;justify-content:center}
}
@media(max-width:640px){
 .dbx-root .dbx-header{flex-wrap:wrap}
 .dbx-root .dbx-header-cta{display:none}
 .dbx-root[data-nav-mobile="drawer"] .dbx-nav-toggle,.dbx-root[data-nav-mobile="accordion"] .dbx-nav-toggle{display:block;margin-left:auto}
 .dbx-root[data-nav-mobile="drawer"] .dbx-primary-nav,.dbx-root[data-nav-mobile="accordion"] .dbx-primary-nav{display:none!important}
 .dbx-root[data-nav-mobile="drawer"].dbx-menu-open .dbx-primary-nav,.dbx-root[data-nav-mobile="accordion"].dbx-menu-open .dbx-primary-nav{display:flex!important;order:4;flex:0 0 100%;flex-direction:column;align-items:stretch;gap:3px;padding:12px 0;overflow:visible}
 .dbx-root[data-nav-mobile="drawer"] .dbx-nav-group,.dbx-root[data-nav-mobile="accordion"] .dbx-nav-group{flex-wrap:wrap}
 .dbx-root[data-nav-mobile="drawer"] .dbx-submenu,.dbx-root[data-nav-mobile="accordion"] .dbx-submenu{position:static;flex:0 0 100%;box-shadow:none;border:1px solid #ddd}
 .dbx-root[data-nav-mobile="scroll"] .dbx-primary-nav{display:flex;order:4;width:100%;overflow-x:auto;flex-wrap:nowrap;gap:12px}
 .dbx-root[data-nav-mobile="scroll"] .dbx-nav-toggle{display:none}
 .dbx-root .dbx-service-detail{grid-template-columns:1fr}
}
/* Keep legacy site header within the same per-website header positioning control. */
body[data-legacy-header="static"] header.topbar{position:relative!important;top:auto!important}
body[data-legacy-header="sticky"] header.topbar,body[data-legacy-header="overlay"] header.topbar{position:fixed!important;top:0;left:0;right:0;z-index:90}
body[data-legacy-header="reserved"] header.topbar{position:sticky!important;top:0;z-index:90}
body[data-legacy-header="overlay"] header.topbar{position:fixed!important;top:0;left:0;right:0;z-index:90}
body .dbx-footer-banner--legacy{display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap;padding:14px 20px;background:var(--banner-bg,#26344b);color:var(--banner-color,#fff);text-align:center}
body .dbx-footer-banner--legacy a{color:inherit;text-decoration:underline}

/* Existing legacy pages use the same device-specific choices without rewriting IONA’s navigation. */
@media(min-width:1025px){
 body[data-legacy-nav-desktop="centered"] header.topbar .nav{flex-wrap:wrap;justify-content:center}
 body[data-legacy-nav-desktop="centered"] .nav-links{order:4;width:100%;justify-content:center}
 body[data-legacy-nav-desktop="drawer"] .mobile-menu-button{display:flex!important;visibility:visible!important}
 body[data-legacy-nav-desktop="drawer"] .nav-links{display:none!important}
 body[data-legacy-nav-desktop="drawer"] .nav-links.mobile-open{display:flex!important;position:absolute;top:100%;right:10px;max-width:90vw;min-width:250px;flex-direction:column;align-items:flex-start;z-index:95;background:#fff;padding:24px;box-shadow:0 12px 35px #0004}
}
@media(min-width:641px) and (max-width:1024px){
 body[data-legacy-nav-tablet="drawer"] .mobile-menu-button{display:flex!important}
 body[data-legacy-nav-tablet="drawer"] .nav-links{display:none!important}
 body[data-legacy-nav-tablet="drawer"] .nav-links.mobile-open{display:flex!important;position:absolute;top:100%;right:0;max-width:80vw;flex-direction:column;align-items:flex-start;background:white;padding:20px;box-shadow:0 14px 30px #0003;z-index:90}
 body[data-legacy-nav-tablet="scroll"] .nav-links{display:flex!important;order:5;flex-basis:100%;flex-wrap:nowrap;overflow-x:auto;white-space:nowrap}
 body[data-legacy-nav-tablet="scroll"] .mobile-menu-button{display:none!important}
}
@media(max-width:640px){
 body[data-legacy-nav-mobile="scroll"] .nav-links{display:flex!important;order:5;flex-basis:100%;flex-wrap:nowrap;overflow-x:auto;gap:12px;white-space:nowrap}
 body[data-legacy-nav-mobile="scroll"] .mobile-menu-button{display:none!important}
 body[data-legacy-nav-mobile="accordion"] .nav-links.mobile-open .nav-dropdown{flex-wrap:wrap}
 body[data-legacy-nav-mobile="accordion"] .nav-links.mobile-open .nav-dropdown.expanded .nav-submenu{position:static;width:100%;box-shadow:none}
}

/* Pinned menus use live header-height clearance at page start. The header stays fixed
   while the page scrolls underneath its translucent surface. No initial content is hidden. */
.dbx-root[data-header-position="sticky"] .dbx-header,
.dbx-root[data-header-position="overlay"] .dbx-header{
 background:color-mix(in srgb,var(--dbx-glass-base,var(--dbx-dark,#26344b)) var(--dbx-glass-opacity,62%), transparent)!important;
 -webkit-backdrop-filter:blur(16px) saturate(145%);backdrop-filter:blur(16px) saturate(145%);
 isolation:isolate;box-shadow:0 1px 12px #00000018;
}
.dbx-root[data-menu="floating"]{--dbx-glass-base:#ffffff}
.dbx-root[data-archetype="immersive"]{--dbx-glass-base:var(--dbx-dark,#162e44)}
.dbx-root[data-header-position="sticky"] .dbx-main,
.dbx-root[data-header-position="overlay"] .dbx-main{padding-top:var(--dbx-fixed-header-clearance,95px)!important}
body[data-legacy-header="sticky"] header.topbar,
body[data-legacy-header="overlay"] header.topbar{
 background:rgba(var(--dbx-header-rgb,255,255,255),var(--dbx-header-alpha,.60))!important;
 -webkit-backdrop-filter:blur(var(--dbx-header-blur,18px)) saturate(150%)!important;
 backdrop-filter:blur(var(--dbx-header-blur,18px)) saturate(150%)!important;
 box-shadow:0 1px 12px #00000012;
}
body[data-legacy-header="sticky"] main,body[data-legacy-header="overlay"] main{padding-top:var(--dbx-fixed-header-clearance,82px)!important}
/* IONA's announcement is before the legacy menu in the DOM: clear the pinned menu
   above the announcement, not twice above the announcement AND main. */
body[data-legacy-header="sticky"] .site-announcement,
body[data-legacy-header="overlay"] .site-announcement{margin-top:var(--dbx-fixed-header-clearance,82px)}
body.db-has-visible-announcement[data-legacy-header="sticky"] main,
body.db-has-visible-announcement[data-legacy-header="overlay"] main{padding-top:0!important}
@media(max-width:640px){.dbx-root[data-header-position="sticky"] .dbx-header,.dbx-root[data-header-position="overlay"] .dbx-header{width:100%;max-width:100%;box-sizing:border-box}}

/* V7.3.10 R2 — IONA announcement/header hierarchy.
   Actual DOM order is: announcement > navigation > hero. Sticky navigation
   participates in page flow at load and only pins once the announcement has
   scrolled out. Never shift the announcement beneath the navigation. */
body[data-legacy-iona="true"][data-legacy-header="sticky"] header.topbar{
 position:sticky!important;top:0!important;left:auto!important;right:auto!important;
 width:100%;z-index:90;
}
body[data-legacy-iona="true"][data-legacy-header="sticky"] .site-announcement{
 margin-top:0!important;
}
body[data-legacy-iona="true"][data-legacy-header="sticky"] main{
 padding-top:0!important;
}
/* Apply same stacked-banner semantics for the reserved-space header choice. */
body[data-legacy-iona="true"][data-legacy-header="reserved"] .site-announcement{margin-top:0!important}
/* No extra gap when the banner is not present, either. */
body[data-legacy-iona="true"][data-legacy-header="sticky"]:not(.db-has-visible-announcement) main{padding-top:0!important}

/* R3: announcement precedes IONA's sticky menu in the actual rendered DOM. */
.dbx-top-announcement{position:relative;z-index:6;background:#59b8ec;color:#123a5d;font:500 14px/1.5 system-ui,sans-serif}
.dbx-top-announcement-inner{max-width:1360px;margin:auto;min-height:46px;display:flex;align-items:center;justify-content:center;gap:clamp(12px,4vw,64px);padding:8px 20px}
.dbx-top-announcement-inner span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dbx-top-announcement-inner a{font-weight:800;white-space:nowrap;text-decoration:none;color:inherit}
.dbx-root[data-theme="clinic-iona"][data-header-position="sticky"] .dbx-header,
.dbx-root[data-theme="clinic-iona"][data-header-position="overlay"] .dbx-header{
 position:sticky!important;top:0!important;left:auto!important;right:auto!important;width:100%!important;margin:0!important;z-index:50;
 background:rgba(78,126,185,.98)!important;box-shadow:none;transition:background .24s,padding .24s,box-shadow .24s;
}
.dbx-root[data-theme="clinic-iona"][data-header-position="sticky"] .dbx-main,
.dbx-root[data-theme="clinic-iona"][data-header-position="overlay"] .dbx-main{padding-top:0!important}
.dbx-root[data-theme="clinic-iona"].db-header-scrolled[data-header-position="sticky"] .dbx-header,
.dbx-root[data-theme="clinic-iona"].db-header-scrolled[data-header-position="overlay"] .dbx-header{
 background:rgba(102,113,125,.43)!important;backdrop-filter:blur(20px) saturate(145%);-webkit-backdrop-filter:blur(20px) saturate(145%);
 box-shadow:0 8px 24px #18304c25;
}
@media(max-width:640px){.dbx-top-announcement-inner{justify-content:space-between;font-size:12px}.dbx-root[data-theme="clinic-iona"] .dbx-header{min-height:64px}}

/* R5 structural correction: banner > menu > hero on legacy pages.
   These rules are DOM-scoped, independent of saved theme identifiers and load timing.
   A pinned header stays in document flow at load, then sticks as banner scrolls away. */
body:has(> .site-announcement + header.topbar) > .site-announcement {
  position:relative!important; top:auto!important; left:auto!important; right:auto!important;
  margin:0!important; transform:none!important; z-index:1!important;
}
body:has(> .site-announcement + header.topbar) > header.topbar {
  position:sticky!important; top:0!important; left:auto!important; right:auto!important;
  margin:0!important; transform:none!important; width:100%!important; z-index:90!important;
}
body:has(> .site-announcement + header.topbar) > main {
  padding-top:0!important; margin-top:0!important;
}
/* Site editor preview stays inside its allocated grid cell; never floats over widgets. */


/* V7.3.10 R6: stable tablet/mobile nav and clean links.
   Drawer-open height must not affect pinned-header geometry. */
@media (max-width:1024px){
  .topbar .nav-links a::after,.topbar .nav-links a::before,
  .dbx-root .dbx-primary-nav a::after,.dbx-root .dbx-primary-nav a::before{
    content:none!important;display:none!important;border:0!important;box-shadow:none!important;
  }
  .topbar .nav-links a,.topbar .nav-links a[aria-current="page"],
  .dbx-root .dbx-primary-nav a,.dbx-root .dbx-primary-nav a[aria-current="page"]{
    text-decoration:none!important;text-decoration-line:none!important;
    border-bottom:0!important;box-shadow:none!important;
  }
  /* The slide-down menu should never inherit the transparent glass header. */
  .topbar .nav-links.mobile-open{
    background:#fff!important;opacity:1!important;backdrop-filter:none!important;
    -webkit-backdrop-filter:none!important;transition:none!important;animation:none!important;
    border-top:0!important;
  }
  .dbx-root.dbx-menu-open .dbx-primary-nav{
    transition:none!important;animation:none!important;
  }
  .topbar:has(.nav-links.mobile-open),.dbx-root.dbx-menu-open .dbx-header{
    transition:none!important;animation:none!important;
  }
  /* Prevent desktop hover/focus rules momentarily displaying a dropdown before its click state settles. */
  .nav-dropdown:not(.expanded) .nav-submenu,
  .dbx-root .dbx-nav-group:not(.is-open) > .dbx-submenu{display:none!important}
}
@media(prefers-reduced-motion:reduce){
 .topbar,.topbar .nav-links,.dbx-root .dbx-header,.dbx-root .dbx-primary-nav{transition:none!important;animation:none!important}
}

/* R7 — interaction-stable menus; overlay does not resize the measured header. */
@media(max-width:1024px){
  header.topbar:has(.nav-links.mobile-open), .dbx-root.dbx-menu-open .dbx-header{contain:layout style;}
  header.topbar .nav-links.mobile-open, .dbx-root.dbx-menu-open .dbx-primary-nav{
    transform:none!important;animation:none!important;transition:none!important;
    will-change:auto;contain:paint;backface-visibility:hidden;
  }
  .topbar .nav-dropdown .nav-chevron svg, .dbx-root .dbx-submenu-toggle svg{transition:none!important;}
  .topbar .nav-dropdown:not(.expanded) .nav-submenu,
  .dbx-root .dbx-nav-group:not(.is-open)>.dbx-submenu{display:none!important;}
  .topbar .nav-dropdown.expanded .nav-submenu{display:grid!important;}
}
/* Focus from a tapped arrow must not reveal a second, hover-driven submenu. */
.topbar .nav-dropdown:not(.expanded):focus-within .nav-submenu,
.topbar .nav-dropdown:not(.expanded):hover .nav-submenu,
.dbx-root .dbx-nav-group:not(.is-open):focus-within>.dbx-submenu,
.dbx-root .dbx-nav-group:not(.is-open):hover>.dbx-submenu{display:none!important;}


/* R8: initialise the saved IONA header BEFORE the first page paint. The runtime
   takes over when it is ready, without showing the generic white Clinic header. */
html.dbx-header-booting[data-dbx-preflight-iona="true"] body header.topbar{
 background:rgba(var(--dbx-header-preflight-rgb,255,255,255),var(--dbx-header-preflight-alpha,.6))!important;
 -webkit-backdrop-filter:blur(var(--dbx-header-preflight-blur,18px)) saturate(150%)!important;
 backdrop-filter:blur(var(--dbx-header-preflight-blur,18px)) saturate(150%)!important;
 transition:none!important;animation:none!important;
}
html.dbx-header-booting[data-dbx-preflight-iona="true"] body header.topbar .nav,
html.dbx-header-booting[data-dbx-preflight-iona="true"] body header.topbar .logo-mark{transition:none!important;animation:none!important}
html[data-dbx-preflight-iona="true"][data-dbx-preflight-header="sticky"] body:has(> .site-announcement + header.topbar) > header.topbar{
 position:sticky!important;top:0!important;left:auto!important;right:auto!important;
}
html[data-dbx-preflight-iona="true"][data-dbx-preflight-header="sticky"] body:has(> .site-announcement + header.topbar) > .site-announcement{margin-top:0!important}

/* R9 — same-origin cross-document transitions mask first-paint replacement on supported browsers.
   Browsers without cross-document View Transitions continue ordinary navigation. */
@view-transition { navigation: auto; }
::view-transition-old(root){animation:120ms ease-out both dbx-nav-out}
::view-transition-new(root){animation:170ms ease-in both dbx-nav-in}
@keyframes dbx-nav-out{to{opacity:.87}}
@keyframes dbx-nav-in{from{opacity:.87}to{opacity:1}}
@media(prefers-reduced-motion:reduce){
 ::view-transition-old(root),::view-transition-new(root){animation-duration:.01ms!important}
}
