/* 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");
            }
            body.ip-home {
                --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;
            }
        
/* base */

            html:has(body.ip-home) {
                scroll-padding-top: calc(var(--an-header-height, 76px) + 16px);
            }

            body.ip-home {
                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);
            }

            .ip-home *,
            .ip-home *::before,
            .ip-home *::after {
                box-sizing: border-box;
            }

            .ip-home [hidden] {
                display: none !important;
            }

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

            .ip-home a {
                color: inherit;
                text-decoration: none;
            }

            .ip-home button,
            .ip-home input,
            .ip-home textarea,
            .ip-home select {
                font: inherit;
            }

            .ip-home button {
                cursor: pointer;
            }

            .ip-home select:disabled {
                cursor: not-allowed;
                opacity: 0.55;
            }

            .ip-home a,
            .ip-home button,
            .ip-home summary {
                touch-action: manipulation;
            }

            .ip-home :is(button, a, input, select, textarea, summary):focus-visible {
                outline: 3px solid var(--accent-ink);
                outline-offset: 3px;
            }

            .ip-home h1,
            .ip-home h2,
            .ip-home h3 {
                line-height: 1.25;
                letter-spacing: -0.025em;
                overflow-wrap: anywhere;
            }

            .ip-home p {
                overflow-wrap: anywhere;
            }

            .ip-home h1 {
                font-size: 2rem;
            }

            .ip-home h2 {
                font-size: 1.5rem;
            }

            .ip-home h3 {
                font-size: 1.125rem;
            }

            .ip-home svg.icon {
                width: 20px;
                height: 20px;
                fill: none;
                stroke: currentColor;
                stroke-width: 1.75;
                stroke-linecap: round;
                stroke-linejoin: round;
                flex-shrink: 0;
            }

            .an-wrap {
                width: min(1240px, calc(100% - 40px));
                margin-inline: auto;
                padding-inline: 20px;
            }

            .an-skip {
                position: fixed;
                top: -100px;
                left: 16px;
                z-index: 1000;
                background: #fff;
                padding: 12px;
                border: 2px solid var(--accent);
            }

            .an-skip:focus {
                top: 12px;
            }

            #an-content {
                scroll-margin-top: var(--an-header-height);
            }

            @media (max-width: 1180px) {
                .an-wrap {
                    width: calc(100% - 28px);
                    padding-inline: 14px;
                }
            }

            @media (max-width: 700px) {
                .an-wrap {
                    width: 100%;
                    padding-inline: 12px;
                }

                .ip-home h1 {
                    font-size: 1.75rem;
                }

                .ip-home :is(input, select, textarea) {
                    font-size: 1rem;
                }

                .ip-home {
                    --an-bottom-height: calc(88px + env(safe-area-inset-bottom));
                }
            }

            @media (prefers-reduced-motion: reduce) {
                html:has(body.ip-home) {
                    scroll-behavior: auto;
                }
            }

            :where(.home-page) button {
                background: none;
                border: 0;
            }
        
/* controls */

            .ip-home .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;
            }

            .ip-home .btn:hover {
                background: var(--accent-hover);
                border-color: var(--accent-hover);
            }

            .ip-home :is(input[type="checkbox"], input[type="radio"]) {
                width: 18px;
                min-height: 18px;
                height: 18px;
                accent-color: var(--accent-ink);
            }

            .ip-home textarea {
                resize: vertical;
            }
        
/* shell */

            /* Шапка, нижняя навигация и доступность. Стили удалённых компонентов исключены. */
            .an-header {
                position: sticky;
                top: 0;
                z-index: 45;
                background: #fff;
                border-bottom: 1px solid var(--line);
            }

            .an-header-inner {
                display: flex;
                align-items: center;
                gap: 22px;
                min-height: 76px;
            }

            .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;
            }

            .an-brand > span > span {
                color: var(--accent);
            }

            .an-brand-mark {
                display: grid;
                place-items: center;
                width: 34px;
                height: 40px;
                border-radius: 8px;
                background: var(--accent);
                color: var(--ink);
            }

            .an-header-actions {
                display: flex;
                align-items: center;
                gap: 16px;
                margin-left: auto;
            }

            .an-divider {
                height: 24px;
                width: 1px;
                background: var(--line);
            }

            .an-header .an-post {
                background: var(--ink);
                border-color: var(--ink);
                color: white;
            }

            .an-header .an-post:hover {
                background: #383e45;
                border-color: #383e45;
            }

            .an-bottom-nav {
                display: none;
            }

            @media (max-width: 1000px) {
                .an-header-inner {
                    gap: 16px;
                }

                .an-header-actions {
                    gap: 10px;
                }

                .an-header .an-post {
                    padding: 10px;
                    font-size: 0.8125rem;
                }

                .an-divider {
                    display: none;
                }
            }

            @media (max-width: 700px) {
                .an-header {
                    background: var(--ink);
                    border-color: #343b43;
                    color: #fff;
                }

                .an-header-inner {
                    flex-wrap: wrap;
                    gap: 8px;
                    padding-block: 10px;
                }

                .an-header .an-brand {
                    font-size: 1.05rem;
                    gap: 6px;
                    color: #fff;
                }

                .an-header .an-brand-mark {
                    width: 26px;
                    height: 32px;
                }

                .an-header-actions {
                    gap: 6px;
                }

                .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;
                }

                .an-header .an-post > span {
                    display: none;
                }

                .an-header .an-post .icon {
                    width: 24px;
                    height: 24px;
                }

                .an-header .an-post:hover {
                    background: var(--accent-hover);
                    border-color: var(--accent-hover);
                }

                .an-header :is(a, button):focus-visible {
                    outline-color: #ffad84;
                }

                .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;
                }

                .ip-home:has(input:focus, textarea:focus, select:focus) .an-bottom-nav, .ip-home.an-keyboard-open .an-bottom-nav {
                    visibility: hidden;
                    pointer-events: none;
                }
            }

            @media (max-width: 350px) {
                .an-brand {
                    font-size: 1.1rem;
                }
            }

            @media (max-width: 1100px) {
                .ip-home .an-header-inner {
                    gap: 16px;
                }

                .ip-home .an-post span {
                    display: none;
                }

                .ip-home .an-header-actions {
                    gap: 10px;
                }
            }

            @media (max-width: 1100px) {
                .an-header-actions {
                    margin-left: auto;
                }
            }

            .ip-home .an-a11y-toggle {
                display: none;
            }

            @media (max-width: 700px) {
                .ip-home .an-header {
                    position: static;
                    top: auto;
                }

                .ip-home .an-header .an-post {
                    display: none;
                }

                .ip-home .an-header .an-a11y-toggle:not([hidden]) {
                    display: inline-flex;
                    align-items: center;
                    justify-content: center;
                    flex: none;
                    width: 44px;
                    height: 44px;
                    padding: 9px;
                    border: 1px solid #ff8a50;
                    border-radius: 9px;
                    background: #ff6b2b;
                    color: #171b20;
                    cursor: pointer;
                }

                .ip-home .an-header .an-a11y-toggle .icon {
                    width: 26px;
                    height: 26px;
                }

                .ip-home .an-header .an-a11y-toggle[aria-pressed="true"] {
                    background: #fff;
                    color: #101010;
                    border-color: #fff;
                    box-shadow: inset 0 0 0 2px #101010;
                }

                .ip-home.an-accessible {
                    --ink: #101010;
                    --muted: #333;
                    --line: #707070;
                    --canvas: #fff;
                    --accent-ink: #b3161c;
                    --accent-soft: #fff1f2;
                    font-size: 18px;
                    line-height: 1.65;
                }

                .ip-home.an-accessible main {
                    font-size: 18px;
                    line-height: 1.65;
                }

                .ip-home.an-accessible main :is(p, li, label, button, a, input, select, textarea, summary, small) {
                    font-size: 18px !important;
                    line-height: 1.5 !important;
                }

                .ip-home.an-accessible main :is(input:not([type="checkbox"]):not([type="radio"]), select, textarea) {
                    border-color: #555;
                    background: #fff;
                    color: #101010;
                }

                .ip-home.an-accessible main :is( input:not([type="checkbox"]):not([type="radio"]), select ) {
                    min-height: 52px;
                    height: auto;
                }

                .ip-home.an-accessible :is(button, a, input, select, textarea, summary):focus-visible {
                    outline: 3px solid #005fcc;
                    outline-offset: 3px;
                }
            }

            body.ip-home .an-brand {
                color: var(--ink);
            }

            body.ip-home .an-brand > span > span {
                color: var(--accent);
            }

            body.ip-home .an-brand-mark {
                background: var(--accent);
                color: var(--on-accent);
            }

            body.ip-home .an-header .an-post {
                background: var(--accent);
                border-color: var(--accent);
                color: var(--on-accent);
            }

            body.ip-home .an-header .an-post:hover {
                background: var(--accent-hover);
                border-color: var(--accent-hover);
                color: var(--on-accent);
            }

            @media (min-width: 701px) {
                body.ip-home .an-header {
                    background: #fff;
                    color: var(--ink);
                    border-color: var(--line);
                }

                body.ip-home .an-header :is(a, button):focus-visible {
                    outline-color: var(--accent-ink);
                }
            }

            @media (max-width: 700px) {
                body.ip-home .an-header .an-brand {
                    color: var(--on-accent);
                }

                body.ip-home .an-header .an-a11y-toggle[aria-pressed="false"] {
                    background: var(--accent);
                    border-color: var(--accent);
                    color: var(--on-accent);
                }

                body.ip-home:not(.an-accessible) .an-header :is(a, button):focus-visible {
                    outline-color: var(--on-accent);
                }

                body.ip-home.an-accessible .an-header :is(a, button):focus-visible {
                    outline-color: #005fcc;
                }
            }
        
/* home-layout */

            .home-page summary {
                -webkit-tap-highlight-color: transparent;
            }

            .home-page summary {
                touch-action: manipulation;
            }

            .home-page p {
                margin: 0;
            }

            .home-page select:disabled {
                cursor: not-allowed;
            }

            .home-page select:disabled {
                color: #828487;
                background-color: #f1f3f6;
            }

            .home-page button:focus-visible {
                outline: 3px solid var(--accent-ink);
                outline-offset: 3px;
            }

            .home-page a:focus-visible {
                outline: 3px solid var(--accent-ink);
                outline-offset: 3px;
            }

            .home-page summary:focus-visible {
                outline: 3px solid var(--accent-ink);
                outline-offset: 3px;
            }

            .home-page input:focus-visible {
                outline: 3px solid var(--accent-ink);
                outline-offset: 3px;
            }

            .home-page select:focus-visible {
                outline: 3px solid var(--accent-ink);
                outline-offset: 3px;
            }

            .home-page button:hover {
                transition:
                    background 0.16s,
                    color 0.16s,
                    box-shadow 0.16s;
            }

            .home-page a:hover {
                transition:
                    background 0.16s,
                    color 0.16s,
                    box-shadow 0.16s;
            }

            .home-page button:disabled:hover {
                box-shadow: none;
            }

            .home-page input[type="number"] {
                appearance: textfield;
            }

            .home-page input::-webkit-inner-spin-button {
                appearance: none;
                margin: 0;
            }

            .home-page input::-webkit-outer-spin-button {
                appearance: none;
                margin: 0;
            }

            .home-page [hidden] {
                display: none !important;
            }

            .home-page .icon-btn {
                width: 44px;
                height: 44px;
                display: inline-flex;
                align-items: center;
                justify-content: center;
                flex-shrink: 0;
                border-radius: 50%;
            }

            .home-page .icon-btn:hover {
                background: var(--accent-soft);
            }

            .home-page .hero {
                padding-top: 0;
                border-radius: 14px;
                background: white;
                box-shadow: 0 5px 22px #24262908;
            }

            .home-page .hero-intro {
                height: 144px;
                position: relative;
                display: flex;
                align-items: center;
                isolation: auto;
                overflow: hidden;
                background: var(--ink);
                border-radius: 14px 14px 0 0;
                padding: 24px 28px;
                color: white;
            }

            .home-page .hero-copy {
                position: relative;
                z-index: 1;
                width: calc(100% - 345px);
                padding: 0;
                padding-left: 17px;
                border-left: 4px solid var(--accent);
            }

            .home-page .hero-copy > p {
                font-size: 14px;
                color: #626467;
            }

            .home-page .hero-art {
                position: absolute;
                right: 0;
                width: 322px;
                height: 100%;
                top: 0;
                overflow: hidden;
                z-index: 0;
                mask-image: none;
                border-radius: 0 14px 0 0;
                border: 0;
                transform: none;
                box-shadow: none;
            }

            .home-page .hero-art img {
                width: 100%;
                height: 100%;
                object-fit: cover;
                object-position: 75% 66%;
                opacity: 1;
            }

            .home-page .hero-art:after {
                content: none;
                position: absolute;
                inset: 0;
                background: none;
            }

            .home-page .sidebar {
                border: 0;
                border-radius: 0;
                background: transparent;
                overflow: visible;
            }

            .home-page .to-top {
                position: fixed;
                right: 20px;
                bottom: 20px;
                border: 1px solid #dadcdf;
                background: white;
                box-shadow: 0 2px 12px #0001;
                z-index: 20;
            }

            .home-page dialog {
                border: 1px solid #e4e6e9;
                border-radius: 14px;
                padding: 0;
                max-height: 90dvh;
                width: min(780px, calc(100% - 36px));
                color: var(--ink);
                box-shadow: 0 24px 100px #24262938;
                background: white;
                overscroll-behavior: contain;
            }

            .home-page dialog::backdrop {
                background: #24262980;
                backdrop-filter: blur(3px);
            }

            @media (min-width: 1450px) {
                .home-page .hero-art {
                    width: 322px;
                }
            }

            @media (max-width: 1100px) {
                .home-page .hero-copy {
                    width: calc(100% - 265px);
                }

                .home-page .hero-art {
                    width: 245px;
                    right: 0;
                }
            }

            @media (max-width: 760px) {
                .home-page .hero-intro {
                    height: auto;
                    overflow: visible;
                    min-height: 111px;
                    padding: 21px 19px;
                    border-radius: 12px 12px 0 0;
                }

                .home-page .hero-copy {
                    width: 100%;
                    padding: 0 0 0 14px;
                    border-left-width: 3px;
                }

                .home-page .hero-art {
                    display: none;
                }

                .home-page .hero-copy h1 {
                    font-size: 27px;
                    letter-spacing: -0.7px;
                    max-width: 380px;
                    margin: 0;
                    line-height: 1.15;
                }

                .home-page .hero-copy > p {
                    display: none;
                }

                .home-page .sidebar {
                    display: none;
                }

                .home-page .to-top {
                    bottom: 102px;
                    right: 14px;
                    width: 39px;
                    height: 39px;
                }

                .home-page dialog {
                    width: 100%;
                    max-width: none;
                    max-height: 94dvh;
                    border: 0;
                    border-radius: 14px 14px 0 0;
                    margin: auto 0 0;
                    position: fixed;
                    inset: auto 0 0;
                }

                .home-page .hero {
                    border-radius: 12px;
                }
            }

            @media (max-width: 359px) {
                .home-page .hero-copy h1 {
                    font-size: 25px;
                    letter-spacing: -0.75px;
                }

                .home-page .hero-copy > p {
                    font-size: 11px;
                }

                .home-page .hero-intro {
                    padding: 18px 16px;
                    min-height: 105px;
                }
            }

            @media (prefers-reduced-motion: reduce) {
                .home-page *:before {
                    transition: none !important;
                    animation: none !important;
                }

                .home-page *:after {
                    transition: none !important;
                    animation: none !important;
                }
            }

            .home-page .hero-intro {
                height: auto;
                min-height: 144px;
                overflow: visible;
            }

            .home-page .hero-copy h1 {
                overflow-wrap: anywhere;
            }

            .home-page .hero-art {
                overflow: hidden;
            }

            @media (max-width: 760px) {
                .home-page .hero-intro {
                    min-height: 0;
                }

                .home-page .hero-copy h1 {
                    max-width: none;
                }
            }
        
/* contact-controls */

            /* Contact actions replace the former transport categories below the header. */
            body.ip-home .ip-contact-bar {
                display: flex;
                align-items: center;
                flex-wrap: wrap;
                gap: 10px;
                min-height: 64px;
                padding-top: 12px;
                padding-bottom: 12px;
            }

            body.ip-home .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;
            }

            body.ip-home .ip-contact-button:hover {
                color: #fff;
                box-shadow: 0 5px 13px var(--ip-contact-shadow);
                transform: translateY(-1px);
            }

            body.ip-home .ip-contact-button:active {
                box-shadow: 0 2px 5px var(--ip-contact-shadow);
                transform: translateY(0);
            }

            body.ip-home .ip-contact-bar .ip-contact-button:focus-visible {
                outline: 2px solid var(--ip-blue, #0039a6);
                outline-offset: 3px;
            }

            .ip-contact-button .ip-contact-icon {
                flex: none;
                width: 16px;
                height: 16px;
                color: currentColor;
            }

            .ip-contact-button--max {
                --ip-contact-start: #8b3dff;
                --ip-contact-end: #5524d9;
                --ip-contact-shadow: rgba(109, 48, 227, 0.24);
            }

            .ip-contact-button--telegram {
                --ip-contact-start: #087cb5;
                --ip-contact-end: #0758b9;
                --ip-contact-shadow: rgba(8, 110, 183, 0.24);
            }

            .ip-contact-button--phone {
                --ip-contact-start: #118546;
                --ip-contact-end: #096b37;
                --ip-contact-shadow: rgba(17, 133, 70, 0.24);
            }

            .ip-contact-button--email {
                --ip-contact-start: #176be6;
                --ip-contact-end: #0039a6;
                --ip-contact-shadow: rgba(15, 83, 204, 0.24);
            }

            /* Keep the small details visible inside the white messenger icons. */
            .ip-contact-button--max .ip-contact-icon g,
            .ip-contact-button--telegram .ip-contact-icon path {
                fill: var(--ip-contact-start);
            }

            /* Четыре способа связи всегда остаются в одном ряду на мобильных. */
            @media (max-width: 760px) {
                body.ip-home .ip-contact-bar {
                    display: grid;
                    grid-template-columns: repeat(4, minmax(0, 1fr));
                    gap: 8px;
                }

                body.ip-home .ip-contact-bar .ip-contact-button {
                    width: 100%;
                    min-width: 0;
                    gap: 6px;
                    padding-inline: 8px;
                }
            }

            /* На узком экране иконка над подписью сохраняет читаемый текст. */
            @media (max-width: 480px) {
                body.ip-home .ip-contact-bar {
                    gap: 6px;
                }

                body.ip-home .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) {
                body.ip-home .ip-contact-button {
                    transition: none;
                    transform: none;
                }
            }
        
/* hero-slider */

            /* Preserve the original gray strip; refine the type and photo junction. */
            .home-page .hero-intro.ip-hero-intro {
                display: grid;
                grid-template-columns: minmax(0, 1fr) minmax(300px, 40%);
                align-items: stretch;
                gap: 0;
                height: auto;
                min-height: 188px;
                padding: 0;
                overflow: hidden;
                background: var(--ink, #20252b);
                color: #f5f6f7;
            }

            .home-page .ip-hero-intro .hero-copy {
                align-self: center;
                width: auto;
                min-width: 0;
                margin: 26px 32px;
                padding: 0 0 0 18px;
                border: 0;
                border-left: 2px solid var(--accent, #e31e24);
            }

            .home-page .ip-hero-intro .hero-copy h1 {
                max-width: none;
                margin: 0;
                color: inherit;
                font-family: var(--font, Arial, sans-serif);
                font-size: clamp(26px, 2.25vw, 30px);
                font-style: normal;
                font-weight: 400;
                font-synthesis: none;
                line-height: 1.32;
                letter-spacing: -0.02em;
                overflow-wrap: normal;
                text-wrap: balance;
            }

            .home-page .ip-hero-intro .hero-art.ip-hero-slider {
                position: relative;
                inset: auto;
                display: block;
                width: 100%;
                height: auto;
                min-width: 0;
                min-height: 188px;
                margin: 0;
                padding: 0;
                overflow: hidden;
                border: 0;
                border-radius: 0;
                background: var(--ink, #20252b);
                pointer-events: none;
                user-select: none;
            }

            /* A narrow fade joins the photo to the strip without covering the work. */
            .home-page .ip-hero-intro .hero-art.ip-hero-slider::after {
                content: "";
                position: absolute;
                inset: 0 auto 0 0;
                z-index: 3;
                width: 64px;
                height: auto;
                background: linear-gradient(
                    90deg,
                    var(--ink, #20252b) 0%,
                    rgba(32, 37, 43, 0.7) 24%,
                    rgba(32, 37, 43, 0) 100%
                );
                pointer-events: none;
            }

            .home-page .ip-hero-frame {
                position: absolute;
                inset: 0;
                margin: 0;
                padding: 0;
                opacity: 0;
                visibility: hidden;
                z-index: 0;
                transition: opacity 1200ms cubic-bezier(0.22, 0.61, 0.36, 1);
            }

            .home-page .ip-hero-frame.is-active {
                z-index: 2;
                opacity: 1;
                visibility: visible;
            }

            /* Keep the previous photograph behind the incoming frame during the fade. */
            .home-page .ip-hero-frame.is-leaving {
                z-index: 1;
                opacity: 1;
                visibility: visible;
            }

            .home-page .ip-hero-frame img {
                display: block;
                width: 100%;
                height: 100%;
                max-width: none;
                object-fit: cover;
                object-position: var(--ip-hero-image-position, 50% 50%);
                transform: scale(1.015);
                transform-origin: var(--ip-hero-image-position, 50% 50%);
            }

            .home-page .ip-hero-frame:is(.is-active, .is-leaving) img {
                animation: ip-hero-decor-drift 7600ms linear both;
                will-change: transform;
            }

            .home-page .ip-hero-slider.is-paused .ip-hero-frame img {
                animation-play-state: paused;
            }

            @keyframes ip-hero-decor-drift {
                from { transform: scale(1.015) translate3d(-0.2%, 0, 0); }
                to { transform: scale(1.04) translate3d(0.2%, 0, 0); }
            }

            @media (max-width: 760px) {
                .home-page .hero-intro.ip-hero-intro {
                    grid-template-columns: minmax(0, 1fr);
                    min-height: 0;
                }

                .home-page .ip-hero-intro .hero-copy {
                    margin: 24px 22px 20px;
                    padding-left: 15px;
                }

                .home-page .ip-hero-intro .hero-copy h1 {
                    font-size: 24px;
                    letter-spacing: -0.015em;
                }

                .home-page .ip-hero-intro .hero-art.ip-hero-slider {
                    height: clamp(160px, 46vw, 220px);
                    min-height: 0;
                }

                .home-page .ip-hero-intro .hero-art.ip-hero-slider::after {
                    inset: 0 0 auto;
                    width: 100%;
                    height: 24px;
                    background: linear-gradient(
                        180deg,
                        var(--ink, #20252b),
                        rgba(32, 37, 43, 0)
                    );
                }
            }

            @media (max-width: 399px) {
                .home-page .ip-hero-intro .hero-copy {
                    margin-right: 20px;
                    margin-left: 20px;
                }

                .home-page .ip-hero-intro .hero-copy h1 {
                    font-size: 22px;
                }
            }

            @media (prefers-reduced-motion: reduce) {
                .home-page .ip-hero-frame {
                    transition: none;
                }

                .home-page .ip-hero-slider .ip-hero-frame img {
                    animation: none;
                    transform: none;
                    will-change: auto;
                }
            }
        
/* trust-block */

            #ip-trust {
                padding: 22px 26px 24px;
                border-bottom-left-radius: inherit;
                border-bottom-right-radius: inherit;
                background: #ffffff;
                color: #20252b;
                font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
                font-size: 14px;
                font-weight: 400;
                line-height: 1.5;
            }

            #ip-trust * {
                box-sizing: border-box;
            }

            #ip-trust h2 {
                margin: 0 0 17px;
                color: #20252b;
                font-size: 20px;
                font-weight: 400;
                line-height: 1.35;
                letter-spacing: -0.2px;
            }

            #ip-trust .ip-trust-layout {
                display: grid;
                grid-template-columns: minmax(0, 1.06fr) minmax(0, 0.8fr) minmax(0, 1.35fr);
                align-items: stretch;
                gap: 26px;
                margin-bottom: 0;
            }

            #ip-trust .ip-trust-payment,
            #ip-trust .ip-trust-warranty,
            #ip-trust .ip-trust-process,
            #ip-trust .ip-trust-row,
            #ip-trust .ip-trust-row-copy {
                min-width: 0;
            }

            #ip-trust .ip-trust-icon {
                display: block;
                flex: 0 0 40px;
                width: 40px;
                height: 40px;
                color: #0039a6;
            }

            #ip-trust .ip-trust-copy {
                margin: 0;
                color: #596574;
                font-size: 13px;
                font-weight: 400;
                line-height: 1.55;
                letter-spacing: 0;
                overflow-wrap: anywhere;
            }

            /* Один цветовой акцент — условия оплаты. */
            #ip-trust .ip-trust-payment {
                position: relative;
                padding: 18px 20px 17px;
                border: 1px solid #dce6f6;
                border-radius: 12px;
                background: linear-gradient(125deg, #eef4ff 0%, #f8faff 100%);
            }

            #ip-trust .ip-trust-payment > .ip-trust-icon {
                position: absolute;
                top: 12px;
                right: 14px;
                width: 36px;
                height: 36px;
            }

            #ip-trust .ip-trust-payment h3 {
                margin: 0 42px 8px 0;
                color: #183a70;
                font-size: 15px;
                font-weight: 400;
                line-height: 1.4;
                letter-spacing: 0;
            }

            #ip-trust .ip-trust-amount {
                margin: 0 0 10px;
                color: #0039a6;
                font-size: 32px;
                font-weight: 400;
                line-height: 1.2;
                letter-spacing: -0.65px;
                white-space: nowrap;
            }

            #ip-trust .ip-trust-payment .ip-trust-copy {
                max-width: 30ch;
            }

            /* Гарантия остаётся на белом фоне и поддерживает главный акцент. */
            #ip-trust .ip-trust-warranty {
                display: flex;
                flex-direction: column;
                justify-content: center;
                padding: 8px 0;
            }

            #ip-trust .ip-trust-warranty-head {
                display: flex;
                align-items: center;
                gap: 11px;
                margin-bottom: 11px;
            }

            #ip-trust .ip-trust-warranty h3 {
                display: flex;
                align-items: center;
                gap: 8px;
                min-width: 0;
                margin: 0;
                font-weight: 400;
                line-height: 1.2;
                letter-spacing: 0;
            }

            #ip-trust .ip-trust-warranty-value {
                color: #0039a6;
                font-size: 36px;
                font-weight: 400;
                line-height: 1;
                letter-spacing: -0.8px;
            }

            #ip-trust .ip-trust-warranty-period {
                color: #20252b;
                font-size: 14px;
                font-weight: 400;
                line-height: 1.45;
            }

            #ip-trust .ip-trust-warranty-period span {
                display: block;
            }

            #ip-trust .ip-trust-warranty .ip-trust-copy {
                max-width: 29ch;
            }

            /* Два коротких пункта собраны справа, каждый со своей иконкой. */
            #ip-trust .ip-trust-process {
                display: grid;
                align-content: center;
                gap: 15px;
                padding-left: 26px;
                border-left: 1px solid #e3e8ef;
            }

            #ip-trust .ip-trust-row {
                display: flex;
                align-items: flex-start;
                gap: 12px;
            }

            #ip-trust .ip-trust-row + .ip-trust-row {
                padding-top: 15px;
                border-top: 1px solid #e9edf3;
            }

            #ip-trust .ip-trust-row h3 {
                margin: 0 0 5px;
                color: #20252b;
                font-size: 15px;
                font-weight: 500;
                line-height: 1.4;
                letter-spacing: 0;
            }

            #ip-trust [hidden] {
                display: none !important;
            }

            #ip-trust .ip-trust-static-title {
                display: block;
            }

            #ip-trust .ip-trust-toggle {
                display: flex;
                align-items: center;
                justify-content: space-between;
                gap: 16px;
                width: 100%;
                min-width: 0;
                min-height: 56px;
                margin: 0;
                padding: 13px 0;
                border: 0;
                border-radius: 0;
                background: transparent;
                box-shadow: none;
                color: #20252b;
                font: inherit;
                font-weight: 400;
                line-height: 1.4;
                letter-spacing: inherit;
                text-align: left;
                text-transform: none;
                cursor: pointer;
                appearance: none;
            }

            #ip-trust .ip-trust-toggle:hover {
                background: transparent;
                box-shadow: none;
                color: #0039a6;
            }

            #ip-trust .ip-trust-toggle:focus-visible {
                border-radius: 6px;
                outline: 2px solid #0039a6;
                outline-offset: 3px;
            }

            #ip-trust .ip-trust-toggle-mark {
                display: grid;
                flex: 0 0 24px;
                place-items: center;
                width: 24px;
                height: 24px;
                border-radius: 50%;
                background: #eff4fd;
                color: #0039a6;
                font-size: 20px;
                font-weight: 400;
                line-height: 1;
            }

            #ip-trust .ip-trust-toggle-mark::after {
                content: "+";
            }

            #ip-trust .ip-trust-toggle[aria-expanded="true"] .ip-trust-toggle-mark::after {
                content: "−";
            }

            @media (max-width: 980px) {
                #ip-trust .ip-trust-layout {
                    grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
                    gap: 20px;
                }

                #ip-trust .ip-trust-process {
                    grid-column: 1 / -1;
                    grid-template-columns: repeat(2, minmax(0, 1fr));
                    gap: 20px;
                    padding: 18px 0 0;
                    border-top: 1px solid #e3e8ef;
                    border-left: 0;
                }

                #ip-trust .ip-trust-row + .ip-trust-row {
                    padding: 0 0 0 20px;
                    border-top: 0;
                    border-left: 1px solid #e9edf3;
                }
            }

            @media (max-width: 620px) {
                #ip-trust .ip-trust-layout {
                    grid-template-columns: minmax(0, 1fr);
                    gap: 18px;
                }

                #ip-trust .ip-trust-payment {
                    padding: 16px 18px;
                }

                #ip-trust .ip-trust-amount {
                    font-size: 30px;
                }

                #ip-trust .ip-trust-warranty {
                    padding: 0;
                }

                #ip-trust .ip-trust-warranty-head {
                    gap: 12px;
                    margin-bottom: 7px;
                }

                #ip-trust .ip-trust-warranty-value {
                    font-size: 30px;
                }

                #ip-trust .ip-trust-warranty-period span {
                    display: inline;
                }

                #ip-trust .ip-trust-warranty .ip-trust-copy {
                    max-width: none;
                    padding-left: 52px;
                }

                #ip-trust .ip-trust-process {
                    grid-column: auto;
                    grid-template-columns: minmax(0, 1fr);
                    gap: 15px;
                    padding-top: 17px;
                }

                #ip-trust .ip-trust-row + .ip-trust-row {
                    padding: 15px 0 0;
                    border-top: 1px solid #e9edf3;
                    border-left: 0;
                }
            }

            @media (max-width: 359px) {
                #ip-trust .ip-trust-amount {
                    font-size: 28px;
                }

                #ip-trust .ip-trust-payment h3 {
                    font-size: 14px;
                }
            }

            /* На телефоне блок открывается заметной кнопкой с пояснением содержимого. */
            @media (max-width: 700px), (max-height: 500px) and (pointer: coarse) {
                #ip-trust {
                    padding: 10px 18px 12px;
                }

                #ip-trust h2 {
                    margin: 0;
                    color: #173b70;
                    font-size: 15px;
                    font-weight: 400;
                    letter-spacing: 0;
                }

                #ip-trust .ip-trust-static-title {
                    padding: 5px 0 14px;
                }

                #ip-trust .ip-trust-toggle {
                    justify-content: space-between;
                    gap: 12px;
                    min-height: 56px;
                    padding: 8px 12px;
                    border: 1px solid #bbd0ef;
                    border-radius: 10px;
                    background: #edf4ff;
                    box-shadow: 0 2px 6px rgba(0, 57, 166, 0.06);
                    color: #173b70;
                    font-size: 15px;
                }

                #ip-trust .ip-trust-toggle-copy {
                    display: grid;
                    gap: 2px;
                    min-width: 0;
                }

                #ip-trust .ip-trust-toggle-label {
                    font-weight: 500;
                    line-height: 1.3;
                }

                #ip-trust .ip-trust-toggle-hint {
                    color: #506583;
                    font-size: 0.8em;
                    font-weight: 400;
                    line-height: 1.35;
                }

                #ip-trust .ip-trust-toggle:hover {
                    border-color: #92b3e5;
                    background: #e5efff;
                    box-shadow: 0 2px 6px rgba(0, 57, 166, 0.08);
                    color: #0039a6;
                }

                #ip-trust .ip-trust-toggle:active {
                    background: #dce9fc;
                    box-shadow: none;
                }

                #ip-trust .ip-trust-toggle:focus-visible {
                    border-radius: 10px;
                }

                #ip-trust .ip-trust-toggle-mark {
                    flex-basis: 28px;
                    width: 28px;
                    height: 28px;
                    border-radius: 8px;
                    background: #0039a6;
                    color: #ffffff;
                    font-size: 22px;
                }

                #ip-trust .ip-trust-panel {
                    padding: 14px 0 8px;
                    animation: ip-trust-reveal 180ms ease-out both;
                }
            }

            @keyframes ip-trust-reveal {
                from {
                    opacity: 0;
                    transform: translateY(-5px);
                }

                to {
                    opacity: 1;
                    transform: translateY(0);
                }
            }

            @media (prefers-reduced-motion: reduce) {
                #ip-trust .ip-trust-panel {
                    animation: none;
                }
            }
        
/* catalog */

            /* Каталог: реальные фотографии с nr-sputnik.ru и отдельная галерея в каждой карточке. */
            #ip-catalog {
                padding-top: 34px;
                color: #20252b;
                font-family: var(--font, Arial, sans-serif);
                scroll-margin-top: calc(var(--an-header-height, 76px) + 18px);
            }

            #ip-catalog * {
                box-sizing: border-box;
            }

            #ip-catalog .ip-catalog-head {
                display: flex;
                align-items: flex-start;
                justify-content: space-between;
                gap: 20px;
                margin-bottom: 22px;
            }

            #ip-catalog .ip-catalog-heading {
                min-width: 0;
                max-width: 800px;
            }

            #ip-catalog .ip-catalog-title-row {
                display: flex;
                flex-wrap: wrap;
                align-items: center;
                gap: 12px;
            }

            #ip-catalog h2 {
                margin: 0;
                font-family: inherit;
                font-size: 27px;
                font-weight: 500;
                line-height: 1.25;
                letter-spacing: -0.6px;
            }

            #ip-catalog .ip-catalog-count {
                padding: 5px 9px;
                border-radius: 6px;
                background: #e9ebee;
                color: #59636f;
                font-size: 12px;
                font-weight: 400;
                line-height: 1.5;
                white-space: nowrap;
            }

            #ip-catalog .ip-catalog-intro {
                margin: 11px 0 0;
                color: #59636f;
                font-size: 14px;
                font-weight: 400;
                line-height: 1.6;
            }

            #ip-catalog .ip-catalog-views {
                display: flex;
                flex: none;
                gap: 3px;
                padding: 4px;
                border-radius: 8px;
                background: #ebedf0;
            }

            #ip-catalog .ip-catalog-views[hidden] {
                display: none;
            }

            #ip-catalog .ip-catalog-views button {
                display: inline-flex;
                align-items: center;
                justify-content: center;
                gap: 7px;
                min-height: 38px;
                padding: 7px 10px;
                border: 0;
                border-radius: 5px;
                background: transparent;
                color: #59636f;
                font: 400 12px/1.3 var(--font, Arial, sans-serif);
                cursor: pointer;
            }

            #ip-catalog .ip-catalog-views button[aria-pressed="true"] {
                background: #ffffff;
                color: #20252b;
                box-shadow: 0 1px 4px #20252b0d;
            }

            #ip-catalog .ip-catalog-views .icon {
                width: 17px;
                height: 17px;
            }

            #ip-catalog .ip-catalog-all:focus-visible,
            #ip-catalog .ip-catalog-views button:focus-visible {
                outline: 2px solid #0039a6;
                outline-offset: 3px;
            }

            #ip-catalog .ip-catalog-main {
                min-width: 0;
                container-name: ip-catalog-main;
                container-type: inline-size;
            }

            #ip-catalog .ip-catalog-grid {
                display: grid;
                grid-template-columns: repeat(3, minmax(0, 1fr));
                gap: 20px 18px;
            }

            #ip-catalog .ip-catalog-card {
                position: relative;
                display: flex;
                flex-direction: column;
                min-width: 0;
                border: 1px solid #e0e4e9;
                border-radius: 12px;
                background: #ffffff;
                box-shadow: 0 2px 7px #24262904;
                transition: border-color 180ms ease, box-shadow 180ms ease;
            }

            #ip-catalog .ip-catalog-photo {
                position: relative;
                flex: none;
                min-width: 0;
                overflow: hidden;
                aspect-ratio: 3 / 2;
                border-radius: 11px 11px 0 0;
                background: #eef0f3;
                isolation: isolate;
                touch-action: pan-y pinch-zoom;
            }

            #ip-catalog .ip-catalog-photo [data-ip-slide] {
                position: absolute;
                inset: 0;
                display: block;
                width: 100%;
                height: 100%;
                object-fit: cover;
                user-select: none;
                -webkit-user-drag: none;
            }

            #ip-catalog [data-ip-slide][hidden],
            #ip-catalog [data-ip-gallery-controls][hidden] {
                display: none !important;
            }

            /* Управление фотографиями не пересекается со ссылкой на раздел. */
            #ip-catalog .ip-gallery-controls {
                position: absolute;
                inset: 0;
                z-index: 3;
                pointer-events: none;
            }

            #ip-catalog .ip-gallery-nav {
                position: absolute;
                top: 50%;
                display: grid;
                place-items: center;
                width: 44px;
                height: 44px;
                padding: 0;
                border: 0;
                background: transparent;
                color: #20252b;
                cursor: pointer;
                pointer-events: auto;
                transform: translateY(-50%);
            }

            #ip-catalog .ip-gallery-nav::before {
                position: absolute;
                inset: 6px;
                border: 1px solid #ffffff80;
                border-radius: 50%;
                background: #fffffff2;
                box-shadow: 0 2px 7px #11182729;
                content: "";
                transition: background 160ms ease, box-shadow 160ms ease;
            }

            #ip-catalog .ip-gallery-nav .icon {
                position: relative;
                width: 17px;
                height: 17px;
            }

            #ip-catalog .ip-gallery-nav.is-prev {
                left: 2px;
            }

            #ip-catalog .ip-gallery-nav.is-next {
                right: 2px;
            }

            #ip-catalog .ip-gallery-count {
                position: absolute;
                top: 10px;
                left: 10px;
                display: inline-flex;
                align-items: center;
                gap: 5px;
                padding: 5px 7px;
                border: 1px solid #ffffff26;
                border-radius: 6px;
                background: #20252bcc;
                color: #ffffff;
                font-size: 11px;
                font-weight: 400;
                line-height: 1.2;
                font-variant-numeric: tabular-nums;
            }

            #ip-catalog .ip-gallery-count .icon {
                width: 13px;
                height: 13px;
            }

            #ip-catalog .ip-gallery-dots {
                position: absolute;
                bottom: 4px;
                left: 50%;
                display: flex;
                align-items: center;
                max-width: calc(100% - 20px);
                padding: 0 3px;
                border-radius: 12px;
                background: #20252b66;
                transform: translateX(-50%);
            }

            #ip-catalog .ip-gallery-dot {
                display: grid;
                flex: none;
                place-items: center;
                width: 28px;
                height: 24px;
                padding: 0;
                border: 0;
                border-radius: 4px;
                background: transparent;
                cursor: pointer;
                pointer-events: auto;
            }

            #ip-catalog .ip-gallery-dot::before {
                width: 15px;
                height: 3px;
                border-radius: 2px;
                background: #ffffff80;
                box-shadow: 0 1px 2px #00000033;
                content: "";
                transition: background 160ms ease;
            }

            #ip-catalog .ip-gallery-dot[aria-pressed="true"]::before {
                height: 4px;
                background: #ffffff;
            }

            #ip-catalog .ip-catalog-photo:focus-visible {
                outline: 2px solid #0039a6;
                outline-offset: -3px;
            }

            #ip-catalog .ip-gallery-nav:focus-visible,
            #ip-catalog .ip-gallery-dot:focus-visible {
                border-radius: 6px;
                outline: 2px solid #ffffff;
                outline-offset: -2px;
                box-shadow: 0 0 0 2px #0039a6;
            }

            #ip-catalog .ip-catalog-copy {
                position: relative;
                display: flex;
                flex: 1;
                flex-direction: column;
                min-width: 0;
                padding: 16px 17px 0;
            }

            /* Заголовок и описание идут рядом, без зарезервированных пустых строк. */
            #ip-catalog .ip-catalog-card h3 {
                margin: 0;
                color: #20252b;
                font-family: inherit;
                font-size: 18px;
                font-weight: 500;
                line-height: 1.35;
                letter-spacing: -0.15px;
                overflow-wrap: break-word;
                hyphens: manual;
            }

            #ip-catalog .ip-catalog-description {
                flex: none;
                margin: 8px 0 13px;
                color: #59636f;
                font-size: 13px;
                font-weight: 400;
                line-height: 1.55;
            }

            #ip-catalog .ip-catalog-link {
                display: flex;
                align-items: center;
                min-height: 43px;
                margin-top: auto;
                border-top: 1px solid #edf0f3;
                color: #0039a6;
                font-size: 13px;
                font-weight: 500;
                line-height: 1.4;
                text-decoration: none;
            }

            /* Ссылка охватывает только текстовую часть; h3 остаётся без вложенных ссылок. */
            #ip-catalog .ip-catalog-link::after {
                position: absolute;
                inset: 0;
                z-index: 1;
                border-radius: 12px;
                content: "";
            }

            #ip-catalog .ip-catalog-card:focus-within {
                outline: 2px solid #0039a6;
                outline-offset: 3px;
            }

            #ip-catalog .ip-catalog-link:focus-visible {
                outline: none;
            }

            /* Переход из шести карточек в полный каталог. */
            #ip-catalog .ip-catalog-all {
                display: flex;
                align-items: center;
                justify-content: center;
                width: min(100%, 260px);
                min-height: 46px;
                margin: 22px auto 0;
                padding: 12px 20px;
                border: 1px solid #b8c6dc;
                border-radius: 8px;
                background: linear-gradient(
                    110deg,
                    #ffffff 0%,
                    #edf3ff 5%,
                    #0a54c4 18%,
                    #0039a6 40%,
                    #0039a6 67%,
                    #d52b1e 100%
                );
                color: #ffffff;
                font-size: 14px;
                font-weight: 400;
                line-height: 1.4;
                text-align: center;
                text-decoration: none;
                transition: filter 140ms ease;
            }

            #ip-catalog[data-view="list"] .ip-catalog-grid {
                grid-template-columns: minmax(0, 1fr);
            }

            #ip-catalog[data-view="list"] .ip-catalog-card {
                display: grid;
                grid-template-columns: min(36%, 330px) minmax(0, 1fr);
            }

            #ip-catalog[data-view="list"] .ip-catalog-photo {
                height: 100%;
                min-height: 180px;
                border-radius: 11px 0 0 11px;
            }

            #ip-catalog[data-view="list"] .ip-catalog-copy {
                justify-content: center;
                padding: 20px 26px;
            }

            #ip-catalog[data-view="list"] .ip-catalog-card h3 {
                font-size: 20px;
                line-height: 1.35;
            }

            #ip-catalog[data-view="list"] .ip-catalog-description {
                max-width: 46ch;
                margin: 9px 0 14px;
                font-size: 14px;
                line-height: 1.55;
            }

            #ip-catalog[data-view="list"] .ip-catalog-link {
                align-self: flex-start;
                min-height: 40px;
                margin-top: 0;
                padding: 9px 13px;
                border: 1px solid #dfe6f1;
                border-radius: 7px;
                background: #f3f6fb;
                font-size: 13px;
            }

            #ip-catalog[data-view="list"] .ip-catalog-link::after {
                border-radius: 0 11px 11px 0;
            }

            @media (hover: hover) and (pointer: fine) {
                #ip-catalog .ip-catalog-all:hover {
                    filter: brightness(1.08);
                }

                #ip-catalog .ip-catalog-card:hover {
                    border-color: #b6c5dc;
                    box-shadow: 0 6px 18px #2426290c;
                }

                #ip-catalog .ip-gallery-nav:hover::before {
                    background: #ffffff;
                    box-shadow: 0 3px 9px #1118273d;
                }

                #ip-catalog .ip-gallery-dot:hover::before {
                    background: #ffffff;
                }

                #ip-catalog .ip-catalog-link:hover {
                    text-decoration: underline;
                    text-underline-offset: 3px;
                }

            }

            @media (max-width: 1100px) {
                #ip-catalog .ip-catalog-grid {
                    grid-template-columns: repeat(2, minmax(0, 1fr));
                }

                #ip-catalog[data-view="list"] .ip-catalog-grid {
                    grid-template-columns: minmax(0, 1fr);
                }

                #ip-catalog[data-view="list"] .ip-catalog-card {
                    grid-template-columns: 40% minmax(0, 1fr);
                }

                #ip-catalog[data-view="list"] .ip-catalog-copy {
                    padding: 18px 20px;
                }

                #ip-catalog[data-view="list"] .ip-catalog-card h3 {
                    font-size: 18px;
                }

                #ip-catalog[data-view="list"] .ip-catalog-description {
                    font-size: 13px;
                }
            }

            @media (max-width: 600px) {
                #ip-catalog {
                    padding-top: 25px;
                }

                #ip-catalog .ip-catalog-head {
                    flex-wrap: wrap;
                    gap: 14px;
                    margin-bottom: 17px;
                }

                #ip-catalog .ip-catalog-heading {
                    flex-basis: 100%;
                }

                #ip-catalog h2 {
                    font-size: 24px;
                }

                #ip-catalog .ip-catalog-title-row {
                    gap: 9px;
                }

                #ip-catalog .ip-catalog-intro {
                    margin-top: 9px;
                    font-size: 13px;
                }

                #ip-catalog .ip-catalog-grid {
                    gap: 13px 10px;
                }

                #ip-catalog .ip-catalog-copy {
                    padding: 12px 11px 0;
                }

                #ip-catalog .ip-catalog-card h3 {
                    font-size: 15px;
                    letter-spacing: 0;
                }

                #ip-catalog .ip-catalog-description {
                    margin: 7px 0 11px;
                    font-size: 12px;
                }

                #ip-catalog .ip-catalog-link {
                    min-height: 42px;
                    font-size: 12px;
                }

                #ip-catalog .ip-gallery-count {
                    top: 7px;
                    left: 7px;
                    gap: 4px;
                    padding: 4px 6px;
                    font-size: 10px;
                }

                #ip-catalog .ip-gallery-dots {
                    bottom: 3px;
                }

                #ip-catalog .ip-gallery-dot {
                    width: 24px;
                }

                #ip-catalog .ip-catalog-all {
                    width: 100%;
                    margin-top: 17px;
                }

            }

            /* Узкая колонка: фото остаётся широким и на телефоне, и рядом с правым блоком. */
            @container ip-catalog-main (max-width: 520px) {
                #ip-catalog[data-view="list"] .ip-catalog-card {
                    display: flex;
                    flex-direction: column;
                }

                #ip-catalog[data-view="list"] .ip-catalog-photo {
                    height: auto;
                    min-height: 0;
                    aspect-ratio: 3 / 2;
                    border-radius: 11px 11px 0 0;
                }

                #ip-catalog[data-view="list"] .ip-catalog-copy {
                    padding: 17px 18px;
                }

                #ip-catalog[data-view="list"] .ip-catalog-card h3 {
                    font-size: 18px;
                }

                #ip-catalog[data-view="list"] .ip-catalog-description {
                    margin: 8px 0 12px;
                }

                #ip-catalog[data-view="list"] .ip-catalog-link::after {
                    border-radius: 0 0 11px 11px;
                }
            }

            @media (prefers-reduced-motion: reduce) {
                #ip-catalog .ip-catalog-all,
                #ip-catalog .ip-catalog-card,
                #ip-catalog .ip-gallery-nav::before,
                #ip-catalog .ip-gallery-dot::before {
                    transition: none;
                }
            }
        
/* sidebar-portfolio */

            /* Колонка идёт со страницей и закрепляется, когда её нижний край доходит до экрана. */
            #ip-showcase #sidebar.ip-sidebar-portfolio {
                --ip-sidebar-headroom: calc(var(--an-header-height, 76px) + 20px);
                --ip-sidebar-top: var(--ip-sidebar-headroom);
                color: #20252b;
                font-family: var(--font, Arial, sans-serif);
            }

            #ip-showcase .ip-sidebar-heading {
                flex: none;
                margin-bottom: 14px;
            }

            #ip-showcase .ip-sidebar-heading h3 {
                margin: 0;
                font-family: inherit;
                font-size: 18px;
                font-weight: 500;
                line-height: 1.35;
                letter-spacing: -0.2px;
            }

            #ip-showcase .ip-sidebar-intro {
                margin: 5px 0 0;
                color: #59636f;
                font-size: 12px;
                font-weight: 400;
                line-height: 1.5;
            }

            #ip-showcase .ip-sidebar-grid {
                display: grid;
                grid-auto-rows: max-content;
                align-content: start;
                flex: none;
                min-height: 0;
                gap: 12px;
                padding: 4px;
                overflow: visible;
            }

            #ip-showcase .ip-sidebar-work {
                display: flex;
                flex-direction: column;
                align-items: stretch;
                gap: 0;
                min-width: 0;
                padding: 0;
                overflow: hidden;
                border: 1px solid #e0e4e9;
                border-radius: 11px;
                background: #ffffff;
                color: #20252b;
                text-decoration: none;
                box-shadow: 0 2px 7px #24262904;
                transition: border-color 160ms ease, box-shadow 160ms ease;
            }

            #ip-showcase .ip-sidebar-work img {
                display: block;
                flex: none;
                width: 100%;
                height: auto;
                aspect-ratio: 640 / 427;
                border-radius: 0;
                background: #eef0f3;
                object-fit: cover;
            }

            #ip-showcase .ip-sidebar-work__copy {
                display: flex;
                flex-direction: column;
                gap: 7px;
                min-width: 0;
                padding: 12px 14px 14px;
            }

            #ip-showcase .ip-sidebar-work__title {
                font-size: 15px;
                font-weight: 500;
                line-height: 1.35;
                overflow-wrap: break-word;
            }

            #ip-showcase .ip-sidebar-work__action {
                color: #0039a6;
                font-size: 12px;
                font-weight: 400;
                line-height: 1.4;
            }

            #ip-showcase .ip-sidebar-all {
                display: flex;
                flex: none;
                align-items: center;
                justify-content: center;
                min-height: 44px;
                margin-top: 14px;
                padding: 11px 14px;
                border: 1px solid #b8c6dc;
                border-radius: 7px;
                background: linear-gradient(
                    110deg,
                    #ffffff 0%,
                    #edf3ff 5%,
                    #0a54c4 18%,
                    #0039a6 40%,
                    #0039a6 67%,
                    #d52b1e 100%
                );
                color: #ffffff;
                font-size: 14px;
                font-weight: 400;
                line-height: 1.4;
                text-align: center;
                text-decoration: none;
                transition: filter 140ms ease;
            }

            #ip-showcase .ip-sidebar-work:focus-visible,
            #ip-showcase .ip-sidebar-all:focus-visible {
                outline: 2px solid #0039a6;
                outline-offset: 3px;
            }

            /* Минимум — доступная высота экрана; длинное портфолио сохраняет полную высоту. */
            @media (min-width: 761px) {
                #ip-showcase #sidebar.ip-sidebar-portfolio {
                    position: sticky;
                    top: var(--ip-sidebar-top);
                    display: flex;
                    flex-direction: column;
                    align-self: start;
                    min-height: max(0px, calc(100vh - var(--ip-sidebar-headroom) - 20px));
                    min-height: max(0px, calc(100dvh - var(--ip-sidebar-headroom) - 20px));
                    max-height: none;
                    overflow: visible;
                }
            }

            @media (hover: hover) and (pointer: fine) {
                #ip-showcase .ip-sidebar-work:hover {
                    border-color: #b6c5dc;
                    box-shadow: 0 4px 12px #2426290c;
                }

                #ip-showcase .ip-sidebar-work:hover .ip-sidebar-work__action {
                    text-decoration: underline;
                    text-underline-offset: 3px;
                }

                #ip-showcase .ip-sidebar-all:hover {
                    filter: brightness(1.08);
                }
            }

            @media (prefers-reduced-motion: reduce) {
                #ip-showcase .ip-sidebar-work,
                #ip-showcase .ip-sidebar-all {
                    transition: none;
                }
            }
        
/* pricing */

            /* Стоимость: четыре исполнения одной буквы в общей панели сравнения. */
            #ip-pricing {
                margin-top: 46px;
                padding-top: 36px;
                border-top: 1px solid #dde2e7;
                color: #20252b;
                font-family: var(--font, Arial, sans-serif);
            }

            #ip-pricing * {
                box-sizing: border-box;
            }

            #ip-pricing .ip-pricing-head {
                display: flex;
                align-items: flex-end;
                justify-content: space-between;
                gap: 30px;
                margin-bottom: 22px;
            }

            #ip-pricing h2 {
                margin: 0;
                font-family: inherit;
                font-size: 27px;
                font-weight: 500;
                line-height: 1.25;
                letter-spacing: -0.6px;
            }

            #ip-pricing h2:focus-visible {
                outline: 2px solid #0039a6;
                outline-offset: 6px;
                border-radius: 3px;
            }

            #ip-pricing .ip-pricing-intro {
                max-width: 52ch;
                margin: 10px 0 0;
                color: #59636f;
                font-size: 14px;
                font-weight: 400;
                line-height: 1.6;
            }

            #ip-pricing .ip-pricing-sample {
                display: flex;
                flex: none;
                align-items: center;
                gap: 14px;
                padding: 11px 16px;
                border-radius: 9px;
                background: #f0f2f5;
            }

            #ip-pricing .ip-pricing-sample-size {
                display: flex;
                align-items: baseline;
                gap: 4px;
                color: #0039a6;
                font-size: 25px;
                font-weight: 500;
                line-height: 1.2;
                white-space: nowrap;
            }

            #ip-pricing .ip-pricing-sample-size span {
                font-size: 12px;
                font-weight: 400;
            }

            #ip-pricing .ip-pricing-sample-copy {
                display: grid;
                gap: 3px;
                padding-left: 14px;
                border-left: 1px solid #d7dce3;
                font-size: 13px;
                font-weight: 400;
                line-height: 1.4;
            }

            #ip-pricing .ip-pricing-sample-copy span:last-child {
                color: #59636f;
                font-size: 12px;
            }

            #ip-pricing .ip-pricing-comparison {
                display: grid;
                grid-template-columns: repeat(4, minmax(0, 1fr));
                gap: 1px;
                overflow: hidden;
                border: 1px solid #dde2e7;
                border-radius: 14px;
                background: #dde2e7;
            }

            #ip-pricing .ip-price-option {
                display: flex;
                flex-direction: column;
                min-width: 0;
                background: #ffffff;
            }

            #ip-pricing .ip-price-image {
                display: block;
                width: calc(100% - 20px);
                height: auto;
                aspect-ratio: 1;
                margin: 10px 10px 0;
                border-radius: 8px;
                background: #eee9e2;
                object-fit: contain;
            }

            #ip-pricing .ip-price-body {
                display: flex;
                flex: 1;
                flex-direction: column;
                min-width: 0;
                padding: 14px 14px 0;
            }

            #ip-pricing .ip-price-option h3 {
                margin: 0;
                color: #20252b;
                font-family: inherit;
                font-size: 16px;
                font-weight: 500;
                line-height: 1.35;
                letter-spacing: -0.15px;
                overflow-wrap: break-word;
            }

            #ip-pricing .ip-price-effect {
                margin: 7px 0 0;
                color: #59636f;
                font-size: 13px;
                font-weight: 400;
                line-height: 1.5;
            }

            #ip-pricing .ip-price-quote {
                margin-top: auto;
                padding: 14px 0 12px;
            }

            #ip-pricing .ip-price-amount {
                display: flex;
                align-items: baseline;
                gap: 6px;
                margin: 0;
                color: #0039a6;
                font-size: 25px;
                font-weight: 500;
                line-height: 1.2;
                letter-spacing: -0.7px;
                font-variant-numeric: tabular-nums;
                white-space: nowrap;
            }

            #ip-pricing .ip-price-amount span:first-child {
                font-size: 14px;
                font-weight: 400;
                letter-spacing: 0;
            }

            #ip-pricing .ip-price-unit {
                margin: 5px 0 0;
                color: #20252b;
                font-size: 12px;
                font-weight: 400;
                line-height: 1.5;
            }

            #ip-pricing .ip-price-formula {
                margin: 7px 0 0;
                color: #59636f;
                font-size: 12px;
                font-weight: 400;
                line-height: 1.5;
            }

            #ip-pricing .ip-price-detail {
                display: flex;
                align-items: center;
                min-height: 44px;
                padding: 10px 0;
                border-top: 1px solid #e9edf2;
                color: #0039a6;
                font-size: 13px;
                font-weight: 400;
                line-height: 1.4;
                text-decoration: none;
            }

            #ip-pricing .ip-pricing-footer {
                display: grid;
                grid-template-columns: minmax(0, 1fr) auto;
                align-items: center;
                gap: 28px;
                margin-top: 21px;
            }

            #ip-pricing .ip-pricing-note {
                max-width: 72ch;
                margin: 0;
                color: #59636f;
                font-size: 13px;
                font-weight: 400;
                line-height: 1.65;
            }

            #ip-pricing .ip-pricing-note span {
                color: #20252b;
                font-weight: 500;
            }

            #ip-pricing .ip-pricing-actions {
                display: grid;
                justify-items: stretch;
                min-width: 246px;
                gap: 3px;
            }

            #ip-pricing .ip-pricing-calculate {
                display: flex;
                align-items: center;
                justify-content: center;
                min-height: 46px;
                padding: 12px 19px;
                border: 1px solid #0039a6;
                border-radius: 8px;
                background: linear-gradient(125deg, #1764d8, #0039a6);
                color: #ffffff;
                font-size: 14px;
                font-weight: 400;
                line-height: 1.4;
                text-align: center;
                text-decoration: none;
                transition: filter 140ms ease;
            }

            #ip-pricing .ip-pricing-all {
                display: flex;
                align-items: center;
                justify-content: center;
                min-height: 44px;
                padding: 8px 12px;
                color: #0039a6;
                font-size: 13px;
                font-weight: 400;
                line-height: 1.4;
                text-decoration: none;
            }

            #ip-pricing a:focus-visible {
                outline: 2px solid #0039a6;
                outline-offset: 3px;
                border-radius: 4px;
            }

            @media (hover: hover) and (pointer: fine) {
                #ip-pricing .ip-price-detail:hover,
                #ip-pricing .ip-pricing-all:hover {
                    text-decoration: underline;
                    text-underline-offset: 3px;
                }

                #ip-pricing .ip-pricing-calculate:hover {
                    filter: brightness(1.08);
                }
            }

            /* На узкой колонке оставляем читаемые карточки по две в ряд. */
            @container ip-showcase-main (max-width: 720px) {
                #ip-pricing .ip-pricing-comparison {
                    grid-template-columns: repeat(2, minmax(0, 1fr));
                }
            }

            @media (max-width: 700px) {
                #ip-pricing .ip-pricing-comparison {
                    grid-template-columns: repeat(2, minmax(0, 1fr));
                }

                #ip-pricing {
                    margin-top: 32px;
                    padding-top: 27px;
                }

                #ip-pricing .ip-pricing-head {
                    flex-direction: column;
                    align-items: flex-start;
                    gap: 16px;
                    margin-bottom: 17px;
                }

                #ip-pricing h2 {
                    font-size: 24px;
                }

                #ip-pricing .ip-pricing-intro {
                    font-size: 13px;
                }

                #ip-pricing .ip-pricing-footer {
                    grid-template-columns: minmax(0, 1fr);
                    gap: 17px;
                    margin-top: 17px;
                }

                #ip-pricing .ip-pricing-actions {
                    min-width: 0;
                }
            }

            @media (max-width: 480px) {
                #ip-pricing .ip-price-image {
                    width: calc(100% - 18px);
                    margin: 9px 9px 0;
                    border-radius: 6px;
                }

                #ip-pricing .ip-price-body {
                    padding: 13px 12px 0;
                }

                #ip-pricing .ip-price-option h3 {
                    font-size: 15px;
                }

                #ip-pricing .ip-price-effect {
                    margin-top: 6px;
                    font-size: 12px;
                }

                #ip-pricing .ip-price-quote {
                    padding: 15px 0 13px;
                }

                #ip-pricing .ip-price-amount {
                    gap: 4px;
                    font-size: 23px;
                    letter-spacing: -0.5px;
                }

                #ip-pricing .ip-price-amount span:first-child {
                    font-size: 13px;
                }

                #ip-pricing .ip-price-detail {
                    font-size: 12px;
                }
            }

            @media (prefers-reduced-motion: reduce) {
                #ip-pricing .ip-pricing-calculate {
                    transition: none;
                }
            }
        
/* showcase-layout */

            /* Каталог и стоимость слева; портфолио в правой колонке. */
            #ip-showcase {
                display: grid;
                grid-template-columns: minmax(0, 1fr) 258px;
                align-items: start;
                gap: 24px;
                margin-top: 34px;
            }

            #ip-showcase,
            #ip-showcase * {
                box-sizing: border-box;
            }

            #ip-showcase .ip-showcase-main {
                min-width: 0;
                container-name: ip-showcase-main;
                container-type: inline-size;
            }

            #ip-showcase #ip-catalog {
                padding-top: 0;
            }

            @media (max-width: 1100px) {
                #ip-showcase {
                    grid-template-columns: minmax(0, 1fr) 226px;
                    gap: 20px;
                }
            }

            @media (max-width: 760px) {
                #ip-showcase {
                    display: block;
                    margin-top: 25px;
                }

                /* На телефоне этот же блок переносится сразу после стоимости. */
                #ip-showcase #sidebar.ip-sidebar-portfolio {
                    position: static;
                    top: auto;
                    display: block;
                    min-width: 0;
                    min-height: 0;
                    max-height: none;
                    margin-top: 32px;
                    padding-top: 27px;
                    border-top: 1px solid #e0e4e9;
                    overflow: visible;
                }

                #ip-showcase .ip-sidebar-heading h3 {
                    font-size: 24px;
                }

                #ip-showcase .ip-sidebar-intro {
                    font-size: 13px;
                }

                #ip-showcase .ip-sidebar-grid {
                    grid-template-columns: repeat(2, minmax(0, 1fr));
                    gap: 10px;
                }

                #ip-showcase .ip-sidebar-work:nth-child(n + 5) {
                    display: none;
                }

                #ip-showcase .ip-sidebar-work__copy {
                    flex: 1;
                    gap: 6px;
                    padding: 10px 11px 12px;
                }

                #ip-showcase .ip-sidebar-work__title {
                    font-size: 14px;
                }

                #ip-showcase .ip-sidebar-work__action {
                    margin-top: auto;
                }
            }

            /* Учитываем ширину основной колонки, когда рядом остаётся портфолио. */
            @container ip-showcase-main (max-width: 660px) {
                #ip-catalog .ip-catalog-head {
                    flex-wrap: wrap;
                    gap: 14px;
                }

                #ip-catalog .ip-catalog-heading {
                    flex-basis: 100%;
                }

                #ip-pricing .ip-pricing-head {
                    flex-direction: column;
                    align-items: flex-start;
                    gap: 16px;
                }

                #ip-pricing .ip-pricing-footer {
                    grid-template-columns: minmax(0, 1fr);
                    gap: 17px;
                }

                #ip-pricing .ip-pricing-actions {
                    min-width: 0;
                }
            }
        
/* all-sections */

            /* Общий ритм перенесённых секций. Все правила ограничены новой главной. */
            .ip-home .ip-section {
                min-width: 0;
                margin: 52px 0 0;
                scroll-margin-top: calc(var(--an-header-height, 76px) + 20px);
            }

            .ip-home .ip-section-head {
                display: flex;
                align-items: flex-end;
                justify-content: space-between;
                gap: 20px;
                margin-bottom: 22px;
            }

            .ip-home .ip-section-head > div {
                min-width: 0;
            }

            .ip-home .ip-eyebrow {
                margin: 0 0 8px;
                color: #75808e;
                font-size: 11px;
                font-weight: 500;
                line-height: 1.5;
                letter-spacing: 0.09em;
                text-transform: uppercase;
            }

            .ip-home .ip-section-title {
                margin: 0;
                color: #29313c;
                font-family: var(--font);
                font-size: 27px;
                font-weight: 500;
                line-height: 1.2;
                letter-spacing: -0.025em;
                text-wrap: balance;
            }

            .ip-home .ip-section-intro {
                max-width: 62ch;
                margin: 10px 0 0;
                color: #747d88;
                font-size: 14px;
                font-weight: 400;
                line-height: 1.65;
            }

            .ip-home .ip-section :is(h3, h4) {
                font-family: var(--font);
                font-weight: 500;
            }

            .ip-home .ip-section :is(button, input, select, textarea) {
                max-width: 100%;
                font-family: var(--font);
            }

            .ip-home :is(.ip-button, .ip-button-secondary) {
                display: inline-flex;
                align-items: center;
                justify-content: center;
                gap: 8px;
                min-height: 44px;
                padding: 11px 18px;
                border: 1px solid transparent;
                border-radius: 11px;
                font-family: var(--font);
                font-size: 13px;
                font-weight: 500;
                line-height: 1.45;
                text-align: center;
                text-decoration: none;
                cursor: pointer;
                transition: background 160ms ease, border-color 160ms ease, box-shadow 160ms ease;
            }

            .ip-home .ip-button {
                border-color: #1456ce;
                background: linear-gradient(135deg, #3279ed, #1558d7 65%, #184cad);
                color: #fff;
                box-shadow: 0 4px 12px rgb(25 88 199 / 12%);
            }

            .ip-home .ip-button:hover {
                background: linear-gradient(135deg, #2269df, #104fc7 65%, #144293);
                box-shadow: 0 6px 16px rgb(25 88 199 / 18%);
            }

            .ip-home .ip-button-secondary {
                border-color: #e0e5ed;
                background: #fff;
                color: #344257;
            }

            .ip-home .ip-button-secondary:hover {
                border-color: #a9c5f0;
                background: #f5f8ff;
            }

            .ip-home .ip-round-button {
                display: inline-grid;
                place-items: center;
                flex: 0 0 44px;
                width: 44px;
                height: 44px;
                padding: 10px;
                border: 1px solid #e0e5ed;
                border-radius: 50%;
                background: #fff;
                color: #365886;
                cursor: pointer;
            }

            .ip-home .ip-round-button:hover:not(:disabled) {
                border-color: #a9c5f0;
                background: #f4f8ff;
            }

            .ip-home .ip-round-button:disabled {
                opacity: 0.35;
                cursor: default;
            }

            .ip-home .ip-round-button svg {
                width: 20px;
                height: 20px;
                fill: none;
                stroke: currentColor;
                stroke-width: 1.6;
                stroke-linecap: round;
                stroke-linejoin: round;
            }

            .ip-home .ip-link {
                color: #2667c5;
                font-size: 13px;
                font-weight: 500;
                text-decoration: underline;
                text-decoration-color: #c9d9ee;
                text-underline-offset: 4px;
            }

            .ip-home .ip-link:hover {
                color: #154997;
                text-decoration-color: currentColor;
            }

            .ip-home :is(.ip-section, .ip-footer, .ip-promo)
                :is(button, a, input, select, textarea, summary):focus-visible {
                outline: 3px solid #246bd7;
                outline-offset: 4px;
            }

            .ip-home .ip-trust-agreement {
                display: flex;
                align-items: flex-start;
                gap: 9px;
                margin: 18px 0 0;
                padding-top: 14px;
                border-top: 1px solid #e9edf3;
                color: #77808b;
                font-size: 12px;
                font-weight: 400;
                line-height: 1.6;
            }

            .ip-home .ip-trust-agreement svg {
                flex: 0 0 17px;
                width: 17px;
                height: 17px;
                margin-top: 2px;
                fill: none;
                stroke: #527cae;
                stroke-width: 1.6;
                stroke-linecap: round;
                stroke-linejoin: round;
            }

            .ip-home .ip-promo {
                display: flex;
                align-items: center;
                justify-content: space-between;
                gap: 12px 20px;
                margin: 16px 0 0;
                padding: 11px 15px;
                border: 1px solid #e6edf7;
                border-radius: 12px;
                background: #f6f8fc;
                color: #48566b;
                font-size: 13px;
                line-height: 1.5;
            }

            .ip-home .ip-promo p {
                display: flex;
                align-items: center;
                gap: 12px;
                margin: 0;
            }

            .ip-home .ip-promo-badge {
                display: inline-flex;
                align-items: center;
                flex: 0 0 auto;
                padding: 4px 9px;
                border-radius: 7px;
                background: #e8f0ff;
                color: #2463bd;
                font-size: 12px;
                font-weight: 500;
            }

            .ip-home .ip-promo a {
                display: inline-flex;
                align-items: center;
                min-height: 44px;
                flex: 0 0 auto;
                color: #285fa7;
                text-decoration: underline;
                text-decoration-color: #c9d9ee;
                text-underline-offset: 4px;
            }

            @container ip-showcase-main (max-width: 620px) {
                .ip-home .ip-section-head {
                    align-items: flex-start;
                    flex-wrap: wrap;
                    gap: 14px;
                }

                .ip-home .ip-section-title {
                    font-size: 24px;
                }
            }

            @media (max-width: 760px) {
                .ip-home .ip-section {
                    margin-top: 40px;
                }

                .ip-home .ip-section-head {
                    gap: 14px;
                    margin-bottom: 18px;
                }

                .ip-home .ip-section-title {
                    font-size: 24px;
                }

                .ip-home .ip-section-intro {
                    font-size: 13px;
                }

                .ip-home .ip-promo {
                    margin-top: 10px;
                    padding: 10px 12px;
                    font-size: 12px;
                }

                .ip-home .ip-promo p {
                    gap: 8px;
                }

                .ip-home .ip-promo a {
                    max-width: 84px;
                    font-size: 11px;
                }
            }

            @media (prefers-reduced-motion: reduce) {
                .ip-home :is(.ip-button, .ip-button-secondary) {
                    transition: none;
                }
            }
        
/* calculator */

            /* Автономный калькулятор. Все правила ограничены его секцией. */
            #ip-calculator {
                container: ip-calculator / inline-size;
                scroll-margin-top: calc(var(--an-header-height, 76px) + 20px);
                color: #28354a;
            }
            #ip-calculator [hidden] {
                display: none !important;
            }

            #ip-calculator .ip-calc-heading {
                display: grid;
                grid-template-columns: 1fr 0.8fr;
                align-items: end;
                gap: 24px;
                margin-bottom: 22px;
            }
            #ip-calculator .ip-calc-eyebrow {
                display: block;
                margin-bottom: 8px;
                color: #66758a;
                font-size: 12px;
                letter-spacing: 0.06em;
                text-transform: uppercase;
            }
            #ip-calculator h2 {
                margin: 0;
                font-size: 27px;
                font-weight: 500;
                line-height: 1.25;
            }

            #ip-calculator .ip-calc-heading p {
                margin: 0;
                color: #6a7688;
                font-size: 14px;
                line-height: 1.6;
            }

            #ip-calculator .ip-calc-body {
                padding: 22px;
                border: 1px solid #e3e8f0;
                border-radius: 16px;
                background: #f7f9fc;
            }
            #ip-calculator button, #ip-calculator input, #ip-calculator select, #ip-calculator textarea {
                font: inherit;
            }

            #ip-calculator button, #ip-calculator select, #ip-calculator summary {
                cursor: pointer;
            }

            #ip-calculator button {
                text-transform: none;
            }

            #ip-calculator button:focus-visible, #ip-calculator a:focus-visible,
            #ip-calculator summary:focus-visible, #ip-calculator input:focus-visible,
            #ip-calculator select:focus-visible, #ip-calculator textarea:focus-visible {
                outline: 2px solid #3279d9;
                outline-offset: 3px;
            }

            #ip-calculator .ip-calc-guide {
                margin: 0 0 22px;
                padding: 0 0 18px;
                border-bottom: 1px solid #e1e7f0;
            }

            #ip-calculator .ip-calc-guide > summary {
                position: relative;
                list-style: none;
                padding: 12px 42px 12px 14px;
                border: 1px solid #cdddf1;
                border-radius: 9px;
                background: #eef5ff;
                color: #205c9e;
            }

            #ip-calculator .ip-calc-guide > summary::-webkit-details-marker {
                display: none;
            }

            #ip-calculator .ip-calc-guide > summary::after {
                content: "+";
                position: absolute;
                right: 16px;
                top: 50%;
                transform: translateY(-50%);
                font-size: 24px;
                font-weight: 400;
            }

            #ip-calculator .ip-calc-guide[open] > summary::after {
                content: "−";
            }

            #ip-calculator .ip-calc-guide > summary span {
                display: block;
                font-size: 14px;
                font-weight: 500;
                line-height: 1.4;
            }

            #ip-calculator .ip-calc-guide > summary small {
                display: block;
                margin-top: 3px;
                color: #6e85a3;
                font-size: 12px;
                line-height: 1.4;
            }

            #ip-calculator .ip-calc-guide-fields {
                display: grid;
                grid-template-columns: minmax(0, 1fr) minmax(0, 1.5fr);
                gap: 12px;
                margin-top: 18px;
            }

            #ip-calculator .ip-calc-guide-result {
                margin-top: 16px;
                padding: 16px;
                border-left: 2px solid #80a9dc;
                background: #fff;
            }

            #ip-calculator .ip-calc-guide-result h3 {
                margin: 0;
                color: #31465f;
                font-size: 16px;
                font-weight: 500;
                line-height: 1.4;
            }

            #ip-calculator .ip-calc-guide-result > p {
                margin: 8px 0 0;
                font-size: 13px;
                line-height: 1.6;
            }

            #ip-calculator .ip-calc-guide-result .ip-calc-start {
                margin-top: 12px;
            }



            #ip-calculator .ip-calc-field {
                display: flex;
                flex-direction: column;
                min-width: 0;
                gap: 8px;
            }

            #ip-calculator .ip-calc-field > span {
                color: #53637a;
                font-size: 13px;
                line-height: 1.3;
            }

            #ip-calculator .ip-calc-field input, #ip-calculator .ip-calc-field select, #ip-calculator textarea {
                width: 100%;
                box-sizing: border-box;
                min-height: 46px;
                padding: 11px 12px;
                border: 1px solid #d4deeb;
                border-radius: 8px;
                color: #29394e;
                background: #fff;
                font-size: 16px;
                font-weight: 400;
                line-height: 1.35;
            }
            #ip-calculator .ip-calc-field input::placeholder {
                color: #97a1af;
            }

            #ip-calculator [aria-invalid="true"] {
                border-color: #bf4f4f;
            }

            #ip-calculator .ip-calc-letter-inputs, #ip-calculator .ip-calc-box-inputs {
                display: grid;
                grid-template-columns: minmax(0, 2fr) minmax(0, 1fr) minmax(0, 1fr);
                gap: 12px;
            }





            #ip-calculator .ip-calc-hint {
                margin: 10px 0 0;
                color: #748095;
                font-size: 12px;
                font-weight: 400;
                line-height: 1.55;
            }

            #ip-calculator .ip-calc-start {
                display: flex;
                align-items: center;
                flex-wrap: wrap;
                gap: 12px 20px;
                margin-top: 22px;
            }

            #ip-calculator .ip-calc-primary {
                display: inline-flex;
                align-items: center;
                justify-content: center;
                min-height: 46px;
                padding: 11px 19px;
                border: 1px solid transparent;
                border-radius: 9px;
                background: linear-gradient(115deg, #1c75dd, #0753b8);
                color: #fff;
                font-size: 14px;
                font-weight: 500;
                line-height: 1.4;
                text-decoration: none;
            }
            #ip-calculator .ip-calc-primary:hover {
                background: linear-gradient(115deg, #1265c9, #064ba8);
            }

            #ip-calculator .ip-calc-help {
                display: inline-flex;
                align-items: center;
                min-height: 44px;
                color: #5b6a80;
                font-size: 13px;
                text-decoration: underline;
                text-underline-offset: 4px;
            }

            #ip-calculator .ip-calc-error {
                margin: 16px 0 0;
                padding: 11px 14px;
                border-left: 2px solid #bf6a57;
                border-radius: 0 6px 6px 0;
                background: #fff3ee;
                color: #8f4736;
                font-size: 14px;
                line-height: 1.55;
            }

            @container ip-calculator (max-width: 760px) {
                #ip-calculator .ip-calc-heading {
                    grid-template-columns: 1fr;
                    gap: 12px;
                }



            }
            @container ip-calculator (max-width: 500px) {
                #ip-calculator .ip-calc-body {
                    padding: 15px;
                    border-radius: 12px;
                }

                #ip-calculator h2 {
                    font-size: 24px;
                }



                #ip-calculator .ip-calc-letter-inputs, #ip-calculator .ip-calc-box-inputs {
                    grid-template-columns: repeat(2, minmax(0, 1fr));
                }

                #ip-calculator .ip-calc-field--text {
                    grid-column: 1 / -1;
                }

                #ip-calculator .ip-calc-guide-fields {
                    grid-template-columns: 1fr;
                }

                #ip-calculator .ip-calc-summary {
                    align-items: start;
                    flex-direction: column;
                    gap: 10px;
                }

                #ip-calculator .ip-calc-total {
                    font-size: 30px;
                }

                #ip-calculator .ip-calc-start, #ip-calculator .ip-calc-finish {
                    gap: 6px 16px;
                }

                #ip-calculator .ip-calc-primary {
                    flex: 1 1 auto;
                }

            }
            /* Табличная часть в стиле документа: строки текста считаются отдельно. */
            #ip-calculator .ip-calc-lines-table-wrap {
                width: 100%;
                overflow-x: auto;
                border: 1px solid #cfd8e3;
                border-radius: 8px;
                background: #fff;
            }

            #ip-calculator .ip-calc-lines-table {
                width: 100%;
                min-width: 650px;
                border-collapse: collapse;
                table-layout: fixed;
                color: #27364a;
                font-size: 13px;
            }

            #ip-calculator .ip-calc-lines-table th {
                height: 38px;
                padding: 8px 10px;
                border-right: 1px solid #dce3eb;
                border-bottom: 1px solid #cfd8e3;
                background: #eef2f6;
                color: #45566b;
                font-weight: 500;
                line-height: 1.25;
                text-align: left;
                white-space: nowrap;
            }

            #ip-calculator .ip-calc-lines-table td {
                height: 46px;
                padding: 0;
                border-right: 1px solid #e2e7ed;
                border-bottom: 1px solid #e2e7ed;
                background: #fff;
                vertical-align: middle;
            }

            #ip-calculator .ip-calc-lines-table tr:last-child td { border-bottom: 0; }
            #ip-calculator .ip-calc-lines-table :is(th, td):last-child { border-right: 0; }

            @keyframes ip-calc-row-added-highlight {
                0% { background-color: #dcecff; }
                100% { background-color: #fff; }
            }

            #ip-calculator .ip-calc-lines-table tbody tr.ip-calc-row-added-highlight > td {
                animation: ip-calc-row-added-highlight 2s ease-out;
            }

            @media (prefers-reduced-motion: reduce) {
                #ip-calculator .ip-calc-lines-table tbody tr.ip-calc-row-added-highlight > td {
                    animation-duration: 0.01ms;
                }
            }


            #ip-calculator .ip-calc-col-number { width: 44px; text-align: center !important; font-variant-numeric: tabular-nums; }
            #ip-calculator .ip-calc-col-height { width: 150px; }
            #ip-calculator .ip-calc-col-cost { width: 145px; }


            #ip-calculator .ip-calc-lines-table input[type="text"] {
                width: 100%;
                height: 45px;
                min-height: 45px;
                margin: 0;
                padding: 9px 10px;
                border: 0;
                border-radius: 0;
                background: transparent;
                color: #27364a;
                font-size: 14px;
                outline: 0;
            }

            #ip-calculator .ip-calc-lines-table input[type="text"]:focus {
                background: #f3f7fd;
                box-shadow: inset 0 0 0 2px #6d9bd8;
            }

            #ip-calculator .ip-calc-height-cell {
                display: grid;
                grid-template-columns: minmax(0,1fr) auto;
                align-items: center;
                height: 45px;
            }

            #ip-calculator .ip-calc-height-cell span {
                padding-right: 10px;
                color: #738094;
                font-size: 12px;
            }

            #ip-calculator .ip-calc-box-size-fields {
                display: grid;
                grid-template-columns: minmax(0, 1fr) 12px minmax(0, 1fr);
                align-items: center;
                gap: 4px;
                min-width: 0;
                min-height: 45px;
                padding-inline: 5px;
            }

            #ip-calculator .ip-calc-box-size-fields input {
                width: 100%;
                min-width: 0;
                height: 34px;
                padding: 5px;
                border: 1px solid #d4deeb;
                border-radius: 6px;
                color: #29394e;
                background: #fff;
                font: 400 12px/1.2 var(--font, Arial, sans-serif);
            }

            #ip-calculator .ip-calc-substrate-size-fields {
                position: relative;
            }

            /* Единицы измерения отображаются внутри всех полей размеров, но не входят в значение input. */
            #ip-calculator .ip-calc-box-size-fields .ip-calc-size-input-wrap {
                position: relative;
                min-width: 0;
            }

            #ip-calculator .ip-calc-box-size-fields .ip-calc-size-input-wrap input {
                padding-right: 24px;
            }

            #ip-calculator .ip-calc-box-size-fields .ip-calc-size-unit {
                position: absolute;
                top: 50%;
                right: 6px;
                transform: translateY(-50%);
                color: #738094;
                font-size: 10px;
                opacity: 0;
                pointer-events: none;
                transition: opacity 120ms ease;
            }

            #ip-calculator .ip-calc-box-size-fields .ip-calc-size-input-wrap input:not(:placeholder-shown) + .ip-calc-size-unit {
                opacity: 1;
            }

            #ip-calculator .ip-calc-box-size-fields > span {
                padding: 0;
                color: #738094;
                text-align: center;
            }

            #ip-calculator .ip-calc-measure-empty,
            #ip-calculator .ip-calc-measure-na {
                display: block;
                padding-inline: 12px;
                color: #738094;
                font-size: 12px;
            }

            #ip-calculator .ip-calc-frame-quantity {
                padding: 6px 8px;
                color: #53657d;
                font-size: 12px;
            }

            #ip-calculator .ip-calc-frame-quantity strong {
                color: #27364a;
                font-weight: 600;
                font-variant-numeric: tabular-nums;
            }

            #ip-calculator .ip-calc-frame-quantity small {
                display: block;
                margin-top: 2px;
                color: #8793a5;
                font-size: 10px;
                line-height: 1.2;
            }

            #ip-calculator .ip-calc-line-cost {
                padding: 0 12px !important;
                color: #174f91;
                font-weight: 500;
                font-variant-numeric: tabular-nums;
                white-space: nowrap;
            }

            #ip-calculator .ip-calc-line-cost--removable {
                padding: 0 5px !important;
            }

            #ip-calculator .ip-calc-line-cost-actions {
                display: flex;
                align-items: center;
                justify-content: space-between;
                gap: 4px;
                min-height: 45px;
            }

            #ip-calculator .ip-calc-row-remove {
                display: inline-flex;
                flex: 0 0 38px;
                align-items: center;
                justify-content: center;
                width: 38px;
                min-width: 38px;
                min-height: 34px;
                padding: 2px 0;
                border: 0;
                border-radius: 4px;
                background: transparent;
                color: #c62828;
                font: 400 9px/1.1 var(--font, Arial, sans-serif);
                text-align: center;
                white-space: normal;
                cursor: pointer;
            }

            #ip-calculator .ip-calc-row-remove:hover {
                background: #fee2e2;
                color: #b91c1c;
            }

            #ip-calculator .ip-calc-row-remove:focus-visible {
                outline: 2px solid rgb(198 40 40 / 35%);
                outline-offset: 2px;
            }

            #ip-calculator .ip-calc-table-stage {
                position: relative;
                min-width: 0;
                padding-bottom: 48px;
            }

            #ip-calculator .ip-calc-add-row-float {
                position: absolute;
                z-index: 5;
                right: 12px;
                bottom: 4px;
                display: flex;
                align-items: center;
                justify-content: flex-end;
                gap: 8px;
                max-width: calc(100% - 24px);
                pointer-events: none;
            }

            #ip-calculator .ip-calc-add-row-float > * {
                pointer-events: auto;
            }

            #ip-calculator .ip-calc-row-limit-note {
                display: inline-flex;
                align-items: center;
                min-height: 36px;
                margin: 0;
                padding: 7px 10px;
                border: 1px solid #dce4ef;
                border-radius: 999px;
                background: rgb(255 255 255 / 96%);
                color: #68778b;
                box-shadow: 0 6px 18px rgb(29 63 105 / 10%);
                font-size: 11px;
                line-height: 1.35;
            }

            #ip-calculator .ip-calc-row-limit-note[hidden] {
                display: none !important;
            }


            #ip-calculator .ip-calc-total-preview {
                display: grid;
                grid-template-columns: minmax(0, 1fr) minmax(250px, .8fr);
                align-items: end;
                gap: 22px;
                margin: 14px 0 18px;
                padding: 18px 20px;
                border: 1px solid #dce4ef;
                border-radius: 10px;
                background: #fff;
            }

            #ip-calculator .ip-calc-total-preview[hidden] {
                display: none;
            }

            #ip-calculator .ip-calc-total-preview-copy p {
                margin: 0;
                color: #34465f;
                font-size: 14px;
                line-height: 1.45;
            }

            #ip-calculator .ip-calc-total-preview-copy strong {
                display: block;
                margin-top: 9px;
                color: #172d4a;
                font-size: 15px;
                font-weight: 700;
                line-height: 1.45;
            }

            #ip-calculator .ip-calc-total-preview-breakdown {
                display: grid;
                gap: 7px;
                margin: 0;
                color: #34465f;
                font-size: 13px;
            }

            #ip-calculator .ip-calc-total-preview-breakdown > div {
                display: flex;
                justify-content: space-between;
                gap: 16px;
            }

            #ip-calculator .ip-calc-total-preview-breakdown dt {
                font-weight: 500;
            }

            #ip-calculator .ip-calc-total-preview-breakdown dd {
                margin: 0;
                font-weight: 600;
                text-align: right;
                white-space: nowrap;
            }

            #ip-calculator .ip-calc-total-preview-payable {
                margin-top: 4px;
                padding-top: 10px;
                border-top: 1px solid #dce4ef;
                color: #155bb5;
                font-size: 16px;
                font-weight: 700;
            }

            #ip-calculator .ip-calc-total-preview-payable dt,
            #ip-calculator .ip-calc-total-preview-payable dd {
                font-weight: 700;
            }

            @container ip-calculator (max-width: 650px) {
                #ip-calculator .ip-calc-total-preview {
                    grid-template-columns: minmax(0, 1fr);
                    gap: 14px;
                    padding: 15px;
                }

            }

            #ip-calculator .ip-calc-lines-table {
                min-width: 760px;
            }

            #ip-calculator .ip-calc-col-height { width: 180px; }
            #ip-calculator .ip-calc-col-cost { width: 122px; }

            #ip-calculator .ip-calc-name-cell {
                padding: 0 !important;
            }

            #ip-calculator .ip-calc-name-cell-inner {
                display: grid;
                grid-template-columns: minmax(0, 1fr);
                align-items: center;
                gap: 7px;
                min-height: 45px;
                padding: 5px 7px 5px 10px;
            }

            #ip-calculator .ip-calc-construction-button {
                justify-content: space-between;
                width: fit-content;
                max-width: 100%;
                min-height: 30px;
                padding: 6px 9px;
                font-size: 12px;
            }

            #ip-calculator .ip-calc-installation-fields {
                display: grid;
                grid-template-columns: auto minmax(150px, 1fr);
                align-items: center;
                gap: 12px;
                min-height: 45px;
                padding: 5px 10px;
            }

            #ip-calculator .ip-calc-installation-fields strong {
                color: #28354a;
                font-size: 13px;
                font-weight: 700;
                white-space: nowrap;
            }

            #ip-calculator .ip-calc-grouping-control {
                display: flex;
                align-items: center;
                gap: 10px;
                min-width: 0;
            }

            #ip-calculator .ip-calc-grouping-control .ip-calc-grouping-edit {
                margin-left: auto;
                margin-right: 28px;
            }

            #ip-calculator .ip-calc-grouping-summary {
                min-width: 0;
                color: #27364a;
                font-size: 12px;
                font-weight: 700;
                line-height: 1.25;
            }

            #ip-calculator .ip-calc-grouping-edit {
                flex: 0 0 auto;
                padding: 4px 0;
                border: 0;
                background: transparent;
                color: #1767c8;
                font: 400 11px/1.2 var(--font, Arial, sans-serif);
                text-decoration: underline;
                cursor: pointer;
            }

            #ip-calculator .ip-calc-grouping-edit:disabled {
                color: #8793a5;
                cursor: not-allowed;
            }

            #ip-calculator .ip-calc-grouping-control .ip-calc-line-select {
                flex: 1 1 auto;
                width: auto;
            }

            #ip-calculator .ip-calc-installation-address {
                display: grid;
                grid-template-columns: auto minmax(0, 1fr);
                align-items: center;
                gap: 7px;
                color: #52647c;
                font-size: 12px;
            }

            #ip-calculator .ip-calc-installation-address input {
                width: 100%;
                min-width: 0;
                height: 34px;
                padding: 6px 9px;
                border: 1px solid #cbd9ea;
                border-radius: 7px;
                background: #fff;
                color: #27364a;
                font: 400 12px/1.3 var(--font, Arial, sans-serif);
            }
            #ip-calculator .ip-calc-installation-input-wrap {
                display: block;
                min-width: 0;
                width: 100%;
            }

            #ip-calculator .ip-calc-installation-input-frame {
                position: relative;
                display: block;
                min-width: 0;
                width: 100%;
            }

            #ip-calculator .ip-calc-installation-address input {
                padding-right: 44px;
            }

            #ip-calculator .ip-calc-installation-save {
                position: absolute;
                z-index: 1;
                top: 50%;
                right: 6px;
                transform: translateY(-50%);
            }


            #ip-calculator .ip-calc-letter-save-hint {
                display: block;
                margin-top: 4px;
                color: #8a5a00;
                font-size: 11px;
                line-height: 1.3;
            }
            #ip-calculator .ip-calc-add-row {
                display: inline-flex;
                align-items: center;
                justify-content: center;
                gap: 8px;
                min-height: 40px;
                margin: 0;
                padding: 7px 14px 7px 8px;
                border: 1px solid #b9cdea;
                border-radius: 999px;
                background: rgb(255 255 255 / 97%);
                color: #105eb9;
                box-shadow: 0 8px 22px rgb(20 75 139 / 16%);
                font: 600 13px/1.3 var(--font, Arial, sans-serif);
                white-space: nowrap;
                cursor: pointer;
                transition: transform 150ms ease, border-color 150ms ease, box-shadow 150ms ease, background 150ms ease;
            }

            #ip-calculator .ip-calc-add-row::before {
                content: "+";
                display: grid;
                flex: 0 0 25px;
                place-items: center;
                width: 25px;
                height: 25px;
                border-radius: 50%;
                background: #1267c7;
                color: #fff;
                font: 500 20px/1 Arial, sans-serif;
            }

            #ip-calculator .ip-calc-add-row:hover {
                border-color: #7fa8dc;
                background: #f7faff;
                box-shadow: 0 10px 26px rgb(20 75 139 / 21%);
                transform: translateY(-1px);
            }

            #ip-calculator .ip-calc-add-row:active {
                box-shadow: 0 4px 12px rgb(20 75 139 / 15%);
                transform: translateY(0);
            }

            #ip-calculator .ip-calc-add-row:disabled {
                border-color: #d9e0e8;
                background: #f4f6f8;
                color: #8592a3;
                box-shadow: none;
                cursor: not-allowed;
                transform: none;
            }

            #ip-calculator .ip-calc-add-row:disabled::before {
                background: #aab4c1;
            }

            #ip-calculator .ip-calc-add-row:disabled:hover {
                border-color: #d9e0e8;
                background: #f4f6f8;
                box-shadow: none;
                transform: none;
            }

            #ip-calculator .ip-calc-line-fields {
                min-width: 0;
            }

            #ip-calculator .ip-calc-line-fields--letters {
                display: grid;
                grid-template-columns: minmax(0, 1fr) auto;
                align-items: center;
                gap: 8px;
            }

            #ip-calculator .ip-calc-line-fields--choice {
                display: flex;
                align-items: center;
                gap: 8px;
            }

            #ip-calculator .ip-calc-line-fields--choice > select {
                flex: 1;
                width: auto;
                min-width: 0;
            }

            #ip-calculator .ip-calc-row-reset {
                display: grid;
                flex: none;
                place-items: center;
                width: 25px;
                height: 25px;
                padding: 0;
                border: 1px solid #efb7b7;
                border-radius: 50%;
                background: #fff6f6;
                color: #c62828;
                font: 700 20px/1 Arial, sans-serif;
                cursor: pointer;
            }

            #ip-calculator .ip-calc-row-reset:hover {
                border-color: #dc2626;
                background: #fee2e2;
                color: #b91c1c;
            }

            #ip-calculator .ip-calc-row-reset:focus-visible {
                outline: 2px solid rgb(198 40 40 / 35%);
                outline-offset: 2px;
            }
            #ip-calculator .ip-calc-line-select {
                width: 100%;
                min-width: 0;
                min-height: 36px;
                padding: 6px 8px;
                border: 1px solid #cbd9ea;
                border-radius: 7px;
                background: #fff;
                color: #27364a;
                font: 500 12px/1.3 var(--font, Arial, sans-serif);
            }

            #ip-calculator .ip-calc-name-input-wrap {
                display: block;
                min-width: 0;
            }

            #ip-calculator .ip-calc-name-input-frame {
                position: relative;
                min-width: 0;
            }

            #ip-calculator .ip-calc-name-input-wrap input[data-ip-letter-name],
            #ip-calculator .ip-calc-name-input-wrap .ip-calc-name-summary {
                width: 100%;
                padding-right: 44px;
            }

            #ip-calculator .ip-calc-name-input-frame .ip-calc-lighting-check {
                position: absolute;
                z-index: 1;
                top: 50%;
                right: 6px;
                transform: translateY(-50%);
            }
            #ip-calculator .ip-calc-name-cell input[data-ip-letter-name] {
                min-width: 0;
                font-weight: 700;
                text-transform: uppercase;
            }

            #ip-calculator .ip-calc-name-cell input[data-ip-letter-name]::placeholder {
                font-weight: 400;
                text-transform: none;
            }

            #ip-calculator .ip-calc-name-actions {
                display: flex;
                align-items: center;
                justify-content: flex-end;
                gap: 6px;
                flex: none;
            }

            #ip-calculator .ip-calc-lighting-button {
                display: inline-flex;
                align-items: center;
                justify-content: center;
                min-height: 33px;
                margin: 0;
                padding: 7px 10px;
                border: 1px solid #cbd9ea;
                border-radius: 7px;
                background: #f4f8ff;
                color: #164e92;
                font: 500 12px/1.3 var(--font, Arial, sans-serif);
                white-space: nowrap;
                cursor: pointer;
            }

            #ip-calculator .ip-calc-lighting-button:hover {
                border-color: #91b1dd;
                background: #eaf3ff;
            }

            #ip-calculator .ip-calc-lighting-check {
                display: grid;
                flex: none;
                place-items: center;
                width: 30px;
                height: 30px;
                padding: 0;
                border: 0;
                border-radius: 8px;
                background: #eaf7ef;
                color: #168342;
                cursor: pointer;
            }

            #ip-calculator .ip-calc-lighting-check:hover {
                background: #d8f0e1;
            }

            #ip-calculator .ip-calc-lighting-check:focus-visible {
                outline: 2px solid rgb(22 131 66 / 35%);
                outline-offset: 2px;
            }

            #ip-calculator .ip-calc-lighting-check svg {
                width: 17px;
                height: 17px;
                fill: none;
                stroke: currentColor;
                stroke-width: 2;
                stroke-linecap: round;
                stroke-linejoin: round;
            }

            #ip-calculator .ip-calc-lighting-menu {
                display: grid;
                flex: none;
                place-items: center;
                width: 34px;
                height: 34px;
                min-height: 34px;
                margin: 0;
                padding: 0;
                border: 1px solid #d5e0ed;
                border-radius: 8px;
                background: #fff;
                color: #31577f;
                cursor: pointer;
            }

            #ip-calculator .ip-calc-lighting-menu:hover {
                border-color: #91b1dd;
                background: #edf5ff;
                color: #164e92;
            }

            #ip-calculator .ip-calc-lighting-menu svg {
                width: 17px;
                height: 17px;
                fill: none;
                stroke: currentColor;
                stroke-width: 1.8;
                stroke-linecap: round;
            }

            #ip-calculator .ip-calc-name-summary {
                display: block;
                min-width: 0;
                padding: 8px 10px;
                border: 0;
                border-radius: 0;
                background: transparent;
                color: #27364a;
                font: 400 13px/1.45 var(--font, Arial, sans-serif);
                text-align: left;
                overflow-wrap: anywhere;
                cursor: text;
            }

            #ip-calculator .ip-calc-name-summary:hover {
                background: #f3f7fd;
            }

            #ip-calculator .ip-calc-name-summary strong {
                font-weight: 700;
                text-transform: uppercase;
            }


            .ip-home .ip-letter-type-dialog {
                position: fixed;
                inset: 0;
                width: 100%;
                height: 100%;
                max-width: none;
                max-height: none;
                margin: 0;
                padding: 18px;
                border: 0;
                background: transparent;
                color: #1f2a35;
            }

            .ip-home .ip-letter-type-dialog[open] {
                display: grid;
                place-items: center;
            }

            .ip-letter-type-dialog::backdrop {
                background: rgb(8 18 34 / 64%);
                backdrop-filter: blur(3px);
            }

            .ip-letter-type-card {
                position: relative;
                width: min(590px, 100%);
                max-height: calc(100dvh - 36px);
                overflow: auto;
                border: 1px solid #dbe4ef;
                border-radius: 18px;
                background: #fff;
                box-shadow: 0 28px 90px rgb(7 21 42 / 32%);
            }

            .ip-letter-type-head {
                position: relative;
                isolation: isolate;
                overflow: hidden;
                padding: 24px 72px 22px 24px;
                border-radius: 17px 17px 0 0;
                background:
                    radial-gradient(circle at 12% 8%, rgb(255 255 255 / 12%), transparent 28%),
                    linear-gradient(118deg, #0b56c7 0%, #063b96 58%, #052b70 100%);
                color: #fff;
            }

            .ip-letter-type-head::after {
                content: "";
                position: absolute;
                z-index: -1;
                top: -62%;
                right: -10%;
                width: 34%;
                height: 225%;
                background: linear-gradient(145deg, #ef3340 0%, #d52b1e 68%, #b71f24 100%);
                transform: skewX(-18deg);
                box-shadow: -8px 0 0 rgb(255 255 255 / 94%);
            }

            .ip-letter-type-kicker {
                display: block;
                margin-bottom: 6px;
                color: #cddbf2;
                font-size: 10px;
                font-weight: 700;
                letter-spacing: .11em;
                text-transform: uppercase;
            }

            .ip-letter-type-title {
                margin: 0;
                color: #fff;
                font-size: 23px;
                font-weight: 600;
                line-height: 1.25;
                letter-spacing: -.025em;
            }

            .ip-letter-type-lead {
                max-width: 48ch;
                margin: 8px 0 0;
                color: #dfe9fb;
                font-size: 13px;
                line-height: 1.55;
            }

            .ip-home .ip-letter-type-close {
                position: absolute;
                z-index: 2;
                top: 14px;
                right: 14px;
                display: grid;
                place-items: center;
                width: 40px;
                height: 40px;
                padding: 0;
                border: 1px solid rgb(255 255 255 / 30%);
                border-radius: 11px;
                background: rgb(255 255 255 / 12%);
                color: #fff;
                font-size: 25px;
                line-height: 1;
            }

            .ip-letter-type-options {
                display: grid;
                gap: 8px;
                padding: 18px;
            }

            .ip-home .ip-letter-type-option {
                display: grid;
                grid-template-columns: 22px minmax(0, 1fr) auto;
                align-items: center;
                gap: 12px;
                width: 100%;
                min-height: 62px;
                margin: 0;
                padding: 11px 13px;
                border: 1px solid #e0e6ee;
                border-radius: 11px;
                background: #fff;
                color: #1f2a35;
                text-align: left;
                cursor: pointer;
            }

            .ip-letter-type-option:hover {
                border-color: #a9c2e5;
                background: #f6f9fe;
            }

            .ip-letter-type-option[aria-pressed="true"] {
                border-color: #6f9bd7;
                background: #edf5ff;
                box-shadow: inset 3px 0 0 #0753c9;
            }

            .ip-letter-type-radio {
                display: grid;
                place-items: center;
                width: 18px;
                height: 18px;
                border: 1.5px solid #9aabba;
                border-radius: 50%;
            }

            .ip-letter-type-option[aria-pressed="true"] .ip-letter-type-radio {
                border-color: #0753c9;
            }

            .ip-letter-type-option[aria-pressed="true"] .ip-letter-type-radio::after {
                content: "";
                width: 8px;
                height: 8px;
                border-radius: 50%;
                background: #0753c9;
            }

            .ip-letter-type-option-copy {
                min-width: 0;
            }

            .ip-letter-type-option-copy strong,
            .ip-letter-type-option-copy span {
                display: block;
            }

            .ip-letter-type-option-copy strong {
                color: #1f2a35;
                font-size: 14px;
                font-weight: 600;
                line-height: 1.35;
            }

            .ip-letter-type-option-copy span {
                margin-top: 3px;
                color: #6d7885;
                font-size: 12px;
                line-height: 1.45;
            }

            .ip-letter-type-rate {
                color: #0753c9;
                font-size: 12px;
                font-weight: 600;
                white-space: nowrap;
            }

            body.ip-letter-type-open {
                overflow: hidden;
            }

            @media (max-width: 560px) {
                .ip-home .ip-letter-type-dialog { padding: 8px; }
                .ip-letter-type-card { max-height: calc(100dvh - 16px); border-radius: 15px; }
                .ip-letter-type-head { padding: 21px 60px 19px 18px; border-radius: 14px 14px 0 0; }
                .ip-letter-type-title { font-size: 20px; }
                .ip-letter-type-options { padding: 12px; }
                .ip-home .ip-letter-type-option { grid-template-columns: 20px minmax(0, 1fr); gap: 10px; }
                .ip-letter-type-rate { grid-column: 2; }
            }

            @container ip-calculator (max-width: 500px) {
                #ip-calculator .ip-calc-table-stage {
                    padding-bottom: 46px;
                }

                #ip-calculator .ip-calc-add-row-float {
                    right: 8px;
                    max-width: calc(100% - 16px);
                }

                #ip-calculator .ip-calc-add-row {
                    min-height: 38px;
                    padding: 6px 12px 6px 7px;
                    font-size: 12px;
                }

                #ip-calculator .ip-calc-add-row::before {
                    flex-basis: 24px;
                    width: 24px;
                    height: 24px;
                    font-size: 19px;
                }

                #ip-calculator .ip-calc-row-limit-note {
                    max-width: 165px;
                    min-height: 34px;
                    padding: 6px 9px;
                    font-size: 10px;
                }
            }

            @media (prefers-reduced-motion: reduce) {
                #ip-calculator *, #ip-calculator *::before, #ip-calculator *::after {
                    transition: none !important;
                    animation: none !important;
                }

            }


            /* PDF export creates an invoice-style order document instead of a commercial proposal. */
            #ip-calculator .ip-calc-pdf-trigger {
                gap: 9px;
            }

            #ip-calculator .ip-calc-pdf-trigger svg {
                width: 18px;
                height: 18px;
                fill: none;
                stroke: currentColor;
                stroke-width: 1.7;
                stroke-linecap: round;
                stroke-linejoin: round;
            }

            .ip-home .ip-calc-pdf-dialog {
                position: fixed;
                inset: 0;
                width: 100%;
                height: 100%;
                max-width: none;
                max-height: none;
                margin: 0;
                padding: 18px;
                border: 0;
                background: transparent;
                color: #1f2a35;
            }

            .ip-home .ip-calc-pdf-dialog[open] {
                display: grid;
                place-items: center;
            }

            .ip-calc-pdf-dialog::backdrop {
                background: rgb(8 18 34 / 66%);
                backdrop-filter: blur(4px);
            }

            .ip-calc-pdf-card {
                position: relative;
                width: min(720px, 100%);
                max-height: calc(100dvh - 36px);
                overflow: auto;
                border: 1px solid #dbe4ef;
                border-radius: 20px;
                background: #fff;
                box-shadow: 0 30px 100px rgb(7 21 42 / 34%);
            }

            .ip-calc-pdf-head {
                position: relative;
                isolation: isolate;
                overflow: hidden;
                padding: 27px 76px 25px 27px;
                border-radius: 19px 19px 0 0;
                background:
                    radial-gradient(circle at 14% 8%, rgb(255 255 255 / 12%), transparent 28%),
                    linear-gradient(118deg, #0b56c7 0%, #063b96 58%, #052b70 100%);
                color: #fff;
            }

            .ip-calc-pdf-head::after {
                content: "";
                position: absolute;
                z-index: -1;
                top: -64%;
                right: -9%;
                width: 34%;
                height: 230%;
                background: linear-gradient(145deg, #ef3340 0%, #d52b1e 68%, #b71f24 100%);
                transform: skewX(-18deg);
                box-shadow: -8px 0 0 rgb(255 255 255 / 94%);
            }

            .ip-calc-pdf-kicker {
                display: block;
                margin-bottom: 7px;
                color: #cddbf2;
                font-size: 10px;
                font-weight: 700;
                letter-spacing: .11em;
                text-transform: uppercase;
            }

            .ip-calc-pdf-title {
                margin: 0;
                color: #fff;
                font-size: 25px;
                font-weight: 600;
                line-height: 1.25;
                letter-spacing: -.025em;
            }

            .ip-calc-pdf-description {
                max-width: 48ch;
                margin: 9px 0 0;
                color: #dfe9fb;
                font-size: 13px;
                line-height: 1.55;
            }

            .ip-home .ip-calc-pdf-close {
                position: absolute;
                z-index: 2;
                top: 14px;
                right: 14px;
                display: grid;
                place-items: center;
                width: 40px;
                height: 40px;
                padding: 0;
                border: 1px solid rgb(255 255 255 / 30%);
                border-radius: 11px;
                background: rgb(255 255 255 / 12%);
                color: #fff;
                font-size: 25px;
                line-height: 1;
            }

            .ip-calc-pdf-body {
                padding: 22px;
            }

            .ip-calc-pdf-summary {
                display: grid;
                grid-template-columns: minmax(0, 1.6fr) repeat(2, minmax(110px, .7fr));
                gap: 1px;
                overflow: hidden;
                border: 1px solid #dce5f0;
                border-radius: 12px;
                background: #dce5f0;
            }

            .ip-calc-pdf-summary > div {
                min-width: 0;
                padding: 13px 14px;
                background: #f7faff;
            }

            .ip-calc-pdf-summary span,
            .ip-calc-pdf-summary strong {
                display: block;
            }

            .ip-calc-pdf-summary span {
                color: #748095;
                font-size: 11px;
                line-height: 1.35;
            }

            .ip-calc-pdf-summary strong {
                margin-top: 4px;
                color: #173b70;
                font-size: 14px;
                font-weight: 650;
                line-height: 1.35;
                overflow-wrap: anywhere;
            }

            .ip-calc-pdf-actions {
                display: grid;
                grid-template-columns: repeat(2, minmax(0, 1fr));
                gap: 10px;
                margin-top: 16px;
            }

            .ip-home :is(.ip-calc-pdf-download, .ip-calc-pdf-share) {
                display: grid;
                grid-template-columns: 42px minmax(0, 1fr);
                align-items: center;
                gap: 12px;
                width: 100%;
                min-height: 72px;
                padding: 12px 14px;
                border: 1px solid #dbe5f1;
                border-radius: 12px;
                background: #fff;
                color: #1f2a35;
                text-align: left;
            }

            .ip-home .ip-calc-pdf-download {
                border-color: #9fbee8;
                background: linear-gradient(145deg, #f1f7ff, #fff);
            }

            .ip-calc-pdf-action-icon {
                display: grid;
                place-items: center;
                width: 42px;
                height: 42px;
                border-radius: 11px;
                background: #0753c9;
                color: #fff;
            }

            .ip-calc-pdf-share .ip-calc-pdf-action-icon {
                background: #edf4ff;
                color: #0753c9;
            }

            .ip-calc-pdf-action-icon svg {
                width: 21px;
                height: 21px;
                fill: none;
                stroke: currentColor;
                stroke-width: 1.8;
                stroke-linecap: round;
                stroke-linejoin: round;
            }

            :is(.ip-calc-pdf-download, .ip-calc-pdf-share) > span:last-child {
                min-width: 0;
            }

            :is(.ip-calc-pdf-download, .ip-calc-pdf-share) strong,
            :is(.ip-calc-pdf-download, .ip-calc-pdf-share) small {
                display: block;
            }

            :is(.ip-calc-pdf-download, .ip-calc-pdf-share) strong {
                color: #173b70;
                font-size: 14px;
                font-weight: 650;
            }

            :is(.ip-calc-pdf-download, .ip-calc-pdf-share) small {
                margin-top: 3px;
                color: #748095;
                font-size: 11px;
                line-height: 1.4;
            }

            .ip-calc-pdf-order {
                display: grid;
                grid-template-columns: minmax(0, 1fr) auto;
                align-items: center;
                gap: 18px;
                margin-top: 16px;
                padding: 16px;
                border: 1px solid #e2e8f0;
                border-radius: 12px;
                background: #f7f8fa;
            }

            .ip-calc-pdf-order-copy strong,
            .ip-calc-pdf-order-copy span {
                display: block;
            }

            .ip-calc-pdf-order-copy strong {
                color: #25313a;
                font-size: 14px;
                font-weight: 650;
            }

            .ip-calc-pdf-order-copy span {
                margin-top: 4px;
                color: #6f7b87;
                font-size: 11px;
                line-height: 1.5;
            }

            .ip-calc-pdf-messengers {
                display: flex;
                gap: 8px;
            }

            .ip-calc-pdf-messengers .ip-contact-button {
                min-height: 42px;
                padding: 9px 13px;
                border-radius: 10px;
            }

            .ip-calc-pdf-status {
                min-height: 18px;
                margin: 10px 0 0;
                color: #3e6d57;
                font-size: 12px;
                line-height: 1.45;
            }

            body.ip-calc-pdf-open {
                overflow: hidden;
            }

            @media (hover: hover) and (pointer: fine) {
                .ip-home :is(.ip-calc-pdf-download, .ip-calc-pdf-share):hover {
                    border-color: #9fbee8;
                    background: #f5f9ff;
                }
            }

            @media (max-width: 620px) {
                .ip-home .ip-calc-pdf-dialog { padding: 8px; }
                .ip-calc-pdf-card { max-height: calc(100dvh - 16px); border-radius: 15px; }
                .ip-calc-pdf-head { padding: 22px 60px 20px 18px; border-radius: 14px 14px 0 0; }
                .ip-calc-pdf-title { font-size: 21px; }
                .ip-calc-pdf-body { padding: 14px; }
                .ip-calc-pdf-summary { grid-template-columns: minmax(0, 1fr) repeat(2, minmax(82px, .55fr)); }
                .ip-calc-pdf-summary > div { padding: 11px 9px; }
                .ip-calc-pdf-summary strong { font-size: 12px; }
                .ip-calc-pdf-actions { grid-template-columns: minmax(0, 1fr); }
                .ip-calc-pdf-order { grid-template-columns: minmax(0, 1fr); gap: 12px; }
                .ip-calc-pdf-messengers { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
                .ip-calc-pdf-messengers .ip-contact-button { width: 100%; }
            }

        
/* media-sections */

            /* Новые фотоблоки: общий ритм, лёгкая типографика и самостоятельные галереи. */
            .ip-media-controls {
                display: flex;
                flex: none;
                align-items: center;
                gap: 5px;
            }

            [data-media-controls][hidden],
            [data-media-thumbs][hidden] {
                display: none !important;
            }

            .ip-media-controls .ip-round-button {
                display: inline-grid;
                flex: none;
                place-items: center;
                width: 44px;
                height: 44px;
                min-height: 44px;
                padding: 0;
                border: 1px solid #dce2e8;
                border-radius: 50%;
                background: #ffffff;
                color: #0039a6;
                cursor: pointer;
            }

            .ip-media-controls .ip-round-button:disabled {
                border-color: #e7ebf0;
                color: #adb6c1;
                cursor: default;
            }

            .ip-media-count {
                min-width: 60px;
                color: #59636f;
                font-size: 12px;
                font-weight: 400;
                font-variant-numeric: tabular-nums;
                text-align: center;
                white-space: nowrap;
            }

            .ip-media-footer {
                display: flex;
                align-items: center;
                justify-content: space-between;
                gap: 12px 22px;
                margin-top: 15px;
                color: #59636f;
                font-size: 13px;
                font-weight: 400;
                line-height: 1.55;
            }

            .ip-media-footer .ip-link {
                flex: none;
                display: inline-flex;
                align-items: center;
                min-height: 44px;
            }

            /* Выполненные проекты: естественное горизонтальное пролистывание. */
            #ip-works .ip-works-track {
                display: grid;
                grid-auto-flow: column;
                grid-auto-columns: calc((100% - 32px) / 3);
                gap: 16px;
                min-width: 0;
                max-width: 100%;
                overflow-x: auto;
                overscroll-behavior-x: contain;
                scroll-snap-type: x mandatory;
                scrollbar-width: thin;
            }

            #ip-works[data-media-ready] .ip-works-track,
            #ip-production [data-media-ready] .ip-production-track {
                scrollbar-width: none;
            }

            #ip-works[data-media-ready] .ip-works-track::-webkit-scrollbar,
            #ip-production [data-media-ready] .ip-production-track::-webkit-scrollbar {
                display: none;
            }

            #ip-works .ip-works-card {
                display: flex;
                flex-direction: column;
                min-width: 0;
                overflow: hidden;
                border: 1px solid #dfe4ea;
                border-radius: 12px;
                background: #ffffff;
                scroll-snap-align: start;
            }

            #ip-works .ip-works-image {
                display: block;
                flex: none;
                overflow: hidden;
                background: #e9edf2;
            }

            #ip-works .ip-works-image img {
                display: block;
                width: 100%;
                height: auto;
                aspect-ratio: 8 / 5;
                object-fit: cover;
                transition: transform 250ms ease;
            }

            #ip-works .ip-works-copy {
                display: flex;
                flex: 1;
                flex-direction: column;
                padding: 15px 15px 0;
            }

            #ip-works .ip-works-category {
                margin: 0 0 7px;
                color: #59636f;
                font-size: 11px;
                font-weight: 400;
                line-height: 1.5;
            }

            #ip-works h3 {
                margin: 0;
                color: #20252b;
                font-family: inherit;
                font-size: 16px;
                font-weight: 500;
                line-height: 1.45;
                letter-spacing: -0.15px;
            }

            #ip-works .ip-works-type {
                margin: 8px 0 13px;
                color: #59636f;
                font-size: 12px;
                line-height: 1.5;
            }

            #ip-works .ip-works-detail {
                display: flex;
                align-items: center;
                min-height: 44px;
                margin-top: auto;
                border-top: 1px solid #e9edf2;
                font-size: 13px;
            }

            /* Направления бизнеса: компактная сетка, остальные карточки раскрываются по запросу. */
            #ip-business .ip-business-total {
                flex: none;
                padding: 5px 9px;
                border-radius: 6px;
                background: #e9ebee;
                color: #59636f;
                font-size: 12px;
                line-height: 1.5;
            }

            #ip-business .ip-business-grid {
                display: grid;
                grid-template-columns: repeat(4, minmax(0, 1fr));
                gap: 19px 15px;
            }

            #ip-business .ip-business-card {
                display: flex;
                flex-direction: column;
                min-width: 0;
                color: #20252b;
                text-decoration: none;
            }

            #ip-business .ip-business-card img {
                display: block;
                width: 100%;
                height: auto;
                aspect-ratio: 3 / 2;
                border-radius: 9px;
                background: #e9edf2;
                object-fit: cover;
            }

            #ip-business .ip-business-card-copy {
                display: grid;
                gap: 4px;
                padding: 10px 2px 0;
            }

            #ip-business .ip-business-name {
                font-size: 14px;
                font-weight: 500;
                line-height: 1.45;
                transition: color 140ms ease;
            }

            #ip-business .ip-business-number {
                color: #59636f;
                font-size: 12px;
                font-weight: 400;
                line-height: 1.5;
            }

            #ip-business .ip-business-more {
                margin-top: 18px;
            }

            #ip-business .ip-business-more summary {
                display: flex;
                align-items: center;
                justify-content: center;
                gap: 13px;
                width: fit-content;
                min-height: 44px;
                margin: 0 auto;
                padding: 10px 16px;
                border: 1px solid #d5e1f4;
                border-radius: 8px;
                background: #edf3fc;
                color: #0039a6;
                font-size: 13px;
                font-weight: 400;
                line-height: 1.5;
                list-style: none;
                cursor: pointer;
            }

            #ip-business .ip-business-more summary::-webkit-details-marker,
            #ip-production .ip-production-approach summary::-webkit-details-marker {
                display: none;
            }

            #ip-business .ip-business-more > .ip-business-grid {
                margin-top: 22px;
            }

            #ip-business .ip-business-close-label,
            #ip-business .ip-business-more[open] .ip-business-open-label {
                display: none;
            }

            #ip-business .ip-business-more[open] .ip-business-close-label {
                display: inline;
            }

            #ip-business .ip-business-plus {
                position: relative;
                flex: none;
                width: 12px;
                height: 12px;
                transition: transform 180ms ease;
            }

            #ip-business .ip-business-plus::before,
            #ip-business .ip-business-plus::after {
                position: absolute;
                top: 5px;
                left: 0;
                width: 12px;
                height: 2px;
                background: currentColor;
                content: "";
            }

            #ip-business .ip-business-plus::after {
                transform: rotate(90deg);
            }

            #ip-business .ip-business-more[open] .ip-business-plus {
                transform: rotate(45deg);
            }

            /* Сейчас в работе: открыто обозначенный статус без выдуманных текущих заказов. */
            #ip-worknow .ip-worknow-panel {
                display: grid;
                grid-template-columns: minmax(0, 1.65fr) minmax(200px, 1fr);
                align-items: center;
                gap: 25px;
                padding: 25px;
                border: 1px solid #e0e5eb;
                border-radius: 14px;
                background: #edf0f4;
            }

            #ip-worknow .ip-worknow-copy > p:not(.ip-eyebrow) {
                margin: 10px 0;
                color: #59636f;
                font-size: 13px;
                line-height: 1.65;
            }

            #ip-worknow .ip-worknow-copy > .ip-worknow-status {
                margin-top: 15px;
                color: #20252b;
                font-size: 15px;
                font-weight: 500;
            }

            #ip-worknow .ip-worknow-copy > .ip-link {
                display: inline-flex;
                align-items: center;
                min-height: 44px;
                font-size: 13px;
            }

            #ip-worknow .ip-worknow-examples {
                min-width: 0;
                margin: 0;
            }

            #ip-worknow .ip-worknow-mosaic {
                display: grid;
                grid-template-columns: repeat(2, minmax(0, 1fr));
                gap: 8px;
            }

            #ip-worknow .ip-worknow-mosaic img {
                display: block;
                width: 100%;
                height: auto;
                aspect-ratio: 3 / 2;
                border-radius: 7px;
                object-fit: cover;
            }

            #ip-worknow figcaption {
                margin-top: 9px;
                color: #59636f;
                font-size: 11px;
                line-height: 1.5;
            }

            /* Производство: текст рядом с галереей, четыре фотографии и миниатюры. */
            #ip-production .ip-production-body {
                display: grid;
                grid-template-columns: minmax(0, 1fr) minmax(0, 1.35fr);
                align-items: start;
                gap: 25px;
            }

            #ip-production .ip-production-copy p,
            #ip-production .ip-production-approach p {
                margin: 0 0 14px;
                color: #59636f;
                font-size: 14px;
                line-height: 1.7;
            }

            #ip-production .ip-production-timing {
                margin-top: 18px;
                padding: 14px 15px;
                border-left: 2px solid #1a5bbf;
                background: #edf3fc;
            }

            #ip-production .ip-production-timing > span {
                color: #0039a6;
                font-size: 19px;
                font-weight: 500;
                line-height: 1.35;
            }

            #ip-production .ip-production-timing p {
                margin: 7px 0 0;
                font-size: 12px;
                line-height: 1.55;
            }

            #ip-production .ip-production-gallery {
                min-width: 0;
            }

            #ip-production .ip-production-track {
                display: grid;
                grid-auto-flow: column;
                grid-auto-columns: 100%;
                gap: 14px;
                min-width: 0;
                max-width: 100%;
                overflow-x: auto;
                overscroll-behavior-x: contain;
                scroll-snap-type: x mandatory;
                scrollbar-width: thin;
            }

            #ip-production .ip-production-slide {
                min-width: 0;
                margin: 0;
                scroll-snap-align: start;
            }

            #ip-production .ip-production-slide a {
                display: block;
            }

            #ip-production .ip-production-slide img {
                display: block;
                width: 100%;
                height: auto;
                aspect-ratio: 2 / 1;
                border-radius: 10px;
                background: #dfe4e8;
                object-fit: cover;
            }

            #ip-production .ip-production-slide figcaption {
                margin-top: 8px;
                color: #59636f;
                font-size: 12px;
                line-height: 1.5;
            }

            #ip-production .ip-production-thumbs {
                display: grid;
                grid-template-columns: repeat(4, minmax(0, 1fr));
                gap: 8px;
                margin-top: 12px;
            }

            #ip-production .ip-production-thumb {
                min-width: 0;
                min-height: 44px;
                padding: 3px;
                border: 1px solid transparent;
                border-radius: 7px;
                background: transparent;
                cursor: pointer;
            }

            #ip-production .ip-production-thumb img {
                display: block;
                width: 100%;
                height: auto;
                aspect-ratio: 16 / 9;
                border-radius: 4px;
                object-fit: cover;
            }

            #ip-production .ip-production-thumb[aria-pressed="true"] {
                border-color: #1764d8;
            }

            #ip-production .ip-media-controls {
                justify-content: center;
                margin-top: 11px;
            }

            #ip-production .ip-production-approach {
                margin-top: 24px;
                border-top: 1px solid #dfe4ea;
                border-bottom: 1px solid #dfe4ea;
            }

            #ip-production .ip-production-approach summary {
                display: flex;
                align-items: center;
                justify-content: space-between;
                gap: 20px;
                min-height: 50px;
                padding: 12px 0;
                color: #20252b;
                font-size: 15px;
                font-weight: 500;
                line-height: 1.5;
                list-style: none;
                cursor: pointer;
            }

            #ip-production .ip-production-approach summary > span {
                color: #0039a6;
                font-size: 24px;
                font-weight: 400;
                transition: transform 180ms ease;
            }

            #ip-production .ip-production-approach[open] summary > span {
                transform: rotate(45deg);
            }

            #ip-production .ip-production-approach > div {
                display: grid;
                grid-template-columns: repeat(2, minmax(0, 1fr));
                gap: 25px;
                padding-bottom: 5px;
            }

            /* Четыре готовые надписи в одной компактной строке. */
            #ip-ready .ip-ready-grid {
                display: grid;
                grid-template-columns: repeat(4, minmax(0, 1fr));
                gap: 14px;
            }

            #ip-ready .ip-ready-card {
                display: flex;
                flex-direction: column;
                min-width: 0;
                overflow: hidden;
                border: 1px solid #dfe4ea;
                border-radius: 11px;
                background: #ffffff;
            }

            #ip-ready .ip-ready-photo {
                position: relative;
                display: block;
                background: #f4f5f6;
            }

            #ip-ready .ip-ready-photo img {
                display: block;
                width: 100%;
                height: auto;
                aspect-ratio: 1.55;
                object-fit: contain;
            }

            #ip-ready .ip-ready-photo > span {
                position: absolute;
                top: 8px;
                left: 8px;
                padding: 3px 7px;
                border: 1px solid #dbe6dc;
                border-radius: 5px;
                background: #f6fff8ed;
                color: #3b6547;
                font-size: 10px;
                font-weight: 400;
                line-height: 1.5;
            }

            #ip-ready .ip-ready-copy {
                display: flex;
                flex: 1;
                flex-direction: column;
                padding: 13px 13px 0;
            }

            #ip-ready .ip-ready-type {
                margin: 0 0 6px;
                color: #59636f;
                font-size: 11px;
                line-height: 1.4;
            }

            #ip-ready h3 {
                margin: 0;
                color: #20252b;
                font-family: inherit;
                font-size: 16px;
                font-weight: 500;
                line-height: 1.45;
            }

            #ip-ready .ip-ready-size {
                margin: 7px 0 0;
                color: #59636f;
                font-size: 11px;
                line-height: 1.5;
            }

            #ip-ready .ip-ready-price {
                display: grid;
                gap: 3px;
                margin: auto 0 0;
                padding: 13px 0;
                color: #0039a6;
                font-size: 23px;
                font-weight: 500;
                line-height: 1.25;
                letter-spacing: -0.5px;
                font-variant-numeric: tabular-nums;
            }

            #ip-ready .ip-ready-price > span {
                color: #59636f;
                font-size: 11px;
                font-weight: 400;
                letter-spacing: 0;
            }

            #ip-ready .ip-ready-link {
                display: flex;
                align-items: center;
                min-height: 44px;
                border-top: 1px solid #e9edf2;
                font-size: 13px;
            }

            /* Отзывы: видеоотзыв и текст клиента с фотографией выполненной работы. */
            #ip-reviews .ip-reviews-grid {
                display: grid;
                grid-template-columns: repeat(2, minmax(0, 1fr));
                gap: 18px;
            }

            #ip-reviews .ip-review {
                display: flex;
                flex-direction: column;
                min-width: 0;
                overflow: hidden;
                border: 1px solid #dfe4ea;
                border-radius: 12px;
                background: #ffffff;
            }

            #ip-reviews .ip-review-video-link {
                position: relative;
                display: block;
                overflow: hidden;
                background: #1d2530;
                text-decoration: none;
            }

            #ip-reviews .ip-review-video-link > img {
                display: block;
                width: 100%;
                height: auto;
                aspect-ratio: 16 / 10;
                object-fit: contain;
            }

            #ip-reviews .ip-review-play {
                position: absolute;
                top: 50%;
                left: 50%;
                display: grid;
                place-items: center;
                width: 54px;
                height: 54px;
                border: 1px solid #ffffff80;
                border-radius: 50%;
                background: #ffffffed;
                color: #0039a6;
                box-shadow: 0 5px 24px #08122040;
                transform: translate(-50%, -50%);
            }

            #ip-reviews .ip-review-video-label {
                position: absolute;
                right: 0;
                bottom: 0;
                left: 0;
                display: block;
                padding: 35px 16px 13px;
                background: linear-gradient(transparent, #071324b3);
                color: #ffffff;
                font-size: 13px;
                line-height: 1.4;
            }

            #ip-reviews .ip-review-person {
                display: flex;
                align-items: center;
                justify-content: space-between;
                gap: 15px;
                margin-top: auto;
                padding: 16px 18px;
            }

            #ip-reviews .ip-review-person h3 {
                margin: 0;
                color: #20252b;
                font-family: inherit;
                font-size: 15px;
                font-weight: 500;
                line-height: 1.45;
            }

            #ip-reviews .ip-review-person p {
                margin: 4px 0 0;
                color: #59636f;
                font-size: 12px;
                line-height: 1.5;
            }

            #ip-reviews .ip-review-rating {
                flex: none;
                color: #a66e0b;
                font-size: 15px;
                line-height: 1.5;
                letter-spacing: 2px;
                white-space: nowrap;
            }

            #ip-reviews .ip-review-quote {
                padding: 18px 18px 0;
            }

            #ip-reviews .ip-review-quote-top {
                display: flex;
                align-items: center;
                gap: 14px;
            }

            #ip-reviews .ip-review-project {
                display: block;
                flex: none;
                width: 86px;
                height: 67px;
                border-radius: 6px;
                object-fit: cover;
            }

            #ip-reviews .ip-review-quote-top p {
                margin: 4px 0 0;
                color: #59636f;
                font-size: 11px;
                line-height: 1.5;
            }

            #ip-reviews blockquote {
                margin: 17px 0 0;
                padding: 0;
                color: #20252b;
                font-size: 14px;
                font-weight: 400;
                line-height: 1.75;
            }

            #ip-reviews blockquote p {
                margin: 0;
            }

            #ip-reviews .ip-review-quote .ip-review-person {
                padding-right: 0;
                padding-left: 0;
            }

            /* Клавиатура, движение и адаптация именно к ширине основной колонки. */
            .ip-media-controls button:focus-visible,
            #ip-works a:focus-visible,
            #ip-works [data-media-track]:focus-visible,
            #ip-business a:focus-visible,
            #ip-business summary:focus-visible,
            #ip-production a:focus-visible,
            #ip-production button:focus-visible,
            #ip-production summary:focus-visible,
            #ip-production [data-media-track]:focus-visible,
            #ip-ready a:focus-visible,
            #ip-reviews a:focus-visible,
            #ip-worknow a:focus-visible {
                outline: 2px solid #0039a6;
                outline-offset: 3px;
                border-radius: 4px;
            }

            #ip-works [data-media-track]:focus-visible,
            #ip-production [data-media-track]:focus-visible {
                outline-offset: -2px;
            }

            @media (hover: hover) and (pointer: fine) {
                #ip-works .ip-works-image:hover img {
                    transform: scale(1.025);
                }

                #ip-business .ip-business-card:hover .ip-business-name {
                    color: #0039a6;
                }

                .ip-media-controls .ip-round-button:not(:disabled):hover {
                    border-color: #b6caea;
                    background: #edf3fc;
                }
            }

            @container ip-showcase-main (max-width: 720px) {
                #ip-works .ip-works-track {
                    grid-auto-columns: calc((100% - 16px) / 2);
                }

                #ip-ready .ip-ready-grid {
                    grid-template-columns: repeat(2, minmax(0, 1fr));
                }

                #ip-business .ip-business-grid {
                    grid-template-columns: repeat(3, minmax(0, 1fr));
                }

                #ip-production .ip-production-body {
                    grid-template-columns: minmax(0, 1fr);
                    gap: 20px;
                }

                #ip-production .ip-production-track {
                    max-width: 100%;
                }

                #ip-production .ip-production-thumb {
                    max-height: 85px;
                    overflow: hidden;
                }

                #ip-production .ip-production-thumb img {
                    max-height: 77px;
                }

                #ip-worknow .ip-worknow-panel {
                    grid-template-columns: minmax(0, 1fr);
                    gap: 15px;
                }

                #ip-worknow .ip-worknow-mosaic {
                    grid-template-columns: repeat(4, minmax(0, 1fr));
                }

                #ip-reviews .ip-reviews-grid {
                    grid-template-columns: minmax(0, 1fr);
                }

                #ip-reviews .ip-review-video-link > img {
                    aspect-ratio: 16 / 9;
                }
            }

            @container ip-showcase-main (max-width: 480px) {
                #ip-works .ip-works-track {
                    grid-auto-columns: 87%;
                    gap: 12px;
                }

                #ip-works .ip-section-head {
                    flex-wrap: wrap;
                    gap: 14px;
                }

                #ip-business .ip-business-grid {
                    grid-template-columns: repeat(2, minmax(0, 1fr));
                    gap: 18px 12px;
                }

                #ip-business .ip-business-name {
                    font-size: 13px;
                }

                #ip-business .ip-business-total {
                    display: none;
                }

                #ip-production .ip-production-approach > div {
                    grid-template-columns: minmax(0, 1fr);
                    gap: 0;
                }

                #ip-worknow .ip-worknow-panel {
                    padding: 20px;
                }

                #ip-worknow .ip-worknow-mosaic {
                    gap: 5px;
                }

                #ip-ready .ip-ready-grid {
                    gap: 12px;
                }

                #ip-ready h3 {
                    font-size: 14px;
                }

                #ip-ready .ip-ready-copy {
                    padding: 12px 11px 0;
                }

                #ip-ready .ip-ready-price {
                    font-size: 21px;
                }

                #ip-ready .ip-ready-photo > span {
                    top: 6px;
                    left: 6px;
                    padding: 2px 6px;
                    font-size: 9px;
                }

                .ip-media-footer {
                    align-items: flex-start;
                    flex-direction: column;
                    gap: 4px;
                }
            }

            @media (prefers-reduced-motion: reduce) {
                #ip-works img,
                #ip-business .ip-business-name,
                #ip-business .ip-business-plus,
                #ip-production .ip-production-approach summary > span {
                    transition: none;
                }
            }
        
/* content-sections */

            /* Этапы — одна линия на широком экране, последовательные шаги на телефоне. */
            #ip-process .ip-process-steps {
                display: grid;
                grid-template-columns: repeat(5, minmax(0, 1fr));
                gap: 20px;
                margin: 26px 0 0;
                padding: 0;
                list-style: none;
            }

            #ip-process .ip-process-step {
                min-width: 0;
                margin: 0;
                padding: 15px 0 0;
                border-top: 1px solid #cbd7e9;
            }

            #ip-process .ip-process-number {
                display: block;
                margin-bottom: 16px;
                color: #7294c3;
                font-size: 30px;
                font-weight: 400;
                line-height: 1;
                letter-spacing: -1px;
                font-variant-numeric: tabular-nums;
            }

            #ip-process .ip-process-copy h3 {
                margin: 0 0 8px;
                color: #20252b;
                font-size: 15px;
                font-weight: 500;
                line-height: 1.4;
                letter-spacing: 0;
            }

            #ip-process .ip-process-copy p {
                margin: 0;
                color: #59636f;
                font-size: 13px;
                font-weight: 400;
                line-height: 1.6;
            }

            /* Правила: шесть настоящих схем с сохранёнными пропорциями. */
            #ip-rules .ip-rules-address {
                display: flex;
                align-items: center;
                gap: 11px;
                margin: 21px 0 23px;
                padding: 13px 16px;
                border-radius: 8px;
                background: #edf3fc;
                color: #0039a6;
            }

            #ip-rules .ip-rules-address svg {
                flex: 0 0 24px;
            }

            #ip-rules .ip-rules-address p {
                margin: 0;
                color: #52647b;
                font-size: 13px;
                font-weight: 400;
                line-height: 1.5;
            }

            #ip-rules .ip-rules-address p span {
                color: #234575;
                font-weight: 500;
            }

            #ip-rules .ip-rules-grid {
                display: grid;
                grid-template-columns: repeat(3, minmax(0, 1fr));
                gap: 26px 20px;
            }

            #ip-rules .ip-rule-card {
                display: flex;
                flex-direction: column;
                min-width: 0;
                color: #20252b;
                text-decoration: none;
            }

            #ip-rules .ip-rule-image-wrap {
                position: relative;
                display: flex;
                align-items: center;
                justify-content: center;
                overflow: hidden;
                aspect-ratio: 5 / 3;
                padding: 8px;
                border: 1px solid #e3e7ec;
                border-radius: 10px;
                background: #fff;
                transition: border-color 160ms ease, box-shadow 160ms ease;
            }

            #ip-rules .ip-rule-image-wrap img {
                display: block;
                width: 100%;
                height: 100%;
                object-fit: contain;
            }

            #ip-rules .ip-rule-number {
                position: absolute;
                top: 8px;
                left: 8px;
                display: grid;
                place-items: center;
                width: 27px;
                height: 27px;
                border-radius: 6px;
                background: #eef3fb;
                color: #0039a6;
                font-size: 11px;
                font-weight: 500;
                line-height: 1;
            }

            #ip-rules .ip-rule-title {
                display: block;
                margin-top: 13px;
                font-size: 16px;
                font-weight: 500;
                line-height: 1.4;
            }

            #ip-rules .ip-rule-description {
                margin: 7px 0 9px;
                color: #59636f;
                font-size: 13px;
                font-weight: 400;
                line-height: 1.55;
            }

            #ip-rules .ip-rule-link {
                display: flex;
                align-items: center;
                min-height: 36px;
                margin-top: auto;
                color: #0039a6;
                font-size: 12px;
                font-weight: 400;
                line-height: 1.4;
            }

            #ip-rules .ip-rules-more {
                display: flex;
                justify-content: center;
                margin-top: 22px;
            }

            /* FAQ работает и без JavaScript: раскрытие выполняет браузер. */
            #ip-faq .ip-faq-list {
                margin-top: 23px;
                border-top: 1px solid #dce2ea;
            }

            #ip-faq .ip-faq-item {
                padding: 0;
                border-bottom: 1px solid #dce2ea;
            }

            #ip-faq .ip-faq-item summary {
                position: relative;
                display: flex;
                align-items: center;
                min-height: 63px;
                padding: 17px 42px 17px 0;
                color: #20252b;
                font-size: 15px;
                font-weight: 400;
                line-height: 1.5;
                list-style: none;
                cursor: pointer;
            }

            #ip-faq .ip-faq-item summary::-webkit-details-marker {
                display: none;
            }

            #ip-faq .ip-faq-item summary::after {
                content: "+";
                position: absolute;
                top: 50%;
                right: 0;
                display: grid;
                place-items: center;
                width: 27px;
                height: 27px;
                border-radius: 50%;
                background: #eaf0fa;
                color: #0039a6;
                font-size: 21px;
                font-weight: 400;
                line-height: 1;
                transform: translateY(-50%);
            }

            #ip-faq .ip-faq-item[open] summary {
                color: #0039a6;
            }

            #ip-faq .ip-faq-item[open] summary::after {
                content: "−";
            }

            #ip-faq .ip-faq-answer {
                max-width: 78ch;
                padding: 0 42px 21px 0;
            }

            #ip-faq .ip-faq-answer p {
                margin: 0;
                color: #59636f;
                font-size: 14px;
                font-weight: 400;
                line-height: 1.65;
            }

            /* Завершение воронки — рабочая форма сайта и прямые каналы связи. */
            #ip-contact .ip-contact-panel {
                display: grid;
                grid-template-columns: minmax(0, 1.25fr) minmax(235px, .8fr);
                align-items: center;
                gap: 32px;
                padding: 30px;
                border: 1px solid #d6e3f6;
                border-radius: 14px;
                background: linear-gradient(120deg, #f0f5ff 0%, #f8faff 65%, #fff 100%);
            }

            #ip-contact .ip-contact-copy,
            #ip-contact .ip-contact-actions {
                min-width: 0;
            }

            #ip-contact .ip-contact-copy .ip-section-title {
                font-size: 27px;
                font-weight: 500;
                line-height: 1.25;
            }

            #ip-contact .ip-contact-copy .ip-section-intro {
                max-width: 47ch;
                margin-top: 14px;
                font-size: 13px;
            }

            #ip-contact .ip-contact-phone,
            #ip-contact .ip-contact-email {
                display: block;
                width: fit-content;
                color: #0039a6;
                font-weight: 400;
                text-decoration: none;
            }

            #ip-contact .ip-contact-phone {
                margin-top: 18px;
                padding: 5px 0;
                font-size: 20px;
                line-height: 1.4;
                white-space: nowrap;
            }

            #ip-contact .ip-contact-email {
                padding: 5px 0;
                font-size: 13px;
                line-height: 1.5;
                overflow-wrap: anywhere;
            }

            #ip-contact .ip-contact-actions {
                display: grid;
                gap: 0;
            }

            #ip-contact .ip-contact-order {
                width: 100%;
                min-height: 48px;
            }

            #ip-contact .ip-contact-choice {
                margin: 18px 0 10px;
                color: #657084;
                font-size: 12px;
                font-weight: 400;
                line-height: 1.5;
                text-align: center;
            }

            /* Подвал: реквизиты, услуги и контакты из действующего сайта. */
            #ip-footer {
                margin-top: 54px;
                padding: 38px 0 24px;
                border-top: 1px solid #dde2e9;
                background: #fff;
                color: #20252b;
                font-family: var(--font, Arial, sans-serif);
                font-size: 13px;
                font-weight: 400;
                line-height: 1.55;
            }

            #ip-footer * {
                box-sizing: border-box;
            }

            #ip-footer .ip-footer-grid {
                display: grid;
                grid-template-columns: minmax(0, 1.08fr) minmax(0, 1fr) minmax(0, .95fr);
                gap: 54px;
            }

            #ip-footer .ip-footer-grid > * {
                min-width: 0;
            }

            #ip-footer a {
                color: inherit;
                text-decoration: none;
            }

            #ip-footer .ip-footer-brand {
                display: inline-flex;
                align-items: center;
                gap: 10px;
                width: fit-content;
                font-size: 25px;
                font-weight: 500;
                line-height: 1;
                letter-spacing: .1px;
            }

            #ip-footer .ip-footer-brand-ip {
                display: grid;
                place-items: center;
                min-width: 66px;
                min-height: 39px;
                padding: 7px 10px;
                border-radius: 7px;
                background: linear-gradient(120deg, #1f64d7, #0039a6);
                color: #fff;
                font-size: 23px;
                letter-spacing: .6px;
            }

            #ip-footer .ip-footer-brand-name {
                color: #c83139;
            }

            #ip-footer .ip-footer-tagline {
                margin: 17px 0 7px;
                color: #20252b;
                font-size: 15px;
                font-weight: 400;
            }

            #ip-footer .ip-footer-description {
                max-width: 34ch;
                margin: 0;
                color: #59636f;
                font-size: 13px;
            }

            #ip-footer .ip-footer-company {
                display: grid;
                justify-items: start;
                gap: 0;
                margin-top: 14px;
            }

            #ip-footer .ip-footer-company a,
            #ip-footer .ip-footer-links a {
                display: flex;
                align-items: center;
                min-height: 31px;
                padding: 4px 0;
            }

            #ip-footer .ip-footer-company a,
            #ip-footer .ip-footer-all,
            #ip-footer .ip-footer-legal a {
                color: #0039a6;
            }

            #ip-footer .ip-footer-heading {
                margin: 6px 0 17px;
                color: #20252b;
                font-size: 16px;
                font-weight: 500;
                line-height: 1.5;
                letter-spacing: 0;
            }

            #ip-footer .ip-footer-links {
                display: grid;
                gap: 0;
                margin: 0;
                padding: 0;
                list-style: none;
            }

            #ip-footer .ip-footer-links li {
                margin: 0;
                padding: 0;
            }

            #ip-footer .ip-footer-all {
                display: inline-flex;
                align-items: center;
                min-height: 36px;
                margin-top: 8px;
                border-bottom: 1px solid #c8d7ef;
            }

            #ip-footer .ip-footer-contact-list {
                display: grid;
                justify-items: start;
                gap: 4px;
            }

            #ip-footer .ip-footer-phone {
                display: flex;
                align-items: center;
                min-height: 32px;
                font-size: 18px;
                font-weight: 400;
                white-space: nowrap;
            }

            #ip-footer .ip-footer-email {
                display: flex;
                align-items: center;
                min-height: 32px;
                color: #0039a6;
                overflow-wrap: anywhere;
            }

            #ip-footer .ip-footer-social {
                display: flex;
                flex-wrap: wrap;
                gap: 3px 14px;
                margin-top: 12px;
                color: #0039a6;
            }

            #ip-footer .ip-footer-social a {
                display: flex;
                align-items: center;
                min-height: 32px;
            }

            #ip-footer .ip-footer-hours {
                margin-top: 20px;
                padding-top: 16px;
                border-top: 1px solid #e5e9ef;
            }

            #ip-footer .ip-footer-hours h3 {
                margin: 0 0 9px;
                color: #20252b;
                font-size: 13px;
                font-weight: 500;
                line-height: 1.5;
            }

            #ip-footer dl {
                display: grid;
                gap: 3px;
                margin: 0;
            }

            #ip-footer dl div {
                display: flex;
                flex-wrap: wrap;
                gap: 4px 12px;
            }

            #ip-footer dt,
            #ip-footer dd {
                margin: 0;
                font-weight: 400;
            }

            #ip-footer dt {
                min-width: 57px;
                color: #79828f;
            }

            #ip-footer dd {
                color: #59636f;
            }

            #ip-footer .ip-footer-legal {
                margin-top: 20px;
                color: #59636f;
                font-size: 12px;
            }

            #ip-footer .ip-footer-legal p {
                margin: 0 0 5px;
            }

            #ip-footer .ip-footer-legal a {
                display: inline-flex;
                align-items: center;
                min-height: 32px;
                margin-top: 6px;
            }

            #ip-footer .ip-footer-bottom {
                display: flex;
                align-items: flex-end;
                justify-content: space-between;
                gap: 24px;
                margin-top: 30px;
                padding-top: 19px;
                border-top: 1px solid #e5e9ef;
                color: #79828f;
                font-size: 12px;
                line-height: 1.6;
            }

            #ip-footer .ip-footer-bottom p {
                margin: 0;
            }

            #ip-footer .ip-footer-ethics {
                max-width: 76ch;
            }

            #ip-footer .ip-footer-bottom p:last-child {
                flex: none;
            }

            #ip-process a:focus-visible,
            #ip-rules a:focus-visible,
            #ip-faq a:focus-visible,
            #ip-faq summary:focus-visible,
            #ip-contact a:focus-visible,
            #ip-footer a:focus-visible {
                border-radius: 4px;
                outline: 2px solid #0039a6;
                outline-offset: 4px;
            }

            @media (hover: hover) and (pointer: fine) {
                #ip-rules .ip-rule-card:hover .ip-rule-image-wrap {
                    border-color: #a9c0e2;
                    box-shadow: 0 3px 12px rgba(0, 57, 166, .05);
                }

                #ip-rules .ip-rule-card:hover .ip-rule-link,
                #ip-contact .ip-contact-phone:hover,
                #ip-contact .ip-contact-email:hover,
                #ip-footer a:not(.ip-footer-brand):hover {
                    color: #0039a6;
                    text-decoration: underline;
                    text-underline-offset: 3px;
                }

                #ip-faq .ip-faq-item summary:hover {
                    color: #0039a6;
                }

            }

            @container ip-showcase-main (max-width: 760px) {
                #ip-process .ip-process-steps {
                    grid-template-columns: repeat(3, minmax(0, 1fr));
                    gap: 22px;
                }

                #ip-contact .ip-contact-panel {
                    grid-template-columns: minmax(0, 1fr);
                    gap: 23px;
                }

                #ip-contact .ip-contact-actions {
                    max-width: 420px;
                }
            }

            @container ip-showcase-main (max-width: 620px) {
                #ip-rules .ip-rules-grid {
                    grid-template-columns: repeat(2, minmax(0, 1fr));
                    gap: 22px 15px;
                }

                #ip-process .ip-process-steps {
                    grid-template-columns: minmax(0, 1fr);
                    gap: 17px;
                }

                #ip-process .ip-process-step {
                    display: grid;
                    grid-template-columns: 38px minmax(0, 1fr);
                    align-items: start;
                    gap: 16px;
                    padding-top: 16px;
                }

                #ip-process .ip-process-number {
                    margin: 1px 0 0;
                    font-size: 28px;
                }
            }

            @media (max-width: 1000px) {
                #ip-footer .ip-footer-grid {
                    gap: 30px;
                }
            }

            @media (max-width: 760px) {
                #ip-footer {
                    margin-top: 40px;
                    padding-top: 28px;
                }

                #ip-footer .ip-footer-grid {
                    grid-template-columns: repeat(2, minmax(0, 1fr));
                    gap: 27px 24px;
                }

                #ip-footer .ip-footer-about {
                    grid-column: 1 / -1;
                    display: grid;
                    grid-template-columns: repeat(2, minmax(0, 1fr));
                    column-gap: 24px;
                    align-items: start;
                }

                #ip-footer .ip-footer-brand,
                #ip-footer .ip-footer-tagline,
                #ip-footer .ip-footer-description,
                #ip-footer .ip-footer-company {
                    grid-column: 1;
                }

                #ip-footer .ip-footer-legal {
                    grid-column: 2;
                    grid-row: 1 / span 4;
                    margin-top: 6px;
                }

                #ip-footer .ip-footer-description {
                    max-width: 35ch;
                }

                #ip-footer .ip-footer-heading {
                    margin-top: 0;
                }

                #ip-footer .ip-footer-bottom {
                    align-items: flex-start;
                    flex-direction: column;
                    gap: 12px;
                    margin-top: 25px;
                }
            }

            @media (max-width: 620px) {
                #ip-process .ip-process-steps {
                    grid-template-columns: minmax(0, 1fr);
                    gap: 17px;
                    margin-top: 21px;
                }

                #ip-process .ip-process-step {
                    display: grid;
                    grid-template-columns: 38px minmax(0, 1fr);
                    gap: 16px;
                    padding-top: 16px;
                }

                #ip-process .ip-process-number {
                    margin: 1px 0 0;
                    font-size: 28px;
                }

                #ip-rules .ip-rules-grid {
                    grid-template-columns: repeat(2, minmax(0, 1fr));
                    gap: 21px 14px;
                }

                #ip-rules .ip-rules-address {
                    align-items: flex-start;
                    padding: 12px;
                }

                #ip-rules .ip-rule-title {
                    margin-top: 11px;
                    font-size: 15px;
                }

                #ip-rules .ip-rule-description {
                    font-size: 12px;
                }

                #ip-rules .ip-rule-image-wrap {
                    padding: 5px;
                }

                #ip-rules .ip-rule-number {
                    top: 5px;
                    left: 5px;
                    width: 23px;
                    height: 23px;
                    font-size: 10px;
                }

                #ip-faq .ip-faq-item summary {
                    min-height: 62px;
                    font-size: 14px;
                }

                #ip-faq .ip-faq-answer {
                    padding-right: 24px;
                }

                #ip-faq .ip-faq-answer p {
                    font-size: 13px;
                }

                #ip-contact .ip-contact-panel {
                    grid-template-columns: minmax(0, 1fr);
                    gap: 22px;
                    padding: 23px 20px;
                }

                #ip-contact .ip-contact-copy .ip-section-title {
                    font-size: 24px;
                }

                #ip-contact .ip-contact-phone {
                    font-size: 19px;
                }
            }

            @media (max-width: 480px) {
                #ip-footer .ip-footer-grid,
                #ip-footer .ip-footer-about {
                    grid-template-columns: minmax(0, 1fr);
                }

                #ip-footer .ip-footer-about {
                    display: block;
                }

                #ip-footer .ip-footer-legal {
                    margin-top: 17px;
                }

                #ip-footer .ip-footer-links {
                    grid-template-columns: repeat(2, minmax(0, 1fr));
                    column-gap: 18px;
                    align-items: start;
                }

                #ip-footer .ip-footer-links a {
                    min-height: 40px;
                    font-size: 12px;
                }

                #ip-footer .ip-footer-contact-list {
                    gap: 4px;
                }
            }

            @media (max-width: 359px) {
                #ip-rules .ip-rules-grid {
                    gap: 18px 12px;
                }

                #ip-rules .ip-rule-title {
                    font-size: 14px;
                }

                #ip-contact .ip-contact-panel {
                    padding: 21px 16px;
                }
            }

            @media (prefers-reduced-motion: reduce) {
                #ip-rules .ip-rule-image-wrap {
                    transition: none;
                }
            }
        
/* section-cta */

            /* Призыв к заказу завершает содержание секции и сохраняет её контекст. */
            .ip-home .ip-order-cta,
            #ip-contact .ip-contact-panel--fire {
                position: relative;
                isolation: isolate;
                overflow: hidden;
                border: 1px solid #1d55a8;
                border-radius: 16px;
                background:
                    radial-gradient(circle at 14% 12%, rgb(255 255 255 / 10%), transparent 24%),
                    linear-gradient(118deg, #0b56c7 0%, #063b96 48%, #052b70 72%, #061f54 100%);
                color: #fff;
                box-shadow:
                    inset 0 1px 0 rgb(255 255 255 / 18%),
                    0 8px 24px rgb(5 43 112 / 15%);
            }

            .ip-home .ip-order-cta {
                display: grid;
                grid-template-columns: 44px minmax(0, 1fr) 330px;
                align-items: center;
                gap: 18px;
                margin-top: 24px;
                padding: 21px 22px;
            }

            /* Красная диагональная лента поддерживает фирменный акцент, не заходя под текст. */
            .ip-home .ip-order-cta::before,
            #ip-contact .ip-contact-panel--fire::before {
                content: "";
                position: absolute;
                z-index: -1;
                top: -42%;
                right: -7%;
                width: 38%;
                height: 190%;
                background: linear-gradient(145deg, #ef3340 0%, #d52b1e 64%, #b71f24 100%);
                transform: skewX(-18deg);
                box-shadow: -10px 0 0 rgb(255 255 255 / 92%);
                pointer-events: none;
            }

            /* Небольшой холодный блик делает фон глубже, но не конкурирует с контентом. */
            .ip-home .ip-order-cta::after,
            #ip-contact .ip-contact-panel--fire::after {
                content: "";
                position: absolute;
                z-index: -1;
                left: -34px;
                bottom: -82px;
                width: 180px;
                height: 180px;
                border: 22px solid rgb(255 255 255 / 7%);
                border-radius: 50%;
                pointer-events: none;
            }

            .ip-home .ip-order-cta-mark {
                display: grid;
                place-items: center;
                width: 44px;
                height: 48px;
                border: 1px solid rgb(255 255 255 / 36%);
                border-radius: 12px;
                background: rgb(255 255 255 / 13%);
                box-shadow: inset 0 1px 0 rgb(255 255 255 / 24%);
                color: #fff;
                transform: none;
            }

            .ip-home .ip-order-cta-mark svg {
                display: block;
                width: 24px;
                height: 24px;
                transform: none;
            }

            .ip-home .ip-order-cta-copy {
                min-width: 0;
            }

            .ip-home .ip-order-cta-title {
                margin: 0;
                color: #fff;
                text-shadow: none;
                font-family: var(--font, Arial, sans-serif);
                font-size: 19px;
                font-weight: 500;
                line-height: 1.3;
                letter-spacing: -.02em;
                text-wrap: balance;
            }

            .ip-home .ip-order-cta-text {
                max-width: 62ch;
                margin: 7px 0 0;
                color: #fff;
                text-shadow: none;
                font-size: 13px;
                font-weight: 400;
                line-height: 1.5;
            }

            .ip-home .ip-order-cta-button,
            #ip-contact .ip-contact-panel--fire .ip-contact-order {
                display: inline-flex;
                align-items: center;
                justify-content: center;
                gap: 8px;
                min-width: 0;
                min-height: 48px;
                padding: 12px 19px;
                border: 1px solid rgb(255 255 255 / 86%);
                border-radius: 10px;
                background: #fff;
                color: #063b96;
                box-shadow: 0 5px 16px rgb(2 24 66 / 18%);
                font-family: var(--font, Arial, sans-serif);
                font-size: 14px;
                font-weight: 600;
                line-height: 1.4;
                text-align: center;
                text-decoration: none;
                transition: transform 160ms ease, box-shadow 160ms ease, background 160ms ease;
            }

            .ip-home .ip-order-cta-button {
                width: 100%;
                max-width: none;
            }

            /* Форма расчёта — основное действие; ниже три прямых способа связи. */
            .ip-home .ip-order-cta-actions {
                display: grid;
                grid-template-columns: minmax(0, 1fr);
                gap: 8px;
                width: 100%;
                min-width: 0;
            }

            .ip-home .ip-order-cta-actions,
            #ip-contact .ip-contact-actions {
                container-name: ip-order-actions;
                container-type: inline-size;
            }

            .ip-home .ip-order-cta-channels {
                display: grid;
                grid-template-columns: repeat(3, minmax(0, 1fr));
                gap: 8px;
                min-width: 0;
            }

            .ip-home .ip-order-cta-channels .ip-order-cta-channel {
                width: 100%;
                min-width: 0;
                min-height: 44px;
                gap: 5px;
                padding: 9px 5px;
                border-radius: 9px;
                font-size: 13px;
                font-weight: 500;
                line-height: 1.3;
                text-align: center;
            }

            .ip-home .ip-order-cta-channels .ip-order-cta-channel:focus-visible {
                outline: 3px solid #fff;
                outline-offset: 3px;
                box-shadow: 0 0 0 2px #d52b1e;
            }

            .ip-home .ip-order-cta-button:focus-visible,
            #ip-contact .ip-contact-panel--fire .ip-contact-order:focus-visible {
                outline: 3px solid #fff;
                outline-offset: 4px;
                box-shadow: 0 0 0 2px #d52b1e;
            }

            .home-page .hero > .ip-order-cta {
                margin: 0 24px 24px;
            }

            /* Существующий контактный блок становится итоговым призывом к заказу. */
            #ip-contact .ip-contact-panel--fire .ip-eyebrow,
            #ip-contact .ip-contact-panel--fire .ip-section-title,
            #ip-contact .ip-contact-panel--fire .ip-section-intro,
            #ip-contact .ip-contact-panel--fire .ip-contact-phone,
            #ip-contact .ip-contact-panel--fire .ip-contact-email,
            #ip-contact .ip-contact-panel--fire .ip-contact-choice {
                color: #fff;
                text-shadow: none;
            }

            #ip-contact .ip-contact-panel--fire .ip-contact-phone,
            #ip-contact .ip-contact-panel--fire .ip-contact-email {
                text-decoration: underline;
                text-decoration-color: rgb(255 255 255 / 65%);
                text-underline-offset: 4px;
            }

            /* Правую колонку на компьютере оставляем прежней высоты. */
            .ip-home .ip-order-cta--mobile {
                display: none;
            }

            @media (hover: hover) and (pointer: fine) {
                .ip-home .ip-order-cta-button:hover,
                #ip-contact .ip-contact-panel--fire .ip-contact-order:hover {
                    background: #f3f7ff;
                    color: #002f82;
                    box-shadow: 0 7px 20px rgb(2 24 66 / 24%);
                    transform: translateY(-2px);
                }
            }

            /* Учитываем ширину колонки рядом с закреплённым портфолио. */
            @container ip-showcase-main (max-width: 720px) {
                .ip-home .ip-order-cta {
                    grid-template-columns: minmax(0, 1fr) 330px;
                    gap: 16px;
                    padding: 19px;
                }

                .ip-home .ip-order-cta-mark {
                    display: none;
                }
            }

            /* Размеры кнопок зависят от самой группы, в том числе в итоговых контактах. */
            @container ip-order-actions (max-width: 315px) {
                .ip-home .ip-order-cta-channels {
                    gap: 6px;
                }

                .ip-home .ip-order-cta-channels .ip-order-cta-channel {
                    flex-direction: column;
                    gap: 4px;
                    min-height: 50px;
                    padding: 6px 2px;
                    font-size: 12px;
                    line-height: 1.25;
                }
            }

            @media (max-width: 760px) {
                .ip-home .ip-order-cta {
                    grid-template-columns: minmax(0, 1fr) 330px;
                    gap: 16px;
                    margin-top: 20px;
                    padding: 19px;
                    border-radius: 13px;
                }

                .ip-home .ip-order-cta-mark {
                    display: none;
                }

                .home-page .hero > .ip-order-cta {
                    margin: 0 18px 18px;
                }

                .ip-home .ip-order-cta--mobile {
                    display: grid;
                }
            }

            @media (max-width: 680px) {
                .ip-home .ip-order-cta {
                    grid-template-columns: minmax(0, 1fr);
                    gap: 15px;
                    padding: 18px;
                }

                .ip-home .ip-order-cta-title {
                    font-size: 18px;
                }
            }

            /* Правило узкой колонки идёт после общих мобильных правил. */
            @container ip-showcase-main (max-width: 680px) {
                .ip-home .ip-order-cta {
                    grid-template-columns: minmax(0, 1fr);
                    gap: 15px;
                    padding: 18px;
                }
            }

            /* Резервная адаптация для узких браузеров без поддержки container queries. */
            @media (max-width: 380px) {
                .ip-home .ip-order-cta-channels {
                    gap: 6px;
                }

                .ip-home .ip-order-cta-channels .ip-order-cta-channel {
                    flex-direction: column;
                    gap: 4px;
                    min-height: 50px;
                    padding: 6px 2px;
                    font-size: 12px;
                    line-height: 1.25;
                }
            }

            @media (max-width: 359px) {
                .home-page .hero > .ip-order-cta {
                    margin-right: 12px;
                    margin-left: 12px;
                }

                .ip-home .ip-order-cta {
                    padding: 16px;
                }
            }

            @media (prefers-reduced-motion: reduce) {
                .ip-home .ip-order-cta-button,
                #ip-contact .ip-contact-panel--fire .ip-contact-order {
                    transition: none;
                }

                .ip-home .ip-order-cta-button:hover,
                #ip-contact .ip-contact-panel--fire .ip-contact-order:hover {
                    transform: none;
                }
            }
        
/* contact-header-match */

            body.ip-home .ip-contact-bar { justify-content: flex-end; }
            body.ip-home .ip-contact-button { border-radius: 20px 0 20px 0; }
            @media (max-width: 760px) {
                body.ip-home .ip-contact-bar { justify-content: stretch; }
            }
        
/* height-rule */

            #ip-calculator .ip-calc-height-cell {
                position: relative;
                grid-template-columns: minmax(0, 1fr) auto auto;
                gap: 0;
            }

            #ip-calculator .ip-calc-height-unit {
                padding-right: 10px;
            }

            #ip-calculator .ip-calc-height-cell.is-corrected {
                background: #edf5ff;
                box-shadow: inset 0 0 0 1px #78a5df;
            }

            #ip-calculator .ip-calc-height-cell.is-corrected input[data-ip-letter-height] {
                color: #0753c9;
                font-weight: 700;
            }

            #ip-calculator .ip-calc-height-cell.is-corrected .ip-calc-height-unit {
                color: #0753c9;
            }

            #ip-calculator .ip-calc-height-rule {
                display: grid;
                flex: none;
                place-items: center;
                width: 26px;
                height: 26px;
                min-height: 26px;
                margin-right: 7px;
                padding: 0;
                border: 1px solid #7aa7e0;
                border-radius: 50%;
                background: #0753c9;
                color: #fff;
                font: 700 14px/1 var(--font, Arial, sans-serif);
                cursor: pointer;
            }

            #ip-calculator .ip-calc-height-rule[hidden] {
                display: none !important;
            }

            #ip-calculator .ip-calc-height-rule:hover {
                background: #003f9f;
                border-color: #003f9f;
            }

            #ip-calculator .ip-calc-height-rule:focus-visible {
                outline: 3px solid rgb(7 83 201 / 32%);
                outline-offset: 2px;
            }


            /* Для подложки ограничивается именно предполагаемая высота: сторона, ближайшая к 50 см. */
            #ip-calculator .ip-calc-substrate-size-fields .ip-calc-size-input-wrap {
                position: relative;
                border-radius: 6px;
            }

            #ip-calculator .ip-calc-substrate-size-fields .ip-calc-size-input-wrap.is-corrected {
                background: #edf5ff;
                box-shadow: inset 0 0 0 1px #78a5df;
            }

            #ip-calculator .ip-calc-substrate-size-fields .ip-calc-size-input-wrap.is-corrected input {
                padding-right: 54px;
                border-color: transparent;
                background: transparent;
                color: #0753c9;
                font-weight: 700;
            }

            #ip-calculator .ip-calc-substrate-size-fields .ip-calc-size-input-wrap.is-corrected .ip-calc-size-unit {
                right: 33px;
                color: #0753c9;
            }

            #ip-calculator .ip-calc-substrate-size-fields .ip-calc-height-rule {
                position: absolute;
                z-index: 2;
                top: 50%;
                right: 4px;
                width: 24px;
                height: 24px;
                min-height: 24px;
                margin: 0;
                transform: translateY(-50%);
            }

            #ip-calculator .ip-calc-visually-hidden {
                position: absolute !important;
                width: 1px !important;
                height: 1px !important;
                padding: 0 !important;
                margin: -1px !important;
                overflow: hidden !important;
                clip: rect(0 0 0 0) !important;
                white-space: nowrap !important;
                border: 0 !important;
            }

            .ip-home .ip-height-rule-dialog {
                position: fixed;
                inset: 0;
                width: 100%;
                height: 100%;
                max-width: none;
                max-height: none;
                margin: 0;
                padding: 18px;
                border: 0;
                background: transparent;
                color: #1f2a35;
            }

            .ip-home .ip-height-rule-dialog[open] {
                display: grid;
                place-items: center;
            }

            .ip-height-rule-dialog::backdrop {
                background: rgb(8 18 34 / 64%);
                backdrop-filter: blur(3px);
            }

            .ip-height-rule-card {
                position: relative;
                width: min(620px, 100%);
                max-height: calc(100dvh - 36px);
                overflow: auto;
                border: 1px solid #dbe4ef;
                border-radius: 18px;
                background: #fff;
                box-shadow: 0 28px 90px rgb(7 21 42 / 32%);
            }

            .ip-height-rule-head {
                position: relative;
                isolation: isolate;
                overflow: hidden;
                padding: 24px 72px 22px 24px;
                border-radius: 17px 17px 0 0;
                background:
                    radial-gradient(circle at 12% 8%, rgb(255 255 255 / 12%), transparent 28%),
                    linear-gradient(118deg, #0b56c7 0%, #063b96 58%, #052b70 100%);
                color: #fff;
            }

            .ip-height-rule-head::after {
                content: "";
                position: absolute;
                z-index: -1;
                top: -62%;
                right: -10%;
                width: 34%;
                height: 225%;
                background: linear-gradient(145deg, #ef3340 0%, #d52b1e 68%, #b71f24 100%);
                transform: skewX(-18deg);
                box-shadow: -8px 0 0 rgb(255 255 255 / 94%);
            }

            .ip-height-rule-kicker {
                display: block;
                margin-bottom: 7px;
                color: #cddbf2;
                font-size: 10px;
                font-weight: 700;
                letter-spacing: .11em;
                text-transform: uppercase;
            }

            .ip-height-rule-title {
                max-width: 26ch;
                margin: 0;
                color: #fff;
                font-size: 24px;
                font-weight: 600;
                line-height: 1.25;
                letter-spacing: -.025em;
            }

            .ip-home .ip-height-rule-close {
                position: absolute;
                z-index: 2;
                top: 14px;
                right: 14px;
                display: grid;
                place-items: center;
                width: 40px;
                height: 40px;
                padding: 0;
                border: 1px solid rgb(255 255 255 / 30%);
                border-radius: 11px;
                background: rgb(255 255 255 / 12%);
                color: #fff;
                font-size: 25px;
                line-height: 1;
            }

            .ip-height-rule-body {
                padding: 22px 24px 24px;
            }

            .ip-height-rule-body p {
                margin: 0;
                color: #526071;
                font-size: 14px;
                line-height: 1.65;
            }

            .ip-height-rule-body p + p {
                margin-top: 13px;
            }

            .ip-height-rule-body strong {
                color: #1f2a35;
                font-weight: 650;
            }

            .ip-height-rule-basis {
                padding-left: 14px;
                border-left: 3px solid #0753c9;
            }

            .ip-height-rule-auto-note {
                margin-top: 18px;
                padding: 13px 15px;
                border: 1px solid #cbdcf3;
                border-radius: 10px;
                background: #edf5ff;
                color: #214f88;
                font-size: 13px;
                line-height: 1.55;
            }

            .ip-height-rule-actions {
                display: flex;
                align-items: center;
                justify-content: flex-end;
                flex-wrap: wrap;
                gap: 10px;
                margin-top: 20px;
                padding-top: 18px;
                border-top: 1px solid #e5eaf0;
            }

            .ip-home .ip-height-rule-primary,
            .ip-home .ip-height-rule-secondary {
                display: inline-flex;
                align-items: center;
                justify-content: center;
                gap: 9px;
                min-height: 44px;
                padding: 10px 15px;
                border-radius: 9px;
                font-size: 13px;
                font-weight: 600;
                line-height: 1.4;
                text-decoration: none;
            }

            .ip-home .ip-height-rule-primary {
                border: 1px solid #0753c9;
                background: #0753c9;
                color: #fff;
            }

            .ip-home .ip-height-rule-primary:hover {
                background: #003f9f;
                border-color: #003f9f;
            }

            .ip-home .ip-height-rule-secondary {
                border: 1px solid #d6dfe9;
                background: #fff;
                color: #34465c;
            }

            .ip-height-rule-dialog :is(a, button):focus-visible {
                outline: 3px solid rgb(7 83 201 / 30%);
                outline-offset: 3px;
            }

            body.ip-height-rule-open {
                overflow: hidden;
            }

            @media (max-width: 560px) {
                .ip-home .ip-height-rule-dialog { padding: 8px; }
                .ip-height-rule-card { max-height: calc(100dvh - 16px); border-radius: 15px; }
                .ip-height-rule-head { padding: 21px 60px 19px 18px; border-radius: 14px 14px 0 0; }
                .ip-height-rule-title { font-size: 21px; }
                .ip-height-rule-body { padding: 18px; }
                .ip-height-rule-actions { align-items: stretch; flex-direction: column; }
                .ip-home .ip-height-rule-primary,
                .ip-home .ip-height-rule-secondary { width: 100%; }
            }
        
/* work-schedule-rule */

            /* Пункт 30: обязательная информация у входа выводится в горизонтальном формате 60 × 40 см. */
            #ip-calculator .ip-calc-box-size-fields.is-work-schedule {
                grid-template-columns: minmax(0, 1fr) 12px minmax(0, 1fr) 26px;
            }

            #ip-calculator .ip-calc-box-size-fields.is-work-schedule .ip-calc-size-input-wrap {
                border-radius: 6px;
                background: #edf5ff;
                box-shadow: inset 0 0 0 1px #78a5df;
            }

            #ip-calculator .ip-calc-box-size-fields.is-work-schedule input {
                border-color: transparent;
                background: transparent;
                color: #0753c9;
                font-weight: 700;
                cursor: default;
            }

            #ip-calculator .ip-calc-box-size-fields.is-work-schedule .ip-calc-size-unit {
                color: #0753c9;
            }

            #ip-calculator .ip-calc-work-schedule-rule {
                align-self: center;
                width: 26px;
                height: 26px;
                min-height: 26px;
                margin: 0;
            }

            @container ip-calculator (max-width: 500px) {
                #ip-calculator .ip-calc-box-size-fields.is-work-schedule {
                    grid-template-columns: minmax(0, 1fr) 10px minmax(0, 1fr) 26px;
                    gap: 3px;
                }
            }
        
/* calculator-mobile-table-20261025 */

            /* Только мобильная компоновка калькулятора. Десктопные правила не изменяются. */
            @media (max-width: 760px) {
                #ip-calculator .ip-calc-table-stage {
                    padding-bottom: 0;
                }

                #ip-calculator .ip-calc-lines-table-wrap {
                    overflow: visible;
                    border: 0;
                    border-radius: 0;
                    background: transparent;
                }

                #ip-calculator .ip-calc-lines-table {
                    display: block;
                    width: 100%;
                    min-width: 0;
                    border-collapse: separate;
                    table-layout: auto;
                }

                #ip-calculator .ip-calc-lines-table thead {
                    position: absolute !important;
                    width: 1px !important;
                    height: 1px !important;
                    margin: -1px !important;
                    padding: 0 !important;
                    overflow: hidden !important;
                    clip: rect(0 0 0 0) !important;
                    clip-path: inset(50%) !important;
                    white-space: nowrap !important;
                    border: 0 !important;
                }

                #ip-calculator .ip-calc-lines-table tbody {
                    display: grid;
                    width: 100%;
                    gap: 10px;
                }

                #ip-calculator .ip-calc-lines-table tbody tr {
                    display: grid;
                    grid-template-columns: 34px minmax(0, 1fr);
                    grid-template-areas:
                        "number name"
                        "measure measure"
                        "cost cost";
                    width: 100%;
                    min-width: 0;
                    overflow: hidden;
                    border: 1px solid #cfd8e3;
                    border-radius: 9px;
                    background: #fff;
                }

                #ip-calculator .ip-calc-lines-table tbody tr[hidden] {
                    display: none !important;
                }

                #ip-calculator .ip-calc-lines-table td {
                    width: auto;
                    height: auto;
                    min-width: 0;
                    min-height: 0;
                    padding: 0;
                    border: 0;
                    background: transparent;
                }

                #ip-calculator .ip-calc-lines-table td:nth-child(1) {
                    grid-area: number;
                    display: grid;
                    place-items: center;
                    align-self: stretch;
                    width: 34px;
                    min-height: 52px;
                    border-right: 1px solid #e1e7ee;
                    background: #f3f6f9;
                    color: #496078;
                    font-size: 12px;
                    font-weight: 700;
                }

                #ip-calculator .ip-calc-lines-table td:nth-child(2) {
                    grid-area: name;
                    min-width: 0;
                }

                #ip-calculator .ip-calc-lines-table td:nth-child(3),
                #ip-calculator .ip-calc-lines-table td:nth-child(4) {
                    display: grid;
                    grid-template-columns: 76px minmax(0, 1fr);
                    align-items: center;
                    gap: 9px;
                    width: 100%;
                    min-width: 0;
                    min-height: 46px;
                    padding: 7px 10px;
                    border-top: 1px solid #e1e7ee;
                }

                #ip-calculator .ip-calc-lines-table td:nth-child(3) {
                    grid-area: measure;
                }

                #ip-calculator .ip-calc-lines-table td:nth-child(4) {
                    grid-area: cost;
                    padding: 7px 10px !important;
                    color: #174f91;
                    text-align: right;
                }

                #ip-calculator .ip-calc-lines-table td:nth-child(3)::before,
                #ip-calculator .ip-calc-lines-table td:nth-child(4)::before {
                    align-self: center;
                    color: #738094;
                    font-size: 11px;
                    font-weight: 500;
                    line-height: 1.3;
                    text-align: left;
                }

                #ip-calculator .ip-calc-lines-table td:nth-child(3)::before {
                    content: "Размеры";
                }

                #ip-calculator .ip-calc-lines-table td:nth-child(4)::before {
                    content: "Стоимость";
                }

                #ip-calculator .ip-calc-name-cell-inner {
                    min-height: 52px;
                    padding: 7px 8px;
                }

                #ip-calculator .ip-calc-construction-button {
                    width: 100%;
                    min-height: 38px;
                }

                #ip-calculator .ip-calc-installation-fields {
                    grid-template-columns: minmax(0, 1fr);
                    align-items: stretch;
                    gap: 6px;
                    min-height: 52px;
                    padding: 8px 9px;
                }

                #ip-calculator .ip-calc-grouping-control {
                    width: 100%;
                    justify-content: space-between;
                }

                #ip-calculator .ip-calc-grouping-control .ip-calc-grouping-edit {
                    margin-right: 0;
                }

                #ip-calculator .ip-calc-installation-address {
                    grid-template-columns: minmax(0, 1fr);
                    align-items: stretch;
                    gap: 4px;
                }

                #ip-calculator .ip-calc-installation-address input {
                    height: 38px;
                    min-height: 38px;
                }

                #ip-calculator .ip-calc-height-cell,
                #ip-calculator .ip-calc-box-size-fields,
                #ip-calculator .ip-calc-frame-quantity,
                #ip-calculator .ip-calc-measure-empty,
                #ip-calculator .ip-calc-measure-na,
                #ip-calculator .ip-calc-line-cost-actions {
                    width: 100%;
                    min-width: 0;
                }

                #ip-calculator .ip-calc-measure-empty,
                #ip-calculator .ip-calc-measure-na {
                    padding-inline: 0;
                }

                #ip-calculator .ip-calc-line-cost-actions {
                    min-height: 38px;
                }

                #ip-calculator .ip-calc-add-row-float {
                    position: static;
                    right: auto;
                    bottom: auto;
                    width: 100%;
                    max-width: none;
                    margin-top: 9px;
                    justify-content: flex-end;
                }
            }

        
/* calculator-mobile-steps-20261025 */

            /* Пошаговый режим включается только на телефоне. Десктопный калькулятор остаётся таблицей. */
            #ip-calculator .ip-calc-mobile-wizard,
            #ip-calculator .ip-calc-mobile-navigation {
                display: none;
            }

            @media (max-width: 760px) {
                #ip-calculator .ip-calc-mobile-wizard:not([hidden]) {
                    display: block;
                    margin: 0 0 14px;
                    padding: 14px;
                    border: 1px solid #cfdced;
                    border-radius: 12px;
                    background: #fff;
                    box-shadow: 0 5px 18px rgb(31 67 112 / 7%);
                }

                #ip-calculator .ip-calc-mobile-progress-head {
                    display: grid;
                    gap: 8px;
                    margin-bottom: 10px;
                }

                #ip-calculator .ip-calc-mobile-progress-head > span {
                    color: #5c6d83;
                    font-size: 11px;
                    font-weight: 700;
                    line-height: 1.3;
                    letter-spacing: .04em;
                    text-transform: uppercase;
                    white-space: nowrap;
                }

                #ip-calculator .ip-calc-mobile-progress {
                    display: grid;
                    grid-template-columns: repeat(3, minmax(0, 1fr));
                    gap: 0;
                    width: 100%;
                    margin: 0;
                    padding: 0;
                    list-style: none;
                }

                #ip-calculator .ip-calc-mobile-progress li {
                    position: relative;
                    display: grid;
                    justify-items: center;
                    gap: 5px;
                    min-width: 0;
                    color: #8995a5;
                    font-size: 10px;
                    line-height: 1.15;
                    text-align: center;
                }

                #ip-calculator .ip-calc-mobile-progress li::after {
                    content: "";
                    position: absolute;
                    top: 10px;
                    left: calc(50% + 11px);
                    right: calc(-50% + 11px);
                    height: 1px;
                    background: #dce3eb;
                }

                #ip-calculator .ip-calc-mobile-progress li:last-child::after {
                    display: none;
                }

                #ip-calculator .ip-calc-mobile-progress-number {
                    position: relative;
                    z-index: 1;
                    display: grid;
                    place-items: center;
                    width: 22px;
                    height: 22px;
                    border: 1px solid #ccd6e2;
                    border-radius: 50%;
                    background: #fff;
                    color: #6d7c8f;
                    font-size: 10px;
                    font-weight: 700;
                    font-variant-numeric: tabular-nums;
                }

                #ip-calculator .ip-calc-mobile-progress li.is-active,
                #ip-calculator .ip-calc-mobile-progress li.is-complete {
                    color: #245b9f;
                }

                #ip-calculator .ip-calc-mobile-progress li.is-active .ip-calc-mobile-progress-number {
                    border-color: #0753c9;
                    background: #0753c9;
                    color: #fff;
                    box-shadow: 0 0 0 3px rgb(7 83 201 / 10%);
                }

                #ip-calculator .ip-calc-mobile-progress li.is-complete .ip-calc-mobile-progress-number {
                    border-color: #6d9fdc;
                    background: #eaf3ff;
                    color: #0753c9;
                }

                #ip-calculator .ip-calc-mobile-progress li.is-complete::after {
                    background: #8eb3e4;
                }

                #ip-calculator .ip-calc-mobile-progress-label {
                    overflow: hidden;
                    max-width: 100%;
                    text-overflow: ellipsis;
                    white-space: nowrap;
                }

                #ip-calculator .ip-calc-mobile-step-copy {
                    padding-top: 11px;
                    border-top: 1px solid #edf1f5;
                }

                #ip-calculator .ip-calc-mobile-step-copy h3 {
                    margin: 0;
                    color: #203754;
                    font-size: 17px;
                    font-weight: 700;
                    line-height: 1.35;
                    letter-spacing: -.01em;
                }

                #ip-calculator .ip-calc-mobile-step-copy p {
                    margin: 5px 0 0;
                    color: #6c7888;
                    font-size: 12px;
                    line-height: 1.5;
                }

                #ip-calculator .ip-calc-mobile-navigation:not([hidden]) {
                    display: flex;
                    align-items: stretch;
                    gap: 9px;
                    margin-top: 13px;
                }

                #ip-calculator .ip-calc-mobile-back,
                #ip-calculator .ip-calc-mobile-next {
                    min-height: 46px;
                    margin: 0;
                    padding: 10px 14px;
                    border-radius: 9px;
                    font: 600 13px/1.35 var(--font, Arial, sans-serif);
                    text-align: center;
                }

                #ip-calculator .ip-calc-mobile-back {
                    flex: 0 0 auto;
                    border: 1px solid #cbd6e3;
                    background: #fff;
                    color: #43556d;
                }

                #ip-calculator .ip-calc-mobile-next {
                    flex: 1 1 auto;
                    border: 1px solid #0753c9;
                    background: linear-gradient(115deg, #1c75dd, #0753b8);
                    color: #fff;
                }

                #ip-calculator[data-ip-calc-mobile-step="3"] .ip-calc-mobile-back {
                    flex: 1 1 auto;
                }

                #ip-calculator .ip-calc-mobile-back:hover {
                    border-color: #9eb5d2;
                    background: #f5f8fc;
                }

                #ip-calculator .ip-calc-mobile-next:hover {
                    background: linear-gradient(115deg, #1265c9, #064ba8);
                }

                /* Шаг 1: только позиции вывески и кнопка добавления. */
                #ip-calculator[data-ip-calc-mobile-step="1"] [data-ip-calc-grouping-row],
                #ip-calculator[data-ip-calc-mobile-step="1"] [data-ip-installation-row],
                #ip-calculator[data-ip-calc-mobile-step="1"] [data-ip-calc-total-preview],
                #ip-calculator[data-ip-calc-mobile-step="1"] [data-ip-calc-final-actions],
                #ip-calculator[data-ip-calc-mobile-step="1"] > .ip-order-cta {
                    display: none !important;
                }

                /* Шаг 2: основание для букв и монтаж. Позиции и итог не занимают экран. */
                #ip-calculator[data-ip-calc-mobile-step="2"] [data-ip-letter-row],
                #ip-calculator[data-ip-calc-mobile-step="2"] .ip-calc-add-row-float,
                #ip-calculator[data-ip-calc-mobile-step="2"] [data-ip-calc-total-preview],
                #ip-calculator[data-ip-calc-mobile-step="2"] [data-ip-calc-final-actions],
                #ip-calculator[data-ip-calc-mobile-step="2"] > .ip-order-cta {
                    display: none !important;
                }

                #ip-calculator[data-ip-calc-mobile-step="2"]:not(.ip-calc-has-letters) [data-ip-calc-grouping-row] {
                    display: none !important;
                }

                #ip-calculator[data-ip-calc-mobile-step="2"] :is([data-ip-calc-grouping-row], [data-ip-installation-row]) {
                    grid-template-columns: minmax(0, 1fr);
                    grid-template-areas:
                        "name"
                        "measure"
                        "cost";
                }

                #ip-calculator[data-ip-calc-mobile-step="2"] :is([data-ip-calc-grouping-row], [data-ip-installation-row]) > td:nth-child(1) {
                    display: none !important;
                }

                #ip-calculator[data-ip-calc-mobile-step="2"] [data-ip-installation-row] > td:nth-child(3) {
                    display: none !important;
                }

                /* Шаг 3: только проверка суммы и действия с предварительным счётом. */
                #ip-calculator[data-ip-calc-mobile-step="3"] .ip-calc-table-stage {
                    display: none !important;
                }

                #ip-calculator[data-ip-calc-mobile-step="3"] [data-ip-calc-total-preview] {
                    margin-top: 0;
                }

                #ip-calculator[data-ip-calc-mobile-step="3"] [data-ip-calc-final-actions] {
                    display: flex;
                    margin-top: 14px;
                }

                #ip-calculator[data-ip-calc-mobile-step="3"] > .ip-order-cta {
                    margin-top: 18px;
                }

                #ip-calculator .ip-calc-error {
                    scroll-margin-block: 18px;
                }
            }

            @media (max-width: 380px) {
                #ip-calculator .ip-calc-mobile-wizard:not([hidden]) {
                    padding: 12px;
                }

                #ip-calculator .ip-calc-mobile-progress-head {
                    gap: 8px;
                }
            }

            @media (prefers-reduced-motion: reduce) {
                #ip-calculator .ip-calc-mobile-next,
                #ip-calculator .ip-calc-mobile-back {
                    transition: none;
                }
            }
        
/* Integration with the existing data providers and shared header. */
.ip-template-fragment { display: contents; }
.ip-home .ip-anchor { display: block; height: 0; scroll-margin-top: calc(var(--an-header-height,76px) + 20px); }
.ip-home .ip-review { overflow: hidden; }
.ip-home .ip-review-player { display: block; width: 100%; aspect-ratio: 16/10; background:#111; object-fit:contain; }
.ip-home #ip-reviews .ip-review-video blockquote { padding-inline:18px; }
.ip-home .ip-ready-card progress { accent-color:var(--accent); width:80%; margin-right:10px; }
.ip-home #reviewSubmitModal { --accent:#e31e24; --ink:#20252b; --muted:#59636f; --line:#dde2e7; }
.contact-copy-modal{position:fixed;inset:0;z-index:145;padding:20px;display:grid;place-items:center;visibility:hidden;opacity:0;transition:opacity .2s ease,visibility .2s ease}
.contact-copy-modal.is-open{visibility:visible;opacity:1}
.contact-copy-modal__overlay{position:absolute;inset:0;width:100%;height:100%;margin:0;padding:0;border:0;border-radius:0;background:rgba(9,20,38,.58);cursor:pointer}
.contact-copy-modal__dialog{position:relative;z-index:1;width:min(430px,100%);padding:28px;border:1px solid #dbe6f3;border-radius:22px;background:#fff;box-shadow:0 28px 80px rgba(7,22,45,.3);transform:translateY(12px) scale(.985);transition:transform .2s ease}
.contact-copy-modal.is-open .contact-copy-modal__dialog{transform:none}
.contact-copy-modal__close{position:absolute;top:14px;right:14px;width:40px;height:40px;margin:0;padding:0;display:grid;place-items:center;border:1px solid #dce6f2;border-radius:13px;background:#f5f8fc;color:#314057;font-size:17px;cursor:pointer}
.contact-copy-modal__icon{width:48px;height:48px;margin-bottom:20px;display:grid;place-items:center;border-radius:15px;background:#e9f7ee;color:#159447;font-size:20px}
.contact-copy-modal[data-contact-kind="email"] .contact-copy-modal__icon{background:#edf2f8;color:#52637a}
.contact-copy-modal__kicker{display:block;margin-bottom:6px;color:#0869e8;font-size:11px;font-weight:750;letter-spacing:.09em;text-transform:uppercase}
.contact-copy-modal__title{margin:0;color:#111d31;font-size:27px;font-weight:650;line-height:1.1;letter-spacing:-.5px}
.contact-copy-modal__text{margin:9px 0 18px;color:#69788d;font-size:13px;line-height:1.5}
.contact-copy-modal__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}
.contact-copy-modal__value{min-width:0;overflow-wrap:anywhere;color:#17243a;font-size:16px;font-weight:650}
.contact-copy-modal__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:inherit;font-size:12px;font-weight:700;cursor:pointer;box-shadow:0 3px 12px rgba(18,48,84,.09)}
.contact-copy-modal__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;text-decoration:none}
.contact-copy-modal__status{min-height:18px;margin-top:8px;display:block;color:#168342;font-size:12px}
.contact-copy-modal__close:focus-visible,.contact-copy-modal__copy:focus-visible,.contact-copy-modal__action:focus-visible{outline:3px solid rgba(8,105,232,.24);outline-offset:2px}
body.contact-copy-modal-open{overflow:hidden}
.contact-copy-toast{position:fixed;z-index:150;top:96px;right:20px;max-width:min(340px,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);visibility:hidden;opacity:0;pointer-events:none;transform:translateY(-8px);transition:opacity .18s ease,transform .18s ease,visibility .18s ease}
.contact-copy-toast.is-visible{visibility:visible;opacity:1;transform:none}
.order-modal{position:fixed;inset:0;z-index:130;padding:24px;display:flex;align-items:center;justify-content:center;visibility:hidden;opacity:0;transition:opacity .22s ease,visibility .22s ease}
.order-modal.is-open{visibility:visible;opacity:1}
.order-modal__overlay{position:absolute;inset:0;width:100%;height:100%;margin:0;border:0;border-radius:0;background:rgba(9,20,38,.62);cursor:pointer}
.order-modal__dialog{position:relative;z-index:1;width:min(1180px,100%);height:min(760px,calc(100vh - 48px));overflow:hidden;border-radius:10px;background:#f6f9fd;box-shadow:0 28px 90px rgba(5,15,30,.35);transform:translateY(16px) scale(.985);transition:transform .22s ease}
.order-modal.is-open .order-modal__dialog{transform:none}
.order-modal__close{position:absolute;top:14px;right:14px;z-index:3;width:38px;height:38px;margin:0;padding:0;border:1px solid #dce6f2;border-radius:8px;background:#fff;color:#122036;box-shadow:0 5px 18px rgba(15,35,65,.12);cursor:pointer}
.order-modal__frame{display:block;width:100%;height:100%;border:0;background:#f6f9fd}
@media (max-width:700px){.order-modal{padding:0;align-items:flex-end}
.order-modal__dialog{width:100%;height:100%;max-height:100%;border-radius:0}
.order-modal__close{top:10px;right:10px}}
.review-submit-modal{
  position:fixed;
  inset:0;
  z-index:5000;
  display:none;
  place-items:center;
  padding:24px;
}
.review-submit-modal.is-open{display:grid}
.review-submit-modal__overlay{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  border:0;
  background:rgba(9,20,36,.64);
  backdrop-filter:blur(4px);
  cursor:pointer;
}
.review-submit-modal__dialog{
  position:relative;
  z-index:1;
  width:min(760px,100%);
  max-height:min(900px,calc(100vh - 48px));
  overflow:auto;
  border:1px solid #dce6f2;
  border-radius:18px;
  background:#fff;
  box-shadow:0 28px 90px rgba(5,24,52,.28);
}
.review-submit-modal__close{
  position:absolute;
  right:16px;
  top:16px;
  z-index:2;
  width:40px;
  height:40px;
  display:grid;
  place-items:center;
  border:1px solid #dce6f2;
  border-radius:10px;
  background:#fff;
  color:#42536a;
  cursor:pointer;
}
.review-submit-modal__intro{
  padding:30px 32px 20px;
  border-bottom:1px solid #e7edf5;
  background:linear-gradient(135deg,#f7fbff,#fff);
}
.review-submit-modal__intro>span{
  display:inline-block;
  margin-bottom:9px;
  color:#0866e8;
  font-size:12px;
  font-weight:750;
  text-transform:uppercase;
  letter-spacing:.06em;
}
.review-submit-modal__title{
  margin:0 48px 8px 0;
  color:#111827;
  font-size:30px;
  font-weight:650;
  line-height:1.08;
  letter-spacing:-.035em;
}
.review-submit-modal__intro>p:last-child{
  margin:0;
  max-width:610px;
  color:#67778d;
  font-size:14px;
  line-height:1.55;
}
.review-submit-form{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:17px;
  padding:26px 32px 32px;
}
.review-submit-form__row{
  grid-column:1/-1;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:17px;
}
.review-submit-form label,
.review-rating{
  min-width:0;
  margin:0;
  border:0;
  padding:0;
}
.review-submit-form label>span,
.review-rating legend{
  display:block;
  margin-bottom:7px;
  color:#29364a;
  font-size:13px;
  font-weight:700;
}
.review-submit-form label>span small{
  color:#8a98aa;
  font-size:11px;
  font-weight:500;
}
.review-submit-form input[type="text"],
.review-submit-form textarea{
  width:100%;
  padding:12px 13px;
  border:1px solid #cbd8e9;
  border-radius:9px;
  background:#fff;
  color:#111827;
  font:inherit;
  font-size:14px;
  outline:none;
  transition:border-color .2s ease,box-shadow .2s ease;
}
.review-submit-form textarea{min-height:125px;resize:vertical;line-height:1.55}
.review-submit-form input[type="text"]:focus,
.review-submit-form textarea:focus{
  border-color:#72aaf2;
  box-shadow:0 0 0 3px rgba(8,102,232,.10);
}
.review-submit-form__wide{grid-column:1/-1}
.review-rating{grid-column:1/-1}
.review-rating__stars{
  width:max-content;
  display:flex;
  flex-direction:row-reverse;
  gap:3px;
}
.review-rating__stars input{
  position:absolute;
  opacity:0;
  pointer-events:none;
}
.review-rating__stars label{
  margin:0!important;
  color:#cbd5e1!important;
  font-size:30px;
  line-height:1;
  cursor:pointer;
  transition:color .15s ease,transform .15s ease;
}
.review-rating__stars label:hover{transform:translateY(-1px)}
.review-rating__stars label:hover,
.review-rating__stars label:hover~label,
.review-rating__stars input:checked~label{
  color:#0866e8!important;
}
.review-photo-field{
  padding:17px!important;
  border:1px dashed #9ebce1!important;
  border-radius:12px!important;
  background:#f7fbff;
}
.review-photo-field__title{
  display:flex!important;
  align-items:center;
  gap:8px;
}
.review-photo-field__title i{color:#0866e8}
.review-photo-field input[type="file"]{
  width:100%;
  color:#52647a;
  font-size:13px;
}
.review-photo-field small{
  display:block;
  margin-top:7px;
  color:#77879b;
  font-size:12px;
  font-weight:400;
  line-height:1.45;
}
.review-photo-preview{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:8px;
  margin-top:12px;
}
.review-photo-preview:empty{display:none}
.review-photo-preview figure{
  margin:0;
  aspect-ratio:4/3;
  overflow:hidden;
  border:1px solid #dce6f2;
  border-radius:9px;
  background:#eef3f8;
}
.review-photo-preview img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
}
.review-submit-consent{
  display:flex!important;
  align-items:flex-start;
  gap:10px;
  color:#66768d;
  font-size:12px;
  line-height:1.45;
}
.review-submit-consent input{
  flex:0 0 auto;
  width:18px;
  height:18px;
  margin-top:1px;
}
.review-submit-consent span{margin:0!important;color:inherit!important;font-size:inherit;font-weight:400}
.review-submit-button{
  min-height:49px;
  border:0;
  border-radius:10px;
  background:#0866e8;
  color:#fff;
  font:inherit;
  font-size:14px;
  font-weight:750;
  cursor:pointer;
  box-shadow:0 10px 24px rgba(8,102,232,.20);
}
.review-submit-button:hover{background:#075bce}
.review-submit-button:disabled{opacity:.65;cursor:wait}
.review-submit-note{
  margin:0;
  color:#8290a2;
  font-size:11px;
  line-height:1.45;
}
body.review-submit-open{overflow:hidden}
@media (max-width:680px){.review-submit-modal{padding:10px}
.review-submit-modal__dialog{max-height:calc(100vh - 20px);border-radius:15px}
.review-submit-modal__intro{padding:24px 20px 17px}
.review-submit-modal__title{font-size:27px}
.review-submit-form{grid-template-columns:1fr;padding:20px;gap:15px}
.review-submit-form__row{grid-template-columns:1fr}
.review-photo-preview{grid-template-columns:repeat(3,minmax(0,1fr))}}
body:has(> #siteHeader) :is(.btn,.home-outline-button,.home-calc-tabs button,
  .order-request-submit,.quiz-btn,.quiz-calc-btn,.quiz-modal__next,.quiz-modal__back,
  .quiz-add-construction button,.letter-price-option__action,.review-submit-button,
  .projects-toolbar button,.work-type-tabs button),
body:has(> #siteHeader) main :is(input:not([type=checkbox]):not([type=radio]),select,textarea) {
  font-size:var(--text-button-size);
  line-height:1.2;
  font-weight:600;
}
body:has(> #siteHeader) :is(.order-request-form,.review-submit-form) label {
  font-size:var(--text-card-size);
  line-height:1.5;
}
body:has(> #siteHeader) :is(.order-request-consent,.review-submit-consent) {
  font-size:var(--text-small-size);
  line-height:1.45;
}
body:has(> #siteHeader) :is(.home-channel-dialog h2,.exit-assist__portfolio h2,
  .contact-copy-modal__title) { font-size:var(--heading-subsection-size); line-height:1.3; font-weight:600; }
body:has(> #siteHeader) :is(.exit-assist__portfolio>p,.exit-assist__portfolio li a,
  .exit-assist__project-category,.exit-assist__benefit-note,.exit-assist__more a,
  .exit-assist__portfolio-heading>a,.home-channel-dialog p,
  .contact-copy-modal__text,.contact-copy-modal__copy,.contact-copy-modal__status) {
  font-size:var(--text-small-size);
  line-height:1.45;
}