.site-header{gap:28px}.header-phone{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:10px 16px;border:1px solid var(--green);background:var(--green);color:var(--paper);font-size:18px;font-weight:600;letter-spacing:-.4px;white-space:nowrap;flex-shrink:0;transition:background .2s}.header-phone svg{flex-shrink:0}.header-phone:hover{background:#123c2c}.header-phone:focus-visible{outline-offset:4px}@media(max-width:1100px){.site-header{gap:24px}.site-header nav{display:none}.header-phone{margin-left:auto}}@media(max-width:780px){.site-header{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px 12px;height:auto;padding-block:17px}.site-header .brand{grid-column:1;grid-row:1}.site-header .header-cta{grid-column:2;grid-row:1;margin-left:0}.header-phone{grid-column:1 / -1;grid-row:2;margin:0;width:100%;min-height:52px;font-size:22px;gap:12px}}@media(max-width:360px){.header-phone{font-size:20px}}

.brand-text{display:flex;flex-direction:column;gap:3px;line-height:1.2}.brand-city{display:block;color:var(--green);font-size:12px;font-weight:500;letter-spacing:.7px}.hero-location{display:inline-flex;align-items:center;gap:10px;margin-bottom:24px;padding:10px 15px;border:1px solid #194b3933;background:#e0e7dc;color:var(--green);font-size:17px;font-weight:600;line-height:1.4;letter-spacing:0}.hero-location svg{flex-shrink:0}@media(max-width:780px){.hero-location{font-size:16px;margin-bottom:22px}}@media(max-width:520px){.brand-city{font-size:11px;letter-spacing:.5px}.hero-location{font-size:14px;padding:9px 12px;gap:8px;margin-bottom:20px}}@media(max-width:360px){.hero-location{font-size:13px;padding-inline:10px;gap:7px}}
@media(max-width:360px){.filters{margin-right:-16px;padding-right:16px}}

/* Keep the main contact available while browsing. */
html{scroll-padding-top:120px}.site-header.wrap{position:sticky;top:0;z-index:30;width:100%;margin-inline:0;padding-inline:max(48px,calc((100% - 1320px)/2));background:var(--paper);box-shadow:0 5px 18px #243c2910}@media(max-width:1100px){html{scroll-padding-top:112px}.site-header.wrap{padding-inline:32px}}@media(max-width:780px){html{scroll-padding-top:calc(142px + env(safe-area-inset-top,0px))}.site-header.wrap{padding:calc(10px + env(safe-area-inset-top,0px)) 20px 10px;gap:8px 12px}}@media(max-width:360px){.site-header.wrap{padding-inline:16px}}

/* Quiet motion: short, one-time reveals and responsive controls. */
@media (prefers-reduced-motion: no-preference) {
  .hero h1, .hero-side { animation: vk-copy-in .55s cubic-bezier(.2,.7,.2,1) both; }
  .hero-side { animation-delay: .07s; }
  .hero-mosaic > * { animation: vk-tile-in .72s cubic-bezier(.2,.7,.2,1) both; }
  .hero-mosaic > :nth-child(1) { animation-delay: .06s; }
  .hero-mosaic > :nth-child(2) { animation-delay: .14s; }
  .hero-mosaic > :nth-child(3) { animation-delay: .22s; }
  .motion-on .motion-item { transition: opacity .6s cubic-bezier(.2,.7,.2,1), transform .6s cubic-bezier(.2,.7,.2,1); transition-delay: var(--reveal-delay,0ms); }
  .motion-on .motion-pending { opacity: 0; transform: translateY(18px); }
  .motion-on .motion-pending:focus-within { opacity: 1; transform: none; transition-delay: 0ms; }
  .gallery[open] { animation: vk-gallery-in .22s cubic-bezier(.2,.7,.2,1); }
  .gallery[open]::backdrop { animation: vk-backdrop-in .22s ease-out; }
  .header-cta > span, .arrow-link > span, .project-arrow, .tile-bottom > span { transition: transform .3s cubic-bezier(.2,.7,.2,1), background .25s, color .25s; }
  .gallery-thumb { transition: opacity .2s, border-color .2s; }
}
@media (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference) {
  .header-cta:hover > span, .hero-green-tile:hover .tile-bottom > span { transform: translate(3px,-3px); }
  .arrow-link:hover > span { transform: translate(3px,3px); }
  .project-button:hover .project-arrow { transform: rotate(45deg); }
}
@keyframes vk-copy-in { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }
@keyframes vk-tile-in { from { opacity: .25; transform: translateY(16px); } to { opacity: 1; transform: none; } }
@keyframes vk-gallery-in { from { opacity: 0; transform: translateY(8px) scale(.99); } to { opacity: 1; transform: none; } }
@keyframes vk-backdrop-in { from { opacity: 0; } to { opacity: 1; } }
@media (prefers-reduced-motion:reduce), print {
  .motion-on .motion-pending { opacity: 1; transform: none; }
}

/* Стрелки ↗ ↘ — текстом, а не эмодзи (iOS рисует их синими квадратиками) */
body { font-variant-emoji: text; }
