@font-face {
    font-family: AelisDisplay;
    src: url('../fonts/Tomorrow-Bold.woff2') format('woff2');
    font-display: swap;
    font-weight: 700;
}

/* These layout changes are intentionally restricted to the overview menu. */
body.itemid-544.com-spsimpleportfolio.view-items {
    background: #f7f8fa;
    color: #202b39;
}
body.itemid-544.view-items #sp-main-body { padding: 0; }
body.itemid-544.view-items #sp-main-body > .container { width: 100%; max-width: none; padding: 0; }
body.itemid-544.view-items #sp-main-body > .container > .row { margin: 0; }
body.itemid-544.view-items #sp-component { width: 100%; padding: 0; }
body.itemid-544.view-items #sp-page-title { display: none; }
body.itemid-544.view-items #sp-header { background: #fff; box-shadow: none; border-top: 8px solid #5097a9; height: auto; }
body.itemid-544.view-items #offcanvas-toggler > i { margin: 0; vertical-align: middle; color: #202b39; }
body.itemid-544.view-items #sp-bottom { background: #fff; padding: 42px 0 24px; color: #52606e; }
body.itemid-544.view-items #sp-footer { background: #fff; color: #52606e; padding: 20px 0; }

.aelis-products {
    --aelis-ink: #202b39;
    --aelis-muted: #53616b;
    --aelis-accent: #397f91;
    --aelis-bg: #f7f8fa;
    font-family: 'Source Sans Pro', 'Segoe UI', Arial, sans-serif;
    font-size: 18px;
    font-weight: 400;
    line-height: 1.5;
    background: var(--aelis-bg);
    color: var(--aelis-ink);
}
.aelis-products *, .aelis-products *::before, .aelis-products *::after { box-sizing: border-box; }
.aelis-products .aelis-container { width: calc(100% - 64px); max-width: 1280px; margin: 0 auto; }
.aelis-products h1, .aelis-products h2, .aelis-products h3 { color: var(--aelis-ink); margin: 0; text-transform: none; letter-spacing: -.025em; }
.aelis-products h2 { font-family: inherit; font-weight: 300; font-size: 38px; line-height: 1.18; }
.aelis-products h3 { font-family: inherit; font-size: 23px; font-weight: 500; line-height: 1.3; }
.aelis-products p { color: var(--aelis-muted); margin: 0; }
.aelis-products a { text-decoration: none; }
.aelis-products a:focus-visible, .aelis-products button:focus-visible, .aelis-products summary:focus-visible { outline: 3px solid #27687e; outline-offset: 5px; }
.aelis-products [hidden] { display: none !important; }
.aelis-products .aelis-breadcrumb { background: #11181e; color: #fff; padding: 14px 0; border-radius: 0 0 24px 24px; font-size: 14px; }
.aelis-breadcrumb .aelis-container { display: flex; align-items: center; gap: 20px; }
.aelis-products .aelis-breadcrumb a { color: #8cc6d4; }
.aelis-products .aelis-breadcrumb span { color: #fff; }
.aelis-products .aelis-hero { padding: 94px 0 88px; }
.aelis-products .aelis-eyebrow { display: inline-block; font-size: 15px; font-weight: 600; color: #327487; background: #e8f0f2; border-radius: 30px; padding: 5px 13px; }
.aelis-products .aelis-hero-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 56px; margin-top: 36px; align-items: center; }
.aelis-products h1 { font-family: AelisDisplay, 'Segoe UI', sans-serif; font-size: clamp(30px, 3.2vw, 44px); line-height: 1.08; font-weight: 700; text-transform: uppercase; letter-spacing: -.04em; }
.aelis-products .aelis-hero-grid p { max-width: 580px; padding-bottom: 65px; font-size: 19px; line-height: 1.55; }
.aelis-products .aelis-button { display: inline-flex; justify-content: center; align-items: center; gap: 12px; border-radius: 40px; padding: 11px 30px; background: var(--aelis-accent); color: #fff; font-size: 16px; font-weight: 500; line-height: 1.4; transition: background .18s, transform .18s; }
.aelis-products .aelis-button:hover { background: #286779; color: #fff; transform: translateY(-2px); }
.aelis-products .aelis-button .fa { font-size: 13px; }
.aelis-products .aelis-hero .aelis-button { margin-top: 46px; min-width: 238px; }
.aelis-products .aelis-button-dark { background: #202b39; }
.aelis-products .aelis-banner-wrap { padding: 32px 0 60px; background: #202b39; }
.aelis-products .aelis-banner { padding: 14px; border-radius: 20px; background: #e9edef; overflow: hidden; box-shadow: 0 24px 45px -28px #202b3955; }
.aelis-products .aelis-banner img { display: block; width: 100%; height: auto; aspect-ratio: 2 / 1; object-fit: cover; object-position: center; border-radius: 14px; }
.aelis-products .aelis-core { padding-top: 68px; padding-bottom: 80px; display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: 80px; }
.aelis-products .aelis-core p { margin: 28px 0; }
.aelis-products .aelis-core details { border-top: 1px solid #d8dee2; padding-top: 20px; }
.aelis-products .aelis-core summary { cursor: pointer; font-size: 20px; font-weight: 600; }
.aelis-products .aelis-core ul { padding-left: 22px; margin: 20px 0 0; }
.aelis-products .aelis-core li { padding-left: 6px; margin-bottom: 10px; color: var(--aelis-muted); }
.aelis-products .aelis-core li::marker { color: var(--aelis-accent); }
.aelis-products .aelis-core-image { background: #fff; border-radius: 18px; box-shadow: 0 20px 36px -24px #202b3970; overflow: hidden; }
.aelis-products .aelis-core-image img { display: block; width: 100%; height: auto; aspect-ratio: 1.1; object-fit: contain; padding: 24px; }
.aelis-products .aelis-portfolio { padding-top: 65px; padding-bottom: 100px; }
.aelis-products .aelis-section-heading { text-align: center; max-width: 950px; margin: 0 auto 64px; }
.aelis-products .aelis-section-heading p { margin: 32px auto 0; max-width: 800px; }
.aelis-products .aelis-section-heading .aelis-eyebrow { margin-bottom: 20px; }
.aelis-products .aelis-category-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 30px; }
.aelis-products .aelis-category-card { background: #fff; border: 1px solid #dce1e4; border-radius: 18px; padding: 32px; min-height: 356px; display: flex; flex-direction: column; align-items: flex-start; box-shadow: 0 22px 34px -25px #18232f66; }
.aelis-products .aelis-category-icon { font-size: 38px; color: #5097a9; margin-bottom: 23px; }
.aelis-products .aelis-category-card h3 { margin-bottom: 26px; }
.aelis-products .aelis-category-card p { margin-bottom: 40px; flex: 1; }
.aelis-products .aelis-category-card .aelis-button { font-size: 14px; padding: 10px 21px; max-width: 100%; }
.aelis-products .aelis-range { padding-top: 45px; padding-bottom: 110px; }
.aelis-products .aelis-filters { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; }
.aelis-products .aelis-filters button { font: inherit; font-size: 15px; cursor: pointer; padding: 9px 21px; border: 1px solid #cbd7dc; border-radius: 30px; background: #fff; color: #445560; }
.aelis-products .aelis-filters button[aria-pressed="true"] { background: #202b39; border-color: #202b39; color: #fff; }
.aelis-products .aelis-filters button:hover { border-color: #397f91; }
.aelis-products .aelis-filter-status { text-align: center; font-size: 14px; margin: 15px 0 28px; }
.aelis-products .aelis-product-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; }
.aelis-products .aelis-product-card { border: 1px solid #dce1e4; border-radius: 16px; overflow: hidden; background: #fff; transition: box-shadow .18s, transform .18s; }
.aelis-products .aelis-product-card:hover { transform: translateY(-4px); box-shadow: 0 16px 28px -20px #202b3970; }
.aelis-products .aelis-product-card > a { display: flex; flex-direction: column; height: 100%; color: inherit; }
.aelis-products .aelis-product-image { aspect-ratio: 1.1; background: #fff; padding: 18px; }
.aelis-products .aelis-product-image img { width: 100%; height: 100%; object-fit: contain; }
.aelis-products .aelis-product-copy { padding: 22px; border-top: 1px solid #edf0f2; display: flex; flex: 1; flex-direction: column; }
.aelis-products .aelis-product-tags { color: #397787; font-size: 12px; text-transform: uppercase; letter-spacing: .03em; margin-bottom: 13px; }
.aelis-products .aelis-product-card h3 { font-size: 20px; line-height: 1.35; margin-bottom: 24px; }
.aelis-products .aelis-product-link { color: #327487; font-size: 14px; margin-top: auto; display: flex; justify-content: space-between; align-items: center; }
.aelis-products .aelis-pagination { margin: 44px 0 0; display: flex; justify-content: center; clear: both; }
.aelis-products .aelis-pagination ul { display: flex; flex-wrap: wrap; gap: 8px; padding: 0; margin: 0; list-style: none; }
.aelis-products .aelis-pagination li > * { display: inline-flex; justify-content: center; align-items: center; min-width: 44px; min-height: 44px; padding: 8px 12px; border: 1px solid #ccd8de; border-radius: 8px; background: #fff; color: #202b39; }
.aelis-products .aelis-pagination li.active > * { color: #fff; background: #397f91; border-color: #397f91; }
.aelis-products .aelis-contact { text-align: center; background: #202b39; padding: 84px 0 90px; }
.aelis-products .aelis-contact .aelis-eyebrow { background: #2d414e; color: #a9d6df; }
.aelis-products .aelis-contact h2 { color: #fff; margin: 26px 0; }
.aelis-products .aelis-contact p { color: #d3dce3; max-width: 720px; margin: 0 auto 34px; }

/* Category page intro */
.aelis-products .aelis-category-intro { padding: 62px 0 56px; }
.aelis-products .aelis-category-intro .aelis-hero-grid { margin-top: 22px; gap: 48px; }
.aelis-products .aelis-category-intro .aelis-hero-grid p { padding-bottom: 0; font-size: 18px; }
.aelis-products .aelis-category-intro .aelis-button { margin-top: 28px; }
.aelis-products .aelis-category-page .aelis-range { padding-top: 30px; }
.aelis-products .aelis-category-page .aelis-section-heading { margin-bottom: 40px; }
.aelis-products .aelis-empty { text-align: center; padding: 40px 0; font-size: 17px; }

@media (min-width: 1440px) { .aelis-products .aelis-hero { padding-top: 104px; } }
@media (max-width: 991px) {
    .aelis-products .aelis-hero-grid { gap: 32px; }
    .aelis-products h1 { font-size: 32px; }
    .aelis-products .aelis-core { gap: 36px; }
    .aelis-products .aelis-category-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .aelis-products .aelis-product-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
    .aelis-products .aelis-container { width: calc(100% - 40px); }
    .aelis-products .aelis-hero { padding: 54px 0 48px; }
    .aelis-products .aelis-hero-grid { grid-template-columns: 1fr; gap: 28px; margin-top: 25px; }
    .aelis-products h1 { font-size: clamp(25px, 6.7vw, 36px); line-height: 1.08; }
    .aelis-products h2 { font-size: 30px; }
    .aelis-products .aelis-hero .aelis-button { margin-top: 30px; }
    .aelis-products .aelis-hero-grid p { padding: 0; font-size: 18px; }
    .aelis-products .aelis-banner { padding: 7px; border-radius: 14px; }
    .aelis-products .aelis-banner img { min-height: 170px; aspect-ratio: auto; object-fit: cover; }
    .aelis-products .aelis-banner-wrap { padding: 20px 0; }
    .aelis-products .aelis-core { grid-template-columns: 1fr; padding-top: 35px; padding-bottom: 45px; gap: 30px; }
    .aelis-products .aelis-core-image img { aspect-ratio: 1.2; }
    .aelis-products .aelis-portfolio { padding-top: 35px; padding-bottom: 55px; }
    .aelis-products .aelis-section-heading { margin-bottom: 35px; }
    .aelis-products .aelis-section-heading p { margin-top: 22px; }
    .aelis-products .aelis-category-grid { grid-template-columns: 1fr; gap: 20px; }
    .aelis-products .aelis-category-card { min-height: 320px; padding: 28px; }
    .aelis-products .aelis-range { padding-top: 25px; padding-bottom: 60px; }
    .aelis-products .aelis-product-grid { grid-template-columns: 1fr; gap: 20px; }
    .aelis-products .aelis-product-image { aspect-ratio: 1.3; }
    .aelis-products .aelis-contact { padding: 55px 0; }
    .aelis-products .aelis-filters { gap: 8px; }
    .aelis-products .aelis-filters button { padding: 9px 15px; }
}
@media (prefers-reduced-motion: reduce) {
    .aelis-products *, .aelis-products *::before, .aelis-products *::after { transition: none !important; }
}
