:root {
  --navy: #07182b;
  --navy-2: #0d2842;
  --cyan: #23c4e8;
  --cyan-soft: #dff8fd;
  --orange: #ff6b35;
  --paper: #f5f8fa;
  --white: #fff;
  --ink: #102033;
  --muted: #607083;
  --line: #d9e2e9;
  --background: #fff;
  --foreground: #102033;
  --card: #fff;
  --card-foreground: #102033;
  --popover: #fff;
  --popover-foreground: #102033;
  --primary: #0b7893;
  --primary-foreground: #fff;
  --secondary: #eaf4f7;
  --secondary-foreground: #102033;
  --accent: #dff8fd;
  --accent-foreground: #102033;
  --destructive: #d92d20;
  --border: #d9e2e9;
  --input: #d9e2e9;
  --ring: #23c4e8;
  --radius: .85rem;
}

* { box-sizing: border-box; }
svg { display: block; }
.ico { width: 1.2em; height: 1.2em; display: inline-block; vertical-align: middle; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.notice { margin: 0 0 18px; padding: 13px 15px; border-radius: 7px; color: #0d5e3d; background: #e4f8ef; font-size: .85rem; font-weight: 700; }
.notice.error { color: #8b2b22; background: #fff0ed; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--white); color: var(--ink); font-family: Arial, Helvetica, sans-serif; font-size: 16px; overflow-x: hidden; }
a { color: inherit; text-decoration: none; }
button, input, textarea { font: inherit; }
button { cursor: pointer; }
.container { width: min(1180px, calc(100% - 48px)); margin: 0 auto; }
.section { padding: 112px 0; }
.section h2 { margin: 14px 0 0; color: var(--navy); font-size: clamp(2.5rem, 5vw, 4.8rem); line-height: .96; letter-spacing: -.055em; }
.section-head { margin-bottom: 50px; }
.section-head.split { display: grid; grid-template-columns: 1.25fr .75fr; align-items: end; gap: 80px; }
.section-head.split > p { max-width: 480px; margin: 0 0 6px; color: var(--muted); font-size: 1.08rem; line-height: 1.75; }
.eyebrow { display: flex; align-items: center; gap: 9px; color: #b8d5e3; font-size: .78rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.eyebrow span { width: 28px; height: 2px; background: var(--cyan); }
.eyebrow.dark { color: #527086; }
.eyebrow.dark span { background: var(--orange); }
.btn { min-height: 54px; padding: 0 22px; display: inline-flex; align-items: center; justify-content: center; gap: 10px; border: 1px solid transparent; border-radius: 8px; font-weight: 800; transition: transform .25s ease, background .25s ease, border-color .25s ease; }
.btn:hover { transform: translateY(-2px); }
.btn-primary { background: var(--orange); color: #fff; box-shadow: 0 13px 36px rgba(255,107,53,.22); }
.btn-primary:hover { background: #f55a23; }
.btn-ghost { border-color: rgba(255,255,255,.25); color: #fff; background: rgba(255,255,255,.06); }
.btn-ghost:hover { background: rgba(255,255,255,.12); }
.btn-dark { background: var(--navy); color: #fff; }

/* header */
.site-header { position: relative; z-index: 80; background: #fff; }
.topbar { height: 34px; display: flex; align-items: center; background: var(--navy); color: #b9c7d1; font-size: .76rem; }
.topbar .container { display: flex; justify-content: space-between; align-items: center; }
.topbar span { display: flex; align-items: center; gap: 8px; }
.topbar span i { width: 7px; height: 7px; border-radius: 50%; background: #48d88a; box-shadow: 0 0 0 4px rgba(72,216,138,.12); }
.topbar a:hover { color: #fff; }
.header-main { height: 84px; display: flex; align-items: center; gap: 28px; }
.logo { display: inline-flex; align-items: center; gap: 11px; min-width: 205px; }
.logo-mark { position: relative; width: 42px; height: 42px; display: grid; place-items: center; overflow: hidden; border-radius: 11px; color: #fff; background: var(--navy); }
.logo-mark i { position: absolute; width: 25px; height: 18px; border: 4px solid var(--cyan); border-right-color: var(--orange); border-radius: 4px; }
.logo-mark b { position: relative; font-size: 0; }
.logo-text { display: flex; flex-direction: column; line-height: 1; }
.logo-text b { font-size: 1rem; letter-spacing: .075em; color: var(--navy); }
.logo-text small { margin-top: 5px; color: #6d7c8a; font-size: .6rem; font-weight: 800; letter-spacing: .16em; }
.desktop-nav { display: flex; align-items: center; gap: 26px; margin-left: auto; font-size: .9rem; font-weight: 700; color: #314557; }
.desktop-nav > a, .nav-dropdown > button { transition: color .2s; }
.desktop-nav > a:hover, .nav-dropdown > button:hover { color: var(--orange); }
.nav-dropdown { position: relative; }
.nav-dropdown > button { display: flex; align-items: center; gap: 5px; padding: 30px 0; border: 0; background: transparent; color: inherit; font-weight: inherit; }
.nav-mega { position: absolute; top: 72px; left: -28px; width: 610px; padding: 22px; display: grid; grid-template-columns: 1fr 1fr; gap: 3px; border-radius: 14px; background: #fff; box-shadow: 0 24px 80px rgba(5,23,39,.18); opacity: 0; visibility: hidden; transform: translateY(8px); transition: .2s ease; }
.nav-dropdown:hover .nav-mega, .nav-dropdown:focus-within .nav-mega { opacity: 1; visibility: visible; transform: translateY(0); }
.nav-mega a { padding: 14px; display: flex; gap: 12px; border-radius: 8px; color: var(--ink); }
.nav-mega a:hover { background: var(--paper); }
.nav-mega a span { color: var(--orange); font-size: .68rem; font-weight: 900; }
.nav-mega .nav-all { grid-column: 1 / -1; background: var(--navy); color: #fff; justify-content: center; }
.header-contact { display: flex; flex-direction: column; align-items: flex-end; padding-left: 20px; border-left: 1px solid var(--line); }
.header-contact span { margin-bottom: 3px; color: #81909d; font-size: .68rem; }
.header-contact a { color: var(--navy); font-size: 1rem; font-weight: 900; white-space: nowrap; }
.header-call { width: 43px; height: 43px; display: grid; place-items: center; border-radius: 50%; background: var(--orange); color: #fff; }
.header-call span { display: none; }
.mobile-toggle { display: none; width: 44px; height: 44px; border: 0; border-radius: 10px; background: var(--paper); color: var(--navy); }
.mobile-menu { position: fixed; inset: 0; z-index: 150; padding: 20px 24px 30px; display: flex; flex-direction: column; background: #fff; transform: translateX(102%); transition: transform .35s cubic-bezier(.7,0,.2,1); }
.mobile-menu.open { transform: translateX(0); }
.mobile-menu-head { display: flex; align-items: center; justify-content: space-between; padding-bottom: 20px; border-bottom: 1px solid var(--line); }
.mobile-menu-head button { width: 44px; height: 44px; display: grid; place-items: center; border: 0; border-radius: 50%; background: var(--navy); color: #fff; }
.mobile-menu nav { padding: 24px 0; overflow-y: auto; }
.mobile-menu nav p { margin: 0 0 8px; color: #7b8996; font-size: .72rem; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.mobile-menu nav a { min-height: 48px; display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid #edf1f4; color: var(--navy); font-size: 1.05rem; font-weight: 700; }
.mobile-menu nav a span { color: var(--orange); }
.mobile-nav-divider { height: 22px; }
.mobile-contacts { margin-top: auto; padding: 20px; border-radius: 13px; background: var(--navy); color: #fff; }
.mobile-contacts a { display: block; font-size: 1.45rem; font-weight: 900; }
.mobile-contacts small { display: block; margin-top: 6px; color: #9fb4c5; }

/* hero */
.hero { position: relative; min-height: 735px; padding: 72px 0 0; overflow: hidden; color: #fff; background: var(--navy); }
.hero:after { content: ""; position: absolute; right: -140px; top: -170px; width: 580px; height: 580px; border: 110px solid rgba(35,196,232,.055); border-radius: 50%; }
.hero-grid, .inner-grid { position: absolute; inset: 0; opacity: .16; background-image: linear-gradient(rgba(255,255,255,.12) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.12) 1px, transparent 1px); background-size: 62px 62px; mask-image: linear-gradient(90deg,#000,transparent 72%); }
.hero-inner { position: relative; z-index: 2; display: grid; grid-template-columns: 1.02fr .98fr; align-items: center; gap: 75px; }
.hero-copy h1 { margin: 24px 0 22px; color: #fff; font-size: clamp(3.3rem, 5.8vw, 6rem); line-height: .91; letter-spacing: -.065em; }
.hero-copy h1 em { color: var(--cyan); font-style: normal; }
.hero-lead { max-width: 650px; margin: 0; color: #b7c8d5; font-size: 1.1rem; line-height: 1.7; }
.hero-actions { display: flex; gap: 12px; margin-top: 32px; }
.hero-proof { margin-top: 34px; display: flex; flex-wrap: wrap; gap: 23px; color: #d8e3ea; font-size: .82rem; }
.hero-proof span { display: flex; align-items: center; gap: 7px; }
.hero-proof svg { color: var(--cyan); }
.hero-visual { position: relative; height: 490px; }
.hero-image-wrap { position: absolute; inset: 20px 0 0 25px; overflow: hidden; border-radius: 90px 8px 8px 8px; }
.hero-image-wrap img { width: 100%; height: 100%; object-fit: cover; }
.image-shade { position: absolute; inset: 0; background: linear-gradient(180deg,transparent 45%,rgba(2,15,28,.52)); }
.hero-card { position: absolute; z-index: 3; display: flex; align-items: center; color: var(--navy); background: #fff; box-shadow: 0 20px 60px rgba(0,0,0,.22); }
.hero-card-top { left: -25px; top: 0; padding: 18px 20px; gap: 11px; border-radius: 9px; }
.hero-card-top span { color: var(--orange); font-size: 2rem; font-weight: 900; letter-spacing: -.05em; }
.hero-card-top small { font-size: .72rem; line-height: 1.35; }
.hero-card-bottom { right: -22px; bottom: 30px; padding: 15px 18px; gap: 12px; border-radius: 9px; }
.hero-card-bottom div { display: flex; flex-direction: column; }
.hero-card-bottom b { font-size: .83rem; }
.hero-card-bottom small { margin-top: 3px; color: #71808d; font-size: .67rem; }
.online-dot { width: 11px; height: 11px; border-radius: 50%; background: #3ed689; box-shadow: 0 0 0 6px rgba(62,214,137,.15); }
.pipe-line { position: absolute; right: -45px; top: 55px; width: 92px; height: 170px; border: 3px solid var(--orange); border-left: 0; border-bottom: 0; border-radius: 0 40px 0 0; }
.pipe-line i { position: absolute; width: 11px; height: 11px; border: 3px solid var(--orange); border-radius: 50%; background: var(--navy); }
.pipe-line i:nth-child(1) { left: -5px; top: -7px; }.pipe-line i:nth-child(2) { right: -7px; top: 70px; }.pipe-line i:nth-child(3) { right: -7px; bottom: -5px; }
.quick-services { position: relative; z-index: 4; margin-top: 57px; display: grid; grid-template-columns: repeat(4,1fr); background: #fff; color: var(--navy); box-shadow: 0 20px 70px rgba(0,0,0,.16); }
.quick-services a { min-height: 82px; display: flex; align-items: center; justify-content: center; gap: 10px; border-right: 1px solid var(--line); font-size: .9rem; font-weight: 800; transition: .2s; }
.quick-services a:last-child { border-right: 0; }
.quick-services a:hover { color: var(--orange); background: var(--paper); }
.quick-services svg { color: var(--cyan); }

/* services */
.services-section { padding-top: 150px; background: var(--paper); }
.services-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 16px; }
.service-card { min-height: 345px; padding: 28px; display: flex; flex-direction: column; border: 1px solid var(--line); border-radius: 10px; background: #fff; transition: transform .3s ease, box-shadow .3s ease, background .3s ease; }
.service-card:hover { transform: translateY(-7px); box-shadow: 0 20px 50px rgba(5,28,44,.1); }
.service-card.featured { border-top: 4px solid var(--cyan); }
.service-top { display: flex; align-items: center; justify-content: space-between; }
.service-top span { color: #9ba8b2; font-size: .72rem; font-weight: 900; }
.service-top svg { color: var(--orange); }
.service-card h3 { max-width: 290px; margin: 55px 0 14px; color: var(--navy); font-size: 1.42rem; line-height: 1.2; letter-spacing: -.02em; }
.service-card p { margin: 0; color: var(--muted); font-size: .92rem; line-height: 1.62; }
.service-link { margin-top: auto; display: flex; align-items: center; justify-content: space-between; padding-top: 24px; border-top: 1px solid #e6edf1; color: #315063; font-size: .8rem; font-weight: 900; text-transform: uppercase; letter-spacing: .06em; }
.service-link svg { transition: transform .2s; }.service-card:hover .service-link svg { transform: translate(3px,-3px); }
.all-services-link { margin-top: 30px; text-align: center; }
.all-services-link a, .text-link { display: inline-flex; align-items: center; gap: 8px; color: var(--navy); font-weight: 900; border-bottom: 2px solid var(--orange); padding-bottom: 5px; }

/* tech */
.dark-section { position: relative; overflow: hidden; background: var(--navy); }
.dark-section:before { content: ""; position: absolute; left: -180px; bottom: -310px; width: 600px; height: 600px; border: 120px solid rgba(35,196,232,.045); border-radius: 50%; }
.tech-grid { position: relative; display: grid; grid-template-columns: .9fr 1.1fr; align-items: center; gap: 90px; }
.tech-copy h2 { color: #fff; }.tech-copy > p { margin: 24px 0 36px; color: #abc0ce; line-height: 1.72; }
.tech-list { border-top: 1px solid rgba(255,255,255,.14); }
.tech-list > div { padding: 20px 0; display: grid; grid-template-columns: 45px 1fr; border-bottom: 1px solid rgba(255,255,255,.14); }
.tech-list span { grid-row: span 2; color: var(--orange); font-size: .7rem; font-weight: 900; }
.tech-list b { color: #fff; font-size: 1rem; }.tech-list small { margin-top: 5px; color: #829cad; }
.tech-image { position: relative; height: 535px; overflow: hidden; border-radius: 7px 90px 7px 7px; }
.tech-image img { width: 100%; height: 100%; object-fit: cover; }
.tech-image:after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 60%, rgba(4,20,35,.56)); }
.tech-stamp { position: absolute; z-index: 2; left: 30px; bottom: 28px; padding: 18px 20px; display: grid; grid-template-columns: 35px 1fr; border-radius: 8px; background: #fff; color: var(--navy); }
.tech-stamp svg { grid-row: span 2; color: var(--orange); }.tech-stamp b { font-size: .88rem; }.tech-stamp span { color: #7d8a94; font-size: .7rem; }

/* process/cases/prices */
.process-section { background: #fff; }
.process-grid { position: relative; display: grid; grid-template-columns: repeat(4,1fr); gap: 0; }
.process-grid:before { content: ""; position: absolute; top: 25px; left: 7%; right: 7%; height: 1px; background: var(--line); }
.process-card { position: relative; padding: 0 28px 0 0; }
.process-card > span { position: relative; z-index: 2; width: 52px; height: 52px; display: grid; place-items: center; border: 1px solid var(--cyan); border-radius: 50%; background: #fff; color: var(--navy); font-size: .72rem; font-weight: 900; }
.process-card h3 { margin: 26px 0 10px; color: var(--navy); font-size: 1.25rem; }.process-card p { margin: 0; color: var(--muted); font-size: .9rem; line-height: 1.65; }
.cases-section { background: var(--paper); }
.cases-grid { display: grid; grid-template-columns: 1.05fr .95fr; align-items: center; gap: 85px; }
.cases-image { position: relative; height: 535px; overflow: hidden; border-radius: 8px 8px 8px 85px; }.cases-image img { width: 100%; height: 100%; object-fit: cover; }
.cases-copy > p { margin: 24px 0 27px; color: var(--muted); line-height: 1.75; }
.object-list { margin-bottom: 33px; }
.object-list > div { padding: 17px 0; display: flex; align-items: center; gap: 16px; border-top: 1px solid var(--line); }
.object-list > div:last-child { border-bottom: 1px solid var(--line); }
.object-list svg { color: var(--orange); }.object-list span { display: flex; flex-direction: column; }.object-list b { color: var(--navy); }.object-list small { margin-top: 4px; color: var(--muted); }
.price-section { background: #fff; }
.price-grid { display: grid; grid-template-columns: .8fr 1.2fr; gap: 100px; align-items: center; }
.price-copy p { margin: 24px 0 28px; color: var(--muted); line-height: 1.7; }
.price-table { border-top: 2px solid var(--navy); }
.price-table > div { min-height: 70px; padding: 12px 4px; display: flex; align-items: center; justify-content: space-between; gap: 20px; border-bottom: 1px solid var(--line); }
.price-table span { display: flex; align-items: center; gap: 18px; }.price-table i { color: #9ca9b3; font-size: .67rem; font-style: normal; font-weight: 900; }.price-table b { color: var(--navy); white-space: nowrap; }

/* benefits faq contact */
.benefits-section { padding-top: 0; background: #fff; }
.benefits-banner { padding: 62px; display: grid; grid-template-columns: 1fr 1fr; gap: 80px; border-radius: 12px; color: #fff; background: var(--navy); }
.benefits-banner h2 { color: #fff; font-size: clamp(2.3rem,4vw,3.8rem); }
.benefits-list { display: grid; grid-template-columns: 1fr 1fr; align-content: center; gap: 22px 25px; }
.benefits-list span { display: flex; align-items: center; gap: 9px; color: #d8e4ea; font-size: .9rem; }.benefits-list svg { flex: 0 0 auto; color: var(--cyan); }
.faq-section { background: var(--paper); }
.faq-grid { display: grid; grid-template-columns: .7fr 1.3fr; gap: 100px; }
.faq-title p { max-width: 350px; margin-top: 22px; color: var(--muted); line-height: 1.7; }
.faq-list { border-top: 2px solid var(--navy); }
.faq-list details { border-bottom: 1px solid #ccd8df; }
.faq-list summary { min-height: 82px; display: flex; align-items: center; justify-content: space-between; gap: 15px; color: var(--navy); font-weight: 800; list-style: none; }
.faq-list summary::-webkit-details-marker { display: none; }
.faq-list summary span { width: 32px; height: 32px; display: grid; place-items: center; flex: 0 0 auto; border-radius: 50%; background: #fff; color: var(--orange); font-size: 1.25rem; transition: transform .2s; }
.faq-list details[open] summary span { transform: rotate(45deg); }
.faq-list details p { margin: -6px 45px 24px 0; color: var(--muted); line-height: 1.7; }
.contact-section { background: var(--navy); color: #fff; }
.contact-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 100px; align-items: center; }
.contact-copy h2 { color: #fff; }.contact-copy p { max-width: 500px; color: #adc0cc; line-height: 1.72; }
.contact-phone { display: block; margin-top: 28px; color: var(--cyan); font-size: clamp(1.8rem,4vw,3rem); font-weight: 900; letter-spacing: -.04em; }.contact-phone.secondary { margin-top: 5px; color: #fff; font-size: 1.25rem; }
.lead-form { padding: 32px; border-radius: 11px; background: #fff; color: var(--ink); box-shadow: 0 25px 75px rgba(0,0,0,.18); }
.form-head { margin-bottom: 23px; display: flex; flex-direction: column; }.form-head span { color: var(--orange); font-size: .7rem; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }.form-head b { margin-top: 8px; color: var(--navy); font-size: 1.25rem; }
.lead-form label:not(.form-consent) { display: block; margin-bottom: 15px; color: #596b79; font-size: .75rem; font-weight: 700; }
.lead-form input:not([type=checkbox]), .lead-form textarea { width: 100%; margin-top: 7px; padding: 13px 14px; border: 1px solid var(--line); border-radius: 7px; outline: none; background: #f9fbfc; color: var(--ink); resize: vertical; }
.lead-form input:focus, .lead-form textarea:focus { border-color: var(--cyan); box-shadow: 0 0 0 3px rgba(35,196,232,.12); }
.form-consent { margin: 2px 0 17px; display: flex; align-items: flex-start; gap: 8px; color: #75838e; font-size: .69rem; line-height: 1.45; }.form-consent input { margin-top: 2px; accent-color: var(--orange); }.form-consent a { text-decoration: underline; }
.lead-form .btn { width: 100%; border: 0; }.form-alt { margin-top: 13px; display: block; text-align: center; color: #7c8993; }.form-alt a { color: var(--navy); font-weight: 800; }
.lead-form.compact { padding: 25px; }.lead-form.compact .form-head b { font-size: 1.05rem; }

/* inner pages */
.inner-hero { position: relative; overflow: hidden; padding: 80px 0 86px; color: #fff; background: var(--navy); }
.inner-hero .container { position: relative; z-index: 1; }
.back-link { display: inline-flex; align-items: center; gap: 7px; margin-bottom: 35px; color: #a8bdca; font-size: .78rem; font-weight: 800; }.back-link:hover { color: #fff; }
.inner-hero h1 { max-width: 900px; margin: 18px 0; color: #fff; font-size: clamp(2.8rem,6vw,5.7rem); line-height: .98; letter-spacing: -.055em; }
.inner-hero p { max-width: 670px; color: #b3c6d2; font-size: 1.05rem; line-height: 1.7; }
.inner-actions { display: flex; gap: 12px; margin-top: 28px; }
.inner-content-section { background: var(--paper); }
.inner-layout { display: grid; grid-template-columns: minmax(0,1fr) 345px; gap: 65px; align-items: start; }
.article-content { min-width: 0; padding: 44px; border: 1px solid var(--line); border-radius: 10px; background: #fff; }
.article-content h2 { margin: 42px 0 16px; color: var(--navy); font-size: clamp(1.7rem,3vw,2.5rem); line-height: 1.15; letter-spacing: -.035em; }.article-content h2:first-child { margin-top: 0; }
.article-content h3 { margin: 30px 0 12px; color: var(--navy); font-size: 1.35rem; }
.article-content p, .article-content li { color: #526677; line-height: 1.8; }.article-content a { color: #087e9a; text-decoration: underline; }.article-content img { max-width: 100%; height: auto; border-radius: 8px; }.article-content table { width: 100%; border-collapse: collapse; font-size: .9rem; }.article-content td, .article-content th { padding: 12px; border: 1px solid var(--line); text-align: left; }
.content-benefits { margin: 28px 0; display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }.content-benefits span { padding: 15px; display: flex; align-items: center; gap: 9px; border-radius: 7px; background: var(--paper); font-weight: 700; }.content-benefits svg { width: 18px; color: var(--orange); }
.inner-sidebar { position: sticky; top: 20px; }.side-points { margin-bottom: 15px; padding: 20px 23px; border-radius: 9px; color: #fff; background: var(--navy); }.side-points span { padding: 10px 0; display: flex; align-items: center; gap: 10px; border-bottom: 1px solid rgba(255,255,255,.13); font-size: .82rem; }.side-points span:last-child { border-bottom: 0; }.side-points svg { width: 18px; color: var(--cyan); }

/* footer/fixed */
.site-footer { padding: 70px 0 24px; background: #04111f; color: #fff; }
.site-footer .logo-text b { color: #fff; }.site-footer .logo-text small { color: #8da0af; }.site-footer .logo-mark { border: 1px solid rgba(255,255,255,.16); }
.footer-grid { display: grid; grid-template-columns: 1.4fr 1fr .8fr 1.2fr; gap: 60px; }.footer-grid > div { display: flex; flex-direction: column; align-items: flex-start; gap: 10px; }.footer-grid p { max-width: 270px; color: #8196a6; font-size: .85rem; line-height: 1.65; }.footer-grid > div > b { margin-bottom: 12px; color: #7b93a4; font-size: .7rem; letter-spacing: .12em; text-transform: uppercase; }.footer-grid > div > a:not(.logo) { color: #c4d0d8; font-size: .82rem; }.footer-grid > div > a:hover { color: var(--cyan); }.footer-grid .footer-phone { color: #fff; font-size: 1.15rem; font-weight: 900; }
.footer-bottom { margin-top: 50px; padding-top: 23px; display: flex; flex-wrap: wrap; gap: 26px; border-top: 1px solid rgba(255,255,255,.1); color: #677d8e; font-size: .72rem; }.footer-bottom a:hover { color: #fff; }
.floating-contacts { position: fixed; z-index: 90; right: 20px; bottom: 24px; display: flex; flex-direction: column; gap: 9px; }
.floating-contacts a { width: 50px; height: 50px; display: grid; place-items: center; border-radius: 50%; color: #fff; background: var(--orange); box-shadow: 0 10px 30px rgba(5,20,33,.22); transition: transform .2s; }.floating-contacts a:hover { transform: scale(1.08); }.floating-contacts .whatsapp { background: #24b95a; }.floating-contacts .max { background: linear-gradient(145deg,#7457ff,#1ea7ff); }.floating-contacts .max b { font-size: 1.1rem; }
.cookie-float { position: fixed; z-index: 90; left: 0; top: 55%; width: 43px; height: 49px; display: grid; place-items: center; border: 0; border-radius: 0 12px 12px 0; color: #fff; background: var(--navy); box-shadow: 0 8px 25px rgba(5,20,33,.2); }
.cookie-panel { position: fixed; z-index: 180; left: 24px; bottom: 24px; width: min(680px, calc(100% - 48px)); padding: 20px 22px; display: grid; grid-template-columns: 34px 1fr auto; align-items: center; gap: 18px; border: 1px solid var(--line); border-radius: 12px; background: #fff; box-shadow: 0 22px 80px rgba(4,18,31,.22); }.cookie-panel > svg { color: var(--orange); }.cookie-panel b { color: var(--navy); }.cookie-panel p { margin: 5px 0; color: var(--muted); font-size: .77rem; line-height: 1.5; }.cookie-panel a { color: #087e9a; font-size: .73rem; text-decoration: underline; }.cookie-panel .btn { min-height: 44px; }.cookie-close { position: absolute; right: 7px; top: 7px; border: 0; background: transparent; color: #86939c; }
.cookie-panel[hidden] { display: none; }
.preloader { position: fixed; inset: 0; z-index: 999; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 28px; overflow: hidden; background: var(--navy); transition: opacity .5s ease, visibility .5s ease; animation:preloaderFailsafe .45s ease 4.5s forwards; }
.preloader.loaded { opacity: 0; visibility: hidden; }
.pipe-loader { position: relative; width: 210px; height: 150px; }
.pipe-piece, .pipe-joint, .pipe-elbow { position: absolute; display: block; background: linear-gradient(180deg,#dbe5eb,#8ca2b0 48%,#607988 52%,#c9d8df); box-shadow: inset 0 0 0 2px rgba(255,255,255,.22),0 12px 25px rgba(0,0,0,.24); }
.pipe-horizontal { left: 4px; top: 33px; width: 105px; height: 30px; border-radius: 8px 0 0 8px; transform: translateX(-120px); opacity: 0; animation: pipeSlideX .42s .1s cubic-bezier(.2,.9,.2,1) forwards; }
.pipe-joint { left: 99px; top: 28px; width: 39px; height: 40px; border-radius: 7px; transform: scale(0); animation: pipePop .28s .5s ease forwards; }
.pipe-vertical { left: 104px; top: 57px; width: 30px; height: 69px; border-radius: 0 0 7px 7px; transform: translateY(-70px); opacity: 0; animation: pipeSlideY .4s .72s ease forwards; }
.pipe-elbow { left: 104px; top: 111px; width: 72px; height: 35px; border-radius: 0 20px 20px 10px; transform: rotate(-90deg) scale(.5); transform-origin: 15px 15px; opacity: 0; animation: elbowFit .4s 1.08s ease forwards; }
.pipe-elbow:after { content:""; position:absolute; right:-6px; top:-5px; width:15px; height:45px; border-radius:5px; background:linear-gradient(90deg,#76909f,#dce7ec,#6d8695); }
.pipe-water { position: absolute; left: 171px; top: 128px; width: 38px; height: 8px; border-radius: 0 8px 8px 0; background: linear-gradient(90deg,var(--cyan),#7beaff); opacity: 0; box-shadow: 0 0 18px rgba(35,196,232,.8); animation: waterStart .45s 1.55s ease forwards, waterPulse .65s 2s ease-in-out infinite alternate; }
.water-drop { position: absolute; top: 137px; width: 9px; height: 13px; border-radius: 60% 45% 60% 45%; background: var(--cyan); opacity: 0; transform: rotate(45deg); }
.drop-one { left: 184px; animation: waterDrop .72s 1.9s ease-in infinite; }.drop-two { left: 199px; animation: waterDrop .72s 2.25s ease-in infinite; }
.loader-brand { display:flex; flex-direction:column; align-items:center; color:#fff; }.loader-brand b { letter-spacing:.18em; }.loader-brand small { margin-top:8px; color:#89a6b7; font-size:.58rem; font-weight:800; letter-spacing:.17em; }
.loader-progress { width:210px; height:2px; overflow:hidden; background:rgba(255,255,255,.1); }.loader-progress i { display:block; width:0; height:100%; background:linear-gradient(90deg,var(--cyan),var(--orange)); animation:loaderProgress 2.25s ease forwards; }
@keyframes pipeSlideX { to { transform:none; opacity:1; } } @keyframes pipePop { to { transform:scale(1); } } @keyframes pipeSlideY { to { transform:none; opacity:1; } } @keyframes elbowFit { to { transform:none; opacity:1; } } @keyframes waterStart { to { opacity:1; width:34px; } } @keyframes waterPulse { to { transform:scaleX(.8); filter:brightness(1.3); } } @keyframes waterDrop { 0% { opacity:0; transform:translateY(-4px) rotate(45deg) scale(.5); } 18% { opacity:1; } 100% { opacity:0; transform:translateY(48px) rotate(45deg) scale(1); } } @keyframes loaderProgress { to { width:100%; } } @keyframes preloaderFailsafe { to { opacity:0; visibility:hidden; pointer-events:none; } }
.reveal { opacity:1; transform:none; }.js .reveal { opacity:0; transform:translateY(26px); transition:opacity .75s cubic-bezier(.2,.7,.2,1),transform .75s cubic-bezier(.2,.7,.2,1); }.js .reveal.delay-1 { transition-delay:.09s; }.js .reveal.delay-2 { transition-delay:.17s; }.js .reveal.delay-3 { transition-delay:.25s; }.js .reveal.is-visible { opacity:1; transform:none; }

/* rich inner pages */
.inner-layout.full { grid-template-columns:1fr; }.special-content { padding:0; border:0; background:transparent; }.special-content a { text-decoration:none; }.section-kicker { color:var(--orange); font-size:.7rem; font-weight:900; letter-spacing:.14em; text-transform:uppercase; }
.portfolio-intro,.about-lead,.blog-intro,.price-intro,.contact-intro { display:grid; grid-template-columns:1fr 1fr; gap:70px; align-items:end; margin-bottom:42px; }.portfolio-intro h2,.about-lead h2,.blog-intro h2,.price-intro h2,.contact-intro h2 { margin-top:12px; }.portfolio-intro p,.about-lead p,.blog-intro p,.price-intro p,.contact-intro p { margin:0; }
.portfolio-stats { display:grid; grid-template-columns:repeat(4,1fr); margin-bottom:22px; border-radius:10px; overflow:hidden; background:var(--navy); }.portfolio-stats div { padding:24px; border-right:1px solid rgba(255,255,255,.12); color:#fff; }.portfolio-stats div:last-child { border:0; }.portfolio-stats b,.portfolio-stats span { display:block; }.portfolio-stats b { color:var(--cyan); font-size:1.5rem; }.portfolio-stats span { margin-top:5px; color:#a9bfcc; font-size:.75rem; }
.portfolio-grid { display:grid; grid-template-columns:1fr 1fr; gap:20px; }.project-card { overflow:hidden; border:1px solid var(--line); border-radius:11px; background:#fff; transition:transform .3s,box-shadow .3s; }.project-card:hover { transform:translateY(-6px); box-shadow:0 22px 55px rgba(5,28,44,.12); }.project-image { position:relative; height:285px; display:block; overflow:hidden; }.project-image img { width:100%; height:100%; object-fit:cover; transition:transform .6s; }.project-card:hover .project-image img { transform:scale(1.04); }.project-image span { position:absolute; left:20px; top:20px; width:42px; height:42px; display:grid; place-items:center; border-radius:50%; color:#fff; background:var(--orange); font-size:.7rem; font-weight:900; }.project-body { padding:28px; }.project-body small { color:#6f8190; font-weight:700; }.project-body h2 { margin:8px 0 12px; font-size:1.65rem; }.project-body h2 a { color:var(--navy); text-decoration:none; }.project-body p { margin:0 0 18px; }.project-body ul { padding:0; list-style:none; }.project-body li { display:flex; align-items:center; gap:8px; }.project-body li svg { flex:0 0 auto; color:var(--orange); }.project-body .text-link { margin-top:8px; color:var(--navy); text-decoration:none; }
.wide-cta { margin-top:28px; padding:42px; display:flex; align-items:center; justify-content:space-between; gap:35px; border-radius:12px; color:#fff; background:var(--navy); }.wide-cta h2 { margin:9px 0; color:#fff; font-size:clamp(2rem,4vw,3.2rem); }.wide-cta p { max-width:650px; margin:0; color:#abc0ce; }.wide-cta>div:last-child { display:flex; gap:10px; flex:0 0 auto; }
.price-intro { align-items:center; }.price-intro .btn { justify-self:end; }.price-notice { margin-bottom:24px; padding:20px 24px; display:flex; align-items:center; gap:14px; border:1px solid #bdebf4; border-radius:9px; background:var(--cyan-soft); }.price-notice svg { flex:0 0 auto; color:#07829f; font-size:1.5rem; }.price-notice p { margin:0; }.price-search { display:block; margin-bottom:28px; }.price-search span { display:block; margin-bottom:8px; color:var(--navy); font-size:.78rem; font-weight:800; }.price-search input { width:100%; padding:16px 18px; border:1px solid var(--line); border-radius:9px; outline:none; background:#fff; }.price-search input:focus { border-color:var(--cyan); box-shadow:0 0 0 3px rgba(35,196,232,.12); }.price-tables h2 { margin:52px 0 17px; font-size:clamp(1.65rem,3vw,2.35rem); }.price-table-scroll { margin-bottom:22px; overflow-x:auto; border-radius:8px; background:#fff; }.price-master { min-width:720px; }.price-master tr:first-child td { color:#fff; background:var(--navy); font-size:.75rem; font-weight:900; letter-spacing:.05em; text-transform:uppercase; }.price-master td:last-child { min-width:150px; color:var(--navy); font-weight:900; white-space:nowrap; }.price-master tr:nth-child(even) td { background:#f9fbfc; }
.about-values { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin:40px 0; }.about-values article { padding:30px; border:1px solid var(--line); border-top:4px solid var(--cyan); border-radius:9px; background:#fff; }.about-values article>span { color:var(--orange); font-size:.7rem; font-weight:900; }.about-values h3 { margin-top:30px; }.about-history { padding:50px; display:grid; grid-template-columns:1fr 1fr; gap:70px; border-radius:12px; color:#fff; background:var(--navy); }.about-history h2 { color:#fff; }.about-history p { color:#acc0cd; }.about-timeline { margin:0; padding:0; list-style:none; }.about-timeline li { position:relative; padding:5px 0 28px 32px; border-left:1px solid rgba(255,255,255,.25); }.about-timeline li:before { content:""; position:absolute; left:-6px; top:7px; width:11px; height:11px; border-radius:50%; background:var(--cyan); }.about-timeline b,.about-timeline span { display:block; }.about-timeline b { color:var(--orange); }.about-timeline span { margin-top:6px; color:#c1d0d9; line-height:1.6; }.work-scope { margin-top:55px; }.scope-grid { display:grid; grid-template-columns:1fr 1fr; gap:14px; }.scope-grid a { padding:26px; display:flex; flex-direction:column; border:1px solid var(--line); border-radius:9px; background:#fff; text-decoration:none; transition:.25s; }.scope-grid a:hover { border-color:var(--cyan); transform:translateY(-3px); }.scope-grid b { color:var(--navy); font-size:1.1rem; }.scope-grid span { margin-top:7px; color:var(--muted); font-size:.85rem; }
.contact-main-links { display:grid; gap:9px; }.contact-main-links a { padding:15px 18px; display:flex; flex-direction:column; border:1px solid var(--line); border-radius:8px; background:#fff; text-decoration:none; }.contact-main-links small { color:#748595; }.contact-main-links b { margin-top:4px; color:var(--navy); font-size:1.05rem; }.address-grid { display:grid; grid-template-columns:1fr 1fr; gap:18px; }.address-card { padding:32px; border:1px solid var(--line); border-radius:10px; background:#fff; }.address-card>span { width:45px; height:45px; display:grid; place-items:center; margin-bottom:25px; border-radius:10px; color:#fff; background:var(--orange); }.address-card small { color:#6f8190; font-weight:800; }.address-card h2 { margin:8px 0 13px; font-size:1.7rem; }.address-card a { font-weight:800; }.map-section { margin-top:22px; padding:32px; border-radius:11px; background:#fff; }.map-head { display:flex; align-items:end; justify-content:space-between; gap:40px; margin-bottom:24px; }.map-head h2 { margin-top:8px; font-size:2.4rem; }.map-head p { max-width:420px; margin:0; }.map-frame { height:480px; overflow:hidden; border-radius:9px; }.map-frame iframe { width:100%; height:100%; border:0; }.contact-form-section { margin-top:22px; padding:45px; display:grid; grid-template-columns:1fr 1fr; gap:70px; align-items:center; border-radius:12px; color:#fff; background:var(--navy); }.contact-form-section h2 { color:#fff; }.contact-form-section>div>p { color:#adc0cc; }
.blog-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }.blog-card { min-height:330px; padding:28px; display:flex; flex-direction:column; border:1px solid var(--line); border-radius:10px; background:#fff; transition:.3s; }.blog-card:hover { transform:translateY(-6px); box-shadow:0 20px 50px rgba(5,28,44,.1); }.blog-card-top { display:flex; justify-content:space-between; color:var(--orange); font-size:.68rem; font-weight:900; letter-spacing:.08em; text-transform:uppercase; }.blog-card-top i { color:#9aa8b2; font-style:normal; }.blog-card h2 { margin:42px 0 14px; font-size:1.45rem; }.blog-card h2 a { color:var(--navy); text-decoration:none; }.blog-card p { margin:0; font-size:.88rem; line-height:1.65; }.blog-meta { margin-top:auto; padding-top:20px; display:flex; justify-content:space-between; border-top:1px solid var(--line); }.blog-meta time { color:#8998a4; font-size:.72rem; }.blog-meta a { display:flex; gap:6px; color:var(--navy); font-size:.75rem; font-weight:900; text-decoration:none; }

/* conversion-focused service pages */
.service-page-content { padding:0; border:0; background:transparent; }.service-page-content a { text-decoration:none; }
.service-conversion { padding:42px; display:grid; grid-template-columns:1fr 245px; gap:42px; align-items:center; border-radius:12px; background:#fff; border:1px solid var(--line); }.service-conversion h2 { margin-top:10px; }.service-conversion>div>p { margin-bottom:22px; }.service-trust { display:flex; flex-wrap:wrap; gap:10px; }.service-trust span { padding:9px 11px; display:flex; align-items:center; gap:6px; border-radius:6px; color:#405568; background:var(--paper); font-size:.72rem; font-weight:800; }.service-trust svg { color:var(--orange); }
.service-price-box { padding:26px; border-radius:9px; color:#fff; background:var(--navy); }.service-price-box small,.service-price-box b,.service-price-box p,.service-price-box a { display:block; }.service-price-box small { color:#9db3c1; font-weight:800; }.service-price-box b { margin:8px 0; color:var(--cyan); font-size:1.7rem; letter-spacing:-.04em; }.service-price-box p { color:#b6c7d1; font-size:.78rem; line-height:1.55; }.service-price-box a { margin-top:18px; color:#fff; font-size:.78rem; font-weight:900; }
.service-block,.service-process,.service-quality,.service-faq,.service-related,.service-final-cta { margin-top:20px; padding:42px; border:1px solid var(--line); border-radius:12px; background:#fff; }.service-block>h2,.service-process>h2,.service-quality h2,.service-faq>h2,.service-related>h2,.service-final-cta h2 { margin-top:10px; }
.service-work-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-top:28px; }.service-work-grid>div { padding:22px; display:grid; grid-template-columns:36px 1fr; border-radius:8px; background:var(--paper); }.service-work-grid i { grid-row:span 2; color:var(--orange); font-size:.68rem; font-style:normal; font-weight:900; }.service-work-grid b { color:var(--navy); }.service-work-grid span { margin-top:5px; color:var(--muted); font-size:.78rem; line-height:1.5; }
.service-situations { display:grid; grid-template-columns:1fr 1fr; gap:45px; align-items:center; }.service-situations>div>p { margin-bottom:0; }.service-situations ul { margin:0; padding:0; list-style:none; }.service-situations li { padding:15px 0; display:flex; align-items:center; gap:10px; border-bottom:1px solid var(--line); color:var(--navy); font-weight:800; }.service-situations li svg { flex:0 0 auto; color:var(--orange); }
.service-process ol { margin:28px 0 0; padding:0; display:grid; grid-template-columns:1fr 1fr; gap:14px; list-style:none; }.service-process li { padding:22px; display:grid; grid-template-columns:42px 1fr; gap:5px; border:1px solid var(--line); border-radius:8px; }.service-process li>span { grid-row:span 2; color:var(--cyan); font-size:.72rem; font-weight:900; }.service-process li b { color:var(--navy); }.service-process li p { margin:6px 0 0; font-size:.78rem; line-height:1.55; }
.service-quality { color:#fff; background:var(--navy); }.service-quality h2 { color:#fff; }.service-quality>div:first-child>p { color:#adc0cc; }.service-quality-list { display:grid; grid-template-columns:repeat(4,1fr); gap:1px; margin-top:28px; background:rgba(255,255,255,.13); }.service-quality-list span { padding:20px; display:flex; flex-direction:column; background:var(--navy); }.service-quality-list b { color:var(--cyan); }.service-quality-list small { margin-top:5px; color:#9db3c1; font-size:.7rem; }
.service-faq details { border-bottom:1px solid var(--line); }.service-faq summary { min-height:68px; display:flex; align-items:center; justify-content:space-between; gap:15px; color:var(--navy); font-weight:800; list-style:none; cursor:pointer; }.service-faq summary::-webkit-details-marker { display:none; }.service-faq summary span { width:30px; height:30px; display:grid; place-items:center; flex:0 0 auto; border-radius:50%; color:var(--orange); background:var(--paper); transition:transform .2s; }.service-faq details[open] summary span { transform:rotate(45deg); }.service-faq details p { margin:-2px 45px 20px 0; }
.service-related>div { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-top:25px; }.service-related a { padding:18px; display:flex; flex-direction:column; border:1px solid var(--line); border-radius:8px; transition:.25s; }.service-related a:hover { border-color:var(--cyan); transform:translateY(-2px); }.service-related a b { color:var(--navy); }.service-related a span { margin-top:7px; display:flex; align-items:center; gap:5px; color:var(--muted); font-size:.75rem; }.service-final-cta { display:flex; align-items:center; justify-content:space-between; gap:30px; color:#fff; background:linear-gradient(135deg,#0b7893,#07182b); }.service-final-cta h2 { color:#fff; }.service-final-cta p { max-width:530px; margin-bottom:0; color:#c4d8e1; }.service-final-cta .btn { flex:0 0 auto; color:#fff; }

/* reviews, faq, specialists and 404 */
.reviews-intro,.faq-page-intro,.team-intro { display:grid; grid-template-columns:1fr 1fr; gap:70px; align-items:end; margin-bottom:38px; }.reviews-intro h2,.faq-page-intro h2,.team-intro h2 { margin-top:10px; }.reviews-intro p,.faq-page-intro p,.team-intro p { margin:0; }
.reviews-summary,.team-stats { display:grid; grid-template-columns:repeat(3,1fr); margin-bottom:20px; overflow:hidden; border-radius:10px; color:#fff; background:var(--navy); }.team-stats { grid-template-columns:repeat(4,1fr); }.reviews-summary>div,.team-stats>div { padding:25px; border-right:1px solid rgba(255,255,255,.13); }.reviews-summary>div:last-child,.team-stats>div:last-child { border-right:0; }.reviews-summary b,.reviews-summary span,.team-stats b,.team-stats span { display:block; }.reviews-summary b,.team-stats b { color:var(--cyan); font-size:1.2rem; }.reviews-summary span,.team-stats span { margin-top:5px; color:#a8bdca; font-size:.72rem; line-height:1.45; }
.reviews-feed { display:grid; gap:12px; }.review-item { padding:28px; display:grid; grid-template-columns:52px 1fr; gap:20px; border:1px solid var(--line); border-radius:10px; background:#fff; }.review-avatar { width:52px; height:52px; display:grid; place-items:center; border-radius:50%; color:#fff; background:linear-gradient(135deg,var(--orange),#ff9a55); font-size:1.2rem; font-weight:900; }.review-head { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; }.review-head>div { display:flex; flex-direction:column; }.review-head b { color:var(--navy); }.review-head small { margin-top:4px; color:#81909c; }.review-head>span { padding:7px 10px; border-radius:20px; color:#386071; background:var(--cyan-soft); font-size:.7rem; font-weight:800; }.review-stars { margin-top:12px; color:#ff9b37; letter-spacing:.11em; }.review-content p { margin:12px 0 0; color:#485f70; font-size:1rem; line-height:1.75; }.review-number { margin-top:13px; color:#a1adb6; font-size:.65rem; font-weight:900; letter-spacing:.1em; text-transform:uppercase; }.review-links { margin-top:24px; padding:38px; display:grid; grid-template-columns:.8fr 1.2fr; gap:45px; border-radius:11px; background:#fff; border:1px solid var(--line); }.review-links h2 { margin-top:9px; }.review-links>div:last-child { display:grid; grid-template-columns:1fr 1fr; gap:10px; }.review-links a { padding:16px; display:flex; align-items:center; justify-content:space-between; border-radius:7px; color:var(--navy); background:var(--paper); font-weight:800; }
.faq-page-grid { display:grid; gap:18px; }.faq-group { padding:38px; border:1px solid var(--line); border-radius:11px; background:#fff; }.faq-group>h2 { margin-top:0; font-size:2rem; }.faq-group details { border-bottom:1px solid var(--line); }.faq-group details:last-child { border-bottom:0; }.faq-group summary { min-height:72px; display:flex; align-items:center; justify-content:space-between; gap:18px; color:var(--navy); font-weight:800; list-style:none; cursor:pointer; }.faq-group summary::-webkit-details-marker { display:none; }.faq-group summary span { width:31px; height:31px; display:grid; place-items:center; flex:0 0 auto; border-radius:50%; color:var(--orange); background:var(--paper); transition:transform .2s; }.faq-group details[open] summary span { transform:rotate(45deg); }.faq-group details p { margin:-2px 48px 22px 0; }.emergency-reference { margin-top:20px; padding:38px; display:grid; grid-template-columns:1.2fr .8fr; gap:55px; align-items:center; border-radius:11px; color:#fff; background:var(--navy); }.emergency-reference h2 { color:#fff; }.emergency-reference p { color:#b2c5d0; }.emergency-reference p a { color:var(--cyan); text-decoration:underline; }.emergency-links { display:grid; gap:8px; }.emergency-links a { padding:14px 16px; border-radius:7px; color:#fff; background:rgba(255,255,255,.08); font-weight:800; transition:.2s; }.emergency-links a:hover { background:rgba(255,255,255,.14); }
.competence-section { margin-top:45px; }.competence-section .section-head { display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:end; }.competence-section .section-head p { margin:0; }.competence-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }.competence-card { min-height:300px; padding:27px; display:flex; flex-direction:column; border:1px solid var(--line); border-top:4px solid var(--cyan); border-radius:9px; background:#fff; transition:.3s; }.competence-card:hover { transform:translateY(-5px); box-shadow:0 18px 45px rgba(5,28,44,.1); }.competence-card>span { color:var(--orange); font-size:.68rem; font-weight:900; }.competence-card h3 { margin:38px 0 12px; color:var(--navy); }.competence-card p { margin:0; font-size:.86rem; line-height:1.65; }.competence-card>b { margin-top:auto; display:flex; align-items:center; gap:7px; color:var(--navy); font-size:.74rem; }.team-standards { margin-top:20px; padding:45px; display:grid; grid-template-columns:1fr 1fr; gap:55px; border-radius:11px; color:#fff; background:var(--navy); }.team-standards h2 { color:#fff; }.team-standards>div>p { color:#adc0cc; }.team-standards ul { margin:0; padding:0; list-style:none; }.team-standards li { padding:13px 0; display:flex; gap:12px; border-bottom:1px solid rgba(255,255,255,.14); }.team-standards li svg { flex:0 0 auto; color:var(--cyan); }.team-standards li span,.team-standards li b { display:block; }.team-standards li span { color:#b7cad5; font-size:.8rem; line-height:1.5; }.team-standards li b { margin-bottom:3px; color:#fff; font-size:.92rem; }.team-routing { margin-top:20px; padding:40px; border:1px solid var(--line); border-radius:11px; background:#fff; }.team-routing>div { display:flex; align-items:end; justify-content:space-between; gap:30px; }.team-routing ol { margin:28px 0 0; padding:0; display:grid; grid-template-columns:repeat(4,1fr); list-style:none; }.team-routing li { padding:20px; border-left:1px solid var(--line); }.team-routing li:first-child { border-left:0; }.team-routing li b { display:block; color:var(--orange); font-size:.7rem; }.team-routing li span { display:block; margin-top:12px; color:var(--navy); font-weight:800; line-height:1.5; }
.error-page { padding:60px 35px; text-align:center; border:1px solid var(--line); border-radius:12px; background:#fff; }.error-code { display:flex; align-items:center; justify-content:center; gap:12px; color:var(--navy); font-size:clamp(5rem,14vw,9rem); font-weight:900; line-height:.8; letter-spacing:-.08em; }.error-code i { width:90px; height:90px; display:grid; place-items:center; border-radius:50%; color:var(--cyan); background:var(--navy); font-size:3.2rem; font-style:normal; }.error-page h2 { margin-top:16px; }.error-page>p { max-width:650px; margin:18px auto; }.error-actions { display:flex; justify-content:center; gap:10px; margin-top:27px; }.error-links { margin-top:20px; padding:35px; border:1px solid var(--line); border-radius:11px; background:#fff; }.error-links>h2 { margin-top:0; font-size:2rem; }.error-links>div { display:grid; grid-template-columns:1fr 1fr; gap:10px; }.error-links a { padding:20px; display:flex; flex-direction:column; border-radius:8px; background:var(--paper); }.error-links a b { color:var(--navy); }.error-links a span { margin-top:6px; color:var(--muted); font-size:.78rem; }.error-contact { margin-top:20px; padding:26px 30px; display:flex; align-items:center; justify-content:space-between; gap:25px; border-radius:11px; color:#fff; background:linear-gradient(135deg,#0b7893,var(--navy)); }.error-contact>div { display:flex; align-items:center; gap:14px; }.error-contact>div>svg { font-size:1.7rem; }.error-contact span,.error-contact b,.error-contact small { display:block; }.error-contact small { margin-top:4px; color:#c2d5de; }.error-contact>a { color:#fff; font-size:1.3rem; font-weight:900; }

@media (max-width: 1100px) {
  .desktop-nav { display: none; }.header-contact { margin-left: auto; }.mobile-toggle { display: grid; place-items: center; }.header-call { display: none; }
  .hero-inner { gap: 35px; }.hero-card-bottom { right: 5px; }.services-grid { grid-template-columns: 1fr 1fr; }.tech-grid, .cases-grid { gap: 50px; }.price-grid, .faq-grid, .contact-grid { gap: 55px; }
  .blog-grid { grid-template-columns:1fr 1fr; }.portfolio-intro,.about-lead,.blog-intro,.price-intro,.contact-intro { gap:40px; }
  .service-conversion { grid-template-columns:1fr; }.service-price-box { display:grid; grid-template-columns:1fr auto; column-gap:20px; }.service-price-box p,.service-price-box a { grid-column:1/-1; }
  .competence-grid { grid-template-columns:1fr 1fr; }.team-routing ol { grid-template-columns:1fr 1fr; }.team-routing li:nth-child(3) { border-left:0; border-top:1px solid var(--line); }.team-routing li:nth-child(4) { border-top:1px solid var(--line); }
}

@media (max-width: 800px) {
  .container { width: min(100% - 32px, 620px); }.section { padding: 78px 0; }.section h2 { font-size: clamp(2.4rem,11vw,3.8rem); }
  .topbar { display: none; }.header-main { height: 72px; }.header-contact { display: none; }.mobile-toggle { margin-left: auto; }.logo { min-width: 0; }.logo-mark { width: 39px; height: 39px; }.logo-text b { font-size: .9rem; }
  .hero { min-height: 0; padding-top: 58px; }.hero-inner { grid-template-columns: 1fr; }.hero-copy h1 { font-size: clamp(3.1rem,14vw,5rem); }.hero-lead { font-size: 1rem; }.hero-visual { height: 410px; margin-top: 15px; }.hero-image-wrap { inset: 20px 0 0 0; }.hero-card-top { left: -5px; }.pipe-line { display: none; }.quick-services { margin-top: 52px; grid-template-columns: 1fr 1fr; }.quick-services a { min-height: 68px; border-bottom: 1px solid var(--line); }
  .section-head.split { grid-template-columns: 1fr; gap: 20px; }.services-section { padding-top: 95px; }.services-grid { grid-template-columns: 1fr; }.service-card { min-height: 300px; }.service-card h3 { margin-top: 40px; }
  .tech-grid, .cases-grid, .price-grid, .faq-grid, .contact-grid { grid-template-columns: 1fr; }.tech-grid { gap: 45px; }.tech-image, .cases-image { height: 410px; }.process-grid { grid-template-columns: 1fr 1fr; gap: 35px 10px; }.process-grid:before { display: none; }.cases-grid { gap: 45px; }.cases-image { order: 2; }.price-grid { gap: 50px; }.benefits-banner { padding: 40px 28px; grid-template-columns: 1fr; gap: 35px; }.faq-grid { gap: 40px; }.contact-grid { gap: 45px; }
  .inner-hero { padding: 60px 0 68px; }.inner-layout { grid-template-columns: 1fr; }.article-content { padding: 28px; }.inner-sidebar { position: static; }.content-benefits { grid-template-columns: 1fr; }
  .portfolio-intro,.about-lead,.blog-intro,.price-intro,.contact-intro,.about-history,.contact-form-section { grid-template-columns:1fr; gap:28px; }.portfolio-stats { grid-template-columns:1fr 1fr; }.portfolio-stats div:nth-child(2) { border-right:0; }.portfolio-grid,.address-grid { grid-template-columns:1fr; }.about-values { grid-template-columns:1fr; }.wide-cta { align-items:flex-start; flex-direction:column; }.price-intro .btn { justify-self:start; }.map-head { align-items:flex-start; flex-direction:column; gap:12px; }
  .service-situations { grid-template-columns:1fr; gap:20px; }.service-quality-list { grid-template-columns:1fr 1fr; }.service-final-cta { align-items:flex-start; flex-direction:column; }
  .reviews-intro,.faq-page-intro,.team-intro,.review-links,.emergency-reference,.team-standards,.competence-section .section-head { grid-template-columns:1fr; gap:25px; }.reviews-summary { grid-template-columns:1fr; }.reviews-summary>div { border-right:0; border-bottom:1px solid rgba(255,255,255,.13); }.team-stats { grid-template-columns:1fr 1fr; }.competence-grid { grid-template-columns:1fr; }.error-contact { align-items:flex-start; flex-direction:column; }
  .footer-grid { grid-template-columns: 1fr 1fr; }.footer-grid > div:first-child { grid-column: 1 / -1; }.cookie-panel { grid-template-columns: 28px 1fr; }.cookie-panel .btn { grid-column: 1 / -1; }.floating-contacts { bottom: 18px; right: 14px; }
}

@media (max-width: 480px) {
  .container { width: calc(100% - 28px); }.hero-copy h1 { font-size: 3.15rem; }.hero-actions, .inner-actions { flex-direction: column; }.hero-actions .btn, .inner-actions .btn { width: 100%; }.hero-proof { gap: 12px 18px; }.hero-visual { height: 330px; }.hero-image-wrap { border-radius: 55px 7px 7px 7px; }.hero-card-top { padding: 12px 14px; }.hero-card-bottom { left: 14px; right: auto; bottom: 15px; }.quick-services { width: 100%; grid-template-columns: 1fr 1fr; }.quick-services a { font-size: .78rem; }.service-card { padding: 23px; }.tech-image, .cases-image { height: 330px; }.process-grid { grid-template-columns: 1fr; }.process-card { padding-right: 0; }.benefits-list { grid-template-columns: 1fr; }.price-table span { gap: 9px; font-size: .82rem; }.price-table b { font-size: .84rem; }.contact-phone { font-size: 1.75rem; }.lead-form { padding: 24px 19px; }.footer-grid { grid-template-columns: 1fr; }.footer-grid > div:first-child { grid-column: auto; }.footer-bottom { flex-direction: column; gap: 9px; }.cookie-panel { left: 12px; bottom: 12px; width: calc(100% - 24px); padding: 18px; }.cookie-panel > svg { display: none; }.cookie-panel { grid-template-columns: 1fr; }.article-content { padding: 22px 18px; }
  .special-content { padding:0; }.portfolio-stats { grid-template-columns:1fr; }.portfolio-stats div { border-right:0; border-bottom:1px solid rgba(255,255,255,.12); }.project-image { height:220px; }.project-body { padding:22px; }.wide-cta,.about-history,.map-section,.contact-form-section { padding:27px 22px; }.wide-cta>div:last-child { width:100%; flex-direction:column; }.wide-cta .btn { width:100%; }.scope-grid,.blog-grid { grid-template-columns:1fr; }.map-frame { height:360px; }.contact-main-links b { font-size:.88rem; word-break:break-word; }.loader-brand small { max-width:270px; text-align:center; line-height:1.5; }
  .service-conversion,.service-block,.service-process,.service-quality,.service-faq,.service-related,.service-final-cta { padding:27px 22px; }.service-work-grid,.service-process ol,.service-related>div { grid-template-columns:1fr; }.service-quality-list { grid-template-columns:1fr; }.service-final-cta .btn { width:100%; }.service-price-box { display:block; }
  .review-item { padding:22px 18px; grid-template-columns:40px 1fr; gap:12px; }.review-avatar { width:40px; height:40px; }.review-head { flex-direction:column; gap:8px; }.review-links,.faq-group,.emergency-reference,.team-standards,.team-routing,.error-links { padding:27px 20px; }.review-links>div:last-child,.team-stats,.team-routing ol,.error-links>div { grid-template-columns:1fr; }.team-stats>div { border-right:0; border-bottom:1px solid rgba(255,255,255,.13); }.team-routing li,.team-routing li:nth-child(3),.team-routing li:nth-child(4) { border-left:0; border-top:1px solid var(--line); }.team-routing li:first-child { border-top:0; }.error-code i { width:65px; height:65px; font-size:2.2rem; }.error-actions { flex-direction:column; }.error-actions .btn { width:100%; }.error-contact>a { font-size:1.05rem; }
}

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