.dwp-layout-narrow,
.dwp-layout-standard,
.dwp-layout-wide {
    width: min(calc(100% - (var(--dwp-gutter) * 2)), var(--dwp-container-standard));
    margin-inline: auto;
}

.dwp-layout-narrow { max-width: var(--dwp-container-narrow); }
.dwp-layout-wide { max-width: var(--dwp-container-wide); }
.dwp-layout-max { max-width: var(--dwp-container-max); margin-inline: auto; }
.dwp-layout-full { width: 100%; max-width: none; }
.dwp-bg-primary { background-color: var(--dwp-color-primary) !important; }
.dwp-bg-secondary { background-color: var(--dwp-color-secondary) !important; }
.dwp-bg-accent { background-color: var(--dwp-color-accent) !important; }
.dwp-bg-dark { background-color: var(--dwp-color-dark) !important; }
.dwp-bg-light { background-color: var(--dwp-color-light) !important; }
.dwp-bg-surface { background-color: var(--dwp-color-surface) !important; }
.dwp-text-primary, .dwp-text-primary :where(h1,h2,h3,h4,h5,h6,p,a,span) { color: var(--dwp-color-primary) !important; }
.dwp-text-secondary, .dwp-text-secondary :where(h1,h2,h3,h4,h5,h6,p,a,span) { color: var(--dwp-color-secondary) !important; }
.dwp-text-dark, .dwp-text-dark :where(h1,h2,h3,h4,h5,h6,p,a,span) { color: var(--dwp-color-dark) !important; }
.dwp-text-light, .dwp-text-light :where(h1,h2,h3,h4,h5,h6,p,a,span) { color: var(--dwp-color-light) !important; }
.dwp-text-muted, .dwp-text-muted :where(h1,h2,h3,h4,h5,h6,p,a,span) { color: var(--dwp-color-muted) !important; }
.dwp-space-none { padding-block: 0 !important; }
.dwp-space-compact { padding-block: var(--dwp-section-compact) !important; }
.dwp-space-standard { padding-block: var(--dwp-section-standard) !important; }
.dwp-space-spacious { padding-block: var(--dwp-section-spacious) !important; }
.dwp-radius-none { border-radius: 0 !important; }
.dwp-radius-sm { border-radius: var(--dwp-radius-sm) !important; overflow: hidden; }
.dwp-radius-md { border-radius: var(--dwp-radius-md) !important; overflow: hidden; }
.dwp-radius-lg { border-radius: var(--dwp-radius-lg) !important; overflow: hidden; }
.dwp-radius-pill { border-radius: var(--dwp-radius-pill) !important; }
.dwp-type-body, .dwp-type-body :where(p,span,a) { font-family: var(--dwp-font-body) !important; font-size: var(--dwp-body-size); line-height: var(--dwp-body-line); }
.dwp-type-lead, .dwp-type-lead :where(p,span,a) { font-family: var(--dwp-font-body) !important; font-size: var(--dwp-lead-size); line-height: 1.55; }
.dwp-type-small, .dwp-type-small :where(p,span,a) { font-family: var(--dwp-font-body) !important; font-size: var(--dwp-small-size); line-height: 1.5; }

.dwp-global-button,
.dwp-button-primary .elementor-button,
.dwp-button-primary.elementor-widget-button .elementor-button {
    display: inline-flex;
    min-height: var(--dwp-button-height);
    align-items: center;
    justify-content: center;
    border: 0;
    border-radius: var(--dwp-button-radius);
    background: var(--dwp-button-bg);
    color: var(--dwp-button-text);
    font-weight: var(--dwp-button-weight);
    padding-inline: var(--dwp-button-padding);
    text-decoration: none;
    transition: background var(--dwp-motion-fast) var(--dwp-ease), transform var(--dwp-motion-fast) var(--dwp-ease);
}
.dwp-global-button:hover,
.dwp-button-primary .elementor-button:hover { background: var(--dwp-button-hover-bg); color: var(--dwp-button-text); transform: translateY(-1px); }
.dwp-card { border-radius: var(--dwp-card-radius); background: var(--dwp-color-surface); box-shadow: var(--dwp-card-shadow); }
.dwp-form-field input, .dwp-form-field select, .dwp-form-field textarea { min-height: var(--dwp-input-height); border: 1px solid var(--dwp-input-border); border-radius: var(--dwp-input-radius); }
.dwp-form-field input:focus, .dwp-form-field select:focus, .dwp-form-field textarea:focus { border-color: var(--dwp-input-focus); outline: 2px solid color-mix(in srgb, var(--dwp-input-focus) 25%, transparent); }

.dwp-elementor-managed .dwp-global-shell,
.dwp-elementor-managed .dwp-global-shell > .e-con-inner,
.dwp-elementor-managed .elementor-widget-dwp-global-header,
.dwp-elementor-managed .elementor-widget-dwp-global-footer,
.dwp-elementor-managed .elementor-widget-dwp-global-header > .elementor-widget-container,
.dwp-elementor-managed .elementor-widget-dwp-global-footer > .elementor-widget-container {
    width: 100%;
    max-width: none;
    gap: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
}

.dwp-template-part { width: 100%; }
.dwp-template-part--header { position: relative; z-index: 1000; }
.dwp-template-part--header.is-sticky { position: sticky; top: 0; }
.dwp-template-part--header.is-transparent { position: absolute; top: 0; right: 0; left: 0; }
.dwp-template-part--footer { position: relative; z-index: 10; }
.dwp-template-part .elementor { width: 100%; }

.dwp-builder-site-logo,
.dwp-builder-site-logo a { display: inline-flex; align-items: center; }
.dwp-builder-site-logo img { display: block; width: 148px; max-width: 100%; height: auto; }
.dwp-builder-site-title { color: inherit; font-weight: 800; }

.dwp-builder-navigation { position: relative; width: 100%; color: inherit; }
.dwp-builder-navigation__toggle { display: none; margin-left: auto; border: 0; background: transparent; color: inherit; padding: 8px; cursor: pointer; }
.dwp-builder-navigation__toggle span { display: block; width: 25px; height: 2px; margin: 5px 0; background: currentColor; transition: transform var(--dwp-motion-fast) var(--dwp-ease), opacity var(--dwp-motion-fast) var(--dwp-ease); }
.dwp-builder-navigation__toggle[aria-expanded="true"] span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.dwp-builder-navigation__toggle[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.dwp-builder-navigation__toggle[aria-expanded="true"] span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
.dwp-builder-navigation__list { display: flex; align-items: center; gap: var(--dwp-nav-gap); margin: 0; padding: 0; list-style: none; font-size: var(--dwp-nav-size); font-weight: var(--dwp-nav-weight); }
.dwp-builder-navigation.is-vertical .dwp-builder-navigation__list { align-items: stretch; flex-direction: column; }
.dwp-builder-navigation__list li { position: relative; margin: 0; list-style: none; }
.dwp-builder-navigation__list a { color: inherit; text-decoration: none; }
.dwp-builder-navigation__list .sub-menu { position: absolute; top: 100%; left: 0; display: none; width: var(--dwp-dropdown-width); margin: 0; border-radius: var(--dwp-radius-sm); background: var(--dwp-dropdown-bg); box-shadow: var(--dwp-card-shadow); padding: 12px; list-style: none; }
.dwp-builder-navigation__list .menu-item-has-children:hover > .sub-menu,
.dwp-builder-navigation__list .menu-item-has-children:focus-within > .sub-menu { display: grid; gap: 8px; }
.dwp-builder-navigation__empty { display: block; color: var(--dwp-color-muted); font-size: 13px; }

.dwp-motion-fade { animation: dwpFade var(--dwp-motion-base) var(--dwp-ease) both; }
.dwp-motion-up { animation: dwpUp var(--dwp-motion-base) var(--dwp-ease) both; }
.dwp-motion-scale { animation: dwpScale var(--dwp-motion-base) var(--dwp-ease) both; }
@keyframes dwpFade { from { opacity: 0; } to { opacity: 1; } }
@keyframes dwpUp { from { opacity: 0; transform: translateY(var(--dwp-reveal-distance)); } to { opacity: 1; transform: translateY(0); } }
@keyframes dwpScale { from { opacity: 0; transform: scale(.97); } to { opacity: 1; transform: scale(1); } }

.dwp-global-header { position: relative; z-index: 999; min-height: var(--dwp-header-height); border-bottom: 1px solid var(--dwp-header-border); background: var(--dwp-header-bg); color: var(--dwp-header-text); }
.dwp-global-header.is-sticky { position: sticky; top: 0; }
.dwp-global-header.is-transparent { position: absolute; top: 0; right: 0; left: 0; background: transparent; }
.dwp-global-header.is-scrolled { background: var(--dwp-header-scroll-bg); }
.dwp-global-header__inner { display: flex; min-height: var(--dwp-header-height); align-items: center; gap: 28px; }
.dwp-global-header__brand { display: inline-flex; color: inherit; font-weight: 800; text-decoration: none; }
.dwp-global-header__brand img { width: var(--dwp-header-logo); max-height: calc(var(--dwp-header-height) - 24px); object-fit: contain; }
.dwp-global-header__brand .dwp-logo--light,
.dwp-global-header__brand .dwp-logo--mobile,
.dwp-global-header__brand .dwp-logo--sticky { display: none; }
.dwp-global-header.is-transparent.has-light-logo:not(.is-scrolled) .dwp-logo--primary { display: none; }
.dwp-global-header.is-transparent.has-light-logo:not(.is-scrolled) .dwp-logo--light { display: block; }
.dwp-global-header.is-scrolled.has-sticky-logo .dwp-logo--primary,
.dwp-global-header.is-scrolled.has-sticky-logo .dwp-logo--light { display: none; }
.dwp-global-header.is-scrolled.has-sticky-logo .dwp-logo--sticky { display: block; }
.dwp-global-header__nav { flex: 1; }
.dwp-global-menu, .dwp-global-footer-menu { display: flex; align-items: center; gap: var(--dwp-nav-gap); margin: 0; padding: 0; list-style: none; }
.dwp-global-menu ul { list-style: none; }
.dwp-global-menu { font-size: var(--dwp-nav-size); font-weight: var(--dwp-nav-weight); }
.dwp-global-menu a { color: inherit; font-size: inherit; font-weight: inherit; text-decoration: none; }
.dwp-global-menu .menu-item-has-children { position: relative; }
.dwp-global-menu .sub-menu { position: absolute; display: none; width: var(--dwp-dropdown-width); border-radius: var(--dwp-radius-sm); background: var(--dwp-dropdown-bg); box-shadow: var(--dwp-card-shadow); padding: 12px; }
.dwp-global-menu .menu-item-has-children:hover > .sub-menu,
.dwp-global-menu .menu-item-has-children:focus-within > .sub-menu { display: grid; gap: 8px; }
.dwp-global-header__toggle { display: none; border: 0; background: none; padding: 8px; }
.dwp-global-header__toggle span { display: block; width: 24px; height: 2px; margin: 5px 0; background: currentColor; }

.dwp-global-footer { background: var(--dwp-footer-bg); color: var(--dwp-footer-text); padding-top: var(--dwp-footer-pt); }
.dwp-global-footer__main { display: grid; grid-template-columns: minmax(220px, 1fr) 2fr auto; gap: 48px; padding-bottom: 48px; }
.dwp-global-footer__brand img { width: 150px; max-height: 64px; object-fit: contain; }
.dwp-global-footer a { color: var(--dwp-footer-link); text-decoration: none; }
.dwp-global-footer a:hover { color: var(--dwp-footer-hover); }
.dwp-global-footer-menu { flex-wrap: wrap; }
.dwp-global-footer__social { display: flex; flex-wrap: wrap; gap: 18px; }
.dwp-global-footer__bottom { border-top: 1px solid color-mix(in srgb, var(--dwp-footer-text) 24%, transparent); padding-block: var(--dwp-footer-pb); }

.dwp-site-loader { position: fixed; inset: 0; z-index: 999999; display: grid; place-items: center; background: var(--dwp-loader-bg); color: var(--dwp-loader-color); opacity: 1; visibility: visible; transition: opacity var(--dwp-loader-fade) ease, visibility var(--dwp-loader-fade) ease; }
.dwp-site-loader.is-hidden { opacity: 0; visibility: hidden; pointer-events: none; }
.dwp-site-loader img { width: min(220px, 48vw); max-height: 120px; object-fit: contain; animation: dwpLoaderPulse 1.2s ease-in-out infinite alternate; }
.dwp-site-loader__spinner { width: 44px; height: 44px; border: 3px solid color-mix(in srgb, currentColor 24%, transparent); border-top-color: currentColor; border-radius: 50%; animation: dwpLoaderSpin .8s linear infinite; }
@keyframes dwpLoaderSpin { to { transform: rotate(360deg); } }
@keyframes dwpLoaderPulse { to { opacity: .5; transform: scale(.96); } }
.dwp-back-to-top { position: fixed; right: var(--dwp-top-right); bottom: var(--dwp-top-bottom); z-index: 9998; display: grid; width: var(--dwp-top-size); height: var(--dwp-top-size); place-items: center; border: 0; border-radius: 50%; background: var(--dwp-top-bg); box-shadow: 0 8px 24px rgba(0,0,0,.18); color: var(--dwp-top-color); cursor: pointer; font-size: 21px; opacity: 0; visibility: hidden; transform: translateY(10px); transition: opacity var(--dwp-motion-fast) var(--dwp-ease), transform var(--dwp-motion-fast) var(--dwp-ease), visibility var(--dwp-motion-fast) var(--dwp-ease); }
.dwp-back-to-top.is-visible { opacity: 1; visibility: visible; transform: translateY(0); }

@media (max-width: 1024px) {
    .dwp-global-footer__main { grid-template-columns: 1fr; gap: 28px; }
}
