:root {
  --navy-950: #050e1b;
  --navy-900: #071426;
  --navy-850: #0a1a31;
  --navy-800: #0c2340;
  --blue-600: #0878e8;
  --blue-500: #0095f6;
  --cyan-400: #00a8ff;
  --yellow-400: #ffd400;
  --yellow-300: #ffe46b;
  --white: #ffffff;
  --gray-50: #f8fafc;
  --gray-100: #f1f5f9;
  --gray-200: #e2e8f0;
  --gray-500: #64748b;
  --gray-700: #334155;
  --graphite: #111827;
  --success: #25d366;
  --radius-sm: .75rem;
  --radius: 1.2rem;
  --radius-lg: 1.75rem;
  --shadow-sm: 0 8px 24px rgba(7, 20, 38, .07);
  --shadow: 0 22px 60px rgba(7, 20, 38, .12);
  --shadow-blue: 0 14px 38px rgba(8, 120, 232, .25);
  --container: 1240px;
  --header: 82px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: calc(var(--header) + 24px); }
body {
  margin: 0;
  color: var(--graphite);
  background: var(--white);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 16px;
  line-height: 1.65;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}
body.menu-open { overflow: hidden; }
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; }
button, a { -webkit-tap-highlight-color: transparent; }
button { font: inherit; }
p { margin: 0 0 1rem; }
h1, h2, h3, h4 { margin: 0; color: var(--navy-900); font-weight: 800; line-height: 1.12; letter-spacing: -.035em; text-wrap: balance; }
h1 { font-size: clamp(2.65rem, 5.8vw, 5.4rem); }
h2 { font-size: clamp(2rem, 3.6vw, 3.65rem); }
h3 { font-size: clamp(1.18rem, 1.8vw, 1.45rem); letter-spacing: -.02em; }
ul { margin: 0; padding: 0; list-style: none; }

.container { width: min(calc(100% - 40px), var(--container)); margin-inline: auto; }
.narrow { width: min(calc(100% - 40px), 850px); margin-inline: auto; }
.section { padding: clamp(76px, 9vw, 126px) 0; position: relative; }
.section--soft { background: var(--gray-50); }
.section--navy { background: var(--navy-900); color: rgba(255,255,255,.82); overflow: hidden; }
.section--navy h2, .section--navy h3 { color: var(--white); }
.section--navy::before { content:""; position:absolute; width:520px; height:520px; border-radius:50%; background:rgba(8,120,232,.18); filter:blur(10px); right:-240px; top:-260px; }
.section-head { display: grid; grid-template-columns: minmax(0, .9fr) minmax(280px, .65fr); gap: 42px; align-items: end; margin-bottom: 48px; }
.section-head > p { color: var(--gray-500); font-size: 1.08rem; max-width: 580px; margin: 0; }
.section--navy .section-head > p { color: rgba(255,255,255,.68); }
.eyebrow { display: inline-flex; align-items: center; gap: .65rem; margin-bottom: 1.15rem; color: var(--blue-600); font-size: .78rem; font-weight: 850; letter-spacing: .13em; text-transform: uppercase; }
.eyebrow::before { content:""; width: 34px; height: 3px; border-radius: 3px; background: linear-gradient(90deg, var(--yellow-400), var(--blue-600)); }
.section--navy .eyebrow { color: var(--yellow-400); }
.lead { color: var(--gray-500); font-size: clamp(1.03rem, 1.6vw, 1.22rem); max-width: 760px; }
.muted { color: var(--gray-500); }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.skip-link { position:fixed; left:16px; top:-80px; z-index:9999; background:var(--yellow-400); color:var(--navy-900); padding:.85rem 1rem; border-radius:.6rem; font-weight:800; }
.skip-link:focus { top:16px; }
:focus-visible { outline: 3px solid var(--yellow-400); outline-offset: 4px; }

.site-header { position: fixed; z-index: 1000; inset: 0 0 auto; height: var(--header); color: var(--white); background: rgba(5,14,27,.86); border-bottom: 1px solid rgba(255,255,255,.1); backdrop-filter: blur(18px); }
.nav-wrap { width:min(calc(100% - 32px), 1380px); height:100%; margin:auto; display:flex; align-items:center; gap:22px; }
.brand { display:flex; align-items:center; gap:11px; min-width:220px; }
.brand__mark { width:43px; height:43px; border-radius:13px; display:grid; place-items:center; color:var(--navy-900); background:linear-gradient(145deg,var(--yellow-300),var(--yellow-400)); box-shadow:0 8px 24px rgba(255,212,0,.22); transform:rotate(-3deg); }
.brand__mark svg { width:24px; height:24px; }
.brand__name { display:block; color:var(--white); font-size:1rem; font-weight:900; letter-spacing:-.025em; line-height:1.03; }
.brand__place { display:block; color:var(--yellow-400); font-size:.66rem; font-weight:800; text-transform:uppercase; letter-spacing:.17em; margin-top:4px; }
.main-nav { display:flex; align-items:center; justify-content:center; gap:2px; flex:1; height:100%; }
.nav-list { width:100%; height:100%; display:flex; align-items:center; justify-content:center; gap:2px; }
.menu-item { position:relative; height:100%; display:flex; align-items:center; }
.menu-link { position:relative; display:flex; align-items:center; gap:6px; height:46px; margin:0 1px; padding:0 11px; border:1px solid transparent; border-radius:11px; appearance:none; color:#eaf2fb; background:transparent; font:inherit; font-size:.82rem; font-weight:750; line-height:1; white-space:nowrap; cursor:pointer; transition:color .25s ease,background .25s ease,border-color .25s ease,transform .25s ease; }
.menu-link:hover, .menu-link:focus-visible, .menu-link[aria-current="page"] { color:var(--white); background:rgba(8,120,232,.16); border-color:rgba(0,168,255,.24); }
.menu-link:hover { transform:translateY(-1px); }
.menu-link::after { content:""; position:absolute; height:2px; left:13px; right:13px; bottom:5px; border-radius:2px; background:linear-gradient(90deg,var(--yellow-400),var(--cyan-400)); transform:scaleX(0); transform-origin:left; transition:transform .25s ease; }
.menu-link:hover::after, .menu-link[aria-current="page"]::after { transform:scaleX(1); }
.chevron { width:14px; height:14px; color:var(--yellow-400); transition:transform .2s ease; }
.submenu { position:absolute; top:calc(100% - 1px); left:50%; width:min(780px,80vw); padding:18px; border:1px solid rgba(0,168,255,.18); border-radius:0 0 20px 20px; background:rgba(7,20,38,.98); color:var(--white); box-shadow:0 24px 70px rgba(3,10,20,.42); display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:4px; opacity:0; visibility:hidden; transform:translate(-50%,-8px); transition:.2s ease; }
.submenu--compact { width:420px; grid-template-columns:1fr; }
.menu-item:hover .submenu, .menu-item:focus-within .submenu, .menu-item.is-open .submenu { opacity:1; visibility:visible; transform:translate(-50%,0); }
.menu-item:hover .chevron, .menu-item.is-open .chevron { transform:rotate(180deg); }
.submenu a { display:block; padding:10px 12px; border:1px solid transparent; border-radius:9px; color:rgba(255,255,255,.78); font-size:.82rem; font-weight:650; line-height:1.3; transition:color .2s ease,background .2s ease,border-color .2s ease; }
.submenu a:hover, .submenu a:focus-visible { color:var(--white); background:rgba(8,120,232,.18); border-color:rgba(0,168,255,.16); }
.submenu a strong { color:var(--yellow-400); }
.header-cta { display:flex; align-items:center; gap:12px; }
.header-phone { color:rgba(255,255,255,.84); font-size:.79rem; font-weight:750; white-space:nowrap; }
.header-phone small { display:block; color:rgba(255,255,255,.47); font-size:.6rem; text-transform:uppercase; letter-spacing:.1em; }
.menu-toggle { display:none; width:44px; height:44px; border:1px solid rgba(255,255,255,.18); border-radius:12px; background:rgba(255,255,255,.07); color:#fff; cursor:pointer; }
.menu-toggle span, .menu-toggle::before, .menu-toggle::after { content:""; display:block; width:20px; height:2px; margin:4px auto; border-radius:2px; background:currentColor; transition:.2s ease; }
.menu-toggle[aria-expanded="true"] span { opacity:0; }
.menu-toggle[aria-expanded="true"]::before { transform:translateY(6px) rotate(45deg); }
.menu-toggle[aria-expanded="true"]::after { transform:translateY(-6px) rotate(-45deg); }

.btn { --btn-bg:var(--blue-600); display:inline-flex; align-items:center; justify-content:center; gap:.65rem; min-height:52px; padding:.82rem 1.25rem; border:0; border-radius:.85rem; color:var(--white); background:var(--btn-bg); font-size:.89rem; font-weight:800; line-height:1.1; cursor:pointer; transition:transform .22s ease, box-shadow .22s ease, background .22s ease; }
.btn:hover { transform:translateY(-2px); box-shadow:var(--shadow-blue); }
.btn--small { min-height:44px; padding:.66rem .95rem; font-size:.78rem; }
.btn--yellow { --btn-bg:var(--yellow-400); color:var(--navy-900); }
.btn--ghost { color:var(--white); background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.24); }
.btn--line { color:var(--navy-900); background:var(--white); border:1px solid var(--gray-200); }
.btn--radiant { position:relative; overflow:hidden; background:linear-gradient(100deg,var(--blue-600),var(--cyan-400),var(--yellow-400),var(--blue-600)); background-size:250% 100%; animation:button-flow 2.8s linear infinite; }
.btn--radiant::after { content:""; position:absolute; inset:1px; border-radius:calc(.85rem - 1px); background:var(--blue-600); z-index:0; }
.btn--radiant > span, .btn--radiant > svg { position:relative; z-index:1; }
.btn svg { width:18px; height:18px; flex:0 0 auto; }
@keyframes button-flow { to { background-position:-250% 0; } }

.hero { min-height: min(940px,100svh); padding:calc(var(--header) + 82px) 0 82px; position:relative; display:flex; align-items:center; color:var(--white); background:var(--navy-950); overflow:hidden; }
.hero__media { position:absolute; inset:0; }
.hero__media img { width:100%; height:100%; object-fit:cover; object-position:center; }
.hero__media::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(5,14,27,.98) 0%,rgba(5,14,27,.92) 37%,rgba(5,14,27,.50) 66%,rgba(5,14,27,.12) 100%),linear-gradient(0deg,rgba(5,14,27,.65),transparent 42%); }
.hero__grid { position:relative; z-index:2; display:grid; grid-template-columns:minmax(0,780px) 1fr; align-items:center; gap:40px; }
.hero h1 { color:var(--white); max-width:790px; }
.radiant-text { display:inline; background:linear-gradient(100deg,var(--yellow-400) 8%,var(--white) 28%,var(--cyan-400) 48%,var(--yellow-400) 68%,var(--white) 88%); background-size:260% auto; color:transparent; -webkit-background-clip:text; background-clip:text; animation:radiant 5s ease-in-out infinite; }
@keyframes radiant { 0%,100% { background-position:100% 50%; } 50% { background-position:0 50%; } }
.hero__copy > p { max-width:690px; color:rgba(255,255,255,.74); font-size:clamp(1.05rem,1.6vw,1.24rem); margin:24px 0 31px; }
.hero__actions { display:flex; flex-wrap:wrap; gap:12px; }
.hero__contact { display:flex; flex-wrap:wrap; align-items:center; gap:24px; margin-top:26px; color:rgba(255,255,255,.68); font-size:.82rem; font-weight:700; }
.hero__contact span { display:flex; align-items:center; gap:8px; }
.hero__contact i { width:7px; height:7px; border-radius:50%; background:var(--yellow-400); box-shadow:0 0 14px var(--yellow-400); }
.hero__scroll { position:absolute; z-index:3; left:50%; bottom:25px; transform:translateX(-50%); display:flex; align-items:center; gap:10px; color:rgba(255,255,255,.48); font-size:.68rem; letter-spacing:.12em; text-transform:uppercase; }
.hero__scroll::before { content:""; width:34px; height:1px; background:rgba(255,255,255,.28); }

.trust-bar { position:relative; z-index:6; margin-top:-34px; }
.trust-grid { display:grid; grid-template-columns:repeat(4,1fr); border:1px solid var(--gray-200); border-radius:18px; background:var(--white); box-shadow:var(--shadow); overflow:hidden; }
.trust-item { min-height:94px; padding:21px 22px; display:flex; align-items:center; gap:13px; border-right:1px solid var(--gray-200); }
.trust-item:last-child { border:0; }
.trust-icon { width:42px; height:42px; border-radius:12px; display:grid; place-items:center; flex:0 0 auto; color:var(--blue-600); background:#eaf5ff; }
.trust-icon svg { width:21px; height:21px; }
.trust-item strong { display:block; color:var(--navy-900); font-size:.86rem; line-height:1.2; }
.trust-item small { display:block; color:var(--gray-500); font-size:.72rem; margin-top:4px; line-height:1.25; }

.cards { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
.cards--4 { grid-template-columns:repeat(4,minmax(0,1fr)); }
.card { position:relative; padding:28px; border:1px solid var(--gray-200); border-radius:var(--radius); background:var(--white); box-shadow:var(--shadow-sm); overflow:hidden; transition:transform .28s ease,box-shadow .28s ease,border-color .28s ease; }
.card:hover { transform:translateY(-6px); border-color:rgba(8,120,232,.25); box-shadow:var(--shadow); }
.card__number { position:absolute; right:18px; top:9px; color:var(--gray-100); font-size:4.7rem; font-weight:950; line-height:1; letter-spacing:-.08em; }
.card__icon { width:48px; height:48px; border-radius:14px; display:grid; place-items:center; margin-bottom:22px; color:var(--blue-600); background:linear-gradient(145deg,#edf7ff,#dbeeff); }
.card__icon svg { width:24px; height:24px; }
.card h3 { position:relative; margin-bottom:11px; }
.card p { position:relative; color:var(--gray-500); font-size:.91rem; margin-bottom:18px; }
.card__link { position:relative; display:inline-flex; align-items:center; gap:7px; color:var(--blue-600); font-size:.8rem; font-weight:850; }
.card__link::after { content:"→"; transition:transform .2s ease; }
.card__link:hover::after { transform:translateX(4px); }

.split { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,.9fr); gap:clamp(40px,7vw,96px); align-items:center; }
.split--reverse .split__media { order:2; }
.split__media { min-height:530px; position:relative; border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow); background:var(--gray-100); }
.split__media img { width:100%; height:100%; min-height:530px; object-fit:cover; }
.split__media::after { content:""; position:absolute; inset:auto 20px 20px auto; width:92px; height:92px; border:1px solid rgba(255,255,255,.4); border-radius:22px; background:rgba(7,20,38,.55); backdrop-filter:blur(12px); }
.split__content h2 { margin-bottom:22px; }
.split__content > p { color:var(--gray-500); font-size:1.02rem; }
.check-list { display:grid; gap:12px; margin:26px 0 30px; }
.check-list li { display:flex; gap:11px; color:var(--gray-700); font-size:.92rem; font-weight:650; }
.check-list li::before { content:"✓"; width:23px; height:23px; border-radius:50%; display:grid; place-items:center; flex:0 0 auto; color:var(--navy-900); background:var(--yellow-400); font-size:.7rem; font-weight:950; }
.inline-links { display:flex; flex-wrap:wrap; gap:9px; margin-top:24px; }
.chip { padding:.6rem .8rem; border:1px solid var(--gray-200); border-radius:999px; color:var(--gray-700); background:var(--white); font-size:.74rem; font-weight:750; transition:.2s ease; }
.chip:hover { color:var(--blue-600); border-color:var(--blue-600); }

.feature-band { padding:48px; border-radius:var(--radius-lg); background:linear-gradient(135deg,var(--navy-900),#0d2d51); color:rgba(255,255,255,.76); display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); gap:50px; align-items:center; box-shadow:var(--shadow); }
.feature-band h2 { color:var(--white); }
.feature-band p { margin:18px 0 26px; }
.feature-band__visual { position:relative; min-height:390px; border-radius:var(--radius); overflow:hidden; }
.feature-band__visual img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.feature-band__visual::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(7,20,38,.15),transparent); }

.gallery { display:flex; gap:12px; min-height:470px; }
.gallery__item { position:relative; flex:1; border-radius:var(--radius); overflow:hidden; background:var(--navy-900); transition:flex .55s cubic-bezier(.2,.75,.2,1); }
.gallery__item:hover, .gallery__item:focus-within { flex:2.4; }
.gallery__item img { width:100%; height:100%; object-fit:cover; filter:saturate(.85); transition:transform .55s ease,filter .4s ease; }
.gallery__item:hover img { transform:scale(1.03); filter:saturate(1); }
.gallery__item::after { content:""; position:absolute; inset:0; background:linear-gradient(0deg,rgba(5,14,27,.88),transparent 58%); }
.gallery__caption { position:absolute; z-index:2; left:24px; right:24px; bottom:22px; color:#fff; }
.gallery__caption strong { display:block; font-size:1rem; line-height:1.2; }
.gallery__caption span { display:block; color:rgba(255,255,255,.62); font-size:.75rem; margin-top:5px; white-space:nowrap; }

.steps { counter-reset:step; display:grid; grid-template-columns:repeat(5,1fr); gap:14px; }
.step { counter-increment:step; position:relative; padding:26px 20px; border:1px solid var(--gray-200); border-radius:var(--radius); background:var(--white); }
.step::before { content:"0" counter(step); display:block; margin-bottom:28px; color:var(--blue-600); font-size:.78rem; font-weight:900; letter-spacing:.12em; }
.step::after { content:""; position:absolute; top:38px; left:55px; right:-15px; height:1px; background:linear-gradient(90deg,var(--blue-600),var(--gray-200)); }
.step:last-child::after { display:none; }
.step h3 { font-size:1.05rem; }
.step p { color:var(--gray-500); font-size:.8rem; line-height:1.5; margin:8px 0 0; }

.faq-list { display:grid; gap:12px; }
.faq-item { border:1px solid var(--gray-200); border-radius:var(--radius-sm); background:var(--white); overflow:hidden; }
.faq-question { width:100%; min-height:66px; padding:17px 22px; display:flex; align-items:center; justify-content:space-between; gap:20px; border:0; color:var(--navy-900); background:none; text-align:left; font-weight:800; cursor:pointer; }
.faq-question::after { content:"+"; width:30px; height:30px; border-radius:50%; display:grid; place-items:center; flex:0 0 auto; color:var(--blue-600); background:#eaf5ff; font-size:1.2rem; transition:transform .2s ease; }
.faq-question[aria-expanded="true"]::after { transform:rotate(45deg); }
.faq-answer { display:grid; grid-template-rows:0fr; transition:grid-template-rows .26s ease; }
.faq-answer > div { overflow:hidden; }
.faq-answer p { padding:0 22px 20px; color:var(--gray-500); margin:0; }
.faq-item.is-open .faq-answer { grid-template-rows:1fr; }

.cta-band { position:relative; padding:54px; border-radius:var(--radius-lg); overflow:hidden; color:#fff; background:linear-gradient(120deg,var(--blue-600),#0755a0 72%); box-shadow:var(--shadow-blue); display:grid; grid-template-columns:1fr auto; gap:36px; align-items:center; }
.cta-band::before { content:""; position:absolute; width:300px; height:300px; border-radius:50%; right:14%; bottom:-220px; background:rgba(255,212,0,.18); box-shadow:0 0 80px rgba(255,212,0,.15); }
.cta-band h2 { color:#fff; font-size:clamp(1.8rem,3vw,3rem); }
.cta-band p { color:rgba(255,255,255,.75); margin:12px 0 0; max-width:700px; }
.cta-band__actions { position:relative; display:flex; gap:10px; flex-wrap:wrap; justify-content:flex-end; }

.service-hero { min-height:660px; padding:calc(var(--header) + 54px) 0 74px; position:relative; display:flex; align-items:flex-end; color:#fff; background:var(--navy-950); overflow:hidden; }
.service-hero__media { position:absolute; inset:0; }
.service-hero__media img { width:100%; height:100%; object-fit:cover; }
.service-hero__media::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(5,14,27,.98),rgba(5,14,27,.86) 43%,rgba(5,14,27,.22)),linear-gradient(0deg,rgba(5,14,27,.7),transparent 50%); }
.service-hero__content { position:relative; z-index:2; width:min(780px,100%); }
.service-hero h1 { color:#fff; font-size:clamp(2.5rem,5vw,4.65rem); }
.service-hero p { color:rgba(255,255,255,.73); font-size:1.08rem; max-width:690px; margin:22px 0 28px; }
.breadcrumbs { display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin-bottom:28px; color:rgba(255,255,255,.54); font-size:.72rem; font-weight:700; }
.breadcrumbs a:hover { color:var(--yellow-400); }
.breadcrumbs span { color:rgba(255,255,255,.32); }
.content-layout { display:grid; grid-template-columns:minmax(0,1fr) 330px; gap:70px; align-items:start; }
.article-content > section { margin-bottom:68px; }
.article-content h2 { font-size:clamp(1.75rem,3vw,2.75rem); margin-bottom:20px; }
.article-content h3 { margin-bottom:9px; }
.article-content p { color:var(--gray-700); }
.article-content a:not(.btn):not(.card__link):not(.chip) { color:var(--blue-600); font-weight:750; text-decoration:underline; text-decoration-color:rgba(8,120,232,.25); text-underline-offset:3px; }
.article-content .cards { margin-top:28px; }
.article-content .card p { color:var(--gray-500); }
.aside-card { position:sticky; top:calc(var(--header) + 24px); padding:26px; border-radius:var(--radius); color:rgba(255,255,255,.75); background:linear-gradient(145deg,var(--navy-900),#0b2848); box-shadow:var(--shadow); }
.aside-card h2 { color:#fff; font-size:1.4rem; margin-bottom:13px; }
.aside-card p { font-size:.87rem; }
.aside-card .btn { width:100%; margin-top:8px; }
.aside-card__phone { display:flex; align-items:center; gap:10px; padding:17px 0 0; margin-top:17px; border-top:1px solid rgba(255,255,255,.12); color:#fff; font-size:.9rem; font-weight:850; }
.service-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:11px; margin:28px 0; }
.service-list li { padding:14px 15px; border-left:3px solid var(--yellow-400); border-radius:0 9px 9px 0; color:var(--gray-700); background:var(--gray-50); font-size:.88rem; font-weight:650; }
.related-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
.related-link { min-height:112px; padding:19px; display:flex; flex-direction:column; justify-content:space-between; border:1px solid var(--gray-200); border-radius:var(--radius-sm); background:#fff; transition:.25s ease; }
.related-link:hover { color:var(--blue-600); transform:translateY(-3px); border-color:rgba(8,120,232,.38); box-shadow:var(--shadow-sm); }
.related-link strong { font-size:.87rem; line-height:1.3; }
.related-link span { color:var(--gray-500); font-size:.68rem; font-weight:700; }

.all-services { columns:4 220px; column-gap:22px; }
.all-services__group { break-inside:avoid; padding:20px; margin:0 0 18px; border:1px solid var(--gray-200); border-radius:var(--radius-sm); background:#fff; }
.all-services__group h2 { font-size:1.08rem; margin-bottom:12px; }
.all-services__group ul { display:grid; gap:7px; }
.all-services__group a { color:var(--gray-700); font-size:.78rem; line-height:1.35; }
.all-services__group a:hover { color:var(--blue-600); }
.contact-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.contact-card { padding:34px; border:1px solid var(--gray-200); border-radius:var(--radius); background:#fff; box-shadow:var(--shadow-sm); }
.contact-card .card__icon { margin-bottom:20px; }
.contact-card p { color:var(--gray-500); }

.site-footer { padding:74px 0 28px; color:rgba(255,255,255,.64); background:var(--navy-950); }
.footer-grid { display:grid; grid-template-columns:1.35fr repeat(4,1fr); gap:42px; padding-bottom:48px; }
.footer-about { max-width:310px; }
.footer-about p { font-size:.84rem; margin-top:20px; }
.footer-col h2 { color:#fff; font-size:.87rem; letter-spacing:0; margin-bottom:16px; }
.footer-col ul { display:grid; gap:9px; }
.footer-col a { font-size:.76rem; line-height:1.35; transition:color .2s ease; }
.footer-col a:hover { color:var(--yellow-400); }
.footer-bottom { padding-top:24px; border-top:1px solid rgba(255,255,255,.1); display:flex; justify-content:space-between; gap:30px; font-size:.7rem; }
.footer-bottom a { color:var(--yellow-400); }

.whatsapp-float { position:fixed; z-index:950; right:22px; bottom:22px; width:58px; height:58px; border-radius:50%; display:grid; place-items:center; color:#fff; background:var(--success); box-shadow:0 12px 30px rgba(37,211,102,.36); transition:transform .2s ease; }
.whatsapp-float:hover { transform:translateY(-3px) scale(1.03); }
.whatsapp-float svg { width:29px; height:29px; }
.mobile-actions { display:none; }

.reveal { opacity:0; transform:translateY(24px); transition:opacity .7s ease,transform .7s ease; }
.reveal.is-visible { opacity:1; transform:none; }
.reveal[data-delay="1"] { transition-delay:.08s; }
.reveal[data-delay="2"] { transition-delay:.16s; }
.reveal[data-delay="3"] { transition-delay:.24s; }

@media (max-width: 1180px) {
  .header-phone { display:none; }
  .main-nav { gap:0; }
  .menu-link { padding-inline:7px; font-size:.77rem; }
  .brand { min-width:205px; }
  .cards--4 { grid-template-columns:repeat(2,1fr); }
  .footer-grid { grid-template-columns:1.2fr repeat(2,1fr); }
}

@media (max-width: 1120px) {
  :root { --header:72px; }
  .container,.narrow { width:min(calc(100% - 30px),var(--container)); }
  .site-header { height:var(--header); }
  .nav-wrap { width:calc(100% - 24px); }
  .brand { min-width:0; flex:1; }
  .brand__mark { width:40px; height:40px; }
  .header-cta .btn { display:none; }
  .menu-toggle { display:block; }
  .main-nav { position:fixed; top:var(--header); right:0; bottom:0; left:0; width:100%; height:calc(100vh - var(--header)); height:calc(100dvh - var(--header)); max-height:calc(100vh - var(--header)); max-height:calc(100dvh - var(--header)); padding:14px 16px 120px; display:block; overflow-x:hidden; overflow-y:auto; overscroll-behavior:contain; -webkit-overflow-scrolling:touch; background:var(--navy-950); transform:translateX(100%); transition:transform .28s ease; }
  .nav-list { width:100%; height:auto; min-height:max-content; display:block; }
  .main-nav.is-open { transform:none; }
  .menu-item { height:auto; display:block; border-bottom:1px solid rgba(255,255,255,.1); }
  .menu-link { width:100%; min-height:56px; margin:0; padding:0 8px; justify-content:space-between; border:0; border-radius:0; font-size:.92rem; }
  .menu-link:hover, .menu-link:focus-visible, .menu-link[aria-current="page"] { background:rgba(8,120,232,.12); }
  .menu-link::after { display:none; }
  .submenu { position:static; width:100%; max-height:0; padding:0; grid-template-columns:1fr; border-radius:10px; background:rgba(255,255,255,.05); color:#fff; box-shadow:none; overflow:hidden; opacity:1; visibility:visible; transform:none; transition:max-height .3s ease,padding .3s ease; }
  .menu-item.is-open .submenu { max-height:2000px; padding:8px; transform:none; }
  .submenu a { color:rgba(255,255,255,.72); }
  .submenu a:hover { color:#fff; background:rgba(255,255,255,.06); }
  .section-head { grid-template-columns:1fr; gap:16px; }
  .hero { min-height:790px; }
  .hero__grid { grid-template-columns:1fr; }
  .hero__media::after { background:linear-gradient(90deg,rgba(5,14,27,.96),rgba(5,14,27,.72)),linear-gradient(0deg,rgba(5,14,27,.82),transparent); }
  .trust-grid { grid-template-columns:repeat(2,1fr); }
  .trust-item:nth-child(2) { border-right:0; }
  .trust-item:nth-child(-n+2) { border-bottom:1px solid var(--gray-200); }
  .cards { grid-template-columns:repeat(2,1fr); }
  .split { grid-template-columns:1fr; }
  .split--reverse .split__media { order:0; }
  .feature-band { grid-template-columns:1fr; }
  .steps { grid-template-columns:repeat(2,1fr); }
  .step::after { display:none; }
  .content-layout { grid-template-columns:1fr; gap:42px; }
  .aside-card { position:relative; top:0; }
  .footer-grid { grid-template-columns:repeat(2,1fr); }
  .footer-about { max-width:none; grid-column:1/-1; }
}

@media (max-width: 680px) {
  body { padding-bottom:calc(66px + env(safe-area-inset-bottom, 0px)); }
  h1 { font-size:clamp(2.35rem,11.5vw,3.55rem); }
  h2 { font-size:clamp(1.85rem,9vw,2.75rem); }
  .section { padding:68px 0; }
  .brand__name { font-size:.91rem; }
  .brand__place { font-size:.57rem; }
  .hero { min-height:770px; padding-top:calc(var(--header) + 64px); }
  .hero__media img { object-position:62% center; }
  .hero__media::after { background:linear-gradient(90deg,rgba(5,14,27,.98),rgba(5,14,27,.78)),linear-gradient(0deg,rgba(5,14,27,.92),transparent 60%); }
  .hero__actions,.service-hero .hero__actions { display:grid; grid-template-columns:1fr; }
  .hero__actions .btn,.service-hero .btn { width:100%; }
  .hero__contact { gap:10px; align-items:flex-start; flex-direction:column; }
  .hero__scroll { display:none; }
  .trust-bar { margin-top:-18px; }
  .trust-grid { grid-template-columns:1fr; }
  .trust-item { min-height:78px; border-right:0; border-bottom:1px solid var(--gray-200); }
  .trust-item:nth-child(2) { border-bottom:1px solid var(--gray-200); }
  .cards,.cards--4,.related-grid,.contact-grid { grid-template-columns:1fr; }
  .card { padding:25px; }
  .split__media,.split__media img { min-height:390px; }
  .feature-band { padding:26px; }
  .feature-band__visual { min-height:330px; }
  .gallery { display:grid; min-height:0; }
  .gallery__item,.gallery__item:hover { min-height:270px; flex:auto; }
  .gallery__caption span { white-space:normal; }
  .steps { grid-template-columns:1fr; }
  .cta-band { padding:34px 25px; grid-template-columns:1fr; }
  .cta-band__actions { justify-content:stretch; display:grid; }
  .service-hero { min-height:640px; }
  .service-hero__media img { object-position:62% center; }
  .service-list { grid-template-columns:1fr; }
  .all-services { columns:1; }
  .footer-grid { grid-template-columns:1fr; }
  .footer-about { grid-column:auto; }
  .footer-bottom { flex-direction:column; }
  .whatsapp-float { display:none; }
  .mobile-actions { position:fixed; z-index:980; inset:auto 0 0; min-height:66px; display:grid; grid-template-columns:1.15fr 1fr; align-items:stretch; padding:7px 10px calc(7px + env(safe-area-inset-bottom, 0px)); gap:8px; background:rgba(5,14,27,.96); border-top:1px solid rgba(255,255,255,.12); box-shadow:0 -8px 26px rgba(5,14,27,.18); backdrop-filter:blur(16px); }
  .mobile-actions a { min-width:0; min-height:52px; padding:0 10px; display:flex; align-items:center; justify-content:center; gap:8px; overflow:hidden; border-radius:10px; color:#fff; background:var(--success); font-size:.82rem; font-weight:850; line-height:1; white-space:nowrap; }
  .mobile-actions svg { width:20px; height:20px; flex:0 0 20px; }
  .mobile-actions a:last-child { color:var(--navy-900); background:var(--yellow-400); }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; }
  .reveal { opacity:1; transform:none; }
}
