@font-face {
  font-family: "Stamp Display";
  src: url("/assets/font/display.ttf") format("truetype");
  font-display: swap;
}

@font-face {
  font-family: "PT Sans Local";
  src: url("/assets/font/pt-sans.ttf") format("truetype");
  font-display: swap;
}

:root {
  color-scheme: light;
  --blue: #285b85;
  --blue-dark: #1f4b70;
  --blue-light: #edf4f8;
  --red: #e30613;
  --ink: #282d32;
  --muted: #68737d;
  --line: #d7e0e6;
  --paper: #fff;
  --surface: #f5f7f8;
  --cta-font-family: "PT Sans Local", "Arial", sans-serif;
  --cta-font-size: 16px;
  --cta-compact-font-size: 15px;
  --cta-small-font-size: 14px;
  --cta-font-weight: 700;
  --cta-secondary-weight: 600;
  --cta-line-height: 1.2;
  --cta-order-background: var(--blue-dark);
  --cta-order-background-hover: var(--blue);
  --order-section-gap: 25px;
  --form-shell-radius: 16px;
  --form-control-radius: 11px;
  --form-compact-control-radius: 8px;
  --form-choice-radius: 12px;
  --content: 1160px;
  --shadow: 0 14px 36px rgb(29 65 92 / 10%);
  font-family: "PT Sans Local", "Arial", sans-serif;
  font-synthesis: none;
  text-rendering: optimizeLegibility;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: calc(var(--site-header-height, 0px) + 12px); }
html.header-menu-open { overflow: hidden; }
body { margin: 0; color: var(--ink); background: var(--paper); font-size: 17px; line-height: 1.55; }
img { display: block; max-width: 100%; }
a { color: var(--blue); text-underline-offset: 3px; }
a:hover { color: var(--red); }
button, input, select { font: inherit; }
button, a, summary { -webkit-tap-highlight-color: transparent; }
:focus-visible { outline: 3px solid #e98a90; outline-offset: 3px; }
.mandatory-marker { margin-inline-start: .16em; color: var(--red); font-size: .85em; font-weight: 700; line-height: 1; vertical-align: .06em; }

.page-width { width: min(var(--content), calc(100% - 40px)); margin-inline: auto; }
.skip-link { position: fixed; z-index: 100; left: 12px; top: 12px; padding: 10px 14px; transform: translateY(-160%); color: #fff; background: var(--blue-dark); }
.skip-link:focus { transform: translateY(0); }
.site-header { background: var(--paper); border-bottom: 1px solid var(--line); }
.header-top { min-height: 112px; display: flex; align-items: center; justify-content: space-between; gap: 32px; }
.brand-link { display: block; flex: 0 0 230px; }
.site-logo { width: 208px; height: auto; }
.header-details { display: flex; align-items: center; justify-content: flex-end; gap: 28px; color: var(--muted); font-size: 14px; text-align: right; }
.header-details a { color: var(--blue-dark); }
.header-phone { font-size: 22px; font-weight: 700; text-decoration: none; white-space: nowrap; }
.nav-band { background: var(--blue); }
.main-nav { min-height: 53px; display: flex; align-items: stretch; }
.nav-list { display: flex; align-items: stretch; gap: 0; margin: 0; padding: 0; list-style: none; }
.nav-list > li { position: relative; display: flex; align-items: stretch; }
.nav-list > li > a, .nav-dropdown > summary { display: flex; align-items: center; min-height: 53px; padding: 0 17px; color: white; font-size: 15px; text-decoration: none; cursor: pointer; }
.nav-list > li > a:hover, .nav-list > li > a[aria-current="page"], .nav-dropdown[open] > summary { color: white; background: var(--blue-dark); }
.nav-list .nav-order { background: var(--red); }
.nav-list .nav-order:hover { background: #b90a15; }
.nav-dropdown { position: relative; }
.nav-dropdown > summary { list-style: none; gap: 8px; }
.nav-dropdown > summary::-webkit-details-marker { display: none; }
.nav-dropdown ul { position: absolute; z-index: 12; top: 100%; left: 0; width: 250px; margin: 0; padding: 8px 0; list-style: none; background: white; box-shadow: var(--shadow); }
.nav-dropdown ul a { display: block; padding: 9px 16px; color: var(--ink); text-decoration: none; }
.nav-dropdown ul a:hover { background: var(--blue-light); color: var(--blue-dark); }
.mobile-nav { display: none; }

.homepage-source-page { --home-section-inset: clamp(20px, 2.1vw, 30px); }
.home-title { padding-block: 32px 28px; }
.home-hero { display: grid; width: 100%; max-width: 960px; grid-template-columns: minmax(0, 1.85fr) minmax(250px, 1fr); align-items: stretch; gap: clamp(18px, 1.65vw, 24px); margin-inline: auto; padding: 0; font-family: "PT Sans Local", "Arial", sans-serif; }
.home-hero__content { display: flex; min-width: 0; flex-direction: column; align-items: stretch; gap: 13px; }
.home-hero__title { max-width: 620px; margin: 0; color: var(--ink); font-family: inherit; font-size: clamp(33px, 3.25vw, 42px); font-weight: 700; letter-spacing: -.025em; line-height: 1.04; text-transform: uppercase; text-wrap: balance; }
.home-hero__reviews { display: flex; width: fit-content; max-width: 100%; min-height: 38px; align-items: center; gap: clamp(8px, 1vw, 13px); padding: 2px 13px; border: 1px solid #e1e8ed; border-radius: 999px; color: var(--ink); background: rgb(255 255 255 / 88%); box-shadow: 0 4px 12px rgb(31 75 112 / 7%); text-decoration: none; transition: box-shadow .18s ease, transform .18s ease; }
.home-hero__reviews:hover { color: var(--ink); box-shadow: 0 7px 17px rgb(31 75 112 / 12%); transform: translateY(-1px); }
.home-hero__reviews-card { display: inline-flex; flex: 0 0 auto; align-items: center; gap: clamp(8px, 1vw, 13px); color: inherit; text-decoration: none; }
.home-hero__reviews-card:hover { color: var(--ink); }
.home-hero__reviews-brand { display: inline-flex; flex: 0 0 auto; align-items: center; gap: 6px; white-space: nowrap; }
.home-hero__reviews-pin { display: block; width: 18px; height: 23px; color: #ff4b32; }
.home-hero__reviews-name { color: var(--ink); font-size: 15px; font-weight: 700; }
.home-hero__reviews-divider { width: 1px; height: 23px; flex: 0 0 1px; background: #d7e0e6; }
.home-hero__reviews-score { color: #171b20; font-size: 16px; font-weight: 700; white-space: nowrap; }
.home-hero__reviews-stars { color: #f0b900; font-size: 18px; letter-spacing: .02em; line-height: 1; white-space: nowrap; }
.home-hero__reviews-action { display: inline-flex; align-items: center; gap: 5px; color: var(--blue-dark); font-size: 14px; font-weight: 700; text-decoration: none; white-space: nowrap; }
.home-hero__reviews-card:focus-visible,
.home-hero__reviews-action:focus-visible { outline: 3px solid #e30613; outline-offset: 3px; border-radius: 4px; }
.home-hero__reviews-action span { font-size: 18px; font-weight: 400; line-height: 1; }
.home-top-benefits { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: 1fr; gap: 12px; margin: 0; padding: 0; list-style: none; }
.home-top-benefits li { display: grid; grid-template-columns: 42px minmax(0, 1fr) 42px; min-width: 0; min-height: 78px; align-items: center; gap: 8px; padding: 9px; border: 1px solid #e2e9ee; border-radius: 14px; background: #fff; box-shadow: 0 4px 12px rgb(31 75 112 / 5%); }
.home-top-benefits li::before { display: none; content: none; }
.home-top-benefits__icon { display: grid; width: 42px; height: 42px; flex: 0 0 42px; place-items: center; justify-self: center; }
.home-top-benefits__icon img { width: 100%; height: 100%; object-fit: contain; }
.home-top-benefits__icon--stopwatch img { width: 86%; height: 86%; }
.home-top-benefits__icon--wallet img { width: 92%; height: 92%; }
.home-top-benefits__icon--check { width: 28px; height: 28px; flex-basis: 28px; border-radius: 50%; background: #4ba45c; }
.home-top-benefits__icon--check svg { width: 19px; height: 19px; fill: none; stroke: #fff; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2.5; }
.home-top-benefits__text { display: grid; min-width: 0; gap: 4px; text-align: center; }
.home-top-benefits__line { color: var(--ink); font-size: 16px; font-weight: 700; font-synthesis: weight; line-height: 1.2; overflow-wrap: anywhere; }
.home-top-benefits__line--secondary { color: var(--muted); font-size: 14px; font-weight: 400; }
.home-top-benefits__value { color: var(--blue); font-size: 24px; font-weight: 700; font-synthesis: weight; line-height: 1; white-space: nowrap; }
.home-hero__cta,
.equipment-article-action .place-order { display: inline-flex; min-height: 50px; align-items: center; justify-content: center; padding: 11px 20px; border: 0; border-radius: 13px; color: #fff; background: var(--cta-order-background); box-shadow: 0 6px 14px rgb(31 75 112 / 13%); font: var(--cta-font-weight) 18px/var(--cta-line-height) var(--cta-font-family); text-align: center; text-decoration: none; transition: background-color .18s ease, box-shadow .18s ease, transform .18s ease; }
.home-hero__cta { width: 100%; }
.equipment-article-action .place-order { width: fit-content; max-width: 100%; }
.home-hero__cta:hover,
.equipment-article-action .place-order:hover { color: #fff; background: var(--cta-order-background-hover); box-shadow: 0 11px 22px rgb(31 75 112 / 20%); transform: translateY(-1px); }
.home-hero__cta:focus-visible,
.equipment-article-action .place-order:focus-visible { outline: 3px solid #e30613; outline-offset: 3px; }
.home-hero__visual { position: relative; width: 100%; min-width: 0; min-height: 0; align-self: stretch; margin-block-start: 6px; overflow: hidden; border-radius: 12px; }
.home-hero__visual::before { position: absolute; z-index: 1; inset: 0 auto 0 0; width: clamp(20px, 2.5vw, 32px); background: linear-gradient(90deg, #fff 0%, rgb(255 255 255 / 74%) 38%, rgb(255 255 255 / 0%) 100%); content: ""; pointer-events: none; }
.home-hero__photo { position: absolute; inset: 0; display: block; width: 100%; height: 100%; object-fit: cover; object-position: center 58%; }
.homepage-source-page .home-title { padding-bottom: var(--home-section-inset); }
.homepage-source-page .home-catalog.section-block { padding-block: var(--home-section-inset); }
.homepage-source-page .home-faq.section-block,
.homepage-source-page .about-block { padding-block: var(--home-section-inset); }
.homepage-source-page .home-consultation-wrap { padding-block: var(--home-section-inset); }
.homepage-source-page .home-consultation-wrap .ip-consultation { margin: 0 auto; }
.home-source-heading { margin: 0 0 24px; font-size: clamp(23px, 2.5vw, 30px); }
.home-catalog #catalog-title { font-size: 25px; text-align: center; text-transform: uppercase; }
.category-card-grid { display: grid; grid-template-columns: 1fr; }
.hero-copy h1, h1, h2, h3 { font-family: "Stamp Display", "Arial", sans-serif; line-height: 1.15; }
h1 { margin: 0 0 16px; font-size: clamp(36px, 4vw, 54px); color: var(--blue-dark); }
h2 { margin: 0 0 17px; font-size: clamp(27px, 3vw, 36px); color: var(--blue-dark); }
h3 { margin: 0; font-size: 22px; }
.hero-copy > p:not(.eyebrow) { max-width: 460px; margin: 0 0 26px; color: var(--muted); font-size: 20px; }
.eyebrow { margin: 0 0 8px; color: var(--red); font-size: 13px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 12px; }
.button { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 11px 21px; border: 0; border-radius: 3px; color: #fff; background: var(--red); font: var(--cta-font-weight) var(--cta-font-size)/var(--cta-line-height) var(--cta-font-family); text-align: center; text-decoration: none; text-transform: none; cursor: pointer; transition: background-color .2s ease, transform .2s ease; }
.button:hover { color: #fff; background: #bb101b; transform: translateY(-1px); }
.button:active { transform: translateY(1px) scale(.99); }
.button--order { color: #fff; background: var(--cta-order-background); }
.button--order:hover { color: #fff; background: var(--cta-order-background-hover); }
.button-secondary { color: var(--ink); background: white; border: 1px solid var(--blue); font-weight: var(--cta-secondary-weight); }
.button-secondary:hover { color: #fff; background: var(--blue-dark); }
.button-small { min-height: 40px; padding: 8px 15px; font-size: var(--cta-small-font-size); }
.hero-contact { display: flex; align-items: center; gap: 12px; margin-top: 25px; color: var(--muted); font-size: 15px; }
.hero-contact a { font-size: 18px; font-weight: 700; text-decoration: none; }
.section-block { padding-block: 58px; }
.section-tint { background: var(--surface); }
.section-heading { max-width: 700px; margin: 0 auto 30px; text-align: center; }
.section-heading > p:last-child { margin: 0; color: var(--muted); }
.center-action { margin-top: 29px; text-align: center; }
.home-faq { max-width: 920px; }
.faq-list { max-width: 900px; margin: 0 auto 24px; border-top: 1px solid var(--line); }
.faq-item { padding: 16px 0; border-bottom: 1px solid var(--line); }
.faq-item summary { display: flex; align-items: center; justify-content: flex-start; gap: 10px; color: var(--blue-dark); font-weight: 700; cursor: pointer; list-style: none; }
.faq-number { flex: 0 0 auto; color: var(--red); }
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary::after { content: "+"; flex: 0 0 auto; margin-left: auto; color: var(--red); font-size: 24px; font-weight: 400; }
.faq-item[open] summary::after { content: "−"; }
.faq-item p { max-width: 68ch; margin: 13px 0 0; color: var(--muted); }
.homepage-source-page .home-faq { max-width: 900px; }
.homepage-source-page .home-catalog #catalog-title,
.homepage-source-page .home-faq > .home-faq-heading,
.homepage-source-page .home-about-heading,
.online-page-heading { position: relative; margin-bottom: 24px; padding-bottom: 8px; color: var(--ink); font-family: inherit; font-size: 25px; font-weight: 400; line-height: 1.428571; text-align: center; text-transform: uppercase; }
.homepage-source-page .home-catalog #catalog-title::after,
.homepage-source-page .home-faq > .home-faq-heading::after,
.homepage-source-page .home-about-heading::after,
.online-page-heading::after { position: absolute; bottom: 0; left: 50%; width: min(220px, calc(100% - 32px)); height: 1px; border-radius: 999px; background: var(--red); opacity: .68; content: ""; transform: translateX(-50%); }
.homepage-source-page .home-catalog.section-block { padding-bottom: calc(var(--home-section-inset) + 15px); }
.homepage-source-page .home-catalog .category-card-grid { row-gap: 15px; }
.homepage-source-page .home-catalog .online-category-card { margin-top: 0; }
.homepage-source-page .home-about-heading { margin-bottom: 20px; }
.homepage-source-page .home-faq__layout { display: grid; gap: 14px; }
.homepage-source-page .home-faq__columns { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; gap: 18px; }
.homepage-source-page .home-faq .home-faq__column { display: grid; grid-template-columns: minmax(0, 1fr); align-content: start; gap: 14px; max-width: none; margin: 0; border: 0; }
.homepage-source-page .home-faq .faq-item { min-width: 0; min-height: 50px; align-self: start; padding: 8px 10px; border: 1px solid rgb(49 119 174 / 24%); border-radius: 14px; background: linear-gradient(150deg, rgb(255 255 255 / 98%), rgb(244 249 255 / 96%)); box-shadow: 0 8px 20px rgb(31 83 124 / 8%), inset 0 1px 0 rgb(255 255 255 / 88%); transition: border-color .18s ease, box-shadow .18s ease; }
.homepage-source-page .home-faq .faq-item:hover { border-color: rgb(49 119 174 / 32%); box-shadow: 0 11px 22px rgb(31 83 124 / 12%), inset 0 1px 0 rgb(255 255 255 / 88%); }
.homepage-source-page .home-faq .faq-item summary { min-height: 32px; display: grid; grid-template-columns: 1.5em minmax(0, 1fr) auto; gap: 8px; align-items: center; }
.homepage-source-page .home-faq .faq-number { color: var(--ink); font-weight: 700; }
.homepage-source-page .home-faq .faq-item summary::after { margin-left: 0; }
.homepage-source-page .home-faq .faq-item p { margin: 10px 30px 0; }
.homepage-source-page .home-faq .home-faq__centered { width: calc((100% - 18px) / 2); justify-self: center; }
@media (max-width: 760px) {
  .homepage-source-page .home-faq__columns { grid-template-columns: minmax(0, 1fr); }
  .homepage-source-page .home-faq .home-faq__centered { width: auto; justify-self: stretch; }
  .homepage-source-page .home-faq .faq-item { min-height: 60px; }
}
@media (max-width: 388px) {
  .homepage-source-page .home-faq .faq-item { min-height: 72px; }
}
.about-block { padding-block: 55px; }
.home-about-copy { max-width: 750px; margin-inline: auto; text-align: justify; }
.home-about-copy p { margin: 0 0 13px; }
.home-about-copy p:last-child { margin-bottom: 0; }
@media (max-width: 620px) {
  .home-about-copy { text-align: center; }
}

.breadcrumbs { display: flex; gap: 10px; align-items: center; padding-top: 26px; color: var(--muted); font-size: 14px; }
.breadcrumbs a { color: var(--muted); }
.page-heading { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) minmax(180px, .5fr); align-items: center; gap: 36px; padding-block: 39px 28px; border-bottom: 1px solid var(--line); }
.page-heading > .eyebrow, .page-heading > h1, .page-heading > .page-lead, .page-heading > .review-note { grid-column: 1; }
.page-heading > h1 { margin: 0; font-size: clamp(34px, 4vw, 47px); }
.page-lead { max-width: 760px; margin: 0; color: var(--muted); font-size: 19px; }
.article-image { grid-column: 2; grid-row: 1 / span 4; justify-self: center; width: min(100%, 260px); max-height: 225px; object-fit: contain; }
.review-note { max-width: 760px; margin: 0; padding: 10px 13px; border-left: 3px solid #e5a943; color: #665321; background: #fff8e8; font-size: 14px; }
.article-body { max-width: 850px; padding-block: 28px 16px; }
.article-body p, .article-paragraph { max-width: 75ch; color: #454d54; }
.article-paragraph { max-width: 850px; margin: 22px 0; }
.equipment-article-page { padding-bottom: 42px; }
.equipment-article-heading { margin: 20px 0 22px; }
.equipment-article-heading h1, .equipment-article-heading p { margin: 0; font-size: 25px; line-height: 1.25; text-transform: uppercase; }
.equipment-article-layout { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; align-items: start; }
.equipment-article-image { display: block; width: 90%; height: auto; justify-self: center; object-fit: contain; }
.equipment-article-copy { min-width: 0; }
.equipment-article-paragraph { margin: 0 0 15px; color: #454d54; line-height: 1.55; }
.equipment-article-action { margin-top: 20px; text-align: center; }
.content-section { padding-block: 20px; }
.content-section h2 { font-size: 27px; }
.content-section p { margin: 10px 0; }
.content-section-with-image { display: grid; grid-template-columns: 120px 1fr; gap: 20px; align-items: start; }
.content-section-with-image > img { width: 120px; height: 120px; object-fit: contain; }
.inline-action { display: flex; align-items: center; justify-content: space-between; gap: 20px; max-width: 850px; margin-block: 32px; padding: 24px; background: var(--blue-light); }
.inline-action h2 { margin: 0; font-size: 24px; }
.catalog-section { padding-block: 10px 28px; }
.price-review { max-width: 850px; margin: 24px 0; padding: 13px 16px; border-left: 3px solid #e5a943; background: #fff8e8; color: #665321; }
.order-steps { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; padding-block: 31px 20px; }
.order-step { min-height: 206px; padding: 19px; border: 1px solid var(--line); background: var(--surface); }
.order-step > span { display: grid; width: 34px; height: 34px; margin-bottom: 17px; place-items: center; border-radius: 50%; color: white; background: var(--blue); font-weight: 700; }
.order-step h2 { font-size: 20px; }
.order-step p { margin-bottom: 0; color: var(--muted); font-size: 14px; }
.order-step img { width: 60px; height: 60px; margin-top: 12px; object-fit: contain; }
.contact-panel { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; padding-block: 30px; }
.contact-panel > div { padding: 20px; border: 1px solid var(--line); background: var(--surface); }
.contact-value { display: block; margin: 4px 0; color: var(--blue-dark); font-size: 19px; font-weight: 700; }
.map-placeholder { display: flex; align-items: center; gap: 15px; min-height: 100px; color: var(--muted); }
.map-placeholder img { width: 36px; height: 36px; object-fit: contain; }

.form-section { display: grid; grid-template-columns: .75fr 1.25fr; gap: 40px; margin-block: 45px 58px; padding: 30px; border: 1px solid var(--line); background: var(--surface); }
.form-intro p:last-child { color: var(--muted); }
.form-intro h2 { font-size: 30px; }
.demo-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 15px; }
.demo-form > label { display: grid; gap: 6px; color: var(--blue-dark); font-size: 14px; font-weight: 700; }
.demo-form input:not([type="checkbox"]):not([type="file"]), .demo-form select { width: 100%; min-height: 45px; padding: 8px 11px; border: 1px solid #bdcad3; border-radius: 2px; color: var(--ink); background: white; }
.demo-form input[type="file"] { width: 100%; padding: 10px; border: 1px dashed #aab8c2; background: white; }
.demo-form .file-field, .demo-form .consent, .demo-form .button, .demo-form .form-result { grid-column: 1 / -1; }
.demo-form .file-field small { color: var(--muted); font-weight: 400; }
.demo-form .consent { display: flex; flex-wrap: nowrap; align-items: flex-start; gap: 10px; color: var(--muted); font-weight: 400; }
.demo-form .consent > span { min-width: 0; }
.demo-form .consent input { width: 16px; height: 16px; flex: 0 0 16px; margin: 3px 0 0; accent-color: var(--blue); }
.demo-form .button { justify-self: start; }
.form-result { margin: 0; padding: 10px 13px; color: #17552e; background: #e8f4eb; }

[hidden] { display: none !important; }

.ip-order-form { display: grid; gap: 22px; margin-block: 32px 58px; }
.ip-order-block { padding: 24px; border: 1px solid var(--line); background: var(--surface); }
.ip-order-block h2 { margin: 0 0 20px; font-size: 23px; }
.ip-order-field-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 15px; }
.ip-order-field { display: grid; align-content: start; gap: 6px; color: var(--blue-dark); font-size: 14px; font-weight: 700; }
.ip-order-field input:not([type="file"]), .ip-order-field select, .ip-order-field textarea { width: 100%; min-height: 43px; padding: 9px 11px; border: 1px solid #bdcad3; border-radius: 2px; color: var(--ink); background: #fff; font: inherit; font-weight: 400; }
.ip-order-field textarea { resize: vertical; }
.ip-order-file, .ip-order-comment { grid-column: 1 / -1; }
.ip-order-field input[type="file"] { width: 100%; padding: 10px; border: 1px dashed #aab8c2; background: #fff; }
.ip-order-field small { color: var(--muted); font-weight: 400; }
.ip-order-maket-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.ip-order-option { display: block; min-width: 0; cursor: pointer; }
.ip-order-option > input { margin: 0 0 8px 2px; accent-color: var(--blue); }
.ip-order-option-card { display: grid; height: 100%; border: 1px solid var(--line); background: #fff; transition: border-color .15s ease, box-shadow .15s ease; }
.ip-order-option > input:checked + .ip-order-option-card { border-color: var(--blue); box-shadow: 0 0 0 2px color-mix(in srgb, var(--blue) 18%, transparent); }
.ip-order-option-card > img { display: block; width: 100%; height: 150px; object-fit: contain; background: #f7f8f9; }
.ip-order-option-copy { display: grid; align-content: start; gap: 7px; padding: 12px; color: var(--ink); font-size: 14px; }
.ip-order-option-copy > span { color: var(--muted); }
.ip-order-equipment-list { display: grid; gap: 10px; }
.ip-order-equipment-list .ip-order-option-card { grid-template-columns: 155px minmax(0, 1fr); min-height: 128px; }
.ip-order-equipment-list .ip-order-option-card > img, .ip-order-option-placeholder { display: grid; width: 155px; height: 100%; min-height: 128px; place-items: center; object-fit: contain; background: #f7f8f9; color: var(--muted); }
.ip-load-more { display: block; margin: 24px auto 0; padding: 9px 18px; border: 1px solid var(--blue); color: var(--blue-dark); background: white; cursor: pointer; }
.ip-order-rush { margin-top: 22px; }
.ip-order-check { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 8px; color: var(--ink); }
.ip-order-check input, .ip-order-fulfillment input { margin-top: 3px; accent-color: var(--blue); }
.ip-order-fulfillment { display: flex; flex-wrap: wrap; gap: 18px; margin: 22px 0 14px; padding: 0; border: 0; }
.ip-order-fulfillment legend { width: 100%; margin-bottom: 8px; color: var(--blue-dark); font-weight: 700; }
.ip-order-fulfillment-option { display: grid; align-items: start; cursor: pointer; }
.ip-order-fulfillment-fields { display: grid; grid-template-columns: 1fr; gap: 10px; margin-block: 12px 18px; }
.ip-order-total { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-block: 22px; padding: 15px 18px; background: #f1f5f8; }
.ip-order-total output { font-size: 24px; font-weight: 700; color: var(--blue-dark); }
.ip-order-consent { margin-block: 18px; }
.ip-order-result { margin: 16px 0 0; padding: 12px 15px; color: #17552e; background: #e8f4eb; }

.signature-intro { display: grid; grid-template-columns: minmax(0, 2fr) minmax(180px, 1fr); align-items: center; gap: 24px; margin: 0 15px 20px; }
.signature-intro h1 { margin: 22px 0; font-size: 28px; font-weight: 400; text-align: center; text-transform: uppercase; }
.signature-intro p { margin: 12px 0; }
.signature-intro-image { display: flex; justify-content: center; align-items: center; }
.signature-intro-image img { width: 50%; margin-top: 50px; }
.signature-order-layout { display: grid; grid-template-columns: minmax(0, 2fr) minmax(180px, 1fr); align-items: start; gap: 24px; margin: 0 15px 28px; }
.signature-order-copy h1 { margin: 22px 0 26px; font-size: 28px; font-weight: 400; text-align: center; text-transform: uppercase; }
.signature-order-image { display: flex; justify-content: center; align-items: center; }
.signature-order-image img { width: 50%; margin-top: 50px; }
.signature-selected-offer { margin: 0 0 22px; font-size: 17px; text-align: center; }
.signature-selected-offer span { color: #5d98cf; }
.signature-order-customer-form { max-width: 650px; margin: 0 auto; }
.signature-order-field { display: block; margin: 15px 0; }
.signature-order-field > span { display: block; margin-bottom: 5px; font-weight: 600; }
.signature-order-field input { width: 100%; min-height: 40px; padding: 8px 10px; border: 1px solid #ccc; }
.signature-order-consent { display: flex; width: fit-content; max-width: 100%; flex-wrap: nowrap; align-items: flex-start; justify-content: center; gap: 10px; margin: 20px auto; text-align: left; }
.signature-order-consent > span { min-width: 0; }
.signature-order-consent input { width: 16px; height: 16px; flex: 0 0 16px; margin: 2px 0 0; }
.signature-order-customer-form .place-order { display: block; width: min(100%, 320px); margin: 20px auto; }
.signature-order-missing { margin: 30px 0; text-align: center; }
.signature-section { margin-block: 20px 42px; }
.signature-section > .price-review { margin: 12px 0 20px; }
.signature-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.signature-card { display: flex; min-width: 0; flex-direction: column; align-items: stretch; gap: 8px; margin-top: 15px; padding: 0 15px 20px; background: #f7f7f7; box-shadow: -7px 7px 20px 2px #ecebeb; text-align: center; }
.signature-card h3 { min-height: 40px; margin: 0; padding-top: 10px; font-size: 15px; font-weight: 600; line-height: 1.25; text-transform: none; }
.signature-features { margin: 5px 0 0; padding: 10px 10px 0 20px; color: var(--ink); font-size: 13px; text-align: left; }
.signature-features li { margin-block: 5px; }
.signature-features a { color: #00e; text-decoration: underline; }
.signature-price { margin: auto 0 4px; color: #000; font-size: 15px; font-weight: 600; }
.signature-price span { color: #5d98cf; font-size: 18px; }
.signature-order-form { margin: 0; }
.signature-order-form .button-order { display: flex; width: 50%; min-height: 30px; margin: 0 auto; align-items: center; justify-content: center; border: 1px solid var(--cta-order-background); color: #fff; background: var(--cta-order-background); font: var(--cta-font-weight) var(--cta-small-font-size)/var(--cta-line-height) var(--cta-font-family); text-align: center; text-decoration: none; text-transform: none; cursor: pointer; }
.signature-order-form .button-order:hover, .signature-order-form .button-order:focus-visible { border-color: var(--cta-order-background-hover); color: #fff; background: var(--cta-order-background-hover); }
.signature-tariff-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; margin-top: 15px; }
.signature-tariff-stack { display: flex; min-width: 0; flex-direction: column; gap: 8px; }
.signature-tariff-stack .signature-card { flex: 1 0 auto; }

.cookie-notice { position: fixed; z-index: 20; right: 18px; bottom: 18px; display: flex; align-items: center; gap: 16px; max-width: 560px; padding: 14px 18px; border: 1px solid var(--line); background: white; box-shadow: var(--shadow); }
.cookie-notice[hidden] { display: none; }
.cookie-notice p { margin: 0; font-size: 14px; }
.floating-contact-widget {
  position: fixed;
  z-index: 30;
  inset-inline-end: max(clamp(12px, calc(-.5px + 3.2vw), 24px), env(safe-area-inset-right));
  inset-block-end: max(clamp(12px, 2.5vw, 24px), env(safe-area-inset-bottom));
  display: flex;
  justify-content: flex-end;
  max-width: calc(100vw - 24px);
  box-sizing: border-box;
  font-family: "PT Sans Local", Arial, sans-serif;
}
.floating-contact-widget__actions { display: flex; align-items: center; gap: 12px; }
.back-to-top {
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  padding: 0;
  box-sizing: border-box;
  border: 1px solid var(--line);
  border-radius: 50%;
  color: var(--blue-dark);
  background: var(--blue-light);
  box-shadow: 0 4px 12px rgb(31 75 112 / 15%);
  cursor: pointer;
  transition: background-color .18s ease, border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}
.back-to-top[hidden] { display: none; }
.back-to-top svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2.2; }
.back-to-top:hover { transform: translateY(-2px); background: var(--blue-light); border-color: var(--blue); box-shadow: 0 6px 15px rgb(31 75 112 / 20%); }
.back-to-top:active { transform: translateY(0); }
.back-to-top:focus-visible { outline: 2px solid var(--red); outline-offset: 3px; }
.floating-messenger-widget__trigger {
  display: grid;
  place-items: center;
  width: 60px;
  height: 60px;
  padding: 0;
  box-sizing: border-box;
  border: 1px solid rgb(255 255 255 / 26%);
  border-radius: 50%;
  color: #fff;
  background: var(--blue-dark);
  box-shadow: 0 8px 20px rgb(31 75 112 / 27%);
  cursor: pointer;
  transition: transform .18s ease, background-color .18s ease, box-shadow .18s ease;
}
.floating-messenger-widget__trigger svg { width: 36px; height: 36px; fill: none; stroke: currentColor; }
.floating-messenger-widget__trigger:hover { transform: translateY(-2px); background: var(--blue); box-shadow: 0 10px 24px rgb(31 75 112 / 32%); }
.floating-messenger-widget__trigger:active { transform: translateY(0); }
.floating-messenger-widget__trigger:focus-visible,
.floating-messenger-widget__close:focus-visible,
.floating-messenger-widget__link:focus-visible { outline: 2px solid var(--red); outline-offset: 3px; }
.floating-messenger-widget__panel {
  position: absolute;
  inset-inline-end: 0;
  inset-block-end: calc(100% + 12px);
  width: min(300px, calc(100vw - 24px));
  max-width: calc(100vw - 24px);
  padding: 18px;
  box-sizing: border-box;
  border: 1px solid var(--line);
  border-radius: 16px;
  color: var(--ink);
  background: #fff;
  box-shadow: 0 14px 36px rgb(29 65 92 / 20%);
}
.floating-messenger-widget__panel[hidden] { display: none; }
.floating-messenger-widget__close {
  position: absolute;
  inset-block-start: 9px;
  inset-inline-end: 9px;
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  color: var(--muted);
  background: transparent;
  cursor: pointer;
  transition: color .16s ease, background-color .16s ease;
}
.floating-messenger-widget__close svg { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-width: 2; }
.floating-messenger-widget__close:hover { color: var(--red); background: var(--blue-light); }
.floating-messenger-widget__title { margin: 0 0 8px; padding-inline-end: 28px; color: var(--ink); font: 700 21px/1.25 "PT Sans Local", Arial, sans-serif; }
.floating-messenger-widget__links { display: flex; flex-direction: column; gap: 8px; }
.floating-messenger-widget__link {
  display: flex;
  min-height: 50px;
  align-items: center;
  gap: 12px;
  padding: 7px 11px;
  border: 1px solid var(--line);
  border-radius: 10px;
  color: var(--blue-dark);
  background: #fff;
  font: 600 16px/1.25 "PT Sans Local", Arial, sans-serif;
  text-decoration: none;
  transition: border-color .16s ease, background-color .16s ease, transform .16s ease;
}
.floating-messenger-widget__link:hover { transform: translateY(-1px); border-color: var(--blue); background: var(--blue-light); }
.floating-messenger-widget__icon { display: block; width: 28px; height: 28px; flex: 0 0 28px; object-fit: contain; }
.not-found { min-height: 48vh; padding-block: 70px; }
.not-found p:not(.eyebrow) { color: var(--muted); }

@media (max-width: 900px) {
  .header-top { min-height: 90px; }
  .header-details { gap: 14px; flex-wrap: wrap; font-size: 13px; }
  .header-details > span { display: none; }
  .main-nav { width: 100%; }
  .main-nav > .nav-list { width: min(var(--content), calc(100% - 40px)); margin-inline: auto; }
  .nav-list > li > a, .nav-dropdown > summary { padding-inline: 12px; font-size: 14px; }
  .home-hero { grid-template-columns: minmax(0, 1.9fr) minmax(250px, 1fr); gap: 20px; }
  .hero-copy { max-width: 720px; }
  .order-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .form-section { grid-template-columns: 1fr; gap: 12px; }
}

@media (max-width: 760px) {
  .home-title { padding-block: 14px 22px; }
  .home-hero { grid-template-columns: 1fr; gap: 16px; }
  .home-hero__content { width: 100%; max-width: 680px; gap: 14px; margin-inline: auto; }
  .home-hero__title { max-width: 100%; margin-inline: auto; font-size: clamp(29px, 5.15vw, 36px); text-align: center; }
  .home-hero__reviews { align-self: center; }
  .home-hero__visual { display: none; }
}

@media (max-width: 620px) {
  body { font-size: 16px; }
  .page-width { width: min(100% - 28px, var(--content)); }
  .header-top { min-height: 78px; gap: 10px; }
  .brand-link { flex-basis: 150px; }
  .site-logo { width: 145px; }
  .header-details { display: none; }
  .mobile-nav { position: relative; display: block; }
  .mobile-nav > summary { display: grid; width: 43px; height: 43px; align-content: center; gap: 5px; padding: 9px; border: 1px solid var(--line); list-style: none; cursor: pointer; }
  .mobile-nav > summary::-webkit-details-marker { display: none; }
  .mobile-nav > summary span { height: 2px; background: var(--blue-dark); }
  .mobile-links { position: absolute; z-index: 15; top: 52px; right: 0; display: flex; flex-direction: column; align-items: stretch; width: min(88vw, 310px); padding: 9px; background: white; box-shadow: var(--shadow); }
  .mobile-links > li { display: block; }
  .mobile-links > li > a, .mobile-links .nav-dropdown > summary { min-height: 44px; padding: 8px 12px; color: var(--ink); }
  .mobile-links .nav-order { color: white; }
  .mobile-links .nav-dropdown ul { position: static; width: 100%; padding-left: 12px; box-shadow: none; }
  .nav-band { display: none; }
  .home-title { padding-block: 11px 20px; }
  .home-hero { gap: 14px; }
  .home-hero__title { font-size: clamp(28px, 7.3vw, 33px); }
  .home-hero__reviews { min-height: 36px; gap: 8px; padding: 2px 10px; }
  .home-hero__reviews-pin { width: 17px; height: 21px; }
  .home-hero__reviews-name { font-size: 13px; }
  .home-hero__reviews-divider { height: 19px; }
  .home-hero__reviews-score { font-size: 15px; }
  .home-hero__reviews-stars { font-size: 16px; }
  .home-hero__reviews-action { gap: 3px; font-size: 12px; }
  .home-top-benefits { gap: 8px; }
  .home-top-benefits li { display: flex; min-height: 82px; justify-content: center; gap: 8px; padding: 9px; border-radius: 13px; }
  .home-top-benefits__icon { width: 36px; height: 36px; flex-basis: 36px; }
  .home-top-benefits__icon--check { width: 25px; height: 25px; flex-basis: 25px; }
  .home-top-benefits__icon--check svg { width: 17px; height: 17px; }
  .home-top-benefits__line { font-size: 15px; }
  .home-top-benefits__line--secondary { font-size: 12px; }
  .home-top-benefits__value { font-size: clamp(18px, 5vw, 21px); }
  .home-hero__cta,
  .equipment-article-action .place-order { min-height: 48px; font-size: 17px; }
  .hero-copy h1 { font-size: 38px; }
  .hero-copy > p:not(.eyebrow) { font-size: 18px; }
  .hero-actions { align-items: stretch; }
  .hero-actions .button { flex: 1; padding-inline: 12px; }
  .section-block { padding-block: 42px; }
  .content-section-with-image { grid-template-columns: 74px 1fr; gap: 14px; }
  .content-section-with-image > img { width: 74px; height: 74px; }
  .breadcrumbs { padding-top: 19px; font-size: 12px; }
  .page-heading { grid-template-columns: 1fr; gap: 13px; padding-block: 27px 20px; }
  .page-heading > .eyebrow, .page-heading > h1, .page-heading > .page-lead, .page-heading > .review-note { grid-column: 1; }
  .page-heading > h1 { font-size: 35px; }
  .page-lead { font-size: 17px; }
  .article-image { grid-column: 1; grid-row: auto; justify-self: start; width: 130px; max-height: 120px; }
  .equipment-article-layout { grid-template-columns: 1fr; gap: 14px; }
  .equipment-article-image { width: min(90%, 360px); justify-self: start; }
  .equipment-article-heading { margin-block: 18px; }
  .order-steps { grid-template-columns: 1fr; }
  .order-step { min-height: 0; }
  .contact-panel { grid-template-columns: 1fr; }
  .signature-grid { grid-template-columns: 1fr; }
  .form-section { margin-block: 30px 42px; padding: 19px; }
  .demo-form { grid-template-columns: 1fr; }
  .demo-form > label, .demo-form .file-field, .demo-form .consent, .demo-form .button, .demo-form .form-result { grid-column: 1; }
  .ip-order-block { padding: 18px; }
  .ip-order-field-grid, .ip-order-fulfillment-fields { grid-template-columns: 1fr; }
  .ip-order-file, .ip-order-comment { grid-column: 1; }
  .ip-order-maket-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
  .ip-order-option-card > img { height: 112px; }
  .ip-order-equipment-list .ip-order-option-card { grid-template-columns: 110px minmax(0, 1fr); }
  .ip-order-equipment-list .ip-order-option-card > img, .ip-order-option-placeholder { width: 110px; }
  .ip-order-total { align-items: flex-start; }
  .inline-action { flex-direction: column; align-items: flex-start; padding: 18px; }
  .cookie-notice { right: 10px; bottom: 10px; left: 10px; flex-direction: column; align-items: stretch; }
  .cookie-notice .button { align-self: flex-start; }
}

@media (max-width: 380px) {
  .home-hero__reviews-name { display: none; }
}

@media (max-width: 340px) {
  .home-top-benefits { grid-template-columns: 1fr; }
  .home-top-benefits li { min-height: 64px; }
  .home-hero__reviews { gap: 5px; padding-inline: 7px; }
  .home-hero__reviews-brand { gap: 0; }
  .home-hero__reviews-stars { font-size: 14px; letter-spacing: -.04em; }
  .home-hero__reviews-action { font-size: 11px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; }
}

/* Shared shell and IP order page follow the visible layout of the old my-pechati.ru. */
:root {
  --blue: #5d98cf;
  --blue-dark: #1f537c;
  --blue-light: #f7f7f7;
  --red: #e30613;
  --ink: #333;
  --muted: #686767;
  --line: #ededed;
  --surface: #f7f7f7;
  --shadow: -7px 7px 20px 2px #ecebeb;
}

body { color: #333; font: 14px/1.42857143 Arial, sans-serif; }
h1, h2, h3, h4 { font-family: Arial, sans-serif; font-weight: 500; line-height: 1.1; }
.site-header { border: 0; }
.header-top { min-height: 100px; gap: 24px; padding-block: 8px; }
.brand-link { flex: 0 0 245px; }
.site-logo { width: 245px; max-width: 100%; height: auto; }
.header-details { width: calc(100% - 245px); justify-content: space-between; gap: 24px; color: #848080; font-size: 14px; text-align: left; }
.header-contact { display: flex; align-items: center; color: #848080; }
.header-contact-phone { flex: 0 0 280px; justify-content: flex-start; }
.phone-lines { display: flex; flex-direction: column; gap: 4px; }
.contact-line { display: flex; align-items: center; gap: 8px; color: #848080; line-height: 20px; text-decoration: none; white-space: nowrap; }
.contact-line:hover { color: #686767; text-decoration: none; }
.header-contact-icon { display: inline-flex; width: 18px; flex: 0 0 18px; align-items: center; justify-content: center; color: #9b9b9b; font-size: 14px; line-height: 1; }
.header-message-icon { font-size: 8px; }
.header-contact-icon-big { width: 24px; flex-basis: 24px; margin-right: 8px; font-size: 22px; }
.messenger-head { display: flex; flex: 0 0 auto; align-items: center; gap: 8px; margin-left: 10px; }
.messenger-link { display: inline-flex; width: 24px; height: 24px; flex: 0 0 24px; align-items: center; justify-content: center; border-radius: 50%; text-decoration: none; }
.messenger-link:hover { opacity: .9; }
.messenger-icon { display: inline-flex; width: 100%; height: 100%; align-items: center; justify-content: center; border-radius: 50%; color: white; }
.messenger-icon svg { width: 15px; height: 15px; fill: currentColor; }
.messenger-icon img { width: 100%; height: 100%; border-radius: 7px; }
.tg-link { background: #2aa4dc; }
.max-link { border-radius: 7px; background: transparent; }
.header-contact-address { min-width: 250px; flex: 1 1 auto; justify-content: center; text-align: center; }
.header-contact-extra { flex: 0 0 220px; align-items: flex-start; flex-direction: column; gap: 8px; }
.nav-band { min-height: 44px; background: #5d98cf; }
.main-nav { min-height: 44px; align-items: stretch; }
.desktop-nav { width: 100%; }
.nav-list { width: 100%; justify-content: center; text-transform: uppercase; }
.nav-list > li > a, .nav-dropdown > summary { min-height: 44px; padding: 12px 15px; color: white; font-size: 14px; }
.nav-list > li > a:hover, .nav-list > li > a[aria-current="page"], .nav-dropdown[open] > summary { color: #686767; background: #5d98cf; }
.nav-list .nav-order { background: transparent; }
.nav-list .nav-order:hover { background: #5d98cf; }
.nav-dropdown ul { text-transform: none; }
.mobile-nav { display: none; }
.breadcrumbs { align-items: center; gap: 5px; margin-top: 10px; padding-top: 10px; color: #1f537c; font-size: 13px; }
.breadcrumbs a { color: #1f537c; text-decoration: none; }
.breadcrumb-home { color: #5d98cf; font-size: 14px; }

.site-footer {
  --footer-surface: #202b33;
  --footer-utility-surface: #19242b;
  --footer-ink: #f5f7f8;
  --footer-muted: #c6d0d6;
  color: var(--footer-ink);
  background: var(--footer-surface);
  font-family: "PT Sans Local", Arial, sans-serif;
}
.footer-main {
  display: flex;
  justify-content: center;
  align-items: stretch;
  gap: clamp(24px, 3.2vw, 40px);
  padding-block: 22px 20px;
}
.footer-main a { color: var(--footer-ink); }
.footer-section {
  display: flex;
  flex: 0 0 auto;
  min-width: 0;
  flex-direction: column;
  align-items: center;
  text-align: center;
}
.footer-section-title {
  display: flex;
  min-height: 20px;
  align-items: center;
  justify-content: center;
  margin: 0 0 12px;
  color: var(--footer-ink);
  font-size: 16px;
  font-weight: 700;
  line-height: 1.25;
  text-align: center;
}
.footer-divider {
  width: 1px;
  height: 68px;
  flex: 0 0 1px;
  align-self: center;
  margin-block-start: 32px;
  background: rgb(255 255 255 / 18%);
}
.footer-contact { width: auto; gap: 0; }
.footer-contact-layout {
  display: grid;
  width: max-content;
  max-width: 100%;
  min-height: 68px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: center;
  gap: clamp(12px, 1.2vw, 16px);
}
.footer-phone-list { display: grid; width: 100%; justify-items: center; gap: 8px; }
.footer-phone-list a {
  display: flex;
  width: 100%;
  max-width: 100%;
  align-items: center;
  justify-content: center;
  gap: 6px;
  color: var(--footer-ink);
  font-size: clamp(12.5px, .98vw, 14px);
  font-variant-numeric: tabular-nums;
  font-weight: 700;
  line-height: 1.2;
  text-decoration: none;
  white-space: nowrap;
}
.footer-icon { width: 17px; height: 17px; flex: 0 0 17px; color: #b9d9ec; }
.footer-contact-channels {
  display: flex;
  width: 100%;
  min-width: 0;
  min-height: 68px;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 6px;
}
.footer-messenger-list { display: flex; align-items: center; justify-content: center; gap: 4px; }
.footer-messenger-link {
  display: grid;
  width: 34px;
  height: 34px;
  flex: 0 0 34px;
  place-items: center;
  border: 0;
  border-radius: 0;
  background: transparent;
  transition: opacity .18s ease;
}
.footer-messenger-link:hover { opacity: .78; }
.footer-messenger-link img { width: 24px; height: 24px; object-fit: contain; }
.footer-email {
  display: flex;
  width: max-content;
  max-width: 100%;
  align-items: center;
  justify-content: center;
  gap: 5px;
  color: #e6edf1 !important;
  font-size: 13px;
  line-height: 1.25;
  overflow-wrap: anywhere;
  text-decoration: none;
}
.footer-navigation { width: auto; }
.footer-nav-links {
  display: grid;
  width: max-content;
  max-width: 100%;
  min-height: 68px;
  grid-template-columns: max-content max-content;
  align-content: center;
  justify-items: center;
  gap: 5px clamp(18px, 1.8vw, 24px);
  margin: 0;
  padding: 0;
  transform: translateY(8px);
  list-style: none;
}
.footer-nav-franchise { grid-column: 1 / -1; justify-self: center; }
.footer-nav-links a { display: inline-flex; max-width: 100%; justify-content: center; color: #e6edf1; font-size: 14px; line-height: 1.25; text-align: center; text-decoration-color: rgb(230 237 241 / 38%); text-underline-offset: 3px; }
.footer-nav-links a:hover, .footer-policy-link:hover { color: #fff; text-decoration-color: currentColor; }
.footer-nav-primary { color: #e6edf1 !important; font-weight: inherit; }
.footer-location { width: auto; gap: 0; }
.footer-location-content {
  display: flex;
  width: max-content;
  max-width: 100%;
  min-height: 68px;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 5px;
  /* Оптическая поправка: высокий адресный блок визуально начинается раньше соседних. */
  transform: translateY(8px);
}
.footer-address { display: grid; gap: 2px; margin: 0; color: var(--footer-ink); font-size: 14px; font-style: normal; line-height: 1.3; }
.footer-hours { margin: 0; color: var(--footer-ink); font-size: 14px; font-variant-numeric: tabular-nums; line-height: 1.3; }
.footer-bottom { border-top: 1px solid rgb(255 255 255 / 10%); background: var(--footer-utility-surface); }
.footer-bottom-inner { display: flex; min-height: 40px; align-items: center; justify-content: center; gap: 8px 20px; padding-block: 6px; }
.footer-legal { display: flex; min-width: 0; align-items: center; flex-wrap: wrap; justify-content: center; gap: 6px 14px; }
.footer-policy-link { color: var(--footer-ink) !important; font-size: 13px; text-underline-offset: 3px; }
.footer-bottom p { margin: 0; color: var(--footer-muted); font-size: 12px; line-height: 1.35; text-align: center; }

.ip-source-page .breadcrumbs { margin-top: 10px; margin-bottom: 0; }
.other-print-intro { display: grid; grid-template-columns: minmax(0, 2fr) minmax(180px, 1fr); align-items: center; gap: 24px; margin: 0 15px 24px; }
.other-print-copy .header-all { margin: 20px 0 0; padding-bottom: 0; font-size: 25px; font-weight: 400; text-align: left; text-transform: uppercase; }
.other-print-copy p { margin: 12px 0; }
.other-print-image { display: flex; justify-content: center; align-items: center; }
.other-print-image img { width: 50%; min-width: 120px; margin-top: 50px; }
.ip-order-form { display: block; margin: 20px 0 58px; }
.online-intro { width: min(100%, 960px); margin: 0 auto 15px; padding-top: 10px; }
.online-intro p { margin: 10px 0; text-align: left; }
.online-catalog > .price-review { margin: 12px 15px 18px; }
.online-category-card { display: flex; min-width: 0; min-height: 286px; flex-direction: column; align-items: center; margin: 15px; padding: 8px 10px 10px; border: 1px solid rgb(49 119 174 / 16%); border-radius: 18px; color: var(--ink); background: linear-gradient(150deg, rgb(255 255 255 / 98%), rgb(244 249 255 / 96%)); box-shadow: 0 10px 24px rgb(31 83 124 / 9%), inset 0 1px 0 rgb(255 255 255 / 88%); text-align: center; text-decoration: none; transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease; }
.online-category-card:hover, .online-category-card:focus-visible { color: var(--ink); text-decoration: none; }
.online-category-card:hover { transform: translateY(-2px); border-color: rgb(49 119 174 / 28%); box-shadow: 0 14px 28px rgb(31 83 124 / 14%), inset 0 1px 0 rgb(255 255 255 / 88%); }
.online-category-name { display: flex; min-height: 36px; align-items: center; justify-content: center; padding: 2px 4px 0; font-size: 15px; font-weight: 600; line-height: 1.15; }
.online-category-card img { display: block; width: calc(100% + 12px); height: auto; max-width: calc(100% + 12px); margin: 4px 0 7px; object-fit: contain; }
.online-category-price { margin: 0 0 9px; color: var(--ink); font-size: 14px; font-weight: 600; line-height: 1.25; }
.online-category-price > span { color: #246ba6; font-size: 17px; font-weight: 700; }
.online-category-button { display: flex; width: 100%; min-height: 38px; align-items: center; justify-content: center; border: 0; border-radius: 11px; color: #fff; background: var(--cta-order-background); box-shadow: 0 6px 14px rgb(31 75 112 / 18%); font: var(--cta-font-weight) var(--cta-compact-font-size)/var(--cta-line-height) var(--cta-font-family); text-align: center; text-transform: none; transition: box-shadow .18s ease, background .18s ease; }
.online-category-card:hover .online-category-button, .online-category-card:focus-visible .online-category-button { color: #fff; background: var(--cta-order-background-hover); box-shadow: 0 8px 16px rgb(31 75 112 / 24%); }
.online-consultation { margin-top: 85px; }
.services-page-title { margin: 25px 15px 30px; padding-top: 35px; font-size: 25px; font-weight: 400; text-transform: uppercase; }
.services-copy { margin: 0 15px; }
.services-section-title { margin: 0 0 10px; color: #1f537c; font-size: 20px; font-weight: 400; text-align: center; text-transform: uppercase; }
.services-copy p { margin: 0 0 10px; font-size: 14px; }
.services-copy-link { text-decoration: underline; }
.services-catalog { margin: 22px 15px 0; }
.services-catalog > .price-review { margin: 0 0 12px; }
.services-category-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0 30px; }
.service-category-card { display: flex; min-width: 0; min-height: 330px; flex-direction: column; align-items: stretch; margin-top: 15px; padding: 0 10px 20px; color: inherit; background: #f7f7f7; box-shadow: -7px 7px 20px 2px #ecebeb; text-align: center; text-decoration: none; }
.service-category-card:hover, .service-category-card:focus-visible { color: inherit; text-decoration: none; }
.service-card-name { display: block; min-height: 40px; padding: 10px 5px 0; font-size: 15px; font-weight: 600; }
.service-card-image { display: block; width: 160px; max-width: 100%; height: 160px; align-self: center; padding-block: 10px; object-fit: contain; }
.service-card-price { margin: 0 0 8px; color: #000; font-weight: 600; }
.service-card-price > span { color: #5d98cf; font-size: 18px; }
.service-card-strip { width: 60%; height: 1px; align-self: center; background: #dcdcdc; }
.service-card-description { flex: 1; padding: 5px 0; font-size: 13px; }
.service-card-button { display: flex; width: 50%; min-height: 30px; align-items: center; justify-content: center; align-self: center; margin-top: auto; border: 1px solid var(--cta-order-background); color: #fff; background: var(--cta-order-background); font: var(--cta-font-weight) var(--cta-compact-font-size)/var(--cta-line-height) var(--cta-font-family); text-align: center; text-decoration: none; text-transform: none; }
.service-category-card:hover .service-card-button, .service-category-card:focus-visible .service-card-button { border-color: var(--cta-order-background-hover); color: #fff; background: var(--cta-order-background-hover); }
.services-consultation { margin-top: 85px; }
.faq-source-title { margin: 25px 15px 25px; padding-top: 35px; font-size: 25px; font-weight: 400; text-transform: none; }
.faq-source-list { margin: 0 15px; padding-top: 10px; }
.faq-source-question { margin: 0 0 10px; }
.faq-source-answer { margin: 0 0 20px 20px; }
.faq-source-consultation { margin-top: 60px; }
.delivery-source-page { padding-bottom: 0; }
.delivery-page-heading { max-width: 640px; margin: 0 auto 30px; }
.delivery-source-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; max-width: 1120px; margin: 0 auto; align-items: stretch; }
.delivery-source-card { display: flex; min-width: 0; min-height: 306px; flex-direction: column; align-items: center; padding: 22px 22px 24px; border: 1px solid #e6edf4; border-radius: 18px; background: #fff; box-shadow: -7px 7px 20px 2px #ecebeb; text-align: center; }
.delivery-card-image { display: flex; width: 100%; height: 136px; flex: 0 0 136px; align-items: center; justify-content: center; }
.delivery-card-image img { display: block; max-width: 100%; object-fit: contain; }
.delivery-source-card--courier .delivery-card-image img { width: 144px; height: 144px; }
.delivery-source-card--free .delivery-card-image img { width: 112px; height: 112px; }
.delivery-source-card--pickup .delivery-card-image img { width: 134px; height: 134px; }
.delivery-source-card h2 { margin: 5px 0 10px; color: #1f537c; font-size: 21px; font-weight: 600; line-height: 1.3; text-align: center; }
.delivery-card-copy { width: min(100%, 292px); }
.delivery-source-card p { margin: 0; color: #333; font-size: 15px; line-height: 1.5; text-align: center; }
.delivery-source-card p + p { margin-top: 7px; }
.delivery-consultation { margin-top: 48px; }

@media (min-width: 768px) and (max-width: 900px) {
  .delivery-source-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
  .delivery-source-card:last-child { grid-column: 1 / -1; width: min(100%, calc((100% - 20px) / 2)); justify-self: center; }
}
.contact-source-page { padding-bottom: 4px; }
.contact-source-page > .online-page-heading { margin: 0 auto 28px; }
.contact-source-grid { display: grid; width: min(100%, 1120px); grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; align-items: stretch; margin: 0 auto; }
.contact-source-card, .contact-source-map { min-width: 0; min-height: 0; border: 1px solid #e6edf4; border-radius: 18px; background: #fff; box-shadow: 0 10px 24px rgb(31 83 124 / 9%); }
.contact-source-card { container-type: inline-size; display: flex; flex-direction: column; padding: clamp(20px, 2vw, 26px); text-align: left; overflow-wrap: anywhere; }
.contact-source-facts { display: block; padding: 0; border: 0; background: transparent; }
.contact-source-facts-heading { margin-bottom: 10px; }
.contact-source-fact-groups { display: grid; grid-template-columns: minmax(0, 1fr); align-items: start; gap: 16px; }
.contact-source-fact-group { display: flex; min-width: 0; flex-direction: column; align-items: center; }
.contact-source-fact { display: grid; width: fit-content; max-width: 100%; grid-template-columns: 24px minmax(0, 1fr); align-items: center; gap: 10px; margin-inline: auto; }
.contact-source-icon { display: block; width: 22px; height: 22px; flex: 0 0 22px; color: #5d98cf; }
.contact-source-label { display: block; color: #626d76; font-size: 14px; font-weight: 700; letter-spacing: .025em; line-height: 1.3; text-transform: uppercase; }
.contact-source-fact p { margin: 0; color: #333; font-size: 18px; font-weight: 500; line-height: 1.4; }
.contact-source-address-copy { display: grid; gap: 2px; }
.contact-source-divider { height: 1px; margin: 22px 0 18px; background: #e6edf4; }
.contact-source-section-heading { margin: 0 0 10px; color: #1f537c; font-size: 21px; font-weight: 700; line-height: 1.3; text-align: center; }
.contact-source-contact-grid { display: grid; grid-template-columns: minmax(0, 1fr); align-items: center; gap: 8px 22px; }
.contact-source-method-list { display: grid; grid-template-columns: minmax(0, 1fr); gap: 3px; }
.contact-source-method { display: inline-flex; min-width: 0; min-height: 38px; align-items: center; justify-content: flex-start; gap: 8px; padding: 4px 5px; border-radius: 9px; color: #1f537c !important; font-size: 17px; font-weight: 600; line-height: 1.35; text-decoration: none; }
.contact-source-method:hover, .contact-source-method:focus-visible { color: #16446a !important; background: #f1f7fb; text-decoration: underline; text-underline-offset: 3px; }
.contact-source-method:focus-visible, .contact-source-messenger:focus-visible, .contact-source-map-action a:focus-visible { outline: 3px solid rgb(40 91 133 / 28%); outline-offset: 3px; }
.contact-source-method .contact-source-icon { width: 20px; height: 20px; flex-basis: 20px; color: #5d98cf; }
.contact-source-messengers { display: grid; min-width: 0; gap: 2px; }
.contact-source-messenger-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: center; gap: 4px; }
.contact-source-messenger { display: flex; width: 44px; height: 44px; min-width: 44px; min-height: 44px; align-items: center; justify-content: center; justify-self: center; padding: 0; border-radius: 50%; color: #1f537c !important; text-decoration: none; }
.contact-source-messenger:hover { background: #f3f8fc; text-decoration: underline; text-underline-offset: 3px; }
.contact-source-messenger img { display: block; width: 28px; height: 28px; flex: 0 0 28px; object-fit: contain; }
.contact-source-email { justify-content: center; }
.contact-source-order-action { margin-top: auto; padding-top: 22px; }
.contact-source-order-cta { display: flex; }
.contact-source-map { display: flex; flex-direction: column; overflow: hidden; }
.contact-source-map-frame { display: block; width: 100%; height: auto; min-height: 280px; flex: 1 1 320px; overflow: hidden; border: 0; background: #f2f5f7; }
.contact-source-map-action { display: flex; min-height: 48px; flex: 0 0 auto; align-items: center; justify-content: center; padding: 3px 12px; border-top: 1px solid #e6edf4; background: #fff; }
.contact-source-map-action a { display: inline-flex; min-width: 0; min-height: 40px; align-items: center; justify-content: center; gap: 8px; padding: 6px 8px; border-radius: 9px; color: #1f537c; font-size: 14px; font-weight: 600; line-height: 1.3; text-align: center; text-decoration: none; }
.contact-source-map-action a:hover { color: #16446a; text-decoration: underline; text-underline-offset: 3px; }
.contact-source-map-action a span { color: #5d98cf; font-size: 17px; }
.contact-source-copy { width: min(100%, 820px); margin: 28px auto 0; color: var(--ink); font-size: 16px; line-height: 1.55; text-align: center; }
.contact-source-page > .contact-source-consultation { margin-top: 32px; }
@container (min-width: 460px) {
  .contact-source-fact-groups { display: flex; width: calc(100% + 40px); margin-inline: -20px; align-items: center; justify-content: center; gap: 32px; }
  .contact-source-fact-group { flex: 0 1 auto; }
  .contact-source-fact { grid-template-columns: 22px max-content; gap: 8px; }
  .contact-source-fact--hours p { text-wrap: balance; }
  .contact-source-contact-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .contact-source-method-list { align-content: center; }
}
.partners-source-copy { width: min(100%, 820px); margin: 28px auto 0; color: var(--ink); font-size: 16px; line-height: 1.55; text-align: center; }
.partners-source-copy p { margin: 0; }
.partners-source-copy a { color: inherit; text-decoration: underline; white-space: nowrap; }
.partners-source-page > .partners-consultation { margin-top: 32px; }
.policy-source-content { margin: 22px 15px 45px; }
.policy-source-section { margin: 0 0 24px; }
.policy-source-title { margin: 0 0 10px; font-size: 30px; font-weight: 500; line-height: 1.1; }
.policy-source-text { margin: 0 0 10px; color: #333; font-size: 14px; line-height: 1.42857143; }
.ip-order-block { margin: 0; padding: 20px 15px; border: 0; background: #fff; box-shadow: var(--shadow); }
/* Keep numbered order-step headings distinct from the field labels below. */
.ip-order-block h2 { margin: 0 0 10px; color: #1f537c; font-size: 18px; font-weight: 600; line-height: 1.42857143; text-align: center; text-transform: uppercase; }
.ip-order-parameters { margin-bottom: 25px; }
.ip-order-parameter-columns, .ip-order-details-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 18px; }
.ip-order-field-column, .ip-order-details-column { display: flex; min-width: 0; flex-direction: column; gap: 8px; }
.ip-order-field { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 3fr); align-items: center; gap: 8px; margin-bottom: 10px; color: #333; font-size: 14px; font-weight: 400; }
.ip-order-field > span { font-weight: 700; }
.ip-order-field input:not([type="file"]), .ip-order-field select, .ip-order-field textarea { width: 100%; min-height: 30px; padding: 4px 9px; border: 1px solid #ededed; border-radius: 0; box-shadow: -4px 7px 10px 1px #ededed; color: #333; background: white; font: 14px Arial, sans-serif; }
.ip-order-field textarea { min-height: 70px; resize: vertical; }
.ip-order-file { grid-template-columns: minmax(0, 2fr) minmax(0, 3fr); }
.ip-order-field input[type="file"] { width: 100%; padding: 5px 0; border: 0; background: transparent; font: 13px Arial, sans-serif; }
.ip-order-file-control { grid-column: 2; display: flex; min-width: 0; flex-wrap: wrap; align-items: center; gap: 8px; }
.ip-order-file-control input[data-ip-file-count-input] { box-sizing: border-box; width: 180px; max-width: 100%; min-width: 0; flex: 0 1 180px; color: transparent; font-size: 0; }
.ip-order-file-control input[data-ip-file-count-input]::file-selector-button { color: #333; font: 13px Arial, sans-serif; }
.ip-order-file-count { color: #686767; font: 13px Arial, sans-serif; line-height: 1.45; }
.ip-order-field small { grid-column: 2; color: #686767; font-size: 11px; font-weight: 400; }
.ip-order-file-preview { grid-column: 2; color: #686767; font-size: 12px; font-weight: 400; line-height: 1.45; }
.ip-order-file-preview-summary, .ip-order-file-preview-error { margin: 0 0 6px; }
.ip-order-file-preview-error { color: #a12622; }
.ip-order-file-preview-list { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; }
.ip-order-file-preview-list li { display: flex; min-width: 0; align-items: center; gap: 10px; overflow-wrap: anywhere; }
.ip-order-file-preview-list img { width: 54px; height: 54px; flex: 0 0 auto; border: 1px solid #e2e2e2; object-fit: contain; background: #fff; }
.ip-order-file-preview--compact .ip-order-file-preview-list { gap: 2px; }
.ip-order-file-preview--compact .ip-order-file-preview-list li { align-items: center; justify-content: space-between; gap: 8px; }
.ip-order-file-preview--compact .ip-order-file-preview-name { display: block; width: 180px; max-width: 100%; min-width: 0; flex: 0 1 180px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ip-order-file-preview--compact .ip-order-file-remove { flex: 0 0 auto; padding: 0; border: 0; color: #1f537c; background: transparent; font: inherit; font-size: 12px; line-height: 1.45; text-decoration: underline; cursor: pointer; }
.ip-order-file-preview--compact .ip-order-file-remove:hover { color: #163f60; }
.ip-order-file-preview--compact .ip-order-file-remove:focus-visible { outline: 2px solid #1f537c; outline-offset: 2px; }
.ip-order-choice-row { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); align-items: stretch; gap: 25px; }
.ip-order-choice-row[data-makets-expanded="true"] { align-items: start; }
.ip-order-choice-row .ip-order-block { display: flex; min-width: 0; flex-direction: column; }
.ip-order-makets { padding-inline: 15px; }
.ip-order-maket-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2px; }
.ip-order-makets .ip-order-maket-grid, .ip-order-equipment .ip-order-equipment-list { flex: 1; }
.ip-order-option { position: relative; min-width: 0; cursor: pointer; }
.ip-order-option > input { position: absolute; z-index: 1; width: 1px; height: 1px; margin: 0; opacity: 0; }
.ip-order-option-card { display: flex; min-height: 210px; flex-direction: column; justify-content: space-between; padding: 9px 5px 4px; border: 2px solid #f9f9f9; background: #fff; box-shadow: none; }
.ip-order-option-card > img { display: block; width: 90%; height: 160px; align-self: center; object-fit: contain; background: #fff; }
.ip-order-option-copy { display: block; padding: 0 4px; color: #333; font-size: 13px; text-align: right; }
.ip-order-price { display: inline-block; width: 50px; min-width: 50px; padding-inline: 4px; border: 0; color: #5d98cf; font-size: 18px; font-weight: 400; text-align: center; }
.ip-order-option > input:checked + .ip-order-option-card { border-color: #376794; box-shadow: none; }
.ip-order-option > input:focus-visible + .ip-order-option-card { outline: 2px solid #1f537c; outline-offset: 2px; }
.ip-order-equipment-list { display: grid; gap: 0; }
.ip-order-equipment .ip-order-option-card { display: grid; grid-template-columns: 33.333333% minmax(0, 1fr); min-height: 138px; padding: 0; border: 2px solid #fff; }
.ip-order-equipment .ip-order-option-card > img, .ip-order-equipment .ip-order-option-placeholder { display: grid; width: 100%; height: 100%; min-height: 134px; place-items: center; object-fit: contain; background: #fff; }
.ip-equipment-card .ip-order-option-copy { display: flex; flex-direction: column; gap: 0; padding: 0 15px; text-align: left; }
.ip-equipment-card .ip-order-option-copy > strong { color: #111; font-size: 16px; font-weight: 600; }
.ip-equipment-card .ip-order-option-copy > span:not(.ip-equipment-price) { margin-top: 20px; color: #333; font-size: 13px; font-weight: 700; }
.ip-equipment-price { margin: 0; color: #111; font-size: 13px; font-weight: 600; text-align: right; }
.ip-equipment-price-value { display: inline-block; width: 50px; color: #5d98cf; font-size: 18px; font-weight: 400; text-align: center; }
.ip-order-equipment .ip-order-option { margin-bottom: 5px; }
.ip-order-equipment .ip-order-option:hover .ip-order-option-card { border-color: #376794; }
.ip-load-more { display: block; min-height: 40px; margin: 24px auto 0; padding: 10px 30px; border: 1px solid var(--cta-order-background); border-radius: var(--form-control-radius); color: #fff; background: var(--cta-order-background); box-shadow: 0 6px 14px rgb(31 75 112 / 13%); font: var(--cta-font-weight) var(--cta-compact-font-size)/var(--cta-line-height) var(--cta-font-family); text-transform: none; cursor: pointer; transition: background-color .18s ease, border-color .18s ease, color .18s ease, box-shadow .18s ease, transform .18s ease; }
.ip-load-more:hover, .ip-load-more:focus-visible { border-color: var(--cta-order-background-hover); color: #fff; background: var(--cta-order-background-hover); box-shadow: 0 8px 16px rgb(31 75 112 / 20%); transform: translateY(-1px); }
.ip-order-disclosure-controls { display: flex; width: 100%; align-items: center; justify-content: center; gap: 10px; margin-top: 24px; }
.ip-order-disclosure-controls > .ip-load-more { flex: 0 0 auto; margin: 0; }
.ip-order-details { margin-top: var(--order-section-gap); }
.ip-order-comment { align-items: start; }
.ip-order-rush { margin-top: 12px; }
.ip-order-check { gap: 8px; color: #333; }
.ip-order-check input { width: 15px; height: 15px; flex: 0 0 15px; margin: 1px 0 0; accent-color: #1f537c; }
.ip-order-check.ip-order-consent { flex-wrap: nowrap; gap: 10px; }
.ip-order-check.ip-order-consent > span { min-width: 0; }
.ip-order-check.ip-order-consent input { width: 16px; height: 16px; flex: 0 0 16px; margin: 2px 0 0; }
.ip-order-fulfillment { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; width: 100%; max-width: 760px; margin: 0 auto 18px; padding: 0; border: 0; }
.ip-order-fulfillment-option { display: grid; grid-template-columns: 16px minmax(0, 1fr); align-items: start; gap: 10px; min-height: 92px; padding: 14px; border: 1px solid #d2dfe9; border-radius: 12px; color: var(--ink); background: #fff; cursor: pointer; transition: border-color .18s ease, background-color .18s ease, box-shadow .18s ease; }
.ip-order-fulfillment-option:has(input:checked) { border-color: var(--blue); background: #f7fafc; box-shadow: 0 0 0 2px rgb(40 91 133 / 10%); }
.ip-order-fulfillment-option:focus-within { outline: 2px solid var(--blue); outline-offset: 2px; }
.ip-order-fulfillment-option input { width: 16px; height: 16px; margin: 2px 0 0; accent-color: var(--blue); }
.ip-order-fulfillment-copy { display: grid; align-content: start; gap: 5px; min-width: 0; }
.ip-order-fulfillment-title { color: var(--ink); font-size: 15px; font-weight: 700; line-height: 1.25; }
.ip-order-fulfillment-description { color: var(--muted); font-size: 13px; font-weight: 400; line-height: 1.35; overflow-wrap: anywhere; }
.ip-order-total { display: flex; align-items: center; justify-content: center; gap: 8px; margin: 25px 0 18px; color: #000; font-size: 30px; font-weight: 600; text-align: center; text-transform: uppercase; }
.ip-order-total output { min-width: 75px; color: #1f537c; font-size: 30px; font-weight: 400; }
.other-order-form .ip-order-total input[data-other-total] { width: 75px; min-height: 0; margin: 0; padding: 0; border: 0; box-shadow: none; color: #1f537c; background: transparent; font: 400 30px Arial, sans-serif; text-align: center; }
.ip-order-total > span:last-of-type { font-size: 18px; font-weight: 400; }
.ip-order-consent { justify-content: center; margin: 18px 0; }
.ip-order-submit-row { text-align: center; margin-top: 18px; }
.place-order { min-height: 43px; padding: 10px 50px; border: 1px solid var(--cta-order-background); border-radius: 0; color: #fff; background: var(--cta-order-background); font: var(--cta-font-weight) var(--cta-font-size)/var(--cta-line-height) var(--cta-font-family); text-align: center; text-decoration: none; text-transform: none; cursor: pointer; transition: background-color .18s ease, border-color .18s ease, box-shadow .18s ease, transform .18s ease; }
.place-order:hover, .place-order:focus-visible { border-color: var(--cta-order-background-hover); color: #fff; background: var(--cta-order-background-hover); box-shadow: 0 8px 16px rgb(31 75 112 / 18%); transform: translateY(-1px); }
.ip-order-result { color: #17552e; background: #e8f4eb; }

.ip-consultation { display: grid; width: min(95%, var(--content)); grid-template-columns: minmax(220px, .9fr) minmax(0, 2.15fr); gap: clamp(16px, 1.8vw, 28px); align-items: start; margin: 60px auto 36px; padding: clamp(22px, 2.2vw, 38px) clamp(22px, 2.2vw, 38px) clamp(18px, 1.5vw, 26px); border: 1px solid #dce7ef; border-radius: var(--form-shell-radius); background: linear-gradient(135deg, #fff 35%, #f5f9fc 100%); box-shadow: 0 12px 28px rgb(31 83 124 / 9%); }
.home-consultation-wrap { display: flow-root; }
.ip-consultation-copy h2 { margin: 0 0 10px; color: var(--blue-dark); font-size: 22px; font-weight: 600; line-height: 1.25; text-align: left; text-transform: uppercase; }
.ip-consultation-copy p { margin: 0; color: var(--ink); font-size: 15px; line-height: 1.5; text-align: left; }
.ip-consultation-form { min-width: 0; }
.ip-consultation-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.ip-consultation-fields input { width: 100%; min-height: 50px; margin: 0; padding: 10px 14px; border: 1px solid #cbd9e3; border-radius: var(--form-control-radius); color: var(--ink); background: var(--paper); box-shadow: none; font: 15px/1.4 "PT Sans Local", Arial, sans-serif; transition: border-color .16s ease, box-shadow .16s ease; }
.ip-consultation-fields input::placeholder { color: #68737d; opacity: 1; }
.ip-consultation-fields input:focus-visible { border-color: var(--blue); outline: 3px solid rgb(40 91 133 / 20%); outline-offset: 2px; }
.ip-consultation-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; align-items: stretch; margin-top: 12px; }
.ip-consultation-submit, .ip-calculator-link { display: inline-flex; width: 100%; min-height: 50px; align-items: center; justify-content: center; padding: 10px 16px; border: 1px solid var(--blue); border-radius: var(--form-control-radius); color: var(--ink); background: #fff; font: var(--cta-secondary-weight) var(--cta-font-size)/var(--cta-line-height) var(--cta-font-family); text-align: center; text-decoration: none; text-transform: none; cursor: pointer; transition: color .16s ease, background-color .16s ease, border-color .16s ease, box-shadow .16s ease; }
.ip-consultation-submit { font-weight: var(--cta-font-weight); }
.ip-consultation-submit { border-color: var(--red); color: #fff; background: var(--red); }
.ip-consultation-submit:hover { border-color: #c20b16; color: #fff; background: #c20b16; }
.ip-calculator-link:hover { border-color: var(--blue); color: var(--blue-dark); background: var(--blue-light); }
.ip-consultation-submit:focus-visible, .ip-calculator-link:focus-visible { outline: 3px solid rgb(40 91 133 / 28%); outline-offset: 2px; }
.ip-consultation-consent { display: flex; width: fit-content; max-width: 100%; flex-wrap: nowrap; align-items: flex-start; justify-content: center; gap: 10px; margin: 12px auto 0; color: var(--ink); font-size: 14px; line-height: 1.45; text-align: left; }
.ip-consultation-consent span { min-width: 0; }
.ip-consultation-consent input { width: 16px; height: 16px; flex: 0 0 16px; margin: 2px 0 0; accent-color: var(--blue); }
.ip-consultation-consent a { color: var(--blue-dark); text-decoration: underline; text-underline-offset: 2px; }
.ip-consultation .form-result { margin-top: 10px; }
.visually-hidden { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; clip-path: inset(50%); }
@media (min-width: 621px) {
  .ip-source-page .breadcrumbs { margin-top: 20px; }
  .ip-source-page .ip-order-form { width: calc(100% - 20px); margin: 0 auto var(--order-section-gap); }
  .ip-source-page .ip-order-parameters { margin-top: 20px; }
  .ip-source-page .ip-order-parameter-columns { column-gap: 0; }
  .ip-source-page .ip-order-parameter-columns .ip-order-field-column { gap: 0; padding-inline: 15px; }
  .ip-source-page .ip-order-parameters .ip-order-field-column > .ip-order-field { gap: 0; margin-inline: 15px; }
  .ip-source-page .ip-order-choice-row { grid-template-columns: 56% minmax(0, 1fr); }
  .ip-source-page .ip-order-makets .ip-order-option { margin: 5px; }
  .ip-source-page .ip-order-makets .ip-order-option-copy { font-weight: 600; }
  .ip-source-page .ip-order-equipment .ip-order-option { font-weight: 700; }
  .ip-source-page .ip-order-equipment .ip-order-option-card > img { align-self: center; height: auto; min-height: 0; }
}

.ip-source-page .ip-order-form { margin-bottom: var(--order-section-gap); }
.ip-source-page > .ip-consultation { margin-top: var(--order-section-gap); }

@media (min-width: 992px) {
  .ip-source-page .ip-order-fulfillment-fields { margin-top: 18px; }
}

/* At compact desktop widths the pickup address wraps to one extra line. */
@media (min-width: 992px) and (max-width: 1084px) {
  .ip-source-page .ip-order-fulfillment-fields { margin-top: 4px; }
}

@media (min-width: 300px) {
  .category-card-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (min-width: 992px) {
  .category-card-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (min-width: 1200px) {
  .site-header { margin-top: 20px; }
  .header-top.page-width { width: min(1170px, calc(100% - 40px)); min-height: 92px; gap: 24px; }
  .brand-link { flex-basis: 276px; padding-left: 15px; }
  .site-logo { width: 190px; }
  .header-details { gap: 32px; }
  .header-contact-address { min-width: 360px; }
  .header-contact-extra { flex-basis: 250px; gap: 10px; }
  .main-nav.page-width { width: min(1170px, calc(100% - 40px)); }
  .main-nav .desktop-nav > .nav-list { display: table; width: 100%; text-align: center; }
  .main-nav .desktop-nav > .nav-list > li { display: table-cell; }
  .main-nav .desktop-nav > .nav-list > li > a, .main-nav .desktop-nav > .nav-list > li > .nav-dropdown > summary { display: block; min-height: 44px; padding: 12px 15px; text-align: center; }
  .ip-source-page .breadcrumbs { width: calc(100% - 20px); padding-inline: 15px; }
  .category-card-grid { grid-template-columns: repeat(6, minmax(0, 1fr)); }
}

@media (max-width: 1199px) {
  .header-contact-phone { flex-basis: 250px; }
  .header-contact-address { min-width: 220px; }
  .header-contact-extra { flex-basis: 190px; }
}

@media (max-width: 991px) {
  .header-contact-phone { flex-basis: 210px; }
  .header-contact-address { min-width: 180px; }
  .header-contact-extra { display: none; }
  .desktop-nav .nav-order-item, .desktop-nav .nav-franchise { display: none; }
  .footer-main {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-template-areas:
      "location location"
      "contact navigation";
    gap: 20px clamp(20px, 3vw, 32px);
    padding-block: 20px;
  }
  .footer-divider { display: none; }
  .footer-contact { grid-area: contact; }
  .footer-navigation { grid-area: navigation; }
  .footer-location { grid-area: location; }
  .footer-location-content { width: 100%; min-height: 0; transform: none; }
  .footer-nav-links { transform: none; }
  .footer-bottom-inner { gap: 8px 20px; padding-block: 8px; }
  .ip-order-parameter-columns, .ip-order-details-grid, .ip-order-choice-row { grid-template-columns: 1fr; }
  .signature-tariff-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .services-category-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 30px; }
  .ip-consultation { width: 100%; grid-template-columns: minmax(200px, .9fr) minmax(0, 2.15fr); gap: clamp(18px, 3vw, 28px); padding: 28px 28px 20px; }
}

@media (max-width: 767.98px) {
  .header-top { width: 100%; min-height: 112px; gap: 14px; padding: 30px 15px 8px; }
  .brand-link { flex: 0 0 75px; }
  .site-logo { width: 75px; }
  .header-details { display: flex; width: auto; flex: 1 1 auto; justify-content: flex-end; gap: 0; font-size: 14px; }
  .header-contact-phone { flex-basis: auto; }
  .phone-lines { gap: 4px; }
  .contact-line { gap: 10px; font-size: 14px; line-height: 20px; }
  .header-contact-icon { width: 18px; flex-basis: 18px; font-size: 14px; }
  .header-contact-address, .header-contact-extra { display: none; }
  .messenger-head { gap: 8px; margin-left: 8px; }
  .messenger-link { width: 24px; height: 24px; flex-basis: 24px; }
  .nav-band { display: block; min-height: 51px; }
  .main-nav { min-height: 51px; justify-content: flex-end; padding-inline: 8px; }
  .desktop-nav { display: none; }
  .mobile-nav { position: relative; display: block; align-self: center; margin-left: auto; }
  .mobile-nav > summary { display: flex; width: 44px; height: 35px; flex-direction: column; justify-content: center; gap: 5px; padding: 7px 9px; border: 1px solid #fff; list-style: none; cursor: pointer; }
  .mobile-nav > summary::-webkit-details-marker { display: none; }
  .mobile-nav > summary span { height: 2px; background: #fff; }
  .mobile-nav-panel { position: absolute; z-index: 20; top: 43px; right: 0; width: min(88vw, 310px); background: #5d98cf; box-shadow: 0 7px 20px rgb(0 0 0 / 20%); }
  .mobile-links { display: flex; flex-direction: column; align-items: stretch; }
  .mobile-links > li { display: block; }
  .mobile-links > li > a, .mobile-links .nav-dropdown > summary { min-height: 42px; padding: 11px 14px; }
  .mobile-links .nav-order-item, .mobile-links .nav-franchise { display: block; }
  .mobile-links .nav-dropdown ul { position: static; width: 100%; padding-left: 12px; box-shadow: none; }
  .breadcrumbs { flex-wrap: wrap; gap: 4px; margin-top: 10px; padding-top: 10px; font-size: 12px; }
  .signature-intro { grid-template-columns: 1fr; gap: 0; }
  .signature-order-layout { grid-template-columns: 1fr; gap: 0; }
  .signature-tariff-grid { grid-template-columns: 1fr; }
  .services-category-grid { grid-template-columns: 1fr; gap: 0; }
  .service-category-card { min-height: 300px; }
  .services-page-title { margin-top: 20px; padding-top: 20px; }
  .faq-source-title { margin-top: 20px; padding-top: 20px; font-size: 22px; }
  .delivery-page-heading { margin-bottom: 24px; }
  .delivery-source-grid { grid-template-columns: 1fr; gap: 16px; }
  .delivery-source-card { min-height: 0; padding: 18px 18px 22px; }
  .delivery-card-image { height: 112px; flex-basis: 112px; }
  .delivery-source-card--courier .delivery-card-image img { width: 128px; height: 128px; }
  .delivery-source-card--free .delivery-card-image img { width: 101px; height: 101px; }
  .delivery-source-card--pickup .delivery-card-image img { width: 121px; height: 121px; }
  .delivery-card-copy { max-width: 260px; }
  .delivery-source-card--free .delivery-card-copy { max-width: 230px; }
  .delivery-source-card h2 { font-size: 20px; }
  .delivery-source-card p { font-size: 15px; }
  .delivery-consultation { margin-top: 34px; }
  .contact-source-page > .online-page-heading { margin-bottom: 22px; }
  .contact-source-grid { grid-template-columns: minmax(0, 1fr); gap: 16px; }
  .contact-source-card { min-height: 0; padding: 20px 18px; }
  .contact-source-section-heading { font-size: 20px; }
  .contact-source-map { min-height: 340px; }
  .contact-source-map-frame { min-height: 280px; flex-basis: 280px; }
  .contact-source-map-action { min-height: 46px; padding: 2px 12px; }
  .contact-source-map-action a { min-height: 36px; }
  .contact-source-copy { margin-top: 22px; font-size: 16px; }
  .contact-source-page > .contact-source-consultation { margin-top: 26px; }
  .partners-source-copy { margin-top: 22px; }
  .partners-source-page > .partners-consultation { margin-top: 26px; }
  .policy-source-title { font-size: 25px; }
  .other-print-intro { grid-template-columns: 1fr; gap: 0; margin-inline: 15px; }
  .other-print-image img { width: 34%; min-width: 110px; margin-top: 0; }
  .ip-source-page .breadcrumbs { min-height: 50px; margin-top: 20px; align-content: flex-start; }
  .ip-order-form { width: calc(100% - 2px); margin: 20px 1px 48px; }
  .ip-order-block { padding: 20px 15px; }
  .ip-order-parameter-columns, .ip-order-details-grid { grid-template-columns: 1fr; gap: 0; }
  .ip-order-fulfillment { grid-template-columns: 1fr; }
  .ip-order-parameters { padding-bottom: 30px; }
  .ip-order-parameters .ip-order-field-column { padding-inline: 15px; }
  .ip-order-parameters .ip-order-field-column > .ip-order-field { margin-inline: 15px; }
  .ip-order-field-column, .ip-order-details-column { gap: 0; }
  .ip-order-field { grid-template-columns: 1fr; gap: 5px; }
  .ip-order-field input:not([type="file"]), .ip-order-field select, .ip-order-field textarea { min-height: 30px; }
  .ip-order-file { grid-template-columns: 1fr; }
  .ip-order-file-control, .ip-order-field small, .ip-order-file-preview { grid-column: 1; }
  .ip-order-choice-row { grid-template-columns: 1fr; gap: 25px; }
  .ip-order-choice-row .ip-order-block { margin: 0; }
  .ip-order-maket-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0; }
  .ip-order-option-card { min-height: 210px; }
  .ip-order-option-card > img { height: 145px; }
  .ip-order-makets .ip-order-option { margin: 5px; }
  .ip-order-choice-row .ip-order-equipment { width: 100%; margin-left: 0; }
  .ip-order-disclosure-controls { gap: 8px; }
  .ip-order-disclosure-controls > .ip-load-more { padding-inline: clamp(8px, 3vw, 20px); }
  .ip-order-equipment .ip-order-option-card > img, .ip-order-equipment .ip-order-option-placeholder { min-height: 134px; }
  .ip-order-comment { margin-bottom: 11px; }
  .ip-order-comment textarea { height: 70px; min-height: 70px; }
  .ip-order-details-grid { row-gap: 14px; }
  .ip-order-details-column:first-child { padding-bottom: 0; }
  .ip-order-rush { width: fit-content; max-width: 100%; margin: 20px auto 0; flex-wrap: nowrap; align-items: center; justify-content: center; }
  .ip-order-rush input { margin: 0; }
  .ip-order-rush > span { min-width: 0; text-align: center; }
  .ip-order-fulfillment { grid-template-columns: 1fr; gap: 10px; margin: 0 0 18px; }
  .ip-order-fulfillment-option { min-height: 0; padding: 12px; }
  .ip-order-total { margin-bottom: 30px; }
  .ip-order-consent { display: flex; justify-content: flex-start; margin: 18px 15px 30px; }
  .ip-order-submit-row { margin: 25px 15px 0; }
  .ip-order-submit-row .place-order { width: 100%; height: 67px; }
  .ip-order-total { flex-wrap: wrap; gap: 4px 8px; font-size: 25px; }
  .ip-order-total output { min-width: 55px; font-size: 28px; }
  .other-order-form .ip-order-total input[data-other-total] { width: 55px; font-size: 28px; }
  .ip-consultation { width: 100%; grid-template-columns: 1fr; gap: 16px; align-items: stretch; margin: 64px auto 28px; padding: 22px 18px 18px; }
  .ip-consultation-copy h2,
  .ip-consultation-copy p { text-align: center; }
  .ip-consultation-fields { grid-template-columns: 1fr; gap: 10px; }
  .ip-consultation-actions { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .footer-main {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-template-areas:
      "location location"
      "contact navigation";
    gap: 16px 14px;
    padding-block: 16px;
  }
  .footer-contact { grid-area: contact; }
  .footer-navigation { grid-area: navigation; }
  .footer-location { grid-area: location; }
  .footer-contact-layout { width: 100%; min-height: 0; grid-template-columns: minmax(0, 1fr); gap: 7px; }
  .footer-phone-list { width: 100%; }
  .footer-phone-list a { width: 100%; gap: 6px; font-size: 14px; }
  .footer-phone-list .footer-icon { width: 16px; height: 16px; }
  .footer-contact-channels { width: 100%; min-height: 0; gap: 6px; }
  .footer-messenger-list { gap: 6px; }
  .footer-messenger-link { width: 36px; height: 36px; flex-basis: 36px; }
  .footer-messenger-link img { width: 25px; height: 25px; }
  .footer-email { width: 100%; gap: 6px; font-size: 12.5px; }
  .footer-email .footer-icon { width: 16px; height: 16px; }
  .footer-nav-links { width: 100%; min-height: 0; grid-template-columns: minmax(0, 1fr); gap: 5px; }
  .footer-nav-links a { font-size: 14px; }
  .footer-location-content { width: 100%; min-height: 0; }
  .footer-bottom-inner { padding-block: 10px; }
  .footer-legal { flex-direction: column; gap: 5px; }
  .footer-bottom p { text-align: center; }
}

@media (max-width: 332px) {
  .ip-source-page .breadcrumbs { display: none; }
}

@media (max-width: 380px) {
  .footer-main { grid-template-columns: minmax(0, 1fr); gap: 12px; }
  .footer-contact, .footer-navigation, .footer-location { grid-column: 1; grid-row: auto; }
}

/* Source-like geometry for the legacy equipment article pages. */
.equipment-article-page.page-width {
  width: min(1170px, calc(100% - 40px));
  padding-inline: 15px;
  padding-bottom: 0;
  color: #333;
  font: 14px/1.42857143 Arial, sans-serif;
}
.equipment-article-page > .breadcrumbs.page-width {
  width: 100%;
  margin: 0;
  padding: 10px 15px 0;
  color: #333;
  font-size: 14px;
}
.equipment-article-page > .breadcrumbs a { color: #1f537c; }
.equipment-article-heading { margin: 20px 0 10px; padding-inline: 15px; }
.equipment-article-heading h1,
.equipment-article-heading p {
  color: #333;
  font: 700 25px/1.1 Arial, sans-serif;
  text-transform: uppercase;
}
.equipment-article-layout { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0; }
.equipment-article-image {
  width: calc(90% - 27px);
  margin-left: 15px;
  justify-self: start;
}
.equipment-article-copy { padding-inline: 15px; }
.equipment-article-paragraph { margin-bottom: 10px; color: #333; line-height: 20px; }
.equipment-article-action .place-order { vertical-align: middle; }

@media (min-width: 768px) {
  .equipment-article-action { margin-top: 21.7px; }
}

@media (max-width: 767px) {
  .equipment-article-page.page-width {
    width: 100%;
    padding-inline: 15px;
  }
  .equipment-article-page > .breadcrumbs.page-width {
    width: 100%;
    margin: 0;
    padding: 10px 15px 0;
    font-size: 12px;
  }
  .equipment-article-heading { margin: 20px 0 10px; padding-inline: 15px; }
  .equipment-article-layout { grid-template-columns: 1fr; gap: 17px; }
  .equipment-article-image { width: calc(90% - 27px); margin-left: 15px; }
  .equipment-article-copy { padding-inline: 15px; }
}

@media (max-width: 580px) {
  .ip-consultation-actions { grid-template-columns: 1fr; }
  .ip-consultation { padding: 20px 16px 16px; border-radius: 14px; }
}

/* Shared header: first live composition iteration. */
.site-header--redesign {
  --header-ink: #28343d;
  --header-muted: #596a76;
  --header-line: #dce3e8;
  --header-surface: #f4f6f7;
  --header-accent: #1f537c;
  --header-nav-surface: var(--header-accent);
  --header-nav-ink: #fff;
  --header-nav-hover: #174362;
  position: sticky;
  top: 0;
  z-index: 20;
  margin: 0;
  border: 0;
  color: var(--header-ink);
  background: #fff;
  font-family: "PT Sans Local", Arial, sans-serif;
}

.site-header--redesign .header-masthead {
  display: grid;
  grid-template-columns: minmax(188px, .9fr) minmax(258px, 1.18fr) minmax(208px, .95fr) max-content;
  align-items: center;
  gap: 18px;
  min-height: 124px;
  padding-block: 16px;
}

.site-header--redesign .header-divider { display: none; }

.site-header--redesign .header-brand {
  display: flex;
  min-width: 0;
  align-items: center;
  gap: 11px;
  color: var(--header-ink);
  text-decoration: none;
}

.site-header--redesign .header-brand:hover { color: var(--header-ink); }

.site-header--redesign .header-brand-mark {
  width: 62px;
  height: 62px;
  flex: 0 0 62px;
  object-fit: contain;
}

.site-header--redesign .header-wordmark {
  display: grid;
  gap: 3px;
  color: var(--header-ink);
  line-height: 1;
  white-space: nowrap;
}

.site-header--redesign .header-wordmark > span {
  font-size: 22px;
  font-weight: 700;
  letter-spacing: -.025em;
}

.site-header--redesign .header-wordmark > strong {
  color: var(--header-accent);
  font-size: 14px;
  font-weight: 700;
  letter-spacing: .16em;
}

.site-header--redesign .header-contact-stack {
  display: grid;
  min-width: 0;
  justify-items: start;
  gap: 3px;
}

.site-header--redesign .header-contact-link {
  display: inline-flex;
  min-width: 0;
  min-height: 24px;
  align-items: center;
  gap: 9px;
  color: var(--header-ink);
  font-size: 14px;
  line-height: 1.25;
  text-decoration: none;
  white-space: nowrap;
}

.site-header--redesign .header-contact-link:hover {
  color: var(--header-accent);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.site-header--redesign .header-contact-primary {
  color: var(--header-accent);
  font-size: 18px;
  font-weight: 700;
}

.site-header--redesign .header-contact-secondary {
  color: var(--header-accent);
  font-size: 15px;
}
.site-header--redesign .header-contact-email { color: var(--header-muted); }

.site-header--redesign .header-icon {
  width: 17px;
  height: 17px;
  flex: 0 0 17px;
  color: var(--header-accent);
}

.site-header--redesign .header-location {
  display: flex;
  min-width: 0;
  align-items: center;
  gap: 11px;
  padding-left: 20px;
  border-left: 1px solid var(--header-line);
  color: var(--header-muted);
  font-size: 14px;
  line-height: 1.45;
}

.site-header--redesign .header-location-icon {
  width: 22px;
  height: 22px;
  flex: 0 0 22px;
  color: var(--header-accent);
}

.site-header--redesign .header-location-copy { min-width: 0; }
.site-header--redesign .header-location-floor { display: inline; white-space: nowrap; }
.site-header--redesign .header-location-hours { display: block; margin-top: 2px; }

.site-header--redesign .header-messengers,
.site-header--redesign .header-mobile-messengers {
  display: flex;
  align-items: center;
  gap: 8px;
}

.site-header--redesign .header-messenger-link {
  display: grid;
  width: 40px;
  height: 40px;
  flex: 0 0 40px;
  place-items: center;
  border-radius: 8px;
  transition: background-color .16s ease, transform .16s ease;
}

.site-header--redesign .header-messenger-link:hover {
  background: var(--header-surface);
  transform: translateY(-1px);
}

.site-header--redesign .header-messenger-link img {
  width: 30px;
  height: 30px;
  object-fit: contain;
}

.site-header--redesign .header-nav-desktop {
  position: relative;
  z-index: 1;
  border-top: 1px solid var(--header-nav-surface);
  background: var(--header-nav-surface);
}

.site-header--redesign .header-nav-inner { display: flex; }

.site-header--redesign .header-nav-list {
  display: flex;
  width: 100%;
  align-items: center;
  justify-content: space-between;
  gap: 4px;
  margin: 0;
  padding: 8px 0;
  list-style: none;
}

.site-header--redesign .header-nav-desktop .header-nav-list {
  justify-content: center;
  gap: clamp(18px, 1.6vw, 24px);
}

.site-header--redesign .header-nav-list > li {
  position: relative;
  display: flex;
  min-width: 0;
  align-items: center;
}

.site-header--redesign .header-nav-list > li > a,
.site-header--redesign .header-nav-disclosure > summary {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  justify-content: center;
  gap: 9px;
  padding: 9px 12px;
  border-radius: 6px;
  color: var(--header-ink);
  font-size: 14px;
  font-weight: 700;
  line-height: 1.2;
  text-decoration: none;
  white-space: nowrap;
  cursor: pointer;
}

.site-header--redesign .header-nav-desktop .header-nav-list > li > a,
.site-header--redesign .header-nav-desktop .header-nav-disclosure > summary {
  color: var(--header-nav-ink);
}

.site-header--redesign .header-nav-disclosure { position: relative; }

.site-header--redesign .header-nav-disclosure > summary { list-style: none; }

.site-header--redesign .header-nav-desktop .header-nav-list > li > a:hover,
.site-header--redesign .header-nav-desktop .header-nav-disclosure > summary:hover,
.site-header--redesign .header-nav-desktop .header-nav-disclosure[open] > summary {
  color: var(--header-nav-ink);
  background: var(--header-nav-hover);
}

.site-header--redesign .header-nav-disclosure > summary::-webkit-details-marker,
.site-header--redesign .header-nav-chevron {
  width: 7px;
  height: 7px;
  flex: 0 0 7px;
  border-right: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor;
  transform: translateY(-2px) rotate(45deg);
  transition: transform .16s ease;
}

.site-header--redesign .header-nav-desktop .header-nav-chevron {
  transform: translateY(-1px) rotate(45deg);
}

.site-header--redesign .header-nav-disclosure[open] .header-nav-chevron {
  transform: translateY(2px) rotate(225deg);
}

.site-header--redesign .header-nav-desktop .header-nav-disclosure[open] .header-nav-chevron {
  transform: translateY(1px) rotate(225deg);
}

.site-header--redesign .header-nav-dropdown {
  position: absolute;
  z-index: 30;
  top: calc(100% + 5px);
  left: 0;
  display: grid;
  width: 270px;
  gap: 2px;
  margin: 0;
  padding: 7px;
  border: 1px solid var(--header-line);
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 12px 28px rgb(35 55 72 / 12%);
  list-style: none;
}

.site-header--redesign .header-nav-disclosure--information > .header-nav-dropdown::before {
  position: absolute;
  top: -6px;
  right: 0;
  left: 0;
  height: 6px;
  content: '';
}

.site-header--redesign .header-nav-dropdown a {
  display: flex;
  min-height: 40px;
  align-items: center;
  padding: 8px 10px;
  border-radius: 5px;
  color: var(--header-ink);
  font-size: 14px;
  line-height: 1.3;
  text-decoration: none;
  white-space: normal;
}

.site-header--redesign .header-mobile-catalog {
  color: #fff;
  background: var(--header-accent);
}

.site-header--redesign .header-mobile-catalog:hover {
  color: #fff;
  background: #173f5e;
}

.site-header--redesign .header-nav-mobile { display: none; }

/* Desktop header: centered contact groups with a separate navigation rail. */
@media (min-width: 885px) {
  .site-header--redesign {
    font-family: "Segoe UI", Arial, sans-serif;
  }

  .site-header--redesign .header-masthead {
    width: min(1120px, calc(100% - 40px));
    min-height: 100px;
    display: flex;
    align-items: center;
    gap: 0;
    box-sizing: border-box;
    padding: 8px clamp(18px, 2vw, 28px);
  }

  .site-header--redesign .header-divider {
    position: relative;
    display: block;
    flex: 1 1 0;
    min-width: clamp(24px, 3vw, 40px);
    height: 68px;
    align-self: center;
  }

  .site-header--redesign .header-divider::before {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 50%;
    border-left: 1px solid var(--header-line);
    content: "";
    transform: translateX(-.5px);
  }

  .site-header--redesign .header-brand {
    min-height: 68px;
    justify-content: center;
    gap: 10px;
    flex: 0 0 auto;
    padding-inline: 0;
    border-right: 0;
  }

  .site-header--redesign .header-brand-mark {
    display: block;
    width: 64px;
    height: 64px;
    flex: 0 0 64px;
    object-fit: contain;
  }

  .site-header--redesign .header-wordmark { gap: 4px; text-align: center; }

  .site-header--redesign .header-wordmark > span {
    font-size: clamp(22px, 1.8vw, 27px);
    font-weight: 700;
    letter-spacing: -.02em;
  }

  .site-header--redesign .header-wordmark > strong {
    font-size: clamp(14px, 1.1vw, 16px);
    font-weight: 700;
    letter-spacing: .13em;
  }

  .site-header--redesign .header-location {
    height: 68px;
    flex: 0 1 auto;
    justify-content: center;
    gap: 10px;
    padding-inline: 0;
    border: 0;
    font-size: clamp(14.5px, 1.08vw, 16px);
    font-weight: 500;
    line-height: 1.32;
  }

  .site-header--redesign .header-location-icon {
    width: 21px;
    height: 21px;
    flex-basis: 21px;
  }

  .site-header--redesign .header-location-copy { width: 225px; max-width: 100%; }

  .site-header--redesign .header-contact-stack {
    height: 68px;
    flex: 0 0 auto;
    align-content: center;
    justify-items: center;
    gap: 4px;
    padding-inline: 0;
    border: 0;
  }

  .site-header--redesign .header-contact-link {
    min-height: 24px;
    gap: 8px;
    font-family: inherit;
    font-size: 15px;
    font-weight: 600;
    line-height: 1.2;
  }

  .site-header--redesign .header-contact-primary,
  .site-header--redesign .header-contact-secondary {
    color: var(--header-accent);
    font-size: clamp(17px, 1.4vw, 19px);
    font-weight: 700;
  }

  .site-header--redesign .header-icon {
    width: 17px;
    height: 17px;
    flex-basis: 17px;
  }

  .site-header--redesign .header-contact-email {
    min-height: 20px;
    color: var(--header-muted);
    font-size: clamp(13.5px, 1.1vw, 15px);
    font-weight: 600;
  }

  .site-header--redesign .header-contact-email .header-icon {
    width: 19px;
    height: 19px;
    flex-basis: 19px;
    transform: translateY(1px);
  }

  .site-header--redesign .header-messenger-stack {
    display: grid;
    min-width: 0;
    flex: 0 0 auto;
    height: 68px;
    align-content: center;
    justify-items: center;
    gap: 4px;
    padding-inline: 0;
  }

  .site-header--redesign .header-messengers { justify-content: center; gap: clamp(4px, .6vw, 8px); }

  .site-header--redesign .header-messenger-link {
    width: 36px;
    height: 36px;
    flex-basis: 36px;
  }

  .site-header--redesign .header-messenger-link img { width: 32px; height: 32px; }

  .site-header--redesign .header-nav-list {
    justify-content: center;
    gap: clamp(4px, .8vw, 12px);
    padding-block: 2px;
  }

  .site-header--redesign .header-nav-list > li > a,
  .site-header--redesign .header-nav-disclosure > summary {
    min-height: 44px;
    gap: 8px;
    padding: 8px clamp(5px, .7vw, 10px);
    font-family: inherit;
    font-size: clamp(15px, 1.2vw, 16.5px);
    font-weight: 700;
    letter-spacing: .01em;
  }
}

@media (max-width: 884px) {
  .site-header--redesign .header-messenger-stack { display: none; }
}

/* Responsive header: keep intermediate groups evenly spaced and separate the compact mobile rows. */
@media (max-width: 884px) {
  .site-header--redesign .header-masthead,
  .site-header--redesign .header-nav-desktop { display: none; }

  .site-header--redesign .header-nav-mobile {
    display: block;
    border: 0;
    background: #fff;
  }

  .site-header--redesign .header-mobile-main {
    display: grid;
    grid-template-columns: max-content max-content max-content 44px;
    grid-template-areas: "brand contacts messengers menu";
    align-items: center;
    justify-content: space-between;
    font-synthesis: weight;
    min-height: 92px;
    padding-block: 12px;
  }

  .site-header--redesign .header-mobile-brand {
    display: flex;
    grid-area: brand;
    width: max-content;
    max-width: 100%;
    min-width: 0;
    height: auto;
    align-items: center;
    justify-self: start;
    gap: 9px;
    color: var(--header-ink);
    text-decoration: none;
  }

  .site-header--redesign .header-mobile-brand img {
    width: 56px;
    height: 56px;
    flex: 0 0 56px;
    object-fit: contain;
  }

  .site-header--redesign .header-mobile-brand .header-wordmark {
    justify-items: center;
    gap: 3px;
    color: var(--header-accent);
    text-align: center;
  }

  .site-header--redesign .header-mobile-brand .header-wordmark > span {
    font-size: 22px;
    font-weight: 700;
    letter-spacing: -.02em;
  }

  .site-header--redesign .header-mobile-brand .header-wordmark > strong {
    font-size: 14px;
    font-weight: 700;
    letter-spacing: .1em;
  }

  .site-header--redesign .header-mobile-contact-actions { display: contents; }

  .site-header--redesign .header-mobile-contact-stack {
    display: grid;
    grid-area: contacts;
    min-width: 0;
    justify-items: start;
    justify-self: center;
    gap: 0;
  }

  .site-header--redesign .header-mobile-primary-phone {
    gap: 6px;
    font-size: 16px;
    font-weight: 700;
  }

  .site-header--redesign .header-mobile-email {
    display: inline-flex;
    gap: 6px;
    color: var(--header-accent);
    font-size: 16px;
    font-weight: 700;
    line-height: 1;
  }

  .site-header--redesign .header-mobile-primary-phone .header-icon,
  .site-header--redesign .header-mobile-primary-phone > span { transform: translateY(2px); }

  .site-header--redesign .header-mobile-email .header-icon { transform: translateY(-1px); }
  .site-header--redesign .header-mobile-email > span { transform: translateY(-2px); }

  .site-header--redesign .header-mobile-contact-stack .header-icon {
    width: 16px;
    height: 16px;
    flex-basis: 16px;
  }

  .site-header--redesign .header-mobile-messengers {
    display: flex;
    grid-area: messengers;
    align-items: center;
    justify-content: center;
    gap: 4px;
  }

  .site-header--redesign .header-mobile-messengers .header-messenger-link {
    width: 34px;
    height: 38px;
    flex-basis: 34px;
    border-radius: 6px;
  }

  .site-header--redesign .header-mobile-messengers .header-messenger-link img {
    width: 26px;
    height: 26px;
  }

  .site-header--redesign .header-mobile-menu {
    position: relative;
    grid-area: menu;
    justify-self: end;
  }

  .site-header--redesign .header-mobile-menu-trigger {
    display: grid;
    width: 44px;
    height: 44px;
    place-items: center;
    border: 1px solid var(--header-line);
    border-radius: 7px;
    color: var(--header-ink);
    background: #fff;
    cursor: pointer;
    transition: color .16s ease, background-color .16s ease, border-color .16s ease;
  }

  .site-header--redesign .header-mobile-menu-trigger:hover,
  .site-header--redesign .header-mobile-menu-trigger[aria-expanded="true"] {
    color: var(--header-accent);
    background: var(--header-surface);
  }

  .site-header--redesign .header-burger {
    display: grid;
    width: 18px;
    height: 14px;
    align-content: space-between;
  }

  .site-header--redesign .header-burger > span {
    width: 18px;
    height: 1.5px;
    border-radius: 2px;
    background: currentColor;
  }

  .site-header--redesign .header-mobile-quickbar { background: var(--header-nav-surface); }

  .site-header--redesign .header-mobile-quicklinks {
    display: flex;
    width: min(calc(100% - 32px), 760px);
    min-height: 48px;
    flex-wrap: wrap;
    align-items: stretch;
    justify-content: center;
    gap: clamp(18px, 1.6vw, 24px);
    margin-block: 0;
    padding-inline: 0;
    padding-block: 2px;
    font-synthesis: weight;
    list-style: none;
  }

  .site-header--redesign .header-mobile-quicklinks > li {
    display: flex;
    min-width: 0;
    flex: 0 0 auto;
    align-items: stretch;
  }

  .site-header--redesign .header-mobile-quicklinks > li > a {
    display: inline-flex;
    min-height: 44px;
    align-items: center;
    justify-content: center;
    padding-inline: 12px;
    border-radius: 5px;
    color: var(--header-nav-ink);
    font-size: 14px;
    font-weight: 700;
    line-height: 1.15;
    text-align: center;
    text-decoration: none;
    white-space: nowrap;
  }

  .site-header--redesign .header-mobile-quicklinks > li > a:hover,
  .site-header--redesign .header-mobile-quicklinks > li > a:focus-visible {
    color: var(--header-nav-ink);
    background: var(--header-nav-hover);
  }

  .site-header--redesign .header-mobile-panel {
    position: fixed;
    inset-block-start: 12px;
    inset-inline-end: 12px;
    display: grid;
    width: min(420px, calc(100vw - 24px));
    max-height: min(82dvh, 620px);
    gap: 8px;
    margin: 0;
    padding: 12px;
    border: 1px solid var(--header-line);
    border-radius: 10px;
    color: var(--header-ink);
    background: #fff;
    box-shadow: 0 14px 34px rgb(35 55 72 / 15%);
    overflow: auto;
    overscroll-behavior: contain;
  }

  .site-header--redesign .header-mobile-panel:not([open]) { display: none; }

  .site-header--redesign .header-mobile-panel::backdrop {
    background: rgb(25 36 45 / 54%);
  }

  .site-header--redesign .header-mobile-panel-header {
    display: flex;
    min-height: 42px;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 0 0 8px;
    border-bottom: 1px solid var(--header-line);
  }

  .site-header--redesign .header-mobile-panel-title {
    margin: 0;
    color: var(--header-ink);
    font-family: inherit;
    font-size: 17px;
    font-weight: 700;
    line-height: 1.25;
  }

  .site-header--redesign .header-mobile-menu-close {
    display: grid;
    width: 40px;
    height: 40px;
    flex: 0 0 40px;
    place-items: center;
    border: 1px solid var(--header-line);
    border-radius: 7px;
    color: var(--header-ink);
    background: #fff;
    font-size: 28px;
    line-height: 1;
    cursor: pointer;
    transition: color .16s ease, background-color .16s ease, border-color .16s ease;
  }

  .site-header--redesign .header-mobile-menu-close:hover {
    border-color: var(--header-accent);
    color: var(--header-accent);
    background: var(--header-surface);
  }

  .site-header--redesign .header-nav-list--mobile {
    display: flex;
    align-items: stretch;
    flex-direction: column;
    gap: 0;
    padding: 0;
  }

  .site-header--redesign .header-nav-list--mobile > li {
    display: block;
    border-bottom: 1px solid var(--header-line);
  }

  .site-header--redesign .header-nav-list--mobile > li:last-child { border-bottom: 0; }

  .site-header--redesign .header-nav-list--mobile > li > a,
  .site-header--redesign .header-nav-list--mobile .header-nav-disclosure > summary {
    width: 100%;
    min-height: 44px;
    justify-content: space-between;
    padding: 10px;
    border-radius: 0;
    white-space: normal;
  }

  .site-header--redesign .header-nav-list--mobile .header-nav-dropdown {
    position: static;
    width: auto;
    gap: 0;
    padding: 0 0 7px 10px;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
  }

  .site-header--redesign .header-nav-list--mobile .header-nav-dropdown a {
    min-height: 42px;
    padding-inline: 10px;
  }

  .site-header--redesign .header-mobile-contacts {
    display: grid;
    gap: 3px;
    padding-top: 8px;
    border-top: 1px solid var(--header-line);
  }

  .site-header--redesign .header-mobile-contacts .header-contact-link {
    min-height: 44px;
    padding-inline: 8px;
    color: var(--header-accent);
  }
}

@media (max-width: 500px) {
  .site-header--redesign .header-mobile-main {
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
    grid-template-areas:
      ". brand menu"
      "actions actions actions";
    row-gap: 10px;
    min-height: 0;
    padding-block: 12px;
  }

  .site-header--redesign .header-mobile-brand { justify-self: center; }
  .site-header--redesign .header-mobile-brand img { width: 48px; height: 48px; flex-basis: 48px; }
  .site-header--redesign .header-mobile-brand .header-wordmark > span { font-size: 19px; }
  .site-header--redesign .header-mobile-brand .header-wordmark > strong { font-size: 13px; letter-spacing: .1em; }

  .site-header--redesign .header-mobile-contact-actions {
    display: flex;
    grid-area: actions;
    width: 100%;
    min-width: 0;
    align-items: center;
    justify-content: center;
    gap: clamp(12px, 4vw, 20px);
    padding-top: 8px;
    border-top: 1px solid var(--header-line);
  }

  .site-header--redesign .header-mobile-contact-stack {
    grid-area: auto;
    justify-self: auto;
    gap: 0;
  }

  .site-header--redesign .header-mobile-primary-phone { font-size: 15px; }
  .site-header--redesign .header-mobile-email { font-size: 15px; }
  .site-header--redesign .header-mobile-messengers { grid-area: auto; gap: 3px; }
  .site-header--redesign .header-mobile-messengers .header-messenger-link { width: 32px; height: 36px; flex-basis: 32px; }
  .site-header--redesign .header-mobile-messengers .header-messenger-link img { width: 25px; height: 25px; }
  .site-header--redesign .header-mobile-menu-trigger { width: 42px; height: 42px; }

  .site-header--redesign .header-mobile-quicklinks {
    gap: clamp(14px, calc(1.74vw + 7.2px), 18px);
  }

  .site-header--redesign .header-mobile-quicklinks > li > a {
    padding-inline: clamp(4px, calc(3.48vw - 9.6px), 12px);
  }
}

@media (max-width: 360px) {
  .site-header--redesign .header-mobile-main {
    row-gap: 8px;
    padding-block: 10px;
  }

  .site-header--redesign .header-mobile-brand img { width: 42px; height: 42px; flex-basis: 42px; }
  .site-header--redesign .header-mobile-brand .header-wordmark > span { font-size: 18px; }
  .site-header--redesign .header-mobile-brand .header-wordmark > strong { font-size: 12px; letter-spacing: .1em; }
  .site-header--redesign .header-mobile-messengers .header-messenger-link { width: 36px; height: 36px; flex-basis: 36px; }
  .site-header--redesign .header-mobile-messengers .header-messenger-link img { width: 25px; height: 25px; }
  .site-header--redesign .header-mobile-primary-phone { gap: 4px; font-size: 13px; }
  .site-header--redesign .header-mobile-email { gap: 4px; font-size: 13px; }
  .site-header--redesign .header-mobile-contact-stack .header-icon { width: 14px; height: 14px; flex-basis: 14px; }
  .site-header--redesign .header-mobile-menu-trigger { width: 40px; height: 40px; }
}

@media (max-width: 300px) {
  .site-header--redesign .header-mobile-contact-actions { flex-direction: column; gap: 5px; }
  .site-header--redesign .header-mobile-contact-stack { justify-items: center; }
  .site-header--redesign .header-mobile-contact-stack .header-contact-link { justify-content: center; }
  .site-header--redesign .header-mobile-brand img { width: 34px; height: 34px; flex-basis: 34px; }
  .site-header--redesign .header-mobile-brand .header-wordmark > span { font-size: 15px; }
  .site-header--redesign .header-mobile-brand .header-wordmark > strong { font-size: 10px; letter-spacing: .1em; }
  .site-header--redesign .header-mobile-primary-phone { gap: 3px; font-size: 12px; }
  .site-header--redesign .header-mobile-email { gap: 3px; font-size: 12px; }
  .site-header--redesign .header-mobile-contact-stack .header-icon { width: 13px; height: 13px; flex-basis: 13px; }
  .site-header--redesign .header-mobile-menu-trigger { width: 36px; height: 36px; }
  .site-header--redesign .header-mobile-messengers .header-messenger-link { width: 34px; height: 36px; flex-basis: 34px; }
  .site-header--redesign .header-mobile-messengers .header-messenger-link img { width: 24px; height: 24px; }
}

@media (max-width: 375px) {
  .site-header--redesign .header-mobile-quicklinks {
    width: min(calc(100% - 16px), 760px);
    flex-wrap: nowrap;
    gap: clamp(3px, calc(15vw - 39px), 12px);
  }

  .site-header--redesign .header-mobile-quicklinks > li > a {
    padding-inline: clamp(0px, calc(7.27vw - 23.26px), 4px);
  }
}

@media (max-width: 300px) {
  .site-header--redesign .header-mobile-quicklinks { gap: 7px; }

  .site-header--redesign .header-mobile-quicklinks > li > a {
    font-size: clamp(12px, calc(10vw - 17px), 14px);
  }
}

/* Footer mobile stack: separate its three groups with short, quiet rules. */
@media (max-width: 620px) {
  .footer-main {
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas:
      "contact"
      "navigation"
      "location";
    gap: 0;
    padding-block: 16px;
  }

  .footer-contact, .footer-navigation, .footer-location {
    grid-column: 1;
    grid-row: auto;
  }

  .footer-navigation::before,
  .footer-location::before {
    content: "";
    width: min(52%, 260px);
    height: 1px;
    flex: 0 0 1px;
    margin: 12px auto;
    background: rgb(255 255 255 / 18%);
  }
}

/* Shared geometry for all local order and inquiry forms. */
.form-section,
.ip-order-block { border-radius: var(--form-shell-radius); }

.demo-form input:not([type="checkbox"]):not([type="file"]),
.demo-form select,
.demo-form input[type="file"],
.signature-order-field input { border-radius: var(--form-control-radius); }

.ip-order-field input:not([type="file"]),
.ip-order-field select,
.ip-order-field textarea,
.ip-order-field input[type="file"] { border-radius: var(--form-compact-control-radius); }

.ip-order-option-card { overflow: hidden; border-radius: var(--form-choice-radius); }

.ip-load-more,
.demo-form .button,
.ip-order-form .place-order,
.signature-order-customer-form .place-order { border-radius: var(--form-control-radius); }

.form-result,
.ip-order-result { border-radius: var(--form-control-radius); }

@media (max-width: 580px) {
  :root { --form-shell-radius: 14px; }
}

.form-honeypot {
  position: absolute !important;
  left: -10000px !important;
  width: 1px !important;
  height: 1px !important;
  opacity: .01 !important;
  pointer-events: none !important;
}

/* Request result dialog. */
.demo-form-feedback {
  position: fixed;
  inset: 50% auto auto 50%;
  margin: 0;
  transform: translate(-50%, -50%);
  width: min(448px, calc(100vw - 28px));
  max-width: calc(100vw - 28px);
  max-height: min(86vh, 700px);
  padding: 0;
  overflow: auto;
  border: 1px solid var(--line);
  border-radius: 22px;
  color: var(--ink);
  background: var(--paper);
  box-shadow: 0 28px 80px rgb(19 46 67 / 26%);
}

.demo-form-feedback::backdrop {
  background: rgb(16 35 50 / 58%);
  backdrop-filter: blur(3px);
}

.demo-form-feedback__content {
  position: relative;
  display: grid;
  justify-items: center;
  padding: 34px clamp(22px, 5vw, 38px) 30px;
  text-align: center;
}

.demo-form-feedback__close {
  position: absolute;
  top: 13px;
  right: 14px;
  display: grid;
  width: 38px;
  height: 38px;
  place-items: center;
  border: 1px solid var(--line);
  border-radius: 50%;
  color: var(--muted);
  background: white;
  font: inherit;
  font-size: 25px;
  line-height: 1;
  cursor: pointer;
}

.demo-form-feedback__close:hover {
  color: var(--blue-dark);
  background: var(--blue-light);
}

.demo-form-feedback__icon {
  display: grid;
  width: 58px;
  height: 58px;
  margin-bottom: 17px;
  place-items: center;
  border-radius: 50%;
  color: white;
  background: #328353;
  font-size: 32px;
  font-weight: 700;
}

.demo-form-feedback[data-state="error"] .demo-form-feedback__icon {
  background: #b4232d;
}

.demo-form-feedback__eyebrow {
  margin: 0 0 7px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .09em;
}

.demo-form-feedback__title {
  max-width: 100%;
  margin: 0;
  color: var(--blue-dark);
  font-size: clamp(23px, 5vw, 29px);
  line-height: 1.18;
}

.demo-form-feedback[data-state="error"] .demo-form-feedback__title {
  color: #9d2029;
}

.demo-form-feedback__message {
  margin: 12px 0 0;
  color: var(--muted);
  font-size: 16px;
  line-height: 1.5;
}

.demo-form-feedback__errors {
  display: grid;
  width: 100%;
  gap: 7px;
  margin: 17px 0 0;
  padding: 14px 16px 14px 34px;
  border: 1px solid rgb(180 35 45 / 20%);
  border-radius: 13px;
  color: #8c1d26;
  background: #fff5f5;
  text-align: left;
  line-height: 1.4;
}

.demo-form-feedback__errors[hidden] { display: none; }

.demo-form-feedback__action {
  width: 100%;
  min-height: 48px;
  margin-top: 19px;
  border: 0;
  border-radius: var(--form-control-radius);
  color: white;
  background: var(--blue-dark);
  font: inherit;
  font-weight: 700;
  cursor: pointer;
}

.demo-form-feedback__action:hover { background: var(--blue); }

[aria-busy="true"] button[type="submit"],
[aria-busy="true"] input[type="submit"] {
  cursor: progress;
  opacity: .72;
}

.demo-form-feedback :focus-visible,
input.is-invalid,
select.is-invalid,
textarea.is-invalid {
  outline: 3px solid rgb(180 35 45 / 22%);
  outline-offset: 2px;
}

.demo-form-feedback input.is-invalid,
.demo-form-feedback select.is-invalid,
.demo-form-feedback textarea.is-invalid,
input.is-invalid,
select.is-invalid,
textarea.is-invalid {
  border-color: #b4232d !important;
}

.has-invalid-field:not(.ip-order-option-card) { color: #9d2029 !important; }
.ip-order-option-card.has-invalid-field { border-color: #b4232d !important; }

@media (max-width: 580px) {
  .demo-form-feedback {
    width: calc(100vw - 24px);
    max-width: calc(100vw - 24px);
    max-height: calc(100dvh - 24px);
    border-radius: 18px;
  }

  .demo-form-feedback__content { padding: 30px 20px 22px; }
  .demo-form-feedback__message { font-size: 15px; }
}

/* Страница «Как заказать»: краткая схема и подробные пояснения по этапам. */
.how-to-order-page { padding-bottom: 0; }
.how-to-order-content { padding-top: 0; }
.how-to-order-heading.online-page-heading { max-width: 640px; margin: 0 auto 12px; }
.how-to-order-intro {
  max-width: 780px;
  margin: 0 auto 24px;
  color: var(--ink);
  font-size: 17px;
  line-height: 1.5;
  text-align: center;
}
.how-to-order-steps {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0 24px;
  max-width: 980px;
  margin: 0 auto;
  padding: 0;
  list-style: none;
}
.how-to-order-step { position: relative; min-width: 0; text-align: center; }
.how-to-order-step__visual {
  display: flex;
  min-height: 104px;
  align-items: center;
  justify-content: center;
  gap: 2px;
}
.how-to-order-step__number {
  position: relative;
  left: 6px;
  display: inline-flex;
  flex: 0 0 22px;
  align-items: center;
  justify-content: center;
  height: 40px;
  color: var(--ink);
  font-size: 33px;
  font-weight: 700;
  line-height: 1;
}
.how-to-order-step__icon {
  display: flex;
  flex: 0 0 104px;
  width: 104px;
  height: 104px;
  align-items: center;
  justify-content: center;
}
.how-to-order-step__icon img {
  display: block;
  width: 96px;
  height: 96px;
  object-fit: contain;
}
.how-to-order-step:nth-child(1) .how-to-order-step__icon img {
  width: 80px;
  height: 80px;
}
.how-to-order-step:nth-child(2) .how-to-order-step__icon img {
  width: 82px;
  height: 82px;
}
.how-to-order-step:nth-child(3) .how-to-order-step__icon img {
  width: 92px;
  height: 92px;
}
.how-to-order-step h2 {
  position: relative;
  left: 12px;
  max-width: 17ch;
  margin: 8px auto 0;
  color: var(--blue-dark);
  font-size: 19px;
  font-weight: 600;
  line-height: 1.35;
  text-align: center;
}
.how-to-order-step__arrow {
  position: absolute;
  top: 44px;
  right: -36px;
  width: 48px;
  height: 16px;
  color: var(--blue-dark);
  opacity: .84;
  pointer-events: none;
}
.how-to-order-details { max-width: 980px; margin: 48px auto 0; }
.how-to-order-details__heading { max-width: 620px; margin: 0 auto 24px; }
.how-to-order-details__list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px 24px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.how-to-order-details__list li {
  min-width: 0;
  padding: 20px 22px;
  border: 1px solid #dce7ef;
  border-radius: 16px;
  background: linear-gradient(135deg, #fff 35%, #f7fafc 100%);
  box-shadow: 0 8px 22px rgb(31 83 124 / 7%);
}
.how-to-order-details__list p { margin: 0; color: var(--ink); font-size: 16px; line-height: 1.55; }
.how-to-order-details__list strong { color: var(--blue-dark); font-weight: 700; }
@media (max-width: 940px) {
  .how-to-order-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 38px; }
  .how-to-order-step__arrow { display: none; }
  .how-to-order-step:nth-child(odd) .how-to-order-step__arrow { display: block; }
}
@media (max-width: 520px) {
  .how-to-order-content { padding-top: 0; }
  .how-to-order-heading.online-page-heading { margin-bottom: 12px; }
  .how-to-order-intro { margin-bottom: 20px; font-size: 16px; text-align: left; }
  .how-to-order-steps { grid-template-columns: minmax(0, 1fr); row-gap: 34px; }
  .how-to-order-step__arrow { display: none; }
  .how-to-order-step:nth-child(odd) .how-to-order-step__arrow { display: none; }
  .how-to-order-step h2 { margin-top: 8px; font-size: 18px; }
  .how-to-order-details { margin-top: 36px; }
  .how-to-order-details__heading { margin-bottom: 20px; }
  .how-to-order-details__list { grid-template-columns: minmax(0, 1fr); gap: 12px; }
  .how-to-order-details__list li { padding: 16px 18px; }
}

.ip-order-form:is([data-ip-order-form], [data-ooo-order-form], [data-med-order-form]) .ip-multi-order { display: grid; width: min(100%, 800px); min-width: 0; gap: 12px; margin-block: var(--order-section-gap); margin-inline: auto; }
.ip-order-form:is([data-ip-order-form], [data-ooo-order-form], [data-med-order-form]) .ip-multi-order > h2 { margin-bottom: 4px; }
.ip-order-form:is([data-ip-order-form], [data-ooo-order-form], [data-med-order-form]) .ip-multi-order-lines { display: grid; gap: 8px; }
.ip-order-form:is([data-ip-order-form], [data-ooo-order-form], [data-med-order-form]) .ip-multi-order-line { display: grid; min-width: 0; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 8px 14px; padding: 12px; border: 1px solid #b7c9d7; border-radius: 8px; background: #f7fafc; }
.ip-order-form:is([data-ip-order-form], [data-ooo-order-form], [data-med-order-form]) .ip-multi-order-current { grid-template-areas: "content controls"; }
.ip-order-form:is([data-ip-order-form], [data-ooo-order-form], [data-med-order-form]) .ip-multi-order-line-content { display: grid; min-width: 0; gap: 3px; color: #333; font-size: 14px; line-height: 1.4; }
.ip-order-form:is([data-ip-order-form], [data-ooo-order-form], [data-med-order-form]) .ip-multi-order-current .ip-multi-order-line-content { grid-area: content; }
.ip-order-form:is([data-ip-order-form], [data-ooo-order-form], [data-med-order-form]) .ip-multi-order-line-content strong { color: #1f537c; font-size: 15px; }
.ip-order-form:is([data-ip-order-form], [data-ooo-order-form], [data-med-order-form]) .ip-multi-order-line-choice { color: #535f68; }
.ip-order-form:is([data-ip-order-form], [data-ooo-order-form], [data-med-order-form]) .ip-multi-order-current .ip-multi-order-line-content strong { margin-bottom: 4px; font-size: 17px; }
.ip-order-form:is([data-ip-order-form], [data-ooo-order-form], [data-med-order-form]) .ip-multi-order-current .ip-multi-order-line-choice,
.ip-order-form:is([data-ip-order-form], [data-ooo-order-form], [data-med-order-form]) .ip-multi-order-unit-price { color: #4f5d67; font-size: 15px; font-weight: 400; }
.ip-order-form:is([data-ip-order-form], [data-ooo-order-form], [data-med-order-form]) .ip-multi-order-current-controls { grid-area: controls; display: flex; width: auto; min-width: 0; align-items: center; justify-content: flex-end; gap: 8px; margin: 0; }
.ip-order-form:is([data-ip-order-form], [data-ooo-order-form], [data-med-order-form]) .ip-multi-order-quantity { display: flex; min-width: max-content; align-items: center; justify-content: center; gap: 6px; }
.ip-order-form:is([data-ip-order-form], [data-ooo-order-form], [data-med-order-form]) .ip-multi-order-quantity input { box-sizing: border-box; width: 48px; min-width: 48px; height: 42px; padding: 0; border: 1px solid #b7c9d7; border-radius: 5px; appearance: textfield; text-align: center; text-indent: 0; font: inherit; font-size: 15px; line-height: 1; }
.ip-order-form:is([data-ip-order-form], [data-ooo-order-form], [data-med-order-form]) .ip-multi-order-quantity input::-webkit-inner-spin-button, .ip-order-form:is([data-ip-order-form], [data-ooo-order-form], [data-med-order-form]) .ip-multi-order-quantity input::-webkit-outer-spin-button { margin: 0; -webkit-appearance: none; }
.ip-order-form:is([data-ip-order-form], [data-ooo-order-form], [data-med-order-form]) .ip-multi-order-quantity-button { display: inline-flex; box-sizing: border-box; width: 42px; height: 42px; align-items: center; justify-content: center; padding: 0; border: 1px solid #b7c9d7; border-radius: 5px; color: #1f537c; background: #fff; font: inherit; font-size: 19px; line-height: 1; cursor: pointer; }
.ip-order-form:is([data-ip-order-form], [data-ooo-order-form], [data-med-order-form]) .ip-multi-order-quantity-button:disabled { color: #9aa7b1; background: #f1f3f5; cursor: not-allowed; }
.ip-order-form:is([data-ip-order-form], [data-ooo-order-form], [data-med-order-form]) .ip-multi-order-clear { min-height: 42px; padding: 7px 12px; border: 1px solid #c6d2dc; border-radius: 5px; color: #52616d; background: #fff; font: inherit; font-size: 14px; cursor: pointer; }
.ip-order-form:is([data-ip-order-form], [data-ooo-order-form], [data-med-order-form]) .ip-multi-order-clear:hover { border-color: #aebecb; background: #f1f6fa; }
.ip-order-form:is([data-ip-order-form], [data-ooo-order-form], [data-med-order-form]) .ip-multi-order-actions { display: flex; justify-content: center; }
.ip-order-form:is([data-ip-order-form], [data-ooo-order-form], [data-med-order-form]) .ip-multi-order-actions .place-order { min-height: 40px; padding: 6px 14px; border-radius: 5px; font-size: 14px; }
.ip-order-form:is([data-ip-order-form], [data-ooo-order-form], [data-med-order-form]) .ip-multi-order-actions button:disabled { border-color: #aeb9c2; color: #fff; background: #aeb9c2; box-shadow: none; cursor: not-allowed; transform: none; }
.ip-order-form:is([data-ip-order-form], [data-ooo-order-form], [data-med-order-form]) .ip-multi-order-actions button:focus-visible, .ip-order-form:is([data-ip-order-form], [data-ooo-order-form], [data-med-order-form]) .ip-multi-order-clear:focus-visible { outline: 2px solid #1f537c; outline-offset: 2px; }
.ip-order-form:is([data-ip-order-form], [data-ooo-order-form], [data-med-order-form]) .ip-multi-order-empty { margin: 0; padding: 12px 14px; border: 1px dashed #d2dfe9; border-radius: 8px; color: #687681; background: #fafcfd; font-size: 14px; line-height: 1.45; text-align: center; }
.ip-order-form:is([data-ip-order-form], [data-ooo-order-form], [data-med-order-form]) .ip-multi-order .ip-order-rush { margin: 4px 0 0; }
.ip-order-form:is([data-ip-order-form], [data-ooo-order-form], [data-med-order-form]) .ip-multi-order .ip-order-total { width: 100%; min-width: 0; box-sizing: border-box; justify-self: stretch; justify-content: center; gap: 8px; margin: 0; padding: 14px; border: 1px solid #dfeaf1; border-radius: 12px; background: #f1f5f8; }
.ip-order-form:is([data-ip-order-form], [data-ooo-order-form], [data-med-order-form]) .ip-multi-order .ip-order-total > span:first-child { font-weight: 700; white-space: nowrap; }
.ip-order-form:is([data-ip-order-form], [data-ooo-order-form], [data-med-order-form]) .ip-multi-order .ip-order-total output { min-width: 0; color: #1f537c; font-size: 30px; white-space: nowrap; }
.ip-order-form:is([data-ip-order-form], [data-ooo-order-form], [data-med-order-form]) .ip-multi-order .ip-order-total > span:last-of-type { font-size: 18px; white-space: nowrap; }

@media (max-width: 620px) {
  .ip-order-form:is([data-ip-order-form], [data-ooo-order-form], [data-med-order-form]) .ip-multi-order-line { grid-template-columns: minmax(0, 1fr); gap: 8px; padding: 10px 12px; }
  .ip-order-form:is([data-ip-order-form], [data-ooo-order-form], [data-med-order-form]) .ip-multi-order-current { grid-template-columns: minmax(0, 1fr); grid-template-areas: "content" "controls"; gap: 8px; }
  .ip-order-form:is([data-ip-order-form], [data-ooo-order-form], [data-med-order-form]) .ip-multi-order-current-controls { gap: 8px; }
  .ip-order-form:is([data-ip-order-form], [data-ooo-order-form], [data-med-order-form]) .ip-multi-order-current .ip-multi-order-current-controls { width: 100%; justify-content: space-between; }
  .ip-order-form:is([data-ip-order-form], [data-ooo-order-form], [data-med-order-form]) .ip-multi-order-actions { justify-content: center; }
  .ip-order-form:is([data-ip-order-form], [data-ooo-order-form], [data-med-order-form]) .ip-multi-order-actions button { width: auto; max-width: 100%; }
  .ip-order-form:is([data-ip-order-form], [data-ooo-order-form], [data-med-order-form]) .ip-multi-order .ip-order-total { gap: 5px; padding: 12px 10px; font-size: 22px; }
  .ip-order-form:is([data-ip-order-form], [data-ooo-order-form], [data-med-order-form]) .ip-multi-order .ip-order-total output { font-size: 22px; }
  .ip-order-form:is([data-ip-order-form], [data-ooo-order-form], [data-med-order-form]) .ip-multi-order .ip-order-total > span:last-of-type { font-size: 14px; }
}
