/* Browsers ignore @import after any other rule, so this stays first. */
@import url("https://fonts.googleapis.com/css?family=Raleway:400,500,600,700&display=swap");

   :root {
       --dnn-color-secondary: #20A3F0;
       --dnn-color-secondary-light: #36ACF2;
       --dnn-color-secondary-dark: #1C8FD3;
       --dnn-color-secondary-contrast: #FFFFFF;
       --dnn-color-secondary-r: 32;
       --dnn-color-secondary-g: 163;
       --dnn-color-secondary-b: 240;
           
       --dnn-color-primary: #62BB46;
       --dnn-color-primary-light: #72C259;
       --dnn-color-primary-dark: #56A53E;
       --dnn-color-primary-contrast: #FFFFFF;
       --dnn-color-primary-r: 98;
       --dnn-color-primary-g: 187;
       --dnn-color-primary-b: 70;
           
       --dnn-color-tertiary: #00A266;
       --dnn-color-tertiary-light: #1AAB75;
       --dnn-color-tertiary-dark: #008F5A;
       --dnn-color-tertiary-contrast: #FFFFFF;
       --dnn-color-tertiary-r: 0;
       --dnn-color-tertiary-g: 162;
       --dnn-color-tertiary-b: 102;
           
       --dnn-color-neutral: #DCDCDC;
       --dnn-color-neutral-light: #F0F0F0;
       --dnn-color-neutral-dark: #999999;
       --dnn-color-neutral-contrast: #000000;
       --dnn-color-neutral-r: 220;
       --dnn-color-neutral-g: 220;
       --dnn-color-neutral-b: 220;
           
       --dnn-color-background: #FFFFFF;
       --dnn-color-background-light: #F5F5F5;
       --dnn-color-background-dark: #CCCCCC;
       --dnn-color-background-contrast: #000000;
       --dnn-color-background-r: 255;
       --dnn-color-background-g: 255;
       --dnn-color-background-b: 255;
           
       --dnn-color-foreground: #333333;
       --dnn-color-foreground-light: #666666;
       --dnn-color-foreground-dark: #000000;
       --dnn-color-foreground-contrast: #FFFFFF;
       --dnn-color-foreground-r: 51;
       --dnn-color-foreground-g: 51;
       --dnn-color-foreground-b: 51;
   
       --dnn-color-info: #17A2B8;
       --dnn-color-info-light: #23B8CF;
       --dnn-color-info-dark: #00889E;
       --dnn-color-info-contrast: #FFFFFF;
       --dnn-color-info-r: 23;
       --dnn-color-info-g: 162;
       --dnn-color-info-b: 184;
   
       --dnn-color-success: #28A745;
       --dnn-color-success-light: #49C25D;
       --dnn-color-success-dark: #00902F;
       --dnn-color-success-contrast: #FFFFFF;
       --dnn-color-success-r: 40;
       --dnn-color-success-g: 167;
       --dnn-color-success-b: 69;
   
       --dnn-color-warning: #FFC107;
       --dnn-color-warning-light: #FFD42E;
       --dnn-color-warning-dark: #E9AD00;
       --dnn-color-warning-contrast: #FFFFFF;
       --dnn-color-warning-r: 255;
       --dnn-color-warning-g: 193;
       --dnn-color-warning-b: 7;
   
       --dnn-color-danger: #DC3545;
       --dnn-color-danger-light: #F14954;
       --dnn-color-danger-dark: #C51535;
       --dnn-color-danger-contrast: #FFFFFF;
       --dnn-color-danger-r: 220;
       --dnn-color-danger-g: 53;
       --dnn-color-danger-b: 69;
   
       --dnn-color-surface: #DDDDDD;
       --dnn-color-surface-light: #EEEEEE;
       --dnn-color-surface-dark: #CCCCCC;
       --dnn-color-surface-contrast: #000000;
       --dnn-color-surface-r: 221;
       --dnn-color-surface-g: 221;
       --dnn-color-surface-b: 221;
   
       --dnn-controls-radius: 0px;
       --dnn-controls-padding: 9px;
       --dnn-base-font-size: 16px;
       --dnn-variation-opacity: 0.8;
   }

/* Euclid overrides. This file loads before skin.min.css, so #Body scoping wins on specificity. */

#Body,
#Body h1, #Body h2, #Body h3, #Body h4, #Body h5, #Body h6,
#Body #nav-desktop a, #Body #nav-footer a, #Body .nav-link {
    font-family: "Raleway", Helvetica, Arial, sans-serif;
}
#Body { font-weight: 400; color: #555555; }
#Body h1, #Body h2, #Body h3, #Body h4, #Body h5, #Body h6 { font-weight: 600; }
#Body .aperture-main { margin-bottom: 2rem !important; }
#Body .aperture-main :is(h1, h2, h3, h4, h5, h6) { color: #333333; }
#Body h1 { font-size: 2.25rem; }
#Body h2 { font-size: 2rem; }
#Body h3 { font-size: 1.6rem; }
#Body h4 { font-size: 1.35rem; }
#Body h5 { font-size: 1.15rem; margin-bottom: 1rem; }
#Body h6 { font-size: 1rem; margin-bottom: 1rem; }
#Body .aperture-main a:hover { text-decoration: underline; }

/* Green eyebrow bar, white logo bar, and pill-shaped top menu */
#Body .aperture-header .eyebrow-bar {
    background-image: linear-gradient(to right, #00A266 0%, #6DCF50 100%);
}
#Body .aperture-header .logo-menu-bar { background-color: #FFFFFF; }
#Body #nav-desktop > li > a {
    color: #333333;
    text-transform: none;
    font-size: 1rem;
    padding: .5rem 1rem;
    border-radius: 20px;
}
#Body #nav-desktop > li:hover > a,
#Body #nav-desktop > li.selected > a {
    background-color: var(--dnn-color-primary);
    color: #FFFFFF;
}
#Body #nav-desktop { gap: .25rem; }
#Body #nav-desktop > li > ul {
    background: #FFFFFF;
    border-top: 3px solid var(--dnn-color-primary);
    padding-right: 0;
}
#Body #nav-desktop > li > ul a { color: #333333; text-transform: none; }
#Body #nav-desktop > li > ul a:hover,
#Body #nav-desktop > li li.selected > a { color: var(--dnn-color-primary); }
#Body #menuToggle > span { background: #333333; }

/* Diagonal green gradient from the old skin footer */
#Body .aperture-footer {
    background-image: linear-gradient(to right bottom, #00A266 0%, #6DCF50 60%);
}
#Body .aperture-footer a:hover { text-decoration: underline; }

/* default.css a:visited and a:focus outrank Aperture's white header and footer links */
#Body .eyebrow-bar a, #Body .eyebrow-bar a:visited, #Body .eyebrow-bar a:focus, #Body .eyebrow-bar a:hover,
#Body .aperture-footer a, #Body .aperture-footer a:visited, #Body .aperture-footer a:focus, #Body .aperture-footer a:hover {
    color: #FFFFFF;
}
#Body .eyebrow-bar a:hover { text-decoration: underline; }
#Body .aperture-footer, #Body .aperture-footer .Normal { color: #FFFFFF; }

/* Login card */
#Body .dnnLogin { width: auto; margin: 3rem auto; padding: 0 1rem; }
#Body .dnnLogin .LoginPanel {
    float: none;
    max-width: 420px;
    margin: 0 auto;
    padding: 2rem;
    background: #FFFFFF;
    border: 1px solid #E5E5E5;
    border-top: 4px solid var(--dnn-color-primary);
    border-radius: 8px;
    box-shadow: 0 6px 20px rgba(0, 0, 0, .08);
}
#Body .dnnLogin .LoginPanel .dnnFormItem { width: 100%; margin: 0 0 1.25rem; padding: 0; float: none; }
#Body .dnnLogin .LoginPanel .dnnFormItem .dnnFormLabel {
    display: block;
    float: none;
    width: auto;
    margin: 0 0 .4rem;
    padding: 0;
    text-align: left;
    font-size: .95rem;
    font-weight: 600;
    color: #333333;
}
#Body .dnnLogin .LoginPanel .dnnLoginActions .dnnFormLabel,
#Body .dnnLogin .LoginPanel .dnnFormItem:nth-child(n+3) > .dnnFormLabel { display: none; }
#Body .dnnLogin .LoginPanel .dnnFormItem input[type="text"],
#Body .dnnLogin .LoginPanel .dnnFormItem input[type="password"] {
    width: 100%;
    min-width: 0;
    max-width: none;
    padding: .65rem .75rem;
    font-family: inherit;
    font-size: 1rem;
    font-weight: 400;
    border: 1px solid #CCCCCC;
    border-radius: 4px;
    box-shadow: none;
}
#Body .dnnLogin .LoginPanel .dnnFormItem input[type="text"]:focus,
#Body .dnnLogin .LoginPanel .dnnFormItem input[type="password"]:focus {
    border-color: var(--dnn-color-primary);
    outline: none;
    box-shadow: 0 0 0 3px rgba(98, 187, 70, .25);
}
#Body .dnnLogin .dnnLoginActions { width: 100%; margin: 0; padding: 0; }
#Body .dnnLogin .dnnLoginActions ul.dnnActions { display: block; margin: 0; padding: 0; list-style: none; }
#Body .dnnLogin .dnnLoginActions ul.dnnActions li { display: block; margin: 0; padding: 0; float: none; }
#Body .dnnLogin .dnnLoginActions a.dnnPrimaryAction {
    display: block;
    width: 100%;
    margin: 0;
    padding: .75rem 1rem;
    text-align: center;
    font-size: 1rem;
    font-weight: 600;
    color: #FFFFFF;
    background: var(--dnn-color-primary);
    border: 0;
    border-radius: 4px;
    text-decoration: none;
}
#Body .dnnLogin .dnnLoginActions a.dnnPrimaryAction:hover { background: var(--dnn-color-primary-dark); }
#Body .dnnLogin .dnnLoginRememberMe { display: flex; align-items: center; gap: .5rem; margin-top: 1rem; }
#Body .dnnLogin .dnnLoginRememberMe label { margin: 0; font-size: .95rem; font-weight: 400; }
#Body .dnnLogin .LoginPanel .dnnFormItem:last-child { margin-bottom: 0; padding-top: 1.25rem; border-top: 1px solid #EEEEEE; }
#Body .dnnLogin .LoginPanel .dnnFormItem:last-child ul.dnnActions { display: flex; justify-content: space-between; }
#Body .dnnLogin .LoginPanel .dnnFormItem:last-child ul.dnnActions li { width: auto; }
#Body .dnnLogin .LoginPanel .dnnFormItem:last-child ul.dnnActions::before,
#Body .dnnLogin .LoginPanel .dnnFormItem:last-child ul.dnnActions::after { display: none; }
#Body .dnnLogin .dnnLoginActions a.dnnSecondaryAction {
    display: inline;
    width: auto;
    margin: 0;
    padding: 0;
    font-size: .95rem;
    font-weight: 500;
    color: var(--dnn-color-primary);
    background: none;
    border: 0;
    box-shadow: none;
    text-shadow: none;
}
#Body .dnnLogin .dnnLoginActions a.dnnSecondaryAction:hover { text-decoration: underline; }

/* Bootstrap 3 grid shim for HTML module content migrated from the old skin */
#Body .aperture-content-pane .Normal .row { display: flex; flex-wrap: wrap; margin-left: -15px; margin-right: -15px; }
#Body .aperture-content-pane .Normal .row > [class*="col-"] { width: 100%; padding-left: 15px; padding-right: 15px; }
#Body .aperture-content-pane .Normal .img-responsive { display: block; max-width: 100%; height: auto; }
#Body .aperture-content-pane .Normal .row > .col-xs-1 { width: 8.3333%; }
#Body .aperture-content-pane .Normal .row > .col-xs-2 { width: 16.6667%; }
#Body .aperture-content-pane .Normal .row > .col-xs-3 { width: 25%; }
#Body .aperture-content-pane .Normal .row > .col-xs-4 { width: 33.3333%; }
#Body .aperture-content-pane .Normal .row > .col-xs-5 { width: 41.6667%; }
#Body .aperture-content-pane .Normal .row > .col-xs-6 { width: 50%; }
#Body .aperture-content-pane .Normal .row > .col-xs-7 { width: 58.3333%; }
#Body .aperture-content-pane .Normal .row > .col-xs-8 { width: 66.6667%; }
#Body .aperture-content-pane .Normal .row > .col-xs-9 { width: 75%; }
#Body .aperture-content-pane .Normal .row > .col-xs-10 { width: 83.3333%; }
#Body .aperture-content-pane .Normal .row > .col-xs-11 { width: 91.6667%; }
#Body .aperture-content-pane .Normal .row > .col-xs-12 { width: 100%; }
@media (min-width: 768px) {
    #Body .aperture-content-pane .Normal .row > .col-sm-1 { width: 8.3333%; }
    #Body .aperture-content-pane .Normal .row > .col-sm-2 { width: 16.6667%; }
    #Body .aperture-content-pane .Normal .row > .col-sm-3 { width: 25%; }
    #Body .aperture-content-pane .Normal .row > .col-sm-4 { width: 33.3333%; }
    #Body .aperture-content-pane .Normal .row > .col-sm-5 { width: 41.6667%; }
    #Body .aperture-content-pane .Normal .row > .col-sm-6 { width: 50%; }
    #Body .aperture-content-pane .Normal .row > .col-sm-7 { width: 58.3333%; }
    #Body .aperture-content-pane .Normal .row > .col-sm-8 { width: 66.6667%; }
    #Body .aperture-content-pane .Normal .row > .col-sm-9 { width: 75%; }
    #Body .aperture-content-pane .Normal .row > .col-sm-10 { width: 83.3333%; }
    #Body .aperture-content-pane .Normal .row > .col-sm-11 { width: 91.6667%; }
    #Body .aperture-content-pane .Normal .row > .col-sm-12 { width: 100%; }
}
@media (min-width: 992px) {
    #Body .aperture-content-pane .Normal .row > .col-md-1 { width: 8.3333%; }
    #Body .aperture-content-pane .Normal .row > .col-md-2 { width: 16.6667%; }
    #Body .aperture-content-pane .Normal .row > .col-md-3 { width: 25%; }
    #Body .aperture-content-pane .Normal .row > .col-md-4 { width: 33.3333%; }
    #Body .aperture-content-pane .Normal .row > .col-md-5 { width: 41.6667%; }
    #Body .aperture-content-pane .Normal .row > .col-md-6 { width: 50%; }
    #Body .aperture-content-pane .Normal .row > .col-md-7 { width: 58.3333%; }
    #Body .aperture-content-pane .Normal .row > .col-md-8 { width: 66.6667%; }
    #Body .aperture-content-pane .Normal .row > .col-md-9 { width: 75%; }
    #Body .aperture-content-pane .Normal .row > .col-md-10 { width: 83.3333%; }
    #Body .aperture-content-pane .Normal .row > .col-md-11 { width: 91.6667%; }
    #Body .aperture-content-pane .Normal .row > .col-md-12 { width: 100%; }
}
@media (min-width: 1200px) {
    #Body .aperture-content-pane .Normal .row > .col-lg-1 { width: 8.3333%; }
    #Body .aperture-content-pane .Normal .row > .col-lg-2 { width: 16.6667%; }
    #Body .aperture-content-pane .Normal .row > .col-lg-3 { width: 25%; }
    #Body .aperture-content-pane .Normal .row > .col-lg-4 { width: 33.3333%; }
    #Body .aperture-content-pane .Normal .row > .col-lg-5 { width: 41.6667%; }
    #Body .aperture-content-pane .Normal .row > .col-lg-6 { width: 50%; }
    #Body .aperture-content-pane .Normal .row > .col-lg-7 { width: 58.3333%; }
    #Body .aperture-content-pane .Normal .row > .col-lg-8 { width: 66.6667%; }
    #Body .aperture-content-pane .Normal .row > .col-lg-9 { width: 75%; }
    #Body .aperture-content-pane .Normal .row > .col-lg-10 { width: 83.3333%; }
    #Body .aperture-content-pane .Normal .row > .col-lg-11 { width: 91.6667%; }
    #Body .aperture-content-pane .Normal .row > .col-lg-12 { width: 100%; }
}

/* Hide Register links. The User skin object uses this id only for its logged-out Register link. */
#Body #dnn_dnnUser_registerLink,
#Body .dnnLogin .dnnLoginActions ul.dnnActions li[id$="_liRegister"] { display: none; }
#Body .dnnLogin .LoginPanel .dnnFormItem:last-child ul.dnnActions { justify-content: center; }

/* Home hero banner (HTML module markup from the old skin). Plain CSS replaces the DNNGo plugin's animation script. */
#Body .home01-banner {
    position: relative;
    z-index: 1;
    overflow: hidden;
    width: 100%;
    color: #FFFFFF;
    text-align: center;
}
#Body .home01-banner .banner-bg {
    position: absolute;
    top: 0;
    left: 0;
    z-index: -1;
    width: 100%;
    height: 100%;
    background: #00A266 url("https://0e7a000690e459a56d52-30e35267d637ea926fe4efdb042a5806.ssl.cf2.rackcdn.com/images/homepage-angle.svg") no-repeat center / cover;
}
#Body .home01-banner .container { max-width: 1170px; margin: 0 auto; padding: 0 15px; }
#Body .home01-banner .row { display: block; margin: 0; }
#Body .home01-banner .banner-title { margin: 180px 0 50px; font-size: 80px; line-height: 1.2; }
#Body .home01-banner .banner-title span { font-weight: 700; }
#Body .home01-banner .banner-content { margin-bottom: 50px; font-size: 20px; line-height: 2; }
#Body .home01-banner .banner-link { margin-bottom: 110px; }
#Body .home01-banner .banner-link a {
    display: inline-block;
    margin: 0 15px 15px;
    padding: 15px 50px;
    font-size: 16px;
    color: #FFFFFF;
    border: 2px solid #FFFFFF;
    border-radius: 50px;
    transition: all ease-in 200ms;
}
#Body .home01-banner .banner-link a:hover { color: var(--dnn-color-primary); background-color: #FFFFFF; text-decoration: none; }

@keyframes euclidFadeInLeft {
    from { opacity: 0; transform: translate3d(-60px, 0, 0); }
    to { opacity: 1; transform: none; }
}
#Body .home01-banner .animation_item.fadeInLeft { animation: euclidFadeInLeft 1s both; }
#Body .home01-banner .animation_item.delay1 { animation-delay: .2s; }
#Body .home01-banner .animation_item.delay2 { animation-delay: .4s; }
#Body .home01-banner .animation_item.delay3 { animation-delay: .6s; }
@media (prefers-reduced-motion: reduce) {
    #Body .home01-banner .animation_item { animation: none; }
}

@media (max-width: 1199px) {
    #Body .home01-banner .banner-title { font-size: 50px; }
}
@media (max-width: 991px) {
    #Body .home01-banner .banner-title { font-size: 36px; }
    #Body .home01-banner .banner-content { margin-bottom: 30px; font-size: 15px; }
    #Body .home01-banner .banner-link a { margin: 0 5px 10px; padding: 12px 30px; font-size: 14px; }
}
@media (max-width: 767px) {
    #Body .home01-banner .banner-title { margin: 60px 0 20px; font-size: 30px; }
    #Body .home01-banner .banner-link { margin-bottom: 90px; }
    #Body .home01-banner { min-height: 0 !important; }
}

/* "Watch the Demo" promo card (markup in module-html/watch-demo.html) */
#Body .euclid-demo {
    display: grid;
    grid-template-columns: 1fr;
    gap: 2rem;
    align-items: center;
    margin: 3rem auto;
    padding: 2rem;
    max-width: 1100px;
    background: #F4F8F3;
    border-left: 5px solid var(--dnn-color-primary);
    border-radius: 8px;
    box-shadow: 0 6px 20px rgba(0, 0, 0, .06);
}
@media (min-width: 768px) {
    #Body .euclid-demo { grid-template-columns: 1fr 1fr; gap: 3rem; padding: 3rem; }
}
#Body .euclid-demo-thumb {
    position: relative;
    display: block;
    overflow: hidden;
    border-radius: 6px;
    box-shadow: 0 8px 24px rgba(0, 0, 0, .15);
}
#Body .euclid-demo-thumb img { display: block; width: 100%; height: auto; transition: transform .3s ease; }
#Body .euclid-demo-thumb:hover img,
#Body .euclid-demo-thumb:focus img { transform: scale(1.04); }
#Body .euclid-demo-play {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 72px;
    height: 72px;
    margin: -36px 0 0 -36px;
    border-radius: 50%;
    background: var(--dnn-color-primary);
    box-shadow: 0 0 0 8px rgba(255, 255, 255, .5);
    transition: transform .3s ease;
}
#Body .euclid-demo-play::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    margin: -12px 0 0 -7px;
    border-style: solid;
    border-width: 12px 0 12px 20px;
    border-color: transparent transparent transparent #FFFFFF;
}
#Body .euclid-demo-thumb:hover .euclid-demo-play,
#Body .euclid-demo-thumb:focus .euclid-demo-play { transform: scale(1.1); }
#Body .euclid-demo-eyebrow {
    display: block;
    margin-bottom: .5rem;
    font-size: .8rem;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--dnn-color-primary-dark);
}
#Body .euclid-demo-text h3 { margin: 0 0 1rem; font-size: 2rem; }
#Body .euclid-demo-text p { margin-bottom: 1.75rem; font-size: 1.05rem; line-height: 1.7; }
#Body .euclid-btn, #Body .euclid-btn:visited,
#Body .euclid-demo-btn,
#Body .euclid-demo-btn:visited {
    display: inline-block;
    padding: .85rem 2.25rem;
    font-weight: 600;
    color: #FFFFFF;
    background: var(--dnn-color-primary);
    border-radius: 50px;
    text-decoration: none;
    transition: background-color .2s ease;
}
#Body .euclid-btn:hover, #Body .euclid-btn:focus,
#Body .euclid-demo-btn:hover,
#Body .euclid-demo-btn:focus { color: #FFFFFF; background: var(--dnn-color-primary-dark); text-decoration: none; }
@media (prefers-reduced-motion: reduce) {
    #Body .euclid-demo-thumb img, #Body .euclid-demo-play { transition: none; }
}

/* Feature list (markup in module-html/features.html) */
#Body .euclid-features { max-width: 1100px; margin: 3rem auto; }
#Body .euclid-features-intro { max-width: 820px; margin: 0 auto 2.5rem; text-align: center; font-size: 1.1rem; line-height: 1.7; }
#Body .euclid-features-grid { display: grid; grid-template-columns: 1fr; column-gap: 2rem; margin-bottom: 2.5rem; }
@media (min-width: 576px) { #Body .euclid-features-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 992px) { #Body .euclid-features-grid { grid-template-columns: repeat(4, 1fr); } }
#Body .euclid-features-list { margin: 0; padding: 0; list-style: none; }
#Body .euclid-features-list li {
    display: flex;
    align-items: center;
    gap: .75rem;
    margin: 0 0 .9rem;
    font-size: 1rem;
    color: #333333;
    break-inside: avoid;
}
#Body .euclid-features-list li .fa {
    flex: 0 0 36px;
    width: 36px;
    height: 36px;
    line-height: 36px;
    text-align: center;
    font-size: 16px;
    color: var(--dnn-color-primary-dark);
    background: #EAF5E6;
    border-radius: 50%;
}
#Body .euclid-features-cta { margin: 0; text-align: center; }

/* Page intro header (markup in module-html/schedule-demo-intro.html) */
#Body .euclid-intro { max-width: 820px; margin: 3rem auto 2rem; text-align: center; }
#Body .euclid-intro-eyebrow {
    display: block;
    margin-bottom: .75rem;
    font-size: .85rem;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--dnn-color-primary-dark);
}
#Body .euclid-intro h1 { margin: 0 0 1.25rem; font-size: 2.75rem; font-weight: 700; }
#Body .euclid-intro h1::after {
    content: "";
    display: block;
    width: 60px;
    height: 4px;
    margin: 1.25rem auto 0;
    background: var(--dnn-color-primary);
    border-radius: 2px;
}
#Body .euclid-intro p { margin: 0; font-size: 1.1rem; line-height: 1.75; }
@media (max-width: 767px) {
    #Body .euclid-intro { margin-top: 2rem; }
    #Body .euclid-intro h1 { font-size: 2rem; }
}

/* Contact strip (markup in module-html/schedule-demo-contact.html) */
#Body .euclid-contact {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: .75rem 2rem;
    max-width: 900px;
    margin: 0 auto 2.5rem;
    padding: 1.25rem 2rem;
    background: #F4F8F3;
    border-radius: 50px;
}
#Body .euclid-contact-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    font-size: 18px;
    color: #FFFFFF;
    background: var(--dnn-color-primary);
    border-radius: 50%;
}
#Body .euclid-contact-label { font-weight: 600; color: #333333; }
#Body .euclid-contact-item,
#Body .euclid-contact-item:visited {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    font-weight: 500;
    color: var(--dnn-color-primary-dark);
    text-decoration: none;
}
#Body .euclid-contact-item .fa { color: var(--dnn-color-primary); }
#Body .euclid-contact-item:hover,
#Body .euclid-contact-item:focus { color: var(--dnn-color-primary-dark); text-decoration: underline; }
@media (max-width: 767px) {
    #Body .euclid-contact { flex-direction: column; border-radius: 12px; }
    #Body .euclid-contact-icon { display: none; }
}

/* Intro extras for Contact Us (markup in module-html/contact-us-intro.html) */
#Body .euclid-intro-actions { margin: 2rem 0 1.25rem; }
#Body .euclid-intro .euclid-intro-note { font-size: .95rem; color: #666666; }

/* Contact info cards (markup in module-html/contact-us-info.html) */
#Body .euclid-info-cards {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.5rem;
    max-width: 1100px;
    margin: 1rem auto 3rem;
}
@media (min-width: 576px) { #Body .euclid-info-cards { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 992px) { #Body .euclid-info-cards { grid-template-columns: repeat(4, 1fr); } }
#Body .euclid-info-card {
    padding: 2rem 1.5rem;
    text-align: center;
    background: #F4F8F3;
    border-radius: 8px;
}
#Body .euclid-info-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 56px;
    height: 56px;
    margin-bottom: 1rem;
    font-size: 22px;
    color: #FFFFFF;
    background: var(--dnn-color-primary);
    border-radius: 50%;
}
#Body .euclid-info-card h4 { margin: 0 0 .5rem; font-size: 1.15rem; }
#Body .euclid-info-card p { margin: 0; font-size: 1rem; line-height: 1.6; }
#Body .euclid-info-card a,
#Body .euclid-info-card a:visited { color: var(--dnn-color-primary-dark); font-weight: 500; word-break: break-word; }

/* Step-by-step guide (markup in module-html/vpn-guide.html) */
#Body .euclid-steps { display: grid; gap: 1.5rem; max-width: 900px; margin: 2rem auto 3rem; }
#Body .euclid-step {
    display: flex;
    gap: 1.5rem;
    align-items: flex-start;
    padding: 2rem;
    background: #FFFFFF;
    border: 1px solid #E5E5E5;
    border-left: 5px solid var(--dnn-color-primary);
    border-radius: 8px;
    box-shadow: 0 6px 20px rgba(0, 0, 0, .05);
}
#Body .euclid-step-muted { background: #F7F7F7; border-left-color: #999999; box-shadow: none; }
#Body .euclid-step-badge {
    display: inline-flex;
    flex: 0 0 48px;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    font-size: 1.35rem;
    font-weight: 700;
    color: #FFFFFF;
    background: var(--dnn-color-primary);
    border-radius: 50%;
}
#Body .euclid-step-muted .euclid-step-badge { background: #999999; font-size: 1.1rem; }
#Body .euclid-step-body { flex: 1 1 auto; min-width: 0; }
#Body .euclid-step-body h3 { margin: .5rem 0 1rem; font-size: 1.5rem; }
#Body .euclid-step-body p { margin: 0 0 1rem; line-height: 1.7; }
#Body .euclid-step-body a,
#Body .euclid-step-body a:visited { color: var(--dnn-color-primary-dark); font-weight: 500; }

#Body .euclid-callout {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem 1.5rem;
    align-items: center;
    padding: 1rem 1.25rem;
    background: #F4F8F3;
    border-radius: 6px;
}
#Body .euclid-callout strong { flex: 1 0 100%; color: #333333; }
#Body .euclid-callout a { display: inline-flex; align-items: center; gap: .5rem; word-break: break-word; }
#Body .euclid-callout .fa { color: var(--dnn-color-primary); }

#Body .euclid-checklist { counter-reset: euclid-step; margin: 0; padding: 0; list-style: none; }
#Body .euclid-checklist li {
    position: relative;
    margin: 0 0 .85rem;
    padding-left: 2.5rem;
    line-height: 1.6;
    counter-increment: euclid-step;
}
#Body .euclid-checklist li:last-child { margin-bottom: 0; }
#Body .euclid-checklist li::before {
    content: counter(euclid-step);
    position: absolute;
    top: 0;
    left: 0;
    width: 1.7rem;
    height: 1.7rem;
    font-size: .85rem;
    font-weight: 700;
    line-height: 1.7rem;
    text-align: center;
    color: var(--dnn-color-primary-dark);
    background: #EAF5E6;
    border-radius: 50%;
}
@media (max-width: 575px) {
    #Body .euclid-step { flex-direction: column; gap: .75rem; padding: 1.5rem; }
}

/* Button-element support for .euclid-btn, plus a right-aligned row (markup in module-html/refresh-button.html) */
#Body button.euclid-btn {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    font-family: inherit;
    font-size: 1rem;
    line-height: 1.2;
    border: 0;
    cursor: pointer;
}
#Body button.euclid-btn:focus-visible { outline: 3px solid rgba(98, 187, 70, .4); outline-offset: 2px; }
#Body .euclid-btn .fa { transition: transform .4s ease; }
#Body .euclid-btn:hover .fa-refresh { transform: rotate(180deg); }
#Body .euclid-btn-row { display: flex; justify-content: flex-end; margin: 1rem 0; }
@media (prefers-reduced-motion: reduce) {
    #Body .euclid-btn .fa { transition: none; }
}
.footer-menu {
	display: none !important;
}
/* Inline-styled info box in module 4072. !important is needed to beat its inline styles. */
#Body #dnn_ctr4072_HtmlModule_lblContent > div {
    font-family: "Raleway", Helvetica, Arial, sans-serif !important;
    padding: 1.25rem 1.5rem !important;
    background: #F4F8F3 !important;
    border-left: 5px solid var(--dnn-color-primary) !important;
    border-radius: 8px !important;
    margin-bottom: 1rem !important;
}
#Body #dnn_ctr4072_HtmlModule_lblContent p {
    margin: 0 0 1rem !important;
    font-size: .95rem !important;
    line-height: 1.6;
    color: #555555 !important;
}
#Body #dnn_ctr4072_HtmlModule_lblContent a,
#Body #dnn_ctr4072_HtmlModule_lblContent a:visited {
    display: inline-block !important;
    padding: .65rem 1.75rem !important;
    font-family: inherit !important;
    font-size: .95rem !important;
    font-weight: 600 !important;
    line-height: 1.2;
    color: var(--dnn-color-primary-dark) !important;
    background: #FFFFFF !important;
    border: 2px solid var(--dnn-color-primary) !important;
    border-radius: 50px !important;
    text-decoration: none !important;
    transition: background-color .2s ease, color .2s ease;
}
#Body #dnn_ctr4072_HtmlModule_lblContent a:hover,
#Body #dnn_ctr4072_HtmlModule_lblContent a:focus {
    color: #FFFFFF !important;
    background: var(--dnn-color-primary) !important;
}

/* Button row and outline button variant */
#Body .euclid-btn-group { display: flex; flex-wrap: wrap; gap: .75rem; }
#Body a.euclid-btn { display: inline-flex; align-items: center; gap: .5rem; }
#Body .euclid-btn-outline,
#Body .euclid-btn-outline:visited {
    color: var(--dnn-color-primary-dark);
    background: #FFFFFF;
    box-shadow: inset 0 0 0 2px var(--dnn-color-primary);
}
#Body .euclid-btn-outline:hover,
#Body .euclid-btn-outline:focus { color: #FFFFFF; background: var(--dnn-color-primary); }

/* Legal documents pasted from Word: Terms (module 4071) and Privacy (module 3926). !important beats Word's inline styles. */
#Body #dnn_ctr4071_HtmlModule_lblContent,
#Body #dnn_ctr3926_HtmlModule_lblContent {
    max-width: 860px;
    margin: 2.5rem auto 4rem;
    font-size: 1rem;
    line-height: 1.75;
    color: #444444;
}
#Body #dnn_ctr4071_HtmlModule_lblContent *,
#Body #dnn_ctr3926_HtmlModule_lblContent * {
    font-family: "Raleway", Helvetica, Arial, sans-serif !important;
    letter-spacing: normal !important;
    background-color: transparent !important;
}
#Body #dnn_ctr4071_HtmlModule_lblContent p,
#Body #dnn_ctr4071_HtmlModule_lblContent li,
#Body #dnn_ctr3926_HtmlModule_lblContent p,
#Body #dnn_ctr3926_HtmlModule_lblContent li,
#Body #dnn_ctr3926_HtmlModule_lblContent td {
    font-size: 1rem !important;
    line-height: 1.75 !important;
    color: #444444;
}
#Body #dnn_ctr4071_HtmlModule_lblContent p,
#Body #dnn_ctr3926_HtmlModule_lblContent p { margin-top: 0 !important; margin-bottom: .9rem !important; }
#Body #dnn_ctr4071_HtmlModule_lblContent p:not([align="center"]) { text-align: left !important; }
#Body #dnn_ctr4071_HtmlModule_lblContent b,
#Body #dnn_ctr3926_HtmlModule_lblContent b { color: #333333; }
#Body #dnn_ctr4071_HtmlModule_lblContent a,
#Body #dnn_ctr4071_HtmlModule_lblContent a:visited,
#Body #dnn_ctr3926_HtmlModule_lblContent a,
#Body #dnn_ctr3926_HtmlModule_lblContent a:visited { color: var(--dnn-color-primary-dark) !important; word-break: break-word; }

/* Terms: document title, date line, and numbered section headings (Word marks them list level1) */
#Body #dnn_ctr4071_HtmlModule_lblContent .WordSection1 > p:first-child,
#Body #dnn_ctr4071_HtmlModule_lblContent .WordSection1 > p:first-child * {
    font-size: 2.25rem !important;
    line-height: 1.2 !important;
    color: #333333 !important;
}
#Body #dnn_ctr4071_HtmlModule_lblContent .WordSection1 > p:first-child { margin-bottom: .5rem !important; }
#Body #dnn_ctr4071_HtmlModule_lblContent .WordSection1 > p:nth-child(2) {
    margin-bottom: 2.5rem !important;
    font-size: .9rem !important;
    color: #777777;
}
#Body #dnn_ctr4071_HtmlModule_lblContent p[style*="level1"]:not(:has(span[style*="Symbol"])) {
    margin-top: 2.25rem !important;
    padding-top: 1.5rem;
    border-top: 1px solid #E5E5E5;
}
#Body #dnn_ctr4071_HtmlModule_lblContent p[style*="level1"]:not(:has(span[style*="Symbol"])) > b,
#Body #dnn_ctr4071_HtmlModule_lblContent p[style*="level1"]:not(:has(span[style*="Symbol"])) > b *,
#Body #dnn_ctr4071_HtmlModule_lblContent p[style*="level1"]:not(:has(span[style*="Symbol"])) span[style*="mso-list:Ignore"] {
    font-size: 1.15rem !important;
    font-weight: 700;
    color: var(--dnn-color-primary-dark) !important;
}

/* Privacy: document title, numbered section headings (anchored bold paragraphs), and tables */
#Body #dnn_ctr3926_HtmlModule_lblContent h2,
#Body #dnn_ctr3926_HtmlModule_lblContent h2 * {
    font-size: 2rem !important;
    line-height: 1.25 !important;
    color: #333333 !important;
}
#Body #dnn_ctr3926_HtmlModule_lblContent h2 { margin-bottom: 1.5rem !important; }
#Body #dnn_ctr3926_HtmlModule_lblContent p:has(a[name] > b) {
    margin-top: 2.25rem !important;
    padding-top: 1.5rem;
    border-top: 1px solid #E5E5E5;
}
#Body #dnn_ctr3926_HtmlModule_lblContent p:has(a[name] > b) a[name] b,
#Body #dnn_ctr3926_HtmlModule_lblContent p:has(a[name] > b) a[name] b * {
    font-size: 1.15rem !important;
    color: var(--dnn-color-primary-dark) !important;
}
#Body #dnn_ctr3926_HtmlModule_lblContent table {
    width: 100% !important;
    margin: 1rem 0 1.5rem;
    border-collapse: collapse;
}
#Body #dnn_ctr3926_HtmlModule_lblContent td {
    padding: .6rem .8rem !important;
    vertical-align: top;
    border: 1px solid #DDDDDD !important;
}
#Body #dnn_ctr3926_HtmlModule_lblContent tr:first-child td { background-color: #F4F8F3 !important; font-weight: 600; }
#Body #dnn_ctr3926_HtmlModule_lblContent td p { margin-bottom: 0 !important; }

/* Word's embedded a:link rule on the Terms page underlines header and footer links */
#Body .aperture-header a:not(:hover),
#Body .aperture-footer a:not(:hover) { text-decoration: none; }
#Body #dnn_ctr4071_HtmlModule_lblContent a *,
#Body #dnn_ctr3926_HtmlModule_lblContent a * { color: inherit !important; }
#Body #dnn_ctr4071_HtmlModule_lblContent span[style*="mso-list:Ignore"] > span { font-size: 0 !important; }
#Body #dnn_ctr4071_HtmlModule_lblContent span[style*="mso-list:Ignore"] { margin-right: .6rem; }
#Body #dnn_ctr4071_HtmlModule_lblContent p[style*="level1"]:not(:has(span[style*="Symbol"])) > b span[style*="mso-list:Ignore"] > span { font-size: 0 !important; }
@media (max-width: 767px) {
    #Body #dnn_ctr3926_HtmlModule_lblContent table { display: block; overflow-x: auto; }
    #Body #dnn_ctr4071_HtmlModule_lblContent .WordSection1 > p:first-child,
    #Body #dnn_ctr4071_HtmlModule_lblContent .WordSection1 > p:first-child * { font-size: 1.6rem !important; }
    #Body #dnn_ctr3926_HtmlModule_lblContent h2,
    #Body #dnn_ctr3926_HtmlModule_lblContent h2 * { font-size: 1.5rem !important; }
}

/* Gap between top-level item and its dropdown. The invisible ::before strip spans the gap so hover isn't lost crossing it. */
#Body #nav-desktop > li > ul { top: calc(100% + 6px); }
#Body #nav-desktop > li > ul::before {
    content: "";
    position: absolute;
    top: -9px;
    left: 0;
    right: 0;
    height: 9px;
}

/* Confirmation icon for intro headers (markup in module-html/request-received.html) */
#Body .euclid-intro-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 72px;
    height: 72px;
    margin-bottom: 1.25rem;
    font-size: 32px;
    color: #FFFFFF;
    background: var(--dnn-color-primary);
    border-radius: 50%;
    box-shadow: 0 0 0 8px #EAF5E6;
}
#Body .euclid-btn-group-center { justify-content: center; }

/* Login page header. The login module's markup can't be edited, so the label, title and subtitle are pseudo-elements. */
#Body .dnnLogin > div { width: 100%; }
#Body .dnnLogin .loginContent::before {
    content: "Welcome back";
    display: block;
    margin-bottom: .75rem;
    text-align: center;
    font-size: .85rem;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--dnn-color-primary-dark);
}
#Body .dnnLogin .LoginPanel::before {
    content: "Log In";
    display: block;
    margin: -.25rem 0 1.75rem;
    padding-bottom: 1.25rem;
    text-align: center;
    font-size: 2rem;
    font-weight: 700;
    line-height: 1.2;
    color: #333333;
    background: linear-gradient(var(--dnn-color-primary), var(--dnn-color-primary)) no-repeat center bottom / 60px 4px;
}

/* Footer contact links and social icons (markup in module-html/footer-contact.html) */
#Body .euclid-footer-contact { display: flex; flex-direction: column; align-items: flex-end; gap: 1.25rem; }
#Body .euclid-footer-links {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: .5rem 1.5rem;
    margin: 0;
    font-size: .95rem;
}
#Body .euclid-footer-links a { display: inline-flex; align-items: center; gap: .5rem; }
#Body .euclid-footer-links .fa { opacity: .8; }
#Body .euclid-footer-social { display: flex; gap: .75rem; }
#Body .euclid-footer-social a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    font-size: 18px;
    border: 2px solid rgba(255, 255, 255, .85);
    border-radius: 50%;
    transition: background-color .2s ease, color .2s ease;
}
#Body .aperture-footer .euclid-footer-social a:hover,
#Body .aperture-footer .euclid-footer-social a:focus {
    color: var(--dnn-color-tertiary);
    background: #FFFFFF;
    text-decoration: none;
}
@media (max-width: 767px) {
    #Body .euclid-footer-contact { align-items: flex-start; }
    #Body .euclid-footer-links { flex-direction: column; justify-content: flex-start; }
}
@media (prefers-reduced-motion: reduce) {
    #Body .euclid-footer-social a { transition: none; }
}

/* Footer left column matched to the contact links on the right */
#Body .aperture-footer .aperture-container { align-items: flex-start; }
#Body .aperture-footer .footer-left { flex: 0 0 auto; gap: .75rem; }
#Body .aperture-footer .footer-terms-privacy {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem 1.5rem;
    margin: 0;
    font-size: .95rem;
}
#Body .aperture-footer .footer-terms-privacy a { font-weight: 400; }
#Body .aperture-footer .footer-terms-privacy .aperture-terms::after { content: none; }
#Body .aperture-footer .footer-copyright { font-size: .85rem; line-height: 1.6; opacity: .85; }

/* Dark Persona Bar so it reads as admin chrome, not part of the green header. html:root outranks theme.css's :root. */
html:root {
    --dnn-color-pb-menu-background: #1F2A30;
    --dnn-color-pb-menu-background-hover: #151D21;
    --dnn-color-pb-menu-icon: #9AAAB2;
    --dnn-color-pb-menu-icon-background: #151D21;
    --dnn-color-pb-menu-locked-icon-background-highlight: #56A53E;
    --dnn-color-pb-menu-divider: #34444C;
    --dnn-color-pb-menu-text-highlight: #62BB46;
}

/* Release notes page: Bootstrap 3 markup (btn-group, jumbotron, list-group) restyled. The nav modules flow onto one centered row. */
#Body .aperture-content-pane:has(.btn-group-justified) { text-align: center; }
#Body .aperture-content-pane:has(.btn-group-justified) > .DnnModule { text-align: left; }
#Body .aperture-content-pane:has(.btn-group-justified) { padding-top: 2rem; }
#Body .aperture-content-pane > .DnnModule:has(.btn-group-justified) { display: inline-block; margin: .25rem; vertical-align: top; }
#Body .aperture-content-pane .Normal .container { max-width: none; margin: 0; padding: 0; }
#Body .btn-group-justified { display: inline-flex; flex-wrap: wrap; gap: .5rem; }
#Body .btn-group-justified .btn,
#Body .btn-group-justified .btn:visited {
    display: inline-block;
    padding: .6rem 1.5rem;
    font-weight: 600;
    color: var(--dnn-color-primary-dark);
    background: #FFFFFF;
    border-radius: 50px;
    box-shadow: inset 0 0 0 2px var(--dnn-color-primary);
    text-decoration: none;
    transition: background-color .2s ease, color .2s ease;
}
#Body .btn-group-justified .btn:hover,
#Body .btn-group-justified .btn:focus { color: #FFFFFF; background: var(--dnn-color-primary); text-decoration: none; }

/* Product section headers */
#Body .aperture-content-pane .jumbotron {
    display: block;
    margin: 2.5rem 0 1.5rem !important;
    padding: 1.5rem 2rem !important;
    color: #FFFFFF;
    background-image: linear-gradient(to right, #00A266 0%, #6DCF50 100%);
    border-radius: 8px;
    scroll-margin-top: 160px;
}
#Body .aperture-content-pane .jumbotron .row { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem; margin: 0; }
#Body .aperture-content-pane .jumbotron .row > [class*="col-"] { width: auto; padding: 0; }
#Body .aperture-content-pane .jumbotron p { margin: 0 !important; font-size: 1.6rem; font-weight: 700; color: #FFFFFF; }
#Body .aperture-content-pane .jumbotron .list-group { display: flex !important; flex-wrap: wrap; gap: .5rem; margin: 0; padding: 0; list-style: none; }
#Body .aperture-content-pane .jumbotron .list-group-item {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    padding: .35rem .5rem .35rem 1rem;
    font-size: .9rem;
    background: rgba(255, 255, 255, .15);
    border-radius: 50px;
}
#Body .aperture-content-pane .jumbotron .badge {
    padding: .2rem .65rem;
    font-weight: 700;
    color: var(--dnn-color-primary-dark);
    background: #FFFFFF;
    border-radius: 50px;
}

/* Version entries */
#Body .aperture-content-pane h5:has(> .text-success) {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .75rem;
    margin: 2.25rem 0 1rem;
    padding-top: 1.5rem;
    font-size: .95rem;
    font-weight: 500;
    color: #777777;
    border-top: 1px solid #E5E5E5;
}
#Body .aperture-content-pane h5 > .text-success {
    padding: .3rem .85rem;
    font-size: 1rem;
    font-weight: 700;
    color: var(--dnn-color-primary-dark);
    background: #EAF5E6;
    border-radius: 50px;
}
#Body .aperture-content-pane ul.list-unstyled { margin: 0 0 1rem; padding: 0; list-style: none; }
#Body .aperture-content-pane .Normal > h5:first-child { margin-top: 0; padding-top: 0; border-top: 0; }
#Body .aperture-content-pane ul.list-unstyled > li.text-muted {
    position: relative;
    margin: 0 0 .6rem;
    padding-left: 1.25rem;
    line-height: 1.65;
    color: #555555;
}
#Body .aperture-content-pane ul.list-unstyled > li .mdi { display: none; }
#Body .aperture-content-pane ul.list-unstyled > li.text-muted::before {
    content: "";
    position: absolute;
    top: .65em;
    left: 0;
    width: 6px;
    height: 6px;
    background: var(--dnn-color-primary);
    border-radius: 50%;
}
#Body .aperture-content-pane ul.list-unstyled > li strong { color: #333333; }
#Body .aperture-content-pane ul.list-unstyled > li em { font-size: .85rem; color: #888888; }
#Body .aperture-content-pane ul.list-unstyled > li code {
    padding: .1rem .35rem;
    font-size: .85em;
    color: #333333;
    background: #F0F0F0;
    border-radius: 4px;
}
@media (max-width: 767px) {
    #Body .aperture-content-pane .jumbotron { padding: 1.25rem !important; }
    #Body .aperture-content-pane .jumbotron p { font-size: 1.3rem; }
}

/* Documentation page: tier diagram, request flow and capability table (markup in module-html/web-services-overview.html) */
#Body .euclid-doc { margin: 0 0 3rem; }
#Body .euclid-doc p { line-height: 1.75; }
#Body .euclid-doc h2 { margin: 3rem 0 1rem; font-size: 1.75rem; font-weight: 700; }
#Body .euclid-doc h2::after {
    content: "";
    display: block;
    width: 48px;
    height: 4px;
    margin-top: .75rem;
    background: var(--dnn-color-primary);
    border-radius: 2px;
}
#Body .euclid-doc code {
    padding: .1rem .35rem;
    font-size: .9em;
    color: #333333;
    background: #F0F0F0;
    border-radius: 4px;
}

#Body .euclid-tiers { display: flex; align-items: stretch; justify-content: center; gap: .75rem; margin: 2rem 0; }
#Body .euclid-tier {
    display: flex;
    flex: 1 1 0;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: .35rem;
    padding: 1.5rem 1rem;
    color: #FFFFFF;
    text-align: center;
    border-radius: 8px;
    box-shadow: 0 6px 20px rgba(0, 0, 0, .08);
}
#Body .euclid-tier .fa { margin-bottom: .25rem; font-size: 1.75rem; }
#Body .euclid-tier strong { font-size: 1.05rem; }
#Body .euclid-tier span { font-size: .85rem; opacity: .85; }
#Body .euclid-tier-dark { background: #2B3A42; }
#Body .euclid-tier-blue { background: var(--dnn-color-secondary); }
#Body .euclid-tier-green { background: linear-gradient(135deg, var(--dnn-color-primary), var(--dnn-color-tertiary)); }
#Body .euclid-tier-link { display: flex; align-items: center; font-size: 1.25rem; color: var(--dnn-color-primary); }

#Body .euclid-flow { max-width: 520px; margin: 2rem 0; padding: 0; list-style: none; }
#Body .euclid-flow li {
    position: relative;
    display: flex;
    gap: 1rem;
    align-items: center;
    margin: 0 0 2rem;
    padding: 1rem 1.25rem;
    background: #FFFFFF;
    border: 1px solid #E5E5E5;
    border-left: 5px solid var(--dnn-color-primary);
    border-radius: 8px;
    box-shadow: 0 6px 20px rgba(0, 0, 0, .05);
}
#Body .euclid-flow li:last-child { margin-bottom: 0; }
#Body .euclid-flow li:not(:last-child)::after {
    content: "\f063";
    position: absolute;
    bottom: -1.75rem;
    left: 50%;
    transform: translateX(-50%);
    font-family: "Font Awesome 6 Pro", "FontAwesome";
    font-weight: 900;
    color: var(--dnn-color-primary);
}
#Body .euclid-flow li > .fa {
    display: inline-flex;
    flex: 0 0 44px;
    align-items: center;
    justify-content: center;
    height: 44px;
    font-size: 1.15rem;
    color: #FFFFFF;
    background: var(--dnn-color-primary);
    border-radius: 50%;
}
#Body .euclid-flow strong { display: block; color: #333333; }
#Body .euclid-flow span { display: block; font-size: .9rem; color: #666666; }
#Body .euclid-flow .euclid-flow-key { background: #F4F8F3; }
#Body .euclid-flow .euclid-flow-return { border-left-color: var(--dnn-color-secondary); }
#Body .euclid-flow .euclid-flow-return > .fa { background: var(--dnn-color-secondary); }

#Body .euclid-table-wrap { overflow-x: auto; border: 1px solid #E5E5E5; border-radius: 8px; box-shadow: 0 6px 20px rgba(0, 0, 0, .05); }
#Body .euclid-table { width: 100%; margin: 0; border-collapse: collapse; }
#Body .euclid-table th {
    padding: .9rem 1.25rem;
    font-size: .85rem;
    letter-spacing: .08em;
    text-align: left;
    text-transform: uppercase;
    color: #FFFFFF;
    background: var(--dnn-color-primary-dark);
}
#Body .euclid-table td { padding: .9rem 1.25rem; line-height: 1.6; vertical-align: top; border-top: 1px solid #E5E5E5; }
#Body .euclid-table tbody tr:nth-child(even) td { background: #F9FBF8; }
#Body .euclid-table td:first-child { width: 32%; font-weight: 700; color: #333333; }

@media (max-width: 767px) {
    #Body .euclid-tiers { flex-direction: column; }
    #Body .euclid-tier-link { justify-content: center; transform: rotate(90deg); }
    #Body .euclid-table thead { display: none; }
    #Body .euclid-table tr,
    #Body .euclid-table td { display: block; width: auto !important; }
    #Body .euclid-table td:first-child { padding-bottom: .25rem; }
    #Body .euclid-table td + td { padding-top: 0; border-top: 0; }
}

/* Script inventory tables: monospace paths, compact version and date columns (markup in module-html/shopping-cart-monitor.html) */
#Body .euclid-table-files td:first-child {
    width: auto;
    font-family: Consolas, Menlo, monospace;
    font-size: .9rem;
    font-weight: 600;
    word-break: break-all;
}
#Body .euclid-table-files th:not(:first-child),
#Body .euclid-table-files td:not(:first-child) { width: 1%; white-space: nowrap; }
#Body .euclid-doc-updated {
    display: flex;
    align-items: center;
    gap: .5rem;
    margin-top: 2.5rem;
    padding-top: 1.25rem;
    font-size: .9rem;
    color: #777777;
    border-top: 1px solid #E5E5E5;
}
#Body .euclid-doc-updated .fa { color: var(--dnn-color-primary); }
@media (max-width: 767px) {
    #Body .euclid-table-files td:not(:first-child) { display: inline-block; width: auto; padding-right: 0; font-size: .85rem; color: #777777; }
    #Body .euclid-table-files td:last-child::before { content: "Updated "; }
}

/* Product accordion with library chips (markup in module-html/approved-libraries.html). Native <details> needs no Bootstrap JS. */
#Body .euclid-accordion details {
    margin: 0 0 1rem;
    background: #FFFFFF;
    border: 1px solid #E5E5E5;
    border-left: 5px solid var(--dnn-color-primary);
    border-radius: 8px;
    box-shadow: 0 6px 20px rgba(0, 0, 0, .05);
}
#Body .euclid-accordion summary {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 1rem 1.25rem;
    font-size: 1.25rem;
    font-weight: 700;
    color: #333333;
    list-style: none;
    cursor: pointer;
}
#Body .euclid-accordion summary::-webkit-details-marker { display: none; }
#Body .euclid-accordion summary::after {
    content: "\f078";
    margin-left: auto;
    font-family: "Font Awesome 6 Pro", "FontAwesome";
    font-size: .9rem;
    font-weight: 900;
    color: var(--dnn-color-primary);
    transition: transform .2s ease;
}
#Body .euclid-accordion details[open] > summary::after { transform: rotate(180deg); }
#Body .euclid-accordion summary:hover { color: var(--dnn-color-primary-dark); }
#Body .euclid-accordion summary:focus-visible { outline: 3px solid rgba(98, 187, 70, .4); outline-offset: 2px; }
#Body .euclid-accordion-icon {
    display: inline-flex;
    flex: 0 0 40px;
    align-items: center;
    justify-content: center;
    height: 40px;
    font-size: 1rem;
    color: #FFFFFF;
    background: var(--dnn-color-primary);
    border-radius: 50%;
}
#Body .euclid-accordion-body { padding: .25rem 1.5rem 1.5rem; border-top: 1px solid #EEEEEE; }
#Body .euclid-accordion-body h4 {
    margin: 1.25rem 0 .75rem;
    font-size: .85rem;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--dnn-color-primary-dark);
}
#Body .euclid-chips { display: flex; flex-wrap: wrap; gap: .5rem; margin: 0; padding: 0; list-style: none; }
#Body .euclid-chips li {
    margin: 0;
    padding: .35rem .9rem;
    font-size: .9rem;
    color: #333333;
    background: #F4F8F3;
    border: 1px solid #E1EDDC;
    border-radius: 50px;
}
@media (prefers-reduced-motion: reduce) {
    #Body .euclid-accordion summary::after { transition: none; }
}

/* Three-column doc tables with icons and links (markup in module-html/browser-support.html) */
#Body .euclid-doc a,
#Body .euclid-doc a:visited { color: var(--dnn-color-primary-dark); font-weight: 600; }
#Body .euclid-table td > .fa { width: 1.25em; margin-right: .6rem; text-align: center; color: var(--dnn-color-primary); }
#Body .euclid-table-3 td:first-child { width: 26%; }
#Body .euclid-table-3 th:nth-child(2),
#Body .euclid-table-3 td:nth-child(2) { width: 1%; white-space: nowrap; }
#Body .euclid-doc .euclid-callout { margin: 0; }
@media (max-width: 767px) {
    #Body .euclid-table-3 td:nth-child(2) { padding-bottom: .25rem; font-size: .85rem; font-weight: 600; color: var(--dnn-color-primary-dark); white-space: normal; }
}

/* Install guide: steps inside a doc, lists, code blocks and notes (markup in module-html/install-cvwebobjects.html) */
#Body .euclid-doc .euclid-steps { max-width: none; margin: 1.5rem 0 0; }
#Body .euclid-doc .euclid-step-body h4 {
    margin: 1.5rem 0 .75rem;
    font-size: .85rem;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--dnn-color-primary-dark);
}
#Body .euclid-doc-list { margin: 0 0 1rem; padding-left: 1.5rem; }
#Body .euclid-doc-list li { margin: 0 0 .5rem; line-height: 1.7; }
#Body .euclid-doc-list li::marker { font-weight: 700; color: var(--dnn-color-primary-dark); }
#Body .euclid-doc-list ul { margin: .5rem 0 0; padding-left: 1.25rem; list-style: disc; }
#Body .euclid-doc pre {
    overflow-x: auto;
    margin: 1rem 0 1.25rem;
    padding: 1rem 1.25rem;
    font-family: Consolas, Menlo, monospace;
    font-size: .9rem;
    line-height: 1.6;
    color: #E6EDF0;
    background: #2B3A42;
    border-radius: 6px;
    white-space: pre;
}
#Body .euclid-doc kbd {
    padding: .1rem .4rem;
    font-family: Consolas, Menlo, monospace;
    font-size: .85em;
    color: #333333;
    background: #FFFFFF;
    border: 1px solid #CCCCCC;
    border-radius: 4px;
    box-shadow: 0 1px 0 #CCCCCC;
}
#Body .euclid-note {
    display: flex;
    gap: .85rem;
    align-items: flex-start;
    margin: 1.25rem 0;
    padding: 1rem 1.25rem;
    background: #F4F8F3;
    border-left: 4px solid var(--dnn-color-primary);
    border-radius: 6px;
}
#Body .euclid-note > .fa { margin-top: .3rem; font-size: 1.1rem; color: var(--dnn-color-primary); }
#Body .euclid-note p { margin: 0; }
#Body .euclid-note strong { color: #333333; }
#Body .euclid-note-warning { background: #FFF8E6; border-left-color: #E9AD00; }
#Body .euclid-note-warning > .fa { color: #E9AD00; }

/* Sidebar layout (aperture-sidebar/sidebar.ascx): sticky section nav on the left, content on the right */
#Body .euclid-sidebar-layout {
    display: grid;
    grid-template-columns: 260px minmax(0, 1fr);
    gap: 2.5rem;
    align-items: start;
    max-width: 1280px;
    margin: 0 auto;
    padding: 2rem 1rem 0;
}
#Body .euclid-sidebar-layout > .aperture-content-pane { width: auto; max-width: none; margin: 0; padding: 0; }
#Body .euclid-sidenav {
    position: sticky;
    top: calc(var(--euclid-header-h, 170px) + 1.5rem);
    z-index: 1;
    margin-top: 3rem;
    max-height: calc(100vh - var(--euclid-header-h, 170px) - 3rem);
    overflow-y: auto;
}
#Body .euclid-sidenav-menu {
    padding: 1.25rem 0;
    background: #FFFFFF;
    border: 1px solid #E5E5E5;
    border-top: 4px solid var(--dnn-color-primary);
    border-radius: 8px;
    box-shadow: 0 6px 20px rgba(0, 0, 0, .05);
}
#Body .euclid-sidenav-title,
#Body .euclid-sidenav-title:visited {
    display: block;
    margin: 0 1.25rem .75rem;
    padding-bottom: .75rem;
    font-size: .85rem;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--dnn-color-primary-dark);
    border-bottom: 1px solid #EEEEEE;
    text-decoration: none;
}
#Body .euclid-sidenav ul { margin: 0; padding: 0; list-style: none; }
#Body .euclid-sidenav li a,
#Body .euclid-sidenav li a:visited {
    display: block;
    padding: .5rem 1.25rem;
    font-size: .95rem;
    line-height: 1.4;
    color: #444444;
    border-left: 3px solid transparent;
    text-decoration: none;
}
#Body .euclid-sidenav li ul a { padding-left: 2.25rem; font-size: .9rem; }
#Body .euclid-sidenav li ul ul a { padding-left: 3.25rem; }
#Body .euclid-sidenav li a:hover,
#Body .euclid-sidenav li a:focus { color: var(--dnn-color-primary-dark); background: #F4F8F3; text-decoration: none; }
#Body .euclid-sidenav li.breadcrumb > a { font-weight: 600; color: #333333; }
#Body .euclid-sidenav li.selected > a {
    font-weight: 700;
    color: var(--dnn-color-primary-dark);
    background: #F4F8F3;
    border-left-color: var(--dnn-color-primary);
}
#Body .euclid-sidenav .DNNEmptyPane { display: none; }
@media (max-width: 991px) {
    #Body .euclid-sidebar-layout { grid-template-columns: minmax(0, 1fr); gap: 1.5rem; }
    #Body .euclid-sidenav { position: static; max-height: none; margin-top: 0; }
}
#Body .euclid-sidenav-title[aria-current="page"] { color: var(--dnn-color-primary); }
#Body .euclid-sidenav-title:hover { color: var(--dnn-color-primary); text-decoration: none; }

/* Header menu stops at one dropdown level. Deeper pages are reached through the sidebar layout. */
#Body #nav-desktop li li > ul,
#Body #nav-mobile .nav-expand-content .nav-expand-link,
#Body #nav-mobile .nav-expand-content .nav-expand-content { display: none !important; }

/* Tighter dropdown rows */
#Body #nav-desktop > li > ul { padding-top: .4rem; padding-bottom: .4rem; }
#Body #nav-desktop > li > ul > li { margin: 0; padding: 0; min-height: 0; height: auto; line-height: 1.3; }
#Body #nav-desktop > li > ul > li > a { display: block; padding: .5rem 1.25rem; line-height: 1.3; }

#Body .aperture-main a.euclid-btn:is(:hover, :focus),
#Body .aperture-main a.euclid-demo-btn:is(:hover, :focus) { text-decoration: none; }

/* Section headings for home modules, sized one step below the page intro h1 */
#Body .euclid-intro h2 { margin: 0 0 1.25rem; font-size: 2.25rem; font-weight: 700; }
#Body .euclid-intro h2::after {
    content: "";
    display: block;
    width: 60px;
    height: 4px;
    margin: 1.25rem auto 0;
    background: var(--dnn-color-primary);
    border-radius: 2px;
}
@media (max-width: 767px) {
    #Body .euclid-intro h2 { font-size: 1.75rem; }
}

/* Stats band (markup in module-html/home-stats.html) */
#Body .euclid-stats {
    max-width: 1100px;
    margin: 3rem auto;
    padding: 2.5rem 1rem;
    color: #FFFFFF;
    background: #3A7D28;
    background-image: linear-gradient(to right, #007A4D 0%, #3A7D28 100%);
    border-radius: 8px;
}
#Body .euclid-stats-list { display: flex; flex-wrap: wrap; justify-content: center; row-gap: 1.75rem; margin: 0; padding: 0; list-style: none; }
#Body .euclid-stats-list li { flex: 1 1 180px; display: flex; flex-direction: column; align-items: center; gap: .35rem; padding: 0 1rem; text-align: center; }
#Body .euclid-stat-value { font-size: 2.75rem; font-weight: 700; line-height: 1.1; color: #FFFFFF; white-space: nowrap; }
#Body .euclid-stat-label { font-size: .95rem; font-weight: 500; color: #FFFFFF; }
@media (min-width: 992px) {
    #Body .euclid-stats-list { flex-wrap: nowrap; }
    #Body .euclid-stats-list li + li { border-left: 1px solid rgba(255, 255, 255, .3); }
}
@media (max-width: 575px) {
    #Body .euclid-stats-list li { flex-basis: 50%; padding: 0 .5rem; }
    #Body .euclid-stat-value { font-size: 1.85rem; }
}

/* AMS guide steps, built on .euclid-info-cards (markup in module-html/home-ams-guide.html) */
#Body .euclid-guide { margin: 3rem auto; }
#Body .euclid-guide-steps { padding: 0; list-style: none; }
#Body .euclid-guide-step {
    display: block;
    margin-bottom: .5rem;
    font-size: .75rem;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--dnn-color-primary-dark);
}

/* Partner logo grid (markup in module-html/home-integrations.html) */
#Body .euclid-logos { margin: 3rem auto; }
#Body .euclid-logos-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1px;
    max-width: 1100px;
    margin: 0 auto;
    padding: 0;
    list-style: none;
    background: #EEEEEE;
    border: 1px solid #EEEEEE;
    border-radius: 8px;
    overflow: hidden;
}
@media (min-width: 992px) { #Body .euclid-logos-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
#Body .euclid-logos-grid li { display: flex; align-items: center; justify-content: center; min-height: 140px; margin: 0; padding: 1.5rem; background: #FFFFFF; }
/* Module 1563's unscoped img { z-index: -1 } would put these flex-item logos behind their white tiles */
#Body .euclid-logos-grid img { width: auto; max-width: 100%; height: auto; max-height: 72px; object-fit: contain; z-index: auto; }
@media (max-width: 575px) {
    #Body .euclid-logos-grid li { min-height: 100px; padding: 1rem; }
    #Body .euclid-logos-grid img { max-height: 52px; }
}

#Body .euclid-note-danger { background: #FDECEA; border-left-color: #C9302C; }
#Body .euclid-note-danger > .fa { color: #C9302C; }
#Body .euclid-badge { display: inline-block; padding: .2rem .75rem; font-size: .75rem; font-weight: 600; line-height: 1.5; white-space: nowrap; color: #2F5E1F; background: #EAF5E6; border-radius: 50px; }
#Body .euclid-badge-warning { color: #5C4100; background: #FCE3A8; }
#Body .euclid-doc mark { padding: 0 .2rem; color: inherit; background: #FFF3BF; border-radius: 3px; }
#Body .euclid-doc pre mark { color: #2B3A42; }
#Body .euclid-doc a code { color: inherit; }
#Body .euclid-doc .euclid-table-wrap { margin: 1.25rem 0; }
#Body .euclid-doc pre { white-space: pre-wrap; overflow-wrap: anywhere; }
#Body .euclid-table-settings td:first-child { width: 36%; font-weight: 400; }
#Body .euclid-doc .euclid-key { display: block; padding: 0; font-family: Consolas, Menlo, monospace; font-size: .85rem; font-weight: 700; line-height: 1.5; color: #2F6B24; background: none; overflow-wrap: anywhere; }
#Body .euclid-doc .euclid-key span { font-weight: 400; color: #6B6B6B; }
#Body .euclid-doc .euclid-key + .euclid-key { margin-top: .35rem; }
#Body .euclid-since { display: inline-block; margin-top: .45rem; padding: .05rem .55rem; font-size: .7rem; font-weight: 600; letter-spacing: .02em; color: #555555; background: #F1F3F2; border-radius: 50px; }
#Body .euclid-table .text-muted.small { display: block; margin-top: .4rem; font-size: .85rem; color: #6B6B6B; }
#Body .euclid-az { display: flex; flex-wrap: wrap; gap: .35rem; margin: 1.25rem 0 0; }
#Body .euclid-az a { display: inline-flex; align-items: center; justify-content: center; width: 2rem; height: 2rem; font-size: .85rem; font-weight: 700; color: #2F6B24; text-decoration: none; background: #F4F8F3; border: 1px solid #E1EDDC; border-radius: 6px; }
#Body .euclid-az a:hover, #Body .euclid-az a:focus { color: #FFFFFF; background: #3A7D28; border-color: #3A7D28; }
#Body .euclid-table-settings tr[id], #Body .euclid-doc h2[id] { scroll-margin-top: 180px; }
#Body .euclid-table-settings tr:target td { background: #FFF8E6; }
#Body .euclid-vflow { max-width: 680px; margin: 2rem auto 3rem; padding: 0; list-style: none; }
#Body .euclid-vflow ol { margin: 0; padding: 0; list-style: none; }
#Body .euclid-vflow-step { position: relative; display: flex; gap: .9rem; align-items: center; margin: 0 0 2.25rem; padding: .9rem 1.1rem; background: #FFFFFF; border: 1px solid #E5E5E5; border-left: 5px solid #3A7D28; border-radius: 8px; box-shadow: 0 6px 20px rgba(0, 0, 0, .05); }
#Body .euclid-vflow-step > .fa { display: inline-flex; flex: 0 0 40px; align-items: center; justify-content: center; height: 40px; font-size: 1rem; color: #FFFFFF; background: #3A7D28; border-radius: 50%; }
#Body .euclid-vflow-step span { display: block; margin-bottom: .1rem; font-size: .7rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: #2F6B24; }
#Body .euclid-vflow-step strong { display: block; line-height: 1.4; color: #333333; }
#Body .euclid-vflow-step:not(:last-child)::after { content: "\f063"; position: absolute; bottom: -1.85rem; left: 50%; transform: translateX(-50%); font-family: "Font Awesome 6 Pro", "FontAwesome"; font-weight: 900; color: #3A7D28; }
#Body .euclid-vflow-start { border-left-color: #E9AD00; }
#Body .euclid-vflow-start > .fa { background: #E9AD00; }
#Body .euclid-vflow-end { background: #F4F8F3; }
#Body .euclid-vflow-branch { position: relative; display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; padding-top: 1.25rem; }
#Body .euclid-vflow-branch::before { content: ""; position: absolute; top: 0; left: 25%; right: 25%; height: 2px; background: #C5CBD0; }
#Body .euclid-vflow-path { position: relative; text-align: center; }
#Body .euclid-vflow-path::before { content: ""; position: absolute; top: -1.25rem; left: 50%; width: 2px; height: 1.25rem; background: #C5CBD0; }
#Body .euclid-vflow-path .euclid-vflow-step { margin-bottom: 2rem; text-align: left; }
#Body .euclid-vflow-path .euclid-vflow-step:last-child { margin-bottom: 0; }
#Body .euclid-vflow-label { display: inline-block; margin: 0 0 1rem; padding: .2rem .8rem; font-size: .75rem; font-weight: 700; color: #2F5E1F; background: #EAF5E6; border-radius: 50px; }
#Body .euclid-vflow-no .euclid-vflow-label { color: #A94442; background: #FDECEA; }
#Body .euclid-vflow-no .euclid-vflow-step { border-left-color: #C9302C; }
#Body .euclid-vflow-no .euclid-vflow-step > .fa, #Body .euclid-vflow-no .euclid-vflow-step::after { color: #C9302C; }
#Body .euclid-vflow-no .euclid-vflow-step > .fa { color: #FFFFFF; background: #C9302C; }
#Body .euclid-vflow-loop { display: inline-flex; gap: .5rem; align-items: center; margin: 1rem 0 0; padding: .4rem .9rem; font-size: .85rem; font-weight: 600; color: #555555; border: 1px dashed #C5CBD0; border-radius: 50px; }
#Body .euclid-vflow-loop .fa { color: #C9302C; }
@media (max-width: 575px) {
    #Body .euclid-vflow-branch { grid-template-columns: 1fr; gap: 2.5rem; padding-top: 0; }
    #Body .euclid-vflow-branch::before, #Body .euclid-vflow-path::before { display: none; }
}
@media (min-width: 992px) {
    #Body .euclid-sidenav li:not(.selected, .breadcrumb) > ul { display: none; }
    #Body .euclid-sidenav li:has(> ul):not(.selected, .breadcrumb) > a::after { content: "\f105"; margin-left: .4rem; font-family: "Font Awesome 6 Pro", "FontAwesome"; font-weight: 900; font-size: .75em; color: #9AA3AB; }
    #Body .euclid-sidenav { max-height: none; overflow: visible; }
    #Body .euclid-sidenav-menu { display: flex; flex-direction: column; max-height: calc(100vh - var(--euclid-header-h, 170px) - 3rem); }
    #Body .euclid-sidenav-menu > .euclid-sidenav-title { flex: none; }
    #Body .euclid-sidenav-menu > ul { min-height: 0; overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; scrollbar-color: rgba(58, 125, 40, .45) transparent; }
}
@supports (animation-timeline: scroll()) {
    @media (min-width: 992px) {
        #Body .euclid-sidenav-menu > ul { scrollbar-width: none; }
        #Body .euclid-sidenav-menu > ul::-webkit-scrollbar { display: none; }
        #Body .euclid-sidenav-menu > ul::before { content: ""; position: sticky; top: 0; z-index: 2; display: block; width: 4px; height: 32px; margin: 0 5px -32px auto; background: rgba(58, 125, 40, .45); border-radius: 50px; opacity: 0; animation: euclid-nav-dot linear both; animation-timeline: scroll(nearest); }
        #Body .euclid-sidenav-menu > ul:is(:hover, :focus-within)::before { background: #3A7D28; }
    }
}
@keyframes euclid-nav-dot {
    from { opacity: 1; transform: translateY(4px); }
    to { opacity: 1; transform: translateY(calc(100vh - var(--euclid-header-h, 170px) - 3rem - 120px)); }
}


/* Montana client page: buttons inside step cards keep white text, and empty table cells read "None" in grey */
#Body .euclid-step-body a.euclid-btn, #Body .euclid-step-body a.euclid-btn:visited { color: #FFFFFF; }
#Body .euclid-muted { color: #6B6B6B; }

/* Client pages: resource link cards, nested bullets in steps, long URLs and outline buttons in step cards */
#Body .euclid-links { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 1.5rem; margin: 1.5rem 0 2rem; }
#Body .euclid-links-card { padding: 1.5rem 1.75rem; background: #FFFFFF; border: 1px solid #E5E5E5; border-top: 4px solid #3A7D28; border-radius: 8px; box-shadow: 0 6px 20px rgba(0, 0, 0, .05); }
#Body .euclid-links-card h3 { margin: 0 0 .75rem; font-size: .85rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: #2F6B24; }
#Body .euclid-links-card ul { margin: 0; padding: 0; list-style: none; }
#Body .euclid-links-card li { padding: .55rem 0; line-height: 1.5; border-top: 1px solid #EEEEEE; }
#Body .euclid-links-card li:first-child { padding-top: 0; border-top: 0; }
#Body .euclid-links-card li ul { margin: .4rem 0 0 1.1rem; list-style: disc; }
#Body .euclid-links-card li li { padding: .15rem 0; border-top: 0; }
#Body .euclid-links-card p { margin: 0 0 .75rem; font-size: .9rem; line-height: 1.6; color: #555555; }
#Body .euclid-links-card a, #Body .euclid-links-card a:visited { color: #2F6B24; font-weight: 600; }
#Body .euclid-links-note { padding: .6rem .8rem; background: #F4F8F3; border-left: 3px solid #3A7D28; border-radius: 4px; }
#Body .euclid-step-body li a { overflow-wrap: anywhere; }
#Body .euclid-step-body a.euclid-btn-outline, #Body .euclid-step-body a.euclid-btn-outline:visited { color: #2F6B24; }
#Body .euclid-step-body .euclid-btn-group { margin: 0 0 1.25rem; }
#Body .euclid-checklist ul { margin: .5rem 0 0; padding-left: 1.1rem; list-style: disc; }
#Body .euclid-checklist ul li { margin: 0 0 .35rem; padding-left: 0; counter-increment: none; }
#Body .euclid-checklist ul li::before { content: none; }

/* Standard Tags: required pill and value tables nested inside a parameter row */
#Body .euclid-since.euclid-required { color: #A94442; background: #FDECEA; }
#Body .euclid-table .euclid-table-nested { width: 100%; margin: .75rem 0 0; border: 1px solid #E5E5E5; border-radius: 6px; border-collapse: separate; border-spacing: 0; overflow: hidden; }
#Body .euclid-table .euclid-table-nested th { padding: .45rem .75rem; font-size: .75rem; color: #2F6B24; background: #F4F8F3; border-bottom: 1px solid #E1EDDC; }
#Body .euclid-table .euclid-table-nested td { padding: .45rem .75rem; font-size: .875rem; border-top: 1px solid #EEEEEE; background: none; }
#Body .euclid-table .euclid-table-nested tr:first-child td { border-top: 0; }
#Body .euclid-table .euclid-table-nested td:first-child { width: 34%; }

/* Editor Updates: sub-labels and screenshots in a doc body */
#Body .euclid-doc > h4 { margin: 2rem 0 .75rem; font-size: .85rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: #2F6B24; }
#Body .euclid-doc > h2 + h4 { margin-top: 1rem; }
#Body .euclid-shot { margin: 1rem 0 1.75rem; }
#Body .euclid-shot img { display: block; max-width: 100%; height: auto; border: 1px solid #E5E5E5; border-radius: 6px; box-shadow: 0 6px 20px rgba(0, 0, 0, .05); }

/* Learning Resources: text beside a video, 16:9 video frame, centred screenshots */
#Body .euclid-split { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 2rem; align-items: start; }
#Body .euclid-split h4 { margin: 0 0 .75rem; font-size: .85rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: #2F6B24; }
#Body .euclid-video { position: relative; aspect-ratio: 16 / 9; overflow: hidden; border-radius: 8px; box-shadow: 0 6px 20px rgba(0, 0, 0, .05); }
#Body .euclid-video iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
#Body .euclid-shot-center img { margin: 0 auto; }
#Body .euclid-links-card .euclid-btn { margin-top: .25rem; }
#Body .euclid-links-card a.euclid-btn-outline, #Body .euclid-links-card a.euclid-btn-outline:visited { color: #2F6B24; }
#Body .euclid-doc a.euclid-btn:not(.euclid-btn-outline), #Body .euclid-doc a.euclid-btn:not(.euclid-btn-outline):visited { color: #FFFFFF; }
@media (max-width: 767px) { #Body .euclid-split { grid-template-columns: minmax(0, 1fr); } }

/* CV Desktop Resources: topic tiles and the closing call to action */
#Body .euclid-topics { display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: 1rem; margin: 1.5rem 0 2rem; }
#Body a.euclid-topic { display: flex; flex-direction: column; align-items: center; gap: .75rem; padding: 1.25rem .75rem; font-size: .95rem; font-weight: 600; line-height: 1.3; text-align: center; color: #333333; text-decoration: none; background: #FFFFFF; border: 1px solid #E5E5E5; border-radius: 8px; box-shadow: 0 6px 20px rgba(0, 0, 0, .05); transition: border-color .15s, transform .15s; }
#Body a.euclid-topic:visited { color: #333333; }
#Body a.euclid-topic:hover, #Body a.euclid-topic:focus { color: #2F6B24; border-color: #3A7D28; transform: translateY(-2px); }
#Body .euclid-topic-icon { display: flex; align-items: center; justify-content: center; width: 52px; height: 52px; font-size: 1.4rem; color: #3A7D28; background: #F4F8F3; border-radius: 50%; }
#Body .euclid-cta { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; margin: 3rem 0 1rem; padding: 1.5rem 1.75rem; background: #F4F8F3; border-left: 4px solid #3A7D28; border-radius: 8px; }
#Body .euclid-cta h3 { margin: 0 0 .35rem; font-size: 1.15rem; font-weight: 700; }
#Body .euclid-cta p { margin: 0; }
#Body .euclid-cta .euclid-btn { flex-shrink: 0; }
@media (max-width: 767px) { #Body .euclid-cta { flex-direction: column; align-items: flex-start; } }

/* Two-column link cards (Resources CV Online & CV Pro user guides) */
#Body .euclid-links-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (max-width: 767px) { #Body .euclid-links-2 { grid-template-columns: minmax(0, 1fr); } }

/* Framed pages in the doc sidebar sit in a card; the CVConnect help frame also gets an intro and a fixed height (it does not resize itself) */
#Body .DnnModule-Spiffy_CVContentFrame:has(iframe[src*="/CVConnectHelp"]) .gomigrate-notitle::before { content: "Web Documentation"; display: block; margin: 0 0 .5rem; text-align: center; font-size: .85rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: #2F6B24; }
#Body .DnnModule-Spiffy_CVContentFrame:has(iframe[src*="/CVConnectHelp"]) .gomigrate-content::before { content: "CVConnect 9 Documentation"; display: block; margin: 0 0 2rem; padding: 0 0 1.25rem; text-align: center; font-size: 2.75rem; font-weight: 700; line-height: 1.2; color: #333333; background: linear-gradient(#3A7D28, #3A7D28) center bottom / 60px 4px no-repeat; }
#Body .euclid-sidebar-main .DnnModule-Spiffy_CVContentFrame .ModSpiffyCVContentFrameC { padding: 1rem; background: #FFFFFF; border: 1px solid #E5E5E5; border-top: 4px solid #3A7D28; border-radius: 8px; box-shadow: 0 6px 20px rgba(0, 0, 0, .05); }
#Body .DnnModule-Spiffy_CVContentFrame:has(iframe[src*="/CVConnectHelp"]) iframe { display: block; height: 900px; border-radius: 4px; }

/* Web Services landing and child pages */

#Body:has(a.euclid-crumb[href$="/Web-Documentation/Web-Services"]) .DnnModule-DNN_HTML h1.gomigrate-title { margin: 3rem 0 2rem; font-size: 2.75rem; font-weight: 700; line-height: 1.2; text-align: center; color: #333333; }
#Body:has(a.euclid-crumb[href$="/Web-Documentation/Web-Services"]) .DnnModule-DNN_HTML h1.gomigrate-title::before { content: "Web Services"; display: block; margin: 0 0 .75rem; font-size: .85rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: #2F6B24; }
#Body:has(a.euclid-crumb[href$="/Web-Documentation/Web-Services"]) .DnnModule-DNN_HTML h1.gomigrate-title::after { content: ""; display: block; width: 60px; height: 4px; margin: 1.25rem auto 0; background: #3A7D28; border-radius: 2px; }
#Body:has(a.euclid-crumb[href$="/Web-Documentation/Web-Services"]) .DnnModule-833 h1.gomigrate-title::before { content: "Web Documentation"; }

/* Landing: DLL tiles */

#Body .DnnModule-833 .panel { margin: 0 0 3rem; background: none; border: 0; box-shadow: none; }
#Body .DnnModule-833 .panel-heading { max-width: 820px; margin: -1rem auto 2rem; padding: 0; font-size: 1.1rem; line-height: 1.75; text-align: center; color: #333333 !important; background: none !important; border: 0; }
#Body .DnnModule-833 .panel-heading span { font-size: inherit !important; }
#Body .DnnModule-833 .panel-body { display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: 1rem; padding: 0; background: none; }
#Body .DnnModule-833 .panel-body::before,
#Body .DnnModule-833 .panel-body::after { display: none; }
#Body #webServicesList .row { display: contents; }
#Body #webServicesList [class*="col-"] { float: none; width: auto; min-height: 0; padding: 0; }
#Body #webServicesList .dg-iconbox02,
#Body #webServicesList .box { height: 100%; margin: 0; padding: 0 !important; background: none !important; border: 0; box-shadow: none; }
#Body #webServicesList .box a { display: flex; flex-direction: column; align-items: center; gap: .75rem; height: 100%; padding: 1.25rem .75rem; font-size: .95rem; font-weight: 600; line-height: 1.3; text-align: center; color: #333333; text-decoration: none; background: #FFFFFF; border: 1px solid #E5E5E5; border-radius: 8px; box-shadow: 0 6px 20px rgba(0, 0, 0, .05); transition: border-color .15s, transform .15s; }
#Body #webServicesList .box a:visited { color: #333333; }
#Body #webServicesList .box a:hover,
#Body #webServicesList .box a:focus { color: #2F6B24; border-color: #3A7D28; transform: translateY(-2px); }
#Body #webServicesList .box a br { display: none; }
#Body #webServicesList .box a .fa { display: flex; align-items: center; justify-content: center; width: 52px; height: 52px; font-size: 1.4rem; color: #3A7D28; background: #F4F8F3; border-radius: 50%; }

/* Child pages: doc body */

#Body:has(a.euclid-crumb[href$="/Web-Documentation/Web-Services"]) .DnnModule-DNN_HTML:not(.DnnModule-833, .DnnModule-1089) .Normal { margin: 0 0 3rem; font-size: 1rem; color: #333333; }
#Body:has(a.euclid-crumb[href$="/Web-Documentation/Web-Services"]) .DnnModule-DNN_HTML:not(.DnnModule-833, .DnnModule-1089) .Normal p { line-height: 1.75; }
#Body:has(a.euclid-crumb[href$="/Web-Documentation/Web-Services"]) .DnnModule-DNN_HTML:not(.DnnModule-833, .DnnModule-1089) .Normal :is(h1, h2):not(.gomigrate-title) { margin: 3rem 0 1rem; font-family: Consolas, Menlo, monospace; font-size: 1.6rem; font-weight: 700; color: #333333; }
#Body:has(a.euclid-crumb[href$="/Web-Documentation/Web-Services"]) .DnnModule-DNN_HTML:not(.DnnModule-833, .DnnModule-1089) .Normal :is(h1, h2):not(.gomigrate-title)::after { content: ""; display: block; width: 48px; height: 4px; margin-top: .75rem; background: #3A7D28; border-radius: 2px; }
#Body:has(a.euclid-crumb[href$="/Web-Documentation/Web-Services"]) .DnnModule-DNN_HTML:not(.DnnModule-833, .DnnModule-1089) .Normal :is(h1, h2):is(:empty, :has(+ h1, + h2)) { height: 0; margin: 0; overflow: hidden; }
#Body:has(a.euclid-crumb[href$="/Web-Documentation/Web-Services"]) .DnnModule-DNN_HTML:not(.DnnModule-833, .DnnModule-1089) .Normal :is(h1, h2):is(:empty, :has(+ h1, + h2))::after { display: none; }
#Body:has(a.euclid-crumb[href$="/Web-Documentation/Web-Services"]) .DnnModule-DNN_HTML:not(.DnnModule-833, .DnnModule-1089) .Normal h3 { margin: 2rem 0 .75rem; font-size: .85rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: #2F6B24; }
#Body:has(a.euclid-crumb[href$="/Web-Documentation/Web-Services"]) .DnnModule-DNN_HTML:not(.DnnModule-833, .DnnModule-1089) .Normal a,
#Body:has(a.euclid-crumb[href$="/Web-Documentation/Web-Services"]) .DnnModule-DNN_HTML:not(.DnnModule-833, .DnnModule-1089) .Normal a:visited { color: #2F6B24; font-weight: 600; }
#Body:has(a.euclid-crumb[href$="/Web-Documentation/Web-Services"]) .DnnModule-DNN_HTML:not(.DnnModule-833, .DnnModule-1089) .Normal strong[style*="red"] { color: #A94442 !important; }
#Body:has(a.euclid-crumb[href$="/Web-Documentation/Web-Services"]) .DnnModule-DNN_HTML:not(.DnnModule-833, .DnnModule-1089) .Normal :is(.grayedOut, .grayedOut *) { color: #6B6B6B; }
#Body:has(a.euclid-crumb[href$="/Web-Documentation/Web-Services"]) .DnnModule-DNN_HTML:not(.DnnModule-833, .DnnModule-1089) .Normal code { padding: .1rem .35rem; font-size: .9em; color: #333333; background: #F0F0F0; border-radius: 4px; }
#Body:has(a.euclid-crumb[href$="/Web-Documentation/Web-Services"]) .DnnModule-DNN_HTML:not(.DnnModule-833, .DnnModule-1089) .Normal img { max-width: 100%; height: auto; border: 1px solid #E5E5E5; border-radius: 6px; box-shadow: 0 6px 20px rgba(0, 0, 0, .05); }
#Body:has(a.euclid-crumb[href$="/Web-Documentation/Web-Services"]) .DnnModule-DNN_HTML:not(.DnnModule-833, .DnnModule-1089) .Normal blockquote { margin: 1rem 0; padding: 1rem 1.25rem; font-size: 1rem; background: #F4F8F3; border-left: 4px solid #3A7D28; border-radius: 6px; }

/* Child pages: code samples */

#Body:has(a.euclid-crumb[href$="/Web-Documentation/Web-Services"]) .DnnModule-DNN_HTML:not(.DnnModule-833, .DnnModule-1089) .Normal .code > div,
#Body:has(a.euclid-crumb[href$="/Web-Documentation/Web-Services"]) .DnnModule-DNN_HTML:not(.DnnModule-833, .DnnModule-1089) .Normal pre { margin: .5rem 0 1.25rem; padding: 1rem 1.25rem; overflow-x: auto; font-family: Consolas, Menlo, monospace; font-size: .9rem; line-height: 1.6; color: #E6EDF0; white-space: pre-wrap; word-break: break-all; background: #2B3A42; border: 0; border-radius: 6px; }
#Body:has(a.euclid-crumb[href$="/Web-Documentation/Web-Services"]) .DnnModule-DNN_HTML:not(.DnnModule-833, .DnnModule-1089) .Normal .code > div * { color: inherit; font-family: inherit; }

/* Child pages: tables (intro settings/actions, templates, inputs) */

#Body:has(a.euclid-crumb[href$="/Web-Documentation/Web-Services"]) .DnnModule-DNN_HTML:not(.DnnModule-833, .DnnModule-1089) .Normal table:not(:has(h1, h2)) { width: 100%; margin: 1rem 0 1.5rem; border-collapse: separate; border-spacing: 0; overflow: hidden; background: #FFFFFF; border: 1px solid #E5E5E5; border-radius: 8px; box-shadow: 0 6px 20px rgba(0, 0, 0, .05); }
#Body:has(a.euclid-crumb[href$="/Web-Documentation/Web-Services"]) .DnnModule-DNN_HTML:not(.DnnModule-833, .DnnModule-1089) .Normal table:not(:has(h1, h2)) :is(th, td) { padding: .65rem 1.25rem !important; line-height: 1.6; text-align: left; vertical-align: top; border: 0; border-top: 1px solid #EEEEEE; }
#Body:has(a.euclid-crumb[href$="/Web-Documentation/Web-Services"]) .DnnModule-DNN_HTML:not(.DnnModule-833, .DnnModule-1089) .Normal table:not(:has(h1, h2)) tr:first-child > :is(th, td) { border-top: 0; }
#Body:has(a.euclid-crumb[href$="/Web-Documentation/Web-Services"]) .DnnModule-DNN_HTML:not(.DnnModule-833, .DnnModule-1089) .Normal table:not(:has(h1, h2)) tr:first-child > th:only-child,
#Body:has(a.euclid-crumb[href$="/Web-Documentation/Web-Services"]) .DnnModule-DNN_HTML:not(.DnnModule-833, .DnnModule-1089) .Normal table:not(:has(h1, h2)) thead th { font-size: .85rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: #FFFFFF; background: #2F6B24; }
#Body:has(a.euclid-crumb[href$="/Web-Documentation/Web-Services"]) .DnnModule-DNN_HTML:not(.DnnModule-833, .DnnModule-1089) .Normal table:not(:has(h1, h2)) tr:first-child > th:only-child * { color: inherit; }
#Body:has(a.euclid-crumb[href$="/Web-Documentation/Web-Services"]) .DnnModule-DNN_HTML:not(.DnnModule-833, .DnnModule-1089) .Normal table:not(:has(h1, h2)) tr > :first-child:not(:only-child) { width: 30%; font-weight: 700; color: #333333; }
#Body:has(a.euclid-crumb[href$="/Web-Documentation/Web-Services"]) .DnnModule-DNN_HTML:not(.DnnModule-833, .DnnModule-1089) .Normal table:not(:has(h1, h2)) tbody tr:nth-child(even) > td { background: #F9FBF8; }
#Body:has(a.euclid-crumb[href$="/Web-Documentation/Web-Services"]) .DnnModule-DNN_HTML:not(.DnnModule-833, .DnnModule-1089) .Normal :is(.template, .input) table th:not(:only-child) { font-size: .8rem; letter-spacing: .06em; text-transform: uppercase; color: #6B6B6B; }
#Body:has(a.euclid-crumb[href$="/Web-Documentation/Web-Services"]) .DnnModule-DNN_HTML:not(.DnnModule-833, .DnnModule-1089) .Normal :is(.template, .input) table tr:first-child > th:only-child { font-size: .95rem; letter-spacing: 0; text-transform: none; color: #2F6B24; background: #F4F8F3; }
#Body:has(a.euclid-crumb[href$="/Web-Documentation/Web-Services"]) .DnnModule-DNN_HTML:not(.DnnModule-833, .DnnModule-1089) .Normal table:has(h1, h2) { width: 100% !important; }
#Body:has(a.euclid-crumb[href$="/Web-Documentation/Web-Services"]) .DnnModule-DNN_HTML:not(.DnnModule-833, .DnnModule-1089) .Normal table:has(h1, h2) td { padding: 0; }

@media (max-width: 767px) {
    #Body:has(a.euclid-crumb[href$="/Web-Documentation/Web-Services"]) .DnnModule-DNN_HTML h1.gomigrate-title { margin-top: 2rem; font-size: 2rem; }
    #Body .DnnModule-833 .panel-body { grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); }
    #Body:has(a.euclid-crumb[href$="/Web-Documentation/Web-Services"]) .DnnModule-DNN_HTML:not(.DnnModule-833, .DnnModule-1089) .Normal table:not(:has(h1, h2)) :is(tr, th, td) { display: block; width: auto !important; }
    #Body:has(a.euclid-crumb[href$="/Web-Documentation/Web-Services"]) .DnnModule-DNN_HTML:not(.DnnModule-833, .DnnModule-1089) .Normal table:not(:has(h1, h2)) :is(th, td) + :is(th, td) { padding-top: 0 !important; border-top: 0; }
}

/* Web Services: tiles for pages with no content yet */

#Body #webServicesList [class*="col-"]:has(a:is([href$="/Certify"], [href$="/HigherLogic"], [href$="/Image-Track"], [href$="/Map"], [href$="/Opportunity"], [href$="/Payments"], [href$="/Personalize"], [href$="/Project"], [href$="/Rating"], [href$="/Redirect"], [href$="/Specialty"], [href$="/Survey"])) { display: none; }

/* Web Services: list bullet images stay inline, unframed */

#Body:has(a.euclid-crumb[href$="/Web-Documentation/Web-Services"]) .DnnModule-DNN_HTML:not(.DnnModule-833, .DnnModule-1089) .Normal img[src*="listbullet"] { margin: 0 .4rem 0 0; vertical-align: middle; border: 0; border-radius: 0; box-shadow: none; }

/* Thin chevron in place of the menu's ▼ character */
#Body #nav-desktop > li > a > span { font-size: 0; }
#Body #nav-desktop > li > a > span::after { content: ""; display: inline-block; width: 6.5px; height: 6.5px; margin-left: 9px; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; opacity: .55; transform: translateY(-9px) rotate(45deg); vertical-align: middle; transition: opacity .15s; }
#Body #nav-desktop > li:is(:hover, :focus-within) > a > span::after { opacity: .9; }