/* Datrylo corporate navigation. Contributor: EverDev. GPL-2.0-or-later.
   Scoped to the shared native Elementor documents; page bodies are unaffected. */
/* Approved Datrylo palette: navy #0B1F3B, blue #0066FF, teal #00C6A7,
   green #34D399 and light neutral #F1F5F9. Override legacy purple tokens
   only within the header so both appearances match the current brand. */
.dw-header {
  --dw-ink: #0b1f3b; --dw-blue: #0066ff; --dw-focus: #0066ff;
  --dw-muted: #526176; --dw-border: #d5dfe9;
  --dw-glass: rgb(255 255 255 / 96%); --dw-surface: #fff; --dw-surface-soft: #f1f5f9;
}
html[data-theme=dark] .dw-header {
  --dw-ink: #f1f5f9; --dw-blue: #76b1ff; --dw-focus: #00c6a7;
  --dw-muted: #bbc9d9; --dw-border: #35516e;
  --dw-glass: rgb(11 31 59 / 96%); --dw-surface: #0b1f3b; --dw-surface-soft: #132d4a;
}
body:not(.wp-admin) .dw-header.e-con {
  padding: 16px max(28px, calc((100vw - 1280px)/2));
  min-height: 88px;
  background: var(--dw-glass);
  border-bottom: 1px solid var(--dw-border);
  box-shadow: 0 4px 24px rgb(11 31 59 / 4%);
}
body:not(.wp-admin) .dw-header .dw-header-main.e-con { gap: 24px; }
.dw-header-main > .dw-logo { flex-basis: 144px !important; width: 144px !important; max-width: 144px !important; }
.dw-header-main > .dw-logo img { width: 144px !important; }
.dw-header .elementor-nav-menu--main .elementor-nav-menu { gap: 4px; }
.dw-header .elementor-nav-menu--main .elementor-item {
  min-height: 48px; padding: 14px 12px; border-radius: 8px;
  font-size: 14px; font-weight: 600; color: var(--dw-ink);
  transition: color .18s, background-color .18s;
}
.dw-header .elementor-nav-menu--main .elementor-item:is(:hover, :focus-visible, .elementor-item-active) {
  color: var(--dw-ink); background: var(--dw-surface-soft);
  box-shadow: inset 0 -2px var(--dw-blue);
}
.dw-header-main > .elementor-widget-datrylo_preferences { padding-inline-start: 18px; border-inline-start: 1px solid var(--dw-border); }
.dw-header .dw-preferences { gap: 3px; }
.dw-header .dw-preferences .dw-language { width: 103px; max-width: 103px; border: 0; border-radius: 8px; background: transparent; font-size: 13px; }
.dw-header .dw-theme-toggle { border: 0; border-radius: 8px; background: transparent; }
.dw-header :is(.dw-theme-toggle, .dw-language):hover { background: var(--dw-surface-soft); }
.dw-header-main > .dw-header-actions { gap: 10px; }
.dw-header-actions .elementor-button { min-height: 46px; padding: 12px 19px; font-size: 13px; font-weight: 600; border-radius: 8px; }
.dw-header-actions > .elementor-widget-button:first-child .elementor-button { border-color: transparent; background: transparent; color: var(--dw-ink); padding-inline: 9px; }
.dw-header-actions > .elementor-widget-button:last-child .elementor-button { background: #0066ff; color: #fff; border: 1px solid #0066ff; box-shadow: 0 3px 8px rgb(0 102 255 / 16%); }
.dw-header-actions > .elementor-widget-button:last-child .elementor-button:hover { background: #0052cc; border-color: #0052cc; }
.dw-header .elementor-button-content-wrapper { align-items: center; }
.dw-header-actions > .elementor-widget-button:last-child .elementor-button-content-wrapper::after,
.dw-footer-demo .elementor-button-content-wrapper::after { content: ''; width: 7px; height: 7px; border-block-start: 1.5px solid; border-inline-end: 1.5px solid; transform: rotate(45deg); margin-inline-start: 12px; flex-shrink: 0; }
html[dir=rtl] :is(.dw-header-actions > .elementor-widget-button:last-child, .dw-footer-demo) .elementor-button-content-wrapper::after { transform: rotate(-45deg); }
.dw-header .elementor-nav-menu--dropdown { border: 1px solid var(--dw-border); box-shadow: 0 18px 40px rgb(11 31 59 / 12%); background: var(--dw-surface); border-radius: 12px; padding: 10px; }
.dw-header .elementor-nav-menu--dropdown .elementor-item { min-height: 48px; padding: 14px 18px; color: var(--dw-ink); border-radius: 6px; }
.dw-header .elementor-nav-menu--dropdown .elementor-item:is(:hover, :focus-visible, .elementor-item-active) { background: var(--dw-surface-soft); color: var(--dw-ink); }

/* Reversed brand artwork is used as supplied; it is never recolored. */
body:not(.wp-admin) .dw-footer.dw-corporate-footer.e-con {
  --dw-ink: #f1f5f9; --dw-muted: #bbc9d9; --dw-blue: #76b1ff;
  --dw-blue-hover: #fff; --dw-border: #35516e; --dw-focus: #00c6a7;
  display: flex; flex-direction: column; align-items: stretch;
  padding: 0 max(28px, calc((100vw - 1280px)/2)) 26px;
  background: #0b1f3b; color: var(--dw-ink); border-top: 3px solid #00c6a7; gap: 0;
}
body:not(.wp-admin) .dw-corporate-footer :is(.dw-footer-invitation, .dw-footer-top, .dw-footer-bottom).e-con { width: 100%; max-width: none; margin: 0; padding-inline: 0; }
body:not(.wp-admin) .dw-corporate-footer .dw-footer-invitation.e-con { display: flex; flex-direction: row; justify-content: space-between; align-items: center; gap: 32px; padding-block: 44px; border-bottom: 1px solid var(--dw-border); }
.dw-corporate-footer .dw-footer-invitation-copy.e-con { padding: 0; width: auto; gap: 10px; }
.dw-corporate-footer .dw-footer-eyebrow .elementor-heading-title { color: #34d399; font-size: 11px; font-weight: 650; letter-spacing: .15em !important; line-height: 1.5; }
.dw-corporate-footer .dw-footer-invitation-title .elementor-heading-title { font-size: clamp(26px, 2.5vw, 34px); line-height: 1.25; letter-spacing: -.035em !important; font-weight: 550; }
.dw-corporate-footer .dw-footer-invitation-actions.e-con { padding: 0; display: flex; flex-direction: row; align-items: center; width: auto; gap: 12px; flex-shrink: 0; }
.dw-corporate-footer .dw-footer-invitation-actions .elementor-button { padding: 13px 22px; min-height: 48px; border-radius: 8px; font-size: 13px; font-weight: 600; text-decoration: none; line-height: 1.5; }
.dw-corporate-footer .dw-footer-demo .elementor-button { background: #f1f5f9; color: #0b1f3b; border: 1px solid #f1f5f9; }
.dw-corporate-footer .dw-footer-demo .elementor-button:hover { background: #dceaff; border-color: #dceaff; }
.dw-corporate-footer .dw-footer-contact .elementor-button { background: transparent; color: #f1f5f9; border: 1px solid #526b86; }
.dw-corporate-footer .dw-footer-contact .elementor-button:hover { background: #132d4a; border-color: #76b1ff; }
.dw-corporate-footer .elementor-button-content-wrapper { align-items: center; }
body:not(.wp-admin) .dw-corporate-footer .dw-footer-top.e-con { display: grid; grid-template-columns: minmax(190px, .9fr) minmax(0, 3fr); gap: 64px; align-items: start; padding-block: 52px 46px; }
.dw-corporate-footer .dw-footer-brand.e-con { gap: 22px; padding: 0; max-width: 245px; width: 100%; }
html:not([data-theme=dark]) .dw-corporate-footer .dw-logo.dw-media-dark,
html[data-theme=dark] .dw-corporate-footer .dw-logo.dw-media-dark { display: block !important; }
html:not([data-theme=dark]) .dw-corporate-footer .dw-logo.dw-media-light,
html[data-theme=dark] .dw-corporate-footer .dw-logo.dw-media-light { display: none !important; }
.dw-corporate-footer .dw-logo { width: 148px !important; max-width: 148px !important; }
.dw-corporate-footer .dw-logo img { width: 148px !important; }
.dw-corporate-footer .dw-footer-brand h3.elementor-heading-title { font-size: 21px; line-height: 1.4; font-weight: 500; letter-spacing: -.025em !important; }
.dw-corporate-footer .dw-footer-brand p { color: var(--dw-muted); font-size: 13px; line-height: 1.8; }
body:not(.wp-admin) .dw-corporate-footer .dw-footer-links.e-con { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)) minmax(0, 1.3fr); gap: 24px; padding: 0; width: 100%; }
.dw-corporate-footer .dw-footer-links > .e-con { padding: 0; margin: 0; gap: 15px; width: 100%; min-width: 0; }
.dw-corporate-footer .dw-footer-links h3.elementor-heading-title { font-size: 13px; font-weight: 650; line-height: 1.5; letter-spacing: 0 !important; }
.dw-corporate-footer .dw-footer-links p { margin: 0; }
.dw-corporate-footer .dw-footer-links a { display: inline-block; color: var(--dw-muted); font-size: 13px; line-height: 1.5; min-height: 38px; padding-block: 9px; text-decoration: none; transition: color .18s; }
.dw-corporate-footer .dw-footer-links a:hover { color: #fff; text-decoration: underline; text-underline-offset: 5px; }
body:not(.wp-admin) .dw-corporate-footer .dw-footer-bottom.e-con { display: block; padding-block: 23px 0; border-top: 1px solid var(--dw-border); }
.dw-corporate-footer .dw-footer-legal.e-con { display: flex; flex-direction: row; justify-content: space-between; align-items: start; max-width: none; width: 100%; padding: 0; gap: 32px; }
.dw-corporate-footer .dw-footer-legal > .elementor-widget:first-child { max-width: 760px; }
.dw-corporate-footer .dw-footer-legal > .elementor-widget:last-child { width: auto; flex-shrink: 0; }
.dw-corporate-footer .dw-footer-legal p { color: #bbc9d9; font-size: 11px !important; line-height: 1.8; margin: 0; }
.dw-corporate-footer .dw-footer-meta.e-con { display: flex; flex-direction: row; flex-wrap: wrap; align-items: center; gap: 4px 24px; width: auto; flex-shrink: 0; padding: 0; }
.dw-corporate-footer .dw-footer-meta > .elementor-widget { width: auto; }
.dw-corporate-footer .dw-footer-privacy a { display: inline-flex; align-items: center; min-height: 44px; padding: 0; color: #bbc9d9; font-size: 11px; line-height: 1.8; text-decoration: underline; text-underline-offset: 4px; }
.dw-corporate-footer .dw-footer-privacy a:hover { color: #fff; }
.dw-corporate-footer .dw-footer-legal.e-con { align-items: center; }
/* Keep the fallback control on pages without the shared footer. The native
   footer link opens the same existing consent dialog through its delegated handler. */
body:has(.dw-corporate-footer .dw-footer-privacy a) .dw-privacy-link { display: none; }
html[dir=rtl] .dw-corporate-footer :is(.dw-footer-eyebrow, .dw-footer-invitation-title) .elementor-heading-title { letter-spacing: 0 !important; }
@media (min-width: 1025px) and (max-width: 1199px) {
  body:not(.wp-admin) .dw-header .dw-header-main.e-con { gap: 12px; }
  .dw-header-main > .dw-logo { flex-basis: 120px !important; width: 120px !important; max-width: 120px !important; }
  .dw-header-main > .dw-logo img { width: 120px !important; }
  .dw-header .elementor-nav-menu--main .elementor-item { font-size: 12px; padding-inline: 7px; }
  .dw-header-main > .elementor-widget-datrylo_preferences { padding-inline-start: 10px; }
  .dw-header-actions .elementor-button { padding-inline: 12px; font-size: 12px; }
}
@media (max-width: 1024px) {
  body:not(.wp-admin) .dw-header.e-con { padding: 12px 24px; min-height: 76px; }
  body:not(.wp-admin) .dw-header .dw-header-main.e-con { gap: 16px; }
  .dw-header-main > .elementor-widget-datrylo_preferences { border: 0; padding: 0; }
  .dw-header .elementor-menu-toggle { border: 1px solid var(--dw-border); border-radius: 8px; background: var(--dw-surface); }
  body:not(.wp-admin) .dw-corporate-footer .dw-footer-top.e-con { grid-template-columns: 1fr; gap: 36px; }
  .dw-corporate-footer .dw-footer-brand.e-con { max-width: 420px; }
}
@media (max-width: 767px) {
  body:not(.wp-admin) .dw-header.e-con { padding: 10px 16px; min-height: 68px; }
  body:not(.wp-admin) .dw-header .dw-header-main.e-con { gap: 8px; flex-wrap: nowrap; }
  .dw-header-main > .dw-logo { flex-basis: 116px !important; width: 116px !important; max-width: 116px !important; }
  .dw-header-main > .dw-logo img { width: 116px !important; }
  .dw-header .dw-preferences .dw-language { width: 88px; max-width: 88px; font-size: 12px; }
  .dw-header-main > .dw-header-actions { display: none !important; }
  .dw-header .elementor-menu-toggle { width: 44px; min-width: 44px; }
  .dw-header-main > .elementor-widget-nav-menu { flex-basis: 44px !important; width: 44px !important; max-width: 44px; }
  .dw-header .elementor-nav-menu--dropdown .dw-nav-mobile-cta .elementor-item { font-weight: 650; }
  body:not(.wp-admin) .dw-footer.dw-corporate-footer.e-con { padding-inline: 24px; padding-bottom: 24px; }
  body:not(.wp-admin) .dw-corporate-footer .dw-footer-invitation.e-con { flex-direction: column; align-items: stretch; padding-block: 34px; gap: 24px; }
  .dw-corporate-footer .dw-footer-invitation-actions.e-con { flex-wrap: wrap; gap: 10px; }
  body:not(.wp-admin) .dw-corporate-footer .dw-footer-top.e-con { padding-block: 36px; gap: 32px; }
  body:not(.wp-admin) .dw-corporate-footer .dw-footer-links.e-con { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 24px; }
  .dw-corporate-footer .dw-footer-links a { min-height: 44px; padding-block: 11px; }
  .dw-corporate-footer .dw-footer-legal.e-con { flex-direction: column; align-items: stretch; gap: 16px; }
}
@media (max-width: 359px) {
  body:not(.wp-admin) .dw-header.e-con { padding-inline: 10px; }
  .dw-header-main > .dw-logo { flex-basis: 98px !important; width: 98px !important; max-width: 98px !important; }
  .dw-header-main > .dw-logo img { width: 98px !important; }
}
@media (prefers-reduced-motion: reduce) { .dw-header a, .dw-corporate-footer a { transition: none !important; } }
@media print { body:not(.wp-admin) :is(.dw-header, .dw-footer).e-con { display: none !important; } }

/* Text links and small labels meet contrast on the pale canvas. */
html:not([data-theme="dark"]) body:not(.wp-admin){--dw-blue:#005ce6;--dw-blue-hover:#004bbd}
.dw-logo img{height:auto;aspect-ratio:835/336}

/* Inline prose links are distinguishable without relying on color. */
.dw-page p a:not(.elementor-button){text-decoration:underline!important;text-underline-offset:3px}

/* Native page containers also use the shared CTA outside dw-page wrappers. */
body:not(.wp-admin) .elementor .dw-cta.e-con{background:#0b1f3b!important;border:1px solid #35516e}
main p a:not(.elementor-button){text-decoration:underline!important;text-underline-offset:3px}

/* Native language controls use stable platform typography. */
.dw-language{font-family:system-ui,-apple-system,'Segoe UI',sans-serif!important}

/* Keep linked images sized before their intrinsic bitmap dimensions arrive. */
.dw-media-frame .elementor-widget-image a{display:block;width:100%}
/* Long resource catalogues retain their full HTML and native search controls;
   the browser can defer rendering cards outside the viewport. */
@supports(content-visibility:auto){
  .dw-audit-resources-entry .da-resource-catalogue .dw-card{content-visibility:auto;contain-intrinsic-size:auto 260px}
}

/* Defer offscreen mobile homepage layout while preserving native HTML/links. */
@media(max-width:767px){@supports(content-visibility:auto){
.dw-home>.dw-section:not(.dw-home-hero){content-visibility:auto;contain-intrinsic-size:auto 1000px}
}}
