:root {
  --ink: #15191c;
  --graphite: #20262a;
  --steel: #68747b;
  --paper: #f6f5f1;
  --white: #ffffff;
  --line: #d8dbdc;
  --accent: #f2a51a;
  --accent-dark: #d98700;
  --blue: #263b4b;
  --radius: 2px;
  --shell: min(1280px, calc(100vw - 64px));
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
[hidden] { display: none !important; }
body { margin: 0; background: var(--white); color: var(--ink); font-family: Arial, Helvetica, sans-serif; font-size: 16px; line-height: 1.55; }
body, button, input, select, textarea { font-family: Arial, Helvetica, sans-serif; }
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; height: auto; }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
.shell { width: var(--shell); margin-inline: auto; }
.section { padding-block: 112px; }
.skip-link { position: fixed; z-index: 1000; left: 16px; top: -80px; padding: 12px 18px; background: var(--accent); color: #111; font-weight: 700; }
.skip-link:focus { top: 16px; }

.eyebrow { margin: 0 0 16px; color: #8a5b00; font-size: 12px; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
.eyebrow::before { content: ''; display: inline-block; width: 32px; height: 2px; margin: 0 12px 3px 0; background: var(--accent); }
.eyebrow.light { color: #ffd47b; }
h1, h2, h3 { overflow-wrap: normal; word-break: normal; hyphens: auto; text-wrap: balance; }
p { overflow-wrap: anywhere; }
h1, h2, h3 { margin-top: 0; font-weight: 750; line-height: 1.08; letter-spacing: -.035em; }
h2 { max-width: 900px; margin-bottom: 24px; font-size: clamp(36px, 4.2vw, 64px); }
h3 { font-size: 24px; }
.section-heading { margin-bottom: 52px; }
.section-heading > p { max-width: 580px; color: #5f6a70; font-size: 18px; }
.split-heading { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(280px, .55fr); gap: 64px; align-items: end; }
.split-heading h2 { margin-bottom: 0; }
.text-link { color: #785000; font-weight: 800; text-decoration: underline; text-decoration-color: #e2b961; text-underline-offset: 5px; }
.light-link { color: #fff; }

.button { display: inline-flex; min-height: 52px; align-items: center; justify-content: center; border: 1px solid var(--accent); border-radius: var(--radius); padding: 14px 24px; background: var(--accent); color: #171717; font-size: 14px; font-weight: 800; letter-spacing: .025em; transition: background .2s ease, color .2s ease, border-color .2s ease, transform .2s ease; }
.button:hover { background: #ffc24d; border-color: #ffc24d; transform: translateY(-1px); }
.button:focus-visible, a:focus-visible, summary:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible { outline: 3px solid #ffc24d; outline-offset: 3px; }
.button-small { min-height: 42px; padding: 10px 16px; font-size: 12px; }
.button-ghost { border-color: rgba(255,255,255,.55); background: rgba(0,0,0,.16); color: #fff; backdrop-filter: blur(8px); }
.button-ghost:hover { border-color: #fff; background: #fff; color: #111; }
.button-dark { border-color: var(--ink); background: var(--ink); color: #fff; }
.inline-actions, .hero-cta { display: flex; flex-wrap: wrap; gap: 22px; align-items: center; }

.topline { background: #0e1113; color: #c8ced1; font-size: 11px; letter-spacing: .06em; text-transform: uppercase; }
.topline-inner { display: flex; justify-content: space-between; padding-block: 7px; }
.site-header { position: sticky; z-index: 100; top: 0; background: #fff; box-shadow: 0 1px 0 rgba(20,25,28,.12); }
.header-inner { display: flex; min-height: 82px; align-items: center; gap: 32px; }
.brand { display: inline-flex; flex: 0 0 auto; align-items: center; gap: 12px; }
.brand-mark { display: grid; width: 58px; height: 58px; place-items: center; overflow: hidden; background: var(--accent); }
.brand-mark img { width: 52px; height: auto; filter: contrast(1.2); }
.brand-copy { display: flex; flex-direction: column; line-height: 1; }
.brand-copy strong { font-size: 18px; letter-spacing: .05em; }
.brand-copy small { margin-top: 7px; color: #70797e; font-size: 10px; font-weight: 700; letter-spacing: .11em; text-transform: uppercase; }
.desktop-nav { display: flex; min-width: 0; align-items: stretch; align-self: stretch; gap: clamp(15px, 1.5vw, 28px); margin-left: auto; }
.desktop-nav ul { display: contents; margin: 0; padding: 0; list-style: none; }
.desktop-nav li { display: flex; align-items: stretch; }
.desktop-nav li > a, .desktop-nav > a, .nav-services > a { display: flex; align-items: center; border-bottom: 3px solid transparent; font-size: 13px; font-weight: 750; white-space: nowrap; }
.desktop-nav li > a:hover, .desktop-nav li.current-menu-item > a, .desktop-nav > a:hover, .nav-services > a:hover { border-color: var(--accent); }
.nav-services { position: relative; display: flex; }
.mega-menu { position: absolute; visibility: hidden; top: 79px; left: -28px; display: grid; width: 560px; grid-template-columns: 1fr 1fr; gap: 2px; padding: 20px; background: #fff; box-shadow: 0 18px 42px rgba(15,20,23,.18); opacity: 0; transform: translateY(8px); transition: .2s ease; }
.nav-services:hover .mega-menu, .nav-services:focus-within .mega-menu { visibility: visible; opacity: 1; transform: translateY(0); }
.mega-menu a { padding: 12px 14px; border-left: 2px solid #e4e5e5; color: #3d474c; font-size: 13px; }
.mega-menu a:hover { border-color: var(--accent); background: #f8f4ea; color: #111; }
.header-actions { display: flex; align-items: center; gap: 18px; }
.header-phone { display: flex; flex-direction: column; font-size: 16px; font-weight: 800; line-height: 1.2; white-space: nowrap; }
.header-phone span { margin-bottom: 4px; color: #8a9296; font-size: 9px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.header-messenger { padding: 8px 10px; border: 1px solid #d8dbdc; color: #2d6d49; font-size: 11px; font-weight: 800; }
.topline a:hover { color: #fff; }
.menu-toggle { display: none; width: 44px; height: 44px; flex-direction: column; justify-content: center; gap: 5px; padding: 9px; border: 1px solid var(--line); background: #fff; }
.menu-toggle > span:not(.screen-reader-text) { display: block; height: 2px; background: var(--ink); }
.mobile-nav { position: absolute; z-index: 101; top: 100%; right: 0; left: 0; max-height: calc(100vh - 104px); overflow-y: auto; padding-block: 20px; background: #fff; box-shadow: 0 20px 40px rgba(0,0,0,.18); }
.mobile-nav ul { margin: 0 0 18px; padding: 0; list-style: none; }
.mobile-nav a:not(.button) { display: block; padding: 12px 0; border-bottom: 1px solid #e8e8e6; font-weight: 750; }
.mobile-nav .mobile-contact { margin-top: 14px; color: #345e4a; font-size: 13px; }
.screen-reader-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(1px,1px,1px,1px); white-space: nowrap; }
.mobile-menu { display: none; margin-left: auto; }
.mobile-menu summary { display: flex; width: 44px; height: 44px; flex-direction: column; justify-content: center; gap: 5px; padding: 9px; border: 1px solid var(--line); list-style: none; }
.mobile-menu summary::-webkit-details-marker { display: none; }
.mobile-menu summary span { display: block; height: 2px; background: var(--ink); }
.mobile-panel { position: fixed; inset: 113px 0 auto; max-height: calc(100vh - 113px); overflow-y: auto; padding: 24px; background: #fff; box-shadow: 0 20px 40px rgba(0,0,0,.18); }
.mobile-panel a { display: block; padding: 12px 0; border-bottom: 1px solid #e8e8e6; font-weight: 750; }
.mobile-panel .mobile-sub { padding-left: 18px; color: #596368; font-size: 14px; font-weight: 600; }
.mobile-panel .button { margin-top: 20px; text-align: center; }
.mobile-services-title { margin: 24px 0 4px; color: #8b5d00; font-size: 11px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }

.hero { position: relative; min-height: 720px; overflow: hidden; background: #171c20; color: #fff; }
.hero-media, .hero-overlay, .hero-lines { position: absolute; inset: 0; }
.hero-image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; opacity: 0; transform: scale(1.04); transition: opacity .7s ease, transform 7s ease; }
.hero-image.active { opacity: 1; transform: scale(1); }
.hero-overlay { background: linear-gradient(90deg, rgba(8,11,13,.93) 0%, rgba(8,11,13,.75) 48%, rgba(8,11,13,.28) 78%, rgba(8,11,13,.45) 100%), linear-gradient(0deg, rgba(8,11,13,.42), transparent 45%); }
.hero-lines { opacity: .12; background-image: linear-gradient(90deg, transparent calc(25% - 1px), #fff 25%, transparent calc(25% + 1px)), linear-gradient(90deg, transparent calc(75% - 1px), #fff 75%, transparent calc(75% + 1px)); }
.hero-inner { position: relative; z-index: 2; display: grid; min-height: 720px; grid-template-columns: minmax(0, 1fr) 220px; gap: 48px; align-items: center; padding-block: 78px 72px; }
.hero-main { max-width: 880px; }
.hero h1 { max-width: 900px; margin: 0 0 20px; font-size: clamp(52px, 5.25vw, 80px); hyphens: none; overflow-wrap: normal; word-break: keep-all; text-transform: uppercase; text-wrap: nowrap; }
.hero h1 .hero-title-primary, .hero h1 .hero-title-accent { display: block; }
.hero h1 .hero-title-primary { color: #fff; white-space: nowrap; }
.hero h1 .hero-title-accent { color: var(--accent); white-space: nowrap; }
.hero-dynamic-title { max-width: 760px; margin: 0 0 10px; font-size: clamp(22px, 2.2vw, 32px); font-weight: 750; line-height: 1.22; }
.hero-lead { max-width: 680px; margin: 0 0 34px; color: #d4d9dc; font-size: 17px; }
.hero-controls { display: flex; gap: 2px; margin-top: 62px; }
.hero-controls button { min-width: 170px; padding: 14px 18px; border: 0; border-top: 2px solid rgba(255,255,255,.28); background: rgba(0,0,0,.2); color: #b9c0c3; font-size: 11px; text-align: left; text-transform: uppercase; }
.hero-controls button span { display: block; margin-bottom: 5px; color: #fff; font-size: 13px; font-weight: 800; }
.hero-controls button.active { border-color: var(--accent); background: rgba(242,165,26,.15); color: #fff; }
.hero-proof { align-self: end; margin-bottom: 78px; padding: 26px 22px; border: 1px solid rgba(255,255,255,.25); background: rgba(8,11,13,.62); backdrop-filter: blur(8px); }
.hero-proof p { margin: 0 0 18px; color: #b9c0c3; font-size: 10px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.hero-proof strong { display: block; color: var(--accent); font-size: 28px; }
.hero-proof span { display: block; color: #d4d9db; font-size: 12px; }
.hero-proof hr { margin: 20px 0; border: 0; border-top: 1px solid rgba(255,255,255,.18); }

.facts-strip { background: var(--accent); }
.facts-grid { display: grid; grid-template-columns: repeat(4, 1fr) 1.25fr; }
.facts-grid > div { min-height: 128px; padding: 28px 24px; border-right: 1px solid rgba(0,0,0,.18); }
.facts-grid strong { display: block; font-size: 30px; line-height: 1; }
.facts-grid span { display: block; margin-top: 8px; font-size: 11px; font-weight: 750; text-transform: uppercase; }
.facts-grid .fact-cta { display: flex; flex-direction: column; justify-content: center; border-right: 0; background: #161a1d; color: #fff; }
.fact-cta a { margin-top: 8px; color: #ffc44f; font-weight: 800; }

.services-grid { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.service-card { position: relative; min-height: 330px; padding: 30px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: #fff; transition: background .25s ease, color .25s ease; }
.service-card:hover { background: var(--ink); color: #fff; }
.card-number { color: #9aa1a5; font-size: 11px; font-weight: 800; }
.service-card h3 { margin: 52px 0 16px; }
.service-card p { color: #697378; font-size: 14px; }
.service-card:hover p { color: #c6cccf; }
.card-link { position: absolute; right: 28px; bottom: 26px; left: 30px; display: flex; justify-content: space-between; color: #8a5b00; font-size: 12px; font-weight: 800; text-transform: uppercase; }
.service-card:hover .card-link { color: var(--accent); }
.card-link b { font-size: 20px; }

.dark-section { overflow: hidden; background: var(--ink); color: #fff; }
.about-grid { display: grid; grid-template-columns: 1.02fr .98fr; gap: 84px; align-items: center; }
.about-image { position: relative; min-height: 650px; margin-left: calc((100vw - var(--shell)) / -2); }
.about-image > img { width: 100%; height: 100%; object-fit: cover; }
.image-caption { position: absolute; right: -42px; bottom: 0; display: flex; width: 320px; flex-direction: column; padding: 28px; background: var(--accent); color: #111; }
.image-caption strong { font-size: 28px; }
.image-caption span { margin-top: 5px; font-size: 12px; font-weight: 750; text-transform: uppercase; }
.about-copy .lead { color: #d0d5d7; font-size: 21px; }
.check-list { margin: 38px 0; padding: 0; list-style: none; }
.check-list li { position: relative; margin: 0; padding: 18px 0 18px 34px; border-top: 1px solid rgba(255,255,255,.13); color: #c9cfd1; }
.check-list li::before { position: absolute; left: 0; color: var(--accent); content: '◆'; font-size: 12px; }
.check-list strong { color: #fff; }

.projects-grid { display: grid; grid-template-columns: 1.35fr .65fr; grid-template-rows: repeat(2, 260px); gap: 18px; }
.project-card { position: relative; overflow: hidden; background: #222; color: #fff; }
.project-card.large { grid-row: 1 / 3; }
.project-card img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.project-card:hover img { transform: scale(1.04); }
.project-card::after { position: absolute; inset: 0; background: linear-gradient(0deg, rgba(8,10,11,.84), rgba(8,10,11,.02) 70%); content: ''; }
.project-overlay { position: absolute; z-index: 1; right: 28px; bottom: 26px; left: 28px; }
.project-overlay p { margin: 0 0 8px; color: #ffcf6b; font-size: 11px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.project-overlay h3 { max-width: 620px; margin-bottom: 5px; }
.project-overlay span { color: #cbd0d2; font-size: 13px; }

.soft-section { background: var(--paper); }
.equipment-card { scroll-snap-align: start; border-bottom: 3px solid var(--accent); background: #fff; }
.equipment-image { position: relative; height: 240px; overflow: hidden; }
.equipment-image img { width: 100%; height: 100%; object-fit: cover; }
.equipment-card > div:last-child { padding: 26px; }
.equipment-card ul { margin: 0; padding-left: 18px; color: #5f696e; font-size: 13px; }
.equipment-card li { margin: 7px 0; }

.product-list { border-top: 1px solid var(--ink); }
.product-list a { display: grid; grid-template-columns: 60px minmax(190px, .8fr) minmax(300px, 1.2fr) 40px; gap: 24px; align-items: center; padding: 24px 8px; border-bottom: 1px solid var(--line); transition: padding .2s ease, background .2s ease; }
.product-list a:hover { padding-inline: 20px; background: #faf3e5; }
.product-list span { color: #8c9599; font-size: 11px; font-weight: 800; }
.product-list h3, .product-list p { margin: 0; }
.product-list p { color: #626d72; }
.product-list b { color: #9a6500; font-size: 22px; }

.region-section { background: var(--blue); color: #fff; }
.region-grid { display: grid; grid-template-columns: .8fr 1.2fr; gap: 84px; align-items: start; }
.region-copy { position: sticky; top: 150px; }
.region-copy p:not(.eyebrow) { margin-bottom: 34px; color: #c8d0d5; font-size: 18px; }
.region-list { border-top: 1px solid rgba(255,255,255,.2); }
.region-list a { display: grid; grid-template-columns: 50px 170px 1fr; gap: 22px; align-items: center; padding: 22px 4px; border-bottom: 1px solid rgba(255,255,255,.2); }
.region-list a:hover { background: rgba(255,255,255,.05); }
.region-list span { color: #91a1aa; font-size: 11px; }
.region-list strong { font-size: 20px; }
.region-list small { color: #c1ccd1; }

.process-grid { display: grid; grid-template-columns: repeat(4, 1fr); margin: 0; padding: 0; border-top: 1px solid var(--line); border-left: 1px solid var(--line); list-style: none; counter-reset: step; }
.process-grid li { min-height: 260px; padding: 28px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.process-grid span { display: block; margin-bottom: 54px; color: #a06a00; font-size: 13px; font-weight: 800; }
.process-grid h3 { margin-bottom: 12px; font-size: 20px; }
.process-grid p { color: #667176; font-size: 14px; }

.request-section { background: #111518; color: #fff; }
.request-grid { display: grid; grid-template-columns: .78fr 1.22fr; gap: 80px; align-items: start; }
.request-aside { position: sticky; top: 150px; }
.request-aside > p:not(.eyebrow) { color: #c3c9cc; font-size: 18px; }
.request-contact { display: flex; flex-direction: column; margin-top: 48px; padding-top: 28px; border-top: 1px solid rgba(255,255,255,.18); }
.request-contact span, .request-contact small { color: #919ca1; font-size: 11px; text-transform: uppercase; }
.request-contact a { margin: 8px 0; color: var(--accent); font-size: clamp(28px, 3vw, 42px); font-weight: 800; }
.lead-form { padding: 42px; background: #fff; color: var(--ink); }
.form-heading h2 { margin-bottom: 14px; font-size: clamp(30px, 3vw, 46px); }
.form-heading > p:not(.eyebrow) { color: #677176; }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin-top: 32px; }
.form-grid label { display: flex; flex-direction: column; gap: 7px; }
.form-grid label > span { color: #5f696e; font-size: 12px; font-weight: 750; }
.form-grid .full { grid-column: 1 / -1; }
.form-grid input, .form-grid select, .form-grid textarea { width: 100%; border: 1px solid #cfd3d5; border-radius: 0; padding: 14px 15px; background: #fff; color: #161a1d; }
.form-grid input, .form-grid select { min-height: 52px; }
.form-grid textarea { resize: vertical; }
.form-grid input:focus, .form-grid select:focus, .form-grid textarea:focus { border-color: #9a6500; }
.honeypot { position: absolute !important; left: -10000px; }
.consent { display: flex; align-items: flex-start; gap: 10px; margin: 22px 0; color: #667176; font-size: 12px; }
.consent input { width: 18px; height: 18px; margin-top: 1px; accent-color: var(--accent); }
.consent a { color: #7d5200; text-decoration: underline; }
.form-status p { margin: 14px 0 0; font-size: 13px; font-weight: 700; }
.form-status .success { color: #197042; }
.form-status .error { color: #9c2727; }
.form-note { color: #58646a; font-size: 12px; line-height: 1.65; }
.form-note a { color: #6e4900; font-weight: 800; text-decoration: underline; text-underline-offset: 3px; }
.lead-form.compact { padding: 28px; border: 1px solid var(--line); }
.lead-form.compact .form-grid { grid-template-columns: 1fr; }
.lead-form.compact h2 { font-size: 28px; }

.faq-section { width: 100%; }
.faq-list { border-top: 1px solid var(--ink); }
.faq-list details { border-bottom: 1px solid var(--line); }
.faq-list summary { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 25px 0; font-size: 18px; font-weight: 750; list-style: none; cursor: pointer; }
.faq-list summary::-webkit-details-marker { display: none; }
.faq-list summary span { display: grid; width: 34px; height: 34px; flex: 0 0 auto; place-items: center; border: 1px solid var(--line); color: #8c5d00; font-size: 22px; }
.faq-list details[open] summary span { transform: rotate(45deg); }
.faq-list details p { max-width: 850px; margin: -4px 50px 28px 0; color: #5d676c; }

.footer { padding-top: 76px; background: #0d1012; color: #d7dcde; }
.footer-grid { display: grid; grid-template-columns: 1.25fr 1fr .9fr 1fr; gap: 54px; padding-bottom: 64px; }
.brand-footer .brand-mark { filter: grayscale(1); }
.brand-footer .brand-copy strong { color: #fff; }
.footer-brand > p { max-width: 330px; color: #919ca1; font-size: 14px; }
.footer-brand .footer-region { margin-top: 28px; color: #ffcb61; font-size: 11px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.footer h2 { margin-bottom: 20px; color: #fff; font-size: 12px; letter-spacing: .1em; text-transform: uppercase; }
.footer nav { display: flex; flex-direction: column; gap: 10px; }
.footer nav a, .footer-contacts > a, .footer-contacts p { color: #aeb7bb; font-size: 13px; }
.footer nav a:hover, .footer-contacts a:hover { color: #fff; }
.footer-contacts { display: flex; flex-direction: column; gap: 10px; }
.footer-contacts .footer-phone { color: #ffc554; font-size: 24px; font-weight: 800; }
.footer-contacts .footer-mobile { color: #fff; font-size: 18px; font-weight: 750; }
.footer-contacts .footer-mobile small { display: block; margin-top: 3px; font-size: 10px; font-weight: 600; text-transform: uppercase; }
.footer-contacts small { color: #737e83; }
.footer-bottom { display: flex; justify-content: space-between; gap: 24px; padding-block: 22px; border-top: 1px solid #2b3134; color: #7c878c; font-size: 11px; }
.footer-bottom p { margin: 0; }
.footer-bottom div { display: flex; flex-wrap: wrap; gap: 22px; }

.cookie-banner { position: fixed; z-index: 200; right: auto; bottom: 20px; left: 20px; display: flex; max-width: 540px; align-items: center; gap: 20px; padding: 18px 20px; border-left: 4px solid var(--accent); background: #171b1e; color: #fff; box-shadow: 0 16px 36px rgba(0,0,0,.3); }
.cookie-banner p { margin: 0; color: #d2d7d9; font-size: 12px; }
.cookie-banner a { color: #ffca5e; text-decoration: underline; }

/* Inner pages */
.inner-hero { position: relative; min-height: 500px; overflow: hidden; background: #171b1e; color: #fff; }
.inner-hero > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.inner-hero::after { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(10,13,15,.94), rgba(10,13,15,.56) 62%, rgba(10,13,15,.25)); content: ''; }
.inner-hero-content { position: relative; z-index: 1; display: flex; min-height: 500px; max-width: 900px; flex-direction: column; justify-content: center; padding-block: 80px; }
.breadcrumbs { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 30px; color: #c3cbd0; font-size: 11px; font-weight: 700; text-transform: uppercase; }
.breadcrumbs a:hover { color: #fff; }
.inner-hero h1 { margin-bottom: 22px; font-size: clamp(44px, 6vw, 76px); text-transform: uppercase; }
.inner-hero .hero-copy { max-width: 720px; color: #d3d8db; font-size: 19px; }
.inner-hero-actions { display: flex; flex-wrap: wrap; gap: 18px; margin-top: 30px; }
.content-grid { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 80px; align-items: start; }
.content-main h2 { margin-top: 70px; font-size: clamp(32px, 3.5vw, 48px); }
.content-main h2:first-child { margin-top: 0; }
.content-main > p { color: #4e5a60; font-size: 18px; }
.sticky-aside { position: sticky; top: 130px; }
.list-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; margin: 28px 0; padding: 0; background: var(--line); border: 1px solid var(--line); }
.list-grid li { padding: 20px; background: #fff; list-style: none; }
.list-grid li::before { margin-right: 10px; color: #a66c00; content: '◆'; font-size: 10px; }
.steps-list { margin: 28px 0; padding: 0; counter-reset: steps; list-style: none; }
.steps-list li { display: grid; grid-template-columns: 46px 1fr; gap: 16px; padding: 18px 0; border-bottom: 1px solid var(--line); counter-increment: steps; }
.steps-list li::before { display: grid; width: 38px; height: 38px; place-items: center; background: var(--accent); content: counter(steps, decimal-leading-zero); font-size: 11px; font-weight: 800; }
.data-table-wrap { margin: 28px 0; overflow-x: auto; }
.data-table { width: 100%; min-width: 620px; border-collapse: collapse; }
.data-table th, .data-table td { padding: 17px 18px; border: 1px solid var(--line); text-align: left; vertical-align: top; }
.data-table th { background: #1b2023; color: #fff; font-size: 12px; letter-spacing: .06em; text-transform: uppercase; }
.data-table td:first-child { width: 33%; font-weight: 750; }
.expert-quote { margin: 42px 0; padding: 30px 32px; border-left: 5px solid var(--accent); background: #f6f1e7; }
.expert-quote p { margin: 0; color: #344047; font-size: 18px; }
.expert-quote strong { display: block; margin-bottom: 9px; font-size: 12px; letter-spacing: .08em; text-transform: uppercase; }
.related-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.related-card { padding: 24px; border: 1px solid var(--line); }
.related-card:hover { border-color: var(--accent); background: #fff9ef; }
.related-card h3 { font-size: 19px; }
.related-card p { color: #687378; font-size: 13px; }
.cards-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.basic-card { padding: 28px; border: 1px solid var(--line); background: #fff; }
.basic-card p { color: #657075; }
.basic-card .card-meta { color: #986400; font-size: 11px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.equipment-page-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.equipment-page-card { overflow: hidden; border: 1px solid var(--line); }
.equipment-page-card .equipment-image { height: 330px; }
.equipment-page-card > div:last-child { padding: 28px; }
.equipment-page-card li { margin: 8px 0; color: #58646a; }
.project-list-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; }
.project-list-card { overflow: hidden; border: 1px solid var(--line); }
.project-list-image { position: relative; height: 330px; }
.project-list-image img { object-fit: cover; }
.project-list-card > div:last-child { padding: 26px; }
.project-list-card .card-meta { color: #936000; font-size: 11px; font-weight: 800; text-transform: uppercase; }
.legal-copy { max-width: 900px; }
.legal-copy h2 { margin-top: 48px; font-size: 30px; }
.legal-copy p, .legal-copy li { color: #4f5b61; }

/* WordPress theme additions */
.archive-hero .inner-hero-content, .compact-hero .inner-hero-content { min-height: 460px; }
.compact-hero, .archive-hero { min-height: 460px; }
.entry-content > *:first-child { margin-top: 0; }
.entry-content > p, .entry-content > ul, .entry-content > ol { color: #4e5a60; font-size: 18px; }
.entry-content h2 { margin-top: 58px; }
.entry-content h3 { margin-top: 36px; }
.visual-card-grid { display: grid; gap: 24px; }
.visual-card { display: grid; grid-template-columns: minmax(300px, .85fr) minmax(0, 1.15fr); min-height: 360px; border: 1px solid var(--line); background: #fff; }
.visual-card:nth-child(even) { grid-template-columns: minmax(0, 1.15fr) minmax(300px, .85fr); }
.visual-card:nth-child(even) .visual-card-image { order: 2; }
.visual-card-image { overflow: hidden; background: #222; }
.visual-card-image img { width: 100%; height: 100%; min-height: 360px; object-fit: cover; transition: transform .45s ease; }
.visual-card:hover .visual-card-image img { transform: scale(1.035); }
.visual-card > div { display: flex; flex-direction: column; justify-content: center; padding: clamp(28px, 4vw, 58px); }
.visual-card h2 { margin-bottom: 18px; font-size: clamp(28px, 3vw, 44px); }
.visual-card p:not(.eyebrow) { color: #5e696e; }
.visual-card .text-link { align-self: flex-start; margin-top: 14px; }
.notice-box { margin-bottom: 42px; padding: 26px 30px; border-left: 5px solid var(--accent); background: #f8f3e8; }
.notice-box strong { display: block; margin-bottom: 8px; font-size: 18px; }
.notice-box p { margin: 0; color: #4f5a60; }
.case-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 22px; }
.case-card { position: relative; min-height: 480px; overflow: hidden; background: #1b1f22; color: #fff; }
.case-card img { width: 100%; height: 100%; min-height: 480px; object-fit: cover; transition: transform .45s ease; }
.case-card:hover img { transform: scale(1.035); }
.case-card a::after { position: absolute; inset: 0; background: linear-gradient(0deg, rgba(8,10,11,.9), rgba(8,10,11,.05) 72%); content: ''; }
.case-card a > div { position: absolute; z-index: 2; right: 28px; bottom: 28px; left: 28px; }
.case-card h2 { margin: 8px 0; font-size: clamp(26px, 3vw, 42px); }
.case-card p { margin: 0; color: #ffd276; font-size: 11px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.case-card span { color: #d2d8da; }
.timeline-list { margin: 30px 0; padding: 0; list-style: none; }
.timeline-list li { display: grid; grid-template-columns: 52px 1fr; gap: 18px; align-items: center; padding: 18px 0; border-bottom: 1px solid var(--line); }
.timeline-list span { display: grid; width: 42px; height: 42px; place-items: center; background: var(--accent); font-size: 11px; font-weight: 800; }
.timeline-list strong { font-size: 17px; }
.expert-block { margin: 48px 0; padding: 32px; border-left: 5px solid var(--accent); background: #f5f0e6; }
.expert-block blockquote { margin: 0; color: #354148; font-size: clamp(19px, 2vw, 25px); font-weight: 650; line-height: 1.45; }
.factor-table-wrap { margin: 28px 0; overflow-x: auto; }
.factor-table { width: 100%; min-width: 640px; border-collapse: collapse; }
.factor-table th, .factor-table td { padding: 17px 18px; border: 1px solid var(--line); text-align: left; vertical-align: top; }
.factor-table th { background: #1b2023; color: #fff; font-size: 12px; letter-spacing: .06em; text-transform: uppercase; }
.factor-table td:first-child { width: 30%; font-weight: 800; }
.related-grid > a { display: flex; min-width: 0; flex-direction: column; border: 1px solid var(--line); background: #fff; }
.related-grid > a img { width: 100%; height: 220px; object-fit: cover; }
.related-grid > a strong { padding: 20px 20px 8px; font-size: 18px; }
.related-grid > a span { padding: 0 20px 20px; color: #845700; font-size: 12px; font-weight: 800; }
.project-detail-grid { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 72px; align-items: start; }
.project-photo { margin: 44px 0; }
.project-photo img { width: 100%; max-height: 720px; object-fit: cover; }
.project-facts { position: sticky; top: 130px; padding: 28px; background: #171c1f; color: #fff; }
.project-facts dl { margin: 0; }
.project-facts dl > div { padding: 16px 0; border-top: 1px solid rgba(255,255,255,.14); }
.project-facts dt { color: #9da7ab; font-size: 10px; font-weight: 800; text-transform: uppercase; }
.project-facts dd { margin: 6px 0 0; }
.tag-links { display: flex; flex-wrap: wrap; gap: 8px; }
.tag-links a { padding: 9px 13px; border: 1px solid var(--line); background: #fff; font-size: 13px; font-weight: 750; }
.legal-content { max-width: 920px; }
.legal-content h2 { margin-top: 48px; font-size: 34px; }
.article-layout { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 72px; }
.article-content { max-width: 820px; }
.article-aside { position: sticky; top: 130px; align-self: start; }
.article-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; }
.article-grid article { min-width: 0; }
.article-grid h2 { font-size: 28px; }
.article-grid article > p:not(.eyebrow) { color: #5c686d; }
.article-thumb { display: block; height: 260px; margin-bottom: 24px; overflow: hidden; }
.article-thumb img { width: 100%; height: 100%; object-fit: cover; }
.nav-links { display: flex; justify-content: center; gap: 12px; margin-top: 44px; }
.page-numbers { display: grid; min-width: 40px; height: 40px; place-items: center; border: 1px solid var(--line); }
.page-numbers.current { border-color: var(--accent); background: var(--accent); }
.equipment-catalog { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.equipment-catalog article { overflow: hidden; border: 1px solid var(--line); background: #fff; }
.equipment-catalog article > img { width: 100%; height: 330px; object-fit: cover; }
.equipment-catalog article > div { padding: 26px; }
.equipment-catalog article h2 { font-size: 30px; }
.equipment-catalog dl { margin: 0; }
.equipment-catalog dl > div { padding: 13px 0; border-top: 1px solid var(--line); }
.equipment-catalog dt { color: #8b5c00; font-size: 10px; font-weight: 800; text-transform: uppercase; }
.equipment-catalog dd { margin: 5px 0 0; color: #4f5b60; }
.about-story { display: grid; grid-template-columns: 1fr .85fr; gap: 80px; align-items: start; }
.about-story h2 { font-size: clamp(40px, 5vw, 68px); }
.about-story .entry-content p, .about-story > div > p:not(.eyebrow) { color: #4e5a60; font-size: 18px; }
.about-story-image img { width: 100%; min-height: 560px; object-fit: cover; }
.about-story-image blockquote { position: relative; z-index: 2; max-width: 420px; margin: -90px 0 0 -60px; padding: 30px; background: var(--accent); color: #15191c; font-size: 19px; font-weight: 750; }
.process-dark { border-color: rgba(255,255,255,.16); }
.process-dark li { border-color: rgba(255,255,255,.16); }
.process-dark p { color: #aeb8bc; }
.contact-grid { display: grid; grid-template-columns: minmax(0, .85fr) minmax(420px, 1.15fr); gap: 64px; align-items: start; }
.contact-cards { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; border: 1px solid var(--line); background: var(--line); }
.contact-cards article { display: flex; min-height: 190px; flex-direction: column; justify-content: center; padding: 24px; background: #fff; }
.contact-cards span { color: #8b5b00; font-size: 10px; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.contact-cards > article > a { margin: 10px 0; font-size: 20px; font-weight: 800; }
.contact-cards p { margin: 10px 0; }
.contact-cards small { color: #6a7479; }
.four-list { grid-template-columns: repeat(3, 1fr); }
.region-page-grid { display: grid; grid-template-columns: .75fr 1.25fr; gap: 72px; align-items: start; }
.region-card-list { border-top: 1px solid var(--line); }
.region-card-list a { display: grid; grid-template-columns: 46px 1fr 30px; gap: 18px; align-items: center; padding: 22px 8px; border-bottom: 1px solid var(--line); }
.region-card-list a:hover { background: #faf3e5; }
.region-card-list a > span { color: #9b6500; font-size: 11px; font-weight: 800; }
.region-card-list strong, .region-card-list small { display: block; }
.region-card-list strong { font-size: 21px; }
.region-card-list small { margin-top: 5px; color: #687378; }
.region-card-list b { color: #956100; font-size: 22px; }
.search-results article { padding: 28px 0; border-bottom: 1px solid var(--line); }
.search-results h2 { margin-bottom: 10px; font-size: 30px; }
.error-page { min-height: 65vh; display: flex; align-items: center; }
.error-page h1 { max-width: 800px; font-size: clamp(54px, 8vw, 100px); }

.admin-page { min-height: 100vh; padding-block: 64px 100px; background: #eff1f1; }
.admin-header { display: flex; justify-content: space-between; gap: 30px; align-items: flex-start; margin-bottom: 38px; }
.admin-header h1 { margin: 0; font-size: clamp(38px, 5vw, 64px); }
.admin-header p:not(.eyebrow) { color: #667176; }
.admin-layout { display: grid; gap: 28px; }
.admin-panel { padding: 34px; border: 1px solid #d7dbdc; background: #fff; }
.admin-panel-head { display: flex; justify-content: space-between; gap: 24px; align-items: flex-start; margin-bottom: 26px; }
.admin-panel-head h2 { margin: 0; font-size: 36px; }
.admin-table-wrap { overflow-x: auto; }
.admin-table { width: 100%; min-width: 850px; border-collapse: collapse; }
.admin-table th, .admin-table td { padding: 14px; border-bottom: 1px solid #e1e3e4; text-align: left; vertical-align: top; }
.admin-table th { background: #181d20; color: #fff; font-size: 11px; letter-spacing: .07em; text-transform: uppercase; }
.admin-table td { font-size: 13px; }
.admin-table td a, .admin-table td span { display: block; }
.admin-table td p { max-width: 450px; margin: 8px 0 0; color: #657075; }
.admin-table select { min-width: 125px; padding: 8px; }
.admin-form { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; padding: 24px; background: #f4f4f1; }
.admin-form label { display: flex; flex-direction: column; gap: 7px; }
.admin-form label span { font-size: 12px; font-weight: 750; }
.admin-form .full { grid-column: 1 / -1; }
.admin-form input, .admin-form select, .admin-form textarea { width: 100%; border: 1px solid #cdd1d2; padding: 12px; background: #fff; }
.admin-form textarea { resize: vertical; }
.admin-form-actions { display: flex; align-items: center; gap: 18px; }
.material-admin-list { margin-top: 30px; border-top: 1px solid #cfd3d4; }
.material-admin-list article { display: flex; justify-content: space-between; gap: 24px; align-items: center; padding: 18px 4px; border-bottom: 1px solid #dfe2e3; }
.material-admin-list article h3 { margin: 4px 0; font-size: 19px; }
.material-admin-list article span, .material-admin-list article small { color: #778287; font-size: 11px; text-transform: uppercase; }
.material-admin-list article > div:last-child { display: flex; gap: 14px; align-items: center; }
.material-admin-list button { border: 1px solid #bfc5c7; padding: 9px 12px; background: #fff; font-size: 12px; font-weight: 750; }

@media (max-width: 1180px) {
  :root { --shell: min(100% - 40px, 1100px); }
  .desktop-nav, .header-actions .button, .header-messenger { display: none; }
  .header-actions { margin-left: auto; }
  .menu-toggle { display: flex; }
  .mobile-menu { display: block; margin-left: 0; }
  .services-grid { grid-template-columns: repeat(2, 1fr); }
  .facts-grid { grid-template-columns: repeat(4, 1fr); }
  .facts-grid .fact-cta { grid-column: 1 / -1; min-height: 90px; }
  .footer-grid { grid-template-columns: 1.2fr 1fr 1fr; }
  .footer-contacts { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(3, 1fr); }
  .footer-contacts h2 { grid-column: 1 / -1; }
}

@media (max-width: 900px) {
  :root { --shell: min(100% - 32px, 800px); }
  .section { padding-block: 78px; }
  .topline-inner span:last-child, .header-phone { display: none; }
  .header-inner { min-height: 72px; }
  .mobile-panel { top: 103px; }
  .split-heading, .about-grid, .region-grid, .request-grid, .content-grid, .visual-card, .visual-card:nth-child(even), .project-detail-grid, .article-layout, .about-story, .contact-grid, .region-page-grid { grid-template-columns: 1fr; gap: 38px; }
  .visual-card:nth-child(even) .visual-card-image { order: 0; }
  .hero, .hero-inner { min-height: 680px; }
  .hero-inner { grid-template-columns: 1fr; padding-block: 68px 46px; }
  .hero-proof { display: none; }
  .hero-controls { margin-top: 42px; overflow-x: auto; }
  .hero-controls button { min-width: 150px; }
  .projects-grid { grid-template-columns: 1fr; grid-template-rows: repeat(3, 340px); }
  .project-card.large { grid-row: auto; }
  .about-image { min-height: 500px; margin-inline: 0; }
  .image-caption { right: 0; }
  .region-copy, .request-aside, .sticky-aside { position: static; }
  .process-grid { grid-template-columns: 1fr 1fr; }
  .content-grid { display: flex; flex-direction: column; }
  .sticky-aside { width: 100%; }
  .equipment-page-grid, .project-list-grid { grid-template-columns: 1fr; }
  .cards-grid, .related-grid { grid-template-columns: 1fr 1fr; }
  .case-grid, .equipment-catalog, .article-grid { grid-template-columns: 1fr 1fr; }
  .project-facts, .article-aside { position: static; }
  .about-story-image blockquote { margin: -70px 20px 0; }
}

@media (max-width: 640px) {
  :root { --shell: calc(100% - 28px); }
  body { font-size: 15px; }
  .section { padding-block: 62px; }
  .brand-copy small { display: none; }
  .brand-mark { width: 50px; height: 50px; }
  .brand-mark img { width: 45px; }
  .menu-toggle { margin-left: auto; }
  .hero, .hero-inner { min-height: 650px; }
  .hero h1 { font-size: 42px; line-height: 1.04; text-wrap: wrap; }
  .hero h1 .hero-title-primary { white-space: normal; }
  .hero h1 .hero-title-accent { white-space: nowrap; }
  .hero-dynamic-title { font-size: 20px; }
  .hero-cta { align-items: stretch; flex-direction: column; }
  .hero-cta .button { width: 100%; }
  .hero-controls { gap: 1px; }
  .hero-controls button { min-width: 120px; padding-inline: 12px; font-size: 9px; }
  .facts-grid { grid-template-columns: 1fr 1fr; }
  .facts-grid > div { min-height: 110px; padding: 22px 16px; }
  .facts-grid .fact-cta { grid-column: 1 / -1; }
  .services-grid { display: grid; grid-auto-columns: 84%; grid-auto-flow: column; grid-template-columns: none; overflow-x: auto; scroll-snap-type: x mandatory; }
  .service-card { min-height: 310px; scroll-snap-align: start; }
  .projects-grid { grid-template-rows: repeat(3, 300px); }
  .about-image { min-height: 420px; }
  .image-caption { width: 250px; padding: 20px; }
  .product-list a { grid-template-columns: 34px 1fr 28px; gap: 12px; }
  .product-list p { display: none; }
  .region-list a { grid-template-columns: 35px 1fr; gap: 12px; }
  .region-list small { grid-column: 2; }
  .process-grid { grid-template-columns: 1fr; }
  .process-grid li { min-height: 220px; }
  .lead-form { padding: 24px 18px; }
  .form-grid { grid-template-columns: 1fr; }
  .form-grid .full { grid-column: auto; }
  .cookie-banner { right: 12px; bottom: 12px; left: 12px; flex-direction: column; align-items: stretch; }
  .footer-grid { grid-template-columns: 1fr; }
  .footer-contacts { grid-column: auto; display: flex; }
  .footer-bottom { flex-direction: column; }
  .inner-hero, .inner-hero-content { min-height: 460px; }
  .inner-hero h1 { font-size: 38px; }
  .list-grid, .cards-grid, .related-grid { grid-template-columns: 1fr; }
  .case-grid, .equipment-catalog, .article-grid, .contact-cards, .four-list { grid-template-columns: 1fr; }
  .visual-card-image img { min-height: 260px; }
  .case-card, .case-card img { min-height: 360px; }
  .about-story-image img { min-height: 400px; }
  .about-story-image blockquote { margin: -45px 12px 0; }
  .equipment-page-card .equipment-image, .project-list-image { height: 260px; }
  .admin-header, .admin-panel-head, .material-admin-list article { flex-direction: column; }
  .admin-panel { padding: 20px 14px; }
  .admin-form { grid-template-columns: 1fr; padding: 16px; }
  .admin-form .full { grid-column: auto; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}

/* Version 1.1: stable header, presentation blocks and responsive grids */
.header-main { display: grid; min-height: 76px; grid-template-columns: auto 1fr auto auto; gap: 24px; align-items: center; }
.header-contacts { display: flex; justify-content: flex-end; gap: 30px; }
.header-contacts > a { display: flex; flex-direction: column; font-size: 15px; font-weight: 850; line-height: 1.2; white-space: nowrap; }
.header-contacts span { margin-bottom: 4px; color: #7a858a; font-size: 9px; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.header-nav-row { border-top: 1px solid #eceeed; background: #fff; }
.header-nav-row .shell { position: relative; }
.desktop-nav { min-height: 48px; justify-content: space-between; margin: 0; }
.desktop-nav > a, .desktop-nav summary { display: flex; min-height: 48px; align-items: center; border-bottom: 3px solid transparent; font-size: 13px; font-weight: 800; white-space: nowrap; }
.desktop-nav > a:hover, .desktop-nav summary:hover, .nav-services[open] summary { border-color: var(--accent); }
.nav-services { position: static; }
.nav-services summary { gap: 6px; list-style: none; cursor: pointer; }
.nav-services summary::-webkit-details-marker { display: none; }
.services-mega-menu { position: absolute; z-index: 110; top: 100%; left: 0; display: grid; width: min(980px, 100%); grid-template-columns: 280px 1fr; padding: 22px; border-top: 3px solid var(--accent); background: #fff; box-shadow: 0 24px 50px rgba(11,16,19,.22); }
.mega-intro { display: flex; flex-direction: column; justify-content: space-between; padding: 24px; background: #171c1f; color: #fff; }
.mega-intro span { color: #ffc85c; font-size: 10px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.mega-intro strong { margin-block: 18px; font-size: 22px; line-height: 1.15; }
.mega-intro a { color: #ffc85c; font-size: 12px; font-weight: 800; }
.mega-links { display: grid; grid-template-columns: 1fr 1fr; }
.mega-links a { display: grid; grid-template-columns: 28px 1fr; gap: 10px; align-items: center; padding: 14px 18px; border-bottom: 1px solid #e3e6e7; color: #333d42; font-size: 13px; font-weight: 750; }
.mega-links a:hover { background: #faf4e8; color: #111; }
.mega-links span { color: #9d6800; font-size: 10px; }
.messenger-pair { display: flex; gap: 7px; align-items: center; }
.messenger { display: inline-flex; min-height: 36px; align-items: center; justify-content: center; padding: 8px 11px; border: 1px solid #cfd5d7; font-size: 10px; font-weight: 850; letter-spacing: .025em; }
.messenger-whatsapp { border-color: #b9ddc7; color: #216e43; }
.messenger-max { border-color: #bad3f2; color: #1d5d9b; }
.messenger:hover { background: #f5f7f7; }
.mobile-nav > .shell { display: flex; flex-direction: column; }
.mobile-nav details { border-bottom: 1px solid #e8e8e6; }
.mobile-nav summary { padding: 13px 0; font-weight: 800; list-style: none; cursor: pointer; }
.mobile-service-links { padding-left: 14px; }
.mobile-nav .messenger-pair { margin: 16px 0; }
.mobile-nav .messenger { display: inline-flex; flex: 1; border: 1px solid #d2d8da; padding: 10px; }

.hero-copy-slot { min-height: 360px; }
.hero-copy-slot .eyebrow { min-height: 20px; }
.hero-dynamic-title { min-height: 2.45em; }
.hero-lead { min-height: 3.25em; }

.service-showcase { gap: 18px; border: 0; }
.service-showcase .service-card { min-height: 430px; overflow: hidden; padding: 0; border: 1px solid var(--line); background: #fff; }
.service-showcase .service-card:hover { background: #fff; color: var(--ink); box-shadow: 0 18px 38px rgba(17,22,25,.12); transform: translateY(-4px); }
.service-card-image { position: relative; display: block; height: 185px; overflow: hidden; background: #222; }
.service-card-image::after { position: absolute; inset: 0; background: linear-gradient(0deg, rgba(9,12,14,.6), transparent 60%); content: ''; }
.service-card-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .45s ease; }
.service-card:hover .service-card-image img { transform: scale(1.05); }
.service-card-image .card-number { position: absolute; z-index: 2; right: 18px; bottom: 15px; color: #fff; font-size: 12px; }
.service-card-body { padding: 24px 24px 62px; }
.service-showcase .service-card h3 { margin: 0 0 13px; font-size: 22px; }
.service-showcase .service-card p, .service-showcase .service-card:hover p { color: #657075; }
.service-showcase .card-link { right: 24px; bottom: 22px; left: 24px; }
.service-showcase .service-card:hover .card-link { color: #8a5b00; }

.dark-section .expert-quote { position: relative; margin: 34px 0; padding: 30px 32px 30px 38px; border: 1px solid rgba(255,255,255,.2); border-left: 6px solid var(--accent); background: #232a2e; box-shadow: 0 18px 40px rgba(0,0,0,.18); }
.dark-section .expert-quote span { display: block; margin-bottom: 8px; color: #ffc75b; font-size: 11px; font-weight: 850; letter-spacing: .14em; text-transform: uppercase; }
.dark-section .expert-quote strong { display: block; margin-bottom: 10px; color: #fff; font-size: 22px; letter-spacing: -.02em; text-transform: none; }
.dark-section .expert-quote p { color: #d9dfe1; font-size: 16px; line-height: 1.65; }

.equipment-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; margin-bottom: 34px; }
.equipment-grid .equipment-card { min-width: 0; }
.equipment-grid .equipment-card h3 { font-size: 22px; }

.process-section { background: linear-gradient(180deg, #fff 0%, #f6f5f1 100%); }
.process-showcase { gap: 14px; border: 0; background: transparent; }
.process-showcase li { position: relative; min-height: 340px; padding: 32px 28px; border: 1px solid var(--line); border-top: 4px solid #1b2023; background: #fff; box-shadow: 0 12px 28px rgba(19,24,27,.05); }
.process-showcase li:not(:last-child)::after { position: absolute; z-index: 2; top: 50%; right: -23px; display: grid; width: 32px; height: 32px; place-items: center; border: 1px solid var(--line); border-radius: 50%; background: var(--accent); color: #111; content: '→'; font-weight: 900; }
.process-showcase span { display: grid; width: 50px; height: 50px; margin-bottom: 28px; place-items: center; background: #171c1f; color: var(--accent); font-size: 13px; }
.process-showcase small { display: block; margin-bottom: 12px; color: #936000; font-size: 9px; font-weight: 850; letter-spacing: .12em; text-transform: uppercase; }
.process-showcase p { min-height: 86px; }
.process-showcase b { display: block; padding-top: 16px; border-top: 1px solid var(--line); color: #343e43; font-size: 12px; }

.faq-section { width: 100%; max-width: none; }
.faq-section > .shell { width: var(--shell); max-width: 1120px; margin-inline: auto; }

.form-messengers { margin-top: 12px; }
.form-messengers .messenger { min-width: 100px; }
.footer-messengers { margin: 4px 0 8px; }
.footer .messenger { display: inline-flex; width: auto; padding: 8px 10px; border-bottom: 1px solid; }

.cookie-banner { right: auto; bottom: 14px; left: 14px; max-width: 390px; gap: 12px; padding: 10px 12px; border-left-width: 3px; border-radius: 2px; background: rgba(19,23,26,.96); box-shadow: 0 10px 24px rgba(0,0,0,.22); }
.cookie-banner p { font-size: 11px; line-height: 1.35; }
.cookie-banner button { flex: 0 0 auto; min-width: 42px; min-height: 32px; border: 0; background: var(--accent); color: #111; font-size: 10px; font-weight: 900; }

@media (max-width: 1180px) {
  .header-main { grid-template-columns: auto 1fr auto auto; }
  .header-nav-row { display: none; }
  .header-contacts { justify-content: flex-end; }
  .header-main .menu-toggle { display: flex; }
  .equipment-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 900px) {
  .header-main { grid-template-columns: auto 1fr auto; }
  .header-contacts { display: none; }
  .header-main .header-messengers { margin-left: auto; }
  .hero-copy-slot { min-height: 330px; }
  .process-showcase li:not(:last-child)::after { display: none; }
}
@media (max-width: 640px) {
  .topline-inner a { display: none; }
  .header-main { min-height: 68px; grid-template-columns: auto 1fr auto; gap: 12px; }
  .header-main .header-messengers, .header-main .header-cta { display: none; }
  .header-main .menu-toggle { grid-column: 3; }
  .hero-copy-slot { min-height: 350px; }
  .hero-dynamic-title { min-height: 2.7em; font-size: 20px; }
  .hero-lead { min-height: 5.2em; }
  .services-grid.service-showcase { grid-template-columns: 1fr; grid-auto-columns: auto; grid-auto-flow: row; overflow: visible; }
  .service-showcase .service-card { min-height: 410px; }
  .equipment-grid { grid-template-columns: 1fr; }
  .equipment-image { height: 220px; }
  .process-showcase li { min-height: auto; }
  .process-showcase p { min-height: auto; }
  .faq-section > .shell { width: var(--shell); }
  .cookie-banner { right: auto; bottom: 10px; left: 10px; flex-direction: row; align-items: center; padding: 9px 10px; }
}

.capability-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; border: 1px solid var(--line); background: var(--line); }
.capability-grid article { min-height: 300px; padding: 30px; background: #fff; }
.capability-grid article > span { display: grid; width: 42px; height: 42px; margin-bottom: 48px; place-items: center; background: #171c1f; color: var(--accent); font-size: 11px; font-weight: 850; }
.capability-grid h3 { font-size: 21px; }
.capability-grid p { color: #626e73; font-size: 14px; }
.route-card { background: #edf0f1 !important; }
.route-card h3 { margin: 10px 0 4px; font-size: 21px; }
.route-card .text-link { margin-top: 10px; font-size: 13px; }
.map-frame { overflow: hidden; border: 1px solid var(--line); background: #dfe3e4; }
.map-frame iframe { display: block; width: 100%; min-height: 480px; border: 0; }
.service-trust { background: #171c1f; color: #fff; }
.service-trust .shell { display: grid; grid-template-columns: repeat(4, 1fr); }
.service-trust .shell > div { min-height: 110px; padding: 25px; border-right: 1px solid rgba(255,255,255,.14); }
.service-trust strong, .service-trust span { display: block; }
.service-trust strong { color: #ffca60; font-size: 15px; }
.service-trust span { margin-top: 7px; color: #aeb8bc; font-size: 11px; }
.input-data-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-block: 28px 44px; }
.input-data-grid article { padding: 24px; border: 1px solid var(--line); background: #fff; }
.input-data-grid span { color: #9b6500; font-size: 10px; font-weight: 850; }
.input-data-grid h3 { margin: 26px 0 8px; font-size: 20px; }
.input-data-grid p { margin: 0; color: #647075; font-size: 14px; }
.control-list { margin-block: 28px; border-top: 1px solid var(--line); }
.control-list p { display: grid; grid-template-columns: minmax(160px, .35fr) 1fr; gap: 20px; margin: 0; padding: 18px 0; border-bottom: 1px solid var(--line); color: #5e696e; }
.control-list strong { color: #20272b; }
.project-summary { background: var(--accent); }
.project-summary .shell { display: grid; grid-template-columns: repeat(4, 1fr); }
.project-summary .shell > div { min-height: 98px; padding: 24px; border-right: 1px solid rgba(0,0,0,.18); }
.project-summary span, .project-summary strong { display: block; }
.project-summary span { font-size: 9px; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.project-summary strong { margin-top: 7px; font-size: 16px; }
.portfolio-filter { display: flex; flex-wrap: wrap; gap: 8px; margin: -16px 0 34px; }
.portfolio-filter span { padding: 9px 13px; border: 1px solid var(--line); color: #576267; font-size: 11px; font-weight: 800; }
.region-detail-grid { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(300px, .75fr); gap: 72px; align-items: start; }
.local-conditions { position: sticky; top: 150px; padding: 32px; background: #171c1f; color: #fff; }
.local-conditions h3 { font-size: 28px; }
.local-conditions ul { margin: 28px 0 0; padding: 0; list-style: none; }
.local-conditions li { position: relative; padding: 17px 0 17px 25px; border-top: 1px solid rgba(255,255,255,.15); color: #cbd2d5; }
.local-conditions li::before { position: absolute; left: 0; color: var(--accent); content: '◆'; font-size: 9px; }
.region-services-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.region-services-grid > a { overflow: hidden; border: 1px solid var(--line); background: #fff; transition: transform .2s ease, box-shadow .2s ease; }
.region-services-grid > a:hover { transform: translateY(-3px); box-shadow: 0 16px 34px rgba(16,21,24,.1); }
.region-services-grid img { width: 100%; height: 190px; object-fit: cover; }
.region-services-grid > a > div { padding: 22px; }
.region-services-grid h3 { font-size: 21px; }
.region-services-grid p { color: #657075; font-size: 13px; }
.region-services-grid span { color: #895a00; font-size: 11px; font-weight: 850; text-transform: uppercase; }
.article-byline { display: flex; gap: 10px; align-items: center; margin: -5px 0 18px; }
.article-avatar { display: grid; width: 38px; height: 38px; flex: 0 0 auto; place-items: center; border-radius: 50%; background: #171c1f; color: var(--accent); font-size: 15px; font-weight: 900; }
.article-byline > span:last-child { display: flex; flex-direction: column; }
.article-byline strong { font-size: 11px; }
.article-byline small { color: #758086; font-size: 10px; }

@media (max-width: 1000px) {
  .capability-grid, .service-trust .shell, .project-summary .shell { grid-template-columns: 1fr 1fr; }
  .region-services-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 760px) {
  .region-detail-grid { grid-template-columns: 1fr; gap: 32px; }
  .local-conditions { position: static; }
}
@media (max-width: 640px) {
  .capability-grid, .service-trust .shell, .project-summary .shell, .input-data-grid, .region-services-grid { grid-template-columns: 1fr; }
  .capability-grid article { min-height: auto; }
  .capability-grid article > span { margin-bottom: 28px; }
  .control-list p { grid-template-columns: 1fr; gap: 6px; }
  .map-frame iframe { min-height: 400px; }
}

/* Version 1.2: project cards, service infographics, safe headlines and mobile polish */
.inner-hero-content { max-width: none; }
.inner-hero h1 { max-width: 1180px; font-size: clamp(42px, 4.7vw, 68px); overflow-wrap: normal; word-break: normal; hyphens: none; text-wrap: balance; }
.messenger-unconfigured { cursor: help; opacity: .58; filter: grayscale(.3); }

.project-teaser-grid { align-items: stretch; }
.project-teaser { display: flex; min-width: 0; flex-direction: column; overflow: hidden; border: 1px solid var(--line); background: #fff; transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease; }
.project-teaser:hover { border-color: #c89a3d; box-shadow: 0 16px 36px rgba(16,21,24,.1); transform: translateY(-3px); }
.project-teaser-image { display: block; height: 220px; overflow: hidden; background: #222; }
.project-teaser-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s ease; }
.project-teaser:hover .project-teaser-image img { transform: scale(1.04); }
.project-teaser-body { display: flex; min-height: 250px; flex: 1; flex-direction: column; padding: 22px; }
.project-teaser-kicker { margin: 0 0 12px; color: #966100; font-size: 10px; font-weight: 850; letter-spacing: .07em; text-transform: uppercase; }
.project-teaser h3 { margin: 0 0 12px; font-size: 22px; line-height: 1.15; }
.project-teaser-body > p:not(.project-teaser-kicker) { margin: 0 0 18px; color: #657075; font-size: 13px; }
.project-teaser .text-link { align-self: flex-start; margin-top: auto; font-size: 12px; }

.related-service-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.related-service-grid article { display: flex; min-width: 0; flex-direction: column; overflow: hidden; border: 1px solid rgba(255,255,255,.17); background: #20272b; transition: border-color .2s ease, transform .2s ease; }
.related-service-grid article:hover { border-color: var(--accent); transform: translateY(-3px); }
.related-service-image { display: block; height: 220px; overflow: hidden; background: #0f1315; }
.related-service-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s ease; }
.related-service-grid article:hover img { transform: scale(1.04); }
.related-service-grid article > div { display: flex; min-height: 255px; flex: 1; flex-direction: column; padding: 24px; }
.related-service-grid article > div > p { margin: 0 0 13px; color: #ffc75d; font-size: 10px; font-weight: 850; letter-spacing: .09em; text-transform: uppercase; }
.related-service-grid h3 { margin: 0 0 13px; color: #fff; font-size: 23px; }
.related-service-grid article > div > span { margin-bottom: 22px; color: #b9c2c6; font-size: 13px; }
.related-service-grid .text-link { align-self: flex-start; margin-top: auto; color: #ffc75d; font-size: 12px; }

.service-infographic { background: linear-gradient(135deg, #eef1f1 0%, #f8f6f1 55%, #ece7dc 100%); }
.infographic-flow { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; margin: 0; padding: 0; list-style: none; }
.infographic-flow li { position: relative; min-height: 310px; padding: 28px 24px; border-top: 4px solid var(--accent); background: #171c1f; color: #fff; box-shadow: 0 16px 34px rgba(18,23,26,.11); }
.infographic-flow li:not(:last-child)::after { position: absolute; z-index: 2; top: 50%; right: -25px; display: grid; width: 34px; height: 34px; place-items: center; border: 5px solid #eff0ed; border-radius: 50%; background: var(--accent); color: #111; content: '→'; font-size: 14px; font-weight: 900; }
.infographic-icon { display: grid; width: 58px; height: 58px; place-items: center; border: 1px solid rgba(255,255,255,.22); color: var(--accent); }
.infographic-icon svg { width: 34px; height: 34px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2.2; }
.infographic-flow li > span { display: block; margin: 34px 0 12px; color: #8f9ba0; font-size: 10px; font-weight: 850; letter-spacing: .12em; }
.infographic-flow h3 { margin: 0 0 12px; color: #fff; font-size: 22px; }
.infographic-flow p { margin: 0; color: #b9c2c6; font-size: 13px; }

.article-showcase { align-items: stretch; }
.article-card { display: flex; min-width: 0; flex-direction: column; overflow: hidden; border: 1px solid var(--line); background: #fff; box-shadow: 0 12px 28px rgba(16,21,24,.05); transition: transform .2s ease, box-shadow .2s ease; }
.article-card:hover { box-shadow: 0 18px 40px rgba(16,21,24,.12); transform: translateY(-3px); }
.article-card .article-thumb { height: 230px; margin: 0; }
.article-card .article-thumb img { transition: transform .4s ease; }
.article-card:hover .article-thumb img { transform: scale(1.04); }
.article-card-body { display: flex; flex: 1; flex-direction: column; padding: 24px; }
.article-card .article-byline { margin: 0 0 16px; }
.article-card .article-service-link { align-self: flex-start; margin-bottom: 18px; padding: 7px 9px; border-left: 3px solid var(--accent); background: #f7f1e5; color: #7e5300; font-size: 10px; font-weight: 800; }
.article-card h2 { margin: 0 0 14px; font-size: 26px; }
.article-card-body > p { margin: 0 0 22px; color: #5c686d; font-size: 14px; }
.article-card .text-link { align-self: flex-start; margin-top: auto; }
.article-avatar-mobilnoe-droblenie-betona-na-obekte { background: #253842; color: #ffc75d; font-size: 17px; }
.article-avatar-podgotovka-k-dnouglubitelnym-rabotam { background: #1d5365; color: #bce9f2; font-size: 23px; }
.article-avatar-kak-rasschitat-stoimost-promyshlennogo-demontazha { background: #1d2022; color: #ffc75d; }

.factor-table-wrap, .data-table-wrap { scrollbar-color: var(--accent) #e8eaeb; scrollbar-width: thin; }
.factor-table-wrap::-webkit-scrollbar, .data-table-wrap::-webkit-scrollbar { height: 8px; }
.factor-table-wrap::-webkit-scrollbar-thumb, .data-table-wrap::-webkit-scrollbar-thumb { background: var(--accent); }

@media (max-width: 1000px) {
  .infographic-flow, .related-service-grid { grid-template-columns: 1fr 1fr; }
  .infographic-flow li:nth-child(2)::after { display: none; }
}

@media (max-width: 760px) {
  .section-heading { margin-bottom: 36px; }
  .split-heading { gap: 22px; }
  .split-heading > p { font-size: 16px; }
  .inner-hero-content { padding-block: 58px; }
  .inner-hero h1 { font-size: clamp(34px, 7vw, 48px); hyphens: auto; overflow-wrap: break-word; }
  .inner-hero .hero-copy { font-size: 17px; }
  .project-teaser-body { min-height: 230px; }
  .related-service-grid article > div { min-height: 230px; }
}

@media (max-width: 640px) {
  h2 { font-size: clamp(31px, 9vw, 42px); }
  h3 { overflow-wrap: break-word; }
  .section { padding-block: 56px; }
  .inner-hero, .inner-hero-content { min-height: 430px; }
  .inner-hero h1 { max-width: 100%; font-size: clamp(29px, 8.6vw, 38px); line-height: 1.03; }
  .breadcrumbs { margin-bottom: 22px; font-size: 9px; }
  .inner-hero-actions { align-items: stretch; flex-direction: column; gap: 10px; }
  .inner-hero-actions .button { width: 100%; }
  .service-trust .shell, .project-summary .shell { grid-template-columns: 1fr 1fr; }
  .service-trust .shell > div, .project-summary .shell > div { min-height: 96px; padding: 18px 14px; }
  .service-trust strong { font-size: 13px; }
  .project-summary strong { font-size: 14px; }
  .infographic-flow, .related-service-grid { grid-template-columns: 1fr; }
  .infographic-flow { gap: 12px; }
  .infographic-flow li { min-height: 0; padding: 24px; }
  .infographic-flow li:not(:last-child)::after { top: auto; right: 22px; bottom: -25px; display: grid; border-width: 4px; content: '↓'; }
  .infographic-flow li > span { margin-top: 24px; }
  .project-teaser-image, .related-service-image { height: 210px; }
  .project-teaser-body, .related-service-grid article > div { min-height: 0; padding: 20px; }
  .project-teaser .text-link, .related-service-grid .text-link { margin-top: 8px; }
  .article-card .article-thumb { height: 210px; }
  .article-card-body { padding: 20px; }
  .article-card h2 { font-size: 24px; }
  .entry-content > p, .entry-content > ul, .entry-content > ol, .content-main > p { font-size: 16px; }
  .entry-content h2, .content-main h2 { margin-top: 44px; }
  .expert-block { margin: 34px 0; padding: 24px 20px; }
  .factor-table, .data-table { min-width: 580px; }
  .factor-table th, .factor-table td, .data-table th, .data-table td { padding: 13px 14px; font-size: 13px; }
  .faq-list summary { padding-block: 20px; font-size: 16px; }
  .faq-list details p { margin-right: 0; }
  .form-messengers { align-items: stretch; }
  .form-messengers .messenger { flex: 1; min-width: 0; }
  .contact-cards article { min-height: 165px; }
  .footer-bottom > div { display: flex; flex-wrap: wrap; gap: 10px 16px; }
  .about-story-image blockquote { font-size: 16px; }
  .case-card, .case-card img { min-height: 320px; }
  .case-card a > div { right: 20px; bottom: 22px; left: 20px; }
  .case-card h2 { font-size: 27px; }
  .cookie-banner { max-width: calc(100% - 20px); }
}

@media (max-width: 380px) {
  :root { --shell: calc(100% - 22px); }
  .brand-copy strong { font-size: 15px; }
  .inner-hero h1 { font-size: 28px; }
  .service-trust .shell, .project-summary .shell { grid-template-columns: 1fr; }
  .facts-grid { grid-template-columns: 1fr; }
  .facts-grid .fact-cta { grid-column: auto; }
}

/* 1.3.0 — client corrections: original logo, compact hero, actual equipment. */
.header-main { min-height: 124px; grid-template-columns: 156px minmax(0,1fr) auto auto; gap: 22px; padding-block: 10px; }
.brand { display: inline-flex; flex-direction: column; align-items: center; gap: 5px; }
.brand-logo { width: 138px; height: auto; }
.brand-tagline { color: #56636a; font-size: 9px; font-weight: 750; letter-spacing: .1em; text-transform: uppercase; white-space: nowrap; }
.header-main .custom-logo { width: auto; max-width: 180px; max-height: 110px; object-fit: contain; }
.brand-footer .brand { align-items: flex-start; }
.brand-footer .brand-logo { width: 220px; filter: brightness(0) invert(1); }
.brand-footer .brand-tagline { margin-top: 7px; color: #e3e8e9; font-size: 11px; }
.brand-footer .custom-logo { width: 220px; max-width: 100%; height: auto; }
.footer-grid { grid-template-columns: 1.1fr 1.2fr .7fr 1fr; gap: 40px; }
.hero, .hero-inner { min-height: 560px; }
.hero-inner { gap: 36px; padding-block: 44px 40px; }
.hero h1 { font-size: clamp(40px, 4.25vw, 60px); margin-bottom: 18px; }
.hero-copy-slot { min-height: 0; }
.hero-dynamic-title { font-size: clamp(21px, 2vw, 27px); min-height: 2.45em; }
.hero-lead { margin-bottom: 24px; min-height: 3.1em; }
.hero-controls { margin-top: 30px; }
.hero-proof { align-self: center; margin-bottom: 0; }
.hero-cta { gap: 14px 20px; }
.equipment-grid { grid-template-columns: repeat(3, minmax(0,1fr)); }
.equipment-grid .equipment-card { display: flex; flex-direction: column; }
.equipment-image { height: 250px; background: #e7ebed; }
.equipment-catalog img { background: #e7ebed; }
.equipment-image img[src$="equipment-develon-490.webp"], .equipment-catalog img[src$="equipment-develon-490.webp"] { object-fit: contain; }
.equipment-image img[src$="equipment-loader.webp"], .equipment-catalog img[src$="equipment-loader.webp"] { object-position: center 70%; }
.geography-intro p { margin: 0; color: #5f6a70; font-size: 17px; }
.geography-map-layout { display: grid; grid-template-columns: minmax(250px,.7fr) minmax(0,1.6fr); border: 1px solid #d6ddde; background: #fff; }
.geography-map-locations { display: flex; flex-direction: column; padding: 12px; background: #172024; gap: 4px; }
.geography-pin-button { display: grid; grid-template-columns: 34px minmax(0,1fr) 16px; align-items: center; gap: 12px; width: 100%; min-height: 90px; padding: 15px 12px; border: 1px solid transparent; background: transparent; color: #fff; text-align: left; }
.geography-pin-button:hover { background: #263237; }
.geography-pin-button.active { border-color: var(--accent); background: #f5ab23; color: #171c1f; }
.geography-pin-button strong { display: block; font-size: 18px; line-height: 1.25; }
.geography-pin-button small { display: block; margin-top: 6px; font-size: 12px; line-height: 1.45; opacity: .85; }
.geography-pin-number { display: grid; place-items: center; width: 32px; height: 32px; border: 1px solid currentColor; border-radius: 50%; font-size: 11px; }
.geography-map-panel { display: flex; flex-direction: column; min-width: 0; }
.geography-map-caption { display: flex; justify-content: space-between; align-items: flex-start; gap: 22px; padding: 23px; min-height: 136px; background: #f5f6f4; }
.geography-map-caption strong { font-size: 24px; }
.geography-map-caption p { max-width: 560px; margin: 7px 0 0; font-size: 14px; color: #536269; }
.geography-map-caption a { flex-shrink: 0; font-size: 12px; font-weight: 750; text-decoration: underline; text-underline-offset: 4px; }
.geography-map-panel iframe { width: 100%; flex: 1; min-height: 370px; border: 0; background: #e8eeef; }
.geography-map-note { padding: 12px 20px; margin: 0; color: #68757a; font-size: 12px; }
.region-catalog { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 18px; }
.region-catalog article { display: flex; flex-direction: column; padding: 27px; border: 1px solid #dde1e2; background: #fff; }
.region-catalog .eyebrow { margin-bottom: 22px; font-size: 10px; line-height: 1.6; }
.region-catalog .eyebrow::before { display: none; }
.region-catalog h3 { font-size: 28px; margin-bottom: 12px; }
.region-catalog article > p:not(.eyebrow) { font-size: 15px; color: #536168; margin: 0 0 26px; }
.region-catalog-links { display: flex; flex-wrap: wrap; gap: 16px; align-items: center; margin-top: auto; font-size: 12px; }
.region-list { max-height: none; }
[id] { scroll-margin-top: 180px; }
@media (max-width: 1180px) {
 .header-main { grid-template-columns: 146px minmax(0,1fr) auto 44px; gap: 16px; }
 .header-main .header-cta { display: none; }
 .header-contacts { gap: 20px; }
 .hero-inner { grid-template-columns: minmax(0,1fr) 190px; }
 .hero h1 { font-size: clamp(36px,4.2vw,50px); }
 .footer-grid { grid-template-columns: 1fr 1fr; gap: 36px; }
 .footer-contacts { grid-column: auto; }
 .equipment-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 900px) {
 .header-main { grid-template-columns: 138px minmax(0,1fr) 44px; min-height: 112px; }
 .header-main .header-messengers { justify-self: end; }
 .hero-inner { grid-template-columns: 1fr; padding-block: 38px; }
 .hero, .hero-inner { min-height: 0; }
 .hero h1 { font-size: clamp(34px,5.5vw,48px); }
 .hero-proof { display: none; }
 .region-catalog { grid-template-columns: repeat(2,minmax(0,1fr)); }
 .geography-map-layout { grid-template-columns: 1fr; }
 .geography-map-locations { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); }
 .geography-pin-button { grid-template-columns: 26px minmax(0,1fr); gap: 9px; min-height: 88px; padding: 10px; }
 .geography-pin-button > span:last-child { display: none; }
 .geography-pin-number { width: 26px; height: 26px; }
 .geography-pin-button strong { font-size: 16px; }
 .geography-pin-button small { font-size: 10px; }
}
@media (max-width: 640px) {
 .header-main { grid-template-columns: 94px minmax(0,1fr) 44px; min-height: 94px; gap: 10px; padding-block: 8px; }
 .brand-logo { width: 92px; }
 .header-main .brand-tagline { display: none; }
 .header-main .header-messengers { display: flex; gap: 5px; margin: 0; }
 .header-main .messenger { min-height: 40px; padding: 8px 9px; font-size: 10px; }
 .header-main .custom-logo { max-width: 94px; max-height: 80px; }
 .mobile-nav { max-height: calc(100dvh - 120px); }
 .topline { font-size: 8px; letter-spacing: .025em; }
 .hero-inner { padding-block: 30px; }
 .hero h1 { font-size: clamp(24px,6.75vw,36px); line-height: 1.12; margin-bottom: 16px; }
 .hero h1 .hero-title-primary, .hero h1 .hero-title-accent { white-space: nowrap; }
 .hero-copy-slot { min-height: 0; }
 .hero-copy-slot .eyebrow { font-size: 10px; letter-spacing: .09em; margin-bottom: 13px; }
 .hero-dynamic-title { font-size: 20px; min-height: 0; }
 .hero-lead { font-size: 15px; min-height: 0; margin-bottom: 20px; }
 .hero-cta { gap: 10px; }
 .hero-cta .button { min-height: 46px; width: 100%; padding: 12px 14px; font-size: 12px; }
 .hero-cta .text-link { margin-top: 4px; font-size: 12px; }
 .hero-controls { margin-top: 24px; gap: 5px; }
 .hero-controls button { min-width: 0; flex: 1; padding: 10px 7px; font-size: 9px; }
 .equipment-grid, .region-catalog { grid-template-columns: 1fr; }
 .equipment-image { height: 290px; }
 .region-catalog article { padding: 24px; }
 .geography-map-locations { grid-template-columns: repeat(2,minmax(0,1fr)); padding: 9px; gap: 5px; }
 .geography-pin-button { min-height: 92px; padding: 10px 7px; }
 .geography-map-caption { flex-direction: column; min-height: 165px; padding: 20px; gap: 12px; }
 .geography-map-caption strong { font-size: 22px; }
 .geography-map-panel iframe { min-height: 340px; }
 .footer-grid { grid-template-columns: 1fr; }
 .brand-footer .brand-logo { width: 230px; }
 .brand-footer .brand-tagline { display: block; }
 .brand-footer .brand { align-items: flex-start; }
 [id] { scroll-margin-top: 116px; }
}
@media (max-width: 360px) {
 .header-main { grid-template-columns: 84px minmax(0,1fr) 40px; gap: 8px; }
 .brand-logo { width: 82px; }
 .header-main .messenger { padding-inline: 7px; }
 .geography-pin-button { grid-template-columns: 1fr; }
 .geography-pin-number { display: none; }
}

/* 1.4.0 — headings proportionate to 16–18 px body copy. */
h2 { font-size: clamp(26px, 2.5vw, 38px); line-height: 1.2; letter-spacing: -.025em; }
.entry-content h2, .content-main h2, .legal-content h2 { font-size: clamp(24px, 2.15vw, 30px); line-height: 1.25; margin-top: 36px; margin-bottom: 16px; max-width: 100%; }
.entry-content > h2:first-child { margin-top: 0; }
.entry-content h3 { font-size: 23px; line-height: 1.3; margin-top: 28px; }
.about-story h2 { font-size: clamp(28px, 2.8vw, 38px); line-height: 1.2; }
.visual-card h2, .case-card h2 { font-size: clamp(26px, 2.5vw, 34px); }
.supplementary-content { max-width: 960px; }
.equipment-card:first-child .equipment-image img, .equipment-item:first-child > img { object-fit: contain; }
@media (max-width: 767px) {
  h2 { font-size: clamp(25px, 6.5vw, 30px); }
  .entry-content h2, .content-main h2, .legal-content h2 { font-size: 24px; margin-top: 30px; margin-bottom: 14px; }
  .entry-content h3 { font-size: 21px; }
}

.form-heading h2 { font-size: clamp(26px, 2.4vw, 32px); line-height: 1.2; }

.brand-custom { display:flex; flex-direction:column; align-items:center; gap:5px; }
.brand-footer .brand-custom { align-items:flex-start; }
