/* Astley Digital global light colour theme. */
@font-face {
    font-family: 'Astley Body';
    font-style: normal;
    font-weight: 400 800;
    font-display: swap;
    src: url('../fonts/dm-sans-latin-variable.woff2') format('woff2');
}

@font-face {
    font-family: 'Astley Display';
    font-style: normal;
    font-weight: 500 800;
    font-display: swap;
    src: url('../fonts/manrope-latin-variable.woff2') format('woff2');
}

:root,
html[data-astley-theme="light"] {
    --astley-page: #f7f8fc;
    --astley-surface: #ffffff;
    --astley-surface-soft: #f0f3f9;
    --astley-heading: #111827;
    --astley-copy: #465168;
    --astley-border: #dfe4ee;
    --astley-shadow: 0 18px 55px rgba(30, 42, 72, .09);
    --astley-header: rgba(255, 255, 255, .96);
    --astley-brand: #6729b8;
    color-scheme: light;
}

html,
body,
#page,
#main {
    background: var(--astley-page) !important;
}

html { box-sizing: border-box; scroll-behavior: smooth; }
*, *::before, *::after { box-sizing: inherit; }
body { min-width: 320px; margin: 0; overflow-x: hidden; }
img { max-width: 100%; height: auto; }
button, input, textarea, select { font: inherit; }
#page { display: flex; min-height: 100vh; flex-direction: column; }
#content { width: 100%; flex: 1 0 auto; }
.ad-site-footer { flex: 0 0 auto; }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0, 0, 0, 0); border: 0; word-wrap: normal !important; }
.screen-reader-text:focus { z-index: 100000; top: 8px; left: 8px; width: auto; height: auto; padding: 12px 16px; clip: auto !important; border-radius: 8px; background: #fff; color: #111827; box-shadow: 0 8px 30px rgba(17, 24, 39, .18); font-weight: 700; }

/* The7 caps its content wrapper at 1200px on wide screens. Our rebuilt page
   sections provide their own inner containers, so the outer canvas must remain
   full width for backgrounds, motion and edge-to-edge bands. */
#main > .wf-wrap,
#main > .wf-wrap > .wf-container-main {
    width: 100% !important;
    max-width: none !important;
    margin-right: 0 !important;
    margin-left: 0 !important;
}

body {
    color: var(--astley-copy);
    font-family: 'Astley Body', Arial, sans-serif !important;
    transition: background-color .25s ease, color .25s ease;
}

body :is(p, li, a, button, input, textarea, select, label) {
    font-family: 'Astley Body', Arial, sans-serif !important;
}

body :is(h1, h2, h3, h4, h5, h6) {
    font-family: 'Astley Display', 'Astley Body', Arial, sans-serif !important;
    font-variation-settings: 'wght' 700;
}

html[data-astley-theme="light"] .elementor-location-header > .elementor-section,
html[data-astley-theme="light"] .elementor-location-header > .e-con {
    border-bottom: 1px solid var(--astley-border) !important;
    background: var(--astley-header) !important;
    box-shadow: 0 8px 30px rgba(28, 39, 66, .08) !important;
    backdrop-filter: blur(14px);
}

html[data-astley-theme="light"] .elementor-location-header img[src*="astley-logo-white"] {
    filter: invert(1) hue-rotate(180deg);
}

html[data-astley-theme="light"] .elementor-location-header a:not(.elementor-button),
html[data-astley-theme="light"] .elementor-location-header .elementor-icon,
html[data-astley-theme="light"] .elementor-location-header .elementor-nav-menu--dropdown a {
    color: #20283a !important;
}

html[data-astley-theme="light"] .elementor-location-header .elementor-nav-menu--dropdown,
html[data-astley-theme="light"] .elementor-location-header .sub-nav {
    background: #fff !important;
}

html[data-astley-theme="light"] .elementor-location-header .elementor-nav-menu--dropdown a:hover,
html[data-astley-theme="light"] .elementor-location-header .sub-nav a:hover {
    background: #f1f3f8 !important;
    color: var(--astley-brand) !important;
}

html[data-astley-theme="light"] body.elementor-page .elementor:not(.elementor-location-header):not(.elementor-location-footer) > .e-con.e-parent,
html[data-astley-theme="light"] body.elementor-page .elementor:not(.elementor-location-header):not(.elementor-location-footer) > .elementor-section,
html[data-astley-theme="light"] .elementor-location-single > .e-con.e-parent,
html[data-astley-theme="light"] .elementor-location-single > .elementor-section {
    background-color: var(--astley-surface) !important;
}

html[data-astley-theme="light"] body.elementor-page .elementor:not(.elementor-location-header):not(.elementor-location-footer) :is(h1, h2, h3, h4, h5, h6),
html[data-astley-theme="light"] .elementor-location-single :is(h1, h2, h3, h4, h5, h6) {
    color: var(--astley-heading) !important;
}

html[data-astley-theme="light"] body.elementor-page .elementor:not(.elementor-location-header):not(.elementor-location-footer) :is(p, li),
html[data-astley-theme="light"] .elementor-location-single :is(p, li) {
    color: var(--astley-copy) !important;
}

html[data-astley-theme="light"] body.elementor-page .elementor:not(.elementor-location-header):not(.elementor-location-footer) .elementor-widget-container,
html[data-astley-theme="light"] .elementor-location-single .elementor-widget-container {
    border-color: var(--astley-border);
}

html[data-astley-theme="light"] .elementor-button,
html[data-astley-theme="light"] .elementor-location-header .elementor-button {
    border: 2px solid var(--astley-brand) !important;
    border-radius: 999px !important;
    background: var(--astley-brand) !important;
    color: #fff !important;
    box-shadow: 0 9px 24px rgba(103, 41, 184, .18) !important;
}

html[data-astley-theme="light"] .elementor-button:hover,
html[data-astley-theme="light"] .elementor-location-header .elementor-button:hover {
    border-color: #4c7de8 !important;
    background: #4c7de8 !important;
    color: #fff !important;
}

/* Branded image/gradient heroes retain deliberate high-contrast white content. */
html[data-astley-theme="light"] :is(.astley-careers-hero, .astley-job-hero) :is(h1, p, .astley-eyebrow) {
    color: #fff !important;
}

html[data-astley-theme="light"] :is(.astley-careers-hero, .astley-job-hero) .astley-careers-button {
    border-color: rgba(255, 255, 255, .75) !important;
    background: rgba(255, 255, 255, .08) !important;
    color: #fff !important;
}

html[data-astley-theme="light"] :is(.astley-careers-hero, .astley-job-hero) .astley-careers-button:hover {
    background: #fff !important;
    color: #30106c !important;
}

html[data-astley-theme="light"] body.elementor-page:not(.home) #content .elementor .astley-visual-section :is(h1, h2, h3, h4, h5, h6, p, li) {
    color: #fff !important;
}

html[data-astley-theme="light"] body.elementor-page:not(.home) #content .elementor .astley-visual-section .elementor-button {
    border-color: rgba(255, 255, 255, .75) !important;
    background: rgba(255, 255, 255, .1) !important;
    color: #fff !important;
}

html[data-astley-theme="light"] .elementor-location-footer .adFooter,
html[data-astley-theme="light"] .elementor-location-footer > .e-con,
html[data-astley-theme="light"] #footer {
    background: #eef1f7 !important;
}

html[data-astley-theme="light"] .elementor-location-footer :is(h2, h3, h4, a) {
    color: #1b2437 !important;
}

html[data-astley-theme="light"] .elementor-location-footer :is(p, li) {
    color: #566176 !important;
}

html[data-astley-theme="light"] .elementor-location-footer img[src*="astley-logo-white"] {
    filter: invert(1) hue-rotate(180deg);
}

/* Legacy Elementor homepage hero rules retained for editor compatibility. */
.home .elementor-element-47b59aa {
    position: relative;
    overflow: hidden;
    padding: clamp(105px, 11vw, 155px) 0 54px !important;
    background:
        radial-gradient(circle at 78% 38%, rgba(99, 59, 198, .2), transparent 31%),
        radial-gradient(circle at 8% 6%, rgba(76, 125, 232, .15), transparent 30%),
        linear-gradient(145deg, #fff 0%, #f5f7fc 58%, #eef1fb 100%) !important;
}

.home .elementor-element-47b59aa::before {
    position: absolute;
    top: 10%;
    right: -9%;
    width: 540px;
    height: 540px;
    border: 1px solid rgba(103, 41, 184, .1);
    border-radius: 50%;
    box-shadow: 0 0 0 80px rgba(76, 125, 232, .025), 0 0 0 160px rgba(103, 41, 184, .02);
    content: '';
    pointer-events: none;
}

.home .elementor-element-47b59aa > .e-con-inner {
    position: relative;
    z-index: 1;
    display: grid !important;
    grid-template-columns: minmax(0, 1.05fr) minmax(400px, .95fr);
    grid-template-rows: auto auto auto auto auto;
    column-gap: clamp(36px, 6vw, 92px);
    align-items: center;
    width: min(1280px, calc(100% - 64px)) !important;
    max-width: none !important;
}

.home .elementor-element-9e2efaa {
    grid-column: 2;
    grid-row: 1 / 5;
    align-self: stretch;
    width: 100% !important;
    min-height: 600px;
    margin: 0 !important;
    background-image: url('../images/home/secure-cloud-hero-v2.png');
    background-position: 76% center;
    background-repeat: no-repeat;
    background-size: 185%;
    filter: drop-shadow(0 30px 45px rgba(41, 35, 100, .18));
}

.home .elementor-element-9e2efaa img {
    display: none !important;
}

.home .elementor-element-2f15897,
.home .elementor-element-13dc75d,
.home .elementor-element-cf30ba4,
.home .elementor-element-f77b776 {
    grid-column: 1;
    width: 100% !important;
    margin-right: 0 !important;
    margin-left: 0 !important;
    text-align: left !important;
}

.home .elementor-element-2f15897 {
    grid-row: 1;
    align-self: end;
}

.home .elementor-element-2f15897::before {
    display: block;
    margin-bottom: 18px;
    color: #6729b8;
    content: 'MANAGED CLOUD  •  CYBER SECURITY  •  IT';
    font: 700 13px/1.4 Inter, sans-serif;
    letter-spacing: .13em;
}

.home .elementor-element-2f15897 h1 {
    max-width: 700px;
    margin: 0 !important;
    color: #111827 !important;
    font-size: clamp(44px, 4.5vw, 66px) !important;
    font-weight: 750 !important;
    line-height: 1.05 !important;
    letter-spacing: -.035em !important;
    text-align: left !important;
}

.home .elementor-element-13dc75d {
    grid-row: 2;
    justify-self: stretch !important;
    max-width: 630px;
    margin-top: 24px !important;
}

.home .elementor-element-13dc75d p {
    width: 100% !important;
    max-width: 630px;
    margin: 0 !important;
    color: #4b5870 !important;
    font-size: clamp(17px, 1.5vw, 20px) !important;
    line-height: 1.65 !important;
    text-align: left !important;
}

.home .elementor-element-13dc75d .elementor-widget-container {
    display: block !important;
    width: 100% !important;
    max-width: 630px !important;
    margin: 0 !important;
}

.home .elementor-element-cf30ba4 {
    grid-row: 3;
    justify-self: start;
    margin-top: 30px !important;
}

.home .elementor-element-cf30ba4 .elementor-button {
    min-height: 56px;
    padding: 15px 30px !important;
}

.home .elementor-element-f77b776 {
    grid-row: 4;
    align-self: start;
    margin-top: 24px !important;
}

.home .elementor-element-f77b776 p {
    margin: 0 !important;
    color: #69758b !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    text-align: left !important;
}

.home .elementor-element-52e276f {
    grid-column: 1 / -1;
    grid-row: 5;
    width: 100% !important;
    margin-top: 58px !important;
    padding-top: 30px;
    border-top: 1px solid rgba(86, 96, 119, .15);
}

@media (max-width: 900px) {
    .home .elementor-element-47b59aa {
        padding: 105px 0 45px !important;
    }

    .home .elementor-element-47b59aa > .e-con-inner {
        grid-template-columns: 1fr minmax(300px, .8fr);
        column-gap: 28px;
        width: min(100% - 40px, 880px) !important;
    }

    .home .elementor-element-9e2efaa {
        min-height: 470px;
        background-size: 185%;
    }
}

@media (max-width: 767px) {
    .home .elementor-element-47b59aa {
        padding: 48px 0 28px !important;
        background:
            radial-gradient(circle at 92% 38%, rgba(103, 41, 184, .13), transparent 34%),
            linear-gradient(160deg, #fff 0%, #f5f7fc 100%) !important;
    }

    .home .elementor-element-47b59aa::before {
        display: none;
    }

    .home .elementor-element-47b59aa > .e-con-inner {
        grid-template-columns: 1fr;
        grid-template-rows: auto;
        width: min(100% - 36px, 620px) !important;
    }

    .home .elementor-element-2f15897,
    .home .elementor-element-13dc75d,
    .home .elementor-element-cf30ba4,
    .home .elementor-element-f77b776,
    .home .elementor-element-9e2efaa,
    .home .elementor-element-52e276f {
        grid-column: 1;
        grid-row: auto;
    }

    .home .elementor-element-2f15897::before {
        margin-bottom: 12px;
        font-size: 10px;
        letter-spacing: .08em;
    }

    .home .elementor-element-2f15897 h1 {
        max-width: 350px;
        font-size: clamp(35px, 9.5vw, 42px) !important;
        line-height: 1.06 !important;
        letter-spacing: -.03em !important;
    }

    .home .elementor-element-13dc75d {
        margin-top: 16px !important;
    }

    .home .elementor-element-13dc75d p {
        font-size: 16px !important;
        line-height: 1.55 !important;
    }

    .home .elementor-element-cf30ba4 {
        margin-top: 22px !important;
    }

    .home .elementor-element-cf30ba4 .elementor-button {
        width: auto !important;
        min-width: 210px;
        min-height: 50px;
        padding: 12px 24px !important;
    }

    .home .elementor-element-9e2efaa {
        grid-row: 4;
        min-height: 245px;
        margin-top: 12px !important;
        background-position: 76% center;
        background-size: 155%;
    }

    .home .elementor-element-f77b776 {
        grid-row: 5;
        display: none !important;
    }

    .home .elementor-element-52e276f {
        grid-row: 6;
        margin-top: 22px !important;
        padding-top: 18px;
    }

}
