:root, :root[data-theme="dark"], :root:not([data-theme="light"]) {
  color-scheme:light;
  --paper:#f7f9ff; --surface:#fff; --ink:#10234b; --ink-2:#455772;
  --line:#d9e4f5; --tint:#eef5ff; --accent:#1d46bc; --accent-ink:#fff;
  --gold:#72520a; --band:#102349; --band-2:#132e60; --hero:#132d77; --strip:#112650;
  --on-band:#fff; --on-band-2:#dce8ff; --band-gold:#ffda76; --band-blue:#9aece5;
  --band-line:#ffffff30; --band-shade:#081a4266;
  --s3:clamp(1.85rem,3.4vw,3rem);
}
.w { max-width:1290px; padding-inline:clamp(18px,4vw,44px); }
body { font-size:1.07rem; }
a:focus-visible, button:focus-visible, [tabindex]:focus-visible { outline:3px solid #16817f; outline-offset:4px; }
.hero a:focus-visible, .contacts a:focus-visible, .contacts button:focus-visible,
.topbar a:focus-visible, .strip-view:focus-visible { outline-color:#ffda76; outline-offset:-3px; }
.topbar { background:#102349; }
.topbar-in { padding-block:7px; }
.brandrow { background:#fff; color:var(--ink); }
.brandrow-in { padding-block:13px; }
.brand { color:var(--ink); gap:13px; }
.brand img { height:54px; background:#edf4ff; border-radius:9px; }
.brand-t b { font-size:clamp(.92rem,1.6vw,1.12rem); }
.brand-t span { color:var(--ink-2); }
.navbar { background:#fff; border-block:1px solid var(--line); box-shadow:0 7px 22px #132e600c; }
.nav a, .menu-btn { color:var(--ink); }
.nav a { font-family:var(--f-body); font-size:1rem; padding:13px 12px; }
.nav a:hover { color:var(--accent); box-shadow:inset 0 -3px 0 #18a89e; }
.nav a:focus-visible { outline-offset:-4px; }
.btn { min-height:46px; font-weight:700; padding-inline:20px; justify-content:center; }
.btn-p { background:var(--accent); color:white; box-shadow:0 5px 13px #0e2e6b24; }
.btn-p:hover { filter:none; background:#13379c; }
.hero { background:#112650; }
.hero-stage { background:radial-gradient(ellipse at 100% 10%,#196f93 0%,transparent 52%),linear-gradient(124deg,#102349 4%,#17347b 65%,#1c48b1); }
.hero-in { display:grid; grid-template-columns:minmax(0,1.02fr) minmax(0,1fr); align-items:center; gap:clamp(26px,4.5vw,68px); padding-block:clamp(35px,5.7vw,82px); text-align:left; }
.hero-in>div { align-items:flex-start; }
.hero .eyebrow { color:#a5f1e9; letter-spacing:.095em; }
.hero .eyebrow::before { content:""; display:inline-block; width:8px; height:8px; background:#ffda76; border-radius:50%; margin-right:10px; }
.hero h1 { font-size:clamp(2.1rem,4.05vw,4rem); letter-spacing:-.05em; line-height:1.08; margin-top:16px; text-wrap:initial; }
.hero h1 span { display:inline; font-size:inherit; color:#a5f1e9; font-weight:inherit; letter-spacing:inherit; }
.hero .lead { color:#e2edff; font-size:clamp(1.06rem,1.5vw,1.26rem); max-width:46ch; margin-top:18px; }
.hero .cta { justify-content:flex-start; gap:10px; }
.hero .btn-p,.contacts .btn-p { background:#ffda76; color:#142447; }
.hero .btn-p:hover,.contacts .btn-p:hover { background:#ffe8a7; }
.hero .btn-g { border-color:#ffffff75; }
.hero .triad { margin-top:22px; justify-content:flex-start; }
.hero .eyebrow, .hero .triad { font-size:.76rem; font-weight:700; line-height:1.4; letter-spacing:.095em; }
.hero-feature { min-height:clamp(330px,38vw,500px); align-self:stretch; margin:0; position:relative; border-radius:24px; overflow:hidden; border:1px solid #ffffff46; box-shadow:0 18px 46px #07143455; background:#112b62; isolation:isolate; }
.hero-feature img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:49% 43%; }
.hero-feature figcaption { position:absolute; inset:auto 0 0; padding:70px 22px 20px; background:linear-gradient(transparent,#071536e8); color:#fff; font-size:.98rem; }
.hero-feature figcaption b { display:block; font-size:.75rem; color:#a5f1e9; letter-spacing:.1em; text-transform:uppercase; }
.ids { background:#122d65; }
.ids dl>div { padding-block:17px; }
.ids dt { color:#a8e7e4; }
.strip { background:#eef5ff; color:var(--ink); padding-block:38px; }
.strip h2 { margin-bottom:15px; font-size:clamp(1.5rem,2.8vw,2.35rem); }
.strip-view { overflow-x:auto; scroll-snap-type:x proximity; scrollbar-width:thin; scrollbar-color:#6188ca #dce9fb; padding-bottom:11px; }
.strip-track { animation:none; gap:13px; will-change:auto; }
.strip .dup { display:none; }
.strip .shot { height:clamp(164px,22vw,245px); max-width:78vw; scroll-snap-align:start; border-radius:15px; }
.shot figcaption { text-align:left; padding:35px 13px 11px; font-family:var(--f-body); font-size:.84rem; background:linear-gradient(transparent,#071536eb); }
.strip-cap { color:var(--ink-2); text-align:left; font-size:.95rem; }
.strip-cap a { color:var(--accent); }
.sec { padding-block:clamp(45px,6vw,88px); }
.sec-bar h2,.sec-head h2,.pg h1 { letter-spacing:-.04em; text-wrap:balance; }
.sec-bar h2 { max-width:28ch; }
.eyebrow { font-weight:700; }
.tile,.card,.note { border-radius:17px; box-shadow:0 8px 26px #142b5d0b; }
a.tile:hover,a.card:hover { border-color:#3a66c7; box-shadow:0 10px 22px #163c8e20; }
#expertise .grid { counter-reset:service; gap:14px; }
#expertise .tile { counter-increment:service; border-top:3px solid #4169d6; padding:19px; background:linear-gradient(155deg,#eaf1ff 0,#fff 70%); }
#expertise .tile:nth-child(4n+2) { border-top-color:#0f8d87; background:linear-gradient(155deg,#e0f7f4 0,#fff 70%); }
#expertise .tile:nth-child(4n+3) { border-top-color:#bd861e; background:linear-gradient(155deg,#fff3d9 0,#fff 70%); }
#expertise .tile:nth-child(4n+4) { border-top-color:#795ac2; background:linear-gradient(155deg,#f0eaff 0,#fff 70%); }
#expertise .tile::before { content:counter(service, decimal-leading-zero); display:block; margin-bottom:5px; color:#254a9f; font:700 .85rem var(--f-mono); }
.card img { aspect-ratio:16/10; }
#cabinet .card img { aspect-ratio:2/1; }
#cabinet .card:first-child img { object-position:center 52%; }
#journal { background:linear-gradient(110deg,#e2f6f3,#eff3ff 65%); }
.contacts { background:radial-gradient(ellipse at 97% 0,#1b5a91,transparent 55%),linear-gradient(135deg,#11244b,#1a3a83); }
.contacts .contact-quick { margin:0 0 24px; }
.contacts .contact-quick .btn { text-decoration:none; }
.foot { border-top:1px solid var(--line); }
.pg a,.arch a { text-underline-offset:.2em; }
@media(max-width:980px) {
  .nav a { border-color:var(--line); }
  .navbar-in { position:relative; }
  .mobile-contact { margin-left:auto; font-weight:700; font-size:.95rem; }
}
@media(min-width:981px) { .mobile-contact { display:none; } }
@media(max-width:760px) {
  .hero-in { grid-template-columns:1fr; gap:24px; }
  .hero h1 { max-width:19ch; }
  .hero-feature { min-height:0; aspect-ratio:1.5; border-radius:17px; }
  .hero-feature figcaption { padding:42px 14px 12px; }
  .strip { padding-block:25px; }
}
@media(max-width:430px) {
  .hero .cta { width:100%; }
  .hero .cta .btn { width:100%; }
  .hero .triad { gap:7px; }
  .triad li+li::before { margin-right:7px; }
  .brandrow-in { gap:0; }
  .brand img { height:44px; }
  .topbar-in { column-gap:10px; }
}
@media(prefers-reduced-motion:reduce) { a.tile,a.card { transition:none; } }

.hero .hero-title {
  font-size: clamp(1.8rem, 3.45vw, 3.35rem);
  letter-spacing: -.045em;
  line-height: 1.12;
  overflow-wrap: anywhere;
}
.hero .hero-title span { display: block; margin-top: .12em; }
.hero-feature.hero-portrait {
  align-self: center;
  justify-self: center;
  width: min(100%, 410px);
  min-height: 0;
  aspect-ratio: 500 / 679;
}
.hero-feature.hero-portrait img {
  position: static;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}
@media (max-width: 760px) {
  .hero .hero-title { max-width: 24ch; font-size: clamp(1.75rem, 6vw, 2.55rem); }
  .hero-feature.hero-portrait { width: min(100%, 355px); }
}
