/* Shared navigation extracted from text.php. Scoped; no public content styles. */
/* Keep the menu caption on the blue part of the prototype gradient. */
:is(#ip-site-chrome, #siteHeader) .ip-services-all > span:first-child { flex: 1; text-align: center; }

/* ipnorov-theme */
@font-face {
                font-family: IPHeaderBrand;
                font-style: normal;
                font-weight: 700;
                font-display: swap;
                src: url("/assets/fonts/site-header/montserrat-bold.woff") format("woff");
            }
:is(#ip-site-chrome, #siteHeader) {
                --ink: #20252b;
                --muted: #59636f;
                --accent: #e31e24;
                --accent-hover: #c91920;
                --on-accent: #fff;
                --accent-ink: #b3161c;
                --accent-soft: #fff1f2;
                --canvas: #fff;
                --line: #dde2e7;
                --font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
                --display: IPHeaderBrand, Arial, sans-serif;
                --an-header-height: 76px;
                --an-bottom-height: 0px;
            }

/* ipnorov-base */
:is(#ip-site-chrome, #siteHeader) {
                margin: 0;
                background: var(--canvas);
                color: var(--ink);
                font: 400 1rem/1.5 var(--font);
                -webkit-text-size-adjust: 100%;
                -webkit-font-smoothing: antialiased;
                padding-bottom: var(--an-bottom-height);
            }
:is(#ip-site-chrome, #siteHeader) *,
:is(#ip-site-chrome, #siteHeader) *::before,
:is(#ip-site-chrome, #siteHeader) *::after {
                box-sizing: border-box;
            }
:is(#ip-site-chrome, #siteHeader) [hidden] {
                display: none !important;
            }
:is(#ip-site-chrome, #siteHeader) img {
                max-width: 100%;
                height: auto;
            }
:is(#ip-site-chrome, #siteHeader) a {
                color: inherit;
                text-decoration: none;
            }
:is(#ip-site-chrome, #siteHeader) button,
:is(#ip-site-chrome, #siteHeader) input,
:is(#ip-site-chrome, #siteHeader) textarea,
:is(#ip-site-chrome, #siteHeader) select {
                font: inherit;
            }
:is(#ip-site-chrome, #siteHeader) button {
                cursor: pointer;
            }
:is(#ip-site-chrome, #siteHeader) select:disabled {
                cursor: not-allowed;
                opacity: 0.55;
            }
:is(#ip-site-chrome, #siteHeader) a,
:is(#ip-site-chrome, #siteHeader) button,
:is(#ip-site-chrome, #siteHeader) summary {
                touch-action: manipulation;
            }
:is(#ip-site-chrome, #siteHeader) :is(button, a, input, select, textarea, summary):focus-visible {
                outline: 3px solid var(--accent-ink);
                outline-offset: 3px;
            }
:is(#ip-site-chrome, #siteHeader) h1,
:is(#ip-site-chrome, #siteHeader) h2,
:is(#ip-site-chrome, #siteHeader) h3 {
                line-height: 1.25;
                letter-spacing: -0.025em;
                overflow-wrap: anywhere;
            }
:is(#ip-site-chrome, #siteHeader) p {
                overflow-wrap: anywhere;
            }
:is(#ip-site-chrome, #siteHeader) h1 {
                font-size: 2rem;
            }
:is(#ip-site-chrome, #siteHeader) h2 {
                font-size: 1.5rem;
            }
:is(#ip-site-chrome, #siteHeader) h3 {
                font-size: 1.125rem;
            }
:is(#ip-site-chrome, #siteHeader) svg.icon {
                width: 20px;
                height: 20px;
                fill: none;
                stroke: currentColor;
                stroke-width: 1.75;
                stroke-linecap: round;
                stroke-linejoin: round;
                flex-shrink: 0;
            }
:is(#ip-site-chrome, #siteHeader) .an-wrap {
                width: min(1240px, calc(100% - 40px));
                margin-inline: auto;
                padding-inline: 20px;
            }
:is(#ip-site-chrome, #siteHeader) .an-skip {
                position: fixed;
                top: -100px;
                left: 16px;
                z-index: 1000;
                background: #fff;
                padding: 12px;
                border: 2px solid var(--accent);
            }
:is(#ip-site-chrome, #siteHeader) .an-skip:focus {
                top: 12px;
            }
:is(#ip-site-chrome, #siteHeader) #an-content {
                scroll-margin-top: var(--an-header-height);
            }
@media (max-width: 1180px){
:is(#ip-site-chrome, #siteHeader) .an-wrap {
                    width: calc(100% - 28px);
                    padding-inline: 14px;
                }
}
@media (max-width: 700px){
:is(#ip-site-chrome, #siteHeader) .an-wrap {
                    width: 100%;
                    padding-inline: 12px;
                }
:is(#ip-site-chrome, #siteHeader) h1 {
                    font-size: 1.75rem;
                }
:is(#ip-site-chrome, #siteHeader) :is(input, select, textarea) {
                    font-size: 1rem;
                }
:is(#ip-site-chrome, #siteHeader) {
                    --an-bottom-height: calc(88px + env(safe-area-inset-bottom));
                }
}
@media (prefers-reduced-motion: reduce){

}
:is(#ip-site-chrome, #siteHeader) :where(.home-page) button {
                background: none;
                border: 0;
            }

/* ipnorov-controls */
:is(#ip-site-chrome, #siteHeader) .btn {
                display: inline-flex;
                align-items: center;
                justify-content: center;
                gap: 9px;
                min-height: 46px;
                padding: 11px 18px;
                border: 1px solid var(--accent);
                border-radius: 8px;
                background: var(--accent);
                color: var(--on-accent);
                font-size: 0.9375rem;
                font-weight: 650;
                line-height: 1.4;
                text-align: center;
                white-space: normal;
                text-decoration: none;
                box-shadow: none;
            }
:is(#ip-site-chrome, #siteHeader) .btn:hover {
                background: var(--accent-hover);
                border-color: var(--accent-hover);
            }
:is(#ip-site-chrome, #siteHeader) :is(input[type="checkbox"], input[type="radio"]) {
                width: 18px;
                min-height: 18px;
                height: 18px;
                accent-color: var(--accent-ink);
            }
:is(#ip-site-chrome, #siteHeader) textarea {
                resize: vertical;
            }

/* ipnorov-shell */
#siteHeader.an-header {
                position: sticky;
                top: 0;
                z-index: 45;
                background: #fff;
                border-bottom: 1px solid var(--line);
            }
:is(#ip-site-chrome, #siteHeader) .an-header-inner {
                display: flex;
                align-items: center;
                gap: 22px;
                min-height: 76px;
            }
:is(#ip-site-chrome, #siteHeader) .an-brand {
                font: 700 1.375rem/1.2 var(--display);
                letter-spacing: -0.05em;
                display: inline-flex;
                align-items: center;
                gap: 9px;
                flex-shrink: 0;
            }
:is(#ip-site-chrome, #siteHeader) .an-brand > span > span {
                color: var(--accent);
            }
:is(#ip-site-chrome, #siteHeader) .an-brand-mark {
                display: grid;
                place-items: center;
                width: 34px;
                height: 40px;
                border-radius: 8px;
                background: var(--accent);
                color: var(--ink);
            }
:is(#ip-site-chrome, #siteHeader) .an-header-actions {
                display: flex;
                align-items: center;
                gap: 16px;
                margin-left: auto;
            }
:is(#ip-site-chrome, #siteHeader) .an-divider {
                height: 24px;
                width: 1px;
                background: var(--line);
            }
#siteHeader.an-header .an-post {
                background: var(--ink);
                border-color: var(--ink);
                color: white;
            }
#siteHeader.an-header .an-post:hover {
                background: #383e45;
                border-color: #383e45;
            }
:is(#ip-site-chrome, #siteHeader) .an-bottom-nav {
                display: none;
            }
@media (max-width: 1000px){
:is(#ip-site-chrome, #siteHeader) .an-header-inner {
                    gap: 16px;
                }
:is(#ip-site-chrome, #siteHeader) .an-header-actions {
                    gap: 10px;
                }
#siteHeader.an-header .an-post {
                    padding: 10px;
                    font-size: 0.8125rem;
                }
:is(#ip-site-chrome, #siteHeader) .an-divider {
                    display: none;
                }
}
@media (max-width: 700px){
#siteHeader.an-header {
                    background: var(--ink);
                    border-color: #343b43;
                    color: #fff;
                }
:is(#ip-site-chrome, #siteHeader) .an-header-inner {
                    flex-wrap: wrap;
                    gap: 8px;
                    padding-block: 10px;
                }
#siteHeader.an-header .an-brand {
                    font-size: 1.05rem;
                    gap: 6px;
                    color: #fff;
                }
#siteHeader.an-header .an-brand-mark {
                    width: 26px;
                    height: 32px;
                }
:is(#ip-site-chrome, #siteHeader) .an-header-actions {
                    gap: 6px;
                }
#siteHeader.an-header .an-post {
                    display: inline-flex;
                    width: 44px;
                    min-width: 44px;
                    height: 44px;
                    min-height: 44px;
                    padding: 0;
                    background: var(--accent);
                    border-color: var(--accent);
                    color: var(--ink);
                    border-radius: 9px;
                }
#siteHeader.an-header .an-post > span {
                    display: none;
                }
#siteHeader.an-header .an-post .icon {
                    width: 24px;
                    height: 24px;
                }
#siteHeader.an-header .an-post:hover {
                    background: var(--accent-hover);
                    border-color: var(--accent-hover);
                }
#siteHeader.an-header :is(a, button):focus-visible {
                    outline-color: #ffad84;
                }
:is(#ip-site-chrome, #siteHeader) .an-bottom-nav {
                    display: grid;
                    grid-template-columns: repeat(5, minmax(0, 1fr));
                    position: fixed;
                    left: 12px;
                    right: 12px;
                    bottom: max(10px, env(safe-area-inset-bottom));
                    height: 70px;
                    z-index: 50;
                    background: var(--ink);
                    border: 1px solid #ffffff22;
                    border-radius: 14px;
                    box-shadow: 0 7px 22px #20252b30;
                    padding: 5px;
                }
:is(#ip-site-chrome, #siteHeader):has(input:focus, textarea:focus, select:focus) .an-bottom-nav,
:is(#ip-site-chrome, #siteHeader).an-keyboard-open .an-bottom-nav {
                    visibility: hidden;
                    pointer-events: none;
                }
}
@media (max-width: 350px){
:is(#ip-site-chrome, #siteHeader) .an-brand {
                    font-size: 1.1rem;
                }
}
@media (max-width: 1100px){
:is(#ip-site-chrome, #siteHeader) .an-header-inner {
                    gap: 16px;
                }
:is(#ip-site-chrome, #siteHeader) .an-post span {
                    display: none;
                }
:is(#ip-site-chrome, #siteHeader) .an-header-actions {
                    gap: 10px;
                }
}
@media (max-width: 1100px){
:is(#ip-site-chrome, #siteHeader) .an-header-actions {
                    margin-left: auto;
                }
}
@media (max-width: 700px){
#siteHeader.an-header {
                    position: static;
                    top: auto;
                }
#siteHeader.an-header .an-post {
                    display: none;
                }
}
:is(#ip-site-chrome, #siteHeader) .an-brand {
                color: var(--ink);
            }
:is(#ip-site-chrome, #siteHeader) .an-brand > span > span {
                color: var(--accent);
            }
:is(#ip-site-chrome, #siteHeader) .an-brand-mark {
                background: var(--accent);
                color: var(--on-accent);
            }
#siteHeader.an-header .an-post {
                background: var(--accent);
                border-color: var(--accent);
                color: var(--on-accent);
            }
#siteHeader.an-header .an-post:hover {
                background: var(--accent-hover);
                border-color: var(--accent-hover);
                color: var(--on-accent);
            }
@media (min-width: 701px){
#siteHeader.an-header {
                    background: #fff;
                    color: var(--ink);
                    border-color: var(--line);
                }
#siteHeader.an-header :is(a, button):focus-visible {
                    outline-color: var(--accent-ink);
                }
}
@media (max-width: 700px){
#siteHeader.an-header .an-brand {
                    color: var(--on-accent);
                }
}

/* ipnorov-header */
:is(#ip-site-chrome, #siteHeader) {
                --ip-blue: #0039a6;
                --ip-blue-gradient: linear-gradient(115deg, #0753c9 0%, #0039a6 62%, #002b7f 100%);
            }
#siteHeader.ip-header {
                background: #fff;
                color: var(--ink, #17242d);
            }
#siteHeader.ip-header .an-header-inner {
                gap: 20px;
            }
#siteHeader.ip-header .an-brand {
                gap: 10px;
            }
#siteHeader.ip-header .an-brand-mark {
                display: grid;
                flex: 0 0 52px;
                width: 52px;
                height: 40px;
                place-items: center;
                margin: 0;
                padding: 0;
                border-radius: 9px;
                background: var(--ip-blue-gradient);
                box-shadow:
                    inset 0 1px 0 rgb(255 255 255 / 18%),
                    0 3px 8px rgb(0 57 166 / 16%);
            }
#siteHeader.ip-header .ip-brand-wordmark {
                display: inline-flex;
                white-space: nowrap;
            }
#siteHeader.ip-header .an-brand .ip-brand-name {
                color: var(--accent, #ed1526);
            }
#siteHeader.ip-header .an-brand .ip-brand-letter {
                display: block;
                margin: 0;
                padding: 0;
                color: #fff;
                font: 700 18px / 1 var(--display, sans-serif);
                letter-spacing: 0;
                text-align: center;
            }
#siteHeader.ip-header .ip-primary-nav {
                display: grid;
                grid-template-columns: minmax(138px, 1.2fr) repeat(3, minmax(104px, 1fr));
                flex: 1 1 600px;
                gap: 10px;
                min-width: 480px;
                max-width: 640px;
            }
#siteHeader.ip-header .ip-header-nav-control {
                display: flex;
                align-items: center;
                justify-content: space-between;
                gap: 10px;
                width: 100%;
                min-width: 0;
                min-height: 44px;
                margin: 0;
                padding: 10px 12px;
                border: 1px solid #d5dce4;
                border-radius: 8px;
                background: #f7f8fa;
                color: var(--ink, #17242d);
                font: inherit;
                font-size: 13px;
                font-weight: 400;
                line-height: 1.3;
                text-align: left;
                cursor: pointer;
                list-style: none;
            }
#siteHeader.ip-header .ip-header-nav-control:hover,
#siteHeader.ip-header .ip-header-nav-control[aria-expanded="true"] {
                border-color: #8b98a6;
                background: #fff;
            }
#siteHeader.ip-header .ip-nav-chevron {
                flex: none;
                width: 14px;
                height: 14px;
                fill: none;
                stroke: #687481;
                stroke-width: 1.4;
                stroke-linecap: round;
                stroke-linejoin: round;
            }
#siteHeader.ip-header
                :is([data-ip-open-signs], [data-ip-open-portfolio])[aria-expanded="true"]
                .ip-nav-chevron {
                transform: rotate(180deg);
            }
#siteHeader.ip-header :is(a, button):focus-visible {
                outline: 2px solid var(--accent-ink, #c41423);
                outline-offset: 3px;
            }
#siteHeader.ip-header .ip-header-notice {
                position: fixed;
                z-index: 110;
                right: 20px;
                bottom: 24px;
                display: flex;
                align-items: center;
                gap: 12px;
                max-width: min(440px, calc(100vw - 40px));
                padding: 10px 12px 10px 16px;
                border-radius: 10px;
                background: var(--ink, #17242d);
                color: #fff;
                box-shadow: 0 8px 24px rgb(23 36 45 / 20%);
                font-size: 14px;
                line-height: 1.45;
            }
#siteHeader.ip-header .ip-header-notice[hidden] {
                display: none;
            }
#siteHeader.ip-header .ip-header-notice button {
                flex: none;
                width: 44px;
                height: 44px;
                padding: 0;
                border: 0;
                border-radius: 6px;
                background: transparent;
                color: inherit;
                font-size: 26px;
                line-height: 1;
                cursor: pointer;
            }
#siteHeader.ip-header .ip-header-notice button:focus-visible {
                outline-color: #fff;
            }
:is(#ip-site-chrome, #siteHeader) .an-bottom-nav.ip-bottom-nav {
                grid-template-columns: repeat(4, minmax(0, 1fr));
            }
:is(#ip-site-chrome, #siteHeader) .ip-bottom-nav > :is(a,button) {
                display: flex;
                flex-direction: column;
                align-items: center;
                justify-content: center;
                gap: 4px;
                min-width: 0;
                min-height: 44px;
                padding: 4px 2px;
                border: 0;
                border-radius: 8px;
                background: transparent;
                color: #ccd1d6;
                font: inherit;
                font-size: 11px;
                line-height: 1.25;
                text-align: center;
                cursor: pointer;
            }
:is(#ip-site-chrome, #siteHeader) .ip-bottom-nav > :is(a,button):hover,
:is(#ip-site-chrome, #siteHeader) .ip-bottom-nav > :is(a,button)[aria-expanded="true"] {
                color: #fff;
            }
:is(#ip-site-chrome, #siteHeader) .ip-bottom-nav > :is(a,button):focus-visible {
                outline: 2px solid #fff;
                outline-offset: -2px;
            }
:is(#ip-site-chrome, #siteHeader) .ip-bottom-nav .ip-bottom-icon {
                width: 23px;
                height: 23px;
                fill: none;
                stroke: currentColor;
                stroke-width: 1.7;
                stroke-linecap: round;
                stroke-linejoin: round;
            }
@media (max-width: 1100px){
#siteHeader.ip-header .an-header-inner {
                    flex-wrap: wrap;
                    gap: 10px 16px;
                }
#siteHeader.ip-header .ip-primary-nav {
                    order: 3;
                    flex-basis: 100%;
                    min-width: 0;
                    max-width: none;
                    padding-bottom: 10px;
                }
}
@media (max-width: 760px){
#siteHeader.ip-header .an-brand-mark {
                    flex-basis: 48px;
                    width: 48px;
                    height: 36px;
                }
#siteHeader.ip-header .an-header-inner {
                    gap: 8px;
                }
#siteHeader.ip-header .an-divider {
                    display: none;
                }
#siteHeader.ip-header .ip-primary-nav {
                    grid-template-columns: repeat(2, minmax(0, 1fr));
                    padding-bottom: 0;
                }
#siteHeader.ip-header .ip-header-notice {
                    right: 12px;
                    bottom: calc(96px + env(safe-area-inset-bottom));
                    max-width: calc(100vw - 24px);
                }
}
:is(#ip-site-chrome, #siteHeader) .ip-services-dialog {
                position: fixed;
                inset: var(--ip-services-top, 92px) 0 auto;
                width: min(1240px, calc(100vw - 32px));
                height: auto;
                max-width: none;
                max-height: calc(100dvh - var(--ip-services-top, 92px) - 16px);
                margin: 0 auto;
                padding: 0;
                overflow: hidden;
                border: 1px solid #dde2e7;
                border-radius: 18px;
                background: #fff;
                color: var(--ink, #20252b);
                box-shadow: 0 20px 70px rgb(23 36 45 / 24%);
                transform-origin: top center;
            }
:is(#ip-site-chrome, #siteHeader) .ip-services-dialog[open] {
                display: flex;
                flex-direction: column;
            }
:is(#ip-site-chrome, #siteHeader) .ip-services-dialog:not([open]) {
                display: none;
            }
:is(#ip-site-chrome, #siteHeader) .ip-services-dialog::backdrop {
                background: rgb(23 36 45 / 32%);
                backdrop-filter: blur(3px);
            }
:is(#ip-site-chrome, #siteHeader) .ip-services-dialog.ip-services-entering {
                animation: ip-services-enter 300ms cubic-bezier(0.22, 1, 0.36, 1) both;
            }
:is(#ip-site-chrome, #siteHeader) .ip-services-dialog.ip-services-closing {
                animation: ip-services-leave 180ms cubic-bezier(0.4, 0, 1, 1) both;
                pointer-events: none;
            }
:is(#ip-site-chrome, #siteHeader) .ip-services-dialog.ip-services-entering::backdrop {
                animation: ip-services-backdrop-in 300ms ease-out both;
            }
:is(#ip-site-chrome, #siteHeader) .ip-services-dialog.ip-services-closing::backdrop {
                animation: ip-services-backdrop-out 180ms ease-in both;
            }
@keyframes ip-services-enter {
                from {
                    opacity: 0;
                    transform: translateY(-16px) scale(0.992);
                }
                to {
                    opacity: 1;
                    transform: translateY(0) scale(1);
                }
            }
@keyframes ip-services-leave {
                from {
                    opacity: 1;
                    transform: translateY(0) scale(1);
                }
                to {
                    opacity: 0;
                    transform: translateY(-10px) scale(0.996);
                }
            }
@keyframes ip-services-backdrop-in {
                from {
                    opacity: 0;
                }
                to {
                    opacity: 1;
                }
            }
@keyframes ip-services-backdrop-out {
                from {
                    opacity: 1;
                }
                to {
                    opacity: 0;
                }
            }
:is(#ip-site-chrome, #siteHeader) .ip-services-dialog .ip-services-heading {
                position: relative;
                flex: none;
                padding: 20px 80px 18px 24px;
                border-bottom: 1px solid #e4e8ee;
            }
:is(#ip-site-chrome, #siteHeader) .ip-services-dialog h2 {
                margin: 0 0 8px;
                font-size: 26px;
                font-weight: 700;
                line-height: 1.2;
            }
:is(#ip-site-chrome, #siteHeader) .ip-services-dialog .ip-services-close {
                position: absolute;
                top: 20px;
                right: 20px;
                display: grid;
                width: 44px;
                height: 44px;
                place-items: center;
                padding: 0;
                border: 0;
                border-radius: 10px;
                background: #f2f4f6;
                color: inherit;
                font: inherit;
                font-size: 26px;
                line-height: 1;
                cursor: pointer;
            }
:is(#ip-site-chrome, #siteHeader) .ip-services-dialog .ip-services-close:hover {
                background: #e7ebf0;
            }
:is(#ip-site-chrome, #siteHeader) .ip-services-dialog .ip-services-scroll {
                flex: 1 1 auto;
                min-height: 0;
                overflow: auto;
                overscroll-behavior: contain;
                padding: 20px 24px;
                background: #f4f6f9;
            }
:is(#ip-site-chrome, #siteHeader) .ip-services-dialog .ip-services-grid {
                display: grid;
                grid-template-columns: repeat(4, minmax(0, 1fr));
                gap: 16px;
            }
:is(#ip-site-chrome, #siteHeader) .ip-services-dialog .ip-service-card {
                display: grid;
                grid-template-columns: minmax(0, 1fr);
                grid-template-rows: 75px 1fr;
                align-items: start;
                gap: 12px;
                min-width: 0;
                padding: 14px;
                border: 1px solid #dde4ed;
                border-radius: 16px;
                background: #fff;
                color: inherit;
                text-decoration: none;
                box-shadow: 0 8px 24px rgb(23 36 45 / 4%);
                transition:
                    border-color 160ms ease,
                    box-shadow 160ms ease;
            }
:is(#ip-site-chrome, #siteHeader) .ip-services-dialog .ip-service-card:hover {
                border-color: var(--accent, #e31e24);
                box-shadow: 0 8px 24px rgb(23 36 45 / 9%);
            }
:is(#ip-site-chrome, #siteHeader) .ip-services-dialog .ip-service-card img {
                display: block;
                grid-column: 1;
                grid-row: 1;
                width: 75px;
                height: 75px;
                border-radius: 12px;
                object-fit: cover;
            }
:is(#ip-site-chrome, #siteHeader) .ip-services-dialog .ip-service-card__copy {
                display: block;
                grid-column: 1;
                grid-row: 2;
                min-width: 0;
                overflow-wrap: anywhere;
                hyphens: auto;
            }
:is(#ip-site-chrome, #siteHeader) .ip-services-dialog .ip-service-card__title {
                display: block;
                margin-bottom: 6px;
                font-size: 15px;
                font-weight: 700;
                line-height: 1.3;
            }
:is(#ip-site-chrome, #siteHeader) .ip-services-dialog .ip-service-card__description {
                display: block;
                color: var(--muted, #59636f);
                font-size: 13px;
                line-height: 1.45;
            }
:is(#ip-site-chrome, #siteHeader) .ip-services-dialog .ip-services-footer {
                flex: none;
                padding: 14px 24px;
                border-top: 1px solid #e4e8ee;
                background: #fff;
            }
:is(#ip-site-chrome, #siteHeader) .ip-services-dialog .ip-services-all {
                display: flex;
                align-items: center;
                justify-content: space-between;
                gap: 16px;
                min-height: 52px;
                padding: 12px 18px;
                border-radius: 12px;
                background: var(--ip-blue-gradient);
                color: #fff;
                box-shadow:
                    inset 0 1px 0 rgb(255 255 255 / 18%),
                    0 5px 12px rgb(0 57 166 / 16%);
                font-size: 15px;
                font-weight: 700;
                line-height: 1.4;
                text-decoration: none;
                transition:
                    filter 160ms ease,
                    box-shadow 160ms ease;
            }
:is(#ip-site-chrome, #siteHeader) .ip-services-dialog .ip-services-all:hover {
                filter: brightness(1.08);
                box-shadow:
                    inset 0 1px 0 rgb(255 255 255 / 20%),
                    0 7px 16px rgb(0 57 166 / 22%);
            }
:is(#ip-site-chrome, #siteHeader) .ip-services-dialog .ip-services-all:active {
                filter: brightness(0.96);
            }
:is(#ip-site-chrome, #siteHeader) .ip-services-dialog .ip-services-all > span:last-child {
                font-size: 24px;
                line-height: 1;
            }
:is(#ip-site-chrome, #siteHeader) .ip-services-dialog :is(a, button):focus-visible {
                outline: 2px solid var(--accent-ink, #b3161c);
                outline-offset: 3px;
            }
:is(#ip-site-chrome, #siteHeader) .ip-services-dialog .ip-services-all:focus-visible {
                outline-color: var(--ip-blue);
            }
@media (max-width: 1099px){
:is(#ip-site-chrome, #siteHeader) .ip-services-dialog .ip-services-grid {
                    grid-template-columns: repeat(2, minmax(0, 1fr));
                }
}
@media (max-width: 639px){
:is(#ip-site-chrome, #siteHeader) .ip-services-dialog {
                    width: calc(100vw - 16px);
                    max-height: calc(100dvh - var(--ip-services-top, 8px) - 8px);
                    border-radius: 14px;
                }
:is(#ip-site-chrome, #siteHeader) .ip-services-dialog .ip-services-heading {
                    padding: 18px 66px 18px 18px;
                }
:is(#ip-site-chrome, #siteHeader) .ip-services-dialog h2 {
                    font-size: 24px;
                }
:is(#ip-site-chrome, #siteHeader) .ip-services-dialog .ip-services-close {
                    top: 14px;
                    right: 12px;
                }
:is(#ip-site-chrome, #siteHeader) .ip-services-dialog .ip-services-scroll {
                    padding: 14px 12px;
                }
:is(#ip-site-chrome, #siteHeader) .ip-services-dialog .ip-services-grid {
                    grid-template-columns: minmax(0, 1fr);
                    gap: 12px;
                }
:is(#ip-site-chrome, #siteHeader) .ip-services-dialog .ip-service-card {
                    grid-template-columns: 75px minmax(0, 1fr);
                    grid-template-rows: auto;
                    align-items: center;
                    gap: 10px;
                    min-height: 112px;
                    padding: 10px;
                }
:is(#ip-site-chrome, #siteHeader) .ip-services-dialog .ip-service-card img {
                    width: 75px;
                    height: 75px;
                }
:is(#ip-site-chrome, #siteHeader) .ip-services-dialog .ip-service-card__copy {
                    grid-column: 2;
                    grid-row: 1;
                }
:is(#ip-site-chrome, #siteHeader) .ip-services-dialog .ip-services-footer {
                    padding: 12px;
                    padding-bottom: max(12px, env(safe-area-inset-bottom));
                }
}
@media (prefers-reduced-motion: reduce){
:is(#ip-site-chrome, #siteHeader) .ip-services-dialog.ip-services-entering,
:is(#ip-site-chrome, #siteHeader) .ip-services-dialog.ip-services-closing,
:is(#ip-site-chrome, #siteHeader) .ip-services-dialog.ip-services-entering::backdrop,
:is(#ip-site-chrome, #siteHeader) .ip-services-dialog.ip-services-closing::backdrop {
                    animation: none;
                }
:is(#ip-site-chrome, #siteHeader) .ip-services-dialog .ip-service-card,
:is(#ip-site-chrome, #siteHeader) .ip-services-dialog .ip-services-all {
                    transition: none;
                }
}

/* ipnorov-language-controls */
#siteHeader.ip-header .ip-language-selector {
                position: relative;
                flex: none;
                width: 104px;
                margin: 0;
                color: var(--ink, #17242d);
                font-size: 13px;
                line-height: 1.4;
            }
#siteHeader.ip-header .ip-language-selector > summary {
                display: flex;
                align-items: center;
                justify-content: space-between;
                gap: 8px;
                min-height: 44px;
                padding: 8px 10px;
                border: 1px solid #d5dce4;
                border-radius: 8px;
                background: #fff;
                cursor: pointer;
                list-style: none;
            }
#siteHeader.ip-header .ip-language-selector > summary::-webkit-details-marker {
                display: none;
            }
#siteHeader.ip-header .ip-language-selector[open] > summary {
                border-color: var(--ip-blue, #0039a6);
                background: #f4f7fd;
            }
#siteHeader.ip-header .ip-language-selector[open] .ip-nav-chevron {
                transform: rotate(180deg);
            }
#siteHeader.ip-header .ip-language-menu {
                position: absolute;
                z-index: 60;
                top: calc(100% + 8px);
                right: 0;
                width: 184px;
                padding: 6px;
                border: 1px solid #d5dce4;
                border-radius: 12px;
                background: #fff;
                box-shadow: 0 10px 30px rgb(23 36 45 / 14%);
            }
#siteHeader.ip-header .ip-language-option {
                display: flex;
                align-items: center;
                justify-content: space-between;
                gap: 16px;
                width: 100%;
                min-height: 44px;
                margin: 0;
                padding: 10px 12px;
                border: 0;
                border-radius: 7px;
                background: transparent;
                color: var(--ink, #17242d);
                font: inherit;
                text-align: left;
                cursor: pointer;
            }
#siteHeader.ip-header .ip-language-option:hover {
                background: #f2f5fa;
            }
#siteHeader.ip-header .ip-language-option[aria-current="true"] {
                background: #edf3ff;
                color: var(--ip-blue, #0039a6);
                font-weight: 700;
            }
#siteHeader.ip-header .ip-language-option > span:last-child {
                color: #667380;
                font-size: 11px;
                letter-spacing: 0.04em;
            }
#siteHeader.ip-header .ip-language-selector :is(summary, button):focus-visible {
                outline: 2px solid var(--ip-blue, #0039a6);
                outline-offset: 2px;
            }

/* ipnorov-contact-controls */
:is(#ip-site-chrome, #siteHeader) .ip-contact-bar {
                display: flex;
                align-items: center;
                flex-wrap: wrap;
                gap: 10px;
                min-height: 64px;
                padding-top: 12px;
                padding-bottom: 12px;
            }
:is(#ip-site-chrome, #siteHeader) .ip-contact-button {
                display: inline-flex;
                align-items: center;
                justify-content: center;
                gap: 8px;
                min-height: 44px;
                padding: 10px 13px;
                border: 1px solid transparent;
                border-radius: 11px;
                background: var(--ip-contact-end);
                background: linear-gradient(135deg, var(--ip-contact-start), var(--ip-contact-end));
                color: #fff;
                box-shadow: 0 3px 9px var(--ip-contact-shadow);
                font-size: 13px;
                font-weight: 600;
                line-height: 1.4;
                white-space: nowrap;
                text-decoration: none;
                transition: transform 160ms ease, box-shadow 160ms ease;
            }
:is(#ip-site-chrome, #siteHeader) .ip-contact-button:hover {
                color: #fff;
                box-shadow: 0 5px 13px var(--ip-contact-shadow);
                transform: translateY(-1px);
            }
:is(#ip-site-chrome, #siteHeader) .ip-contact-button:active {
                box-shadow: 0 2px 5px var(--ip-contact-shadow);
                transform: translateY(0);
            }
:is(#ip-site-chrome, #siteHeader) .ip-contact-bar .ip-contact-button:focus-visible {
                outline: 2px solid var(--ip-blue, #0039a6);
                outline-offset: 3px;
            }
:is(#ip-site-chrome, #siteHeader) .ip-contact-button .ip-contact-icon {
                flex: none;
                width: 16px;
                height: 16px;
                color: currentColor;
            }
:is(#ip-site-chrome, #siteHeader) .ip-contact-button--max {
                --ip-contact-start: #8b3dff;
                --ip-contact-end: #5524d9;
                --ip-contact-shadow: rgba(109, 48, 227, 0.24);
            }
:is(#ip-site-chrome, #siteHeader) .ip-contact-button--telegram {
                --ip-contact-start: #087cb5;
                --ip-contact-end: #0758b9;
                --ip-contact-shadow: rgba(8, 110, 183, 0.24);
            }
:is(#ip-site-chrome, #siteHeader) .ip-contact-button--phone {
                --ip-contact-start: #118546;
                --ip-contact-end: #096b37;
                --ip-contact-shadow: rgba(17, 133, 70, 0.24);
            }
:is(#ip-site-chrome, #siteHeader) .ip-contact-button--email {
                --ip-contact-start: #176be6;
                --ip-contact-end: #0039a6;
                --ip-contact-shadow: rgba(15, 83, 204, 0.24);
            }
:is(#ip-site-chrome, #siteHeader) .ip-contact-button--max .ip-contact-icon g,
:is(#ip-site-chrome, #siteHeader) .ip-contact-button--telegram .ip-contact-icon path {
                fill: var(--ip-contact-start);
            }
@media (max-width: 760px){
:is(#ip-site-chrome, #siteHeader) .ip-contact-bar {
                    display: grid;
                    grid-template-columns: repeat(4, minmax(0, 1fr));
                    gap: 8px;
                }
:is(#ip-site-chrome, #siteHeader) .ip-contact-bar .ip-contact-button {
                    width: 100%;
                    min-width: 0;
                    gap: 6px;
                    padding-inline: 8px;
                }
}
@media (max-width: 480px){
:is(#ip-site-chrome, #siteHeader) .ip-contact-bar {
                    gap: 6px;
                }
:is(#ip-site-chrome, #siteHeader) .ip-contact-bar .ip-contact-button {
                    flex-direction: column;
                    gap: 4px;
                    min-height: 54px;
                    padding: 7px 2px;
                    font-size: 12px;
                    line-height: 1.25;
                }
}
@media (prefers-reduced-motion: reduce){
:is(#ip-site-chrome, #siteHeader) .ip-contact-button {
                    transition: none;
                    transform: none;
                }
}

/* ipnorov-menu-buttons */
:is(#ip-site-chrome, #siteHeader) :is(#ip-services-dialog, #ip-portfolio-dialog) .ip-services-all {
                border: 1px solid #b8c6dc;
                background: linear-gradient(
                    110deg,
                    #ffffff 0%,
                    #edf3ff 5%,
                    #0a54c4 18%,
                    #0039a6 40%,
                    #0039a6 67%,
                    #d52b1e 100%
                );
            }

/* ipnorov-mobile-menu */
#siteHeader.ip-header .ip-menu-toggle,
#siteHeader.ip-header .ip-language-code,
#siteHeader.ip-header .ip-mobile-menu-panel {
                display: none;
            }
@media (max-width: 760px){
#siteHeader.ip-header .an-header-inner {
                    position: relative;
                    gap: 8px;
                    padding-block: 10px;
                }
#siteHeader.ip-header .an-header-actions {
                    flex: none;
                    gap: 6px;
                }
#siteHeader.ip-header .an-post,
#siteHeader.ip-header .ip-primary-nav {
                    display: none !important;
                }
#siteHeader.ip-header .ip-menu-toggle:not([hidden]) {
                    display: inline-flex;
                    align-items: center;
                    justify-content: center;
                    flex: none;
                    width: 44px;
                    height: 44px;
                    margin: 0;
                    padding: 11px;
                    border: 1px solid #0039a6;
                    border-radius: 9px;
                    background: var(--ip-blue-gradient, #0039a6);
                    color: #fff;
                    box-shadow: 0 4px 10px rgb(0 57 166 / 18%);
                    cursor: pointer;
                    -webkit-tap-highlight-color: transparent;
                }
#siteHeader.ip-header .ip-menu-toggle:focus-visible {
                    outline: 2px solid #0039a6;
                    outline-offset: 3px;
                }
#siteHeader.ip-header .ip-menu-icon {
                    position: relative;
                    display: block;
                    width: 20px;
                    height: 16px;
                    pointer-events: none;
                }
#siteHeader.ip-header .ip-menu-icon > span {
                    position: absolute;
                    left: 0;
                    width: 20px;
                    height: 2px;
                    border-radius: 2px;
                    background: currentColor;
                    transition: transform 180ms ease, opacity 140ms ease;
                }
#siteHeader.ip-header .ip-menu-icon > span:nth-child(1) { top: 0; }
#siteHeader.ip-header .ip-menu-icon > span:nth-child(2) { top: 7px; }
#siteHeader.ip-header .ip-menu-icon > span:nth-child(3) { top: 14px; }
#siteHeader.ip-header .ip-menu-toggle[aria-expanded="true"] .ip-menu-icon > span:nth-child(1) {
                    transform: translateY(7px) rotate(45deg);
                }
#siteHeader.ip-header .ip-menu-toggle[aria-expanded="true"] .ip-menu-icon > span:nth-child(2) {
                    opacity: 0;
                }
#siteHeader.ip-header .ip-menu-toggle[aria-expanded="true"] .ip-menu-icon > span:nth-child(3) {
                    transform: translateY(-7px) rotate(-45deg);
                }
#siteHeader.ip-header .ip-mobile-menu-panel:not([hidden]) {
                    position: relative;
                    order: 3;
                    display: grid;
                    flex: 1 0 100%;
                    grid-template-columns: repeat(2, minmax(0, 1fr));
                    gap: 9px;
                    width: 100%;
                    margin-top: 2px;
                    padding: 13px;
                    overflow: hidden;
                    border: 1px solid #dce5f1;
                    border-radius: 15px;
                    background: #fff;
                    box-shadow: 0 14px 34px rgb(21 49 84 / 14%);
                    animation: ip-mobile-menu-enter 200ms cubic-bezier(.22, 1, .36, 1) both;
                }
#siteHeader.ip-header .ip-mobile-menu-panel::before {
                    content: "";
                    position: absolute;
                    inset: 0 0 auto;
                    height: 3px;
                    background: linear-gradient(90deg, #0753c9 0 72%, #d52b1e 72% 100%);
                }
#siteHeader.ip-header .ip-mobile-menu-heading {
                    display: flex;
                    grid-column: 1 / -1;
                    align-items: baseline;
                    justify-content: space-between;
                    gap: 12px;
                    padding: 2px 2px 3px;
                    color: #24364d;
                }
#siteHeader.ip-header .ip-mobile-menu-heading > span {
                    font-size: 13px;
                    font-weight: 700;
                    letter-spacing: .02em;
                }
#siteHeader.ip-header .ip-mobile-menu-heading > small {
                    color: #7a8797;
                    font-size: 11px;
                    font-weight: 400;
                }
#siteHeader.ip-header .ip-mobile-menu-item {
                    display: grid;
                    grid-template-columns: 38px minmax(0, 1fr) 18px;
                    align-items: center;
                    gap: 10px;
                    min-width: 0;
                    min-height: 66px;
                    margin: 0;
                    padding: 10px;
                    border: 1px solid #e0e7f0;
                    border-radius: 11px;
                    background: #f8fafd;
                    color: #21344d;
                    text-align: left;
                    cursor: pointer;
                    transition: border-color 150ms ease, background 150ms ease, transform 150ms ease;
                }
#siteHeader.ip-header .ip-mobile-menu-item:hover,
#siteHeader.ip-header .ip-mobile-menu-item:active,
#siteHeader.ip-header .ip-mobile-menu-item[aria-expanded="true"] {
                    border-color: #adc6e8;
                    background: #eef5ff;
                }
#siteHeader.ip-header .ip-mobile-menu-item__icon {
                    display: grid;
                    place-items: center;
                    width: 38px;
                    height: 38px;
                    border-radius: 10px;
                    background: #e9f1ff;
                    color: #0753c9;
                }
#siteHeader.ip-header .ip-mobile-menu-item__icon svg {
                    width: 21px;
                    height: 21px;
                    fill: none;
                    stroke: currentColor;
                    stroke-width: 1.65;
                    stroke-linecap: round;
                    stroke-linejoin: round;
                }
#siteHeader.ip-header .ip-mobile-menu-item__copy {
                    display: grid;
                    gap: 2px;
                    min-width: 0;
                }
#siteHeader.ip-header .ip-mobile-menu-item__copy strong {
                    color: #1d2f45;
                    font-size: 13px;
                    font-weight: 650;
                    line-height: 1.25;
                }
#siteHeader.ip-header .ip-mobile-menu-item__copy small {
                    overflow: hidden;
                    color: #748193;
                    font-size: 10px;
                    line-height: 1.35;
                    text-overflow: ellipsis;
                    white-space: nowrap;
                }
#siteHeader.ip-header .ip-mobile-menu-item__arrow {
                    width: 17px;
                    height: 17px;
                    fill: none;
                    stroke: #7b8ba0;
                    stroke-width: 1.7;
                    stroke-linecap: round;
                    stroke-linejoin: round;
                }
}
@media (max-width: 480px){
#siteHeader.ip-header .ip-mobile-menu-panel:not([hidden]) {
                    gap: 7px;
                    padding: 11px;
                }
#siteHeader.ip-header .ip-mobile-menu-heading > small,
#siteHeader.ip-header .ip-mobile-menu-item__copy small {
                    display: none;
                }
#siteHeader.ip-header .ip-mobile-menu-item {
                    grid-template-columns: 34px minmax(0, 1fr) 15px;
                    gap: 8px;
                    min-height: 58px;
                    padding: 8px;
                }
#siteHeader.ip-header .ip-mobile-menu-item__icon {
                    width: 34px;
                    height: 34px;
                    border-radius: 9px;
                }
#siteHeader.ip-header .ip-mobile-menu-item__icon svg {
                    width: 19px;
                    height: 19px;
                }
#siteHeader.ip-header .ip-mobile-menu-item__copy strong {
                    font-size: 12px;
                }
}
@media (max-width: 380px){
#siteHeader.ip-header .ip-language-selector {
                    width: 44px;
                }
#siteHeader.ip-header .ip-language-selector > summary {
                    justify-content: center;
                    gap: 0;
                    padding-inline: 6px;
                }
#siteHeader.ip-header .ip-language-selector > summary .ip-language-name,
#siteHeader.ip-header .ip-language-selector > summary .ip-nav-chevron {
                    display: none;
                }
#siteHeader.ip-header .ip-language-code {
                    display: inline;
                }
}
@keyframes ip-mobile-menu-enter {
                from { opacity: 0; transform: translateY(-8px) scale(.99); }
                to { opacity: 1; transform: translateY(0) scale(1); }
            }
@media (prefers-reduced-motion: reduce){
#siteHeader.ip-header .ip-menu-icon > span,
#siteHeader.ip-header .ip-mobile-menu-item {
                    transition: none;
                }
#siteHeader.ip-header .ip-mobile-menu-panel:not([hidden]) {
                    animation: none;
                }
}

/* ipnorov-contact-header-match */
:is(#ip-site-chrome, #siteHeader) .ip-contact-bar { justify-content: flex-end; }
:is(#ip-site-chrome, #siteHeader) .ip-contact-button { border-radius: 20px 0 20px 0; }
@media (max-width: 760px){
:is(#ip-site-chrome, #siteHeader) .ip-contact-bar { justify-content: stretch; }
}

/* ipnorov-email-modal-match */
:is(#ip-site-chrome, #siteHeader) .ip-email-dialog {position:fixed;inset:0;width:100%;height:100%;max-width:none;max-height:none;margin:0;padding:20px;border:0;background:transparent;color:#17243a}
:is(#ip-site-chrome, #siteHeader) .ip-email-dialog[open] {display:grid;place-items:center}
:is(#ip-site-chrome, #siteHeader) .ip-email-dialog::backdrop {background:rgba(9,20,38,.58);backdrop-filter:none}
:is(#ip-site-chrome, #siteHeader) .ip-email-card {position:relative;width:min(430px,100%);max-height:100%;overflow:auto;padding:28px;border:1px solid #dbe6f3;border-radius:22px;background:#fff;box-shadow:0 28px 80px rgba(7,22,45,.3)}
:is(#ip-site-chrome, #siteHeader) .ip-email-close {position:absolute;top:14px;right:14px;width:40px;height:40px;padding:0;display:grid;place-items:center;border:1px solid #dce6f2;border-radius:13px;background:#f5f8fc;color:#314057;font-size:24px;line-height:1}
:is(#ip-site-chrome, #siteHeader) .ip-email-icon {width:48px;height:48px;margin-bottom:20px;display:grid;place-items:center;border-radius:15px;background:#edf2f8;color:#52637a}
:is(#ip-site-chrome, #siteHeader) .ip-email-icon svg {width:22px;height:22px}
:is(#ip-site-chrome, #siteHeader) .ip-email-kicker {display:block;margin-bottom:6px;color:#0869e8;font-size:11px;font-weight:750;letter-spacing:.09em;text-transform:uppercase}
:is(#ip-site-chrome, #siteHeader) .ip-email-title {margin:0;color:#111d31;font-size:20px;font-weight:600;line-height:1.3}
:is(#ip-site-chrome, #siteHeader) .ip-email-description {margin:9px 0 18px;color:#69788d;font-size:14px;line-height:1.5}
:is(#ip-site-chrome, #siteHeader) .ip-email-value-row {padding:7px 7px 7px 15px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;border:1px solid #d9e4f2;border-radius:14px;background:#f7faff}
:is(#ip-site-chrome, #siteHeader) .ip-email-value {min-width:0;overflow-wrap:anywhere;font-size:16px;font-weight:650;user-select:text}
:is(#ip-site-chrome, #siteHeader) .ip-email-copy {min-height:42px;padding:0 13px;display:inline-flex;align-items:center;gap:7px;border:0;border-radius:10px;background:#fff;color:#0964d7;font-size:14px;font-weight:700;box-shadow:0 3px 12px rgba(18,48,84,.09)}
:is(#ip-site-chrome, #siteHeader) .ip-email-copy svg {width:15px;height:15px;flex-shrink:0}
:is(#ip-site-chrome, #siteHeader) .ip-email-action {min-height:48px;margin-top:12px;padding:0 16px;display:flex;align-items:center;justify-content:space-between;border-radius:13px;background:#0869e8;color:#fff;font-size:14px;font-weight:700}
:is(#ip-site-chrome, #siteHeader) .ip-email-status {min-height:18px;margin-top:8px;display:block;color:#168342;font-size:12px;line-height:1.5}
:is(#ip-site-chrome, #siteHeader) .ip-email-card :is(button,a):focus-visible {outline:3px solid rgba(8,105,232,.35);outline-offset:2px}
body.ip-email-open:has(:is(#ip-site-chrome, #siteHeader)) {overflow:hidden}
:is(#ip-site-chrome, #siteHeader) .ip-email-toast {position:fixed;z-index:1100;top:96px;right:20px;max-width:calc(100vw - 40px);padding:12px 16px;border-radius:13px;background:#152238;color:#fff;font-size:13px;font-weight:650;line-height:1.35;box-shadow:0 16px 42px rgba(7,22,45,.25);pointer-events:none}
:is(#ip-site-chrome, #siteHeader) .ip-email-toast[hidden] {display:none}

/* ipnorov-phone-modal */
:is(#ip-site-chrome, #siteHeader) .ip-phone-dialog {
                position: fixed;
                inset: 0;
                width: 100%;
                height: 100%;
                max-width: none;
                max-height: none;
                margin: 0;
                padding: 20px;
                border: 0;
                background: transparent;
                color: #17243a;
            }
:is(#ip-site-chrome, #siteHeader) .ip-phone-dialog[open] {
                display: grid;
                place-items: center;
            }
:is(#ip-site-chrome, #siteHeader) .ip-phone-dialog::backdrop {
                background: rgba(9, 20, 38, 0.58);
                backdrop-filter: blur(3px);
            }
:is(#ip-site-chrome, #siteHeader) .ip-phone-card {
                position: relative;
                width: min(440px, 100%);
                padding: 28px;
                border: 1px solid #dbe6f3;
                border-radius: 22px;
                background: #fff;
                box-shadow: 0 28px 80px rgba(7, 22, 45, 0.30);
            }
:is(#ip-site-chrome, #siteHeader) .ip-phone-close {
                position: absolute;
                top: 14px;
                right: 14px;
                display: grid;
                place-items: center;
                width: 40px;
                height: 40px;
                padding: 0;
                border: 1px solid #dce6f2;
                border-radius: 13px;
                background: #f5f8fc;
                color: #314057;
                font-size: 24px;
                line-height: 1;
            }
:is(#ip-site-chrome, #siteHeader) .ip-phone-icon {
                display: grid;
                place-items: center;
                width: 48px;
                height: 48px;
                margin-bottom: 20px;
                border-radius: 15px;
                background: #eaf7ef;
                color: #118546;
            }
:is(#ip-site-chrome, #siteHeader) .ip-phone-icon svg {
                width: 22px;
                height: 22px;
            }
:is(#ip-site-chrome, #siteHeader) .ip-phone-kicker {
                display: block;
                margin-bottom: 6px;
                color: #118546;
                font-size: 11px;
                font-weight: 750;
                letter-spacing: 0.09em;
                text-transform: uppercase;
            }
:is(#ip-site-chrome, #siteHeader) .ip-phone-title {
                margin: 0;
                color: #111d31;
                font-size: 20px;
                font-weight: 600;
                line-height: 1.3;
            }
:is(#ip-site-chrome, #siteHeader) .ip-phone-description {
                margin: 9px 0 18px;
                color: #69788d;
                font-size: 14px;
                line-height: 1.5;
            }
:is(#ip-site-chrome, #siteHeader) .ip-phone-option {
                display: grid;
                grid-template-columns: minmax(0, 1fr) auto;
                align-items: center;
                gap: 14px;
                padding: 13px 13px 13px 15px;
                border: 1px solid #d9e4f2;
                border-radius: 14px;
                background: #f7faff;
            }
:is(#ip-site-chrome, #siteHeader) .ip-phone-copy {
                min-width: 0;
            }
:is(#ip-site-chrome, #siteHeader) .ip-phone-label {
                display: block;
                margin-bottom: 2px;
                color: #718094;
                font-size: 11px;
                line-height: 1.3;
            }
:is(#ip-site-chrome, #siteHeader) .ip-phone-number {
                display: flex;
                align-items: baseline;
                gap: 5px;
                color: #152238;
                font-size: 18px;
                font-weight: 650;
                line-height: 1.35;
                white-space: nowrap;
                user-select: text;
            }
:is(#ip-site-chrome, #siteHeader) .ip-phone-code {
                color: #118546;
                font-weight: 750;
            }
:is(#ip-site-chrome, #siteHeader) .ip-phone-copy-button {
                display: inline-flex;
                align-items: center;
                justify-content: center;
                gap: 7px;
                min-height: 42px;
                padding: 0 13px;
                border: 0;
                border-radius: 10px;
                background: #118546;
                color: #fff;
                font-size: 13px;
                font-weight: 700;
                cursor: pointer;
            }
:is(#ip-site-chrome, #siteHeader) .ip-phone-copy-button:hover {
                background: #096b37;
            }
:is(#ip-site-chrome, #siteHeader) .ip-phone-copy-button svg {
                width: 15px;
                height: 15px;
                flex: none;
            }
:is(#ip-site-chrome, #siteHeader) .ip-phone-status {
                display: block;
                min-height: 18px;
                margin-top: 8px;
                color: #168342;
                font-size: 12px;
                line-height: 1.5;
            }
:is(#ip-site-chrome, #siteHeader) .ip-phone-note {
                margin: 10px 0 0;
                color: #7a8799;
                font-size: 12px;
                line-height: 1.5;
            }
:is(#ip-site-chrome, #siteHeader) .ip-phone-card :is(button, a):focus-visible {
                outline: 3px solid rgba(17, 133, 70, 0.30);
                outline-offset: 2px;
            }
body.ip-phone-open:has(:is(#ip-site-chrome, #siteHeader)) {
                overflow: hidden;
            }
@media (max-width: 480px){
:is(#ip-site-chrome, #siteHeader) .ip-phone-card {
                    padding: 24px 18px 20px;
                    border-radius: 18px;
                }
:is(#ip-site-chrome, #siteHeader) .ip-phone-option {
                    grid-template-columns: 1fr;
                    gap: 10px;
                }
:is(#ip-site-chrome, #siteHeader) .ip-phone-copy-button {
                    width: 100%;
                }
:is(#ip-site-chrome, #siteHeader) .ip-phone-number {
                    font-size: 17px;
                }
}

/* ipnorov-order-modal */
:is(#ip-site-chrome, #siteHeader) .ip-order-dialog {
                position: fixed;
                inset: 0;
                width: 100%;
                height: 100%;
                max-width: none;
                max-height: none;
                margin: 0;
                padding: 20px;
                border: 0;
                background: transparent;
                color: #1f2a35;
            }
:is(#ip-site-chrome, #siteHeader) .ip-order-dialog[open] {
                display: grid;
                place-items: center;
            }
:is(#ip-site-chrome, #siteHeader) .ip-order-dialog::backdrop {
                background: rgba(8, 18, 34, 0.66);
                backdrop-filter: blur(4px);
            }
:is(#ip-site-chrome, #siteHeader) .ip-order-modal {
                position: relative;
                width: min(760px, 100%);
                max-height: calc(100dvh - 40px);
                overflow: auto;
                border: 1px solid #dbe4ef;
                border-radius: 20px;
                background: #fff;
                box-shadow: 0 30px 100px rgba(7, 21, 42, 0.34);
            }
:is(#ip-site-chrome, #siteHeader) .ip-order-modal__head {
                position: relative;
                isolation: isolate;
                overflow: hidden;
                padding: 28px 78px 26px 28px;
                border-radius: 19px 19px 0 0;
                background:
                    radial-gradient(circle at 16% 10%, rgba(255,255,255,.12), transparent 28%),
                    linear-gradient(118deg, #0b56c7 0%, #063b96 55%, #052b70 100%);
                color: #fff;
            }
:is(#ip-site-chrome, #siteHeader) .ip-order-modal__head::after {
                content: "";
                position: absolute;
                z-index: -1;
                top: -55%;
                right: -7%;
                width: 32%;
                height: 210%;
                background: linear-gradient(145deg, #ef3340 0%, #d52b1e 70%, #b71f24 100%);
                transform: skewX(-18deg);
                box-shadow: -9px 0 0 rgba(255,255,255,.95);
            }
:is(#ip-site-chrome, #siteHeader) .ip-order-modal__eyebrow {
                display: block;
                margin-bottom: 7px;
                font-size: 11px;
                font-weight: 700;
                letter-spacing: .11em;
                text-transform: uppercase;
                opacity: .8;
            }
:is(#ip-site-chrome, #siteHeader) .ip-order-modal__title {
                margin: 0;
                color: #fff;
                font-family: var(--font, Arial, sans-serif);
                font-size: clamp(24px, 4vw, 32px);
                font-weight: 600;
                line-height: 1.15;
                letter-spacing: -.03em;
            }
:is(#ip-site-chrome, #siteHeader) .ip-order-modal__lead {
                max-width: 52ch;
                margin: 10px 0 0;
                color: #dfe9fb;
                font-size: 14px;
                line-height: 1.6;
            }
:is(#ip-site-chrome, #siteHeader) .ip-order-modal__close {
                position: absolute;
                z-index: 2;
                top: 16px;
                right: 16px;
                display: grid;
                place-items: center;
                width: 42px;
                height: 42px;
                padding: 0;
                border: 1px solid rgba(255,255,255,.28);
                border-radius: 12px;
                background: rgba(255,255,255,.12);
                color: #fff;
                font-size: 26px;
                line-height: 1;
                cursor: pointer;
            }
:is(#ip-site-chrome, #siteHeader) .ip-order-modal__close:hover {
                background: rgba(255,255,255,.2);
            }
:is(#ip-site-chrome, #siteHeader) .ip-order-modal__body {
                padding: 24px 26px 26px;
            }
:is(#ip-site-chrome, #siteHeader) .ip-order-modal__grid {
                display: grid;
                grid-template-columns: repeat(2, minmax(0, 1fr));
                gap: 14px;
            }
:is(#ip-site-chrome, #siteHeader) .ip-order-choice {
                position: relative;
                display: flex;
                flex-direction: column;
                min-width: 0;
                min-height: 174px;
                padding: 18px;
                border: 1px solid #dfe6ef;
                border-radius: 14px;
                background: #fff;
                color: #1f2a35;
                text-decoration: none;
                transition: border-color 160ms ease, transform 160ms ease, box-shadow 160ms ease;
            }
:is(#ip-site-chrome, #siteHeader) .ip-order-choice--primary {
                border-color: #bdd1ee;
                background: linear-gradient(145deg, #f5f9ff, #ffffff);
            }
:is(#ip-site-chrome, #siteHeader) .ip-order-choice__icon {
                display: grid;
                place-items: center;
                width: 42px;
                height: 42px;
                margin-bottom: 14px;
                border-radius: 11px;
                background: #edf4ff;
                color: #0753c9;
            }
:is(#ip-site-chrome, #siteHeader) .ip-order-choice--primary .ip-order-choice__icon {
                background: #0753c9;
                color: #fff;
            }
:is(#ip-site-chrome, #siteHeader) .ip-order-choice__icon svg {
                width: 21px;
                height: 21px;
                fill: none;
                stroke: currentColor;
                stroke-width: 1.7;
                stroke-linecap: round;
                stroke-linejoin: round;
            }
:is(#ip-site-chrome, #siteHeader) .ip-order-choice strong {
                display: block;
                margin-bottom: 7px;
                color: #17242d;
                font-size: 16px;
                font-weight: 600;
                line-height: 1.35;
            }
:is(#ip-site-chrome, #siteHeader) .ip-order-choice p {
                margin: 0;
                color: #66727f;
                font-size: 13px;
                line-height: 1.55;
            }
:is(#ip-site-chrome, #siteHeader) .ip-order-choice__action {
                display: inline-flex;
                align-items: center;
                gap: 8px;
                margin-top: auto;
                padding-top: 16px;
                color: #0753c9;
                font-size: 13px;
                font-weight: 600;
            }
:is(#ip-site-chrome, #siteHeader) .ip-order-choice--primary .ip-order-choice__action {
                color: #d52b1e;
            }
:is(#ip-site-chrome, #siteHeader) .ip-order-modal__contacts {
                display: grid;
                grid-template-columns: auto minmax(0, 1fr);
                align-items: center;
                gap: 16px 22px;
                margin-top: 16px;
                padding-top: 18px;
                border-top: 1px solid #e7ebf0;
            }
:is(#ip-site-chrome, #siteHeader) .ip-order-modal__contacts-copy strong {
                display: block;
                color: #25313a;
                font-size: 14px;
                font-weight: 600;
            }
:is(#ip-site-chrome, #siteHeader) .ip-order-modal__contacts-copy span {
                display: block;
                margin-top: 3px;
                color: #74808c;
                font-size: 12px;
                line-height: 1.45;
            }
:is(#ip-site-chrome, #siteHeader) .ip-order-modal__channels {
                display: flex;
                flex-wrap: wrap;
                justify-content: flex-end;
                gap: 8px;
            }
:is(#ip-site-chrome, #siteHeader) .ip-order-modal__channels .ip-contact-button {
                min-height: 42px;
                padding: 9px 12px;
                border-radius: 10px;
            }
:is(#ip-site-chrome, #siteHeader) .ip-order-modal :is(a,button):focus-visible {
                outline: 3px solid #2f74d0;
                outline-offset: 3px;
            }
body.ip-order-open:has(:is(#ip-site-chrome, #siteHeader)) {
                overflow: hidden;
            }
@media (hover:hover) and (pointer:fine){
:is(#ip-site-chrome, #siteHeader) .ip-order-choice:hover {
                    border-color: #9dbce7;
                    box-shadow: 0 10px 30px rgba(15, 55, 105, .10);
                    transform: translateY(-2px);
                }
}
@media (max-width: 640px){
:is(#ip-site-chrome, #siteHeader) .ip-order-dialog {
                    padding: 8px;
                }
:is(#ip-site-chrome, #siteHeader) .ip-order-modal {
                    max-height: calc(100dvh - 16px);
                    border-radius: 16px;
                }
:is(#ip-site-chrome, #siteHeader) .ip-order-modal__head {
                    padding: 24px 64px 22px 20px;
                    border-radius: 15px 15px 0 0;
                }
:is(#ip-site-chrome, #siteHeader) .ip-order-modal__head::after {
                    width: 40%;
                    right: -18%;
                }
:is(#ip-site-chrome, #siteHeader) .ip-order-modal__body {
                    padding: 18px;
                }
:is(#ip-site-chrome, #siteHeader) .ip-order-modal__grid {
                    grid-template-columns: minmax(0,1fr);
                    gap: 10px;
                }
:is(#ip-site-chrome, #siteHeader) .ip-order-choice {
                    min-height: 0;
                    padding: 15px;
                }
:is(#ip-site-chrome, #siteHeader) .ip-order-choice__icon {
                    width: 38px;
                    height: 38px;
                    margin-bottom: 10px;
                }
:is(#ip-site-chrome, #siteHeader) .ip-order-modal__contacts {
                    grid-template-columns: minmax(0,1fr);
                    gap: 12px;
                }
:is(#ip-site-chrome, #siteHeader) .ip-order-modal__channels {
                    display: grid;
                    grid-template-columns: repeat(3, minmax(0, 1fr));
                    justify-content: stretch;
                }
:is(#ip-site-chrome, #siteHeader) .ip-order-modal__channels .ip-contact-button {
                    width: 100%;
                    min-width: 0;
                    padding-inline: 6px;
                    font-size: 12px;
                }
}
@media (prefers-reduced-motion: reduce){
:is(#ip-site-chrome, #siteHeader) .ip-order-choice {
                    transition: none;
                }
}

/* ipnorov-mobile-bottom-navigation-20261025 */
@media (max-width: 760px){
:is(#ip-site-chrome, #siteHeader) .an-bottom-nav.ip-bottom-nav {
                    position: fixed;
                    z-index: 70;
                    right: 10px;
                    bottom: max(8px, env(safe-area-inset-bottom));
                    left: 10px;
                    display: grid;
                    grid-template-columns: repeat(5, minmax(0, 1fr));
                    width: auto;
                    height: 70px;
                    margin: 0;
                    padding: 5px;
                    border: 1px solid rgb(255 255 255 / 12%);
                    border-radius: 15px;
                    background: rgb(23 36 45 / 97%);
                    box-shadow: 0 10px 30px rgb(14 30 48 / 24%);
                    backdrop-filter: blur(12px);
                }
:is(#ip-site-chrome, #siteHeader) .ip-bottom-nav > :is(a,button) {
                    min-width: 0;
                    min-height: 58px;
                    padding: 5px 2px;
                    border-radius: 10px;
                    color: #d6dde5;
                }
:is(#ip-site-chrome, #siteHeader) .ip-bottom-nav > :is(a,button):hover,
:is(#ip-site-chrome, #siteHeader) .ip-bottom-nav > :is(a,button):active,
:is(#ip-site-chrome, #siteHeader) .ip-bottom-nav > :is(a,button)[aria-expanded="true"] {
                    background: rgb(255 255 255 / 9%);
                    color: #fff;
                }
:is(#ip-site-chrome, #siteHeader) .ip-bottom-nav > :is(a,button)[data-ip-profile-placeholder] {
                    color: #fff;
                }
:is(#ip-site-chrome, #siteHeader) .ip-bottom-nav > :is(a,button)[data-ip-profile-placeholder] .ip-bottom-icon {
                    color: #79aaff;
                }
body:has(input:focus, textarea:focus, select:focus) :is(#ip-site-chrome, #siteHeader) .an-bottom-nav,
body.an-keyboard-open :is(#ip-site-chrome, #siteHeader) .an-bottom-nav {
                    visibility: hidden;
                    pointer-events: none;
                }
}
@media (max-width: 380px){
:is(#ip-site-chrome, #siteHeader) .an-bottom-nav.ip-bottom-nav {
                    right: 6px;
                    left: 6px;
                    height: 66px;
                    padding: 4px;
                }
:is(#ip-site-chrome, #siteHeader) .ip-bottom-nav > :is(a,button) {
                    min-height: 56px;
                    font-size: 10px;
                }
:is(#ip-site-chrome, #siteHeader) .ip-bottom-nav .ip-bottom-icon {
                    width: 21px;
                    height: 21px;
                }
}

/* ipnorov-mobile-services-compact */
@media (max-width: 760px){
:is(#ip-site-chrome, #siteHeader) :is(#ip-services-dialog, #ip-portfolio-dialog) .ip-services-grid {
                    grid-template-columns: repeat(2, minmax(0, 1fr));
                    gap: 0 12px;
                    padding: 4px 14px 6px;
                }
:is(#ip-site-chrome, #siteHeader) :is(#ip-services-dialog, #ip-portfolio-dialog) .ip-service-card {
                    display: grid;
                    grid-template-columns: 52px minmax(0, 1fr);
                    grid-template-rows: auto;
                    align-items: center;
                    gap: 10px;
                    min-height: 76px;
                    padding: 10px 4px;
                }
:is(#ip-site-chrome, #siteHeader) :is(#ip-services-dialog, #ip-portfolio-dialog) .ip-service-card:nth-child(n + 3) {
                    border-top: 1px solid #e4e8ed;
                }
:is(#ip-site-chrome, #siteHeader) :is(#ip-services-dialog, #ip-portfolio-dialog) .ip-service-card img {
                    grid-column: 1;
                    grid-row: 1;
                    width: 52px;
                    height: 52px;
                    border-radius: 8px;
                }
:is(#ip-site-chrome, #siteHeader) #ip-portfolio-dialog .ip-service-card img {
                    background: transparent;
                    object-fit: contain;
                }
:is(#ip-site-chrome, #siteHeader) :is(#ip-services-dialog, #ip-portfolio-dialog) .ip-service-card__copy {
                    display: flex;
                    grid-column: 2;
                    grid-row: 1;
                    align-items: center;
                    min-width: 0;
                    min-height: 52px;
                }
:is(#ip-site-chrome, #siteHeader) :is(#ip-services-dialog, #ip-portfolio-dialog) .ip-service-card__title {
                    font-size: 13px;
                    font-weight: 500;
                    line-height: 1.3;
                }
:is(#ip-site-chrome, #siteHeader) :is(#ip-services-dialog, #ip-portfolio-dialog) .ip-service-card__description {
                    display: none;
                }
}
@media (max-width: 420px){
:is(#ip-site-chrome, #siteHeader) :is(#ip-services-dialog, #ip-portfolio-dialog) .ip-services-grid {
                    gap: 0 8px;
                    padding-right: 10px;
                    padding-left: 10px;
                }
:is(#ip-site-chrome, #siteHeader) :is(#ip-services-dialog, #ip-portfolio-dialog) .ip-service-card {
                    grid-template-columns: 46px minmax(0, 1fr);
                    gap: 8px;
                    min-height: 70px;
                    padding: 9px 3px;
                }
:is(#ip-site-chrome, #siteHeader) :is(#ip-services-dialog, #ip-portfolio-dialog) .ip-service-card img {
                    width: 46px;
                    height: 46px;
                    border-radius: 7px;
                }
:is(#ip-site-chrome, #siteHeader) :is(#ip-services-dialog, #ip-portfolio-dialog) .ip-service-card__copy {
                    min-height: 46px;
                }
:is(#ip-site-chrome, #siteHeader) :is(#ip-services-dialog, #ip-portfolio-dialog) .ip-service-card__title {
                    font-size: 12px;
                    line-height: 1.3;
                }
}

/* Host-page integration. Legacy header/menu selectors do not match this component. */
#ip-site-chrome { display: contents; font-size:16px; }
:is(#ip-site-chrome, #siteHeader) :is(.ip-header,.ip-contact-bar,dialog,.ip-bottom-nav,.ip-email-toast) { font-family:var(--font); font-size:16px; font-weight:400; line-height:1.5; letter-spacing:normal; }
:is(#ip-site-chrome, #siteHeader) :is(.an-brand,.ip-brand-name) { font-family:var(--display); }
#siteHeader.ip-header .an-brand { font-size:22px; }
:is(#ip-site-chrome, #siteHeader) .an-wrap { width:min(1200px,calc(100% - 48px)); margin-inline:auto; }
#siteHeader.an-header { z-index:100; }
:is(#ip-site-chrome, #siteHeader) dialog:not([open]) { display:none; }
:is(#ip-site-chrome, #siteHeader) :is(.ip-services-heading h2,.ip-order-modal h2,.ip-email-card h2,.ip-phone-card h2) { margin:0; }
:is(#ip-site-chrome, #siteHeader) :is(button,a) { -webkit-tap-highlight-color:transparent; }
:is(#ip-site-chrome, #siteHeader) .ip-bottom-nav > a { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:4px; font-size:11px; font-weight:400; line-height:1.15; text-align:center; }
body:has(:is(#ip-site-chrome, #siteHeader) dialog[open]) { overflow:hidden; }
@media(max-width:760px) {
  body:has(:is(#ip-site-chrome, #siteHeader)) { padding-bottom:104px; }
  :is(#ip-site-chrome, #siteHeader) .an-wrap { width:calc(100% - 24px); }
  #siteHeader.ip-header .an-brand { font-size:18px; }
}

#siteHeader.ip-header { font-family:var(--font); font-size:16px; line-height:1.5; padding-bottom:0; }
