/*
 * ITPulse HighTech 2.0
 * Modern presentation layer. Loaded after the legacy compatibility stylesheet.
 */

:root {
    --itpulse-primary: #071a33;
    --itpulse-primary-2: #0b2748;
    --itpulse-secondary: #00c7e6;
    --itpulse-secondary-strong: #00a8c7;
    --itpulse-accent: #64e6f5;
    --itpulse-dark: #04101f;
    --itpulse-ink: #102238;
    --itpulse-muted: #66788d;
    --itpulse-surface: #ffffff;
    --itpulse-surface-soft: #f5f9fc;
    --itpulse-border: rgba(13, 42, 70, .11);
    --itpulse-shadow-sm: 0 10px 30px rgba(7, 26, 51, .08);
    --itpulse-shadow-md: 0 24px 70px rgba(7, 26, 51, .13);
    --itpulse-radius-sm: 14px;
    --itpulse-radius: 22px;
    --itpulse-radius-lg: 34px;
    --itpulse-container: 1240px;
    --itpulse-transition: 220ms cubic-bezier(.2, .7, .2, 1);
}

html {
    scroll-behavior: smooth;
}

body {
    color: var(--itpulse-ink);
    background: var(--itpulse-surface);
    font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    line-height: 1.7;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}

body.admin-bar .site-header {
    top: 32px;
}

@media (max-width: 782px) {
    body.admin-bar .site-header {
        top: 46px;
    }
}

::selection {
    color: #fff;
    background: var(--itpulse-secondary-strong);
}

img {
    max-width: 100%;
    height: auto;
}

a {
    text-underline-offset: .2em;
}

:focus-visible {
    outline: 3px solid rgba(0, 199, 230, .55);
    outline-offset: 4px;
}

.container {
    max-width: var(--itpulse-container);
}

.itpulse-skip-link {
    position: fixed;
    top: 12px;
    left: 12px;
    z-index: 100000;
    transform: translateY(-160%);
    padding: 10px 16px;
    border-radius: 10px;
    color: #fff;
    background: var(--itpulse-dark);
    transition: transform var(--itpulse-transition);
}

.itpulse-skip-link:focus {
    transform: translateY(0);
}

/* Header */
.site-header {
    position: sticky;
    top: 0;
    z-index: 1020;
    transition: box-shadow var(--itpulse-transition), transform var(--itpulse-transition);
}

.site-header.is-scrolled {
    box-shadow: 0 14px 38px rgba(1, 15, 31, .18);
}

.itpulse-topbar {
    color: rgba(255, 255, 255, .75);
    background: #030d18;
    border-bottom: 1px solid rgba(255,255,255,.06);
}

.itpulse-topbar-inner {
    min-height: 42px;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
    align-items: center;
    gap: 20px;
}

.itpulse-topbar-contact,
.itpulse-topbar-socials {
    display: flex;
    align-items: center;
    gap: 18px;
}

.itpulse-topbar-contact a,
.itpulse-topbar-socials a {
    color: inherit;
    text-decoration: none;
    transition: color var(--itpulse-transition);
}

.itpulse-topbar-contact a {
    display: inline-flex;
    gap: 8px;
    align-items: center;
    font-size: .78rem;
    white-space: nowrap;
}

.itpulse-topbar-contact a:hover,
.itpulse-topbar-socials a:hover {
    color: var(--itpulse-secondary);
}

.itpulse-topbar-tagline {
    align-items: center;
    gap: 9px;
    font-size: .75rem;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.itpulse-live-dot {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--itpulse-secondary);
    box-shadow: 0 0 0 6px rgba(0, 199, 230, .1);
}

.itpulse-topbar-socials {
    justify-content: flex-end;
    gap: 8px;
}

.itpulse-topbar-socials a {
    width: 28px;
    height: 28px;
    display: grid;
    place-items: center;
    border: 1px solid rgba(255,255,255,.12);
    border-radius: 50%;
    font-size: .75rem;
}

.itpulse-navbar-shell {
    background: linear-gradient(112deg, rgba(7, 26, 51, .98), rgba(10, 44, 78, .98));
    backdrop-filter: blur(18px);
}

.navbar {
    min-height: 78px;
}

.itpulse-brand {
    display: inline-flex;
    align-items: center;
    margin-right: 26px;
    text-decoration: none;
}

.itpulse-brand-logo {
    display: block;
    width: auto;
    max-width: 170px;
    max-height: 52px;
    object-fit: contain;
}

.itpulse-wordmark {
    color: #fff;
    font-family: Saira, Inter, sans-serif;
    font-size: clamp(1.65rem, 2vw, 2.1rem);
    font-weight: 700;
    letter-spacing: -.045em;
}

.itpulse-wordmark strong {
    color: var(--itpulse-secondary);
}

.navbar .navbar-nav {
    gap: 2px;
}

.navbar .navbar-nav > .nav-item {
    position: relative;
    display: flex;
    align-items: center;
}

.navbar .navbar-nav .nav-link {
    position: relative;
    padding: 27px 12px;
    color: rgba(255,255,255,.82);
    font-size: .96rem;
    font-weight: 600;
    letter-spacing: .01em;
    transition: color var(--itpulse-transition);
}

.navbar .navbar-nav .nav-link::after {
    content: "";
    position: absolute;
    right: 12px;
    bottom: 19px;
    left: 12px;
    height: 2px;
    transform: scaleX(0);
    transform-origin: center;
    border-radius: 999px;
    background: var(--itpulse-secondary);
    transition: transform var(--itpulse-transition);
}

.navbar .navbar-nav .nav-link:hover,
.navbar .navbar-nav .nav-link.active {
    color: #fff !important;
}

.navbar .navbar-nav .nav-link:hover::after,
.navbar .navbar-nav .nav-link.active::after {
    transform: scaleX(1);
}

.services-dropdown-toggle {
    width: 30px;
    height: 30px;
    margin-left: -8px;
    display: grid;
    place-items: center;
    border: 0;
    border-radius: 50%;
    color: rgba(255,255,255,.8);
    background: transparent;
    transition: color var(--itpulse-transition), background var(--itpulse-transition), transform var(--itpulse-transition);
}

.services-dropdown-toggle:hover,
.services-dropdown-toggle[aria-expanded="true"] {
    color: var(--itpulse-secondary);
    background: rgba(255,255,255,.08);
}

.services-dropdown-toggle[aria-expanded="true"] {
    transform: rotate(180deg);
}

.navbar .dropdown-menu {
    min-width: 240px;
    padding: 10px;
    border-radius: 18px !important;
    background: rgba(255,255,255,.98);
    box-shadow: var(--itpulse-shadow-md) !important;
}

.navbar .dropdown-item {
    padding: 10px 12px;
    border-radius: 10px;
    color: var(--itpulse-ink);
    font-size: .92rem;
    font-weight: 600;
    transition: color var(--itpulse-transition), background var(--itpulse-transition), transform var(--itpulse-transition);
}

.navbar .dropdown-item:hover,
.navbar .dropdown-item.active {
    color: var(--itpulse-primary);
    background: rgba(0, 199, 230, .1);
    transform: translateX(3px);
}

.itpulse-nav-actions {
    display: flex;
    align-items: center;
    gap: 14px;
}

.itpulse-phone-cta {
    align-items: center;
    gap: 10px;
    padding-left: 18px;
    border-left: 1px solid rgba(255,255,255,.16);
    color: #fff;
    text-decoration: none;
}

.itpulse-phone-cta:hover {
    color: #fff;
}

.itpulse-phone-icon {
    width: 40px;
    height: 40px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    color: var(--itpulse-primary);
    background: var(--itpulse-secondary);
    box-shadow: 0 10px 24px rgba(0,199,230,.22);
}

.itpulse-phone-cta small,
.itpulse-phone-cta strong {
    display: block;
    line-height: 1.25;
}

.itpulse-phone-cta small {
    color: rgba(255,255,255,.55);
    font-size: .68rem;
    text-transform: uppercase;
    letter-spacing: .08em;
}

.itpulse-phone-cta strong {
    margin-top: 3px;
    font-size: .82rem;
}

.itpulse-header-search {
    position: relative;
}

.itpulse-search-toggle {
    width: 42px;
    height: 42px;
    display: grid;
    place-items: center;
    padding: 0;
    border: 1px solid rgba(255,255,255,.15);
    border-radius: 50%;
    color: #fff;
    background: rgba(255,255,255,.06);
    transition: background var(--itpulse-transition), border-color var(--itpulse-transition), color var(--itpulse-transition);
}

.itpulse-search-toggle:hover,
.itpulse-header-search.is-open .itpulse-search-toggle {
    color: var(--itpulse-primary);
    border-color: var(--itpulse-secondary);
    background: var(--itpulse-secondary);
}

.itpulse-header-search .itpulse-search-form {
    top: calc(100% + 14px);
    right: 0;
    width: min(360px, calc(100vw - 32px));
    padding: 8px;
    border: 1px solid var(--itpulse-border);
    border-radius: 16px;
    background: rgba(255,255,255,.99);
    box-shadow: var(--itpulse-shadow-md);
}

.itpulse-header-search .itpulse-search-form input {
    min-height: 46px;
    padding: 0 52px 0 14px;
    border: 0;
    border-radius: 11px;
    color: var(--itpulse-ink);
    background: var(--itpulse-surface-soft);
}

.itpulse-header-search .itpulse-search-form button[type="submit"] {
    right: 13px;
    top: 13px;
    width: 36px;
    height: 36px;
    display: grid;
    place-items: center;
    border-radius: 9px;
    color: #fff;
    background: var(--itpulse-primary);
}

.itpulse-search-history {
    margin: 6px 0 0;
    padding: 8px;
    border: 1px solid var(--itpulse-border);
    border-radius: 12px;
    background: #fff;
}

/* Hero */
#carouselId {
    overflow: hidden;
    background: var(--itpulse-dark);
}

#carouselId .carousel-item {
    min-height: clamp(560px, 72vh, 760px);
}

#carouselId .carousel-item > img {
    width: 100%;
    height: clamp(560px, 72vh, 760px);
    object-fit: cover;
    transform: scale(1.02);
}

#carouselId .carousel-item::after {
    background:
        radial-gradient(circle at 78% 30%, rgba(0,199,230,.20), transparent 35%),
        linear-gradient(90deg, rgba(3,13,24,.93) 0%, rgba(5,25,47,.83) 42%, rgba(3,13,24,.4) 75%, rgba(3,13,24,.5) 100%);
}

#carouselId .carousel-caption {
    inset: 0;
    z-index: 2;
    display: flex;
    align-items: center;
    padding: 90px 0;
    text-align: left;
}

#carouselId .carousel-content {
    max-width: var(--itpulse-container);
}

#carouselId .carousel-content > * {
    max-width: 820px;
}

#carouselId .carousel-content h6 {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    margin-bottom: 18px;
    padding: 8px 14px;
    border: 1px solid rgba(100,230,245,.28);
    border-radius: 999px;
    background: rgba(0,199,230,.08);
    color: var(--itpulse-accent) !important;
    font-size: .83rem;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
}

#carouselId .carousel-content h1 {
    max-width: 900px;
    font-family: Saira, Inter, sans-serif;
    font-size: clamp(2.7rem, 5.8vw, 5.75rem) !important;
    line-height: .98;
    letter-spacing: -.045em;
    text-shadow: 0 16px 40px rgba(0,0,0,.2);
}

#carouselId .carousel-content p {
    max-width: 680px;
    color: rgba(255,255,255,.76) !important;
    font-size: clamp(1rem, 1.5vw, 1.2rem) !important;
}

.btn {
    border-radius: 12px;
    font-weight: 700;
    box-shadow: none;
    transition: transform var(--itpulse-transition), box-shadow var(--itpulse-transition), background var(--itpulse-transition), color var(--itpulse-transition), border-color var(--itpulse-transition);
}

.btn:hover {
    transform: translateY(-2px);
}

.btn-secondary {
    color: #03202a !important;
    background: var(--itpulse-secondary) !important;
    border-color: var(--itpulse-secondary) !important;
    box-shadow: 0 14px 30px rgba(0,199,230,.18);
}

.btn-secondary:hover,
.btn-secondary:focus {
    color: #fff !important;
    background: var(--itpulse-primary) !important;
    border-color: var(--itpulse-primary) !important;
}

.btn-primary {
    color: #fff !important;
    background: rgba(7,26,51,.95) !important;
    border-color: rgba(255,255,255,.24) !important;
}

/* Metrics */
.facts-bar {
    position: relative;
    z-index: 5;
    padding: 0 !important;
    background: transparent !important;
}

.facts-bar .container {
    margin-top: -44px;
    padding: 0;
    overflow: hidden;
    border: 1px solid rgba(255,255,255,.14);
    border-radius: var(--itpulse-radius);
    background: linear-gradient(110deg, #00c7e6, #00accb);
    box-shadow: 0 24px 50px rgba(1, 90, 112, .22);
}

.facts-bar .counter {
    height: 100%;
    align-items: center;
    padding: 26px 24px;
    border-right: 1px solid rgba(255,255,255,.25);
}

.facts-bar .row > div:last-child .counter {
    border-right: 0;
}

.facts-bar .counter-value {
    min-width: 58px;
    margin: 0 16px 0 0 !important;
    color: var(--itpulse-primary) !important;
    font-family: Saira, Inter, sans-serif;
    font-size: 2.2rem;
    font-weight: 700;
}

.facts-bar .counter h5 {
    margin: 0 !important;
    font-size: .86rem;
    line-height: 1.45;
}

/* Sections */
main > section,
main > .container-fluid {
    position: relative;
}

.services,
.blog,
.testimonial {
    background: linear-gradient(180deg, #f7fbfd 0%, #fff 100%);
}

.services .text-center.mx-auto,
.projects .text-center.mx-auto,
.blog .text-center.mx-auto,
.team .text-center.mx-auto,
.testimonial .text-center.mx-auto {
    max-width: 760px !important;
}

.services h5.text-primary,
.projects h5.text-primary,
.blog h5.text-primary,
.team h5.text-primary,
.testimonial h5.text-primary {
    display: inline-flex;
    padding: 7px 12px;
    border-radius: 999px;
    color: var(--itpulse-secondary-strong) !important;
    background: rgba(0,199,230,.09);
    font-size: .78rem;
    font-weight: 800;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.services h1,
.projects h1,
.blog h1,
.team h1,
.testimonial h1,
.page-content h1,
.page-content h2,
.page-content h3 {
    color: var(--itpulse-primary);
    font-family: Saira, Inter, sans-serif;
    letter-spacing: -.035em;
}

.services-item,
.project-item,
.blog-item,
.team-item,
.testimonial-item,
.contact-panel,
.page-content {
    border: 1px solid var(--itpulse-border) !important;
    border-radius: var(--itpulse-radius) !important;
    background: #fff !important;
    box-shadow: var(--itpulse-shadow-sm);
}

.services-item {
    height: 100%;
    overflow: hidden;
    transition: transform var(--itpulse-transition), box-shadow var(--itpulse-transition), border-color var(--itpulse-transition);
}

.services-item:hover {
    transform: translateY(-7px);
    border-color: rgba(0,199,230,.28) !important;
    box-shadow: var(--itpulse-shadow-md);
}

.services-content {
    padding: 34px 28px !important;
}

.services-content-icon {
    margin-bottom: 18px;
}

.services-content-icon i {
    filter: drop-shadow(0 10px 18px rgba(0,199,230,.16));
}

.project-item {
    overflow: hidden;
    transition: transform var(--itpulse-transition), box-shadow var(--itpulse-transition);
}

.project-item:hover {
    transform: translateY(-6px);
    box-shadow: var(--itpulse-shadow-md);
}

.project-img img,
.blog-item > img,
.blog-item > a img {
    transition: transform 500ms cubic-bezier(.2,.7,.2,1);
}

.project-item:hover img,
.blog-item:hover > img,
.blog-item:hover > a img {
    transform: scale(1.035);
}

.blog-item {
    overflow: visible;
    transition: transform var(--itpulse-transition), box-shadow var(--itpulse-transition);
}

.blog-item:hover {
    transform: translateY(-6px);
    box-shadow: var(--itpulse-shadow-md);
}

.team-item {
    padding: 20px 18px 28px;
}

.team-img img {
    border: 5px solid #fff;
    box-shadow: 0 18px 42px rgba(7,26,51,.16);
}

.testimonial-item {
    height: 100%;
    padding: 30px !important;
}

/* Interior pages */
.page-header {
    position: relative;
    overflow: hidden;
    padding: 90px 0 !important;
    background:
        radial-gradient(circle at 78% 20%, rgba(0,199,230,.25), transparent 30%),
        linear-gradient(120deg, #04101f, #0a2c4e) !important;
}

.page-header::before {
    content: "";
    position: absolute;
    inset: 0;
    opacity: .18;
    background-image: linear-gradient(rgba(255,255,255,.08) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.08) 1px, transparent 1px);
    background-size: 48px 48px;
    mask-image: linear-gradient(to bottom, #000, transparent);
}

.page-header .container {
    position: relative;
    z-index: 1;
}

.page-header h1 {
    font-family: Saira, Inter, sans-serif;
    font-size: clamp(2.5rem, 5vw, 4.7rem) !important;
    letter-spacing: -.05em;
}

.page-header .breadcrumb a,
.page-header .breadcrumb-item,
.page-header .breadcrumb-item.active {
    color: rgba(255,255,255,.75);
}

.page-header .breadcrumb-item + .breadcrumb-item::before {
    color: rgba(255,255,255,.35);
}

.page-content {
    max-width: 980px;
    margin: 0 auto;
    padding: clamp(28px, 5vw, 64px);
}

.page-content > :last-child {
    margin-bottom: 0;
}

.blog-single-content,
.project-single-content {
    color: #32465d;
    font-size: 1.03rem;
}

/* Contact */
.contact-detail {
    overflow: hidden;
    border: 1px solid var(--itpulse-border);
    border-radius: var(--itpulse-radius-lg) !important;
    background: linear-gradient(145deg, #fff, #f5fbfd);
    box-shadow: var(--itpulse-shadow-md);
}

.contact-panel {
    overflow: hidden;
}

.contact-panel-heading {
    padding: 28px 30px 0;
}

.contact-map-frame {
    margin: 24px;
    overflow: hidden;
    border-radius: 16px;
}

.contact-map-iframe {
    width: 100%;
    min-height: 520px;
    border: 0;
}

.contact-form-modern {
    padding: 24px 30px 32px;
}

.contact-field {
    margin-bottom: 18px;
}

.contact-field label {
    display: inline-block;
    margin-bottom: 7px;
    color: var(--itpulse-primary);
    font-size: .82rem;
    font-weight: 700;
}

.contact-field .form-control {
    min-height: 52px;
    border: 1px solid var(--itpulse-border);
    border-radius: 12px;
    background: var(--itpulse-surface-soft);
    box-shadow: none;
}

.contact-field textarea.form-control {
    min-height: 170px;
    resize: vertical;
}

.contact-field .form-control:focus {
    border-color: rgba(0,199,230,.6);
    background: #fff;
    box-shadow: 0 0 0 4px rgba(0,199,230,.1);
}

/* Footer */
.itpulse-footer {
    position: relative;
    overflow: hidden;
    color: rgba(255,255,255,.66);
    background:
        radial-gradient(circle at 82% 5%, rgba(0,199,230,.13), transparent 28%),
        #030d18;
}

.itpulse-footer::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    opacity: .14;
    background-image: linear-gradient(rgba(255,255,255,.06) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.06) 1px, transparent 1px);
    background-size: 52px 52px;
}

.itpulse-footer .container {
    position: relative;
}

.itpulse-footer-grid {
    display: grid;
    grid-template-columns: 1.35fr .8fr 1fr 1.15fr;
    gap: clamp(30px, 4vw, 58px);
}

.itpulse-footer-brand {
    display: inline-block;
    color: #fff;
    font-family: Saira, Inter, sans-serif;
    font-size: 2rem;
    font-weight: 700;
    text-decoration: none;
}

.itpulse-footer-tagline {
    margin: 6px 0 16px;
    color: var(--itpulse-secondary);
    font-weight: 700;
}

.itpulse-footer-description {
    max-width: 420px;
}

.itpulse-footer-heading {
    margin: 8px 0 20px;
    color: #fff;
    font-family: Saira, Inter, sans-serif;
    font-size: 1.05rem;
}

.itpulse-footer-links,
.itpulse-footer-menu,
.itpulse-footer-contact {
    display: grid;
    gap: 10px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.itpulse-footer-links a,
.itpulse-footer-menu a,
.itpulse-footer-contact a {
    color: rgba(255,255,255,.62);
    text-decoration: none;
    transition: color var(--itpulse-transition), transform var(--itpulse-transition);
}

.itpulse-footer-links a:hover,
.itpulse-footer-menu a:hover,
.itpulse-footer-contact a:hover {
    color: var(--itpulse-secondary);
    transform: translateX(3px);
}

.itpulse-footer-contact a {
    display: grid;
    grid-template-columns: 22px 1fr;
    gap: 9px;
    align-items: start;
}

.itpulse-footer-contact i {
    margin-top: 5px;
    color: var(--itpulse-secondary);
}

.itpulse-footer-bottom {
    margin-top: 52px;
    padding-top: 24px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    border-top: 1px solid rgba(255,255,255,.09);
    font-size: .83rem;
}

.itpulse-footer-bottom p {
    margin: 0;
}

.itpulse-footer-bottom a {
    color: #fff;
    text-decoration: none;
}

.back-to-top {
    position: fixed;
    right: 24px;
    bottom: 24px;
    z-index: 1010;
    width: 48px;
    height: 48px;
    display: none;
    place-items: center;
    border: 0;
    border-radius: 50%;
    color: #03202a;
    background: var(--itpulse-secondary);
    box-shadow: 0 14px 32px rgba(0,199,230,.28);
    transition: transform var(--itpulse-transition), opacity var(--itpulse-transition);
}

.back-to-top:hover {
    transform: translateY(-3px);
}

.back-to-top.is-visible {
    display: grid;
}

/* Motion and responsive behavior */
@media (max-width: 1199.98px) {
    .itpulse-topbar-inner {
        grid-template-columns: 1fr auto;
    }

    .itpulse-footer-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 991.98px) {
    .navbar {
        min-height: 70px;
    }

    .navbar-collapse {
        margin: 0 -12px;
        padding: 8px 12px 20px;
        border-top: 1px solid rgba(255,255,255,.08);
    }

    .navbar .navbar-nav {
        gap: 0;
    }

    .navbar .navbar-nav > .nav-item {
        flex-wrap: wrap;
        border-bottom: 1px solid rgba(255,255,255,.07);
    }

    .navbar .navbar-nav .nav-link {
        flex: 1;
        padding: 14px 6px;
    }

    .navbar .navbar-nav .nav-link::after {
        display: none;
    }

    .services-dropdown-toggle {
        margin-left: 0;
    }

    .navbar .dropdown-menu {
        position: static !important;
        width: 100%;
        margin: 0 0 10px;
        transform: none !important;
    }

    .itpulse-nav-actions {
        margin-top: 14px;
        justify-content: flex-end;
    }

    .facts-bar .container {
        margin-top: 0;
        border-radius: 0;
    }

    .facts-bar .counter {
        border-right: 0;
        border-bottom: 1px solid rgba(255,255,255,.22);
    }

    #carouselId .carousel-caption {
        padding: 70px 0;
    }
}

@media (max-width: 767.98px) {
    #carouselId .carousel-item,
    #carouselId .carousel-item > img {
        min-height: 600px;
        height: 600px;
    }

    #carouselId .carousel-caption {
        padding: 56px 0 80px;
    }

    #carouselId .carousel-content h1 {
        font-size: clamp(2.35rem, 12vw, 3.65rem) !important;
    }

    #carouselId .carousel-content .btn {
        margin: 4px 0;
        padding: 12px 22px !important;
    }

    .itpulse-footer-grid {
        grid-template-columns: 1fr;
    }

    .itpulse-footer-bottom {
        align-items: flex-start;
        flex-direction: column;
    }

    .contact-map-iframe {
        min-height: 380px;
    }
}

@media (prefers-reduced-motion: reduce) {
    html:not(.itpulse-motion-preview) {
        scroll-behavior: auto;
    }

    html:not(.itpulse-motion-preview) *,
    html:not(.itpulse-motion-preview) *::before,
    html:not(.itpulse-motion-preview) *::after {
        scroll-behavior: auto !important;
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .01ms !important;
    }
}

/* ========================================================================== 
   ITPulse 2.1 — global production UI refinement
   ========================================================================== */

:root {
    --itpulse-primary: #061a31;
    --itpulse-primary-2: #0a294a;
    --itpulse-secondary: #08c6e3;
    --itpulse-secondary-strong: #00a9c7;
    --itpulse-accent: #79e9f5;
    --itpulse-ink: #10243b;
    --itpulse-muted: #63758a;
    --itpulse-surface-soft: #f5f9fc;
    --itpulse-border: rgba(13, 42, 70, .10);
    --itpulse-shadow-sm: 0 12px 34px rgba(7, 26, 51, .075);
    --itpulse-shadow-md: 0 26px 72px rgba(7, 26, 51, .14);
    --itpulse-container: 1320px;
    --itpulse-header-transition: 320ms cubic-bezier(.22,.72,.2,1);
}

body {
    overflow-x: clip;
    letter-spacing: -.006em;
}

body.nav-open {
    overflow: hidden;
}

/* --- Top utility bar: collision-proof at desktop widths --- */
.itpulse-topbar {
    max-height: 44px;
    overflow: hidden;
    transition: max-height var(--itpulse-header-transition), opacity var(--itpulse-header-transition), transform var(--itpulse-header-transition), border-color var(--itpulse-header-transition);
}

.itpulse-topbar-inner {
    min-height: 42px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: clamp(12px, 1.4vw, 24px);
}

.itpulse-topbar-contact {
    min-width: 0;
    flex: 1 1 auto;
    gap: clamp(12px, 1.2vw, 18px);
    overflow: hidden;
}

.itpulse-topbar-contact a {
    min-width: 0;
    flex: 0 1 auto;
    font-size: .76rem;
}

.itpulse-topbar-contact a > span {
    min-width: 0;
}

.itpulse-topbar-address {
    flex: 1 1 430px !important;
    max-width: min(38vw, 520px);
}

.itpulse-topbar-address > span {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.itpulse-topbar-email {
    flex: 0 0 auto !important;
}

.itpulse-topbar-tagline {
    flex: 0 0 auto;
    margin-left: auto;
    white-space: nowrap;
    color: rgba(255,255,255,.82);
}

.itpulse-topbar-socials {
    flex: 0 0 auto;
}

.site-header.is-scrolled .itpulse-topbar {
    max-height: 0;
    opacity: 0;
    transform: translateY(-8px);
    border-color: transparent;
}

/* --- Header/navigation --- */
.itpulse-navbar-shell {
    position: relative;
    background: linear-gradient(105deg, rgba(5,25,48,.985), rgba(9,46,80,.985));
    box-shadow: inset 0 -1px rgba(255,255,255,.055);
}

.itpulse-navbar-shell::after {
    content: "";
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    height: 1px;
    pointer-events: none;
    background: linear-gradient(90deg, transparent, rgba(8,198,227,.55), transparent);
    opacity: .55;
}

.navbar {
    min-height: 80px;
    transition: min-height var(--itpulse-header-transition);
}

.site-header.is-scrolled .navbar {
    min-height: 68px;
}

.itpulse-brand {
    min-width: 150px;
}

.itpulse-wordmark {
    text-shadow: 0 8px 26px rgba(0,0,0,.22);
}

.navbar .navbar-nav {
    gap: clamp(0px, .35vw, 6px);
}

.navbar .navbar-nav .nav-link {
    padding: 28px clamp(9px, .82vw, 14px);
    font-size: .94rem;
    transition: color var(--itpulse-transition), opacity var(--itpulse-transition);
}

.site-header.is-scrolled .navbar .navbar-nav .nav-link {
    padding-top: 22px;
    padding-bottom: 22px;
}

.navbar .navbar-nav .nav-link::after {
    right: clamp(9px, .82vw, 14px);
    bottom: 18px;
    left: clamp(9px, .82vw, 14px);
    height: 3px;
    box-shadow: 0 0 18px rgba(8,198,227,.44);
}

.site-header.is-scrolled .navbar .navbar-nav .nav-link::after {
    bottom: 12px;
}

.navbar .dropdown-menu {
    margin-top: 0;
    padding: 10px;
    border: 1px solid rgba(8,198,227,.12) !important;
    box-shadow: 0 28px 75px rgba(2,17,33,.22) !important;
}

.itpulse-nav-actions {
    flex: 0 0 auto;
}

.itpulse-phone-cta {
    min-width: max-content;
}

.itpulse-phone-icon,
.itpulse-search-toggle {
    transition: transform var(--itpulse-transition), background var(--itpulse-transition), border-color var(--itpulse-transition), color var(--itpulse-transition), box-shadow var(--itpulse-transition);
}

.itpulse-phone-cta:hover .itpulse-phone-icon,
.itpulse-search-toggle:hover {
    transform: translateY(-2px);
    box-shadow: 0 12px 30px rgba(8,198,227,.24);
}

.itpulse-menu-toggle {
    width: 46px;
    height: 46px;
    padding: 10px;
    border: 1px solid rgba(255,255,255,.14) !important;
    border-radius: 14px;
    background: rgba(255,255,255,.055);
    box-shadow: none !important;
}

/* --- Hero: stronger hierarchy without making it flashy --- */
#carouselId {
    isolation: isolate;
}

#carouselId .carousel-item,
#carouselId .carousel-item > img {
    min-height: clamp(570px, 73vh, 780px);
    height: clamp(570px, 73vh, 780px);
}

#carouselId .carousel-item > img {
    filter: saturate(.9) contrast(1.03);
    transform: scale(1.035);
    transition: transform 8s ease-out;
}

#carouselId .carousel-item.active > img {
    transform: scale(1.0);
}

#carouselId .carousel-item::after {
    background:
        linear-gradient(180deg, rgba(2,12,23,.12) 0%, rgba(2,12,23,.16) 52%, rgba(2,12,23,.52) 100%),
        radial-gradient(circle at 72% 34%, rgba(8,198,227,.18), transparent 31%),
        linear-gradient(90deg, rgba(2,13,26,.96) 0%, rgba(4,24,45,.87) 39%, rgba(3,20,39,.52) 66%, rgba(2,12,23,.34) 100%);
}

#carouselId .carousel-caption {
    padding: clamp(72px, 8vh, 110px) 0 clamp(96px, 11vh, 128px);
}

#carouselId .carousel-content > * {
    max-width: 760px;
}

#carouselId .carousel-content h6 {
    margin-bottom: 22px;
    padding: 8px 15px;
    backdrop-filter: blur(8px);
}

#carouselId .carousel-content h1 {
    max-width: 790px;
    margin-bottom: 24px !important;
    font-size: clamp(3rem, 5.35vw, 5.35rem) !important;
    line-height: .98;
    text-wrap: balance;
}

#carouselId .carousel-content p {
    max-width: 650px;
    margin-bottom: 34px !important;
    line-height: 1.65;
}

#carouselId .carousel-content > a {
    display: inline-flex;
    margin: 0 10px 10px 0;
    text-decoration: none;
}

#carouselId .carousel-content .btn {
    min-width: 174px;
    justify-content: center;
    align-items: center;
}

#carouselId .carousel-control-prev,
#carouselId .carousel-control-next {
    top: 50%;
    bottom: auto;
    width: 54px;
    height: 54px;
    margin-top: -27px;
    border: 1px solid rgba(255,255,255,.16);
    border-radius: 50%;
    background: rgba(4,18,34,.68);
    backdrop-filter: blur(10px);
    opacity: .84;
    transition: opacity var(--itpulse-transition), background var(--itpulse-transition), border-color var(--itpulse-transition), transform var(--itpulse-transition);
}

#carouselId .carousel-control-prev {
    left: clamp(14px, 2vw, 34px);
}

#carouselId .carousel-control-next {
    right: clamp(14px, 2vw, 34px);
}

#carouselId .carousel-control-prev:hover,
#carouselId .carousel-control-next:hover {
    opacity: 1;
    border-color: rgba(8,198,227,.5);
    background: rgba(4,35,58,.92);
    transform: scale(1.05);
}

#carouselId .carousel-control-prev-icon,
#carouselId .carousel-control-next-icon {
    width: 18px;
    height: 18px;
}

#carouselId .carousel-indicators {
    bottom: 62px;
    z-index: 4;
    gap: 8px;
}

#carouselId .carousel-indicators li,
#carouselId .carousel-indicators [data-bs-target] {
    width: 9px;
    height: 9px;
    margin: 0;
    border: 0;
    border-radius: 50%;
    background: rgba(255,255,255,.48);
    opacity: 1;
    transition: width var(--itpulse-transition), border-radius var(--itpulse-transition), background var(--itpulse-transition);
}

#carouselId .carousel-indicators .active {
    width: 32px;
    border-radius: 999px;
    background: var(--itpulse-secondary);
}

/* --- Metrics strip --- */
.facts-bar .container {
    margin-top: -48px;
    border-color: rgba(255,255,255,.24);
    background:
        radial-gradient(circle at 15% 0%, rgba(255,255,255,.25), transparent 26%),
        linear-gradient(112deg, #08c6e3 0%, #00b4d2 55%, #009ebd 100%);
    box-shadow: 0 26px 64px rgba(2,88,108,.26);
}

.facts-bar .row {
    margin: 0;
}

.facts-bar .row > [class*="col-"] {
    padding: 0;
}

.facts-bar .counter {
    min-height: 94px;
    padding: 23px clamp(18px, 2vw, 28px);
}

.facts-bar .counter-value {
    min-width: 64px;
    font-size: clamp(2rem, 2.5vw, 2.45rem);
    letter-spacing: -.045em;
}

.facts-bar .counter h5 {
    max-width: 180px;
    color: rgba(255,255,255,.92) !important;
    font-size: .82rem;
    font-weight: 600;
    line-height: 1.5;
}

/* --- Global cards/sections --- */
.services-item,
.project-item,
.blog-item,
.team-item,
.testimonial-item,
.contact-panel,
.page-content {
    box-shadow: 0 12px 34px rgba(7,26,51,.065);
}

.services-item:hover,
.project-item:hover,
.blog-item:hover {
    box-shadow: 0 28px 72px rgba(7,26,51,.14);
}

/* --- Footer --- */
.itpulse-footer {
    background:
        radial-gradient(circle at 82% 2%, rgba(8,198,227,.16), transparent 30%),
        radial-gradient(circle at 6% 92%, rgba(8,198,227,.06), transparent 24%),
        #020c17;
}

.itpulse-footer-grid {
    align-items: start;
}

.itpulse-footer-brand {
    font-size: 2.05rem;
    letter-spacing: -.045em;
}

.itpulse-footer-socials {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
    margin-top: 22px;
}

.itpulse-footer-socials a {
    width: 38px;
    height: 38px;
    display: grid;
    place-items: center;
    border: 1px solid rgba(255,255,255,.12);
    border-radius: 12px;
    color: rgba(255,255,255,.76);
    background: rgba(255,255,255,.035);
    text-decoration: none;
    transition: color var(--itpulse-transition), border-color var(--itpulse-transition), background var(--itpulse-transition), transform var(--itpulse-transition);
}

.itpulse-footer-socials a:hover {
    color: #031a25;
    border-color: var(--itpulse-secondary);
    background: var(--itpulse-secondary);
    transform: translateY(-3px);
}

.itpulse-footer-links a,
.itpulse-footer-menu a,
.itpulse-footer-contact a {
    line-height: 1.55;
}

/* --- Back-to-top: animate instead of display jump --- */
.back-to-top {
    display: grid;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(10px) scale(.94);
}

.back-to-top.is-visible {
    display: grid;
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateY(0) scale(1);
}

.back-to-top.is-visible:hover {
    transform: translateY(-3px) scale(1.02);
}

@media (max-width: 1399.98px) {
    :root {
        --itpulse-container: 1180px;
    }

    .itpulse-topbar-address {
        max-width: 360px;
    }

    .navbar .navbar-nav .nav-link {
        padding-right: 9px;
        padding-left: 9px;
        font-size: .9rem;
    }

    .navbar .navbar-nav .nav-link::after {
        right: 9px;
        left: 9px;
    }

    .itpulse-phone-cta {
        padding-left: 14px;
    }
}

@media (max-width: 1199.98px) {
    .itpulse-topbar-inner {
        display: flex;
    }

    .itpulse-topbar-address {
        max-width: 420px;
    }

    .itpulse-navbar-shell .container {
        max-width: 100%;
        padding-right: 24px;
        padding-left: 24px;
    }
}

@media (max-width: 991.98px) {
    body.nav-open {
        overflow: hidden;
    }

    .itpulse-topbar-address {
        display: none !important;
    }

    .navbar,
    .site-header.is-scrolled .navbar {
        min-height: 70px;
    }

    .itpulse-navbar-shell .container {
        padding-right: 18px;
        padding-left: 18px;
    }

    .navbar-collapse {
        max-height: calc(100vh - 116px);
        margin: 0 -18px;
        padding: 10px 18px 22px;
        overflow-y: auto;
        background: linear-gradient(180deg, rgba(6,26,49,.99), rgba(4,18,34,.99));
        box-shadow: 0 20px 42px rgba(0,0,0,.18);
    }

    .navbar .navbar-nav .nav-link,
    .site-header.is-scrolled .navbar .navbar-nav .nav-link {
        padding: 14px 5px;
        font-size: .97rem;
    }

    .navbar .dropdown-menu {
        padding: 8px;
        border: 1px solid rgba(255,255,255,.08) !important;
        background: rgba(255,255,255,.97);
        box-shadow: none !important;
    }

    .itpulse-nav-actions {
        justify-content: flex-start;
        padding-top: 2px;
    }

    #carouselId .carousel-control-prev,
    #carouselId .carousel-control-next {
        width: 46px;
        height: 46px;
        margin-top: -23px;
    }

    .facts-bar .container {
        margin-top: 0;
        border: 0;
        border-radius: 0;
    }

    .facts-bar .row > [class*="col-"] {
        width: 50%;
    }

    .facts-bar .counter {
        border-right: 1px solid rgba(255,255,255,.22);
        border-bottom: 1px solid rgba(255,255,255,.22);
    }

    .facts-bar .row > div:nth-child(2n) .counter {
        border-right: 0;
    }
}

@media (max-width: 767.98px) {
    .itpulse-topbar {
        display: none !important;
    }

    #carouselId .carousel-item,
    #carouselId .carousel-item > img {
        min-height: 610px;
        height: 610px;
    }

    #carouselId .carousel-item::after {
        background:
            linear-gradient(180deg, rgba(2,12,23,.18), rgba(2,12,23,.75)),
            linear-gradient(90deg, rgba(2,13,26,.93), rgba(3,23,43,.58));
    }

    #carouselId .carousel-caption {
        align-items: flex-end;
        padding: 64px 0 92px;
    }

    #carouselId .carousel-content h6 {
        margin-bottom: 16px;
        font-size: .72rem;
    }

    #carouselId .carousel-content h1 {
        margin-bottom: 18px !important;
        font-size: clamp(2.45rem, 12vw, 3.45rem) !important;
    }

    #carouselId .carousel-content p {
        margin-bottom: 24px !important;
        font-size: 1rem !important;
        line-height: 1.55;
    }

    #carouselId .carousel-content > a {
        width: calc(50% - 7px);
        margin-right: 9px;
    }

    #carouselId .carousel-content > a:nth-of-type(2n) {
        margin-right: 0;
    }

    #carouselId .carousel-content .btn {
        width: 100%;
        min-width: 0;
        padding-right: 14px !important;
        padding-left: 14px !important;
    }

    #carouselId .carousel-control-prev,
    #carouselId .carousel-control-next {
        display: none;
    }

    #carouselId .carousel-indicators {
        bottom: 44px;
    }

    .facts-bar .row > [class*="col-"] {
        width: 100%;
    }

    .facts-bar .counter,
    .facts-bar .row > div:nth-child(2n) .counter {
        min-height: 82px;
        border-right: 0;
        border-bottom: 1px solid rgba(255,255,255,.22);
    }

    .facts-bar .row > div:last-child .counter {
        border-bottom: 0;
    }

    .facts-bar .counter h5 {
        max-width: none;
    }

    .itpulse-footer .container {
        padding-top: 3.5rem !important;
        padding-bottom: 2rem;
    }

    .itpulse-footer-bottom {
        margin-top: 38px;
    }

    .back-to-top {
        right: 16px;
        bottom: 16px;
        width: 44px;
        height: 44px;
    }
}

@media (max-width: 420px) {
    #carouselId .carousel-content > a {
        width: 100%;
        margin-right: 0;
    }
}

@media (prefers-reduced-motion: reduce) {
    #carouselId .carousel-item > img,
    #carouselId .carousel-item.active > img {
        transform: none !important;
        transition: none !important;
    }
}


/* ========================================================================== 
   ITPulse 2.2 — homepage motion, interaction and continuity refinement
   ========================================================================== */

:root {
    --itpulse-transition: 320ms cubic-bezier(.22, 1, .36, 1);
    --itpulse-card-motion: 650ms cubic-bezier(.22, 1, .36, 1);
    --itpulse-reveal-motion: 1100ms cubic-bezier(.22, .75, .18, 1);
}

/* WOW/Animate reveals: the V1 behavior is retained, but it now unfolds more
   deliberately as content enters the viewport instead of visually popping. */
.wow.animated {
    animation-duration: 1.1s !important;
    animation-timing-function: cubic-bezier(.22, .75, .18, 1) !important;
    animation-fill-mode: both !important;
}

/* Avoid overly large empty bands between homepage sections while preserving
   enough whitespace to keep the page premium and readable. */
body.home #primary-content > section.py-5,
body.home #primary-content > .container-fluid.py-5 {
    padding-top: clamp(38px, 3.8vw, 60px) !important;
    padding-bottom: clamp(38px, 3.8vw, 60px) !important;
}

body.home #primary-content > section.my-5,
body.home #primary-content > .container-fluid.my-5,
body.home #primary-content > section.mb-5,
body.home #primary-content > .container-fluid.mb-5 {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
}

/* Hero controls must sit above the full-size caption overlay. In 2.1 the
   caption's stacking level could intercept pointer input over the arrows. */
#carouselId .carousel-control-prev,
#carouselId .carousel-control-next {
    z-index: 8;
    pointer-events: auto;
    cursor: pointer;
    transition:
        opacity 360ms cubic-bezier(.22, 1, .36, 1),
        background 360ms cubic-bezier(.22, 1, .36, 1),
        border-color 360ms cubic-bezier(.22, 1, .36, 1),
        transform 360ms cubic-bezier(.22, 1, .36, 1),
        box-shadow 360ms cubic-bezier(.22, 1, .36, 1);
}

#carouselId .carousel-control-prev:hover,
#carouselId .carousel-control-next:hover {
    box-shadow: 0 12px 32px rgba(0, 199, 230, .22);
}

/* Services — V1's top-to-bottom wash, rebuilt with GPU-friendly transform
   animation. Releasing hover naturally retracts the wash bottom-to-top. */
.services .services-item {
    overflow: hidden;
    transform: translateZ(0);
    transition:
        border-color var(--itpulse-card-motion),
        box-shadow var(--itpulse-card-motion),
        transform var(--itpulse-card-motion);
}

.services .services-item:hover {
    transform: translateY(-3px);
}

.services .services-content {
    position: relative;
    isolation: isolate;
    min-height: 100%;
}

.services .services-content::after {
    width: 100%;
    height: 100%;
    top: 0;
    bottom: auto;
    z-index: 0;
    border-radius: inherit;
    opacity: 1;
    transform: scaleY(0);
    transform-origin: 50% 0%;
    transition: transform 720ms cubic-bezier(.22, 1, .36, 1) !important;
    will-change: transform;
}

.services .services-item:hover .services-content::after {
    height: 100%;
    transform: scaleY(1);
}

.services .services-content-icon {
    position: relative;
    z-index: 1;
    display: flex;
    min-height: 100%;
    flex-direction: column;
    align-items: center;
}

.services .services-content-icon i,
.services .services-content-icon h4,
.services .services-content-icon p,
.services .services-content-icon .btn {
    transition:
        color 520ms cubic-bezier(.22, 1, .36, 1),
        border-color 520ms cubic-bezier(.22, 1, .36, 1),
        background 520ms cubic-bezier(.22, 1, .36, 1),
        transform 520ms cubic-bezier(.22, 1, .36, 1);
}

.services .services-content-icon p {
    min-height: 4.8em;
}

.services .services-content-icon .btn {
    margin-top: auto;
}

.services .services-item:hover .services-content-icon .btn {
    transform: translateY(-2px);
}

/* Projects — restore the cyan/navy corner geometry from V1. It is deliberately
   part of the composition at rest and fades/retracts when the project overlay
   is engaged. */
.projects .project-item {
    overflow: visible;
    border-color: transparent !important;
    background: transparent !important;
    box-shadow: none !important;
    transform: none !important;
}

.projects .project-img {
    position: relative;
    isolation: isolate;
    padding: 15px;
    transition: transform var(--itpulse-card-motion);
}

.projects .project-img::before,
.projects .project-img::after {
    z-index: 0;
    width: 142px;
    height: 142px;
    border-radius: 14px;
    opacity: 1;
    transform: scale(1);
    transition:
        opacity 560ms cubic-bezier(.22, 1, .36, 1),
        transform 650ms cubic-bezier(.22, 1, .36, 1);
    will-change: transform, opacity;
}

.projects .project-img > img {
    position: relative;
    z-index: 1;
    box-shadow: 0 16px 36px rgba(7, 26, 51, .09);
    transition:
        transform var(--itpulse-card-motion),
        box-shadow var(--itpulse-card-motion);
}

.projects .project-content {
    z-index: 3;
    opacity: 0;
    transform: scale(.96);
    transition:
        opacity 480ms cubic-bezier(.22, 1, .36, 1),
        transform 560ms cubic-bezier(.22, 1, .36, 1);
}

.projects .project-content a {
    box-shadow: 0 18px 48px rgba(2, 15, 31, .24);
    transition: transform 480ms cubic-bezier(.22, 1, .36, 1), box-shadow 480ms cubic-bezier(.22, 1, .36, 1);
}

.projects .project-item:hover .project-content,
.projects .project-item:focus-within .project-content {
    opacity: 1;
    transform: scale(1);
}

.projects .project-item:hover .project-img::before,
.projects .project-item:hover .project-img::after,
.projects .project-item:focus-within .project-img::before,
.projects .project-item:focus-within .project-img::after {
    opacity: 0;
    transform: scale(.82);
}

.projects .project-item:hover .project-img > img,
.projects .project-item:focus-within .project-img > img {
    transform: scale(1.025);
    box-shadow: 0 24px 56px rgba(7, 26, 51, .16);
}

.projects .project-item:hover .project-content a,
.projects .project-item:focus-within .project-content a {
    transform: translateY(-2px);
}

/* Blog share control — the label leaves to the right while the social actions
   travel in smoothly from the left, matching the V1 interaction without the
   old positional jump. */
.blog .blog-btn .blog-btn-icon {
    position: relative;
    width: 174px;
    min-width: 174px;
    height: 52px;
    padding: 0 !important;
    overflow: hidden;
}

.blog .blog-btn-icon .blog-icon-1,
.blog .blog-btn-icon .blog-icon-2 {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    transition:
        transform 720ms cubic-bezier(.22, 1, .36, 1),
        opacity 560ms ease;
    will-change: transform, opacity;
}

.blog .blog-btn-icon .blog-icon-1 {
    top: 0;
    right: auto;
    transform: translateX(0);
    opacity: 1;
}

.blog .blog-btn-icon .blog-icon-1 p {
    margin: 0 !important;
    white-space: nowrap;
}

.blog .blog-btn-icon .blog-icon-2 {
    top: 0;
    left: 0;
    padding: 0;
    transform: translateX(-115%);
    opacity: 0;
}

.blog .blog-btn-icon:hover .blog-icon-1,
.blog .blog-btn-icon:focus-within .blog-icon-1 {
    top: 0;
    right: auto;
    transform: translateX(115%);
    opacity: 0;
}

.blog .blog-btn-icon:hover .blog-icon-2,
.blog .blog-btn-icon:focus-within .blog-icon-2 {
    top: 0;
    left: 0;
    padding: 0;
    transform: translateX(0);
    opacity: 1;
}

.blog .blog-btn-icon .blog-icon-2 .btn {
    width: 40px;
    height: 40px;
    display: grid;
    place-items: center;
    margin: 0 2px !important;
    padding: 0;
    border-radius: 50%;
    transition: background 260ms ease, transform 260ms ease;
}

.blog .blog-btn-icon .blog-icon-2 .btn:hover,
.blog .blog-btn-icon .blog-icon-2 .btn:focus-visible {
    background: rgba(255,255,255,.14);
    transform: translateY(-2px);
}

/* Team — the portrait gently comes forward on hover instead of snapping. */
.team .team-item {
    overflow: visible;
    transition:
        border-color var(--itpulse-card-motion),
        box-shadow var(--itpulse-card-motion),
        transform var(--itpulse-card-motion);
}

.team .team-img {
    overflow: visible;
    transition: transform var(--itpulse-card-motion);
}

.team .team-img img {
    transform: translate3d(0, 0, 0) scale(1);
    transform-origin: 50% 50%;
    transition:
        transform 680ms cubic-bezier(.22, 1, .36, 1),
        border-color 560ms ease,
        box-shadow 680ms cubic-bezier(.22, 1, .36, 1) !important;
    will-change: transform;
}

.team .team-item:hover .team-img img,
.team .team-item:focus-within .team-img img {
    transform: translate3d(0, -7px, 0) scale(1.065);
    box-shadow: 0 28px 58px rgba(7, 26, 51, .22);
}

.team .team-item:hover h4,
.team .team-item:focus-within h4 {
    transition: color 480ms ease;
}

/* Card surfaces elsewhere should feel controlled rather than instant. */
.blog .blog-item,
.testimonial .testimonial-item,
.team .team-item {
    transition:
        transform var(--itpulse-card-motion),
        box-shadow var(--itpulse-card-motion),
        border-color var(--itpulse-card-motion);
}

/* Back-to-top button appearance is separate from the page scroll animation;
   the actual long-form easing is implemented in v2.js. */
.back-to-top {
    transition:
        opacity 360ms ease,
        visibility 360ms ease,
        transform 480ms cubic-bezier(.22, 1, .36, 1),
        background 320ms ease,
        box-shadow 320ms ease !important;
}

/* Admins designing/testing the site can preview the intended motion even when
   Windows/browser has globally requested reduced motion. Public visitors still
   retain the normal prefers-reduced-motion accessibility behavior. */
@media (prefers-reduced-motion: reduce) {
    html.itpulse-motion-preview .wow.animated {
        animation-duration: 1.1s !important;
        animation-iteration-count: 1 !important;
    }

    html.itpulse-motion-preview *,
    html.itpulse-motion-preview *::before,
    html.itpulse-motion-preview *::after {
        scroll-behavior: smooth;
    }
}

@media (max-width: 767.98px) {
    .projects .project-img::before,
    .projects .project-img::after {
        width: 108px;
        height: 108px;
    }

    .blog .blog-btn .blog-btn-icon {
        width: 154px;
        min-width: 154px;
    }
}


/* ==========================================================================
   Mobile QA refinements carried forward from the V2.2 live test
   ========================================================================== */
@media (max-width: 767.98px) {
    .facts-bar .row {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .facts-bar .row > [class*="col-"] {
        width: auto !important;
        min-width: 0;
    }

    .facts-bar .counter,
    .facts-bar .row > div:nth-child(2n) .counter {
        min-height: 92px;
        padding: 15px 12px;
        align-items: center;
        border-right: 0;
        border-bottom: 1px solid rgba(255,255,255,.22);
    }

    .facts-bar .row > div:nth-child(odd) .counter {
        border-right: 1px solid rgba(255,255,255,.22);
    }

    .facts-bar .row > div:nth-child(n+3) .counter {
        border-bottom: 0;
    }

    .facts-bar .counter-value {
        min-width: 44px;
        margin-right: 8px !important;
        font-size: 1.8rem;
    }

    .facts-bar .counter h5 {
        margin: 0 !important;
        max-width: none;
        font-size: .68rem;
        line-height: 1.35;
    }

    .back-to-top {
        right: 10px;
        bottom: 10px;
        width: 38px;
        height: 38px;
    }

    body.single-post #primary-content {
        overflow-x: clip;
    }

    body.single-post #primary-content .container-fluid,
    body.single-post #primary-content .container,
    body.single-post #primary-content .row,
    body.single-post #primary-content [class*="col-"] {
        max-width: 100%;
        min-width: 0;
    }

    body.single-post .comment-respond,
    body.single-post .comment-form,
    body.single-post .comment-form p {
        width: 100%;
        max-width: 100%;
        min-width: 0;
    }

    body.single-post .comment-form textarea,
    body.single-post .comment-form input[type="text"],
    body.single-post .comment-form input[type="email"],
    body.single-post .comment-form input[type="url"] {
        display: block;
        width: 100%;
        max-width: 100%;
        box-sizing: border-box;
    }

    body.single-post .comment-form textarea {
        min-height: 180px;
        resize: vertical;
    }

    body.single-post .blog-single-content img,
    body.single-post .blog-single-content iframe,
    body.single-post .blog-single-content video {
        max-width: 100%;
        height: auto;
    }

    body.single-post .blog-single-content pre,
    body.single-post .blog-single-content table {
        display: block;
        max-width: 100%;
        overflow-x: auto;
    }

    body.single-post .d-flex.justify-content-between.border-top {
        flex-wrap: wrap;
        gap: 12px;
    }
}

/* ========================================================================== 
   ITPulse 2.3 — Dedicated About page
   ========================================================================== */
.itpulse-about-page {
    --about-ink: #071a33;
    --about-muted: #52657a;
    --about-line: rgba(7, 26, 51, .10);
    --about-cyan: #08c6e3;
    overflow: hidden;
}

.about-page-hero {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    padding: clamp(82px, 8vw, 124px) 0 clamp(72px, 7vw, 106px);
    color: #fff;
    background:
        radial-gradient(circle at 78% 18%, rgba(8, 198, 227, .22), transparent 28%),
        linear-gradient(118deg, #03101e 0%, #082746 58%, #0a3857 100%);
}

.about-page-hero::before {
    content: "";
    position: absolute;
    width: 460px;
    height: 460px;
    right: -140px;
    bottom: -220px;
    border: 1px solid rgba(255,255,255,.10);
    border-radius: 50%;
    box-shadow:
        0 0 0 48px rgba(255,255,255,.025),
        0 0 0 96px rgba(255,255,255,.018);
    pointer-events: none;
}

.about-page-hero-grid {
    position: absolute;
    inset: 0;
    z-index: -1;
    opacity: .13;
    background-image:
        linear-gradient(rgba(255,255,255,.09) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,.09) 1px, transparent 1px);
    background-size: 58px 58px;
    mask-image: linear-gradient(90deg, #000 0%, rgba(0,0,0,.75) 65%, transparent 100%);
}

.about-breadcrumb {
    display: flex;
    gap: 9px;
    align-items: center;
    margin-bottom: 24px;
    color: rgba(255,255,255,.58);
    font-size: .88rem;
}

.about-breadcrumb a {
    color: rgba(255,255,255,.78);
}

.about-breadcrumb a:hover {
    color: var(--about-cyan);
}

.itpulse-kicker {
    display: inline-flex;
    align-items: center;
    min-height: 28px;
    margin-bottom: 16px;
    padding: 6px 12px;
    border: 1px solid rgba(8,198,227,.22);
    border-radius: 999px;
    color: #067e9a;
    background: rgba(8,198,227,.10);
    font-size: .73rem;
    font-weight: 800;
    letter-spacing: .13em;
    line-height: 1;
    text-transform: uppercase;
}

.about-page-hero .itpulse-kicker,
.itpulse-kicker-dark {
    color: #72efff;
    border-color: rgba(114,239,255,.22);
    background: rgba(8,198,227,.10);
}

.about-page-hero h1 {
    max-width: 920px;
    margin: 0 0 22px;
    color: #fff;
    font-family: Saira, Inter, sans-serif;
    font-size: clamp(2.8rem, 6vw, 5.8rem);
    font-weight: 700;
    letter-spacing: -.055em;
    line-height: .98;
}

.about-page-hero-copy {
    max-width: 760px;
    margin: 0;
    color: rgba(255,255,255,.78);
    font-size: clamp(1rem, 1.5vw, 1.16rem);
    line-height: 1.75;
}

.about-hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
    margin-top: 34px;
}

.about-page-hero .btn-outline-light {
    border-color: rgba(255,255,255,.28);
    color: #fff;
}

.about-page-hero .btn-outline-light:hover {
    border-color: var(--about-cyan);
    background: rgba(8,198,227,.09);
    color: #fff;
}

.about-hero-mark {
    position: relative;
    width: min(300px, 100%);
    aspect-ratio: 1;
    margin-left: auto;
    display: grid;
    place-items: center;
    border: 1px solid rgba(255,255,255,.12);
    border-radius: 50%;
    background: radial-gradient(circle, rgba(8,198,227,.12), transparent 66%);
    box-shadow: inset 0 0 70px rgba(8,198,227,.08);
}

.about-hero-mark::before,
.about-hero-mark::after,
.about-hero-mark-ring {
    content: "";
    position: absolute;
    border: 1px solid rgba(255,255,255,.12);
    border-radius: 50%;
}

.about-hero-mark::before { inset: 28px; }
.about-hero-mark::after { inset: 62px; }
.about-hero-mark-ring { inset: 92px; border-color: rgba(8,198,227,.42); }

.about-hero-mark i {
    position: relative;
    z-index: 2;
    color: var(--about-cyan);
    font-size: 4.4rem;
    filter: drop-shadow(0 14px 28px rgba(8,198,227,.30));
}

.about-intro-section,
.about-capabilities-section,
.about-spectrum-section,
.about-process-section,
.about-values-section,
.about-editor-content-section,
.about-cta-section {
    padding: clamp(62px, 7vw, 96px) 0;
}

.about-intro-section {
    background: #fff;
}

.about-image-composition {
    position: relative;
    min-height: 550px;
}

.about-image-main,
.about-image-accent {
    position: absolute;
    display: block;
    object-fit: cover;
    border-radius: 24px;
    box-shadow: 0 24px 70px rgba(7,26,51,.13);
}

.about-image-main {
    inset: 0 90px 60px 0;
    width: calc(100% - 90px);
    height: calc(100% - 60px);
}

.about-image-accent {
    right: 0;
    bottom: 0;
    width: 48%;
    height: 46%;
    border: 8px solid #fff;
}

.about-image-badge {
    position: absolute;
    left: 30px;
    bottom: 20px;
    display: flex;
    gap: 12px;
    align-items: center;
    max-width: 270px;
    padding: 16px 18px;
    border: 1px solid rgba(255,255,255,.17);
    border-radius: 16px;
    color: #fff;
    background: rgba(5,27,52,.94);
    box-shadow: 0 16px 38px rgba(7,26,51,.18);
    backdrop-filter: blur(12px);
}

.about-image-badge i {
    color: var(--about-cyan);
    font-size: 1.55rem;
}

.about-image-badge span {
    font-size: .88rem;
    font-weight: 700;
    line-height: 1.45;
}

.about-section-title {
    max-width: 820px;
    margin: 0 0 22px;
    color: var(--about-ink);
    font-family: Saira, Inter, sans-serif;
    font-size: clamp(2rem, 4vw, 3.5rem);
    font-weight: 700;
    letter-spacing: -.045em;
    line-height: 1.08;
}

.about-intro-section p,
.about-section-heading p,
.about-process-intro,
.about-values-panel p,
.about-cta-card p {
    color: var(--about-muted);
    font-size: 1rem;
    line-height: 1.78;
}

.about-principles {
    display: grid;
    gap: 13px;
    margin-top: 26px;
}

.about-principle {
    display: flex;
    gap: 12px;
    align-items: center;
    color: var(--about-ink);
    font-weight: 650;
}

.about-principle i {
    color: var(--about-cyan);
}

.about-capabilities-section {
    background:
        radial-gradient(circle at 10% 10%, rgba(8,198,227,.08), transparent 24%),
        linear-gradient(180deg, #f5fafc 0%, #eef6f9 100%);
}

.about-section-heading {
    max-width: 820px;
    margin: 0 auto 46px;
}

.about-section-heading .about-section-title {
    margin-left: auto;
    margin-right: auto;
}

.about-capability-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
}

.about-capability-card {
    position: relative;
    min-height: 170px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    padding: 26px;
    overflow: hidden;
    border: 1px solid rgba(7,26,51,.08);
    border-radius: 20px;
    color: var(--about-ink);
    background: rgba(255,255,255,.88);
    box-shadow: 0 12px 34px rgba(7,26,51,.055);
    transition:
        transform 520ms cubic-bezier(.22,1,.36,1),
        box-shadow 520ms cubic-bezier(.22,1,.36,1),
        border-color 520ms cubic-bezier(.22,1,.36,1),
        background 520ms cubic-bezier(.22,1,.36,1);
}

.about-capability-card::before {
    content: "";
    position: absolute;
    inset: auto -40px -58px auto;
    width: 140px;
    height: 140px;
    border-radius: 50%;
    background: rgba(8,198,227,.08);
    transition: transform 600ms cubic-bezier(.22,1,.36,1);
}

.about-capability-card:hover {
    transform: translateY(-6px);
    border-color: rgba(8,198,227,.30);
    color: var(--about-ink);
    background: #fff;
    box-shadow: 0 24px 60px rgba(7,26,51,.12);
}

.about-capability-card:hover::before {
    transform: scale(1.22);
}

.about-capability-icon {
    width: 54px;
    height: 54px;
    display: grid;
    place-items: center;
    border-radius: 15px;
    color: var(--about-cyan);
    background: #082845;
    box-shadow: 0 12px 24px rgba(7,26,51,.12);
}

.about-capability-icon i {
    font-size: 1.45rem;
}

.about-capability-title {
    position: relative;
    z-index: 1;
    max-width: 190px;
    margin-top: 25px;
    font-family: Saira, Inter, sans-serif;
    font-size: 1.12rem;
    font-weight: 700;
    line-height: 1.25;
}

.about-capability-arrow {
    position: absolute;
    right: 22px;
    bottom: 20px;
    z-index: 1;
    color: #07a9c5;
    font-size: 1.35rem;
    transition: transform 400ms cubic-bezier(.22,1,.36,1);
}

.about-capability-card:hover .about-capability-arrow {
    transform: translateX(5px);
}

.about-process-section {
    background: #fff;
}

.about-process-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 18px;
}

.about-process-card {
    position: relative;
    min-height: 305px;
    padding: 28px;
    overflow: hidden;
    border: 1px solid rgba(7,26,51,.09);
    border-radius: 22px;
    background: #fff;
    box-shadow: 0 14px 42px rgba(7,26,51,.06);
    transition: transform 520ms cubic-bezier(.22,1,.36,1), box-shadow 520ms cubic-bezier(.22,1,.36,1);
}

.about-process-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 26px 66px rgba(7,26,51,.12);
}

.about-process-number {
    position: absolute;
    top: 20px;
    right: 22px;
    color: rgba(7,26,51,.08);
    font-family: Saira, Inter, sans-serif;
    font-size: 3rem;
    font-weight: 800;
}

.about-process-card > i {
    width: 58px;
    height: 58px;
    display: grid;
    place-items: center;
    margin-bottom: 58px;
    border-radius: 16px;
    color: var(--about-cyan);
    background: #072846;
    font-size: 1.45rem;
}

.about-process-card h3,
.about-value-item h3 {
    color: var(--about-ink);
    font-family: Saira, Inter, sans-serif;
    font-weight: 700;
    letter-spacing: -.025em;
}

.about-process-card h3 {
    margin-bottom: 12px;
    font-size: 1.35rem;
}

.about-process-card p {
    margin: 0;
    color: var(--about-muted);
    line-height: 1.68;
}

.about-values-section {
    background: linear-gradient(180deg, #f6fafc, #fff);
}

.about-values-panel {
    padding: clamp(34px, 5vw, 68px);
    overflow: hidden;
    border-radius: 30px;
    color: #fff;
    background:
        radial-gradient(circle at 88% 10%, rgba(8,198,227,.18), transparent 24%),
        linear-gradient(135deg, #03101e, #082b4c 68%, #073956);
    box-shadow: 0 30px 90px rgba(7,26,51,.16);
}

.about-values-panel h2 {
    margin: 0 0 20px;
    color: #fff;
    font-family: Saira, Inter, sans-serif;
    font-size: clamp(2rem, 4vw, 3.25rem);
    letter-spacing: -.045em;
    line-height: 1.08;
}

.about-values-panel p {
    color: rgba(255,255,255,.72);
}

.about-values-tagline {
    margin-top: 28px;
    color: #6eebfb !important;
    font-family: Saira, Inter, sans-serif;
    font-size: 1.05rem !important;
    font-weight: 700;
}

.about-values-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}

.about-value-item {
    display: grid;
    grid-template-columns: 48px 1fr;
    gap: 14px;
    padding: 20px;
    border: 1px solid rgba(255,255,255,.10);
    border-radius: 18px;
    background: rgba(255,255,255,.045);
    backdrop-filter: blur(8px);
}

.about-value-item > i {
    width: 44px;
    height: 44px;
    display: grid;
    place-items: center;
    border-radius: 13px;
    color: #071a33;
    background: var(--about-cyan);
}

.about-value-item h3 {
    margin: 1px 0 6px;
    color: #fff;
    font-size: 1rem;
}

.about-value-item p {
    margin: 0;
    font-size: .88rem;
    line-height: 1.58;
}

.about-editor-content-section {
    padding-top: 0;
    background: #fff;
}

.about-cta-section {
    padding-top: 10px;
    background: #fff;
}

.about-cta-card {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 36px;
    align-items: center;
    padding: clamp(30px, 5vw, 58px);
    border: 1px solid rgba(7,26,51,.08);
    border-radius: 26px;
    background:
        linear-gradient(120deg, rgba(8,198,227,.08), transparent 34%),
        #f4fafc;
}

.about-cta-card h2 {
    max-width: 820px;
    margin: 0 0 10px;
    color: var(--about-ink);
    font-family: Saira, Inter, sans-serif;
    font-size: clamp(1.8rem, 3vw, 2.8rem);
    letter-spacing: -.04em;
    line-height: 1.12;
}

.about-cta-card p {
    max-width: 760px;
    margin: 0;
}

.about-cta-actions {
    min-width: 225px;
    display: grid;
    gap: 16px;
    justify-items: stretch;
}

.about-phone-link {
    display: flex;
    gap: 9px;
    justify-content: center;
    align-items: center;
    color: var(--about-ink);
    font-weight: 700;
}

.about-phone-link i {
    color: var(--about-cyan);
}

@media (max-width: 1199.98px) {
    .about-capability-grid,
    .about-process-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 991.98px) {
    .about-page-hero {
        padding-top: 72px;
        padding-bottom: 72px;
    }

    .about-page-hero h1 {
        max-width: 740px;
    }

    .about-image-composition {
        min-height: 490px;
    }

    .about-values-grid {
        margin-top: 10px;
    }

    .about-cta-card {
        grid-template-columns: 1fr;
    }

    .about-cta-actions {
        min-width: 0;
        max-width: 300px;
    }
}

@media (max-width: 767.98px) {
    .about-page-hero {
        padding: 62px 0 58px;
    }

    .about-page-hero-grid {
        background-size: 38px 38px;
    }

    .about-breadcrumb {
        margin-bottom: 18px;
        font-size: .78rem;
    }

    .about-page-hero h1 {
        font-size: clamp(2.35rem, 12vw, 3.35rem);
        line-height: 1.02;
    }

    .about-page-hero-copy {
        font-size: .95rem;
        line-height: 1.68;
    }

    .about-hero-actions {
        display: grid;
        grid-template-columns: 1fr;
        gap: 10px;
        margin-top: 26px;
    }

    .about-hero-actions .btn {
        width: 100%;
    }

    .about-intro-section,
    .about-capabilities-section,
    .about-spectrum-section,
    .about-process-section,
    .about-values-section,
    .about-editor-content-section,
    .about-cta-section {
        padding: 52px 0;
    }

    .about-image-composition {
        min-height: 370px;
    }

    .about-image-main {
        inset: 0 42px 42px 0;
        width: calc(100% - 42px);
        height: calc(100% - 42px);
    }

    .about-image-accent {
        width: 46%;
        height: 40%;
        border-width: 5px;
        border-radius: 16px;
    }

    .about-image-badge {
        left: 14px;
        bottom: 10px;
        max-width: 210px;
        padding: 12px 14px;
    }

    .about-image-badge span {
        font-size: .76rem;
    }

    .about-section-title {
        font-size: clamp(1.85rem, 9vw, 2.55rem);
    }

    .about-capability-grid,
    .about-process-grid,
    .about-values-grid {
        grid-template-columns: 1fr;
    }

    .about-capability-card {
        min-height: 138px;
        padding: 20px;
    }

    .about-capability-title {
        margin-top: 18px;
    }

    .about-process-card {
        min-height: 0;
        padding: 24px;
    }

    .about-process-card > i {
        margin-bottom: 34px;
    }

    .about-values-panel {
        padding: 28px 20px;
        border-radius: 22px;
    }

    .about-value-item {
        grid-template-columns: 44px 1fr;
        padding: 16px;
    }

    .about-cta-card {
        padding: 26px 20px;
        border-radius: 20px;
    }

    .about-cta-actions {
        max-width: none;
    }
}

@media (hover: none), (pointer: coarse) {
    .about-capability-card:hover,
    .about-process-card:hover {
        transform: none;
    }
}

/* =========================================================
   V2.3.1 — About capability spectrum
   ========================================================= */

.about-spectrum-section {
    padding: clamp(62px, 7vw, 96px) 0;
    background: #fff;
}

.about-spectrum-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 22px;
}

.about-spectrum-card {
    position: relative;
    padding: clamp(28px, 4vw, 42px);
    overflow: hidden;
    border: 1px solid rgba(7,26,51,.09);
    border-radius: 26px;
    background: #f8fbfd;
    box-shadow: 0 18px 56px rgba(7,26,51,.07);
    transition:
        transform 560ms cubic-bezier(.22,1,.36,1),
        box-shadow 560ms cubic-bezier(.22,1,.36,1),
        border-color 560ms cubic-bezier(.22,1,.36,1);
}

.about-spectrum-card::after {
    content: "";
    position: absolute;
    width: 220px;
    height: 220px;
    right: -85px;
    top: -85px;
    border-radius: 50%;
    background: rgba(8,198,227,.08);
    transition: transform 650ms cubic-bezier(.22,1,.36,1);
}

.about-spectrum-card--digital::after {
    background: rgba(7,40,70,.06);
}

.about-spectrum-card:hover {
    transform: translateY(-7px);
    border-color: rgba(8,198,227,.28);
    box-shadow: 0 30px 78px rgba(7,26,51,.13);
}

.about-spectrum-card:hover::after {
    transform: scale(1.18);
}

.about-spectrum-card-head {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: 64px 1fr;
    gap: 18px;
    align-items: center;
    margin-bottom: 22px;
}

.about-spectrum-icon {
    width: 64px;
    height: 64px;
    display: grid;
    place-items: center;
    border-radius: 18px;
    color: var(--about-cyan);
    background: #072846;
    box-shadow: 0 14px 30px rgba(7,26,51,.14);
}

.about-spectrum-icon i {
    font-size: 1.65rem;
}

.about-spectrum-eyebrow {
    display: block;
    margin-bottom: 4px;
    color: #08a9c5;
    font-size: .75rem;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.about-spectrum-card h3,
.about-enablement-panel h3 {
    margin: 0;
    color: var(--about-ink);
    font-family: Saira, Inter, sans-serif;
    font-weight: 700;
    letter-spacing: -.03em;
}

.about-spectrum-card h3 {
    font-size: clamp(1.5rem, 2.4vw, 2rem);
    line-height: 1.16;
}

.about-spectrum-card > p {
    position: relative;
    z-index: 1;
    margin-bottom: 22px;
    color: var(--about-muted);
    line-height: 1.7;
}

.about-spectrum-list {
    position: relative;
    z-index: 1;
    display: grid;
    gap: 11px;
    padding: 0;
    margin: 0;
    list-style: none;
}

.about-spectrum-list li {
    position: relative;
    padding-left: 24px;
    color: #26384c;
    line-height: 1.55;
}

.about-spectrum-list li::before {
    content: "";
    position: absolute;
    left: 0;
    top: .62em;
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: var(--about-cyan);
    box-shadow: 0 0 0 5px rgba(8,198,227,.10);
}

.about-enablement-panel {
    display: grid;
    grid-template-columns: minmax(260px, .85fr) minmax(0, 1.65fr);
    gap: 28px;
    align-items: center;
    margin-top: 24px;
    padding: clamp(26px, 4vw, 38px);
    border-radius: 24px;
    color: #fff;
    background:
        radial-gradient(circle at 92% 15%, rgba(8,198,227,.18), transparent 28%),
        linear-gradient(135deg, #031321, #082b4c 72%);
    box-shadow: 0 26px 76px rgba(7,26,51,.14);
}

.about-enablement-intro h3 {
    color: #fff;
    font-size: clamp(1.55rem, 2.5vw, 2.15rem);
    line-height: 1.18;
}

.about-enablement-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.about-enablement-item {
    display: grid;
    grid-template-columns: 42px 1fr;
    gap: 12px;
    align-items: start;
    padding: 16px;
    border: 1px solid rgba(255,255,255,.10);
    border-radius: 16px;
    background: rgba(255,255,255,.045);
    transition:
        transform 450ms cubic-bezier(.22,1,.36,1),
        background 450ms cubic-bezier(.22,1,.36,1),
        border-color 450ms cubic-bezier(.22,1,.36,1);
}

.about-enablement-item:hover {
    transform: translateY(-4px);
    border-color: rgba(8,198,227,.30);
    background: rgba(255,255,255,.075);
}

.about-enablement-item > i {
    width: 42px;
    height: 42px;
    display: grid;
    place-items: center;
    border-radius: 12px;
    color: #6eebfb;
    background: rgba(8,198,227,.10);
}

.about-enablement-item strong,
.about-enablement-item small {
    display: block;
}

.about-enablement-item strong {
    color: #fff;
    font-size: .96rem;
    line-height: 1.3;
}

.about-enablement-item small {
    margin-top: 5px;
    color: rgba(255,255,255,.66);
    font-size: .78rem;
    line-height: 1.45;
}

@media (max-width: 991.98px) {
    .about-spectrum-grid,
    .about-enablement-panel {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 767.98px) {
    .about-spectrum-section {
        padding: 52px 0;
    }

    .about-spectrum-grid,
    .about-enablement-grid {
        grid-template-columns: 1fr;
    }

    .about-spectrum-card {
        padding: 24px;
        border-radius: 20px;
    }

    .about-spectrum-card-head {
        grid-template-columns: 54px 1fr;
        gap: 14px;
    }

    .about-spectrum-icon {
        width: 54px;
        height: 54px;
        border-radius: 15px;
    }

    .about-enablement-panel {
        padding: 24px 20px;
        border-radius: 20px;
    }
}

/* ========================================================================== 
   ITPulse 2.4 — Services architecture
   ========================================================================== */

.itpulse-services-page,
.itpulse-service-detail {
    --service-ink: #071a33;
    --service-muted: #52657a;
    --service-line: rgba(7, 26, 51, .10);
    --service-cyan: #08c6e3;
    --service-deep: #062541;
    overflow: hidden;
}

.itpulse-page-breadcrumb {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
    align-items: center;
    margin-bottom: 24px;
    color: rgba(255,255,255,.58);
    font-size: .88rem;
}

.itpulse-page-breadcrumb a {
    color: rgba(255,255,255,.78);
}

.itpulse-page-breadcrumb a:hover {
    color: #72efff;
}

.itpulse-kicker--dark {
    color: #72efff;
    border-color: rgba(114,239,255,.22);
    background: rgba(8,198,227,.10);
}

.itpulse-section-heading {
    max-width: 790px;
    margin: 0 auto clamp(34px, 5vw, 58px);
}

.itpulse-section-heading h2,
.services-extended-section h2,
.itpulse-service-cta h2,
.service-overview-section h2,
.service-outcomes-copy h2 {
    margin: 0;
    color: var(--service-ink);
    font-family: Saira, Inter, sans-serif;
    font-weight: 700;
    letter-spacing: -.04em;
    line-height: 1.08;
}

.itpulse-section-heading h2,
.services-extended-section h2,
.service-overview-section h2,
.service-outcomes-copy h2 {
    font-size: clamp(2rem, 4vw, 3.4rem);
}

.itpulse-section-heading p {
    max-width: 710px;
    margin: 18px auto 0;
    color: var(--service-muted);
    line-height: 1.7;
}

/* Services landing hero */
.services-page-hero,
.service-detail-hero {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    color: #fff;
    background:
        radial-gradient(circle at 82% 22%, rgba(8,198,227,.24), transparent 28%),
        linear-gradient(118deg, #03101e 0%, #082746 58%, #0a3857 100%);
}

.services-page-hero {
    padding: clamp(78px, 8vw, 118px) 0 clamp(76px, 7vw, 108px);
}

.service-detail-hero {
    padding: clamp(72px, 7vw, 106px) 0 clamp(68px, 6vw, 96px);
}

.services-page-hero::before,
.service-detail-hero::before {
    content: "";
    position: absolute;
    width: 460px;
    height: 460px;
    right: -150px;
    bottom: -250px;
    border: 1px solid rgba(255,255,255,.10);
    border-radius: 50%;
    box-shadow:
        0 0 0 48px rgba(255,255,255,.025),
        0 0 0 96px rgba(255,255,255,.018);
    pointer-events: none;
}

.services-hero-grid,
.service-detail-grid {
    position: absolute;
    inset: 0;
    z-index: -1;
    opacity: .12;
    background-image:
        linear-gradient(rgba(255,255,255,.09) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,.09) 1px, transparent 1px);
    background-size: 58px 58px;
    mask-image: linear-gradient(90deg, #000 0%, rgba(0,0,0,.72) 62%, transparent 100%);
}

.services-page-hero .itpulse-kicker,
.service-detail-hero .itpulse-kicker {
    color: #72efff;
    border-color: rgba(114,239,255,.22);
    background: rgba(8,198,227,.10);
}

.services-page-hero h1,
.service-detail-hero h1 {
    margin: 0 0 22px;
    color: #fff;
    font-family: Saira, Inter, sans-serif;
    font-weight: 700;
    letter-spacing: -.055em;
    line-height: .98;
}

.services-page-hero h1 {
    max-width: 900px;
    font-size: clamp(2.7rem, 5.4vw, 5.25rem);
}

.service-detail-hero h1 {
    max-width: 920px;
    font-size: clamp(2.65rem, 5.2vw, 5rem);
}

.services-hero-copy,
.service-detail-hero-copy {
    max-width: 760px;
    margin: 0;
    color: rgba(255,255,255,.78);
    font-size: clamp(1rem, 1.4vw, 1.14rem);
    line-height: 1.75;
}

.services-hero-actions,
.service-detail-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
    margin-top: 34px;
}

.services-page-hero .btn-outline-light,
.service-detail-hero .btn-outline-light {
    border-color: rgba(255,255,255,.28);
    color: #fff;
}

.services-page-hero .btn-outline-light:hover,
.service-detail-hero .btn-outline-light:hover {
    border-color: var(--service-cyan);
    background: rgba(255,255,255,.06);
}

.services-system-visual {
    position: relative;
    width: min(390px, 90%);
    aspect-ratio: 1;
    margin-left: auto;
    border: 1px solid rgba(255,255,255,.10);
    border-radius: 50%;
    box-shadow:
        inset 0 0 0 34px rgba(255,255,255,.018),
        inset 0 0 0 72px rgba(8,198,227,.025),
        0 34px 90px rgba(0,0,0,.20);
}

.services-system-visual::before,
.services-system-visual::after {
    content: "";
    position: absolute;
    inset: 17%;
    border: 1px dashed rgba(114,239,255,.26);
    border-radius: 50%;
    animation: itpulseOrbit 18s linear infinite;
}

.services-system-visual::after {
    inset: 32%;
    animation-direction: reverse;
    animation-duration: 12s;
}

.services-system-core {
    position: absolute;
    inset: 50% auto auto 50%;
    transform: translate(-50%, -50%);
    width: 132px;
    height: 132px;
    display: grid;
    place-content: center;
    border-radius: 34px;
    color: #fff;
    background: linear-gradient(145deg, rgba(8,198,227,.22), rgba(255,255,255,.045));
    border: 1px solid rgba(114,239,255,.24);
    box-shadow: 0 20px 50px rgba(0,0,0,.20);
    font-family: Saira, Inter, sans-serif;
    font-size: 1.35rem;
}

.services-system-core strong {
    color: #31d7ed;
}

.services-orbit {
    position: absolute;
    width: 58px;
    height: 58px;
    display: grid;
    place-items: center;
    border: 1px solid rgba(255,255,255,.13);
    border-radius: 18px;
    color: #74efff;
    background: rgba(3,19,33,.82);
    box-shadow: 0 16px 36px rgba(0,0,0,.20);
}

.services-orbit i { font-size: 1.3rem; }
.services-orbit--1 { top: 3%; left: 43%; }
.services-orbit--2 { top: 25%; right: -2%; }
.services-orbit--3 { bottom: 8%; right: 18%; }
.services-orbit--4 { bottom: 8%; left: 15%; }
.services-orbit--5 { top: 27%; left: -3%; }

@keyframes itpulseOrbit {
    to { transform: rotate(360deg); }
}

/* Landing cards */
.services-core-section {
    padding: clamp(62px, 7vw, 96px) 0;
    background: #f7fbfd;
}

.services-card-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 22px;
}

.service-modern-card {
    position: relative;
    display: flex;
    min-height: 360px;
    flex-direction: column;
    padding: 32px;
    overflow: hidden;
    border: 1px solid var(--service-line);
    border-radius: 24px;
    color: var(--service-ink);
    background: #fff;
    box-shadow: 0 18px 48px rgba(7,26,51,.06);
    transition:
        transform 560ms cubic-bezier(.22,1,.36,1),
        box-shadow 560ms cubic-bezier(.22,1,.36,1),
        border-color 560ms cubic-bezier(.22,1,.36,1),
        color 560ms cubic-bezier(.22,1,.36,1);
}

.service-modern-card::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 0;
    background:
        radial-gradient(circle at 88% 12%, rgba(8,198,227,.18), transparent 28%),
        linear-gradient(145deg, #082846, #041827);
    transform: scaleY(0);
    transform-origin: top;
    transition: transform 620ms cubic-bezier(.22,1,.36,1);
}

.service-modern-card > * {
    position: relative;
    z-index: 1;
}

.service-modern-card:hover,
.service-modern-card:focus-visible {
    transform: translateY(-8px);
    border-color: rgba(8,198,227,.26);
    color: #fff;
    box-shadow: 0 30px 74px rgba(7,26,51,.14);
}

.service-modern-card:hover::before,
.service-modern-card:focus-visible::before {
    transform: scaleY(1);
}

.service-card-index {
    position: absolute;
    top: 22px;
    right: 24px;
    color: rgba(7,26,51,.13);
    font-family: Saira, Inter, sans-serif;
    font-size: 2rem;
    font-weight: 800;
    transition: color 420ms ease;
}

.service-modern-card:hover .service-card-index,
.service-modern-card:focus-visible .service-card-index {
    color: rgba(255,255,255,.13);
}

.service-card-icon {
    width: 66px;
    height: 66px;
    display: grid;
    place-items: center;
    margin-bottom: 25px;
    border-radius: 18px;
    color: var(--service-cyan);
    background: #072846;
    box-shadow: 0 14px 30px rgba(7,26,51,.14);
    transition: transform 540ms cubic-bezier(.22,1,.36,1), background 420ms ease;
}

.service-card-icon i { font-size: 1.65rem; }

.service-modern-card:hover .service-card-icon,
.service-modern-card:focus-visible .service-card-icon {
    transform: translateY(-3px) rotate(-2deg) scale(1.05);
    background: rgba(255,255,255,.09);
}

.service-card-eyebrow {
    margin-bottom: 7px;
    color: #079ab6;
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .09em;
    text-transform: uppercase;
}

.service-modern-card:hover .service-card-eyebrow,
.service-modern-card:focus-visible .service-card-eyebrow {
    color: #75efff;
}

.service-modern-card h3 {
    margin: 0 0 16px;
    color: inherit;
    font-family: Saira, Inter, sans-serif;
    font-size: clamp(1.35rem, 2vw, 1.75rem);
    font-weight: 700;
    line-height: 1.18;
}

.service-modern-card p {
    margin: 0 0 24px;
    color: var(--service-muted);
    line-height: 1.65;
    transition: color 420ms ease;
}

.service-modern-card:hover p,
.service-modern-card:focus-visible p {
    color: rgba(255,255,255,.72);
}

.service-card-link {
    margin-top: auto;
    color: #087f99;
    font-weight: 800;
    transition: color 420ms ease, transform 420ms cubic-bezier(.22,1,.36,1);
}

.service-modern-card:hover .service-card-link,
.service-modern-card:focus-visible .service-card-link {
    color: #75efff;
    transform: translateX(5px);
}

/* Extended capability layer */
.services-extended-section {
    padding: clamp(68px, 7vw, 100px) 0;
    color: #fff;
    background:
        radial-gradient(circle at 92% 12%, rgba(8,198,227,.17), transparent 26%),
        linear-gradient(135deg, #031321, #082a49 72%);
}

.services-extended-section h2 {
    color: #fff;
}

.services-extended-lead {
    margin: 0;
    color: rgba(255,255,255,.66);
    line-height: 1.7;
}

.services-extended-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 20px;
}

.services-extended-card {
    padding: 28px;
    border: 1px solid rgba(255,255,255,.10);
    border-radius: 22px;
    background: rgba(255,255,255,.045);
    transition:
        transform 520ms cubic-bezier(.22,1,.36,1),
        border-color 520ms ease,
        background 520ms ease;
}

.services-extended-card:hover {
    transform: translateY(-7px);
    border-color: rgba(114,239,255,.28);
    background: rgba(255,255,255,.072);
}

.services-extended-icon {
    width: 56px;
    height: 56px;
    display: grid;
    place-items: center;
    margin-bottom: 22px;
    border-radius: 16px;
    color: #75efff;
    background: rgba(8,198,227,.10);
}

.services-extended-card h3 {
    margin: 0 0 14px;
    color: #fff;
    font-family: Saira, Inter, sans-serif;
    font-size: 1.45rem;
    font-weight: 700;
}

.services-extended-card p {
    color: rgba(255,255,255,.68);
    line-height: 1.62;
}

.services-extended-card ul {
    display: grid;
    gap: 9px;
    padding: 0;
    margin: 20px 0 0;
    list-style: none;
}

.services-extended-card li {
    position: relative;
    padding-left: 22px;
    color: rgba(255,255,255,.78);
    font-size: .92rem;
    line-height: 1.45;
}

.services-extended-card li::before {
    content: "";
    position: absolute;
    left: 0;
    top: .58em;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--service-cyan);
}

/* Method */
.services-method-section,
.service-process-section {
    padding: clamp(62px, 7vw, 94px) 0;
    background: #fff;
}

.services-method-grid,
.service-process-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 18px;
}

.services-method-card,
.service-process-card {
    position: relative;
    min-height: 260px;
    padding: 28px;
    overflow: hidden;
    border: 1px solid var(--service-line);
    border-radius: 22px;
    background: #f8fbfd;
    transition:
        transform 520ms cubic-bezier(.22,1,.36,1),
        box-shadow 520ms cubic-bezier(.22,1,.36,1),
        border-color 520ms ease;
}

.services-method-card:hover,
.service-process-card:hover {
    transform: translateY(-7px);
    border-color: rgba(8,198,227,.25);
    box-shadow: 0 24px 60px rgba(7,26,51,.10);
}

.services-method-card > span,
.service-process-number {
    display: block;
    margin-bottom: 32px;
    color: var(--service-cyan);
    font-family: Saira, Inter, sans-serif;
    font-size: 1.8rem;
    font-weight: 800;
}

.services-method-card h3,
.service-process-card h3 {
    color: var(--service-ink);
    font-family: Saira, Inter, sans-serif;
    font-size: 1.35rem;
    font-weight: 700;
}

.services-method-card p,
.service-process-card p {
    margin: 0;
    color: var(--service-muted);
    line-height: 1.6;
}

/* Shared CTA */
.itpulse-service-cta-section {
    padding: clamp(34px, 5vw, 64px) 0 clamp(68px, 7vw, 96px);
    background: #fff;
}

.itpulse-service-cta {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 38px;
    align-items: center;
    padding: clamp(30px, 5vw, 54px);
    border-radius: 28px;
    color: #fff;
    background:
        radial-gradient(circle at 92% 20%, rgba(8,198,227,.18), transparent 26%),
        linear-gradient(135deg, #031321, #082a49 72%);
    box-shadow: 0 28px 78px rgba(7,26,51,.16);
}

.itpulse-service-cta h2 {
    max-width: 820px;
    color: #fff;
    font-size: clamp(1.8rem, 3.4vw, 3rem);
}

.itpulse-service-cta p {
    max-width: 760px;
    margin: 16px 0 0;
    color: rgba(255,255,255,.66);
    line-height: 1.65;
}

/* Individual service pages */
.service-detail-emblem {
    position: relative;
    width: min(330px, 86%);
    aspect-ratio: 1;
    display: grid;
    place-items: center;
    margin-left: auto;
    border-radius: 50%;
    color: #75efff;
}

.service-detail-emblem > i {
    position: relative;
    z-index: 2;
    font-size: clamp(4.5rem, 8vw, 7.5rem);
    filter: drop-shadow(0 18px 28px rgba(0,0,0,.22));
}

.service-detail-emblem-ring {
    position: absolute;
    inset: 8%;
    border: 1px solid rgba(114,239,255,.22);
    border-radius: 50%;
    box-shadow: 0 0 0 28px rgba(255,255,255,.018);
}

.service-detail-emblem-ring--two {
    inset: 26%;
    border-style: dashed;
    animation: itpulseOrbit 15s linear infinite;
}

.service-overview-section {
    padding: clamp(66px, 7vw, 96px) 0;
    background: #fff;
}

.service-overview-media {
    position: relative;
    min-height: 490px;
    overflow: visible;
}

.service-overview-media img {
    position: relative;
    z-index: 2;
    width: min(92%, 620px);
    height: 430px;
    object-fit: cover;
    border-radius: 26px;
    box-shadow: 0 30px 72px rgba(7,26,51,.15);
}

.service-overview-media-accent {
    position: absolute;
    z-index: 1;
    width: 64%;
    height: 68%;
    right: 0;
    bottom: 0;
    border-radius: 26px;
    background: linear-gradient(145deg, var(--service-cyan), #087e9a);
    opacity: .16;
}

.service-overview-media-badge {
    position: absolute;
    z-index: 3;
    right: 0;
    bottom: 24px;
    display: flex;
    gap: 11px;
    align-items: center;
    max-width: 250px;
    padding: 15px 18px;
    border-radius: 16px;
    color: #fff;
    background: #072846;
    box-shadow: 0 18px 38px rgba(7,26,51,.18);
    font-size: .82rem;
    font-weight: 800;
    letter-spacing: .04em;
}

.service-overview-media-badge i { color: #75efff; }

.service-overview-intro {
    margin: 20px 0 28px;
    color: var(--service-muted);
    font-size: 1.02rem;
    line-height: 1.75;
}

.service-solves-list h3 {
    margin: 0 0 16px;
    color: var(--service-ink);
    font-family: Saira, Inter, sans-serif;
    font-size: 1.15rem;
    font-weight: 700;
}

.service-solves-list {
    display: grid;
    gap: 11px;
}

.service-solves-list > div {
    display: grid;
    grid-template-columns: 22px 1fr;
    gap: 10px;
    color: #2b3b4d;
    line-height: 1.5;
}

.service-solves-list i { color: #08afc9; margin-top: 3px; }

.service-scope-section {
    padding: clamp(64px, 7vw, 96px) 0;
    background: #f7fbfd;
}

.service-scope-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 20px;
}

.service-scope-card {
    min-height: 245px;
    padding: 28px;
    border: 1px solid var(--service-line);
    border-radius: 22px;
    background: #fff;
    box-shadow: 0 15px 44px rgba(7,26,51,.05);
    transition:
        transform 520ms cubic-bezier(.22,1,.36,1),
        box-shadow 520ms cubic-bezier(.22,1,.36,1),
        border-color 520ms ease;
}

.service-scope-card:hover {
    transform: translateY(-7px);
    border-color: rgba(8,198,227,.26);
    box-shadow: 0 26px 64px rgba(7,26,51,.11);
}

.service-scope-icon {
    width: 54px;
    height: 54px;
    display: grid;
    place-items: center;
    margin-bottom: 22px;
    border-radius: 15px;
    color: #75efff;
    background: #072846;
}

.service-scope-card h3 {
    margin: 0 0 11px;
    color: var(--service-ink);
    font-family: Saira, Inter, sans-serif;
    font-size: 1.22rem;
    font-weight: 700;
}

.service-scope-card p {
    margin: 0;
    color: var(--service-muted);
    line-height: 1.62;
}

.service-outcomes-section {
    padding: clamp(64px, 7vw, 94px) 0;
    background: #fff;
}

.service-outcomes-panel {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr);
    gap: 44px;
    align-items: center;
    padding: clamp(32px, 5vw, 54px);
    border-radius: 28px;
    color: #fff;
    background:
        radial-gradient(circle at 90% 16%, rgba(8,198,227,.17), transparent 28%),
        linear-gradient(135deg, #031321, #082b4c 72%);
    box-shadow: 0 28px 76px rgba(7,26,51,.14);
}

.service-outcomes-copy h2 { color: #fff; }
.service-outcomes-copy p { margin: 18px 0 0; color: rgba(255,255,255,.65); line-height: 1.65; }

.service-outcomes-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.service-outcome-item {
    min-height: 128px;
    padding: 19px;
    border: 1px solid rgba(255,255,255,.10);
    border-radius: 18px;
    background: rgba(255,255,255,.045);
    transition: transform 480ms cubic-bezier(.22,1,.36,1), background 480ms ease;
}

.service-outcome-item:hover {
    transform: translateY(-5px);
    background: rgba(255,255,255,.075);
}

.service-outcome-item span {
    display: block;
    margin-bottom: 20px;
    color: #75efff;
    font-family: Saira, Inter, sans-serif;
    font-weight: 800;
}

.service-outcome-item strong { color: #fff; line-height: 1.35; }

.service-related-section {
    padding: clamp(58px, 6vw, 86px) 0;
    background: #f7fbfd;
}

.service-related-section .itpulse-section-heading { margin-left: 0; text-align: left; }
.service-related-section .itpulse-section-heading p { margin-left: 0; }

.service-related-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
}

.service-related-card {
    display: grid;
    grid-template-columns: 54px minmax(0, 1fr) auto;
    gap: 16px;
    align-items: center;
    padding: 22px;
    border: 1px solid var(--service-line);
    border-radius: 20px;
    color: var(--service-ink);
    background: #fff;
    transition:
        transform 480ms cubic-bezier(.22,1,.36,1),
        box-shadow 480ms cubic-bezier(.22,1,.36,1),
        border-color 480ms ease;
}

.service-related-card:hover {
    transform: translateY(-6px);
    border-color: rgba(8,198,227,.26);
    box-shadow: 0 24px 56px rgba(7,26,51,.09);
}

.service-related-card > span {
    width: 54px;
    height: 54px;
    display: grid;
    place-items: center;
    border-radius: 15px;
    color: #75efff;
    background: #072846;
}

.service-related-card small {
    display: block;
    color: #079ab6;
    font-size: .7rem;
    font-weight: 800;
    letter-spacing: .07em;
    text-transform: uppercase;
}

.service-related-card h3 {
    margin: 4px 0 0;
    color: var(--service-ink);
    font-family: Saira, Inter, sans-serif;
    font-size: 1.12rem;
    font-weight: 700;
}

.service-related-card b {
    color: #08a9c5;
    font-size: 1.25rem;
    transition: transform 380ms cubic-bezier(.22,1,.36,1);
}

.service-related-card:hover b { transform: translateX(5px); }

/* Topbar rotating slogan should transition gently when JS updates it. */
[data-itpulse-slogan] {
    display: inline-block;
    transition: opacity 320ms ease, transform 320ms cubic-bezier(.22,1,.36,1);
}

@media (max-width: 1199.98px) {
    .services-card-grid,
    .service-scope-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .services-extended-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 991.98px) {
    .services-method-grid,
    .service-process-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .service-outcomes-panel,
    .itpulse-service-cta {
        grid-template-columns: 1fr;
    }

    .service-related-grid {
        grid-template-columns: 1fr;
    }

    .service-overview-media {
        min-height: 430px;
    }
}

@media (max-width: 767.98px) {
    .services-page-hero,
    .service-detail-hero {
        padding: 58px 0 62px;
    }

    .services-page-hero h1,
    .service-detail-hero h1 {
        font-size: clamp(2.25rem, 11vw, 3.4rem);
        line-height: 1.02;
    }

    .services-hero-actions,
    .service-detail-actions {
        display: grid;
        grid-template-columns: 1fr;
    }

    .services-hero-actions .btn,
    .service-detail-actions .btn,
    .itpulse-service-cta .btn {
        width: 100%;
    }

    .services-core-section,
    .services-extended-section,
    .services-method-section,
    .service-overview-section,
    .service-scope-section,
    .service-outcomes-section,
    .service-process-section,
    .service-related-section {
        padding-top: 52px;
        padding-bottom: 52px;
    }

    .services-card-grid,
    .service-scope-grid,
    .services-method-grid,
    .service-process-grid,
    .service-outcomes-grid {
        grid-template-columns: 1fr;
    }

    .service-modern-card {
        min-height: 0;
        padding: 26px 24px;
    }

    .service-modern-card::before {
        display: none;
    }

    .service-modern-card:hover,
    .service-modern-card:focus-visible {
        transform: none;
        color: var(--service-ink);
    }

    .service-modern-card:hover p,
    .service-modern-card:focus-visible p { color: var(--service-muted); }
    .service-modern-card:hover .service-card-eyebrow,
    .service-modern-card:focus-visible .service-card-eyebrow { color: #079ab6; }
    .service-modern-card:hover .service-card-link,
    .service-modern-card:focus-visible .service-card-link { color: #087f99; transform: none; }

    .services-extended-card,
    .services-method-card,
    .service-process-card,
    .service-scope-card {
        min-height: 0;
        padding: 24px;
    }

    .service-overview-media {
        min-height: 330px;
    }

    .service-overview-media img {
        width: 94%;
        height: 300px;
        border-radius: 20px;
    }

    .service-overview-media-accent {
        width: 56%;
        height: 60%;
        border-radius: 20px;
    }

    .service-overview-media-badge {
        right: 0;
        bottom: 5px;
        max-width: 220px;
        padding: 13px 15px;
    }

    .service-outcomes-panel,
    .itpulse-service-cta {
        padding: 26px 22px;
        border-radius: 22px;
    }

    .service-related-card {
        grid-template-columns: 48px minmax(0, 1fr) auto;
        padding: 18px;
    }

    .service-related-card > span {
        width: 48px;
        height: 48px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .services-system-visual::before,
    .services-system-visual::after,
    .service-detail-emblem-ring--two {
        animation: none;
    }
}


/* =========================================================
   V2.4.1 — Brand spotlight + service conversion system
   ========================================================= */

/* Brand slogan spotlight -------------------------------------------------- */
.itpulse-slogan-spotlight {
    position: relative;
    isolation: isolate;
    min-height: 28px;
    padding: 5px 14px 5px 10px;
    border: 1px solid rgba(80, 222, 245, .28);
    border-radius: 999px;
    color: rgba(255,255,255,.94) !important;
    background:
        radial-gradient(circle at 12% 50%, rgba(0,199,230,.18), transparent 34%),
        linear-gradient(180deg, rgba(11,46,75,.92), rgba(2,22,38,.88));
    box-shadow:
        inset 0 1px 0 rgba(255,255,255,.05),
        0 0 0 1px rgba(0,199,230,.035),
        0 7px 22px rgba(0,0,0,.12),
        0 0 22px rgba(0,199,230,.07);
    overflow: hidden;
}

.itpulse-slogan-spotlight::before,
.itpulse-compact-slogan-inner::before {
    content: "";
    position: absolute;
    inset: 0 auto 0 -42%;
    width: 34%;
    pointer-events: none;
    background: linear-gradient(100deg, transparent, rgba(126,238,255,.24), transparent);
    transform: skewX(-18deg);
    opacity: 0;
}

.itpulse-slogan-spotlight.is-slogan-ready::before,
.itpulse-compact-slogan-inner.is-slogan-ready::before {
    animation: itpulseSloganSweep 1.55s cubic-bezier(.22,.61,.36,1) .16s 1 both;
}

.itpulse-slogan-spotlight [data-itpulse-slogan] {
    position: relative;
    z-index: 1;
    text-shadow: 0 0 14px rgba(95,230,250,.10);
}

.itpulse-slogan-spotlight .itpulse-live-dot,
.itpulse-compact-slogan-inner .itpulse-live-dot {
    position: relative;
    z-index: 1;
    flex: 0 0 auto;
    width: 8px;
    height: 8px;
    box-shadow: 0 0 0 0 rgba(0,199,230,.34);
    animation: itpulseSloganPulse 2.6s ease-out infinite;
}

.itpulse-compact-slogan {
    position: relative;
    z-index: 6;
    border-top: 1px solid rgba(83,217,240,.08);
    border-bottom: 1px solid rgba(83,217,240,.16);
    background: linear-gradient(90deg, #061b2d, #082d4b 50%, #061b2d);
}

.itpulse-compact-slogan-inner {
    position: relative;
    min-height: 31px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    overflow: hidden;
    color: rgba(255,255,255,.9);
    font-size: .67rem;
    font-weight: 700;
    letter-spacing: .075em;
    line-height: 1.25;
    text-align: center;
    text-transform: uppercase;
}

@keyframes itpulseSloganSweep {
    0% { left: -42%; opacity: 0; }
    16% { opacity: .9; }
    100% { left: 118%; opacity: 0; }
}

@keyframes itpulseSloganPulse {
    0% { box-shadow: 0 0 0 0 rgba(0,199,230,.38); }
    55%, 100% { box-shadow: 0 0 0 8px rgba(0,199,230,0); }
}

/* Service-specific conversion panels ------------------------------------ */
.itpulse-service-cta-section[class*="service-cta-section--"] {
    position: relative;
    overflow: hidden;
}

.itpulse-service-cta[class*="itpulse-service-cta--"] {
    position: relative;
    isolation: isolate;
    grid-template-columns: minmax(0, 1.3fr) minmax(250px, .7fr);
    min-height: 330px;
    overflow: hidden;
    border: 1px solid rgba(255,255,255,.08);
}

.itpulse-service-cta[class*="itpulse-service-cta--"]::before,
.itpulse-service-cta[class*="itpulse-service-cta--"]::after {
    content: "";
    position: absolute;
    pointer-events: none;
    z-index: -1;
}

.itpulse-service-cta[class*="itpulse-service-cta--"]::before {
    width: 360px;
    height: 360px;
    right: -130px;
    top: -170px;
    border-radius: 50%;
    border: 1px solid rgba(126,238,255,.13);
    box-shadow: 0 0 0 48px rgba(255,255,255,.018), 0 0 0 96px rgba(255,255,255,.012);
}

.itpulse-service-cta[class*="itpulse-service-cta--"]::after {
    inset: auto 0 0 0;
    height: 1px;
    background: linear-gradient(90deg, transparent, rgba(107,234,255,.28), transparent);
}

.service-cta-copy {
    align-self: center;
    min-width: 0;
}

.service-cta-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 14px;
    margin-top: 26px;
}

.service-cta-actions .btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 14px;
    min-height: 52px;
    box-shadow: 0 14px 34px rgba(0,199,230,.16);
}

.service-cta-actions .btn span {
    transition: transform .28s ease;
}

.service-cta-actions .btn:hover span {
    transform: translateX(4px);
}

.service-cta-secondary {
    min-height: 52px;
    display: inline-flex;
    align-items: center;
    gap: 11px;
    padding: 7px 15px 7px 9px;
    border: 1px solid rgba(255,255,255,.16);
    border-radius: 999px;
    color: #fff;
    background: rgba(255,255,255,.055);
    backdrop-filter: blur(8px);
    transition: transform .28s ease, background .28s ease, border-color .28s ease;
}

.service-cta-secondary:hover {
    color: #fff;
    transform: translateY(-2px);
    border-color: rgba(104,232,252,.42);
    background: rgba(255,255,255,.09);
}

.service-cta-secondary > i {
    width: 38px;
    height: 38px;
    display: grid;
    place-items: center;
    flex: 0 0 auto;
    border-radius: 50%;
    color: #031321;
    background: #6feaff;
    box-shadow: 0 8px 22px rgba(0,199,230,.22);
}

.service-cta-secondary span {
    display: grid;
    line-height: 1.1;
}

.service-cta-secondary small {
    color: rgba(255,255,255,.58);
    font-size: .66rem;
    letter-spacing: .04em;
}

.service-cta-secondary strong {
    margin-top: 3px;
    color: #fff;
    font-size: .82rem;
    font-weight: 700;
}

.service-cta-visual {
    position: relative;
    min-height: 250px;
    display: grid;
    place-items: center;
    align-self: stretch;
}

.service-cta-visual-icon {
    position: relative;
    z-index: 3;
    width: 112px;
    height: 112px;
    display: grid;
    place-items: center;
    border-radius: 30px;
    color: #6feaff;
    font-size: 3.7rem;
    background: linear-gradient(145deg, rgba(255,255,255,.11), rgba(255,255,255,.025));
    border: 1px solid rgba(255,255,255,.14);
    box-shadow: 0 24px 55px rgba(0,0,0,.23), inset 0 1px 0 rgba(255,255,255,.08);
    transform: rotate(-4deg);
    transition: transform .45s cubic-bezier(.22,.61,.36,1);
}

.itpulse-service-cta:hover .service-cta-visual-icon {
    transform: rotate(0deg) translateY(-5px) scale(1.035);
}

.service-cta-orbit {
    position: absolute;
    left: 50%;
    top: 50%;
    border: 1px solid rgba(112,235,255,.15);
    border-radius: 50%;
    transform: translate(-50%,-50%);
}

.service-cta-orbit--outer {
    width: 235px;
    height: 235px;
}

.service-cta-orbit--inner {
    width: 172px;
    height: 172px;
    border-style: dashed;
    animation: itpulseOrbit 18s linear infinite;
}

.service-cta-signals {
    position: absolute;
    inset: auto 0 10px;
    z-index: 4;
    display: flex;
    justify-content: center;
    gap: 7px;
    flex-wrap: wrap;
}

.service-cta-signals span {
    padding: 5px 9px;
    border: 1px solid rgba(255,255,255,.10);
    border-radius: 999px;
    color: rgba(255,255,255,.72);
    background: rgba(2,16,29,.48);
    font-size: .65rem;
    letter-spacing: .02em;
    backdrop-filter: blur(6px);
}

.itpulse-service-cta--visual-left .service-cta-copy { order: 2; }
.itpulse-service-cta--visual-left .service-cta-visual { order: 1; }

/* Seven related but distinct conversion moods. */
.itpulse-service-cta--network {
    background:
        linear-gradient(135deg, rgba(0,199,230,.10), transparent 44%),
        repeating-linear-gradient(90deg, rgba(255,255,255,.025) 0 1px, transparent 1px 62px),
        linear-gradient(135deg, #031321, #07345a 75%);
}
.itpulse-service-cta--network .service-cta-visual-icon { border-radius: 50% 30px 50% 30px; }

.itpulse-service-cta--systems {
    background:
        linear-gradient(160deg, rgba(101,150,255,.15), transparent 42%),
        linear-gradient(135deg, #051428, #13284d 72%, #061a2f);
}
.itpulse-service-cta--systems .service-cta-visual-icon { color: #91baff; transform: rotate(3deg); }

.itpulse-service-cta--security {
    background:
        radial-gradient(circle at 78% 50%, rgba(0,224,190,.12), transparent 28%),
        linear-gradient(135deg, #041b20, #082b38 54%, #031321);
}
.itpulse-service-cta--security .service-cta-visual-icon { color: #62f0d8; border-radius: 50%; }
.itpulse-service-cta--security .service-cta-orbit { border-color: rgba(98,240,216,.20); }

.itpulse-service-cta--access {
    background:
        linear-gradient(120deg, rgba(157,108,255,.13), transparent 46%),
        linear-gradient(135deg, #091426, #1c2450 68%, #06172a);
}
.itpulse-service-cta--access .service-cta-visual-icon { color: #c0a5ff; border-radius: 28px 52px 28px 52px; }

.itpulse-service-cta--cctv {
    background:
        radial-gradient(circle at 78% 50%, rgba(0,199,230,.13) 0 12%, transparent 12.5% 20%, rgba(0,199,230,.05) 20.5% 21%, transparent 21.5%),
        linear-gradient(135deg, #031321, #073149 72%);
}
.itpulse-service-cta--cctv .service-cta-visual-icon { border-radius: 50%; color: #72efff; }

.itpulse-service-cta--support {
    background:
        radial-gradient(circle at 18% 20%, rgba(255,183,77,.10), transparent 28%),
        linear-gradient(135deg, #081725, #183147 70%, #071927);
}
.itpulse-service-cta--support .service-cta-visual-icon { color: #ffd18c; border-radius: 34px; }

.itpulse-service-cta--digital {
    background:
        linear-gradient(135deg, rgba(0,199,230,.11), transparent 34%),
        linear-gradient(225deg, rgba(115,91,255,.12), transparent 36%),
        linear-gradient(135deg, #061327, #10234b 70%, #07172c);
}
.itpulse-service-cta--digital .service-cta-visual-icon { color: #8eeaff; border-radius: 24px; }

@media (max-width: 991.98px) {
    .itpulse-service-cta[class*="itpulse-service-cta--"] {
        grid-template-columns: 1fr;
    }

    .itpulse-service-cta--visual-left .service-cta-copy,
    .itpulse-service-cta--visual-left .service-cta-visual {
        order: initial;
    }

    .service-cta-visual {
        min-height: 210px;
        margin-top: 4px;
    }
}

@media (max-width: 767.98px) {
    .itpulse-compact-slogan .container {
        padding-left: 10px;
        padding-right: 10px;
    }

    .itpulse-compact-slogan-inner {
        min-height: 29px;
        padding: 4px 7px;
        font-size: .61rem;
        letter-spacing: .055em;
    }

    .itpulse-service-cta[class*="itpulse-service-cta--"] {
        min-height: 0;
        padding: 28px 22px;
        border-radius: 24px;
    }

    .service-cta-actions,
    .service-cta-actions .btn,
    .service-cta-secondary {
        width: 100%;
    }

    .service-cta-secondary {
        justify-content: center;
    }

    .service-cta-visual {
        min-height: 190px;
    }

    .service-cta-visual-icon {
        width: 92px;
        height: 92px;
        border-radius: 26px;
        font-size: 3rem;
    }

    .service-cta-orbit--outer { width: 190px; height: 190px; }
    .service-cta-orbit--inner { width: 142px; height: 142px; }
}

@media (prefers-reduced-motion: reduce) {
    html:not(.itpulse-motion-preview) .itpulse-slogan-spotlight::before,
    html:not(.itpulse-motion-preview) .itpulse-compact-slogan-inner::before,
    html:not(.itpulse-motion-preview) .itpulse-slogan-spotlight .itpulse-live-dot,
    html:not(.itpulse-motion-preview) .itpulse-compact-slogan-inner .itpulse-live-dot,
    html:not(.itpulse-motion-preview) .service-cta-orbit--inner {
        animation: none !important;
    }
}


/* =========================================================
   V2.5 — Solutions architecture
   ========================================================= */
.itpulse-solutions-page,
.itpulse-solution-detail { overflow: clip; }

.solutions-page-hero,
.solution-detail-hero {
    position: relative;
    overflow: hidden;
    padding: clamp(92px, 9vw, 150px) 0 clamp(78px, 8vw, 126px);
    color: #fff;
    background:
        radial-gradient(circle at 82% 28%, rgba(0,199,230,.18), transparent 27%),
        linear-gradient(125deg, #031321 0%, #072a48 58%, #064363 100%);
}
.solutions-hero-grid,
.solution-detail-grid { position:absolute; inset:0; opacity:.22; background-image:linear-gradient(rgba(255,255,255,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.06) 1px,transparent 1px); background-size:64px 64px; mask-image:linear-gradient(to right,transparent,#000 25%,#000 85%,transparent); }
.solutions-page-hero h1,.solution-detail-hero h1 { max-width:900px; margin:18px 0 20px; color:#fff; font-size:clamp(2.8rem,5.1vw,5.2rem); line-height:.98; letter-spacing:-.045em; }
.solutions-hero-copy,.solution-detail-hero p { max-width:760px; margin:0; color:rgba(255,255,255,.78); font-size:clamp(1rem,1.35vw,1.18rem); line-height:1.8; }
.solutions-hero-actions,.solution-detail-actions { display:flex; gap:12px; flex-wrap:wrap; margin-top:30px; }

.solution-radar { position:relative; width:min(390px,100%); aspect-ratio:1; margin:auto; display:grid; place-items:center; }
.solution-radar-ring { position:absolute; border:1px solid rgba(111,234,255,.22); border-radius:50%; }
.solution-radar-ring--1{inset:4%;}.solution-radar-ring--2{inset:20%;border-style:dashed;animation:itpulseOrbit 22s linear infinite}.solution-radar-ring--3{inset:35%;}
.solution-radar-core { position:relative; z-index:3; width:132px; height:132px; display:flex; flex-direction:column; align-items:center; justify-content:center; border-radius:36px; color:#071b31; background:linear-gradient(145deg,#6feaff,#12bad7); box-shadow:0 30px 70px rgba(0,199,230,.22); transform:rotate(-4deg); }
.solution-radar-core i{font-size:2rem;margin-bottom:5px}.solution-radar-core small{font-size:.68rem;text-transform:uppercase;letter-spacing:.13em}.solution-radar-core strong{font-size:1.05rem}
.solution-radar-node { position:absolute; z-index:4; width:58px;height:58px;display:grid;place-items:center;border-radius:18px;color:#71efff;background:rgba(3,19,33,.88);border:1px solid rgba(111,234,255,.26);box-shadow:0 18px 36px rgba(0,0,0,.25); }
.solution-radar-node--1{top:5%;left:45%}.solution-radar-node--2{right:5%;top:44%}.solution-radar-node--3{bottom:6%;left:44%}.solution-radar-node--4{left:4%;top:44%}

.solution-outcome-strip { position:relative; z-index:4; margin-top:-38px; }
.solution-outcome-grid { display:grid; grid-template-columns:repeat(4,1fr); overflow:hidden; border-radius:26px; background:#fff; box-shadow:0 24px 65px rgba(4,28,49,.13); }
.solution-outcome-grid article { min-height:120px; display:flex; gap:15px; align-items:center; padding:25px 22px; border-right:1px solid #e8edf2; }
.solution-outcome-grid article:last-child{border-right:0}.solution-outcome-grid i{width:48px;height:48px;display:grid;place-items:center;border-radius:15px;color:#00abc8;background:#eafaff;font-size:1.25rem}.solution-outcome-grid div{display:grid;gap:3px}.solution-outcome-grid strong{font-size:1.02rem;color:#071b31}.solution-outcome-grid span{font-family:Inter,sans-serif;font-size:.78rem;line-height:1.45;color:#647384}

.solution-pathways-section,.solution-usecases-section,.solution-method-section,.solution-faq-section,.solution-context-section,.solution-blocks-section,.solution-usecase-detail-section,.solution-process-section,.solution-related-section { padding:clamp(68px,7vw,105px) 0; }
.solution-pathway-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; margin-top:42px; }
.solution-pathway-card { position:relative; overflow:hidden; min-height:390px; padding:32px; display:flex; flex-direction:column; border:1px solid #e1e8ee; border-radius:28px; color:#071b31; background:#fff; box-shadow:0 20px 48px rgba(4,28,49,.07); transition:transform .45s cubic-bezier(.22,.61,.36,1),box-shadow .45s,border-color .45s; text-decoration:none; }
.solution-pathway-card::before { content:""; position:absolute; inset:0; z-index:0; background:linear-gradient(145deg,#06223d,#0b4261); transform:translateY(-101%); transition:transform .58s cubic-bezier(.22,.61,.36,1); }
.solution-pathway-card>*{position:relative;z-index:1}.solution-pathway-card:hover{transform:translateY(-7px);box-shadow:0 30px 70px rgba(4,28,49,.16);border-color:rgba(0,199,230,.28);color:#fff}.solution-pathway-card:hover::before{transform:translateY(0)}.solution-pathway-card:hover p,.solution-pathway-card:hover .solution-pathway-eyebrow{color:rgba(255,255,255,.72)}
.solution-pathway-number{position:absolute;right:26px;top:24px;color:#dce8ef;font:700 2.5rem/1 Saira,sans-serif;transition:color .4s}.solution-pathway-card:hover .solution-pathway-number{color:rgba(255,255,255,.13)}
.solution-pathway-icon{width:64px;height:64px;display:grid;place-items:center;border-radius:20px;color:#00b9d8;background:#e9faff;font-size:1.65rem;margin-bottom:34px;transition:background .4s,color .4s,transform .4s}.solution-pathway-card:hover .solution-pathway-icon{background:rgba(111,234,255,.13);color:#6feaff;transform:translateY(-3px) rotate(-3deg)}
.solution-pathway-eyebrow{margin-bottom:8px;color:#00aeca;font:600 .72rem/1.3 Inter,sans-serif;text-transform:uppercase;letter-spacing:.12em}.solution-pathway-card h3{font-size:1.5rem;line-height:1.2;margin:0 0 14px}.solution-pathway-card p{font-family:Inter,sans-serif;color:#647384;line-height:1.7;font-size:.9rem;margin:0 0 28px}.solution-pathway-link{margin-top:auto;font-weight:700}.solution-pathway-link span{display:inline-block;margin-left:5px;transition:transform .3s}.solution-pathway-card:hover .solution-pathway-link span{transform:translateX(5px)}

.solution-composition-section { padding:clamp(78px,8vw,120px) 0; color:#fff; background:linear-gradient(135deg,#031321,#082c4c 70%,#063d58); }
.solution-composition-section h2{color:#fff;font-size:clamp(2.2rem,3.5vw,3.6rem);line-height:1.05;margin:15px 0 22px}.solution-composition-section p{color:rgba(255,255,255,.72);font:400 1rem/1.8 Inter,sans-serif;margin-bottom:28px}
.solution-layer-stack{display:grid;gap:11px;perspective:1000px}.solution-layer-stack article{display:flex;gap:18px;align-items:center;padding:20px 24px;border:1px solid rgba(255,255,255,.10);border-radius:20px;background:rgba(255,255,255,.055);backdrop-filter:blur(8px);box-shadow:0 16px 35px rgba(0,0,0,.10);transition:transform .4s,background .4s}.solution-layer-stack article:hover{transform:translateX(-8px);background:rgba(111,234,255,.09)}.solution-layer-stack article>span{color:rgba(255,255,255,.32);font:700 1.5rem Saira}.solution-layer-stack i{width:46px;height:46px;display:grid;place-items:center;border-radius:14px;color:#6feaff;background:rgba(0,199,230,.11)}.solution-layer-stack div{display:grid}.solution-layer-stack strong{color:#fff;font-size:1.03rem}.solution-layer-stack small{color:rgba(255,255,255,.58);font-family:Inter,sans-serif}

.solution-usecases-section{background:#f7fafc}.solution-usecase-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:40px}.solution-usecase-card{padding:28px;border:1px solid #e1e8ee;border-radius:24px;background:#fff;box-shadow:0 16px 42px rgba(4,28,49,.055);transition:transform .4s,box-shadow .4s}.solution-usecase-card:hover{transform:translateY(-6px);box-shadow:0 26px 58px rgba(4,28,49,.10)}.solution-usecase-card i{width:50px;height:50px;display:grid;place-items:center;border-radius:16px;color:#00b8d6;background:#eafaff;margin-bottom:20px}.solution-usecase-card h3{font-size:1.2rem}.solution-usecase-card p{margin:0;color:#657486;font:400 .88rem/1.7 Inter,sans-serif}

.solution-method-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;margin-top:42px}.solution-method-grid article{position:relative;padding:26px 22px;border:1px solid #e1e8ee;border-radius:22px;background:#fff;box-shadow:0 14px 36px rgba(4,28,49,.05)}.solution-method-grid article>span{display:block;margin-bottom:24px;color:#00b6d3;font:700 2rem Saira}.solution-method-grid h3{font-size:1.12rem}.solution-method-grid p{margin:0;color:#647384;font:400 .82rem/1.65 Inter,sans-serif}

.solution-faq-section{background:#f7fafc}.solution-faq-section h2{font-size:clamp(2rem,3vw,3.2rem);line-height:1.08}.solution-faq-section .col-lg-4>p{font-family:Inter,sans-serif;color:#647384;line-height:1.75}.solution-faq-list{display:grid;gap:10px}.solution-faq-list details{border:1px solid #dfe8ef;border-radius:18px;background:#fff;overflow:hidden}.solution-faq-list summary{list-style:none;cursor:pointer;padding:20px 22px;display:flex;justify-content:space-between;gap:16px;color:#071b31;font-weight:700}.solution-faq-list summary::-webkit-details-marker{display:none}.solution-faq-list summary span{color:#00b8d6;font-size:1.35rem;transition:transform .3s}.solution-faq-list details[open] summary span{transform:rotate(45deg)}.solution-faq-list p{padding:0 22px 20px;margin:0;color:#647384;font:400 .9rem/1.7 Inter,sans-serif}

.solution-main-cta-section{padding:0 0 clamp(70px,8vw,110px)}.solution-main-cta{display:grid;grid-template-columns:minmax(0,1.45fr) auto;gap:32px;align-items:center;padding:42px 46px;border-radius:30px;color:#fff;background:linear-gradient(135deg,#031321,#073d5d);box-shadow:0 30px 70px rgba(4,28,49,.16)}.solution-main-cta h2{color:#fff;font-size:clamp(2rem,3vw,3rem);margin:12px 0}.solution-main-cta p{max-width:760px;margin:0;color:rgba(255,255,255,.7);font-family:Inter,sans-serif}.solution-main-cta-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}

/* Solution detail */
.solution-detail-hero{padding-top:clamp(85px,8vw,132px)}.solution-detail-emblem{position:relative;width:270px;height:270px;margin:auto;display:grid;place-items:center}.solution-detail-emblem>span{position:absolute;inset:4%;border:1px solid rgba(111,234,255,.22);border-radius:35% 65% 55% 45%;animation:itpulseOrbit 24s linear infinite}.solution-detail-emblem>span:nth-child(2){inset:20%;border-style:dashed;animation-direction:reverse}.solution-detail-emblem i{position:relative;z-index:2;width:108px;height:108px;display:grid;place-items:center;border-radius:30px;color:#06203a;background:linear-gradient(145deg,#6feaff,#14b9d5);font-size:3rem;box-shadow:0 26px 60px rgba(0,199,230,.22)}.solution-detail-emblem small{position:absolute;bottom:14%;color:rgba(255,255,255,.52);font:600 .72rem Inter,sans-serif;letter-spacing:.15em;text-transform:uppercase}
.solution-context-section{background:#fff}.solution-context-section h2{font-size:clamp(2.1rem,3vw,3.3rem);margin:14px 0 20px}.solution-context-lead{font:400 1rem/1.85 Inter,sans-serif;color:#5e6d7c}.solution-challenge-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:15px}.solution-challenge-grid article{display:flex;gap:13px;align-items:flex-start;padding:22px;border:1px solid #e1e8ee;border-radius:20px;background:#fafcfd}.solution-challenge-grid i{width:36px;height:36px;flex:0 0 auto;display:grid;place-items:center;border-radius:12px;color:#00b7d4;background:#e9faff}.solution-challenge-grid p{margin:3px 0 0;color:#526273;font:500 .86rem/1.6 Inter,sans-serif}
.solution-blocks-section{background:#f7fafc}.solution-block-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-top:40px}.solution-block-grid article{padding:28px 25px;border:1px solid #e0e8ee;border-radius:24px;background:#fff;box-shadow:0 15px 38px rgba(4,28,49,.055);transition:transform .4s,box-shadow .4s}.solution-block-grid article:hover{transform:translateY(-6px);box-shadow:0 26px 58px rgba(4,28,49,.1)}.solution-block-grid article>span{width:54px;height:54px;display:grid;place-items:center;border-radius:17px;color:#00b7d4;background:#eafaff;margin-bottom:22px}.solution-block-grid h3{font-size:1.18rem}.solution-block-grid p{margin:0;color:#657486;font:400 .85rem/1.7 Inter,sans-serif}
.solution-outcomes-section{padding:clamp(75px,8vw,115px) 0;color:#fff;background:linear-gradient(135deg,#031321,#0a304f)}.solution-outcomes-section h2{color:#fff;font-size:clamp(2rem,3.2vw,3.4rem);line-height:1.08}.solution-outcomes-section .col-lg-5>p{color:rgba(255,255,255,.68);font:400 .95rem/1.75 Inter,sans-serif}.solution-result-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:15px}.solution-result-grid article{min-height:130px;padding:24px;display:flex;gap:17px;align-items:center;border:1px solid rgba(255,255,255,.1);border-radius:22px;background:rgba(255,255,255,.055)}.solution-result-grid span{color:#6feaff;font:700 1.8rem Saira}.solution-result-grid strong{font-size:1.05rem;line-height:1.4}
.solution-usecase-detail-section{background:#fff}.solution-scenario-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin-top:38px}.solution-scenario-grid article{display:flex;gap:13px;align-items:center;padding:20px 22px;border:1px solid #e1e8ee;border-radius:18px;background:#fafcfd}.solution-scenario-grid i{color:#00b7d4}.solution-scenario-grid span{font:600 .9rem Inter,sans-serif;color:#25394c}
.solution-process-section{background:#f7fafc}.solution-process-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:40px}.solution-process-grid article{padding:26px;border:1px solid #dfe8ee;border-radius:22px;background:#fff}.solution-process-grid article>span{display:block;margin-bottom:22px;color:#00b7d4;font:700 2rem Saira}.solution-process-grid h3{font-size:1.15rem}.solution-process-grid p{margin:0;color:#647384;font:400 .84rem/1.67 Inter,sans-serif}
.solution-related-section{background:#fff}.solution-related-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:38px}.solution-related-grid>a{display:flex;gap:15px;align-items:center;padding:20px;border:1px solid #e0e8ee;border-radius:20px;color:#071b31;background:#fff;text-decoration:none;transition:transform .35s,border-color .35s,box-shadow .35s}.solution-related-grid>a:hover{transform:translateY(-4px);border-color:rgba(0,199,230,.32);box-shadow:0 18px 42px rgba(4,28,49,.08)}.solution-related-grid i{width:46px;height:46px;display:grid;place-items:center;border-radius:14px;color:#00b7d4;background:#eafaff}.solution-related-grid>a>span{display:grid;flex:1}.solution-related-grid small{color:#7b8a98;font:500 .67rem Inter,sans-serif;text-transform:uppercase;letter-spacing:.08em}.solution-related-grid strong{font-size:.98rem}.solution-related-grid b{color:#00b7d4}
.solution-detail-cta-section{padding:0 0 clamp(72px,8vw,112px)}.solution-detail-cta{position:relative;overflow:hidden;min-height:360px;display:grid;grid-template-columns:minmax(0,1.35fr) minmax(260px,.65fr);gap:36px;align-items:center;padding:46px;border-radius:32px;color:#fff;background:linear-gradient(135deg,#031321,#073653);box-shadow:0 30px 70px rgba(4,28,49,.16)}.solution-detail-cta::before{content:"";position:absolute;width:310px;height:310px;right:-80px;top:-100px;border-radius:50%;background:radial-gradient(circle,rgba(111,234,255,.14),transparent 68%)}.solution-detail-cta-copy{position:relative;z-index:2}.solution-detail-cta h2{color:#fff;font-size:clamp(2rem,3.2vw,3.25rem);line-height:1.08;margin:12px 0 18px}.solution-detail-cta p{max-width:720px;color:rgba(255,255,255,.7);font:400 .95rem/1.75 Inter,sans-serif}.solution-detail-cta-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:26px}.solution-quick-contact{display:flex;align-items:center;gap:10px;min-height:54px;padding:8px 16px;border:1px solid rgba(255,255,255,.13);border-radius:999px;color:#fff;background:rgba(255,255,255,.055);text-decoration:none}.solution-quick-contact i{width:36px;height:36px;display:grid;place-items:center;border-radius:50%;color:#052035;background:#6feaff}.solution-quick-contact span{display:grid}.solution-quick-contact small{color:rgba(255,255,255,.58);font-size:.64rem}.solution-quick-contact strong{font-size:.78rem}.solution-cta-visual{position:relative;z-index:2;min-height:245px;display:grid;place-items:center}.solution-cta-visual span{position:absolute;width:220px;height:220px;border:1px solid rgba(111,234,255,.17);border-radius:50%}.solution-cta-visual span:nth-child(2){width:160px;height:160px;border-style:dashed;animation:itpulseOrbit 18s linear infinite}.solution-cta-visual i{position:relative;z-index:2;width:105px;height:105px;display:grid;place-items:center;border-radius:30px;color:#06203a;background:linear-gradient(145deg,#6feaff,#14b9d5);font-size:3rem;box-shadow:0 25px 55px rgba(0,199,230,.2)}

/* Canonical expanded Solutions dropdown: compact desktop mega menu. */
@media (min-width:992px){
    .solutions-nav-item>.dropdown-menu.show{display:grid;grid-template-columns:repeat(2,minmax(210px,1fr));gap:4px;width:520px;left:auto;right:0;padding:12px}
    .solutions-nav-item>.dropdown-menu>li:first-child{grid-column:1/-1}
    .solutions-nav-item>.dropdown-menu .dropdown-item{height:100%;padding:12px 14px;white-space:normal;line-height:1.25;border-radius:12px}
}

@media (max-width:991.98px){
    .solution-outcome-grid{grid-template-columns:repeat(2,1fr)}.solution-outcome-grid article:nth-child(2){border-right:0}.solution-outcome-grid article:nth-child(-n+2){border-bottom:1px solid #e8edf2}
    .solution-pathway-grid{grid-template-columns:repeat(2,1fr)}.solution-usecase-grid{grid-template-columns:repeat(2,1fr)}.solution-method-grid{grid-template-columns:repeat(2,1fr)}
    .solution-block-grid{grid-template-columns:repeat(2,1fr)}.solution-process-grid{grid-template-columns:repeat(2,1fr)}.solution-related-grid{grid-template-columns:1fr}.solution-detail-cta{grid-template-columns:1fr}.solution-cta-visual{min-height:210px}
    .solutions-nav-item>.dropdown-menu.show{display:block;width:100%}
}
@media (max-width:767.98px){
    .solutions-page-hero,.solution-detail-hero{padding:62px 0 58px}.solutions-page-hero h1,.solution-detail-hero h1{font-size:clamp(2.25rem,11vw,3.15rem)}.solutions-hero-actions,.solution-detail-actions{display:grid}.solutions-hero-actions .btn,.solution-detail-actions .btn{width:100%}
    .solution-outcome-strip{margin-top:0}.solution-outcome-grid{border-radius:0;grid-template-columns:1fr}.solution-outcome-grid article{min-height:88px;border-right:0!important;border-bottom:1px solid #e8edf2!important;padding:18px}.solution-outcome-grid article:last-child{border-bottom:0!important}
    .solution-pathways-section,.solution-usecases-section,.solution-method-section,.solution-faq-section,.solution-context-section,.solution-blocks-section,.solution-usecase-detail-section,.solution-process-section,.solution-related-section{padding:52px 0}
    .solution-pathway-grid,.solution-usecase-grid,.solution-method-grid,.solution-block-grid,.solution-challenge-grid,.solution-result-grid,.solution-scenario-grid,.solution-process-grid{grid-template-columns:1fr}.solution-pathway-card{min-height:0;padding:26px}.solution-pathway-card::before{display:none}.solution-pathway-card:hover{color:#071b31;transform:none}.solution-pathway-card:hover p{color:#647384}.solution-pathway-card:hover .solution-pathway-eyebrow{color:#00aeca}.solution-pathway-card:hover .solution-pathway-icon{background:#e9faff;color:#00b9d8;transform:none}
    .solution-composition-section{padding:58px 0}.solution-layer-stack article:hover{transform:none}.solution-main-cta{grid-template-columns:1fr;padding:30px 24px;border-radius:24px}.solution-main-cta-actions{display:grid;justify-content:stretch}.solution-main-cta-actions .btn{width:100%}
    .solution-detail-cta{min-height:0;padding:30px 24px;border-radius:24px}.solution-detail-cta-actions,.solution-detail-cta-actions .btn,.solution-quick-contact{width:100%}.solution-quick-contact{justify-content:center}.solution-cta-visual{min-height:180px}.solution-cta-visual span{width:175px;height:175px}.solution-cta-visual span:nth-child(2){width:128px;height:128px}.solution-cta-visual i{width:88px;height:88px;font-size:2.45rem;border-radius:25px}
}
@media (prefers-reduced-motion:reduce){html:not(.itpulse-motion-preview) .solution-radar-ring--2,html:not(.itpulse-motion-preview) .solution-detail-emblem>span,html:not(.itpulse-motion-preview) .solution-cta-visual span:nth-child(2){animation:none!important}}

/* =========================================================
   V2.5.1 — Category sync + Solutions motion language
   ========================================================= */

/* Homepage Solutions mirrors the complete public Solutions catalogue. */
.home-solutions-section {
    position: relative;
    overflow: hidden;
    background:
        linear-gradient(rgba(0, 183, 212, .035) 1px, transparent 1px),
        linear-gradient(90deg, rgba(0, 183, 212, .035) 1px, transparent 1px),
        linear-gradient(180deg, #f8fbfd 0%, #eef7fa 100%);
    background-size: 42px 42px, 42px 42px, auto;
}
.home-solutions-section::before,
.home-solutions-section::after {
    content: "";
    position: absolute;
    width: 340px;
    height: 340px;
    border-radius: 50%;
    pointer-events: none;
    background: radial-gradient(circle, rgba(0, 199, 230, .10), transparent 68%);
}
.home-solutions-section::before { left: -130px; top: 8%; }
.home-solutions-section::after { right: -150px; bottom: 5%; }
.home-solutions-section .container { position: relative; z-index: 1; }
.home-solutions-title {
    max-width: 820px;
    margin: 14px auto 16px;
    color: #071b31;
    font-size: clamp(2.25rem, 3.8vw, 3.7rem);
    line-height: 1.08;
}
.home-solutions-intro {
    max-width: 730px;
    margin: 0 auto;
    color: #627284;
    font: 400 .98rem/1.75 Inter, sans-serif;
}
.home-solution-grid { margin-top: 0; }
.home-solution-card { min-height: 350px; }
.home-solution-card p { font-size: .86rem; }

/*
 * Solutions signature hover: convergence.
 * Two independent panels enter from opposite sides and meet at the centre.
 * This intentionally differs from the Services vertical deployment curtain.
 */
.solution-pathway-card::before,
.solution-pathway-card::after {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    width: 50.5%;
    z-index: 0;
    pointer-events: none;
    transition: transform .62s cubic-bezier(.22, .61, .36, 1);
}
.solution-pathway-card::before {
    inset: 0 auto 0 0;
    width: 50.5%;
    background: linear-gradient(145deg, #061d35, #083c58);
    transform: scaleX(0);
    transform-origin: left center;
}
.solution-pathway-card::after {
    left: auto;
    right: 0;
    background: linear-gradient(215deg, #061d35, #0a4560);
    transform: scaleX(0);
    transform-origin: right center;
}
.solution-pathway-card:hover::before,
.solution-pathway-card:hover::after,
.solution-pathway-card:focus-visible::before,
.solution-pathway-card:focus-visible::after {
    transform: scaleX(1);
}
.solution-pathway-card:hover,
.solution-pathway-card:focus-visible {
    transform: translateY(-7px);
    box-shadow: 0 30px 70px rgba(4, 28, 49, .16);
    border-color: rgba(0, 199, 230, .30);
    color: #fff;
}
.solution-pathway-card:hover p,
.solution-pathway-card:hover .solution-pathway-eyebrow,
.solution-pathway-card:focus-visible p,
.solution-pathway-card:focus-visible .solution-pathway-eyebrow {
    color: rgba(255,255,255,.73);
}
.solution-pathway-card:focus-visible {
    outline: 3px solid rgba(0,199,230,.34);
    outline-offset: 4px;
}

/* A small centre-line signal reinforces the convergence concept. */
.solution-pathway-card .solution-pathway-link::before {
    content: "";
    display: inline-block;
    width: 0;
    height: 2px;
    margin-right: 0;
    vertical-align: middle;
    background: #6feaff;
    transition: width .38s ease, margin-right .38s ease;
}
.solution-pathway-card:hover .solution-pathway-link::before,
.solution-pathway-card:focus-visible .solution-pathway-link::before {
    width: 22px;
    margin-right: 8px;
}

/* Detail cards remain in the same motion family without repeating a full curtain. */
.solution-block-grid article,
.solution-challenge-grid article,
.solution-usecase-card,
.solution-process-grid article,
.solution-related-grid > a {
    position: relative;
    overflow: hidden;
}
.solution-block-grid article::before,
.solution-challenge-grid article::before,
.solution-usecase-card::before,
.solution-process-grid article::before,
.solution-related-grid > a::before {
    content: "";
    position: absolute;
    top: 0;
    left: 50%;
    width: 0;
    height: 3px;
    background: linear-gradient(90deg, #00b8d6, #6feaff);
    transform: translateX(-50%);
    transition: width .42s cubic-bezier(.22,.61,.36,1);
}
.solution-block-grid article:hover::before,
.solution-challenge-grid article:hover::before,
.solution-usecase-card:hover::before,
.solution-process-grid article:hover::before,
.solution-related-grid > a:hover::before {
    width: 72%;
}

@media (max-width: 991.98px) {
    .home-solution-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 767.98px) {
    .home-solutions-section { background-size: 34px 34px, 34px 34px, auto; }
    .home-solution-grid { grid-template-columns: 1fr; }
    .home-solution-card { min-height: 0; }
    .solution-pathway-card::before,
    .solution-pathway-card::after { display: none; }
    .solution-pathway-card:hover,
    .solution-pathway-card:focus-visible {
        color: #071b31;
        transform: none;
        box-shadow: 0 20px 48px rgba(4,28,49,.07);
    }
    .solution-pathway-card:hover p,
    .solution-pathway-card:focus-visible p { color: #647384; }
    .solution-pathway-card:hover .solution-pathway-eyebrow,
    .solution-pathway-card:focus-visible .solution-pathway-eyebrow { color: #00aeca; }
    .solution-pathway-card .solution-pathway-link::before { display: none; }
}


/* =========================================================
   V2.5.2 — Solutions hover correction
   Dedicated DOM curtains replace pseudo-element curtains.
   This avoids cascade conflicts with the legacy top-down
   .solution-pathway-card::before implementation.
   ========================================================= */

/* Retire every old pathway-card curtain pseudo-element. */
.solution-pathway-card::before,
.solution-pathway-card::after {
    content: none !important;
    display: none !important;
}

/* Stable number geometry — all 01–09 occupy the same box. */
.solution-pathway-card .solution-pathway-number {
    position: absolute !important;
    top: 26px !important;
    right: 26px !important;
    left: auto !important;
    width: 64px;
    margin: 0 !important;
    text-align: right;
    line-height: 1 !important;
    font-variant-numeric: tabular-nums;
    font-feature-settings: "tnum" 1;
    letter-spacing: .02em;
    z-index: 4 !important;
}

/* Real curtain layers. They are first-class DOM elements, not pseudo-elements. */
.solution-pathway-card .solution-curtain {
    position: absolute !important;
    top: 0;
    bottom: 0;
    width: 50.5%;
    margin: 0 !important;
    padding: 0 !important;
    z-index: 1 !important;
    pointer-events: none;
    opacity: 1;
    will-change: transform;
    transition: transform .95s cubic-bezier(.22, 1, .36, 1) !important;
}

.solution-pathway-card .solution-curtain--left {
    left: 0;
    right: auto;
    background: linear-gradient(145deg, #061a30 0%, #083e5a 100%);
    transform: translate3d(-103%, 0, 0);
    box-shadow: inset -1px 0 rgba(111, 234, 255, .11);
}

.solution-pathway-card .solution-curtain--right {
    right: 0;
    left: auto;
    background: linear-gradient(215deg, #061a30 0%, #0a4863 100%);
    transform: translate3d(103%, 0, 0);
    box-shadow: inset 1px 0 rgba(111, 234, 255, .11);
}

/* Keep every real content element above the curtains. */
.solution-pathway-card > :not(.solution-curtain) {
    position: relative;
    z-index: 3;
}

@media (hover: hover) and (pointer: fine) and (min-width: 768px) {
    .solution-pathway-card:hover .solution-curtain--left,
    .solution-pathway-card:focus-visible .solution-curtain--left,
    .solution-pathway-card:hover .solution-curtain--right,
    .solution-pathway-card:focus-visible .solution-curtain--right {
        transform: translate3d(0, 0, 0);
    }

    /* Explicit text colors are required because Bootstrap headings set
       their own color and do not inherit the anchor's white color. */
    .solution-pathway-card:hover h3,
    .solution-pathway-card:focus-visible h3,
    .solution-pathway-card:hover .solution-pathway-link,
    .solution-pathway-card:focus-visible .solution-pathway-link {
        color: #fff !important;
        transition: color .34s ease .13s;
    }

    .solution-pathway-card:hover p,
    .solution-pathway-card:focus-visible p {
        color: rgba(255, 255, 255, .78) !important;
        transition: color .34s ease .13s;
    }

    .solution-pathway-card:hover .solution-pathway-eyebrow,
    .solution-pathway-card:focus-visible .solution-pathway-eyebrow {
        color: #6feaff !important;
        transition: color .34s ease .13s;
    }

    .solution-pathway-card:hover .solution-pathway-number,
    .solution-pathway-card:focus-visible .solution-pathway-number {
        color: rgba(255, 255, 255, .18) !important;
    }

    .solution-pathway-card:hover .solution-pathway-icon,
    .solution-pathway-card:focus-visible .solution-pathway-icon {
        color: #6feaff !important;
        background: rgba(111, 234, 255, .13) !important;
    }
}

/* Touch devices keep the clean static card; no hover-only curtain dependency. */
@media (max-width: 767.98px), (hover: none), (pointer: coarse) {
    .solution-pathway-card .solution-curtain {
        display: none !important;
    }

    .solution-pathway-card:hover,
    .solution-pathway-card:focus-visible {
        color: #071b31;
    }

    .solution-pathway-card:hover h3,
    .solution-pathway-card:focus-visible h3,
    .solution-pathway-card:hover .solution-pathway-link,
    .solution-pathway-card:focus-visible .solution-pathway-link {
        color: #071b31 !important;
    }
}

/* =========================================================
   V2.7.0 — Projects / Case Study Architecture
   ========================================================= */
.itpulse-projects-page,
.itpulse-project-detail,
.home-projects-v27 {
    --project-navy: #061b31;
    --project-navy-2: #0a3852;
    --project-cyan: #00c7e6;
    --project-cyan-soft: #6feaff;
    --project-grid: rgba(0, 164, 196, .08);
}

.projects-v27-hero,
.project-detail-hero {
    position: relative;
    overflow: hidden;
    color: #fff;
    background:
        radial-gradient(circle at 82% 30%, rgba(0, 199, 230, .16), transparent 29%),
        linear-gradient(112deg, #031528 0%, #072847 58%, #07516a 100%);
}

.projects-v27-hero {
    /* V2.7.3: tighten the landing hero so its first content line sits at the
       same visual distance from the navbar as the established site pages. */
    padding: 62px 0 84px;
}

.project-detail-hero {
    padding: 86px 0 80px;
}

.projects-v27-hero-grid,
.project-detail-hero-grid {
    position: absolute;
    inset: 0;
    pointer-events: none;
    opacity: .62;
    background-image:
        linear-gradient(rgba(100, 230, 245, .055) 1px, transparent 1px),
        linear-gradient(90deg, rgba(100, 230, 245, .055) 1px, transparent 1px);
    background-size: 54px 54px;
    mask-image: linear-gradient(90deg, transparent 0, #000 18%, #000 100%);
}

.projects-v27-hero h1,
.project-detail-hero h1 {
    max-width: 800px;
    margin: 18px 0 20px;
    color: #fff;
    font-size: clamp(2.6rem, 5vw, 5.2rem);
    line-height: .98;
    letter-spacing: -.035em;
}

.projects-v27-hero p,
.project-detail-hero > .container p,
.project-detail-hero .col-lg-8 > p {
    max-width: 760px;
    margin: 0;
    color: rgba(255,255,255,.78);
    font-size: 1.05rem;
}

.projects-v27-hero-actions,
.project-detail-actions,
.project-main-cta-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 28px;
}

.projects-v27-integrity-note {
    display: flex;
    align-items: center;
    gap: 9px;
    margin-top: 22px !important;
    color: rgba(255,255,255,.62) !important;
    font-size: .83rem !important;
}
.projects-v27-integrity-note i { color: #55ebc4; }

.project-command-visual,
.project-detail-emblem {
    position: relative;
    width: 340px;
    height: 340px;
    margin-inline: auto;
}
.project-command-ring,
.project-detail-emblem > span {
    position: absolute;
    inset: 50%;
    border: 1px solid rgba(111,234,255,.23);
    border-radius: 50%;
    transform: translate(-50%,-50%);
}
.project-command-ring--1,
.project-detail-emblem > span:first-child { width: 300px; height: 300px; }
.project-command-ring--2,
.project-detail-emblem > span:nth-child(2) { width: 220px; height: 220px; }
.project-command-ring--3 { width: 142px; height: 142px; }
.project-command-core,
.project-detail-emblem i {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%,-50%);
}
.project-command-core {
    width: 118px;
    height: 118px;
    display: grid;
    place-items: center;
    align-content: center;
    border-radius: 28px;
    color: #061b31;
    background: linear-gradient(145deg, #7cf0ff, #00c7e6);
    box-shadow: 0 24px 60px rgba(0,199,230,.24);
}
.project-command-core i { font-size: 1.75rem; margin-bottom: 5px; }
.project-command-core small { font-size: .65rem; letter-spacing: .12em; text-transform: uppercase; }
.project-command-core strong { font-family: Saira, sans-serif; font-size: 1.05rem; }
.project-command-node {
    position: absolute;
    width: 54px;
    height: 54px;
    display: grid;
    place-items: center;
    border-radius: 18px;
    color: var(--project-cyan-soft);
    background: rgba(4,25,46,.9);
    border: 1px solid rgba(111,234,255,.19);
    box-shadow: 0 14px 30px rgba(2,16,32,.2);
}
.project-command-node--1 { top: 28px; left: 143px; }
.project-command-node--2 { right: 26px; top: 145px; }
.project-command-node--3 { bottom: 28px; left: 143px; }
.project-command-node--4 { left: 26px; top: 145px; }

.project-principles-strip {
    position: relative;
    z-index: 3;
    margin-top: -30px;
}
.project-principles-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    background: #fff;
    border: 1px solid var(--itpulse-border);
    border-radius: 22px;
    box-shadow: 0 22px 60px rgba(7,26,51,.12);
    overflow: hidden;
}
.project-principles-grid article {
    display: flex;
    gap: 14px;
    align-items: center;
    min-height: 112px;
    padding: 22px 24px;
    border-right: 1px solid var(--itpulse-border);
}
.project-principles-grid article:last-child { border-right: 0; }
.project-principles-grid i { color: var(--project-cyan); font-size: 1.3rem; }
.project-principles-grid strong { display:block; font-family:Saira,sans-serif; color:var(--project-navy); }
.project-principles-grid span { display:block; margin-top:3px; color:#6e7e8f; font-size:.78rem; line-height:1.45; }

.project-portfolio-section {
    position: relative;
    padding: 110px 0 105px;
    background:
        linear-gradient(rgba(0, 168, 199, .05) 1px, transparent 1px),
        linear-gradient(90deg, rgba(0, 168, 199, .05) 1px, transparent 1px),
        #f7fbfd;
    background-size: 42px 42px;
}
.home-projects-v27 { margin: 0; }
.project-portfolio-section .itpulse-section-heading { max-width: 820px; margin: 0 auto 40px; }

.project-filter-bar {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 9px;
    margin: 0 auto 38px;
}
.project-filter-button {
    appearance: none;
    border: 1px solid rgba(7,26,51,.1);
    border-radius: 999px;
    padding: 9px 16px;
    color: #27425d;
    background: rgba(255,255,255,.86);
    font: 700 .76rem/1 Inter, sans-serif;
    cursor: pointer;
    transition: color .25s ease, background .25s ease, border-color .25s ease, box-shadow .25s ease;
}
.project-filter-button:hover,
.project-filter-button:focus-visible,
.project-filter-button.is-active {
    color: #fff;
    background: var(--project-navy);
    border-color: var(--project-navy);
    box-shadow: 0 10px 24px rgba(7,26,51,.12);
}

.project-showcase-grid-list {
    display: grid;
    grid-template-columns: repeat(3, minmax(0,1fr));
    gap: 28px;
}
.project-showcase-wrap { min-width: 0; }
.project-showcase-wrap.is-filtered-out { display: none; }

.project-showcase-card {
    position: relative;
    isolation: isolate;
    display: grid;
    grid-template-rows: 168px 1fr;
    min-height: 525px;
    height: 100%;
    overflow: hidden;
    border: 1px solid rgba(7,26,51,.1);
    border-radius: 24px;
    color: var(--project-navy);
    background: rgba(255,255,255,.96);
    text-decoration: none !important;
    box-shadow: 0 13px 38px rgba(7,26,51,.07);
}
.project-showcase-card:hover { color: var(--project-navy); }
.project-showcase-number {
    position: absolute;
    top: 18px;
    right: 21px;
    z-index: 4;
    color: rgba(4,33,56,.13);
    font: 800 2rem/1 Saira,sans-serif;
    letter-spacing: -.04em;
}
.project-showcase-visual {
    position: relative;
    display: block;
    overflow: hidden;
    background:
        radial-gradient(circle at 22% 30%, rgba(0,199,230,.18), transparent 30%),
        linear-gradient(135deg, #061a30, #0a405b);
}
.project-showcase-grid {
    position: absolute;
    inset: 0;
    opacity: .35;
    background-image:
        linear-gradient(rgba(111,234,255,.12) 1px, transparent 1px),
        linear-gradient(90deg, rgba(111,234,255,.12) 1px, transparent 1px);
    background-size: 28px 28px;
}
.project-showcase-icon {
    position: absolute;
    left: 30px;
    bottom: 26px;
    width: 70px;
    height: 70px;
    display: grid;
    place-items: center;
    border-radius: 20px;
    color: #071b31;
    background: linear-gradient(145deg, #71ebfb, #00bad8);
    box-shadow: 0 18px 42px rgba(0,199,230,.22);
    font-size: 1.65rem;
}
.project-showcase-node {
    position:absolute;
    width:8px;
    height:8px;
    border-radius:50%;
    background:#6feaff;
    box-shadow:0 0 0 5px rgba(111,234,255,.08);
}
.project-showcase-node--one { right:42px; top:42px; }
.project-showcase-node--two { right:83px; top:78px; }
.project-showcase-node--three { right:35px; bottom:39px; }
.project-showcase-node::after {
    content:"";
    position:absolute;
    height:1px;
    width:48px;
    right:4px;
    top:4px;
    transform-origin:right center;
    background:linear-gradient(90deg, transparent, rgba(111,234,255,.55));
}
.project-showcase-node--two::after { width:68px; transform:rotate(26deg); }
.project-showcase-node--three::after { width:58px; transform:rotate(-22deg); }

.project-showcase-body {
    display: flex;
    flex-direction: column;
    padding: 28px 28px 25px;
}
.project-showcase-meta {
    display:flex;
    justify-content:space-between;
    gap:10px;
    align-items:center;
    margin-bottom:18px;
}
.project-showcase-category,
.project-showcase-type {
    font-size:.66rem;
    font-weight:800;
    letter-spacing:.08em;
    text-transform:uppercase;
}
.project-showcase-category { color:#008daa; }
.project-showcase-type {
    max-width:58%;
    padding:5px 9px;
    border-radius:999px;
    color:#506579;
    background:#eef5f8;
    text-align:right;
    letter-spacing:.04em;
}
.project-showcase-eyebrow {
    color:#00a8c7;
    font-size:.69rem;
    font-weight:800;
    letter-spacing:.14em;
    text-transform:uppercase;
}
.project-showcase-title {
    margin:8px 0 9px;
    color:#071b31;
    font:700 1.42rem/1.18 Saira,sans-serif;
}
.project-showcase-summary {
    color:#5e7185;
    font-size:.88rem;
    line-height:1.62;
}
.project-showcase-environment {
    display:flex;
    gap:8px;
    align-items:center;
    margin-top:17px;
    color:#405a72;
    font-size:.75rem;
}
.project-showcase-environment i { color:#00a8c7; }
.project-showcase-link {
    display:flex;
    align-items:center;
    gap:10px;
    margin-top:auto;
    padding-top:22px;
    color:#071b31;
    font-weight:800;
}
.project-showcase-link span { color:#00a8c7; font-size:1.05rem; }

/* Unique project-family signature: blueprint scanner beam + corner calibration.
   V2.7.1 makes the scan deliberately visible and repeats it while a desktop card
   remains hovered/focused. Mobile viewport previews run one complete sweep. */
.project-scan-line {
    position:absolute;
    z-index:6;
    top:-52px;
    left:10px;
    right:10px;
    height:48px;
    opacity:0;
    transform:translate3d(0,0,0);
    background:linear-gradient(
        180deg,
        transparent 0%,
        rgba(111,234,255,.03) 20%,
        rgba(111,234,255,.10) 38%,
        rgba(111,234,255,.34) 47%,
        #9af6ff 49%,
        #00c7e6 52%,
        rgba(111,234,255,.30) 57%,
        rgba(111,234,255,.08) 72%,
        transparent 100%
    );
    box-shadow:0 10px 28px rgba(0,199,230,.16);
    filter:drop-shadow(0 0 9px rgba(111,234,255,.60));
    pointer-events:none;
    will-change:transform,opacity;
}
.project-corner {
    position:absolute;
    z-index:7;
    width:22px;
    height:22px;
    opacity:.32;
    pointer-events:none;
    transition:width .5s cubic-bezier(.22,.61,.36,1), height .5s cubic-bezier(.22,.61,.36,1), opacity .5s ease;
}
.project-corner--tl { top:12px; left:12px; border-top:2px solid #00c7e6; border-left:2px solid #00c7e6; }
.project-corner--tr { top:12px; right:12px; border-top:2px solid #00c7e6; border-right:2px solid #00c7e6; }
.project-corner--bl { bottom:12px; left:12px; border-bottom:2px solid #00c7e6; border-left:2px solid #00c7e6; }
.project-corner--br { bottom:12px; right:12px; border-bottom:2px solid #00c7e6; border-right:2px solid #00c7e6; }

@keyframes itpulseProjectScan {
    0%, 5%   { opacity:0; transform:translate3d(0,0,0); }
    10%      { opacity:.98; }
    68%      { opacity:.98; transform:translate3d(0,555px,0); }
    76%,100% { opacity:0; transform:translate3d(0,590px,0); }
}

@media (min-width:768px) and (any-hover:hover) and (any-pointer:fine) {
    .project-showcase-card:hover .project-scan-line,
    .project-showcase-card:focus-visible .project-scan-line {
        animation:itpulseProjectScan 3.15s cubic-bezier(.28,.58,.28,1) infinite;
    }
    .project-showcase-card:hover .project-corner,
    .project-showcase-card:focus-visible .project-corner { width:38px; height:38px; opacity:.95; }
    .project-showcase-card:hover .project-showcase-grid,
    .project-showcase-card:focus-visible .project-showcase-grid { opacity:.55; }
    .project-showcase-card:hover .project-showcase-icon,
    .project-showcase-card:focus-visible .project-showcase-icon { box-shadow:0 21px 48px rgba(0,199,230,.34); }
}

.project-showcase-card.is-mobile-project-preview .project-scan-line {
    animation:itpulseProjectScan 2.45s cubic-bezier(.28,.58,.28,1) 1 both;
}
.project-showcase-card.is-mobile-project-preview .project-corner { width:34px; height:34px; opacity:.92; }

.home-projects-v27-action { text-align:center; margin-top:38px; }

.project-story-section,
.project-architecture-section,
.project-outcomes-v27-section {
    padding: 100px 0;
    background:#fff;
}
.project-story-section h2,
.project-architecture-section h2,
.project-outcomes-v27-section h2 { margin:12px 0 18px; color:var(--project-navy); font-size:clamp(2rem,3.7vw,3.2rem); }
.project-story-section p,
.project-architecture-section p,
.project-outcomes-v27-section p { color:#607286; }
.project-type-explainer { display:grid; gap:14px; }
.project-type-explainer article {
    display:grid;
    grid-template-columns:58px 1fr;
    gap:18px;
    align-items:start;
    padding:22px;
    border:1px solid var(--itpulse-border);
    border-radius:18px;
    background:#f8fbfd;
    box-shadow:0 10px 28px rgba(7,26,51,.05);
}
.project-type-explainer article > span { display:grid; place-items:center; width:50px; height:50px; border-radius:15px; color:#00a8c7; background:#e5f9fd; font:800 .9rem Saira,sans-serif; }
.project-type-explainer strong { color:#071b31; font-family:Saira,sans-serif; }
.project-type-explainer p { margin:5px 0 0; font-size:.84rem; line-height:1.55; }

.project-main-cta-section,
.project-detail-cta-section { padding: 0 0 100px; background:#fff; }
.project-main-cta,
.project-detail-cta {
    display:flex;
    justify-content:space-between;
    gap:40px;
    align-items:center;
    padding:46px 50px;
    border-radius:26px;
    color:#fff;
    background:
        radial-gradient(circle at 85% 20%, rgba(0,199,230,.2), transparent 27%),
        linear-gradient(135deg,#061a30,#0a3d58);
    box-shadow:0 26px 70px rgba(7,26,51,.15);
}
.project-main-cta h2,
.project-detail-cta h2 { max-width:720px; margin:10px 0; color:#fff; }
.project-main-cta p,
.project-detail-cta p { max-width:760px; margin:0; color:rgba(255,255,255,.72); }
.project-main-cta-actions { flex:0 0 auto; flex-direction:column; }

/* Project detail */
.project-detail-classification { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:16px; }
.project-detail-classification span { padding:7px 12px; border:1px solid rgba(111,234,255,.2); border-radius:999px; color:#8bf2ff; background:rgba(4,24,44,.34); font-size:.69rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.project-detail-emblem i {
    width:128px;
    height:128px;
    display:grid;
    place-items:center;
    border-radius:36px;
    color:#071b31;
    background:linear-gradient(145deg,#7cf0ff,#00c7e6);
    font-size:2.3rem;
    box-shadow:0 24px 60px rgba(0,199,230,.22);
}
.project-detail-emblem small { position:absolute; left:50%; bottom:43px; transform:translateX(-50%); color:#bff9ff; letter-spacing:.18em; text-transform:uppercase; }

.project-snapshot-section { position:relative; z-index:3; margin-top:-28px; }
.project-snapshot-grid { display:grid; grid-template-columns:repeat(4,1fr); border:1px solid var(--itpulse-border); border-radius:22px; overflow:hidden; background:#fff; box-shadow:0 22px 60px rgba(7,26,51,.12); }
.project-snapshot-grid article { min-height:115px; padding:23px 25px; border-right:1px solid var(--itpulse-border); }
.project-snapshot-grid article:last-child { border-right:0; }
.project-snapshot-grid small { display:block; margin-bottom:6px; color:#00a8c7; font-size:.67rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }
.project-snapshot-grid strong { display:block; color:#071b31; font:700 .92rem/1.45 Saira,sans-serif; }

.project-narrative-section { padding:100px 0 70px; background:#fff; }
.project-narrative-panel { position:relative; height:100%; min-height:360px; padding:42px; overflow:hidden; border-radius:24px; border:1px solid var(--itpulse-border); background:#f8fbfd; box-shadow:0 15px 44px rgba(7,26,51,.07); }
.project-narrative-panel--approach { color:#fff; border-color:transparent; background:linear-gradient(145deg,#061a30,#0b425d); }
.project-narrative-panel h2 { margin:12px 0 18px; color:#071b31; font-size:clamp(2rem,3vw,2.8rem); }
.project-narrative-panel--approach h2 { color:#fff; }
.project-narrative-panel p { color:#607286; }
.project-narrative-panel--approach p { color:rgba(255,255,255,.75); }
.project-panel-index { position:absolute; top:24px; right:28px; color:rgba(7,26,51,.08); font:800 3.2rem/1 Saira,sans-serif; }
.project-narrative-panel--approach .project-panel-index { color:rgba(255,255,255,.1); }

.project-scope-section,
.project-phases-section,
.project-related-section { padding:100px 0; background:#f7fbfd; }
.project-scope-section .itpulse-section-heading,
.project-phases-section .itpulse-section-heading,
.project-related-section .itpulse-section-heading { max-width:800px; margin:0 auto 42px; }
.project-scope-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:20px; }
.project-scope-card { padding:28px; border:1px solid var(--itpulse-border); border-radius:20px; background:#fff; box-shadow:0 11px 32px rgba(7,26,51,.06); }
.project-scope-card > span { width:54px; height:54px; display:grid; place-items:center; border-radius:16px; color:#00a8c7; background:#e4f9fd; font-size:1.3rem; }
.project-scope-card h3 { margin:18px 0 10px; color:#071b31; font-size:1.08rem; }
.project-scope-card p { margin:0; color:#64778b; font-size:.84rem; line-height:1.6; }

.project-stack-panel { display:grid; grid-template-columns:220px 1fr; gap:26px; align-items:center; padding:32px; border:1px solid var(--itpulse-border); border-radius:24px; background:#f7fbfd; box-shadow:0 14px 40px rgba(7,26,51,.07); }
.project-stack-visual { position:relative; min-height:220px; display:grid; place-items:center; overflow:hidden; border-radius:20px; color:#6feaff; background:linear-gradient(145deg,#061a30,#0a425c); }
.project-stack-visual i { position:relative; z-index:2; font-size:3rem; }
.project-stack-visual span { position:absolute; border:1px solid rgba(111,234,255,.16); border-radius:50%; }
.project-stack-visual span:nth-child(2) { width:110px;height:110px; }
.project-stack-visual span:nth-child(3) { width:165px;height:165px; }
.project-stack-visual span:nth-child(4) { width:220px;height:220px; }
.project-stack-chips { display:flex; flex-wrap:wrap; gap:10px; }
.project-stack-chips span { padding:9px 12px; border-radius:11px; color:#17344f; background:#fff; border:1px solid rgba(7,26,51,.09); font-size:.78rem; font-weight:700; }

.project-evidence-section { padding:0 0 90px; background:#fff; }
.project-evidence-frame { overflow:hidden; border-radius:24px; box-shadow:0 22px 60px rgba(7,26,51,.13); }
.project-evidence-frame img { display:block; max-height:620px; object-fit:cover; }

.project-phases-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:18px; }
.project-phases-grid article { position:relative; padding:30px 26px; border-radius:20px; color:#fff; background:linear-gradient(150deg,#061a30,#0b3d58); overflow:hidden; }
.project-phases-grid article > span { display:block; color:#6feaff; font:800 .76rem Saira,sans-serif; letter-spacing:.12em; }
.project-phases-grid h3 { margin:13px 0 9px; color:#fff; font-size:1.18rem; }
.project-phases-grid p { margin:0; color:rgba(255,255,255,.7); font-size:.82rem; line-height:1.62; }

.project-outcomes-v27-grid { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.project-outcomes-v27-grid article { display:flex; align-items:center; gap:18px; min-height:100px; padding:20px; border:1px solid var(--itpulse-border); border-radius:18px; background:#f8fbfd; }
.project-outcomes-v27-grid span { display:grid; place-items:center; flex:0 0 48px; width:48px; height:48px; border-radius:15px; color:#00a8c7; background:#e1f8fc; font:800 .78rem Saira,sans-serif; }
.project-outcomes-v27-grid strong { color:#071b31; font:700 .92rem/1.45 Saira,sans-serif; }

.project-related-columns { display:grid; grid-template-columns:1fr 1fr; gap:28px; }
.project-related-group { padding:28px; border:1px solid var(--itpulse-border); border-radius:22px; background:#fff; box-shadow:0 13px 36px rgba(7,26,51,.06); }
.project-related-group h3 { margin-bottom:18px; color:#071b31; }
.project-related-group a { display:grid; grid-template-columns:48px 1fr auto; gap:14px; align-items:center; padding:14px 0; color:#071b31; text-decoration:none; border-top:1px solid rgba(7,26,51,.08); }
.project-related-group a:first-of-type { border-top:0; }
.project-related-group a > i { width:46px;height:46px;display:grid;place-items:center;border-radius:14px;color:#00a8c7;background:#e5f9fd; }
.project-related-group small { display:block; color:#6d7d8e; font-size:.67rem; text-transform:uppercase; letter-spacing:.08em; }
.project-related-group strong { display:block; font-family:Saira,sans-serif; }
.project-related-group b { color:#00a8c7; }

.project-navigation-section { padding:55px 0 80px; background:#fff; }
.project-navigation-v27 { display:grid; grid-template-columns:1fr auto 1fr; gap:24px; align-items:center; padding-top:25px; border-top:1px solid var(--itpulse-border); }
.project-navigation-v27 a { color:#071b31; text-decoration:none; }
.project-navigation-v27 a > span { display:block; margin-bottom:4px; color:#00a8c7; font-size:.72rem; font-weight:800; text-transform:uppercase; letter-spacing:.08em; }
.project-navigation-v27 a > strong { display:block; font-family:Saira,sans-serif; font-size:.9rem; }
.project-navigation-all { width:92px;height:64px;display:grid;place-items:center;align-content:center;border-radius:16px;background:#071b31;color:#fff !important;box-shadow:0 12px 30px rgba(7,26,51,.14); }
.project-navigation-all i { color:#6feaff; }
.project-navigation-all span { margin:3px 0 0 !important; color:#fff !important; font-size:.6rem !important; }
.project-detail-cta > div:last-child { display:flex; flex-direction:column; gap:10px; flex:0 0 auto; }

.project-empty-state { padding:50px; text-align:center; border:1px dashed rgba(7,26,51,.17); border-radius:22px; background:#fff; }
.project-empty-state i { color:#00a8c7; font-size:2rem; }

@media (max-width:1199.98px) {
    .project-showcase-grid-list { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .project-scope-grid,
    .project-phases-grid { grid-template-columns:repeat(2,1fr); }
    .project-principles-grid,
    .project-snapshot-grid { grid-template-columns:repeat(2,1fr); }
    .project-principles-grid article:nth-child(2),
    .project-snapshot-grid article:nth-child(2) { border-right:0; }
    .project-principles-grid article:nth-child(-n+2),
    .project-snapshot-grid article:nth-child(-n+2) { border-bottom:1px solid var(--itpulse-border); }
}

@media (max-width:991.98px) {
    .projects-v27-hero,
    .project-detail-hero { padding:72px 0 68px; }
    .project-principles-strip,
    .project-snapshot-section { margin-top:0; padding-top:26px; }
    .project-main-cta,
    .project-detail-cta { align-items:flex-start; flex-direction:column; padding:38px; }
    .project-main-cta-actions,
    .project-detail-cta > div:last-child { flex-direction:row; flex-wrap:wrap; }
    .project-stack-panel { grid-template-columns:1fr; }
    .project-stack-visual { min-height:190px; }
}

@media (max-width:767.98px) {
    .projects-v27-hero,
    .project-detail-hero { padding:54px 0 52px; }
    .projects-v27-hero h1,
    .project-detail-hero h1 { font-size:clamp(2.2rem,12vw,3.45rem); }
    .projects-v27-hero-actions,
    .project-detail-actions { display:grid; grid-template-columns:1fr; }
    .projects-v27-hero-actions .btn,
    .project-detail-actions .btn { width:100%; }
    .project-principles-grid,
    .project-snapshot-grid,
    .project-showcase-grid-list,
    .project-scope-grid,
    .project-phases-grid,
    .project-outcomes-v27-grid,
    .project-related-columns { grid-template-columns:1fr; }
    .project-principles-grid article,
    .project-snapshot-grid article { border-right:0 !important; border-bottom:1px solid var(--itpulse-border); }
    .project-principles-grid article:last-child,
    .project-snapshot-grid article:last-child { border-bottom:0; }
    .project-portfolio-section { padding:74px 0 76px; }
    .project-filter-bar { justify-content:flex-start; flex-wrap:nowrap; overflow-x:auto; margin-inline:-12px; padding:0 12px 8px; scrollbar-width:none; }
    .project-filter-bar::-webkit-scrollbar { display:none; }
    .project-filter-button { flex:0 0 auto; }
    .project-showcase-card { min-height:500px; grid-template-rows:155px 1fr; border-radius:20px; }
    .project-showcase-body { padding:24px 23px; }
    .project-showcase-title { font-size:1.28rem; }
    .project-showcase-meta { align-items:flex-start; }
    .project-showcase-type { max-width:62%; font-size:.6rem; }
    .project-story-section,
    .project-architecture-section,
    .project-outcomes-v27-section,
    .project-scope-section,
    .project-phases-section,
    .project-related-section { padding:76px 0; }
    .project-narrative-section { padding:76px 0 48px; }
    .project-narrative-panel { min-height:0; padding:30px 26px; }
    .project-stack-panel { padding:22px; }
    .project-main-cta,
    .project-detail-cta { padding:30px 24px; border-radius:22px; }
    .project-main-cta-actions,
    .project-detail-cta > div:last-child { display:grid; width:100%; grid-template-columns:1fr; }
    .project-main-cta .btn,
    .project-detail-cta .btn { width:100%; }
    .project-navigation-v27 { grid-template-columns:1fr auto 1fr; gap:10px; }
    .project-navigation-v27 a > strong { display:none; }
    .project-navigation-all { width:66px; height:58px; }
}

@media (prefers-reduced-motion: reduce) {
    /* Project scan remains intentionally available as a low-distance visual cue. */
    .project-showcase-card .project-corner { transition:none !important; }
}
.project-showcase-summary { margin: 0; }


/* =========================================================
   V2.7.4 - Footer slogan alignment + brand hover lock
   ---------------------------------------------------------
   Generic [data-itpulse-slogan] is inline-block for the
   header capsule animation. In the footer that made the
   shortest slogan fit beside the logo. Keep footer slogans
   on their own line and keep the footer wordmark white on
   hover/focus. No other footer/site behaviour is changed.
   ========================================================= */
.itpulse-footer .itpulse-footer-tagline {
    display: block;
    width: fit-content;
}

.itpulse-footer .itpulse-footer-brand,
.itpulse-footer .itpulse-footer-brand:hover,
.itpulse-footer .itpulse-footer-brand:focus,
.itpulse-footer .itpulse-footer-brand:focus-visible {
    color: #fff;
    transform: none;
}

/* =========================================================
   V2.8.0 — Contact Experience
   A dedicated contact-page family with signal-route motion,
   structured enquiry paths and responsive form architecture.
   ========================================================= */

.itpulse-contact-page {
    --contact-ink: #071f38;
    --contact-deep: #031a2e;
    --contact-panel: #073b58;
    --contact-cyan: #10c4df;
    --contact-cyan-soft: #6feaff;
    --contact-line: rgba(9, 83, 116, .14);
    --contact-soft: #f4f9fc;
    overflow: hidden;
    background: #fff;
}

.itpulse-contact-page .section-shell {
    padding: clamp(76px, 8vw, 116px) 0;
}

.contact-v3-hero {
    position: relative;
    overflow: hidden;
    min-height: clamp(620px, 72vh, 790px);
    color: #fff;
    background:
        radial-gradient(circle at 84% 22%, rgba(16,196,223,.20), transparent 30%),
        linear-gradient(125deg, #021426 0%, #062d49 58%, #07506b 100%);
}

.contact-v3-grid {
    position: absolute;
    inset: 0;
    opacity: .42;
    pointer-events: none;
    background-image:
        linear-gradient(rgba(111,234,255,.08) 1px, transparent 1px),
        linear-gradient(90deg, rgba(111,234,255,.08) 1px, transparent 1px);
    background-size: 64px 64px;
    mask-image: linear-gradient(90deg, rgba(0,0,0,.28), #000 48%, rgba(0,0,0,.85));
}

.contact-v3-hero::after {
    content: "";
    position: absolute;
    left: -10%;
    right: -10%;
    bottom: -160px;
    height: 280px;
    border-radius: 50%;
    background: #fff;
}

.contact-v3-hero-inner {
    position: relative;
    z-index: 2;
    min-height: inherit;
    display: grid;
    grid-template-columns: minmax(0, 1.08fr) minmax(390px, .92fr);
    gap: clamp(44px, 6vw, 92px);
    align-items: center;
    padding-top: clamp(78px, 9vw, 124px);
    padding-bottom: clamp(138px, 14vw, 180px);
}

.contact-v3-breadcrumb {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 28px;
    color: rgba(255,255,255,.58);
    font-size: .78rem;
}

.contact-v3-breadcrumb a {
    color: rgba(255,255,255,.82);
    text-decoration: none;
}

.contact-v3-breadcrumb a:hover {
    color: var(--contact-cyan-soft);
}

.contact-v3-kicker,
.contact-v3-section-label {
    display: inline-flex;
    align-items: center;
    min-height: 30px;
    padding: 6px 12px;
    border: 1px solid rgba(16,196,223,.28);
    border-radius: 999px;
    color: #08aeca;
    background: rgba(111,234,255,.09);
    font-family: "Oxanium", sans-serif;
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: .15em;
}

.contact-v3-hero .contact-v3-kicker {
    color: var(--contact-cyan-soft);
    border-color: rgba(111,234,255,.30);
    background: rgba(111,234,255,.07);
}

.contact-v3-hero h1 {
    max-width: 760px;
    margin: 18px 0 22px;
    color: #fff;
    font-size: clamp(3.05rem, 5.4vw, 5.9rem);
    line-height: .98;
    letter-spacing: -.035em;
}

.contact-v3-hero-copy > p:not(.contact-v3-trust-note) {
    max-width: 720px;
    margin: 0;
    color: rgba(255,255,255,.72);
    font: 400 clamp(.96rem, 1.25vw, 1.09rem)/1.78 Inter, sans-serif;
}

.contact-v3-hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 30px;
}

.contact-v3-trust-note {
    display: flex;
    align-items: flex-start;
    gap: 11px;
    max-width: 700px;
    margin: 27px 0 0;
    color: rgba(255,255,255,.53);
    font: 400 .78rem/1.65 Inter, sans-serif;
}

.contact-v3-trust-note i {
    margin-top: 3px;
    color: var(--contact-cyan-soft);
}

/* Contact hero signal map */
.contact-v3-signal-map {
    position: relative;
    width: min(100%, 510px);
    aspect-ratio: 1;
    justify-self: end;
    isolation: isolate;
}

.contact-v3-signal-map::before {
    content: "";
    position: absolute;
    inset: 12%;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(111,234,255,.13), transparent 62%);
    filter: blur(4px);
}

.contact-signal-ring {
    position: absolute;
    left: 50%;
    top: 50%;
    border: 1px solid rgba(111,234,255,.18);
    border-radius: 50%;
    transform: translate(-50%,-50%);
    animation: contactSignalBreath 5.2s ease-in-out infinite;
}

.contact-signal-ring--1 { width: 42%; height: 42%; }
.contact-signal-ring--2 { width: 66%; height: 66%; animation-delay: .55s; }
.contact-signal-ring--3 { width: 90%; height: 90%; animation-delay: 1.1s; }

.contact-signal-node {
    position: absolute;
    z-index: 3;
    display: grid;
    place-items: center;
    color: #071f38;
    background: linear-gradient(145deg, #73ecff, #15bdd7);
    border: 1px solid rgba(255,255,255,.28);
    box-shadow: 0 18px 45px rgba(0,0,0,.16), 0 0 0 8px rgba(111,234,255,.035);
}

.contact-signal-node--core {
    left: 50%;
    top: 50%;
    width: 132px;
    height: 132px;
    border-radius: 34px;
    transform: translate(-50%,-50%);
}

.contact-signal-node--core i {
    font-size: 2.4rem;
}

.contact-signal-node--core span {
    margin-top: -23px;
    font-family: "Oxanium", sans-serif;
    font-size: .67rem;
    font-weight: 700;
    letter-spacing: .18em;
}

.contact-signal-node--network,
.contact-signal-node--security,
.contact-signal-node--systems,
.contact-signal-node--digital {
    width: 62px;
    height: 62px;
    border-radius: 19px;
    color: #71eaff;
    background: rgba(2,20,38,.90);
    box-shadow: 0 16px 38px rgba(0,0,0,.18);
    animation: contactNodeFloat 4.5s ease-in-out infinite;
}

.contact-signal-node--network { left: 5%; top: 46%; }
.contact-signal-node--security { right: 5%; top: 46%; animation-delay: -.9s; }
.contact-signal-node--systems { left: 44%; top: 4%; animation-delay: -1.8s; }
.contact-signal-node--digital { left: 44%; bottom: 4%; animation-delay: -2.7s; }

.contact-signal-route {
    position: absolute;
    z-index: 2;
    height: 1px;
    width: 31%;
    overflow: hidden;
    background: linear-gradient(90deg, transparent, rgba(111,234,255,.25), transparent);
}

.contact-signal-route i {
    position: absolute;
    top: -2px;
    left: -8px;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: #7af0ff;
    box-shadow: 0 0 14px 4px rgba(111,234,255,.5);
    animation: contactPacket 2.9s ease-in-out infinite;
}

.contact-signal-route--a { left: 18%; top: 50%; }
.contact-signal-route--b { right: 18%; top: 50%; transform: rotate(180deg); }
.contact-signal-route--c { left: 35%; top: 29%; transform: rotate(90deg); }
.contact-signal-route--d { left: 35%; bottom: 29%; transform: rotate(-90deg); }
.contact-signal-route--b i { animation-delay: -.7s; }
.contact-signal-route--c i { animation-delay: -1.4s; }
.contact-signal-route--d i { animation-delay: -2.1s; }

@keyframes contactSignalBreath {
    0%,100% { opacity: .42; transform: translate(-50%,-50%) scale(.985); }
    50% { opacity: .88; transform: translate(-50%,-50%) scale(1.025); }
}

@keyframes contactNodeFloat {
    0%,100% { transform: translateY(0); }
    50% { transform: translateY(-7px); }
}

@keyframes contactPacket {
    0% { left: -8px; opacity: 0; }
    12% { opacity: 1; }
    86% { opacity: 1; }
    100% { left: calc(100% + 6px); opacity: 0; }
}

/* Direct contact channels */
.contact-v3-channels {
    position: relative;
    z-index: 4;
    margin-top: -72px;
}

.contact-v3-channel-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0,1fr));
    border: 1px solid rgba(6,58,86,.12);
    border-radius: 28px;
    background: #fff;
    box-shadow: 0 26px 70px rgba(6,33,56,.12);
    overflow: hidden;
}

.contact-v3-channel {
    position: relative;
    min-height: 230px;
    display: grid;
    grid-template-columns: 54px 1fr auto;
    gap: 16px;
    align-items: start;
    padding: 30px 27px;
    color: var(--contact-ink);
    text-decoration: none;
    border-right: 1px solid rgba(6,58,86,.10);
    background: #fff;
    transition: background-color 520ms ease, color 520ms ease;
    overflow: hidden;
}

.contact-v3-channel:last-child { border-right: 0; }

.contact-v3-channel::before {
    content: "";
    position: absolute;
    inset: auto 0 0;
    height: 3px;
    transform: scaleX(0);
    transform-origin: left;
    background: linear-gradient(90deg, #10c4df, #70efff, transparent);
    transition: transform 720ms cubic-bezier(.22,1,.36,1);
}

.contact-v3-channel:hover,
.contact-v3-channel:focus-visible {
    color: var(--contact-ink);
    background: #f7fcfe;
}

.contact-v3-channel:hover::before,
.contact-v3-channel:focus-visible::before {
    transform: scaleX(1);
}

.contact-v3-channel-trace {
    position: absolute;
    left: -35%;
    top: 0;
    width: 34%;
    height: 100%;
    pointer-events: none;
    opacity: 0;
    background: linear-gradient(90deg, transparent, rgba(111,234,255,.16), transparent);
    transform: skewX(-16deg);
}

.contact-v3-channel:hover .contact-v3-channel-trace,
.contact-v3-channel:focus-visible .contact-v3-channel-trace {
    animation: contactChannelSweep 1050ms cubic-bezier(.22,1,.36,1) both;
}

@keyframes contactChannelSweep {
    0% { left: -35%; opacity: 0; }
    16% { opacity: 1; }
    100% { left: 120%; opacity: 0; }
}

.contact-v3-channel-icon {
    width: 54px;
    height: 54px;
    display: grid;
    place-items: center;
    border-radius: 17px;
    color: #06324e;
    background: #e3f8fc;
    font-size: 1.25rem;
    transition: box-shadow 520ms ease, background-color 520ms ease;
}

.contact-v3-channel:hover .contact-v3-channel-icon,
.contact-v3-channel:focus-visible .contact-v3-channel-icon {
    background: #c9f4fb;
    box-shadow: 0 0 0 8px rgba(16,196,223,.07), 0 0 0 15px rgba(16,196,223,.035);
}

.contact-v3-channel-copy {
    min-width: 0;
    display: grid;
    gap: 5px;
}

.contact-v3-channel-copy small {
    color: #00a9c7;
    font: 700 .60rem/1.4 "Oxanium", sans-serif;
    letter-spacing: .14em;
    text-transform: uppercase;
}

.contact-v3-channel-copy strong {
    color: var(--contact-ink);
    font: 700 1.08rem/1.3 "Oxanium", sans-serif;
}

.contact-v3-channel-detail {
    color: #153b58 !important;
    font: 600 .78rem/1.45 Inter, sans-serif !important;
}

.contact-v3-channel-copy > span:last-child {
    color: #61758a;
    font: 400 .72rem/1.62 Inter, sans-serif;
}

.contact-v3-channel-arrow {
    margin-top: 19px;
    color: #08b8d4;
    font-size: .76rem;
    transition: transform 460ms cubic-bezier(.22,1,.36,1);
}

.contact-v3-channel:hover .contact-v3-channel-arrow,
.contact-v3-channel:focus-visible .contact-v3-channel-arrow {
    transform: translateX(5px);
}

/* Starting routes */
.contact-v3-starting {
    padding-top: clamp(92px, 9vw, 132px) !important;
}

.itpulse-contact-page .section-heading h2 {
    margin: 14px auto 14px;
    color: var(--contact-ink);
    font-size: clamp(2.15rem, 3.4vw, 3.6rem);
    line-height: 1.08;
}

.itpulse-contact-page .section-heading p {
    margin: 0 auto;
    color: #5a6d80;
    font: 400 .94rem/1.75 Inter, sans-serif;
}

.contact-v3-route-grid {
    display: grid;
    grid-template-columns: repeat(4,minmax(0,1fr));
    gap: 18px;
    margin-top: 46px;
}

.contact-v3-route-card {
    position: relative;
    min-height: 330px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    text-align: left;
    padding: 30px;
    border: 1px solid rgba(6,58,86,.12);
    border-radius: 24px;
    color: var(--contact-ink);
    background: linear-gradient(155deg,#fff,#f7fbfd);
    box-shadow: 0 12px 34px rgba(7,26,51,.055);
    cursor: pointer;
    overflow: hidden;
    transition:
        transform 560ms cubic-bezier(.22,.61,.36,1),
        box-shadow 560ms cubic-bezier(.22,.61,.36,1),
        border-color 560ms ease;
}

.contact-v3-route-card::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: -2px;
    height: 2px;
    transform: translateX(-105%);
    background: linear-gradient(90deg,transparent,#6feaff,#0cbcd7,transparent);
    transition: transform 820ms cubic-bezier(.22,1,.36,1);
}

.contact-v3-route-card:hover,
.contact-v3-route-card:focus-visible {
    transform: translateY(-6px);
    border-color: rgba(16,196,223,.28);
    box-shadow: 0 28px 72px rgba(7,26,51,.13);
    outline: none;
}

.contact-v3-route-card:hover::after,
.contact-v3-route-card:focus-visible::after {
    transform: translateX(105%);
}

.contact-v3-route-index {
    position: absolute;
    right: 24px;
    top: 22px;
    color: #dceaf1;
    font: 800 2.2rem/1 "Oxanium", sans-serif;
}

.contact-v3-route-icon {
    width: 62px;
    height: 62px;
    display: grid;
    place-items: center;
    margin-bottom: 48px;
    border-radius: 19px;
    color: #06334d;
    background: #dcf7fb;
    font-size: 1.35rem;
}

.contact-v3-route-card strong {
    color: var(--contact-ink);
    font: 700 1.06rem/1.4 "Oxanium", sans-serif;
}

.contact-v3-route-card > span:not(.contact-v3-route-index):not(.contact-v3-route-icon) {
    margin-top: 10px;
    color: #607386;
    font: 400 .77rem/1.68 Inter, sans-serif;
}

.contact-v3-route-card em {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-top: auto;
    padding-top: 22px;
    color: #0a4560;
    font: 700 .72rem/1.4 Inter, sans-serif;
    font-style: normal;
}

.contact-v3-route-card em i { color: #00b9d6; font-size: .68rem; }

/* Form / brief */
.contact-v3-form-section {
    position: relative;
    background:
        linear-gradient(rgba(11,87,116,.05) 1px, transparent 1px),
        linear-gradient(90deg, rgba(11,87,116,.05) 1px, transparent 1px),
        #f5fafc;
    background-size: 62px 62px;
}

.contact-v3-form-layout {
    display: grid;
    grid-template-columns: minmax(300px,.72fr) minmax(0,1.28fr);
    gap: clamp(34px,5vw,70px);
    align-items: start;
}

.contact-v3-brief {
    position: sticky;
    top: 126px;
    padding: 20px 0;
}

.contact-v3-brief h2 {
    margin: 16px 0 18px;
    color: var(--contact-ink);
    font-size: clamp(2.25rem,3.6vw,3.8rem);
    line-height: 1.05;
}

.contact-v3-brief > p {
    max-width: 600px;
    color: #5f7286;
    font: 400 .93rem/1.78 Inter,sans-serif;
}

.contact-v3-brief-list {
    display: grid;
    gap: 10px;
    margin-top: 32px;
}

.contact-v3-brief-list article {
    display: grid;
    grid-template-columns: 48px 1fr;
    gap: 15px;
    padding: 18px 0;
    border-top: 1px solid rgba(6,58,86,.10);
}

.contact-v3-brief-list article > span {
    width: 42px;
    height: 42px;
    display: grid;
    place-items: center;
    border-radius: 13px;
    color: #00a7c3;
    background: #e2f7fb;
    font: 700 .72rem/1 "Oxanium",sans-serif;
}

.contact-v3-brief-list strong {
    color: var(--contact-ink);
    font: 700 .85rem/1.4 "Oxanium",sans-serif;
}

.contact-v3-brief-list p {
    margin: 6px 0 0;
    color: #66798b;
    font: 400 .76rem/1.63 Inter,sans-serif;
}

.contact-v3-brief-note {
    display: grid;
    grid-template-columns: 42px 1fr;
    gap: 14px;
    margin-top: 26px;
    padding: 18px;
    border: 1px solid rgba(6,58,86,.10);
    border-radius: 18px;
    background: rgba(255,255,255,.72);
}

.contact-v3-brief-note i {
    width: 42px;
    height: 42px;
    display: grid;
    place-items: center;
    border-radius: 13px;
    color: #063650;
    background: #dbf5f9;
}

.contact-v3-brief-note p {
    margin: 0;
    color: #617386;
    font: 400 .73rem/1.62 Inter,sans-serif;
}

.contact-v3-brief-note strong { color: #173951; }

.contact-v3-form-card {
    position: relative;
    overflow: hidden;
    padding: clamp(28px,4vw,46px);
    border: 1px solid rgba(6,58,86,.12);
    border-radius: 30px;
    background: #fff;
    box-shadow: 0 30px 80px rgba(7,33,55,.10);
}

.contact-v3-form-card::before,
.contact-v3-form-card::after {
    content: "";
    position: absolute;
    pointer-events: none;
}

.contact-v3-form-card::before {
    width: 250px;
    height: 250px;
    right: -110px;
    top: -110px;
    border: 1px solid rgba(16,196,223,.13);
    border-radius: 50%;
    box-shadow: 0 0 0 34px rgba(16,196,223,.035), 0 0 0 68px rgba(16,196,223,.02);
}

.contact-v3-form-card::after {
    left: 0;
    top: 0;
    width: 100%;
    height: 3px;
    background: linear-gradient(90deg,#10c4df,#71ecff,transparent 76%);
}

.contact-v3-form-card-head {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 24px;
    padding-bottom: 28px;
    border-bottom: 1px solid rgba(6,58,86,.10);
}

.contact-v3-form-card-head h2 {
    margin: 13px 0 0;
    color: var(--contact-ink);
    font-size: clamp(1.8rem,2.6vw,2.75rem);
}

.contact-v3-form-status {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 9px 12px;
    border-radius: 999px;
    color: #456478;
    background: #eef8fb;
    font: 600 .67rem/1.3 Inter,sans-serif;
}

.contact-v3-form-status i {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #10c4df;
    box-shadow: 0 0 0 0 rgba(16,196,223,.28);
    animation: contactFormReady 2.6s ease-out infinite;
}

@keyframes contactFormReady {
    0% { box-shadow: 0 0 0 0 rgba(16,196,223,.30); }
    70%,100% { box-shadow: 0 0 0 8px rgba(16,196,223,0); }
}

.itpulse-contact-page .contact-form-modern {
    position: relative;
    z-index: 1;
    padding: 30px 0 0;
    margin: 0;
}

.contact-v3-form-grid {
    display: grid;
    grid-template-columns: repeat(2,minmax(0,1fr));
    gap: 18px 20px;
}

.itpulse-contact-page .contact-field {
    margin: 0;
}

.itpulse-contact-page .contact-field--full {
    grid-column: 1 / -1;
}

.itpulse-contact-page .contact-field label,
.itpulse-contact-page .contact-field legend {
    display: block;
    width: auto;
    margin: 0 0 8px;
    color: #153b55;
    font: 700 .75rem/1.4 Inter,sans-serif;
}

.itpulse-contact-page .contact-field label > span {
    color: #00b5d1;
}

.itpulse-contact-page .contact-field .form-control {
    width: 100%;
    min-height: 54px;
    padding: 13px 15px;
    border: 1px solid rgba(8,62,89,.14) !important;
    border-radius: 13px;
    color: #16364e;
    background: #f6fafc;
    box-shadow: none;
    font: 400 .82rem/1.45 Inter,sans-serif;
    transition: border-color 300ms ease, box-shadow 300ms ease, background-color 300ms ease;
}

.itpulse-contact-page select.form-control {
    cursor: pointer;
}

.itpulse-contact-page textarea.form-control {
    min-height: 180px;
    line-height: 1.65;
    resize: vertical;
}

.itpulse-contact-page .contact-field .form-control:focus {
    border-color: rgba(16,196,223,.72) !important;
    background: #fff;
    box-shadow: 0 0 0 4px rgba(16,196,223,.09);
    outline: none;
}

.itpulse-contact-page .contact-field .form-control.is-valid {
    border-color: rgba(36,162,125,.34) !important;
}

.itpulse-contact-page .contact-field .form-control.is-invalid {
    border-color: rgba(211,73,73,.42) !important;
}

.contact-v3-field-help {
    display: block;
    margin-top: 7px;
    color: #7a8997;
    font: 400 .67rem/1.5 Inter,sans-serif;
}

.contact-v3-preference {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
    padding: 0;
    border: 0;
}

.contact-v3-preference legend {
    flex: 0 0 100%;
}

.contact-v3-preference label {
    position: relative;
    margin: 0 !important;
    cursor: pointer;
}

.contact-v3-preference input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.contact-v3-preference label span {
    display: inline-flex;
    min-height: 42px;
    align-items: center;
    padding: 9px 15px;
    border: 1px solid rgba(8,62,89,.13);
    border-radius: 999px;
    color: #536a7d !important;
    background: #f7fafc;
    font-size: .72rem;
    transition: color 260ms ease, background-color 260ms ease, border-color 260ms ease;
}

.contact-v3-preference input:checked + span {
    color: #06354d !important;
    border-color: rgba(16,196,223,.34);
    background: #dff7fb;
}

.contact-v3-preference input:focus-visible + span {
    outline: 3px solid rgba(16,196,223,.20);
    outline-offset: 2px;
}

.contact-v3-honeypot {
    position: absolute;
    left: -9999px;
    width: 1px;
    height: 1px;
    overflow: hidden;
}

.itpulse-contact-page .contact-form-submit {
    display: flex;
    align-items: center;
    gap: 18px;
    margin-top: 26px;
}

.itpulse-contact-page .contact-form-submit > span {
    max-width: 340px;
    color: #788897;
    font: 400 .66rem/1.5 Inter,sans-serif;
}

.itpulse-contact-page .contact-alert {
    position: relative;
    z-index: 2;
    margin: 24px 0 0;
    border-radius: 15px;
    font-size: .8rem;
}

/* Location */
.contact-v3-location-grid {
    display: grid;
    grid-template-columns: minmax(300px,.75fr) minmax(0,1.25fr);
    gap: clamp(36px,6vw,82px);
    align-items: center;
}

.contact-v3-location-copy h2 {
    margin: 15px 0 15px;
    color: var(--contact-ink);
    font-size: clamp(2.25rem,3.8vw,3.85rem);
    line-height: 1.04;
}

.contact-v3-location-copy > p {
    color: #627487;
    font: 400 .92rem/1.75 Inter,sans-serif;
}

.contact-v3-address-card {
    display: grid;
    grid-template-columns: 58px 1fr;
    gap: 16px;
    align-items: center;
    margin: 30px 0 22px;
    padding: 20px;
    border: 1px solid rgba(6,58,86,.12);
    border-radius: 20px;
    background: #f7fbfd;
}

.contact-v3-address-card > span {
    width: 58px;
    height: 58px;
    display: grid;
    place-items: center;
    border-radius: 18px;
    color: #06354d;
    background: #d8f5fa;
}

.contact-v3-address-card div { display: grid; gap: 5px; }
.contact-v3-address-card small { color: #00a9c5; font: 700 .62rem/1.4 "Oxanium",sans-serif; text-transform: uppercase; letter-spacing: .12em; }
.contact-v3-address-card strong { color: #173a53; font: 700 .78rem/1.55 Inter,sans-serif; }

.contact-v3-location-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 17px;
}

.contact-v3-simple-link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: #153c56;
    font: 700 .76rem/1.4 Inter,sans-serif;
    text-decoration: none;
}

.contact-v3-simple-link i { color: #00b7d3; }
.contact-v3-simple-link:hover { color: #00a9c6; }

.contact-v3-map-wrap {
    position: relative;
    min-height: 490px;
    overflow: hidden;
    padding: 13px;
    border: 1px solid rgba(6,58,86,.12);
    border-radius: 28px;
    background: #f4fafc;
    box-shadow: 0 24px 65px rgba(7,30,50,.09);
}

.contact-v3-map {
    width: 100%;
    min-height: 464px;
    display: block;
    border: 0;
    border-radius: 19px;
    filter: saturate(.82) contrast(.97);
}

.contact-v3-map-corner {
    position: absolute;
    z-index: 2;
    width: 54px;
    height: 54px;
    pointer-events: none;
}

.contact-v3-map-corner--tl {
    left: 8px;
    top: 8px;
    border-left: 2px solid #14c9e4;
    border-top: 2px solid #14c9e4;
    border-radius: 16px 0 0;
}

.contact-v3-map-corner--br {
    right: 8px;
    bottom: 8px;
    border-right: 2px solid #14c9e4;
    border-bottom: 2px solid #14c9e4;
    border-radius: 0 0 16px;
}

/* What happens next */
.contact-v3-next {
    background: #f5f9fb;
}

.contact-v3-next-grid {
    display: grid;
    grid-template-columns: repeat(3,minmax(0,1fr));
    gap: 18px;
    margin-top: 44px;
}

.contact-v3-next-grid article {
    position: relative;
    min-height: 270px;
    padding: 30px;
    border: 1px solid rgba(6,58,86,.11);
    border-radius: 24px;
    background: #fff;
    overflow: hidden;
}

.contact-v3-next-grid article::after {
    content: "";
    position: absolute;
    right: -45px;
    bottom: -45px;
    width: 130px;
    height: 130px;
    border: 1px solid rgba(16,196,223,.10);
    border-radius: 50%;
    box-shadow: 0 0 0 22px rgba(16,196,223,.025);
}

.contact-v3-next-grid article > span {
    position: absolute;
    right: 24px;
    top: 24px;
    color: #e1edf2;
    font: 800 2.2rem/1 "Oxanium",sans-serif;
}

.contact-v3-next-grid article > i {
    width: 58px;
    height: 58px;
    display: grid;
    place-items: center;
    margin-bottom: 46px;
    border-radius: 18px;
    color: #06354d;
    background: #ddf7fb;
    font-size: 1.2rem;
}

.contact-v3-next-grid h3 {
    margin: 0 0 10px;
    color: var(--contact-ink);
    font-size: 1.1rem;
}

.contact-v3-next-grid p {
    margin: 0;
    color: #64778a;
    font: 400 .78rem/1.66 Inter,sans-serif;
}

/* Responsive contact architecture */
@media (max-width: 1199.98px) {
    .contact-v3-hero-inner { grid-template-columns: minmax(0,1.05fr) minmax(330px,.75fr); gap: 34px; }
    .contact-v3-channel-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .contact-v3-channel:nth-child(2) { border-right: 0; }
    .contact-v3-channel:nth-child(-n+2) { border-bottom: 1px solid rgba(6,58,86,.10); }
    .contact-v3-route-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}

@media (max-width: 991.98px) {
    .contact-v3-hero { min-height: 0; }
    .contact-v3-hero-inner {
        grid-template-columns: 1fr;
        padding-top: 84px;
        padding-bottom: 160px;
    }
    .contact-v3-hero h1 { max-width: 820px; }
    .contact-v3-signal-map { width: min(76vw,460px); justify-self: center; }
    .contact-v3-form-layout,
    .contact-v3-location-grid { grid-template-columns: 1fr; }
    .contact-v3-brief { position: static; padding: 0; }
    .contact-v3-location-copy { max-width: 720px; }
}

@media (max-width: 767.98px) {
    .itpulse-contact-page .section-shell { padding: 72px 0; }
    .contact-v3-hero-inner { padding-top: 64px; padding-bottom: 146px; }
    .contact-v3-hero h1 { font-size: clamp(2.7rem,11vw,4.3rem); }
    .contact-v3-hero-actions { display: grid; grid-template-columns: 1fr; }
    .contact-v3-hero-actions .btn { width: 100%; }
    .contact-v3-signal-map { width: min(88vw,390px); }
    .contact-signal-node--core { width: 108px; height: 108px; border-radius: 28px; }
    .contact-signal-node--core i { font-size: 2rem; }
    .contact-signal-node--network,
    .contact-signal-node--security,
    .contact-signal-node--systems,
    .contact-signal-node--digital { width: 52px; height: 52px; border-radius: 16px; }
    .contact-v3-channel-grid { grid-template-columns: 1fr; border-radius: 23px; }
    .contact-v3-channel { min-height: 190px; border-right: 0; border-bottom: 1px solid rgba(6,58,86,.10); }
    .contact-v3-channel:last-child { border-bottom: 0; }
    .contact-v3-route-grid { grid-template-columns: 1fr; }
    .contact-v3-route-card { min-height: 280px; }
    .contact-v3-form-grid { grid-template-columns: 1fr; }
    .itpulse-contact-page .contact-field--full { grid-column: auto; }
    .contact-v3-form-card-head { display: grid; }
    .contact-v3-form-status { justify-self: start; }
    .itpulse-contact-page .contact-form-submit { align-items: stretch; flex-direction: column; }
    .itpulse-contact-page .contact-form-submit .btn { width: 100%; }
    .itpulse-contact-page .contact-form-submit > span { max-width: none; text-align: center; }
    .contact-v3-map-wrap { min-height: 380px; }
    .contact-v3-map { min-height: 354px; }
    .contact-v3-next-grid { grid-template-columns: 1fr; }
}

@media (max-width: 479.98px) {
    .contact-v3-channels { margin-top: -58px; }
    .contact-v3-channel { grid-template-columns: 48px 1fr; padding: 24px 21px; }
    .contact-v3-channel-icon { width: 48px; height: 48px; border-radius: 15px; }
    .contact-v3-channel-arrow { display: none; }
    .contact-v3-route-card { padding: 24px; }
    .contact-v3-form-card { padding: 24px 18px; border-radius: 23px; }
    .contact-v3-address-card { grid-template-columns: 48px 1fr; padding: 16px; }
    .contact-v3-address-card > span { width: 48px; height: 48px; border-radius: 15px; }
    .contact-v3-location-actions { align-items: stretch; flex-direction: column; }
    .contact-v3-location-actions .btn { width: 100%; }
    .contact-v3-simple-link { justify-content: center; }
    .contact-v3-map-wrap { min-height: 330px; padding: 9px; border-radius: 22px; }
    .contact-v3-map { min-height: 312px; border-radius: 16px; }
}

@media (prefers-reduced-motion: reduce) {
    .contact-signal-ring,
    .contact-signal-node,
    .contact-signal-route i,
    .contact-v3-form-status i {
        animation: none !important;
    }
    .contact-v3-route-card,
    .contact-v3-channel,
    .contact-v3-channel::before,
    .contact-v3-route-card::after {
        transition-duration: 1ms !important;
    }
}

.contact-v3-form-card.is-contact-route-target {
    animation: contactRouteTarget 1350ms cubic-bezier(.22,1,.36,1) both;
}

@keyframes contactRouteTarget {
    0% { box-shadow: 0 30px 80px rgba(7,33,55,.10), 0 0 0 0 rgba(16,196,223,0); }
    34% { box-shadow: 0 30px 80px rgba(7,33,55,.12), 0 0 0 7px rgba(16,196,223,.12); }
    100% { box-shadow: 0 30px 80px rgba(7,33,55,.10), 0 0 0 0 rgba(16,196,223,0); }
}

/* ========================================================================== 
   ITPulse 2.9 — Blog / Knowledge Hub
   Separate editorial motion language: pulse traces, signal rails and reading flow.
   The approved Home-page legacy Blog cards are intentionally untouched.
   ========================================================================== */

.blog-hub-hero,
.blog-article-hero {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    color: #fff;
    background:
        radial-gradient(circle at 83% 18%, rgba(8,198,227,.22), transparent 30%),
        linear-gradient(118deg, #03101e 0%, #082947 58%, #0a3f5d 100%);
}

.blog-hub-hero::before,
.blog-article-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -2;
    opacity: .24;
    background-image:
        linear-gradient(rgba(255,255,255,.07) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,.07) 1px, transparent 1px);
    background-size: 54px 54px;
    mask-image: linear-gradient(to right, #000 0%, #000 72%, transparent 100%);
}

.blog-hub-hero::after,
.blog-article-hero::after {
    content: "";
    position: absolute;
    left: -16%;
    right: -16%;
    bottom: 0;
    height: 1px;
    opacity: .8;
    background: linear-gradient(90deg, transparent, rgba(78,229,248,.78), transparent);
    box-shadow: 0 0 28px rgba(8,198,227,.42);
}

.blog-hub-hero {
    padding: clamp(82px, 8vw, 122px) 0 clamp(78px, 7vw, 112px);
}

.blog-hub-hero-grid,
.blog-article-hero-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(320px, .85fr);
    gap: clamp(44px, 7vw, 108px);
    align-items: center;
}

.blog-breadcrumb {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 9px;
    margin-bottom: 28px;
    color: rgba(255,255,255,.64);
    font-size: .9rem;
}

.blog-breadcrumb a {
    color: rgba(255,255,255,.82);
    text-decoration: none;
    transition: color 240ms ease;
}

.blog-breadcrumb a:hover,
.blog-breadcrumb a:focus-visible {
    color: #61e6f6;
}

.blog-hub-kicker,
.blog-article-hero-labels a,
.blog-article-hero-labels span {
    color: #58e4f5;
}

.blog-hub-hero h1,
.blog-article-hero h1 {
    max-width: 820px;
    margin: 20px 0 24px;
    font-family: Saira, Inter, sans-serif;
    font-weight: 700;
    line-height: .98;
    letter-spacing: -.045em;
}

.blog-hub-hero h1 {
    font-size: clamp(3rem, 5.8vw, 5.4rem);
}

.blog-hub-hero h1 span,
.blog-article-hero h1 span {
    color: #62e6f6;
}

.blog-hub-hero-copy > p,
.blog-article-deck {
    max-width: 760px;
    margin: 0;
    color: rgba(255,255,255,.76);
    font-size: clamp(1rem, 1.4vw, 1.12rem);
    line-height: 1.8;
}

.blog-hub-hero-actions,
.blog-hub-cta-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 32px;
}

.blog-hub-outline-btn {
    color: #fff !important;
    border: 1px solid rgba(255,255,255,.58) !important;
    background: transparent !important;
    transition: transform 360ms cubic-bezier(.22,.61,.36,1), background 260ms ease, border-color 260ms ease !important;
}

.blog-hub-outline-btn:hover,
.blog-hub-outline-btn:focus-visible {
    color: #fff !important;
    border-color: #69e8f7 !important;
    background: rgba(255,255,255,.07) !important;
    transform: translateY(-2px);
}

.blog-hub-signal,
.blog-article-hero-signal {
    position: relative;
    width: min(100%, 430px);
    aspect-ratio: 1;
    justify-self: end;
    display: grid;
    place-items: center;
}

.blog-hub-signal::before,
.blog-hub-signal::after,
.blog-article-hero-signal::before,
.blog-article-hero-signal::after {
    content: "";
    position: absolute;
    inset: 14%;
    border-radius: 50%;
    border: 1px solid rgba(88,228,245,.19);
    animation: blogPulseRing 4.2s ease-in-out infinite;
}

.blog-hub-signal::after,
.blog-article-hero-signal::after {
    inset: 27%;
    animation-delay: -1.4s;
}

.blog-hub-signal-core,
.blog-article-signal-core {
    position: relative;
    z-index: 2;
    width: 148px;
    height: 148px;
    display: grid;
    place-items: center;
    align-content: center;
    gap: 10px;
    border-radius: 32px;
    color: #06172b;
    background: linear-gradient(145deg, #69e8f7, #17c5e1);
    box-shadow: 0 24px 70px rgba(8,198,227,.24), inset 0 1px 0 rgba(255,255,255,.48);
    animation: blogSignalFloat 5.4s ease-in-out infinite;
}

.blog-hub-signal-core i,
.blog-article-signal-core i {
    font-size: 2.2rem;
}

.blog-hub-signal-core span,
.blog-article-signal-core small {
    font-family: Saira, sans-serif;
    font-size: .68rem;
    letter-spacing: .22em;
}

.blog-hub-wave,
.blog-article-orbit {
    position: absolute;
    border-radius: 50%;
    border: 1px solid rgba(87,229,247,.17);
}

.blog-hub-wave--one,
.blog-article-orbit--one { inset: 7%; }
.blog-hub-wave--two,
.blog-article-orbit--two { inset: 21%; }
.blog-hub-wave--three,
.blog-article-orbit--three { inset: 35%; }

.blog-hub-node {
    position: absolute;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: #68e9f8;
    box-shadow: 0 0 20px rgba(104,233,248,.82);
}
.blog-hub-node--one { top: 22%; left: 21%; animation: blogNodeBlink 2.8s ease-in-out infinite; }
.blog-hub-node--two { right: 16%; top: 43%; animation: blogNodeBlink 2.8s .8s ease-in-out infinite; }
.blog-hub-node--three { left: 34%; bottom: 14%; animation: blogNodeBlink 2.8s 1.5s ease-in-out infinite; }

@keyframes blogPulseRing {
    0%,100% { transform: scale(.96); opacity: .45; }
    50% { transform: scale(1.035); opacity: .95; }
}

@keyframes blogSignalFloat {
    0%,100% { transform: translate3d(0,0,0); }
    50% { transform: translate3d(0,-7px,0); }
}

@keyframes blogNodeBlink {
    0%,100% { opacity: .35; transform: scale(.78); }
    50% { opacity: 1; transform: scale(1.14); }
}

.blog-featured-section {
    position: relative;
    z-index: 2;
    margin-top: clamp(-44px, -3.5vw, -26px);
    padding-bottom: clamp(62px, 7vw, 96px);
}

.blog-featured-card {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1.06fr) minmax(0, .94fr);
    overflow: hidden;
    border: 1px solid rgba(7,26,51,.09);
    border-radius: 30px;
    background: #fff;
    box-shadow: 0 18px 52px rgba(7,26,51,.09);
    transition: transform 620ms cubic-bezier(.22,.61,.36,1), box-shadow 620ms cubic-bezier(.22,.61,.36,1), border-color 420ms ease;
}

.blog-featured-card:hover,
.blog-featured-card:focus-within {
    transform: translate3d(0,-6px,0);
    border-color: rgba(8,198,227,.26);
    box-shadow: 0 32px 82px rgba(7,26,51,.15);
}

.blog-featured-media,
.blog-editorial-media {
    position: relative;
    display: block;
    overflow: hidden;
    background: linear-gradient(135deg, #071a33, #0d4564);
}

.blog-featured-media { min-height: 440px; }

.blog-featured-media img,
.blog-editorial-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 760ms cubic-bezier(.22,.61,.36,1), filter 600ms ease;
}

.blog-featured-card:hover .blog-featured-media img,
.blog-featured-card:focus-within .blog-featured-media img,
.blog-editorial-card:hover .blog-editorial-media img,
.blog-editorial-card:focus-within .blog-editorial-media img {
    transform: scale(1.035);
}

.blog-featured-media-grid,
.blog-editorial-media-overlay {
    position: absolute;
    inset: 0;
    pointer-events: none;
    background:
        linear-gradient(transparent 70%, rgba(2,16,31,.48)),
        linear-gradient(rgba(255,255,255,.08) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,.08) 1px, transparent 1px);
    background-size: auto, 42px 42px, 42px 42px;
    opacity: .34;
}

.blog-media-fallback {
    width: 100%;
    height: 100%;
    min-height: inherit;
    display: grid;
    place-items: center;
    color: #5ee5f6;
    background:
        radial-gradient(circle at 50% 50%, rgba(8,198,227,.18), transparent 30%),
        linear-gradient(135deg, #061629, #0b3b59);
}

.blog-media-fallback i { font-size: 3.4rem; }

.blog-featured-copy {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: clamp(34px, 5vw, 72px);
}

.blog-article-eyebrow,
.blog-article-hero-labels {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 14px;
    color: #00bcd8;
    font-family: Saira, sans-serif;
    font-size: .72rem;
    font-weight: 600;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.blog-article-eyebrow a,
.blog-article-hero-labels a {
    color: inherit;
    text-decoration: none;
}

.blog-featured-copy h2,
.blog-section-heading h2,
.blog-editorial-card h3,
.blog-related-card h3,
.blog-author-card h2,
.blog-comments-shell h2,
.blog-hub-cta-card h2 {
    font-family: Saira, Inter, sans-serif;
    color: #071a33;
}

.blog-featured-copy h2 {
    margin: 18px 0 18px;
    font-size: clamp(2rem, 3vw, 3.2rem);
    line-height: 1.05;
    letter-spacing: -.035em;
}

.blog-featured-copy h2 a,
.blog-editorial-card h3 a,
.blog-related-card h3 a {
    color: inherit;
    text-decoration: none;
}

.blog-featured-copy > p {
    color: #52657a;
    font-size: 1rem;
    line-height: 1.75;
}

.blog-meta-line {
    display: flex;
    flex-wrap: wrap;
    gap: 12px 24px;
    margin: 16px 0 22px;
    color: #6e7f91;
    font-size: .88rem;
}

.blog-meta-line span { display: inline-flex; align-items: center; gap: 8px; }
.blog-meta-line i { color: #00bdd9; }

.blog-read-link {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    width: max-content;
    color: #071a33;
    font-family: Saira, sans-serif;
    font-weight: 600;
    text-decoration: none;
}

.blog-read-link span { color: #00bdd9; transition: transform 320ms ease; }
.blog-read-link:hover span,
.blog-read-link:focus-visible span { transform: translateX(4px); }

.blog-card-signal {
    position: absolute;
    z-index: 5;
    left: 0;
    right: 0;
    bottom: 0;
    height: 2px;
    overflow: hidden;
    pointer-events: none;
    opacity: 0;
    transition: opacity 300ms ease;
}

.blog-card-signal::before {
    content: "";
    position: absolute;
    top: 0;
    left: -42%;
    width: 42%;
    height: 100%;
    background: linear-gradient(90deg, transparent, #5be5f5 48%, #fff 70%, transparent);
    box-shadow: 0 0 18px rgba(8,198,227,.7);
}

.blog-featured-card:hover .blog-card-signal,
.blog-featured-card:focus-within .blog-card-signal,
.blog-editorial-card:hover .blog-card-signal,
.blog-editorial-card:focus-within .blog-card-signal,
.blog-related-card:hover .blog-card-signal,
.blog-related-card:focus-within .blog-card-signal,
.blog-editorial-card.is-blog-mobile-preview .blog-card-signal {
    opacity: 1;
}

.blog-featured-card:hover .blog-card-signal::before,
.blog-featured-card:focus-within .blog-card-signal::before,
.blog-editorial-card:hover .blog-card-signal::before,
.blog-editorial-card:focus-within .blog-card-signal::before,
.blog-related-card:hover .blog-card-signal::before,
.blog-related-card:focus-within .blog-card-signal::before,
.blog-editorial-card.is-blog-mobile-preview .blog-card-signal::before {
    animation: blogSignalSweep 1.25s cubic-bezier(.22,.61,.36,1) both;
}

@keyframes blogSignalSweep {
    from { transform: translateX(0); }
    to { transform: translateX(340%); }
}

.blog-articles-section {
    padding: clamp(70px, 8vw, 112px) 0;
    background:
        linear-gradient(rgba(9,79,108,.045) 1px, transparent 1px),
        linear-gradient(90deg, rgba(9,79,108,.045) 1px, transparent 1px),
        #f7fbfd;
    background-size: 48px 48px;
}

.blog-section-heading {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 30px;
    margin-bottom: 28px;
}

.blog-section-heading h2 {
    margin: 10px 0 0;
    font-size: clamp(2.1rem, 4vw, 3.65rem);
    line-height: 1.05;
    letter-spacing: -.035em;
}

.blog-section-heading > p {
    max-width: 430px;
    margin: 0;
    color: #637489;
    line-height: 1.7;
}

.blog-category-filter {
    display: flex;
    gap: 9px;
    overflow-x: auto;
    padding: 4px 2px 18px;
    margin-bottom: 24px;
    scrollbar-width: thin;
}

.blog-category-filter a {
    flex: 0 0 auto;
    padding: 10px 18px;
    color: #183049;
    border: 1px solid rgba(7,26,51,.10);
    border-radius: 999px;
    background: rgba(255,255,255,.86);
    box-shadow: 0 6px 18px rgba(7,26,51,.035);
    font-family: Saira, sans-serif;
    font-size: .82rem;
    font-weight: 600;
    text-decoration: none;
    transition: transform 280ms ease, color 280ms ease, background 280ms ease, border-color 280ms ease;
}

.blog-category-filter a:hover,
.blog-category-filter a:focus-visible,
.blog-category-filter a.is-active {
    color: #fff;
    border-color: #071a33;
    background: #071a33;
    transform: translateY(-2px);
}

.blog-editorial-grid,
.blog-related-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 24px;
}

.blog-editorial-card,
.blog-related-card {
    position: relative;
    overflow: hidden;
    border: 1px solid rgba(7,26,51,.09);
    border-radius: 24px;
    background: #fff;
    box-shadow: 0 12px 34px rgba(7,26,51,.06);
    transform: translate3d(0,0,0);
    transition: transform 620ms cubic-bezier(.22,.61,.36,1), box-shadow 620ms cubic-bezier(.22,.61,.36,1), border-color 420ms ease;
}

.blog-editorial-card:hover,
.blog-editorial-card:focus-within,
.blog-related-card:hover,
.blog-related-card:focus-within {
    transform: translate3d(0,-6px,0);
    border-color: rgba(8,198,227,.24);
    box-shadow: 0 28px 68px rgba(7,26,51,.13);
}

.blog-editorial-media { aspect-ratio: 16 / 10; }

.blog-editorial-body { padding: 26px 26px 24px; }

.blog-editorial-card h3,
.blog-related-card h3 {
    margin: 15px 0 12px;
    font-size: 1.55rem;
    line-height: 1.15;
    letter-spacing: -.02em;
}

.blog-editorial-body > p,
.blog-related-card > p {
    color: #5a6b7e;
    line-height: 1.7;
}

.blog-editorial-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding-top: 18px;
    margin-top: 18px;
    border-top: 1px solid rgba(7,26,51,.08);
    color: #7a8997;
    font-size: .84rem;
}

.blog-editorial-footer a {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    color: #071a33;
    font-family: Saira, sans-serif;
    font-weight: 600;
    text-decoration: none;
}

.blog-editorial-footer a span { color: #00bdd9; }

.blog-pagination {
    display: flex;
    justify-content: center;
    gap: 8px;
    margin-top: 48px;
}

.blog-pagination .page-numbers {
    width: 44px;
    height: 44px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    color: #071a33;
    background: #fff;
    border: 1px solid rgba(7,26,51,.10);
    text-decoration: none;
}

.blog-pagination .page-numbers.current,
.blog-pagination a.page-numbers:hover {
    color: #fff;
    background: #071a33;
    border-color: #071a33;
}

.blog-single-result-note,
.blog-empty-state {
    padding: 42px;
    text-align: center;
    color: #637489;
    border: 1px dashed rgba(7,26,51,.14);
    border-radius: 24px;
    background: rgba(255,255,255,.72);
}

.blog-empty-state i {
    margin-bottom: 14px;
    color: #00bdd9;
    font-size: 2rem;
}

.blog-hub-cta {
    padding: clamp(66px, 8vw, 104px) 0;
    background: #fff;
}

.blog-hub-cta-card {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: clamp(34px, 7vw, 90px);
    align-items: center;
    padding: clamp(34px, 5vw, 64px);
    color: #fff;
    border-radius: 28px;
    background:
        radial-gradient(circle at 85% 20%, rgba(8,198,227,.18), transparent 26%),
        linear-gradient(118deg, #03101e, #0a3d5a);
    box-shadow: 0 24px 70px rgba(7,26,51,.14);
}

.blog-hub-cta-card .itpulse-kicker { color: #60e6f6; border-color: rgba(96,230,246,.28); background: rgba(96,230,246,.06); }
.blog-hub-cta-card h2 { margin: 16px 0 12px; color: #fff; font-size: clamp(2rem, 3.2vw, 3.25rem); line-height: 1.08; }
.blog-hub-cta-card p { max-width: 760px; margin: 0; color: rgba(255,255,255,.75); line-height: 1.75; }
.blog-hub-cta-actions { margin-top: 0; flex-direction: column; min-width: 280px; }

/* Single article */
.blog-reading-progress {
    position: fixed;
    z-index: 10050;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    pointer-events: none;
    background: transparent;
}

.blog-reading-progress span {
    display: block;
    width: 0;
    height: 100%;
    background: linear-gradient(90deg, #00bdd9, #66e9f8, #fff);
    box-shadow: 0 0 12px rgba(8,198,227,.6);
}

.blog-article-hero { padding: clamp(72px, 7vw, 112px) 0 clamp(76px, 7vw, 110px); }
.blog-article-hero h1 { font-size: clamp(3rem, 6vw, 5.7rem); }
.blog-article-hero-labels { margin-bottom: 18px; }

.blog-article-hero-labels a,
.blog-article-hero-labels span {
    padding: 8px 13px;
    border: 1px solid rgba(87,229,247,.22);
    border-radius: 999px;
    background: rgba(7,26,51,.2);
}

.blog-article-byline {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-top: 28px;
}

.blog-author-avatar,
.blog-author-card-avatar {
    border-radius: 50%;
    object-fit: cover;
    border: 3px solid rgba(255,255,255,.82);
    box-shadow: 0 10px 28px rgba(0,0,0,.16);
}

.blog-article-byline div { display: grid; gap: 2px; }
.blog-article-byline strong { color: #fff; font-family: Saira, sans-serif; }
.blog-article-byline span { color: rgba(255,255,255,.62); font-size: .88rem; }

.blog-article-featured {
    position: relative;
    z-index: 3;
    margin-top: -44px;
    padding-bottom: clamp(54px, 6vw, 86px);
}

.blog-article-featured-frame {
    margin: 0;
    overflow: hidden;
    border-radius: 28px;
    border: 8px solid #fff;
    background: #fff;
    box-shadow: 0 26px 80px rgba(7,26,51,.16);
}

.blog-article-featured-frame img {
    width: 100%;
    max-height: 680px;
    object-fit: cover;
    display: block;
}

/* V3.0.20 — Insight article featured-media top-state reset.
   Keep the approved upward reveal, but restore the exact initial hero state
   whenever the visitor returns to the absolute top of the page. */
.blog-article-featured-frame {
    transition: opacity 420ms ease, transform 560ms cubic-bezier(.22,.61,.36,1);
    will-change: opacity, transform;
}

.blog-article-featured-frame.is-insight-top-reset {
    opacity: 0 !important;
    transform: translate3d(0, 42px, 0) !important;
    pointer-events: none;
}

@media (prefers-reduced-motion: reduce) {
    .blog-article-featured-frame {
        transition-duration: 1ms !important;
    }
}

.blog-article-body-section { padding: 18px 0 clamp(66px, 8vw, 112px); }

.blog-article-layout {
    display: grid;
    grid-template-columns: 220px minmax(0, 820px);
    gap: clamp(36px, 6vw, 84px);
    justify-content: center;
    align-items: start;
}

.blog-article-side {
    position: sticky;
    top: 128px;
    display: grid;
    gap: 18px;
}

.blog-share-box,
.blog-article-toc {
    padding: 20px;
    border: 1px solid rgba(7,26,51,.09);
    border-radius: 18px;
    background: #f8fbfd;
}

.blog-share-box > span,
.blog-article-toc > strong {
    display: block;
    margin-bottom: 12px;
    color: #071a33;
    font-family: Saira, sans-serif;
    font-size: .86rem;
    font-weight: 600;
}

.blog-share-box > div { display: flex; flex-wrap: wrap; gap: 7px; }

.blog-share-box a,
.blog-share-box button {
    width: 38px;
    height: 38px;
    display: grid;
    place-items: center;
    padding: 0;
    color: #0b2741;
    border: 1px solid rgba(7,26,51,.10);
    border-radius: 50%;
    background: #fff;
    text-decoration: none;
    cursor: pointer;
    transition: transform 260ms ease, color 260ms ease, background 260ms ease;
}

.blog-share-box a:hover,
.blog-share-box button:hover,
.blog-share-box a:focus-visible,
.blog-share-box button:focus-visible {
    color: #fff;
    background: #071a33;
    transform: translateY(-2px);
}

.blog-share-box button.is-copied { color: #071a33; background: #5ce5f5; }

.blog-article-toc ol { margin: 0; padding: 0; list-style: none; display: grid; gap: 9px; }
.blog-article-toc li { margin: 0; }
.blog-article-toc li.is-level-3 { padding-left: 12px; }
.blog-article-toc a { color: #66798e; font-size: .82rem; line-height: 1.4; text-decoration: none; transition: color 240ms ease; }
.blog-article-toc a:hover,
.blog-article-toc a:focus-visible,
.blog-article-toc a.is-active { color: #00aeca; }

.blog-editorial-content {
    min-width: 0;
    color: #31475d;
    font-size: 1.075rem;
    line-height: 1.85;
}

.blog-editorial-content > :first-child { margin-top: 0; }
.blog-editorial-content h2,
.blog-editorial-content h3,
.blog-editorial-content h4 {
    scroll-margin-top: 136px;
    color: #071a33;
    font-family: Saira, Inter, sans-serif;
    line-height: 1.18;
    letter-spacing: -.02em;
}

.blog-editorial-content h2 { margin: 2.2em 0 .75em; font-size: clamp(1.9rem, 3vw, 2.65rem); }
.blog-editorial-content h3 { margin: 1.9em 0 .7em; font-size: clamp(1.5rem, 2.2vw, 2rem); }
.blog-editorial-content p { margin: 0 0 1.35em; }
.blog-editorial-content a { color: #009fba; text-underline-offset: 3px; }
.blog-editorial-content ul,
.blog-editorial-content ol { margin: 0 0 1.5em; padding-left: 1.35em; }
.blog-editorial-content li { margin-bottom: .5em; }

.blog-editorial-content blockquote {
    position: relative;
    margin: 2.2em 0;
    padding: 28px 30px 28px 34px;
    color: #183049;
    border: 0;
    border-left: 4px solid #00bdd9;
    border-radius: 0 18px 18px 0;
    background: #f3fafc;
    font-size: 1.08em;
}

.blog-editorial-content pre,
.blog-editorial-content code {
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
}

.blog-editorial-content pre {
    overflow-x: auto;
    padding: 22px;
    color: #d9f7fb;
    border-radius: 16px;
    background: #061629;
}

.blog-editorial-content img {
    max-width: 100%;
    height: auto;
    border-radius: 18px;
}

.blog-editorial-content table {
    width: 100%;
    margin: 1.6em 0;
    border-collapse: collapse;
}

.blog-editorial-content th,
.blog-editorial-content td { padding: 12px 14px; border: 1px solid rgba(7,26,51,.10); }
.blog-editorial-content th { color: #071a33; background: #f1f8fa; }

.blog-topic-strip { padding-bottom: 56px; }
.blog-topic-strip-inner { display: flex; gap: 18px; align-items: center; justify-content: center; flex-wrap: wrap; padding: 22px; border-top: 1px solid rgba(7,26,51,.08); border-bottom: 1px solid rgba(7,26,51,.08); }
.blog-topic-strip-inner strong { font-family: Saira, sans-serif; color: #071a33; }
.blog-topic-strip-inner div { display: flex; gap: 8px; flex-wrap: wrap; }
.blog-topic-strip-inner a { padding: 7px 12px; color: #456077; border-radius: 999px; background: #f1f8fa; text-decoration: none; font-size: .82rem; }

.blog-author-section { padding: 0 0 clamp(70px, 8vw, 104px); }
.blog-author-card { display: grid; grid-template-columns: auto 1fr; gap: 24px; align-items: center; max-width: 980px; margin: 0 auto; padding: 32px; border: 1px solid rgba(7,26,51,.09); border-radius: 24px; background: linear-gradient(145deg, #fff, #f5fbfd); box-shadow: 0 18px 48px rgba(7,26,51,.07); }
.blog-author-card-avatar { width: 96px; height: 96px; border-color: #fff; }
.blog-author-card h2 { margin: 9px 0 8px; font-size: 1.7rem; }
.blog-author-card p { margin: 0; color: #607489; line-height: 1.7; }

.blog-related-section { padding: clamp(72px, 8vw, 106px) 0; background: #f7fbfd; }
.blog-related-card { padding: 28px; }
.blog-related-card h3 { font-size: 1.4rem; }
.blog-related-card > p { min-height: 72px; }

.blog-post-navigation-section { padding: 54px 0; }
.blog-post-navigation { display: grid; grid-template-columns: 1fr auto 1fr; gap: 24px; align-items: center; padding: 26px 0; border-top: 1px solid rgba(7,26,51,.10); border-bottom: 1px solid rgba(7,26,51,.10); }
.blog-post-nav-item a { display: grid; gap: 4px; color: #071a33; text-decoration: none; }
.blog-post-nav-item span { color: #00aeca; font-size: .78rem; text-transform: uppercase; letter-spacing: .1em; }
.blog-post-nav-item strong { font-family: Saira, sans-serif; font-size: 1rem; }
.blog-post-nav-item--next { text-align: right; }
.blog-post-nav-home { width: 72px; height: 72px; display: grid; place-items: center; align-content: center; gap: 4px; color: #fff; border-radius: 20px; background: #071a33; text-decoration: none; box-shadow: 0 12px 30px rgba(7,26,51,.14); }
.blog-post-nav-home span { font-size: .58rem; letter-spacing: .08em; text-transform: uppercase; }

.blog-comments-section { padding: clamp(68px, 8vw, 104px) 0; background: #f7fbfd; }
.blog-comments-shell { max-width: 980px; margin: 0 auto; }
.blog-comments-heading,
.blog-comment-form-heading { margin-bottom: 26px; }
.blog-comments-heading h2,
.blog-comment-form-heading h2 { margin: 10px 0 0; font-size: clamp(2rem, 3vw, 2.8rem); }
.blog-comment-list { margin: 0 0 48px; padding: 0; list-style: none; }
.blog-comment-list .comment { margin: 0 0 18px; padding: 24px; border: 1px solid rgba(7,26,51,.09); border-radius: 20px; background: #fff; }
.blog-comment-list .children { margin: 18px 0 0 34px; padding: 0; list-style: none; }
.blog-comment-list .comment-body { color: #4f6479; }
.blog-comment-list .comment-author { display: flex; align-items: center; gap: 10px; margin-bottom: 8px; }
.blog-comment-list .comment-author img { border-radius: 50%; }
.blog-comment-list .comment-author .fn { color: #071a33; font-family: Saira, sans-serif; font-style: normal; font-weight: 600; }
.blog-comment-list .comment-metadata { margin: 0 0 12px 64px; font-size: .76rem; }
.blog-comment-list .comment-metadata a { color: #7a8997; text-decoration: none; }
.blog-comment-list .reply a { color: #00aeca; font-family: Saira, sans-serif; text-decoration: none; }

.blog-comments-shell .comment-respond { padding: clamp(28px, 4vw, 42px); border: 1px solid rgba(7,26,51,.09); border-radius: 24px; background: #fff; box-shadow: 0 18px 48px rgba(7,26,51,.06); }
.blog-comments-shell .comment-form { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px 18px; }
.blog-comments-shell .comment-form-comment,
.blog-comments-shell .comment-notes,
.blog-comments-shell .logged-in-as,
.blog-comments-shell .comment-form-cookies-consent,
.blog-comments-shell .form-submit { grid-column: 1 / -1; }
.blog-comments-shell label { display: block; margin-bottom: 7px; color: #071a33; font-family: Saira, sans-serif; font-size: .86rem; font-weight: 600; }
.blog-comments-shell textarea,
.blog-comments-shell input[type="text"],
.blog-comments-shell input[type="email"],
.blog-comments-shell input[type="url"] { width: 100%; max-width: 100%; padding: 12px 14px; border: 1px solid rgba(7,26,51,.15); border-radius: 12px; background: #fbfdfe; outline: none; transition: border-color 220ms ease, box-shadow 220ms ease; }
.blog-comments-shell textarea { min-height: 180px; resize: vertical; }
.blog-comments-shell textarea:focus,
.blog-comments-shell input:focus { border-color: #00bdd9; box-shadow: 0 0 0 4px rgba(8,198,227,.09); }
.blog-comment-submit { border: 0 !important; }

.blog-article-cta { padding-top: 72px; }

@media (max-width: 1199.98px) {
    .blog-hub-hero-grid,
    .blog-article-hero-grid { grid-template-columns: minmax(0,1fr) 330px; gap: 46px; }
    .blog-hub-signal,
    .blog-article-hero-signal { width: 330px; }
    .blog-editorial-grid,
    .blog-related-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .blog-article-layout { grid-template-columns: 190px minmax(0,760px); gap: 44px; }
}

@media (max-width: 991.98px) {
    .blog-hub-hero-grid,
    .blog-article-hero-grid { grid-template-columns: 1fr; }
    .blog-hub-signal,
    .blog-article-hero-signal { display: none; }
    .blog-featured-card { grid-template-columns: 1fr; }
    .blog-featured-media { min-height: 360px; }
    .blog-hub-cta-card { grid-template-columns: 1fr; }
    .blog-hub-cta-actions { flex-direction: row; min-width: 0; margin-top: 4px; }
    .blog-article-layout { grid-template-columns: 1fr; }
    .blog-article-side { position: static; grid-template-columns: 1fr 1fr; }
}

@media (max-width: 767.98px) {
    .blog-hub-hero,
    .blog-article-hero { padding: 62px 0 72px; }
    .blog-hub-hero h1,
    .blog-article-hero h1 { font-size: clamp(2.55rem, 12vw, 4.1rem); }
    .blog-hub-hero-copy > p,
    .blog-article-deck { font-size: .96rem; line-height: 1.7; }
    .blog-hub-hero-actions,
    .blog-hub-cta-actions { display: grid; grid-template-columns: 1fr; width: 100%; }
    .blog-hub-hero-actions .btn,
    .blog-hub-cta-actions .btn { width: 100%; }
    .blog-featured-section { margin-top: -24px; }
    .blog-featured-card { border-radius: 22px; }
    .blog-featured-media { min-height: 230px; }
    .blog-featured-copy { padding: 28px 24px 30px; }
    .blog-featured-copy h2 { font-size: 2rem; }
    .blog-section-heading { display: block; }
    .blog-section-heading > p { margin-top: 14px; }
    .blog-editorial-grid,
    .blog-related-grid { grid-template-columns: 1fr; gap: 18px; }
    .blog-editorial-card,
    .blog-related-card { border-radius: 20px; }
    .blog-editorial-body { padding: 22px 21px 21px; }
    .blog-editorial-card h3 { font-size: 1.42rem; }
    .blog-hub-cta-card { padding: 28px 22px; border-radius: 22px; }
    .blog-hub-cta-card h2 { font-size: 2rem; }
    .blog-article-featured { margin-top: -26px; padding-bottom: 50px; }
    .blog-article-featured-frame { border-width: 5px; border-radius: 20px; }
    .blog-article-side { grid-template-columns: 1fr; }
    .blog-article-toc { display: none !important; }
    .blog-editorial-content { font-size: 1rem; line-height: 1.78; }
    .blog-author-card { grid-template-columns: 1fr; text-align: center; justify-items: center; padding: 28px 22px; }
    .blog-post-navigation { grid-template-columns: 1fr auto 1fr; gap: 12px; }
    .blog-post-nav-item strong { display: none; }
    .blog-post-nav-home { width: 58px; height: 58px; border-radius: 16px; }
    .blog-post-nav-home span { display: none; }
    .blog-comments-shell .comment-form { grid-template-columns: 1fr; }
    .blog-comments-shell .comment-form > p { grid-column: 1 / -1; }
    .blog-comment-list .children { margin-left: 12px; }
}

@media (prefers-reduced-motion: reduce) {
    .blog-hub-signal::before,
    .blog-hub-signal::after,
    .blog-article-hero-signal::before,
    .blog-article-hero-signal::after,
    .blog-hub-signal-core,
    .blog-article-signal-core,
    .blog-hub-node { animation: none !important; }
}

/* ========================================================================== 
   ITPulse 2.9.1 — Blog family refinement
   Tightens editorial rhythm, fixes hero contrast and keeps Blog discoverable.
   No approved Home/Services/Solutions/Projects motion families are changed.
   ========================================================================== */

/* Force reliable contrast against the dark Blog hero, independent of global H1 rules. */
.blog-hub-hero h1,
.blog-article-hero h1 {
    color: #fff !important;
    text-shadow: 0 8px 30px rgba(0,0,0,.12);
}

.blog-hub-hero h1 span,
.blog-article-hero h1 span {
    color: #62e6f6 !important;
}

/* Bring Blog-family hero rhythm in line with the approved site pages. */
.blog-hub-hero {
    padding: clamp(52px, 5vw, 72px) 0 clamp(62px, 5.5vw, 82px);
}

.category .blog-hub-hero,
.tag .blog-hub-hero,
.archive .blog-hub-hero {
    padding-top: clamp(44px, 4.2vw, 62px);
    padding-bottom: clamp(54px, 4.8vw, 72px);
}

.blog-article-hero {
    padding: clamp(52px, 5vw, 72px) 0 clamp(62px, 5.5vw, 82px);
}

.blog-breadcrumb {
    margin-bottom: 18px;
}

.blog-hub-hero h1,
.blog-article-hero h1 {
    margin-top: 15px;
    margin-bottom: 18px;
}

.blog-hub-hero-actions {
    margin-top: 24px;
}

/* Featured story stays prominent without creating a large empty transition band. */
.blog-featured-section {
    margin-top: -30px;
    padding-bottom: clamp(42px, 4.6vw, 64px);
}

.blog-featured-media {
    min-height: 400px;
}

/* Knowledge grid uses the available width instead of leaving a false empty third column. */
.blog-editorial-grid--count-1 {
    grid-template-columns: minmax(0, 620px);
}

.blog-editorial-grid--count-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    max-width: 980px;
}

.blog-articles-section {
    padding: clamp(54px, 5.5vw, 76px) 0;
}

.blog-section-heading {
    margin-bottom: 22px;
}

.blog-category-filter {
    margin-bottom: 20px;
}

.blog-single-result-note,
.blog-empty-state {
    padding: 26px 30px;
    min-height: 0;
}

.blog-single-result-note p,
.blog-empty-state p {
    margin-bottom: 0;
}

.blog-hub-cta {
    padding: clamp(48px, 5vw, 72px) 0;
}

/* Single-article tail: same components, tighter and more deliberate vertical rhythm. */
.blog-article-featured {
    margin-top: -30px;
    padding-bottom: clamp(42px, 4.6vw, 64px);
}

.blog-article-body-section {
    padding: 12px 0 clamp(46px, 5vw, 72px);
}

.blog-topic-strip {
    padding-bottom: 38px;
}

.blog-author-section {
    padding-bottom: clamp(46px, 5vw, 72px);
}

.blog-related-section {
    padding: clamp(52px, 5.4vw, 78px) 0;
}

.blog-post-navigation-section {
    padding: 38px 0;
}

.blog-comments-section {
    padding: clamp(52px, 5.4vw, 78px) 0;
}

.blog-article-cta {
    padding-top: 48px;
}

/* The injected Insights navigation item uses the same active/hover language as the rest. */
.navbar .navbar-nav > .nav-item > .nav-link.active[href*="/blog"],
.navbar .navbar-nav > .nav-item > .nav-link[href*="/blog"]:hover,
.navbar .navbar-nav > .nav-item > .nav-link[href*="/blog"]:focus-visible {
    color: #fff;
}

@media (max-width: 991.98px) {
    .blog-editorial-grid--count-1,
    .blog-editorial-grid--count-2 {
        max-width: none;
    }
}

@media (max-width: 767.98px) {
    .blog-hub-hero,
    .blog-article-hero,
    .category .blog-hub-hero,
    .tag .blog-hub-hero,
    .archive .blog-hub-hero {
        padding: 40px 0 52px;
    }

    .blog-breadcrumb { margin-bottom: 14px; }

    .blog-hub-hero h1,
    .blog-article-hero h1 {
        margin-top: 12px;
        margin-bottom: 15px;
    }

    .blog-hub-hero-actions { margin-top: 20px; }
    .blog-featured-section { margin-top: -18px; padding-bottom: 40px; }
    .blog-articles-section { padding: 46px 0; }
    .blog-hub-cta { padding: 44px 0; }
    .blog-article-featured { margin-top: -18px; padding-bottom: 40px; }
    .blog-article-body-section { padding-bottom: 46px; }
    .blog-author-section { padding-bottom: 46px; }
    .blog-related-section { padding: 48px 0; }
    .blog-comments-section { padding: 48px 0; }
    .blog-post-navigation-section { padding: 32px 0; }
    .blog-article-cta { padding-top: 40px; }
    .blog-single-result-note,
    .blog-empty-state { padding: 22px 20px; }
}


/* =========================================================
   v2.9.4 — Insight author profiles, archive links and Team hub
   ========================================================= */

.blog .home-blog-author-avatar {
    width: 100px;
    height: 100px;
    object-fit: cover;
    margin-top: 12px;
    margin-bottom: 22px !important;
}

.home-section-archive-link {
    margin-top: clamp(34px, 4vw, 52px);
}

.home-section-archive-link .btn {
    min-width: 210px;
    box-shadow: 0 14px 34px rgba(0, 189, 217, .16);
}

/* Keep the now-approved All Articles control intact in packaged releases. */
.blog-post-nav-home {
    position: relative;
    overflow: hidden;
    width: 118px;
    height: 66px;
    padding: 8px 16px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 5px;
    color: #fff;
    background: linear-gradient(145deg, #071a33 0%, #0a2341 100%);
    border: 1px solid rgba(27, 198, 225, .20);
    border-radius: 20px;
    text-decoration: none;
    box-shadow: 0 12px 30px rgba(7, 26, 51, .14);
    transform: translateY(0);
    transition:
        transform .55s cubic-bezier(.22, 1, .36, 1),
        box-shadow .55s cubic-bezier(.22, 1, .36, 1),
        border-color .35s ease,
        background .35s ease;
}

.blog-post-nav-home i {
    position: relative;
    z-index: 2;
    color: #fff;
    font-size: 16px;
    line-height: 1;
}

.blog-post-nav-home span {
    position: relative;
    z-index: 2;
    display: block;
    color: #fff;
    font-size: 10px;
    line-height: 1.2;
    letter-spacing: .08em;
    text-transform: uppercase;
    white-space: nowrap;
}

.blog-post-nav-home::before {
    content: "";
    position: absolute;
    top: 0;
    left: 22%;
    right: 22%;
    height: 2px;
    border-radius: 0 0 10px 10px;
    background: #18c6e1;
    opacity: .75;
    transition: left .45s ease, right .45s ease, opacity .35s ease;
}

.blog-post-nav-home:hover,
.blog-post-nav-home:focus-visible {
    color: #fff;
    transform: translateY(-5px);
    border-color: rgba(27, 198, 225, .55);
    background: linear-gradient(145deg, #09213f 0%, #0c3154 100%);
    box-shadow: 0 18px 38px rgba(7, 26, 51, .22), 0 6px 16px rgba(7, 26, 51, .16);
}

.blog-post-nav-home:hover i,
.blog-post-nav-home:hover span,
.blog-post-nav-home:focus-visible i,
.blog-post-nav-home:focus-visible span {
    color: #fff;
}

.blog-post-nav-home:hover::before,
.blog-post-nav-home:focus-visible::before {
    left: 12%;
    right: 12%;
    opacity: 1;
}

/* Team archive */
.team-page-hero {
    position: relative;
    overflow: hidden;
    padding: clamp(74px, 8vw, 118px) 0;
    color: #fff;
    background: linear-gradient(118deg, #03101e 0%, #07314c 58%, #07536b 100%);
}

.team-page-hero-grid {
    position: absolute;
    inset: 0;
    opacity: .16;
    background-image:
        linear-gradient(rgba(88, 223, 241, .24) 1px, transparent 1px),
        linear-gradient(90deg, rgba(88, 223, 241, .24) 1px, transparent 1px);
    background-size: 58px 58px;
}

.team-page-hero h1 {
    max-width: 820px;
    margin: 18px 0;
    color: #fff;
    font-size: clamp(3rem, 5.8vw, 5.3rem);
    line-height: 1.03;
}

.team-page-hero p {
    max-width: 760px;
    color: rgba(255,255,255,.76);
    font-size: 1.05rem;
    line-height: 1.8;
}

.team-page-hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 28px;
}

.team-orbit-visual {
    position: relative;
    width: min(390px, 100%);
    aspect-ratio: 1;
    margin-inline: auto;
}

.team-orbit-ring,
.team-orbit-core,
.team-orbit-node { position: absolute; }
.team-orbit-ring { inset: 50%; border: 1px solid rgba(91,229,246,.22); border-radius: 50%; transform: translate(-50%,-50%); }
.team-orbit-ring--1 { width: 52%; height: 52%; }
.team-orbit-ring--2 { width: 72%; height: 72%; }
.team-orbit-ring--3 { width: 92%; height: 92%; }
.team-orbit-core { top: 50%; left: 50%; width: 138px; height: 138px; transform: translate(-50%,-50%); border-radius: 30px; display: grid; place-items: center; align-content: center; gap: 5px; color: #071a33; background: linear-gradient(145deg,#68e9f7,#18c6e1); box-shadow: 0 20px 50px rgba(0,0,0,.2); }
.team-orbit-core i { font-size: 2rem; }
.team-orbit-core small { text-transform: uppercase; letter-spacing: .18em; font-size: .62rem; }
.team-orbit-core strong { font-family: Saira,sans-serif; font-size: 1.1rem; }
.team-orbit-node { width: 58px; height: 58px; display:grid; place-items:center; border-radius:18px; color:#58e5f6; background:#061a2e; border:1px solid rgba(91,229,246,.2); box-shadow:0 12px 28px rgba(0,0,0,.16); }
.team-orbit-node--1 { top: 8%; left: 42%; }
.team-orbit-node--2 { right: 5%; top: 44%; }
.team-orbit-node--3 { bottom: 6%; left: 43%; }

.team-directory-section {
    padding: clamp(76px, 8vw, 112px) 0;
    background:
        linear-gradient(rgba(7,26,51,.035) 1px, transparent 1px),
        linear-gradient(90deg, rgba(7,26,51,.035) 1px, transparent 1px),
        #f7fbfd;
    background-size: 48px 48px;
}

.team-directory-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 28px;
    margin-top: 48px;
}

.team-directory-card {
    overflow: hidden;
    border: 1px solid rgba(7,26,51,.09);
    border-radius: 26px;
    background: #fff;
    box-shadow: 0 18px 48px rgba(7,26,51,.07);
    transform: translateY(0);
    transition: transform .6s cubic-bezier(.22,1,.36,1), box-shadow .6s cubic-bezier(.22,1,.36,1), border-color .35s ease;
}

.team-directory-card:hover {
    transform: translateY(-8px);
    border-color: rgba(0,189,217,.24);
    box-shadow: 0 28px 64px rgba(7,26,51,.13);
}

.team-directory-photo { aspect-ratio: 4/3; overflow:hidden; background:#eaf4f7; }
.team-directory-photo img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .9s cubic-bezier(.22,1,.36,1); }
.team-directory-card:hover .team-directory-photo img { transform:scale(1.035); }
.team-directory-placeholder { width:100%; height:100%; display:grid; place-items:center; color:#00bdd9; font-size:3rem; }
.team-directory-body { padding:28px; }
.team-directory-body h2 { margin:12px 0 4px; font-size:1.65rem; }
.team-directory-role { margin:0; color:#607489; }
.team-directory-socials { display:flex; gap:9px; margin-top:22px; }
.team-directory-socials a { width:38px; height:38px; display:grid; place-items:center; border-radius:12px; color:#071a33; background:#eaf8fb; text-decoration:none; transition:transform .35s ease, background-color .35s ease, color .35s ease; }
.team-directory-socials a:hover { transform:translateY(-3px); color:#fff; background:#00bdd9; }

.team-main-cta-section { padding: 0 0 clamp(76px,8vw,112px); background:#fff; }
.team-main-cta { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:48px; align-items:center; padding:clamp(34px,5vw,58px); color:#fff; border-radius:28px; background:linear-gradient(118deg,#03101e,#0a4561); box-shadow:0 24px 70px rgba(7,26,51,.14); }
.team-main-cta h2 { margin:14px 0 8px; color:#fff; font-size:clamp(2rem,3vw,3rem); }
.team-main-cta p { margin:0; color:rgba(255,255,255,.74); }

@media (max-width: 991.98px) {
    .team-directory-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
    .team-main-cta { grid-template-columns: 1fr; }
}

@media (max-width: 767.98px) {
    .blog .home-blog-author-avatar { margin-top: 10px; }
    .blog-post-nav-home { width:104px; height:60px; padding:7px 12px; border-radius:18px; gap:4px; }
    .blog-post-nav-home i { font-size:15px; }
    .blog-post-nav-home span { display:block; font-size:9px; letter-spacing:.07em; }
    .team-page-hero { padding: 60px 0 72px; }
    .team-page-hero h1 { font-size: clamp(2.55rem, 13vw, 4rem); }
    .team-directory-grid { grid-template-columns: 1fr; }
    .team-directory-section { padding: 68px 0; }
    .team-main-cta { border-radius:22px; padding:28px 22px; }
}


/* =========================================================
   v2.9.5 — Insight contributors + Team visual tuning
   ========================================================= */

/* Home Insights: preserve the existing card identity while giving the portrait
   breathing room and keeping all three desktop cards aligned. */
.blog .row > [class*="col-"] {
    display: flex;
}
.blog .blog-item {
    display: flex;
    flex-direction: column;
    width: 100%;
    height: 100%;
}
.blog .blog-item > img,
.blog .blog-item > a > img {
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
}
.blog .blog-content {
    flex: 1 1 auto;
    margin-top: -14px !important;
}
.blog .blog-content > p.py-2 {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
    overflow: hidden;
    min-height: 4.35em;
    margin-bottom: 0;
}
.blog .blog-coment {
    margin-top: auto;
}
.blog .home-blog-author-avatar,
.blog .itpulse-author-avatar-placeholder.home-blog-author-avatar {
    margin-top: 16px;
    margin-bottom: 20px !important;
}

/* Guest author fallback and article author details. */
.itpulse-author-avatar-placeholder {
    display: inline-grid;
    place-items: center;
    flex: 0 0 auto;
    overflow: hidden;
    border-radius: 50%;
    color: #607489;
    background: linear-gradient(145deg, #eef6f8, #dcecef);
}
.itpulse-author-avatar-placeholder i { font-size: .42em; }
.blog-article-byline .itpulse-author-avatar-placeholder {
    width: 56px;
    height: 56px;
    font-size: 56px;
}
.blog-author-card .itpulse-author-avatar-placeholder {
    width: 96px;
    height: 96px;
    font-size: 96px;
}
.blog-author-role {
    margin: 4px 0 8px !important;
    color: #00aeca !important;
    font-weight: 600;
}
.blog-author-links {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 14px;
}
.blog-author-links a {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 8px 12px;
    border: 1px solid rgba(7,26,51,.1);
    border-radius: 999px;
    color: #071a33;
    background: #f5fbfd;
    text-decoration: none;
    transition: transform .35s cubic-bezier(.22,1,.36,1), border-color .35s ease, color .35s ease;
}
.blog-author-links a:hover {
    transform: translateY(-2px);
    border-color: rgba(0,189,217,.38);
    color: #00aeca;
}

/* Team page: reduce the oversized first-screen gap and keep a denser, more
   purposeful rhythm like the other approved main pages. */
.team-page-hero {
    padding: clamp(44px, 4.6vw, 68px) 0 clamp(58px, 5.8vw, 84px);
}
.team-page-hero h1 {
    margin: 14px 0 16px;
}
.team-page-hero-actions {
    margin-top: 22px;
}
.team-directory-section {
    padding: clamp(62px, 6vw, 86px) 0;
}

/* Four people no longer leave an orphan card on a wide desktop row. */
.team-directory-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 22px;
    margin-top: 40px;
}
.team-directory-card {
    position: relative;
    border-radius: 24px;
}
.team-directory-card::before {
    content: "";
    position: absolute;
    z-index: 2;
    top: 0;
    left: 22px;
    right: 22px;
    height: 3px;
    border-radius: 0 0 999px 999px;
    background: linear-gradient(90deg, transparent, #18c6e1, transparent);
    opacity: .78;
}
.team-directory-photo {
    aspect-ratio: 1 / 1;
    background: #edf5f7;
}
.team-directory-photo img {
    object-position: center top;
}
.team-directory-body {
    padding: 23px 22px 25px;
}
.team-directory-body h2 {
    margin: 11px 0 5px;
    font-size: clamp(1.25rem, 1.5vw, 1.5rem);
    line-height: 1.18;
}
.team-directory-role {
    min-height: 2.7em;
    line-height: 1.45;
}
.team-directory-socials {
    margin-top: 17px;
}

/* Home Team carousel: slightly calmer proportions; animation remains intact. */
.team .team-name {
    min-height: 112px;
}
.team .team-name h4 {
    margin-bottom: 8px;
    line-height: 1.18;
}
.team .team-name p {
    line-height: 1.45;
}

@media (max-width: 1199.98px) {
    .team-directory-grid { grid-template-columns: repeat(2, minmax(0,1fr)); gap: 24px; }
}

@media (max-width: 767.98px) {
    .team-page-hero { padding: 36px 0 54px; }
    .team-directory-section { padding: 52px 0; }
    .team-directory-grid { grid-template-columns: 1fr; gap: 22px; margin-top: 32px; }
    .team-directory-photo { aspect-ratio: 4 / 3; }
    .blog .blog-content { margin-top: -12px !important; }
}

/* =========================================================
   V2.9.7 — Testimonials + Insights discussion cleanup
   Testimonials get a distinct quote/signal visual identity while retaining
   the established ITPulse typography, spacing and responsive language.
   ========================================================= */
.testimonial-v297 {
    overflow: hidden;
    background:
        radial-gradient(circle at 15% 18%, rgba(0, 199, 230, .07), transparent 27%),
        linear-gradient(180deg, #f7fbfd 0%, #ffffff 100%) !important;
}

.testimonial-v297 .container {
    position: relative;
}

.testimonial-v297-heading {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(260px, .65fr);
    gap: 42px;
    align-items: end;
    margin: 0 auto clamp(36px, 4vw, 54px);
}

.testimonial-v297-heading h2 {
    max-width: 760px;
    margin: 12px 0 0;
    color: #071a33;
    font-family: Saira, Inter, sans-serif;
    font-size: clamp(2.15rem, 3.4vw, 3.35rem);
    line-height: 1.06;
    letter-spacing: -.045em;
}

.testimonial-v297-heading > p {
    max-width: 440px;
    margin: 0 0 5px auto;
    color: #617287;
    font-size: .98rem;
    line-height: 1.7;
}

.testimonial-v297-carousel {
    position: relative;
    padding-top: 2px;
}

.testimonial-v297-carousel .owl-stage {
    display: flex;
    padding: 14px 0 24px;
}

.testimonial-v297-carousel .owl-item {
    display: flex;
}

.testimonial-v297-card {
    position: relative;
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    min-height: 390px;
    padding: 34px 34px 30px !important;
    overflow: hidden;
    border: 1px solid rgba(7, 26, 51, .10) !important;
    border-radius: 26px !important;
    background:
        linear-gradient(145deg, rgba(255,255,255,.99), rgba(248,252,254,.97)) !important;
    box-shadow: 0 14px 36px rgba(7, 26, 51, .075) !important;
}

.testimonial-v297-card::after {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    opacity: 0;
    background: radial-gradient(circle at 12% 10%, rgba(0,199,230,.10), transparent 26%);
    transition: opacity 520ms cubic-bezier(.22,.61,.36,1);
}

.testimonial-v297-card-top,
.testimonial-v297-copy,
.testimonial-v297-person {
    position: relative;
    z-index: 2;
}

.testimonial-v297-card-top {
    display: flex;
    align-items: center;
    min-height: 54px;
    gap: 12px;
    padding-right: 2px;
}

.testimonial-v297-quote {
    display: inline-grid;
    width: 48px;
    height: 48px;
    flex: 0 0 48px;
    place-items: center;
    border-radius: 15px;
    color: #071a33;
    background: rgba(0,199,230,.13);
    font-size: 1.05rem;
    box-shadow: inset 0 0 0 1px rgba(0,199,230,.11);
}

.testimonial-v297-context {
    max-width: 170px;
    padding: 6px 10px;
    overflow: hidden;
    border: 1px solid rgba(0,199,230,.18);
    border-radius: 999px;
    color: #008eaa;
    background: rgba(0,199,230,.055);
    font-family: Saira, Inter, sans-serif;
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-overflow: ellipsis;
    text-transform: uppercase;
    white-space: nowrap;
}

.testimonial-v297-rating {
    display: flex;
    gap: 3px;
    margin-left: auto;
    color: #00b7d4;
    font-size: .78rem;
}

.testimonial-v297-copy {
    display: -webkit-box;
    min-height: 145px;
    margin: 28px 0 30px;
    overflow: hidden;
    color: #19334d;
    font-size: 1rem;
    font-style: normal;
    line-height: 1.72;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 6;
}

.testimonial-v297-copy::before {
    content: "“";
    margin-right: 4px;
    color: #00b8d5;
    font-family: Georgia, serif;
    font-size: 1.45em;
    line-height: 0;
}

.testimonial-v297-copy::after {
    content: "”";
    margin-left: 2px;
    color: #00b8d5;
    font-family: Georgia, serif;
    font-size: 1.45em;
    line-height: 0;
}

.testimonial-v297-person {
    display: flex;
    align-items: center;
    gap: 16px;
    margin-top: auto;
    padding-top: 22px;
    border-top: 1px solid rgba(7,26,51,.08);
}

.testimonial-v297-avatar {
    display: grid;
    width: 64px;
    height: 64px;
    flex: 0 0 64px;
    overflow: hidden;
    place-items: center;
    border: 3px solid #fff;
    border-radius: 50%;
    background: #eaf7fa;
    box-shadow: 0 8px 22px rgba(7,26,51,.14);
}

.testimonial-v297-avatar-img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover;
    object-position: center;
}

.testimonial-v297-avatar-fallback {
    display: grid;
    width: 100%;
    height: 100%;
    place-items: center;
    color: #0b4a66;
    font-size: 1.2rem;
}

.testimonial-v297-person-copy {
    min-width: 0;
}

.testimonial-v297-person-copy h3 {
    margin: 0 0 4px;
    color: #071a33;
    font-family: Saira, Inter, sans-serif;
    font-size: 1.05rem;
    line-height: 1.25;
}

.testimonial-v297-person-copy p {
    display: flex;
    flex-wrap: wrap;
    gap: 3px 7px;
    margin: 0;
    color: #617287;
    font-size: .78rem;
    line-height: 1.45;
}

.testimonial-v297-meta-separator {
    color: #00b9d6;
}

.testimonial-v297-signal {
    position: absolute;
    z-index: 3;
    top: 50%;
    left: 0;
    width: 3px;
    height: 56px;
    border-radius: 0 3px 3px 0;
    background: linear-gradient(180deg, transparent, #08c6e3 22%, #08c6e3 78%, transparent);
    box-shadow: 0 0 14px rgba(8,198,227,.24);
    opacity: .72;
    transform: translateY(-50%);
}

.testimonial-v297-carousel .owl-item.center .testimonial-v297-card {
    border-color: rgba(0,199,230,.25) !important;
    box-shadow: 0 18px 44px rgba(7, 26, 51, .11) !important;
}

.testimonial-v297-carousel .owl-nav {
    position: absolute;
    top: -86px;
    right: 0;
    display: flex;
    gap: 10px;
    margin: 0;
}

.testimonial-v297-carousel .owl-nav button.owl-prev,
.testimonial-v297-carousel .owl-nav button.owl-next {
    display: grid;
    width: 48px;
    height: 48px;
    margin: 0 !important;
    place-items: center;
    border: 1px solid rgba(7,26,51,.12) !important;
    border-radius: 50% !important;
    color: #071a33 !important;
    background: #fff !important;
    box-shadow: 0 8px 22px rgba(7,26,51,.08);
    font-size: 1.05rem !important;
    transition: transform 360ms cubic-bezier(.22,.61,.36,1), border-color 360ms ease, background-color 360ms ease, color 360ms ease, box-shadow 360ms ease;
}

.testimonial-v297-carousel .owl-nav button:hover,
.testimonial-v297-carousel .owl-nav button:focus-visible {
    color: #071a33 !important;
    border-color: rgba(0,199,230,.55) !important;
    background: #13c6df !important;
    box-shadow: 0 12px 28px rgba(0,199,230,.20);
    transform: translateY(-2px);
}

.testimonial-v297-carousel .owl-dots {
    align-items: center;
    margin-top: 14px;
}

.testimonial-v297-carousel .owl-dot {
    width: 10px;
    height: 10px;
    margin: 0 5px;
    background: #c8dde2;
}

.testimonial-v297-carousel .owl-dot.active {
    width: 30px;
    background: #071a33;
}

.testimonial-v297-empty {
    max-width: 820px;
    margin: 0 auto;
    padding: 38px;
    border: 1px dashed rgba(7,26,51,.14);
    border-radius: 24px;
    text-align: center;
    background: rgba(255,255,255,.76);
}

.testimonial-v297-empty .testimonial-v297-quote {
    margin: 0 auto 18px;
}

.testimonial-v297-empty h3 {
    color: #071a33;
    font-family: Saira, Inter, sans-serif;
    font-size: 1.35rem;
}

.testimonial-v297-empty p {
    max-width: 620px;
    margin: 8px auto 0;
    color: #617287;
}

.blog-card-reading-time {
    pointer-events: none;
}

@media (max-width: 991.98px) {
    .testimonial-v297-heading {
        grid-template-columns: 1fr;
        gap: 14px;
        text-align: center;
    }

    .testimonial-v297-heading > p {
        margin: 0 auto;
    }

    .testimonial-v297-carousel .owl-nav {
        position: static;
        justify-content: center;
        margin-top: 10px;
    }
}

@media (max-width: 575.98px) {
    .testimonial-v297-card {
        min-height: 360px;
        padding: 27px 24px 25px !important;
        border-radius: 22px !important;
    }

    .testimonial-v297-context {
        max-width: 125px;
    }

    .testimonial-v297-copy {
        min-height: 128px;
        margin: 23px 0 25px;
        font-size: .94rem;
        -webkit-line-clamp: 6;
    }

    .testimonial-v297-person {
        gap: 13px;
    }

    .testimonial-v297-avatar {
        width: 58px;
        height: 58px;
        flex-basis: 58px;
    }
}


/* ========================================================================== 
   ITPulse 3.0.0 — About page identity & narrative refinement
   Built on the locked 2.9.7 baseline. Scope intentionally limited to About.
   ========================================================================== */

.itpulse-about-page {
    --about-deep: #062541;
    --about-soft: #f3f9fb;
}

.about-approach-section,
.about-team-bridge-section {
    padding: clamp(62px, 7vw, 96px) 0;
}

.about-approach-section {
    background: #fff;
}

.about-approach-panel {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, .9fr) minmax(0, 1.35fr);
    gap: clamp(34px, 6vw, 78px);
    align-items: center;
    padding: clamp(30px, 5vw, 62px);
    overflow: hidden;
    border: 1px solid rgba(7,26,51,.08);
    border-radius: 30px;
    background:
        radial-gradient(circle at 9% 16%, rgba(8,198,227,.10), transparent 24%),
        linear-gradient(135deg, #f8fcfd 0%, #fff 58%, #f1f8fb 100%);
    box-shadow: 0 24px 74px rgba(7,26,51,.075);
}

.about-approach-panel::before {
    content: "";
    position: absolute;
    width: 340px;
    height: 340px;
    right: -170px;
    bottom: -190px;
    border: 1px solid rgba(8,198,227,.16);
    border-radius: 50%;
    box-shadow:
        0 0 0 46px rgba(8,198,227,.025),
        0 0 0 92px rgba(8,198,227,.018);
    pointer-events: none;
}

.about-approach-copy,
.about-approach-flow {
    position: relative;
    z-index: 1;
}

.about-approach-copy .about-section-title {
    max-width: 560px;
    font-size: clamp(2rem, 3.8vw, 3.4rem);
}

.about-approach-copy > p {
    max-width: 620px;
    margin: 0;
    color: var(--about-muted);
    font-size: 1rem;
    line-height: 1.78;
}

.about-approach-note {
    display: inline-flex;
    gap: 9px;
    align-items: center;
    margin-top: 24px;
    color: var(--about-ink);
    font-weight: 750;
}

.about-approach-note i {
    width: 28px;
    height: 28px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    color: #05233f;
    background: rgba(8,198,227,.18);
    font-size: .72rem;
}

.about-approach-flow {
    display: grid;
    gap: 14px;
}

.about-approach-flow::before {
    content: "";
    position: absolute;
    top: 42px;
    bottom: 42px;
    left: 31px;
    width: 1px;
    background: linear-gradient(180deg, transparent, rgba(8,198,227,.65) 16%, rgba(8,198,227,.24) 84%, transparent);
}

.about-approach-flow::after {
    content: "";
    position: absolute;
    left: 28px;
    top: 42px;
    width: 7px;
    height: 58px;
    border-radius: 999px;
    background: linear-gradient(180deg, rgba(150,244,255,0), #74efff 42%, rgba(8,198,227,0));
    filter: drop-shadow(0 0 8px rgba(8,198,227,.72));
    animation: itpulseAboutFlow 4.6s ease-in-out infinite;
    pointer-events: none;
}

.about-approach-step {
    position: relative;
    min-height: 118px;
    display: grid;
    grid-template-columns: 62px 48px 1fr;
    gap: 16px;
    align-items: center;
    padding: 18px 22px;
    border: 1px solid rgba(7,26,51,.08);
    border-radius: 19px;
    background: rgba(255,255,255,.84);
    box-shadow: 0 10px 28px rgba(7,26,51,.045);
}

.about-approach-number {
    position: relative;
    z-index: 2;
    width: 62px;
    height: 62px;
    display: grid;
    place-items: center;
    border-radius: 18px;
    color: #067f9b;
    background: #e4f8fb;
    font-family: Saira, Inter, sans-serif;
    font-weight: 800;
}

.about-approach-step > i {
    width: 46px;
    height: 46px;
    display: grid;
    place-items: center;
    border-radius: 14px;
    color: var(--about-cyan);
    background: var(--about-deep);
    box-shadow: 0 10px 24px rgba(7,26,51,.12);
}

.about-approach-step h3 {
    margin: 0 0 5px;
    color: var(--about-ink);
    font-family: Saira, Inter, sans-serif;
    font-size: 1.1rem;
    font-weight: 750;
}

.about-approach-step p {
    margin: 0;
    color: var(--about-muted);
    font-size: .9rem;
    line-height: 1.55;
}

@keyframes itpulseAboutFlow {
    0%   { transform: translateY(-12px); opacity: 0; }
    16%  { opacity: .95; }
    76%  { opacity: .70; }
    100% { transform: translateY(248px); opacity: 0; }
}

/* Four broad capability pillars: navigation, not a duplicate Services grid. */
.about-capability-grid--pillars {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 18px;
}

.about-capability-pillar {
    min-height: 310px;
    justify-content: flex-start;
    padding: 28px;
}

.about-capability-pillar::before {
    width: 190px;
    height: 190px;
    right: -78px;
    bottom: -88px;
    background: radial-gradient(circle, rgba(8,198,227,.14), rgba(8,198,227,.035) 58%, transparent 60%);
}

.about-capability-signal {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 3px;
    overflow: hidden;
    background: rgba(8,198,227,.10);
}

.about-capability-signal::after {
    content: "";
    position: absolute;
    top: 0;
    left: -46%;
    width: 46%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(113,239,255,.88) 55%, transparent);
    opacity: 0;
}

.about-capability-eyebrow {
    position: relative;
    z-index: 1;
    display: block;
    margin-top: 24px;
    color: #08a9c5;
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .13em;
    text-transform: uppercase;
}

.about-capability-pillar .about-capability-title {
    max-width: none;
    margin-top: 7px;
    font-size: 1.38rem;
}

.about-capability-description {
    position: relative;
    z-index: 1;
    display: block;
    margin-top: 13px;
    color: var(--about-muted);
    font-size: .91rem;
    line-height: 1.62;
}

.about-capability-link {
    position: relative;
    z-index: 1;
    display: inline-flex;
    gap: 9px;
    align-items: center;
    margin-top: auto;
    padding-top: 24px;
    color: var(--about-ink);
    font-family: Saira, Inter, sans-serif;
    font-weight: 750;
}

.about-capability-link span {
    color: #08a9c5;
    transition: transform 420ms cubic-bezier(.22,1,.36,1);
}

@media (min-width: 768px) and (any-hover: hover) and (any-pointer: fine) {
    .about-capability-pillar:hover .about-capability-signal::after,
    .about-capability-pillar:focus-visible .about-capability-signal::after {
        opacity: 1;
        animation: itpulseAboutSignal 1.15s cubic-bezier(.22,.61,.36,1) 1;
    }

    .about-capability-pillar:hover .about-capability-link span,
    .about-capability-pillar:focus-visible .about-capability-link span {
        transform: translateX(5px);
    }
}

@keyframes itpulseAboutSignal {
    from { left: -46%; opacity: 0; }
    18%  { opacity: 1; }
    to   { left: 112%; opacity: 0; }
}

/* Delivery process: a subtle connected track without changing the approved card lift model. */
.about-process-grid {
    position: relative;
}

.about-process-grid::before {
    content: "";
    position: absolute;
    top: 51px;
    left: 7%;
    right: 7%;
    height: 1px;
    background: linear-gradient(90deg, transparent, rgba(8,198,227,.38) 10%, rgba(8,198,227,.38) 90%, transparent);
    pointer-events: none;
}

.about-process-card {
    z-index: 1;
}

/* Team bridge — dynamic WordPress team preview. */
.about-team-bridge-section {
    background: linear-gradient(180deg, #fff 0%, #f5fafc 100%);
}

.about-team-bridge {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(300px, .8fr);
    gap: clamp(30px, 6vw, 72px);
    align-items: center;
    padding: clamp(34px, 5vw, 66px);
    overflow: hidden;
    border-radius: 30px;
    color: #fff;
    background:
        radial-gradient(circle at 82% 18%, rgba(8,198,227,.20), transparent 27%),
        linear-gradient(135deg, #03101e 0%, #082b4c 66%, #073956 100%);
    box-shadow: 0 30px 82px rgba(7,26,51,.15);
}

.about-team-bridge::before {
    content: "";
    position: absolute;
    inset: 0;
    opacity: .10;
    background-image:
        linear-gradient(rgba(255,255,255,.09) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,.09) 1px, transparent 1px);
    background-size: 48px 48px;
    mask-image: linear-gradient(90deg, transparent 0%, #000 54%, #000 100%);
    pointer-events: none;
}

.about-team-bridge-copy,
.about-team-visual {
    position: relative;
    z-index: 1;
}

.about-team-bridge .itpulse-kicker {
    color: #72efff;
    border-color: rgba(114,239,255,.22);
    background: rgba(8,198,227,.10);
}

.about-team-bridge h2 {
    max-width: 760px;
    margin: 0 0 16px;
    color: #fff;
    font-family: Saira, Inter, sans-serif;
    font-size: clamp(2rem, 4vw, 3.45rem);
    line-height: 1.06;
    letter-spacing: -.045em;
}

.about-team-bridge p {
    max-width: 760px;
    margin: 0;
    color: rgba(255,255,255,.70);
    font-size: 1rem;
    line-height: 1.75;
}

.about-team-link {
    display: inline-flex;
    gap: 10px;
    align-items: center;
    margin-top: 26px;
    padding: 13px 20px;
    border: 1px solid rgba(114,239,255,.30);
    border-radius: 999px;
    color: #fff;
    background: rgba(8,198,227,.08);
    font-family: Saira, Inter, sans-serif;
    font-weight: 750;
    transition:
        transform 440ms cubic-bezier(.22,1,.36,1),
        border-color 440ms ease,
        background-color 440ms ease;
}

.about-team-link:hover,
.about-team-link:focus-visible {
    color: #fff;
    transform: translateY(-3px);
    border-color: rgba(114,239,255,.68);
    background: rgba(8,198,227,.15);
}

.about-team-visual {
    min-height: 330px;
    display: grid;
    place-items: center;
}

.about-team-orbit,
.about-team-orbit::before,
.about-team-orbit::after {
    position: absolute;
    border: 1px solid rgba(114,239,255,.19);
    border-radius: 50%;
}

.about-team-orbit {
    width: 310px;
    height: 310px;
}

.about-team-orbit::before,
.about-team-orbit::after {
    content: "";
}

.about-team-orbit::before { inset: 38px; }
.about-team-orbit::after { inset: 78px; border-color: rgba(114,239,255,.34); }

.about-team-orbit > span {
    position: absolute;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #72efff;
    box-shadow: 0 0 14px rgba(114,239,255,.75);
}

.about-team-orbit > span:first-child { top: 52px; right: 35px; }
.about-team-orbit > span:last-child { left: 34px; bottom: 58px; }

.about-team-core {
    position: relative;
    z-index: 3;
    width: 128px;
    height: 128px;
    display: grid;
    place-items: center;
    align-content: center;
    gap: 2px;
    border-radius: 30px;
    color: #062541;
    background: linear-gradient(145deg, #72efff, #19c7df);
    box-shadow: 0 22px 52px rgba(0,0,0,.22), inset 0 1px 0 rgba(255,255,255,.42);
}

.about-team-core i { font-size: 1.65rem; margin-bottom: 3px; }
.about-team-core small { font-size: .60rem; letter-spacing: .20em; }
.about-team-core strong { font-family: Saira, Inter, sans-serif; font-size: 1.05rem; }

.about-team-faces {
    position: absolute;
    inset: 0;
    z-index: 4;
    pointer-events: none;
}

.about-team-face {
    position: absolute;
    width: 72px;
    height: 72px;
    display: grid;
    place-items: center;
    overflow: hidden;
    border: 4px solid rgba(255,255,255,.92);
    border-radius: 50%;
    color: #72efff;
    background: #062541;
    box-shadow: 0 16px 36px rgba(0,0,0,.22);
}

.about-team-face img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
}

.about-team-face:nth-child(1) { top: 28px; left: 50%; transform: translateX(-50%); }
.about-team-face:nth-child(2) { right: 12px; top: 50%; transform: translateY(-50%); }
.about-team-face:nth-child(3) { left: 12px; top: 50%; transform: translateY(-50%); }

/* Principles remain the About page's strongest dark editorial panel. */
.about-values-section {
    background: #fff;
}

/* Stronger About closing CTA: light surface, living connection field. */
.about-cta-card {
    position: relative;
    overflow: hidden;
    isolation: isolate;
    border-color: rgba(8,198,227,.18);
    background:
        radial-gradient(circle at 88% 20%, rgba(8,198,227,.16), transparent 24%),
        linear-gradient(120deg, rgba(8,198,227,.09), transparent 38%),
        #f5fafc;
    box-shadow: 0 24px 68px rgba(7,26,51,.085);
}

.about-cta-card::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -2;
    opacity: .27;
    background-image:
        linear-gradient(rgba(7,26,51,.045) 1px, transparent 1px),
        linear-gradient(90deg, rgba(7,26,51,.045) 1px, transparent 1px);
    background-size: 42px 42px;
    mask-image: linear-gradient(90deg, transparent 0%, rgba(0,0,0,.75) 45%, #000 100%);
}

.about-cta-copy,
.about-cta-actions {
    position: relative;
    z-index: 2;
}

.about-cta-topics {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 20px;
}

.about-cta-topics span {
    padding: 7px 11px;
    border: 1px solid rgba(7,26,51,.08);
    border-radius: 999px;
    color: #456075;
    background: rgba(255,255,255,.64);
    font-size: .72rem;
    font-weight: 750;
    letter-spacing: .04em;
}

.about-cta-connection {
    position: absolute;
    z-index: 1;
    width: 260px;
    height: 1px;
    right: 18%;
    background: linear-gradient(90deg, transparent, rgba(8,198,227,.44), transparent);
    transform-origin: right center;
    pointer-events: none;
}

.about-cta-connection::after {
    content: "";
    position: absolute;
    top: -3px;
    left: 0;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: #72efff;
    box-shadow: 0 0 12px rgba(8,198,227,.72);
    animation: itpulseAboutCtaPulse 4.2s ease-in-out infinite;
}

.about-cta-connection--one { top: 32%; transform: rotate(-13deg); }
.about-cta-connection--two { bottom: 27%; transform: rotate(10deg); opacity: .72; }
.about-cta-connection--two::after { animation-delay: 1.6s; }

@keyframes itpulseAboutCtaPulse {
    0%   { left: 0; opacity: 0; }
    15%  { opacity: 1; }
    80%  { opacity: .72; }
    100% { left: calc(100% - 7px); opacity: 0; }
}

@media (max-width: 1199.98px) {
    .about-capability-grid--pillars {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .about-capability-pillar {
        min-height: 270px;
    }
}

@media (max-width: 991.98px) {
    .about-approach-panel,
    .about-team-bridge {
        grid-template-columns: 1fr;
    }

    .about-team-visual {
        min-height: 300px;
    }

    .about-team-visual {
        max-width: 390px;
        width: 100%;
        margin: 0 auto;
    }

    .about-process-grid::before {
        display: none;
    }
}

@media (max-width: 767.98px) {
    .about-approach-section,
    .about-team-bridge-section {
        padding: 52px 0;
    }

    .about-approach-panel,
    .about-team-bridge {
        padding: 26px 20px;
        border-radius: 22px;
    }

    .about-approach-step {
        grid-template-columns: 48px 42px 1fr;
        gap: 11px;
        padding: 15px;
        border-radius: 16px;
    }

    .about-approach-number {
        width: 48px;
        height: 48px;
        border-radius: 14px;
    }

    .about-approach-step > i {
        width: 40px;
        height: 40px;
        border-radius: 12px;
    }

    .about-approach-flow::before,
    .about-approach-flow::after {
        display: none;
    }

    .about-capability-grid--pillars {
        grid-template-columns: 1fr;
    }

    .about-capability-pillar {
        min-height: 248px;
        padding: 22px;
    }

    .about-team-visual {
        min-height: 270px;
    }

    .about-team-orbit {
        width: 250px;
        height: 250px;
    }

    .about-team-core {
        width: 112px;
        height: 112px;
        border-radius: 26px;
    }

    .about-team-face {
        width: 62px;
        height: 62px;
    }

    .about-cta-connection {
        display: none;
    }

    .about-cta-topics {
        margin-top: 16px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .about-approach-flow::after,
    .about-capability-signal::after,
    .about-cta-connection::after {
        animation: none !important;
    }
}

/* =========================================================
   ITPulse 3.0.1 — Corporate Brand Integration
   Official brand artwork is used without recolouring. Light
   brand plates preserve the supplied navy + electric-blue
   identity against the established dark header/footer.
   ========================================================= */

/* Header lockup --------------------------------------------------------- */
.itpulse-brand {
    min-width: 138px;
    margin-right: clamp(14px, 1.8vw, 26px);
}

.itpulse-brand-plate {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 128px;
    min-height: 48px;
    padding: 6px 10px 7px;
    overflow: hidden;
    border: 1px solid rgba(111, 234, 255, .34);
    border-radius: 13px;
    background: linear-gradient(180deg, rgba(255,255,255,.99), rgba(246,250,255,.97));
    box-shadow:
        0 8px 24px rgba(0,0,0,.18),
        inset 0 0 0 1px rgba(255,255,255,.7);
    transition:
        transform var(--itpulse-transition),
        border-color var(--itpulse-transition),
        box-shadow var(--itpulse-transition);
}

.itpulse-brand-plate::after {
    content: "";
    position: absolute;
    right: 9px;
    bottom: 3px;
    left: 9px;
    height: 2px;
    border-radius: 999px;
    background: linear-gradient(90deg, transparent, rgba(9,105,255,.78), rgba(8,198,227,.78), transparent);
    opacity: .72;
}

.itpulse-brand:hover .itpulse-brand-plate,
.itpulse-brand:focus-visible .itpulse-brand-plate {
    transform: translateY(-1px);
    border-color: rgba(111, 234, 255, .64);
    box-shadow:
        0 12px 30px rgba(0,0,0,.22),
        0 0 20px rgba(8,198,227,.10),
        inset 0 0 0 1px rgba(255,255,255,.75);
}

.itpulse-brand-logo,
.itpulse-brand-logo-official {
    width: auto;
    height: 34px;
    max-width: 112px;
    max-height: 34px;
    object-fit: contain;
}

.site-header.is-scrolled .itpulse-brand-plate {
    min-height: 43px;
    padding-top: 5px;
    padding-bottom: 6px;
}

.site-header.is-scrolled .itpulse-brand-logo,
.site-header.is-scrolled .itpulse-brand-logo-official {
    height: 30px;
    max-height: 30px;
}

/* Footer corporate lockup ---------------------------------------------- */
.itpulse-footer .itpulse-footer-brand-lockup,
.itpulse-footer .itpulse-footer-brand-lockup:hover,
.itpulse-footer .itpulse-footer-brand-lockup:focus,
.itpulse-footer .itpulse-footer-brand-lockup:focus-visible {
    display: inline-flex;
    width: min(100%, 292px);
    color: inherit;
    text-decoration: none;
    transform: none;
}

.itpulse-footer-brand-plate {
    position: relative;
    display: flex;
    width: 100%;
    align-items: center;
    justify-content: center;
    padding: 12px 14px;
    overflow: hidden;
    border: 1px solid rgba(111,234,255,.22);
    border-radius: 17px;
    background: linear-gradient(180deg, rgba(255,255,255,.99), rgba(247,251,255,.97));
    box-shadow: 0 18px 44px rgba(0,0,0,.20);
    transition:
        transform var(--itpulse-transition),
        border-color var(--itpulse-transition),
        box-shadow var(--itpulse-transition);
}

.itpulse-footer-brand-plate::after {
    content: "";
    position: absolute;
    right: 16px;
    bottom: 5px;
    left: 16px;
    height: 2px;
    border-radius: 999px;
    background: linear-gradient(90deg, transparent, #0969ff 30%, #08c6e3 70%, transparent);
    opacity: .56;
}

.itpulse-footer-brand-lockup:hover .itpulse-footer-brand-plate,
.itpulse-footer-brand-lockup:focus-visible .itpulse-footer-brand-plate {
    transform: translateY(-2px);
    border-color: rgba(111,234,255,.48);
    box-shadow: 0 23px 54px rgba(0,0,0,.24), 0 0 28px rgba(8,198,227,.08);
}

.itpulse-footer-logo {
    display: block;
    width: 100%;
    height: auto;
    max-width: 260px;
    object-fit: contain;
}

.itpulse-footer-description {
    margin-top: 18px;
}

.itpulse-footer-signature {
    color: rgba(255,255,255,.64);
    font-weight: 600;
    letter-spacing: .01em;
}

/* About hero: company identity rather than a service-category icon ----- */
.about-hero-brand-core {
    position: relative;
    z-index: 2;
    width: 112px;
    height: 112px;
    display: grid;
    place-items: center;
    padding: 9px;
    border: 1px solid rgba(111,234,255,.48);
    border-radius: 30px;
    background: linear-gradient(135deg, rgba(111,234,255,.96), rgba(8,198,227,.96));
    box-shadow: 0 18px 42px rgba(8,198,227,.25), inset 0 0 0 1px rgba(255,255,255,.38);
}

.about-hero-brand-core img {
    display: block;
    width: 88px;
    height: 88px;
    object-fit: contain;
    filter: drop-shadow(0 10px 20px rgba(3,20,39,.18));
}

@media (max-width: 1199.98px) {
    .itpulse-brand {
        min-width: 126px;
    }

    .itpulse-brand-plate {
        min-width: 118px;
        min-height: 45px;
        padding: 6px 9px;
    }

    .itpulse-brand-logo,
    .itpulse-brand-logo-official {
        height: 31px;
        max-width: 102px;
        max-height: 31px;
    }
}

@media (max-width: 767.98px) {
    .itpulse-brand {
        min-width: 0;
        margin-right: 10px;
    }

    .itpulse-brand-plate {
        min-width: 108px;
        min-height: 42px;
        padding: 5px 8px 6px;
        border-radius: 11px;
    }

    .itpulse-brand-logo,
    .itpulse-brand-logo-official,
    .site-header.is-scrolled .itpulse-brand-logo,
    .site-header.is-scrolled .itpulse-brand-logo-official {
        height: 28px;
        max-width: 94px;
        max-height: 28px;
    }

    .itpulse-footer .itpulse-footer-brand-lockup {
        width: min(100%, 268px);
    }

    .itpulse-footer-brand-plate {
        padding: 11px 13px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .itpulse-brand-plate,
    .itpulse-footer-brand-plate {
        transition: none !important;
    }
}

/* =========================================================
   ITPulse 3.0.2 — Dark Theme Header + Footer Refinement
   Scope intentionally limited to shared header/footer chrome.
   No section-card, slogan, scanning, search, or page motion
   mechanisms are changed here.
   ========================================================= */

/* Header: less vertical mass, stronger official logo presence. */
@media (min-width: 992px) {
    .navbar {
        min-height: 68px;
    }

    .site-header.is-scrolled .navbar {
        min-height: 62px;
    }

    .itpulse-brand {
        min-width: 156px;
        margin-right: clamp(12px, 1.5vw, 22px);
    }

    .itpulse-brand-plate {
        min-width: 146px;
        min-height: 46px;
        padding: 4px 9px 5px;
        border-radius: 12px;
    }

    .itpulse-brand-logo,
    .itpulse-brand-logo-official {
        height: 38px;
        max-width: 128px;
        max-height: 38px;
    }

    .site-header.is-scrolled .itpulse-brand-plate {
        min-height: 42px;
        padding-top: 4px;
        padding-bottom: 5px;
    }

    .site-header.is-scrolled .itpulse-brand-logo,
    .site-header.is-scrolled .itpulse-brand-logo-official {
        height: 34px;
        max-width: 118px;
        max-height: 34px;
    }

    .navbar .navbar-nav .nav-link {
        padding-top: 21px;
        padding-bottom: 21px;
    }

    .site-header.is-scrolled .navbar .navbar-nav .nav-link {
        padding-top: 18px;
        padding-bottom: 18px;
    }

    .navbar .navbar-nav .nav-link::after {
        bottom: 12px;
    }

    .site-header.is-scrolled .navbar .navbar-nav .nav-link::after {
        bottom: 9px;
    }

    .itpulse-phone-icon {
        width: 38px;
        height: 38px;
    }

    .itpulse-search-toggle {
        width: 40px;
        height: 40px;
    }
}

/* Footer: compact corporate layout with less visual weight. */
.itpulse-footer-container {
    position: relative;
    padding-top: clamp(28px, 3vw, 40px);
    padding-bottom: 18px;
}

.itpulse-footer-grid {
    grid-template-columns: 1.15fr .72fr .94fr 1.08fr;
    gap: clamp(24px, 3vw, 42px);
    align-items: start;
}

.itpulse-footer .itpulse-footer-brand-lockup,
.itpulse-footer .itpulse-footer-brand-lockup:hover,
.itpulse-footer .itpulse-footer-brand-lockup:focus,
.itpulse-footer .itpulse-footer-brand-lockup:focus-visible {
    width: min(100%, 238px);
}

.itpulse-footer-brand-plate {
    padding: 8px 10px;
    border-radius: 14px;
    box-shadow: 0 12px 30px rgba(0,0,0,.18);
}

.itpulse-footer-brand-plate::after {
    right: 13px;
    bottom: 4px;
    left: 13px;
}

.itpulse-footer-logo {
    max-width: 216px;
}

.itpulse-footer-description {
    max-width: 340px;
    margin: 12px 0 13px;
    font-size: .92rem;
    line-height: 1.55;
}

.itpulse-footer-about .btn {
    min-height: 38px;
    padding-top: 7px !important;
    padding-bottom: 7px !important;
    font-size: .88rem;
}

.itpulse-footer-socials {
    margin-top: 13px;
    gap: 7px;
}

.itpulse-footer-socials a {
    width: 36px;
    height: 36px;
}

.itpulse-footer-heading {
    margin: 3px 0 13px;
    font-size: 1rem;
}

.itpulse-footer-links,
.itpulse-footer-menu,
.itpulse-footer-contact {
    gap: 7px;
}

.itpulse-footer-links a,
.itpulse-footer-menu a,
.itpulse-footer-contact a {
    font-size: .91rem;
    line-height: 1.42;
}

.itpulse-footer-contact a {
    grid-template-columns: 19px 1fr;
    gap: 8px;
}

.itpulse-footer-contact i {
    margin-top: 4px;
}

.itpulse-footer-bottom {
    margin-top: 28px;
    padding-top: 15px;
    gap: 16px;
    font-size: .78rem;
}

.itpulse-footer-signature {
    display: inline-flex;
    align-items: center;
    gap: 10px;
}

.itpulse-footer-signature::after {
    content: "";
    width: 42px;
    height: 1px;
    display: inline-block;
    background: linear-gradient(90deg, rgba(8,198,227,.15), rgba(8,198,227,.9), transparent);
    box-shadow: 0 0 10px rgba(8,198,227,.22);
}

@media (max-width: 1199.98px) {
    .itpulse-footer-grid {
        grid-template-columns: 1.08fr .78fr .95fr 1.08fr;
        gap: 24px;
    }
}

@media (max-width: 991.98px) {
    .itpulse-footer-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 28px 34px;
    }

    .itpulse-footer-container {
        padding-top: 30px;
    }
}

@media (max-width: 767.98px) {
    .navbar,
    .site-header.is-scrolled .navbar {
        min-height: 62px;
    }

    .itpulse-brand-plate {
        min-width: 116px;
        min-height: 40px;
        padding: 4px 7px 5px;
    }

    .itpulse-brand-logo,
    .itpulse-brand-logo-official,
    .site-header.is-scrolled .itpulse-brand-logo,
    .site-header.is-scrolled .itpulse-brand-logo-official {
        height: 30px;
        max-width: 102px;
        max-height: 30px;
    }

    .itpulse-menu-toggle {
        width: 42px;
        height: 42px;
        border-radius: 12px;
    }

    .itpulse-footer-container {
        padding-top: 26px;
        padding-bottom: 16px;
    }

    .itpulse-footer-grid {
        grid-template-columns: 1fr;
        gap: 24px;
    }

    .itpulse-footer .itpulse-footer-brand-lockup {
        width: min(100%, 228px);
    }

    .itpulse-footer-logo {
        max-width: 208px;
    }

    .itpulse-footer-description {
        max-width: 420px;
    }

    .itpulse-footer-bottom {
        margin-top: 22px;
        padding-top: 14px;
        gap: 8px;
    }

    .itpulse-footer-signature::after {
        width: 34px;
    }
}


/* ========================================================================== 
   V3.0.3 — Contact rhythm + official Services core mark
   Narrow release patch: preserves the locked motion system and page structure.
   ========================================================================== */

/* Services hero: replace the old IT/Pulse text placeholder with the official
   square company mark while leaving the existing orbit/radar mechanism intact. */
.services-system-core--brand {
    place-content: center;
    padding: 17px;
}

.services-system-core--brand img {
    display: block;
    width: 92px;
    height: 92px;
    max-width: 100%;
    object-fit: contain;
    border-radius: 23px;
    filter: drop-shadow(0 12px 25px rgba(0,0,0,.22));
}

/* Contact page: bring the first content into the same visual rhythm as the
   other finalized inner pages and remove unnecessary vertical dead space. */
.itpulse-contact-page .section-shell {
    padding: clamp(64px, 6.5vw, 94px) 0;
}

.contact-v3-starting {
    padding-top: clamp(72px, 7vw, 98px) !important;
}

.contact-v3-channel {
    min-height: 210px;
    padding: 27px 24px;
}

.contact-v3-route-card {
    min-height: 300px;
}

.contact-v3-route-icon {
    margin-bottom: 36px;
}

.contact-v3-next-grid article {
    min-height: 240px;
}

.contact-v3-next-grid article > i {
    margin-bottom: 34px;
}

@media (min-width: 992px) {
    .contact-v3-hero {
        min-height: clamp(560px, 66vh, 700px);
    }

    .contact-v3-hero-inner {
        padding-top: clamp(48px, 5vw, 70px);
        padding-bottom: clamp(118px, 10vw, 146px);
    }

    .contact-v3-breadcrumb {
        margin-bottom: 23px;
    }
}

@media (max-width: 767.98px) {
    .itpulse-contact-page .section-shell {
        padding: 64px 0;
    }

    .contact-v3-route-card {
        min-height: 260px;
    }
}

/* ========================================================================== 
   V3.0.4 — Hero motion, viewport rhythm + people-focused Team hero
   Built on the locked V3.0.3 baseline. Existing Home project scanning/lift,
   slogan sweep, back-to-top, Blog signal and card motion mechanisms are not
   rewritten here; this block only adds missing hero-family motion and compact
   laptop-height rhythm where CTA controls were falling below the first view.
   ========================================================================== */

/* 1) Shared interior-hero atmosphere: a very slow grid drift makes the
   first screen feel alive without competing with copy or CTA controls. */
.services-hero-grid,
.service-detail-grid,
.solutions-hero-grid,
.projects-v27-hero-grid,
.about-page-hero-grid,
.team-page-hero-grid {
    will-change: background-position;
    animation: itpulseV304HeroGridDrift 24s linear infinite;
}

@keyframes itpulseV304HeroGridDrift {
    from { background-position: 0 0, 0 0; }
    to   { background-position: 58px 58px, 58px 58px; }
}

/* 2) Services landing: visible centre float + staggered capability nodes.
   Existing orbit rings remain intact. */
.services-system-core {
    will-change: transform;
    animation: itpulseV304CenterFloat 5.8s ease-in-out infinite;
}
.services-orbit {
    will-change: transform, box-shadow;
    animation: itpulseV304NodeFloat 4.8s ease-in-out infinite;
}
.services-orbit--2 { animation-delay: -.9s; }
.services-orbit--3 { animation-delay: -1.8s; }
.services-orbit--4 { animation-delay: -2.7s; }
.services-orbit--5 { animation-delay: -3.6s; }

/* 3) Individual Service landing pages: make the existing emblem motion
   visually readable, matching the already-lively Solutions detail family. */
.service-detail-emblem > i {
    will-change: transform, filter;
    animation: itpulseV304ServiceIconFloat 5.2s ease-in-out infinite;
}
.service-detail-emblem-ring:first-of-type {
    animation: itpulseV304RingBreath 4.8s ease-in-out infinite;
}
.service-detail-emblem::after {
    content: "";
    position: absolute;
    z-index: 3;
    width: 9px;
    height: 9px;
    top: 10%;
    left: 50%;
    border-radius: 50%;
    background: #72efff;
    box-shadow: 0 0 0 5px rgba(114,239,255,.08), 0 0 20px rgba(114,239,255,.78);
    animation: itpulseV304PerimeterSignal 8.6s ease-in-out infinite;
}

/* 4) Solutions landing: the old dashed ring technically rotated but its
   symmetry made it look static. Add readable float, breathing and a moving
   signal point while retaining the existing ring rotation. */
.solution-radar-core {
    will-change: transform;
    animation: itpulseV304SolutionCoreFloat 5.6s ease-in-out infinite;
}
.solution-radar-ring--1,
.solution-radar-ring--3 {
    animation: itpulseV304RingBreath 5.4s ease-in-out infinite;
}
.solution-radar-ring--3 { animation-delay: -2.1s; }
.solution-radar-node {
    will-change: transform, box-shadow;
    animation: itpulseV304NodeFloat 4.9s ease-in-out infinite;
}
.solution-radar-node--2 { animation-delay: -1.2s; }
.solution-radar-node--3 { animation-delay: -2.4s; }
.solution-radar-node--4 { animation-delay: -3.4s; }
.solution-radar::after {
    content: "";
    position: absolute;
    z-index: 5;
    width: 9px;
    height: 9px;
    top: 7%;
    left: 50%;
    border-radius: 50%;
    background: #7cf0ff;
    box-shadow: 0 0 0 5px rgba(124,240,255,.08), 0 0 21px rgba(124,240,255,.82);
    animation: itpulseV304PerimeterSignal 9.2s ease-in-out infinite;
}

/* 5) Projects landing: preserve the approved card scanning system, but make
   the hero command/radar visual itself active. */
.project-command-core {
    will-change: transform;
    animation: itpulseV304ProjectCoreFloat 5.7s ease-in-out infinite;
}
.project-command-ring--1,
.project-command-ring--3 {
    animation: itpulseV304ProjectRingBreath 5.2s ease-in-out infinite;
}
.project-command-ring--3 { animation-delay: -2s; }
.project-command-ring--2 {
    border-style: dashed;
    animation: itpulseV304ProjectRingSpin 20s linear infinite;
}
.project-command-node {
    will-change: transform, box-shadow;
    animation: itpulseV304NodeFloat 5s ease-in-out infinite;
}
.project-command-node--2 { animation-delay: -1.15s; }
.project-command-node--3 { animation-delay: -2.3s; }
.project-command-node--4 { animation-delay: -3.45s; }
.project-command-visual::after {
    content: "";
    position: absolute;
    z-index: 5;
    width: 8px;
    height: 8px;
    top: 5.5%;
    left: 50%;
    border-radius: 50%;
    background: #72efff;
    box-shadow: 0 0 18px rgba(114,239,255,.86);
    animation: itpulseV304PerimeterSignal 8.8s ease-in-out infinite;
}

/* 6) About landing: official mark remains the visual identity; motion is
   restrained to a gentle float/pulse rather than adding unrelated icons. */
.about-hero-brand-core {
    will-change: transform;
    animation: itpulseV304PlainFloat 5.9s ease-in-out infinite;
}
.about-hero-mark::before,
.about-hero-mark::after,
.about-hero-mark-ring {
    will-change: transform, opacity;
    animation: itpulseV304RingBreath 5.6s ease-in-out infinite;
}
.about-hero-mark::after { animation-delay: -1.8s; }
.about-hero-mark-ring { animation-delay: -3.1s; }

/* 7) Team hero: real WordPress Team portraits replace generic capability
   nodes. The primary portrait is selectable in WP Admin > Team. */
.team-orbit-visual--people {
    filter: drop-shadow(0 24px 54px rgba(0,0,0,.10));
}
.team-orbit-visual--people .team-orbit-ring--1,
.team-orbit-visual--people .team-orbit-ring--3 {
    animation: itpulseV304TeamRingBreath 5.5s ease-in-out infinite;
}
.team-orbit-visual--people .team-orbit-ring--2 {
    border-style: dashed;
    animation: itpulseV304ProjectRingSpin 24s linear infinite;
}
.team-orbit-core--portrait {
    width: 154px;
    height: 154px;
    overflow: hidden;
    border: 3px solid rgba(126,241,255,.78);
    border-radius: 50%;
    background: #082842;
    box-shadow: 0 22px 58px rgba(0,0,0,.24), 0 0 0 9px rgba(111,234,255,.06);
    animation: itpulseV304TeamCoreFloat 5.6s ease-in-out infinite;
}
.team-hero-primary-photo,
.team-orbit-node--portrait img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    object-position: center top;
}
.team-hero-primary-fallback {
    width: 100%;
    height: 100%;
    display: grid;
    place-items: center;
    color: #66e8f7;
    font-size: 2.2rem;
    background: linear-gradient(145deg,#082842,#0a425e);
}
.team-hero-primary-label {
    position: absolute;
    right: 10px;
    bottom: 9px;
    left: 10px;
    z-index: 3;
    display: grid;
    gap: 0;
    padding: 8px 10px 7px;
    border-radius: 999px;
    color: #fff;
    background: linear-gradient(90deg, rgba(3,18,34,.88), rgba(6,59,80,.82));
    box-shadow: 0 8px 22px rgba(0,0,0,.20);
    text-align: center;
    line-height: 1.05;
}
.team-hero-primary-label small {
    font-size: .50rem;
    letter-spacing: .18em;
}
.team-hero-primary-label strong {
    margin-top: 2px;
    font-size: .84rem;
}
.team-orbit-node--portrait {
    width: 68px;
    height: 68px;
    overflow: hidden;
    padding: 3px;
    border: 2px solid rgba(111,234,255,.56);
    border-radius: 50%;
    background: #082842;
    box-shadow: 0 14px 34px rgba(0,0,0,.24), 0 0 0 6px rgba(111,234,255,.045);
    animation: itpulseV304NodeFloat 4.9s ease-in-out infinite;
}
.team-orbit-node--portrait img { border-radius: 50%; }
.team-orbit-node--portrait.team-orbit-node--1 { top: 2%; left: 41%; }
.team-orbit-node--portrait.team-orbit-node--2 { right: 0; top: 42%; animation-delay: -1.2s; }
.team-orbit-node--portrait.team-orbit-node--3 { bottom: 1%; left: 41%; animation-delay: -2.4s; }
.team-orbit-node--portrait.team-orbit-node--4 { left: 0; top: 42%; animation-delay: -3.6s; }

/* Shared hero keyframes. */
@keyframes itpulseV304CenterFloat {
    0%,100% { transform: translate(-50%,-50%) translateY(0); }
    50%     { transform: translate(-50%,-50%) translateY(-8px); }
}
@keyframes itpulseV304PlainFloat {
    0%,100% { transform: translateY(0) scale(1); }
    50%     { transform: translateY(-8px) scale(1.015); }
}
@keyframes itpulseV304SolutionCoreFloat {
    0%,100% { transform: translateY(0) rotate(-4deg); }
    50%     { transform: translateY(-9px) rotate(-1.5deg); }
}
@keyframes itpulseV304ProjectCoreFloat {
    0%,100% { transform: translate(-50%,-50%) translateY(0); }
    50%     { transform: translate(-50%,-50%) translateY(-8px); }
}
@keyframes itpulseV304TeamCoreFloat {
    0%,100% { transform: translate(-50%,-50%) translateY(0) scale(1); }
    50%     { transform: translate(-50%,-50%) translateY(-7px) scale(1.015); }
}
@keyframes itpulseV304ServiceIconFloat {
    0%,100% { transform: translateY(0) scale(1); filter: drop-shadow(0 18px 28px rgba(0,0,0,.22)); }
    50%     { transform: translateY(-9px) scale(1.025); filter: drop-shadow(0 24px 34px rgba(0,199,230,.23)); }
}
@keyframes itpulseV304NodeFloat {
    0%,100% { transform: translateY(0); box-shadow: 0 14px 30px rgba(2,16,32,.20); }
    50%     { transform: translateY(-7px); box-shadow: 0 20px 38px rgba(0,199,230,.18); }
}
@keyframes itpulseV304RingBreath {
    0%,100% { transform: scale(.985); opacity: .58; }
    50%     { transform: scale(1.025); opacity: 1; }
}
@keyframes itpulseV304ProjectRingBreath {
    0%,100% { transform: translate(-50%,-50%) scale(.985); opacity: .62; }
    50%     { transform: translate(-50%,-50%) scale(1.025); opacity: 1; }
}
@keyframes itpulseV304TeamRingBreath {
    0%,100% { transform: translate(-50%,-50%) scale(.985); opacity: .58; }
    50%     { transform: translate(-50%,-50%) scale(1.022); opacity: 1; }
}
@keyframes itpulseV304ProjectRingSpin {
    from { transform: translate(-50%,-50%) rotate(0deg); }
    to   { transform: translate(-50%,-50%) rotate(360deg); }
}
@keyframes itpulseV304PerimeterSignal {
    0%,100% { top: 7%; left: 50%; opacity: .48; }
    25%     { top: 50%; left: 92%; opacity: 1; }
    50%     { top: 92%; left: 50%; opacity: .64; }
    75%     { top: 50%; left: 7%; opacity: 1; }
}

/* 8) Laptop/short-desktop hero rhythm. At common 1366x768-class viewports,
   CTA controls now remain in the first hero view instead of sitting below the
   screen edge. Width-only desktop layouts are unchanged on taller screens. */
@media (min-width: 992px) and (max-height: 860px) {
    .services-page-hero,
    .solutions-page-hero,
    .projects-v27-hero,
    .about-page-hero,
    .team-page-hero {
        padding-top: 28px !important;
        padding-bottom: 38px !important;
    }

    .service-detail-hero,
    .solution-detail-hero {
        padding-top: 30px !important;
        padding-bottom: 40px !important;
    }

    .services-page-hero h1,
    .solutions-page-hero h1 {
        font-size: clamp(2.45rem, 4.05vw, 4.05rem);
        line-height: .99;
        margin-top: 12px;
        margin-bottom: 14px;
    }

    .projects-v27-hero h1,
    .about-page-hero h1,
    .team-page-hero h1 {
        font-size: clamp(2.5rem, 4.35vw, 4.4rem);
        line-height: .99;
        margin-top: 12px;
        margin-bottom: 14px;
    }

    .service-detail-hero h1,
    .solution-detail-hero h1 {
        font-size: clamp(2.45rem, 4.15vw, 4.15rem);
        line-height: .99;
        margin-top: 12px;
        margin-bottom: 14px;
    }

    .itpulse-page-breadcrumb,
    .about-breadcrumb {
        margin-bottom: 14px;
    }

    .services-hero-copy,
    .solutions-hero-copy,
    .about-page-hero-copy,
    .team-page-hero p,
    .service-detail-hero-copy,
    .solution-detail-hero p,
    .projects-v27-hero p {
        line-height: 1.6;
    }

    .services-hero-actions,
    .solutions-hero-actions,
    .projects-v27-hero-actions,
    .about-hero-actions,
    .team-page-hero-actions,
    .service-detail-actions,
    .solution-detail-actions {
        margin-top: 20px;
    }

    .projects-v27-integrity-note {
        margin-top: 15px !important;
    }

    .blog-hub-hero {
        padding: 28px 0 42px;
    }
    .blog-hub-hero h1 {
        font-size: clamp(2.55rem, 4.15vw, 4.05rem);
        margin-top: 12px;
        margin-bottom: 14px;
        line-height: .98;
    }
    .blog-breadcrumb { margin-bottom: 13px; }
    .blog-hub-hero-copy > p { line-height: 1.62; }
    .blog-hub-hero-actions { margin-top: 19px; }
}

/* 9) Preserve accessibility and the motion setting that previously explained
   the apparent animation regressions. Windows/browser reduced-motion is still
   respected instead of being force-overridden by the theme. */
@media (prefers-reduced-motion: reduce) {
    html:not(.itpulse-motion-preview) .services-hero-grid,
    html:not(.itpulse-motion-preview) .service-detail-grid,
    html:not(.itpulse-motion-preview) .solutions-hero-grid,
    html:not(.itpulse-motion-preview) .projects-v27-hero-grid,
    html:not(.itpulse-motion-preview) .about-page-hero-grid,
    html:not(.itpulse-motion-preview) .team-page-hero-grid,
    html:not(.itpulse-motion-preview) .services-system-core,
    html:not(.itpulse-motion-preview) .services-orbit,
    html:not(.itpulse-motion-preview) .service-detail-emblem > i,
    html:not(.itpulse-motion-preview) .service-detail-emblem-ring:first-of-type,
    html:not(.itpulse-motion-preview) .service-detail-emblem::after,
    html:not(.itpulse-motion-preview) .solution-radar-core,
    html:not(.itpulse-motion-preview) .solution-radar-ring--1,
    html:not(.itpulse-motion-preview) .solution-radar-ring--3,
    html:not(.itpulse-motion-preview) .solution-radar-node,
    html:not(.itpulse-motion-preview) .solution-radar::after,
    html:not(.itpulse-motion-preview) .project-command-core,
    html:not(.itpulse-motion-preview) .project-command-ring,
    html:not(.itpulse-motion-preview) .project-command-node,
    html:not(.itpulse-motion-preview) .project-command-visual::after,
    html:not(.itpulse-motion-preview) .about-hero-brand-core,
    html:not(.itpulse-motion-preview) .about-hero-mark::before,
    html:not(.itpulse-motion-preview) .about-hero-mark::after,
    html:not(.itpulse-motion-preview) .about-hero-mark-ring,
    html:not(.itpulse-motion-preview) .team-orbit-visual--people .team-orbit-ring,
    html:not(.itpulse-motion-preview) .team-orbit-core--portrait,
    html:not(.itpulse-motion-preview) .team-orbit-node--portrait {
        animation: none !important;
    }
}

/* ========================================================================== 
   V3.0.5 — Balanced first-screen hero rhythm
   V3.0.4 solved clipped/missing CTA controls on short desktop viewports, but
   its 28–40px hero padding was too aggressive. That exposed the following
   white/overlapping section before its WOW content had entered the viewport.
   This patch restores deliberate hero depth while keeping CTA controls in the
   first view. The approved V3.0.4 hero motion remains unchanged.
   ========================================================================== */
@media (min-width: 992px) and (max-height: 860px) {
    .about-page-hero {
        padding-top: 58px !important;
        padding-bottom: 78px !important;
    }

    .services-page-hero,
    .team-page-hero {
        padding-top: 54px !important;
        padding-bottom: 70px !important;
    }

    .solutions-page-hero {
        padding-top: 58px !important;
        padding-bottom: 78px !important;
    }

    .projects-v27-hero {
        padding-top: 54px !important;
        padding-bottom: 72px !important;
    }

    .service-detail-hero,
    .solution-detail-hero {
        padding-top: 50px !important;
        padding-bottom: 62px !important;
    }

    .blog-hub-hero {
        padding-top: 58px !important;
        padding-bottom: 72px !important;
    }
}

/* The Projects/Solutions bridge strips overlap the hero by design and can be
   visible before the first user scroll. Their content therefore must also be
   available immediately; lower-page WOW reveals remain untouched. */
.project-principles-grid > article,
.solution-outcome-grid > article {
    visibility: visible !important;
    opacity: 1 !important;
}


/* ========================================================================== 
   V3.0.6 — Page-by-page first-screen choreography
   About, Projects, Solutions and Insights only. Services is intentionally
   untouched because its V3.0.5 first screen is already approved.
   ========================================================================== */

/* ABOUT
   Keep the first Who We Are composition outside the initial viewport. This
   removes the brief lower-section flash during first paint and replaces the
   oversized white transition band with a deliberate hero finish. */
@media (min-width: 992px) {
    .itpulse-about-page > .about-page-hero {
        min-height: 520px;
    }
}

/* PROJECTS
   The principles rail was only partially visible on common laptop-height
   screens. Trim only the landing hero's lower rhythm enough to expose the
   complete rail without returning to the over-compressed V3.0.4 state. */
@media (min-width: 992px) and (max-height: 860px) {
    .itpulse-projects-page > .projects-v27-hero {
        padding-bottom: 54px !important;
    }
}

/* Projects rail: wait for the hero to settle, then rise smoothly from below. */
html.itpulse-js .itpulse-projects-page > .project-principles-strip {
    opacity: 0;
    transform: translate3d(0, 48px, 0);
    transition:
        opacity 720ms ease,
        transform 980ms cubic-bezier(.22, 1, .36, 1);
    will-change: opacity, transform;
}
html.itpulse-js .itpulse-projects-page > .project-principles-strip.is-entry-settled {
    opacity: 1;
    transform: translate3d(0, 0, 0);
}

/* SOLUTIONS
   Preserve the approved hero height, but let the outcome rail enter as its
   own visual object instead of being painted statically with the hero. */
html.itpulse-js .itpulse-solutions-page > .solution-outcome-strip {
    opacity: 0;
    transform: translate3d(56px, 0, 0);
    transition:
        opacity 760ms ease,
        transform 1040ms cubic-bezier(.22, 1, .36, 1);
    will-change: opacity, transform;
}
html.itpulse-js .itpulse-solutions-page > .solution-outcome-strip.is-entry-settled {
    opacity: 1;
    transform: translate3d(0, 0, 0);
}

/* INSIGHTS
   The featured story is a separate section. On desktop it must no longer
   overlap the hero or trigger its WOW reveal at the same moment as the hero.
   A modest post-hero runway keeps it below the initial reveal threshold so a
   small scroll brings the story upward into its own designated position. */
@media (min-width: 992px) {
    body.blog .blog-featured-section,
    body.home.blog .blog-featured-section,
    body.category .blog-featured-section,
    body.tag .blog-featured-section,
    body.archive .blog-featured-section {
        margin-top: 0 !important;
        padding-top: 46px;
    }
}

/* Accessibility: entrance choreography never overrides reduced-motion. */
@media (prefers-reduced-motion: reduce) {
    html:not(.itpulse-motion-preview) .itpulse-projects-page > .project-principles-strip,
    html:not(.itpulse-motion-preview) .itpulse-solutions-page > .solution-outcome-strip {
        opacity: 1 !important;
        transform: none !important;
        transition: none !important;
    }
}

/* ========================================================================== 
   V3.0.7 — Home hero supporting-copy alignment
   The legacy base stylesheet applies `margin: 0 auto` to every carousel
   paragraph. That horizontally centers the supporting-copy box even though
   the rebuilt ITPulse hero is intentionally left-aligned. Lock the supporting
   copy back to the same left content axis as the badge, heading and CTAs.
   ========================================================================== */
#carouselId .carousel-item .carousel-content > p {
    margin-left: 0 !important;
    margin-right: 0 !important;
    text-align: left;
}

/* ========================================================================== 
   V3.0.8 — Final first-screen stability pass
   Scope is intentionally narrow and page-specific:
   - freeze header geometry while scrolling to remove site-wide top-bar jitter;
   - About: stabilize the hero/Who-We-Are boundary and prevent first-paint flash;
   - Projects: expose the complete principles rail on common laptop viewports;
   - Insights: keep the revealed featured story below the top viewport after a
     down/up scroll cycle.
   Services, Solutions and all previously approved motion families are retained.
   ========================================================================== */

/* 1) SITE-WIDE SCROLL STABILITY
   The old compact-on-scroll header changed both the utility-bar height and the
   navbar/logo geometry at the same 32px scroll threshold. Because the sticky
   header participates in layout, that geometry change could move the document
   enough to cross the threshold again and produce the visible shake/flicker.
   Keep the header's physical height invariant; is-scrolled now remains a visual
   state (shadow etc.) rather than a layout-changing state. */
@media (min-width: 768px) {
    .site-header .itpulse-topbar,
    .site-header.is-scrolled .itpulse-topbar {
        max-height: 44px;
        opacity: 1;
        transform: none;
        border-color: rgba(255,255,255,.06);
    }
}

@media (min-width: 992px) {
    .navbar,
    .site-header.is-scrolled .navbar {
        min-height: 68px;
    }

    .itpulse-brand-plate,
    .site-header.is-scrolled .itpulse-brand-plate {
        min-height: 46px;
        padding-top: 4px;
        padding-bottom: 5px;
    }

    .itpulse-brand-logo,
    .itpulse-brand-logo-official,
    .site-header.is-scrolled .itpulse-brand-logo,
    .site-header.is-scrolled .itpulse-brand-logo-official {
        height: 38px;
        max-width: 128px;
        max-height: 38px;
    }

    .navbar .navbar-nav .nav-link,
    .site-header.is-scrolled .navbar .navbar-nav .nav-link {
        padding-top: 21px;
        padding-bottom: 21px;
    }

    .navbar .navbar-nav .nav-link::after,
    .site-header.is-scrolled .navbar .navbar-nav .nav-link::after {
        bottom: 12px;
    }
}

/* 2) ABOUT — one stable first-screen state before and after scrolling.
   At desktop widths the visible utility bar + navbar consume 110px, so the hero
   owns the rest of the initial viewport. The next section therefore cannot peek
   into the true page-top state. 100vh is the fallback; svh avoids browser chrome
   changes on engines that support the newer viewport unit. */
@media (min-width: 992px) {
    .itpulse-about-page > .about-page-hero {
        min-height: calc(100vh - 110px);
        min-height: calc(100svh - 110px);
    }

    /* Prevent the brief pre-WOW paint of the first Who We Are composition. WOW
       later supplies inline visibility:visible when the reveal is legitimately
       triggered, so normal scroll choreography remains intact. */
    html.itpulse-js .itpulse-about-page > .about-intro-section .wow {
        visibility: hidden;
    }
}

/* 3) PROJECTS — common laptop-height viewports need roughly one more text-line
   of room for the complete 112px principles rail. Only the hero's lower padding
   is trimmed; copy, radar geometry and the delayed upward rail entrance are
   untouched. */
@media (min-width: 992px) and (max-height: 860px) {
    .itpulse-projects-page > .projects-v27-hero {
        padding-bottom: 30px !important;
    }
}

/* 4) INSIGHTS — once WOW has revealed the featured story it stays visible by
   design. Give the separate featured section enough post-hero runway that its
   natural resting position remains below the initial viewport even after the
   visitor scrolls down and returns to scrollY=0. */
@media (min-width: 992px) and (max-height: 860px) {
    body.blog .blog-featured-section,
    body.home.blog .blog-featured-section,
    body.category .blog-featured-section,
    body.tag .blog-featured-section,
    body.archive .blog-featured-section {
        margin-top: 0 !important;
        padding-top: 74px;
    }
}

/* ========================================================================== 
   V3.0.9 — About + Projects final visual-balance patch
   This patch deliberately touches only the two remaining first-screen issues.
   All V3.0.8 site-wide scroll stability and the already-approved Services,
   Solutions, Insights, Home and motion systems remain intact.
   ========================================================================== */

/* ABOUT
   V3.0.8 used the remaining viewport as the hero minimum height. That cured the
   Who-We-Are peek but created an oversized navy dead zone. Restore a deliberate,
   content-led hero depth instead, while keeping the V3.0.8 pre-WOW visibility
   guard. A modest white runway lets the next section approach naturally without
   looking glued to the hero or flashing during first paint. */
@media (min-width: 992px) {
    .itpulse-about-page > .about-page-hero {
        min-height: 540px !important;
    }

    .itpulse-about-page > .about-intro-section {
        padding-top: 120px;
    }
}

/* PROJECTS
   Separate the principles rail from the hero as its own section. The rail keeps
   its existing delayed rise-in motion, but its final resting position now has a
   visible clean gap instead of a -30px overlap. */
@media (min-width: 992px) {
    .itpulse-projects-page > .project-principles-strip {
        margin-top: 18px;
    }
}

/* On common laptop-height desktop screens, reclaim the same vertical space
   needed by the newly separated rail by compacting only the Projects hero's
   typography/rhythm. No radar geometry or animation timing is changed. */
@media (min-width: 992px) and (max-height: 860px) {
    .itpulse-projects-page > .projects-v27-hero {
        padding-top: 48px !important;
        padding-bottom: 34px !important;
    }

    .itpulse-projects-page > .projects-v27-hero h1 {
        font-size: clamp(2.55rem, 4.5vw, 4.75rem);
        margin-top: 14px;
        margin-bottom: 14px;
    }

    .itpulse-projects-page .projects-v27-hero-actions {
        margin-top: 20px;
    }

    .itpulse-projects-page .projects-v27-integrity-note {
        margin-top: 14px !important;
    }
}


/* ========================================================================== 
   V3.0.10 — Projects final first-screen balance
   About remains exactly as approved in V3.0.9. This patch restores the
   Projects principles rail to its established overlapping position and gains
   the required first-screen room from the hero content itself instead of
   pushing the rail down.
   ========================================================================== */

/* Restore the original Projects rail placement that was preferred visually. */
@media (min-width: 992px) {
    .itpulse-projects-page > .project-principles-strip {
        margin-top: -30px;
    }
}

/* Common laptop-height desktop: compact the Projects hero internally.
   - slightly smaller headline;
   - tighter kicker-to-headline gap;
   - tighter copy/CTA/note rhythm;
   - no radar/orbit or rail-entry timing changes. */
@media (min-width: 992px) and (max-height: 860px) {
    .itpulse-projects-page > .projects-v27-hero {
        padding-top: 46px !important;
        padding-bottom: 30px !important;
    }

    .itpulse-projects-page > .projects-v27-hero h1 {
        font-size: clamp(2.4rem, 4vw, 4.25rem);
        margin-top: 6px;
        margin-bottom: 12px;
    }

    .itpulse-projects-page .projects-v27-hero-actions {
        margin-top: 16px;
    }

    .itpulse-projects-page .projects-v27-integrity-note {
        margin-top: 10px !important;
    }
}

/* ========================================================================== 
   V3.0.11 — Projects internal vertical-rhythm finalization
   The V3.0.10 rail position is retained. Space is reclaimed only from inside
   the Projects hero so the integrity note and white principles rail read as
   separate layers without moving the rail itself.
   ========================================================================== */
@media (min-width: 992px) and (max-height: 860px) {
    /* The global kicker carries a 16px bottom margin. On Projects only, reduce
       that hand-off so the headline begins sooner without moving the breadcrumb
       or badge themselves. */
    .itpulse-projects-page > .projects-v27-hero .itpulse-kicker {
        margin-bottom: 5px;
    }

    .itpulse-projects-page > .projects-v27-hero h1 {
        font-size: clamp(2.25rem, 3.65vw, 3.95rem);
        margin-top: 0;
        margin-bottom: 8px;
    }

    .itpulse-projects-page > .projects-v27-hero p:not(.projects-v27-integrity-note) {
        margin-top: 0;
    }

    .itpulse-projects-page .projects-v27-hero-actions {
        margin-top: 12px;
    }

    .itpulse-projects-page .projects-v27-integrity-note {
        margin-top: 8px !important;
    }
}


/* ========================================================================== 
   V3.0.12 — Projects hero content-stack lift
   Final screenshot-directed correction: keep the approved radar and principles
   rail positions exactly where they are, but move the complete LEFT hero content
   stack upward as one unit. This creates real breathing room above the white rail
   instead of repeatedly moving the rail or over-compressing individual elements.
   ========================================================================== */
@media (min-width: 992px) and (max-height: 860px) {
    .itpulse-projects-page > .projects-v27-hero .row > .col-lg-7 {
        position: relative;
        top: -30px;
    }
}

/* ========================================================================== 
   V3.0.13 — Projects portfolio grid-background refinement
   Screenshot-directed cosmetic adjustment only. Preserve the technical grid
   language, but reduce its contrast substantially and let it dissolve toward
   the lower part of the Projects portfolio so empty space after the final card
   row reads as clean page background rather than an unfinished design canvas.
   Hero, principles rail, cards and all motion systems remain untouched.
   ========================================================================== */
.itpulse-projects-page .project-portfolio-section {
    background:
        linear-gradient(
            180deg,
            rgba(247, 251, 253, 0) 0%,
            rgba(247, 251, 253, 0) 58%,
            rgba(247, 251, 253, .34) 74%,
            rgba(247, 251, 253, .78) 90%,
            #f7fbfd 100%
        ),
        linear-gradient(rgba(0, 168, 199, .018) 1px, transparent 1px),
        linear-gradient(90deg, rgba(0, 168, 199, .018) 1px, transparent 1px),
        #f7fbfd;
    background-size: auto, 42px 42px, 42px 42px, auto;
}

/* ========================================================================== 
   V3.0.14 — About + Projects screenshot-directed vertical rebalance
   This pass follows the approved annotated screenshots after V3.0.13.
   Projects: undo the over-compressed left stack, restore a stronger headline
   and natural kicker gap, and gain separation by allowing the hero itself to
   grow downward. The principles rail keeps its established overlap and entry
   motion, so it moves down naturally with the hero rather than being positioned
   independently.
   About: modestly deepen the hero and restore breathing room above the CTA row.
   No radar/orbit, grid-refinement, card, header, footer or site-wide motion
   systems are changed here.
   ========================================================================== */

@media (min-width: 992px) and (max-height: 860px) {
    /* PROJECTS — restore natural internal scale/rhythm. */
    .itpulse-projects-page > .projects-v27-hero {
        padding-top: 50px !important;
        padding-bottom: 60px !important;
    }

    .itpulse-projects-page > .projects-v27-hero .row > .col-lg-7 {
        position: static;
        top: auto;
    }

    .itpulse-projects-page > .projects-v27-hero .itpulse-kicker {
        margin-bottom: 13px;
    }

    .itpulse-projects-page > .projects-v27-hero h1 {
        font-size: clamp(2.55rem, 4.15vw, 4.35rem);
        line-height: .99;
        margin-top: 0;
        margin-bottom: 14px;
    }

    .itpulse-projects-page > .projects-v27-hero p:not(.projects-v27-integrity-note) {
        margin-top: 0;
        line-height: 1.6;
    }

    .itpulse-projects-page .projects-v27-hero-actions {
        margin-top: 19px;
    }

    .itpulse-projects-page .projects-v27-integrity-note {
        margin-top: 13px !important;
    }

    /* ABOUT — only a modest downward expansion; no oversized dead zone. */
    .itpulse-about-page > .about-page-hero {
        min-height: 575px !important;
        padding-bottom: 86px !important;
    }

    .itpulse-about-page .about-hero-actions {
        margin-top: 32px;
    }
}

/* ========================================================================== 
   V3.0.15 — Services detail first-screen return-state guard
   Scope: individual /services/.../ detail pages only.

   The seven Service detail pages share the same template, but their natural
   hero heights vary with title wrapping. On first load the first Service
   Overview WOW composition is still hidden; once it has revealed, returning
   to scrollY=0 leaves part of that already-revealed composition visible below
   shorter heroes. Main landing pages already use a stable first-screen rhythm.

   Keep the Service hero content-led and reasonably sized (not a full-screen
   navy slab), then reserve a modest post-hero white runway. At common laptop
   heights the hero grows just enough to normalize one-line and two-line titles.
   On taller desktop viewports the hero is capped and only the white runway grows,
   avoiding the oversized dark dead-zone previously rejected on About.
   ========================================================================== */
@media (min-width: 992px) {
    .itpulse-service-detail > .service-detail-hero {
        /* 112px is the locked desktop utility-bar + navbar geometry.
           The preferred value leaves ~118px for the clean post-hero runway. */
        min-height: clamp(560px, calc(100vh - 230px), 610px);
        min-height: clamp(560px, calc(100svh - 230px), 610px);
    }

    .itpulse-service-detail > .service-overview-section {
        /* Normal Service Overview spacing is ~96px. 120px gives the first
           composition a clean hand-off below the hero on laptop screens.
           Once the hero reaches its 610px cap, extend only this white runway
           enough to keep revealed overview content out of the true top state. */
        padding-top: max(120px, calc(100vh - 722px));
        padding-top: max(120px, calc(100svh - 722px));
    }
}

/* ========================================================================== 
   V3.0.16 — Project detail snapshot / first-screen stabilization
   Scope: individual /project/.../ detail pages only.

   The first Project snapshot rail is structural navigation/context, not deferred
   body content. In V3.0.15 its white shell entered the viewport well before its
   four WOW children were allowed to reveal. This produced a long-lived empty
   strip and, after one downward scroll, a different return-to-top state because
   WOW correctly retains revealed elements.

   Keep the deeper project sections progressive, but make the snapshot rail
   populated from first paint. On common laptop-height desktops, reclaim only
   enough vertical space from the detail hero's outer padding to let the complete
   snapshot rail read as an intentional first-screen element rather than a cut
   white sliver. No Projects landing-page, Service-page, radar, card or global
   motion rules are altered.
   ========================================================================== */
@media (min-width: 1200px) and (max-height: 860px) {
    .itpulse-project-detail > .project-detail-hero {
        padding-top: 58px;
        padding-bottom: 48px;
    }

    .itpulse-project-detail > .project-snapshot-section {
        margin-top: -28px;
    }
}

/* ========================================================================== 
   V3.0.17 — PROJECT DETAIL COMPLETE FIRST-SCREEN SNAPSHOT
   --------------------------------------------------------------------------
   Laptop-height desktop correction for individual Project detail pages only.

   Target: at scrollY=0 the complete, already-populated Project Type / Capability /
   Context / Environment rail must fit inside the first viewport. V3.0.16 fixed
   the empty-shell timing but its geometry reduction was not strong enough on the
   review viewport, leaving the rail partially cut.

   This rule deliberately compacts only the vertical rhythm of Project-detail
   heroes on short desktop screens. It does not alter the Projects landing page,
   Service pages, card motion, radar/orbit motion, or deeper section reveals.
   ========================================================================== */
@media (min-width: 1200px) and (max-height: 860px) {
    .itpulse-project-detail > .project-detail-hero {
        padding-top: 34px;
        padding-bottom: 28px;
    }

    .itpulse-project-detail .project-detail-classification {
        margin-bottom: 10px;
    }

    .itpulse-project-detail .project-detail-hero h1 {
        margin-top: 13px;
        margin-bottom: 15px;
        font-size: clamp(2.6rem, 4.25vw, 4.25rem);
        line-height: .98;
    }

    .itpulse-project-detail .project-detail-actions {
        margin-top: 20px;
    }

    .itpulse-project-detail > .project-snapshot-section {
        margin-top: -28px;
    }
}

/* ========================================================================== 
   V3.0.18 — Project detail landing choreography + balanced first screen
   Scope: individual /project/.../ pages only.

   V3.0.17 forced the full snapshot rail into the viewport by over-compressing
   the hero. This restores breathing room and achieves the same first-screen
   target by making the rail itself slightly more efficient, while adding a
   deliberate sequential landing choreography unique to project detail pages.
   ========================================================================== */
@media (min-width: 1200px) and (max-height: 860px) {
    .itpulse-project-detail > .project-detail-hero {
        padding-top: 52px;
        padding-bottom: 44px;
    }

    .itpulse-project-detail .project-detail-classification {
        margin-bottom: 14px;
    }

    .itpulse-project-detail .project-detail-hero h1 {
        margin-top: 16px;
        margin-bottom: 18px;
        font-size: clamp(2.85rem, 4.55vw, 4.65rem);
        line-height: .98;
    }

    .itpulse-project-detail .project-detail-actions {
        margin-top: 24px;
    }

    .itpulse-project-detail > .project-snapshot-section {
        margin-top: -24px;
    }

    .itpulse-project-detail .project-snapshot-grid article {
        min-height: 96px;
        padding: 18px 22px;
    }
}

/* First-load Project-detail choreography. The classes are removed from the
   visibility equation only after JS marks this page ready; content remains in
   normal document flow throughout, preventing layout jumps. */
.itpulse-project-detail.project-entry-pending .project-entry-item,
.itpulse-project-detail.project-entry-pending .project-entry-emblem,
.itpulse-project-detail.project-entry-pending .project-entry-snapshot,
.itpulse-project-detail.project-entry-pending .project-entry-snapshot-cell {
    opacity: 0;
}

.itpulse-project-detail.project-entry-pending .project-entry-item {
    transform: translate3d(0, 16px, 0);
}

.itpulse-project-detail.project-entry-pending .project-entry-emblem {
    transform: translate3d(18px, 0, 0) scale(.96);
}

.itpulse-project-detail.project-entry-pending .project-entry-snapshot {
    transform: translate3d(0, 30px, 0);
}

.itpulse-project-detail.project-entry-pending .project-entry-snapshot-cell {
    transform: translate3d(0, 10px, 0);
}

.itpulse-project-detail.project-entry-ready .project-entry-item,
.itpulse-project-detail.project-entry-ready .project-entry-emblem,
.itpulse-project-detail.project-entry-ready .project-entry-snapshot,
.itpulse-project-detail.project-entry-ready .project-entry-snapshot-cell {
    opacity: 1;
    transform: none;
}

.itpulse-project-detail .project-entry-item,
.itpulse-project-detail .project-entry-emblem,
.itpulse-project-detail .project-entry-snapshot,
.itpulse-project-detail .project-entry-snapshot-cell {
    transition-property: opacity, transform;
    transition-duration: .72s;
    transition-timing-function: cubic-bezier(.2,.75,.25,1);
    will-change: opacity, transform;
}

.itpulse-project-detail .project-entry-breadcrumb { transition-delay: .08s; }
.itpulse-project-detail .project-entry-classification { transition-delay: .16s; }
.itpulse-project-detail .project-entry-kicker { transition-delay: .23s; }
.itpulse-project-detail .project-entry-title { transition-delay: .31s; }
.itpulse-project-detail .project-entry-summary { transition-delay: .41s; }
.itpulse-project-detail .project-entry-actions { transition-delay: .52s; }
.itpulse-project-detail .project-entry-emblem { transition-delay: .26s; }
.itpulse-project-detail .project-entry-snapshot { transition-delay: .68s; }
.itpulse-project-detail .project-entry-snapshot-cell:nth-child(1) { transition-delay: .80s; }
.itpulse-project-detail .project-entry-snapshot-cell:nth-child(2) { transition-delay: .88s; }
.itpulse-project-detail .project-entry-snapshot-cell:nth-child(3) { transition-delay: .96s; }
.itpulse-project-detail .project-entry-snapshot-cell:nth-child(4) { transition-delay: 1.04s; }

/* Give the Project emblem its own restrained living motion after entry settles. */
.itpulse-project-detail.project-entry-ready .project-detail-emblem > span:first-child {
    animation: itpulseProjectRingBreath 5.8s ease-in-out 1.15s infinite;
}
.itpulse-project-detail.project-entry-ready .project-detail-emblem > span:nth-child(2) {
    animation: itpulseProjectRingBreath 4.7s ease-in-out 1.35s infinite reverse;
}
.itpulse-project-detail.project-entry-ready .project-detail-emblem i {
    animation: itpulseProjectCoreFloat 4.2s ease-in-out 1.1s infinite;
}

@keyframes itpulseProjectRingBreath {
    0%,100% { opacity: .78; transform: translate(-50%,-50%) scale(1); }
    50% { opacity: 1; transform: translate(-50%,-50%) scale(1.035); }
}
@keyframes itpulseProjectCoreFloat {
    0%,100% { transform: translate(-50%,-50%) translateY(0); }
    50% { transform: translate(-50%,-50%) translateY(-6px); }
}

@media (prefers-reduced-motion: reduce) {
    .itpulse-project-detail .project-entry-item,
    .itpulse-project-detail .project-entry-emblem,
    .itpulse-project-detail .project-entry-snapshot,
    .itpulse-project-detail .project-entry-snapshot-cell {
        opacity: 1 !important;
        transform: none !important;
        transition: none !important;
        animation: none !important;
    }
}


/* ========================================================================== 
   V3.0.19 — SOLUTION DETAIL FIRST-SCREEN GUARD + SHARED HERO CAPTION ALIGNMENT
   --------------------------------------------------------------------------
   Scope:
   - individual /solutions/.../ detail pages: first-screen / return-to-top guard
   - individual /project/.../ + /solutions/.../: ITPULSE emblem-caption alignment

   Uses the already-approved Service-detail strategy: keep the hero reasonably
   deep and reserve a clean white runway before the first progressive section.
   This prevents once-revealed Solution Context content from peeking into the
   true scrollY=0 viewport after the visitor scrolls back to the top.
   ========================================================================== */
@media (min-width: 992px) {
    .itpulse-solution-detail > .solution-detail-hero {
        min-height: clamp(560px, calc(100vh - 230px), 610px);
        min-height: clamp(560px, calc(100svh - 230px), 610px);
    }

    .itpulse-solution-detail > .solution-context-section {
        padding-top: max(120px, calc(100vh - 722px));
        padding-top: max(120px, calc(100svh - 722px));
    }

    /* Keep the brand caption outside the cyan icon, but visually couple it to
       the icon instead of leaving it near the lower orbit boundary. */
    .itpulse-solution-detail .solution-detail-emblem small {
        bottom: 22%;
    }

    .itpulse-project-detail .project-detail-emblem small {
        bottom: 78px;
    }
}

/* ========================================================================== 
   PageFamily v1.0.0 — Shared category-archive return-to-top normalization
   --------------------------------------------------------------------------
   Every WordPress category rendered by the shared Blog archive template now
   uses one semantic target class. This replaces the historical slug-by-slug
   patches while preserving the already-approved WOW/fadeInUp entrance and the
   clean initial landing state at absolute page top.

   Deliberately excluded: main Blog landing, tag archives and unrelated archive
   families. Their already-approved behavior remains unchanged.
   ========================================================================== */
.itpulse-category-featured-reset-target {
    transition: opacity 420ms ease, transform 560ms cubic-bezier(.22,.61,.36,1);
    will-change: opacity, transform;
}

.itpulse-category-featured-reset-target.is-insight-category-top-reset {
    opacity: 0 !important;
    transform: translate3d(0, 46px, 0) !important;
    pointer-events: none;
}

@media (prefers-reduced-motion: reduce) {
    .itpulse-category-featured-reset-target {
        transition-duration: 1ms !important;
    }
}


/* ==========================================================================
   PageFamily v1.8.0 — Final-audit first-content timing + rail visibility
   --------------------------------------------------------------------------
   Scope is intentionally narrow. No typography, card sizing, section padding,
   hero geometry or approved animation style is changed.

   On common laptop-height desktop viewports the Projects and Solutions bridge
   rails need a small upward placement correction so their full white shell is
   visible instead of being clipped by the bottom edge of the viewport.
   ========================================================================== */
@media (min-width: 992px) and (max-height: 860px) {
    .itpulse-projects-page > .project-principles-strip {
        margin-top: -62px;
    }

    .itpulse-solutions-page > .solution-outcome-strip {
        margin-top: -60px;
    }
}


/* ========================================================================== 
   PageFamily v1.8.2 — Final visual tuning micro-pass
   --------------------------------------------------------------------------
   Scope is intentionally limited to the Contact landing CTA stack and the
   Projects/Solutions landing bridge-rail sitting position on laptop-height
   desktop viewports. No hero sizing, typography, animation choreography,
   reveal timing, card sizing or deeper-page spacing is changed.
   ========================================================================== */
@media (min-width: 992px) and (max-height: 860px) {
    /* Contact: bring the CTA row and trust note fully into the first viewport
       by tightening only their local vertical gaps. */
    .itpulse-contact-page .contact-v3-hero-actions {
        margin-top: 16px;
    }

    .itpulse-contact-page .contact-v3-trust-note {
        margin-top: 12px;
    }

    /* Projects/Solutions: lower the already-visible rails by a small 8px
       relative to v1.8.1, retaining complete viewport visibility. */
    .itpulse-projects-page > .project-principles-strip {
        margin-top: -54px;
    }

    .itpulse-solutions-page > .solution-outcome-strip {
        margin-top: -52px;
    }
}

/* ========================================================================== 
   PageFamily v1.8.3 — Final viewport-fit micro-tuning
   --------------------------------------------------------------------------
   Scope remains limited to laptop-height desktop viewports. No hero geometry,
   animation choreography, card system, typography scale or unrelated spacing
   is changed.
   ========================================================================== */
@media (min-width: 992px) and (max-height: 860px) {
    /* Contact: compact only the lower copy/CTA stack so the trust note remains
       inside the initial viewport without shrinking the hero itself. */
    .itpulse-contact-page .contact-v3-hero h1 {
        margin-bottom: 14px;
    }

    .itpulse-contact-page .contact-v3-hero-copy > p:not(.contact-v3-trust-note) {
        line-height: 1.62;
    }

    .itpulse-contact-page .contact-v3-hero-actions {
        margin-top: 10px;
    }

    .itpulse-contact-page .contact-v3-trust-note {
        margin-top: 8px;
        line-height: 1.5;
    }

    /* Projects/Solutions: preserve the current bridge-strip sitting position,
       but reduce only the strip's vertical footprint so the complete white
       rail remains visible on the same viewport. */
    .itpulse-projects-page .project-principles-grid article {
        min-height: 94px;
        padding: 15px 20px;
    }

    .itpulse-solutions-page .solution-outcome-grid article {
        min-height: 96px;
        padding: 16px 20px;
    }
}


/* ==========================================================================
   PageFamily v1.8.4 — Contact channel compactness
   Compact only the four direct-contact cards below the hero.
   ========================================================================== */
@media (min-width: 992px) {
    .contact-v3-channel {
        min-height: 184px;
        padding-top: 22px;
        padding-bottom: 22px;
    }
}


/* =========================================================
   V3.1.9.2 — Final content/UX completion
   ========================================================= */
.contact-form-modern.is-submitting { position: relative; }
.contact-form-modern.is-submitting .contact-form-submit button { cursor: wait; opacity: .9; }
.contact-form-modern.is-submitting .contact-submit-status { color: #087f99; font-weight: 700; }

.project-navigation-all {
    position: relative;
    overflow: hidden;
    transition: transform .55s cubic-bezier(.22,1,.36,1), box-shadow .55s cubic-bezier(.22,1,.36,1), border-color .35s ease, background .35s ease;
    border: 1px solid rgba(27,198,225,.18);
}
.project-navigation-all::before {
    content: "";
    position: absolute;
    top: 0;
    left: 23%;
    right: 23%;
    height: 2px;
    background: #18c6e1;
    border-radius: 0 0 10px 10px;
    opacity: .72;
    transition: left .45s ease, right .45s ease, opacity .35s ease;
}
.project-navigation-all:hover,
.project-navigation-all:focus-visible {
    color:#fff !important;
    transform: translateY(-5px);
    background: linear-gradient(145deg,#09213f 0%,#0c3154 100%);
    border-color: rgba(27,198,225,.55);
    box-shadow: 0 18px 38px rgba(7,26,51,.22),0 6px 16px rgba(7,26,51,.16);
}
.project-navigation-all:hover::before,
.project-navigation-all:focus-visible::before { left: 12%; right: 12%; opacity:1; }
.project-navigation-all i,
.project-navigation-all span { position:relative; z-index:2; }

.itpulse-theme-toggle {
    width: 44px;
    height: 44px;
    display: grid;
    place-items: center;
    flex: 0 0 44px;
    border-radius: 14px;
    border: 1px solid rgba(255,255,255,.14);
    color: #fff;
    background: rgba(255,255,255,.045);
    transition: transform var(--itpulse-transition), background var(--itpulse-transition), border-color var(--itpulse-transition);
}
.itpulse-theme-toggle:hover,
.itpulse-theme-toggle:focus-visible { transform: translateY(-2px); background: rgba(255,255,255,.11); border-color: rgba(0,191,166,.65); }
.itpulse-theme-toggle i { font-size: 1rem; }

/* Selected alternative: Theme A — Deep Slate & Teal. */
html.itpulse-theme-slate {
    --itpulse-primary: #0f172a;
    --itpulse-primary-2: #1e293b;
    --itpulse-secondary: #00bfa6;
    --itpulse-secondary-strong: #009f8b;
    --itpulse-accent: #2dd4bf;
    --itpulse-dark: #0b1220;
    --itpulse-ink: #172033;
}
html.itpulse-theme-slate .itpulse-topbar { background:#0b1220; }
html.itpulse-theme-slate .itpulse-navbar-shell { background:linear-gradient(105deg,#0f172a,#1e293b); }
html.itpulse-theme-slate .itpulse-phone-icon,
html.itpulse-theme-slate .btn-secondary { background-color:#00bfa6 !important; }
html.itpulse-theme-slate .facts-bar { background: transparent !important; }
html.itpulse-theme-slate .about-page-hero,
html.itpulse-theme-slate .services-page-hero,
html.itpulse-theme-slate .solutions-page-hero,
html.itpulse-theme-slate .projects-v27-hero,
html.itpulse-theme-slate .contact-v3-hero,
html.itpulse-theme-slate .service-detail-hero,
html.itpulse-theme-slate .solution-detail-hero,
html.itpulse-theme-slate .project-detail-hero,
html.itpulse-theme-slate .blog-article-hero,
html.itpulse-theme-slate .team-page-hero {
    background-color:#0f172a !important;
    background-image: radial-gradient(circle at 82% 16%,rgba(0,191,166,.22),transparent 30%),linear-gradient(118deg,#0f172a 0%,#1e293b 64%,#153b3a 100%) !important;
}
html.itpulse-theme-slate .carousel-item::before { background:linear-gradient(90deg,rgba(15,23,42,.93),rgba(15,23,42,.64),rgba(15,23,42,.22)); }
html.itpulse-theme-slate .itpulse-slogan-spotlight { border-color:rgba(0,191,166,.42); }
html.itpulse-theme-slate .itpulse-live-dot,
html.itpulse-theme-slate .itpulse-slogan-beam { background:#2dd4bf; }
html.itpulse-theme-slate .project-detail-cta,
html.itpulse-theme-slate .project-main-cta { background:radial-gradient(circle at 85% 20%,rgba(0,191,166,.22),transparent 27%),linear-gradient(135deg,#0f172a,#153b3a); }
html.itpulse-theme-slate .project-navigation-all,
html.itpulse-theme-slate .blog-post-nav-home { background:linear-gradient(145deg,#0f172a,#1e293b); border-color:rgba(0,191,166,.28); }
html.itpulse-theme-slate .project-navigation-all::before,
html.itpulse-theme-slate .blog-post-nav-home::before { background:#00bfa6; }
html.itpulse-theme-slate .itpulse-theme-toggle { color:#0f172a; background:#2dd4bf; border-color:#2dd4bf; }
