  :root{
    --ink:#141a22; --body:#2b3642; --mut:#5a6875; --dim:#8a97a4;
    --bg:#ffffff; --bg2:#f4f6f9; --card:#ffffff; --line:#e4e9ef;
    --dark:#0e1621; --dark2:#16202c;
    --accent:#2f6bd8; --accent2:#1fa89a; --gold:#b8935a;
  }
  *{ margin:0; padding:0; box-sizing:border-box; }
  html{ scroll-behavior:smooth; }
  body{ font-family:'Helvetica Neue',Arial,sans-serif; background:var(--bg); color:var(--body); overflow-x:hidden; -webkit-font-smoothing:antialiased; }
  .serif{ font-family:Georgia,'Times New Roman',serif; }
  img{ display:block; max-width:100%; }
  .ph{ position:absolute; z-index:5; background:rgba(0,0,0,.45); color:rgba(255,255,255,.85); font-size:10px; padding:4px 9px; border-radius:3px; letter-spacing:.3px; top:14px; left:14px; }
  .photo{ position:absolute; inset:0; overflow:hidden; }
  /* снимок под градиентом-заглушкой: градиент остаётся тонировкой */
  .photo img{ position:absolute; inset:0; width:100%; height:100%;
    object-fit:cover; z-index:0; }
  .photo.has-img::before{ opacity:.34; }
  .hero .photo.has-img::before{ opacity:.5; }
  .photo::before{ content:''; position:absolute; inset:0;
    background:radial-gradient(ellipse 70% 60% at 60% 25%, rgba(47,107,216,.25), transparent 60%), linear-gradient(155deg,#12202e,#1c3348 60%,#244056); }
  .photo.p-glass::before{ background:radial-gradient(ellipse 60% 55% at 60% 30%, rgba(31,168,154,.22), transparent 58%), linear-gradient(160deg,#e8edf2,#d4dde6); }
  .photo.p-map::before{ background:linear-gradient(135deg,#dde5ec,#c4d0db); }

  /* header */
  header{ position:fixed; top:0; left:0; right:0; z-index:60; display:flex; align-items:center; justify-content:space-between; padding:20px 48px; transition:all .4s; }
  header .brand .n, header .brand .s{ transition:color .4s; }
  header:not(.scrolled) .brand .n{ color:#fff; }
  header:not(.scrolled) .brand .s{ color:rgba(255,255,255,.6); }
  header:not(.scrolled) nav a{ color:rgba(255,255,255,.85); }
  header:not(.scrolled) nav a:hover{ color:#fff; }
  header:not(.scrolled) .nphone{ color:#fff; }
  header.scrolled{ background:rgba(255,255,255,.96); backdrop-filter:blur(14px); border-bottom:1px solid var(--line); padding:14px 48px; }
  .brand{ display:flex; align-items:center; gap:12px; }
  .brand .mark{ width:38px; height:38px; display:flex; align-items:center; justify-content:center; flex:0 0 auto; }
  .brand .mark img{ width:100%; height:100%; object-fit:contain; }
  .brand .bt{ line-height:1.1; }
  .brand .bt .n{ font-size:16px; font-weight:600; letter-spacing:.3px; color:var(--ink); }
  .brand .bt .s{ font-size:10px; color:var(--dim); letter-spacing:2px; text-transform:uppercase; }
  nav{ display:flex; align-items:center; gap:28px; font-size:14px; }
  nav a{ color:var(--mut); text-decoration:none; transition:color .3s; letter-spacing:.2px; }
  nav a:hover{ color:var(--ink); }
  .nphone{ color:var(--ink); font-size:15px; font-weight:500; }
  .btn{ background:var(--accent); color:#fff; padding:12px 24px; border-radius:6px; border:none; cursor:pointer; font-size:14px; font-weight:500; letter-spacing:.3px; text-decoration:none; display:inline-block; transition:all .3s; }
  .btn:hover{ background:var(--accent2); transform:translateY(-2px); }
  .btn-ghost{ background:transparent; color:#fff; padding:12px 24px; border:1px solid rgba(255,255,255,.4); border-radius:6px; text-decoration:none; display:inline-block; font-size:14px; transition:all .3s; }
  .btn-ghost:hover{ border-color:var(--accent2); color:var(--accent2); background:rgba(255,255,255,.05); }

  /* hero — тёмный */
  .hero{ min-height:100vh; position:relative; display:flex; align-items:center; overflow:hidden; background:var(--dark); }
  .hero .photo::after{ content:''; position:absolute; inset:0; background:linear-gradient(90deg, rgba(14,22,33,.94) 0%, rgba(14,22,33,.75) 42%, rgba(14,22,33,.4) 100%); }
  .hero-grid{ position:absolute; inset:0; z-index:1; opacity:.5;
    background-image:linear-gradient(rgba(47,107,216,.08) 1px, transparent 1px), linear-gradient(90deg, rgba(47,107,216,.08) 1px, transparent 1px);
    background-size:60px 60px; mask-image:radial-gradient(ellipse 80% 80% at 30% 50%, #000, transparent 75%); }
  .hero-in{ position:relative; z-index:3; padding:120px 48px 0; max-width:1360px; margin:0 auto; width:100%; }
  .eyebrow{ display:inline-flex; align-items:center; gap:10px; font-size:13px; letter-spacing:3px; color:var(--accent2); text-transform:uppercase; margin-bottom:26px; opacity:0; animation:fu .9s .2s forwards; }
  .eyebrow::before{ content:''; width:32px; height:1px; background:var(--accent2); }
  .hero h1{ font-size:84px; line-height:1.02; font-weight:700; letter-spacing:-2px; max-width:900px; color:#fff; opacity:0; animation:fu .9s .4s forwards; }
  .hero h1 em{ font-style:normal; color:transparent; background:linear-gradient(120deg,var(--accent2),#5ec9ee); -webkit-background-clip:text; background-clip:text; }
  .hero .sub{ font-size:20px; color:rgba(255,255,255,.8); max-width:560px; margin:28px 0 40px; line-height:1.55; opacity:0; animation:fu .9s .6s forwards; }
  .hero-cta{ display:flex; gap:14px; flex-wrap:wrap; opacity:0; animation:fu .9s .8s forwards; }
  .hero-facts{ display:flex; gap:48px; margin-top:70px; flex-wrap:wrap; opacity:0; animation:fu .9s 1s forwards; padding-bottom:50px; }
  .hf .n{ font-size:40px; font-weight:700; font-family:Georgia,serif; letter-spacing:-1px; color:#fff; }
  .hf .l{ font-size:13px; color:rgba(255,255,255,.55); margin-top:4px; letter-spacing:.5px; }
  @keyframes fu{ from{opacity:0;transform:translateY(30px);} to{opacity:1;transform:translateY(0);} }

  section{ position:relative; }
  .wrap{ max-width:1280px; margin:0 auto; padding:0 48px; }
  .reveal{ opacity:0; transform:translateY(45px); transition:opacity .9s cubic-bezier(.2,.7,.2,1), transform .9s cubic-bezier(.2,.7,.2,1); }
  .reveal.in{ opacity:1; transform:translateY(0); }
  .casc>*{ opacity:0; transform:translateY(35px); transition:opacity .8s cubic-bezier(.2,.7,.2,1), transform .8s cubic-bezier(.2,.7,.2,1); }
  .casc.in>*{ opacity:1; transform:translateY(0); }
  .casc.in>*:nth-child(2){ transition-delay:.1s; } .casc.in>*:nth-child(3){ transition-delay:.2s; }
  .casc.in>*:nth-child(4){ transition-delay:.3s; } .casc.in>*:nth-child(5){ transition-delay:.4s; }
  .casc.in>*:nth-child(6){ transition-delay:.5s; }

  .sec-head{ margin-bottom:56px; }
  .sec-head .eb{ font-size:13px; letter-spacing:3px; color:var(--accent); text-transform:uppercase; margin-bottom:16px; font-weight:600; }
  .sec-head h2{ font-size:50px; font-weight:700; letter-spacing:-1.5px; line-height:1.05; max-width:760px; color:var(--ink); }
  .sec-head p{ color:var(--mut); font-size:18px; margin-top:18px; max-width:620px; line-height:1.6; }

  /* 5 задач — светлый */
  .five{ padding:120px 0; background:var(--bg); }
  .five-grid{ display:grid; grid-template-columns:repeat(5,1fr); gap:16px; }
  .fcard{ background:var(--bg2); border:1px solid var(--line); border-radius:12px; padding:28px 22px; min-height:200px; display:flex; flex-direction:column; justify-content:space-between; transition:all .4s; }
  .fcard:hover{ border-color:var(--accent2); box-shadow:0 16px 40px rgba(20,26,34,.08); transform:translateY(-6px); background:#fff; }
  .fcard .ic{ width:46px; height:46px; border-radius:10px; background:rgba(47,107,216,.08); display:flex; align-items:center; justify-content:center; font-size:22px; }
  .fcard h3{ font-size:19px; font-weight:600; margin-bottom:6px; color:var(--ink); }
  .fcard p{ font-size:13px; color:var(--mut); line-height:1.5; }

  /* один адрес — split светлый */
  .oneaddr{ padding:120px 0; background:var(--bg2); }
  .oa-grid{ display:grid; grid-template-columns:1.1fr 1fr; gap:70px; align-items:center; }
  .oa-photo{ position:relative; aspect-ratio:4/5; border-radius:16px; overflow:hidden; border:1px solid var(--line); }
  .oa-list{ margin-top:34px; }
  .oa-item{ display:flex; gap:16px; padding:20px 0; border-bottom:1px solid var(--line); }
  .oa-item:last-child{ border-bottom:none; }
  .oa-item .num{ font-family:Georgia,serif; font-size:15px; color:var(--accent); min-width:30px; font-weight:600; }
  .oa-item h4{ font-size:18px; font-weight:600; margin-bottom:4px; color:var(--ink); }
  .oa-item p{ font-size:14px; color:var(--mut); line-height:1.5; }

  /* корпоративному — светлые карточки */
  .corp{ padding:120px 0; background:var(--bg); }
  .corp-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:20px; }
  .ccard{ background:var(--bg2); border:1px solid var(--line); border-radius:14px; padding:40px; transition:all .4s; }
  .ccard:hover{ border-color:var(--accent); box-shadow:0 20px 50px rgba(20,26,34,.1); transform:translateY(-5px); background:#fff; }
  .ccard .cn{ font-family:Georgia,serif; font-size:15px; color:var(--gold); margin-bottom:18px; }
  .ccard h3{ font-size:26px; font-weight:600; margin-bottom:12px; letter-spacing:-.5px; color:var(--ink); }
  .ccard p{ color:var(--mut); font-size:15px; line-height:1.6; margin-bottom:20px; }
  .ccard ul{ list-style:none; }
  .ccard li{ font-size:14px; color:var(--body); padding:9px 0 9px 26px; position:relative; }
  .ccard li::before{ content:''; position:absolute; left:0; top:16px; width:14px; height:2px; background:var(--accent2); }

  /* параметры — тёмная вставка для акцента */
  .specs{ padding:110px 0; background:var(--dark); }
  .specs .sec-head h2{ color:#fff; }
  .specs .sec-head .eb{ color:var(--accent2); }
  .specs-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.08); border-radius:14px; overflow:hidden; }
  .spec{ background:var(--dark2); padding:40px 30px; transition:background .3s; }
  .spec:hover{ background:#1d2b3a; }
  .spec .n{ font-size:46px; font-weight:700; font-family:Georgia,serif; letter-spacing:-1px; color:#fff; }
  .spec .n span{ font-size:20px; color:var(--accent2); }
  .spec .l{ font-size:14px; color:rgba(255,255,255,.6); margin-top:8px; line-height:1.4; }

  /* сервисы — светлый */
  .serv{ padding:120px 0; background:var(--bg); }
  .serv-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
  .scard{ background:var(--bg2); border:1px solid var(--line); border-radius:12px; padding:30px; display:flex; gap:16px; align-items:flex-start; transition:all .4s; }
  .scard:hover{ border-color:var(--accent2); box-shadow:0 14px 36px rgba(20,26,34,.07); transform:translateY(-4px); background:#fff; }
  .scard .si{ font-size:24px; }
  .scard h4{ font-size:17px; font-weight:600; margin-bottom:5px; color:var(--ink); }
  .scard p{ font-size:13px; color:var(--mut); line-height:1.5; }

  /* локация */
  .loc{ padding:120px 0; background:var(--bg2); }
  .loc-grid{ display:grid; grid-template-columns:1fr 1.2fr; gap:60px; align-items:center; }
  .loc-info .li-item{ padding:22px 0; border-bottom:1px solid var(--line); }
  .loc-info .li-item:last-child{ border:none; }
  .loc-info .k{ font-size:13px; color:var(--dim); letter-spacing:1px; text-transform:uppercase; margin-bottom:6px; }
  .loc-info .v{ font-size:19px; font-weight:500; color:var(--ink); }
  .loc-map{ aspect-ratio:4/3; border-radius:16px; overflow:hidden; border:1px solid var(--line); position:relative; display:flex; align-items:center; justify-content:center; }
  .loc-map .mtext{ position:relative; z-index:3; color:var(--mut); font-size:14px; }

  /* CTA — тёмный финал */
  .cta{ padding:120px 0; background:var(--dark); position:relative; overflow:hidden; }
  .cta-grid{ display:grid; grid-template-columns:1fr 1fr; gap:70px; align-items:start; position:relative; z-index:2; }
  .cta-head{ max-width:780px; margin-bottom:44px; position:relative; z-index:2; }
  .cta h2{ font-size:48px; font-weight:700; letter-spacing:-1.5px; line-height:1.05; margin-bottom:18px; color:#fff; }
  .cta p{ color:rgba(255,255,255,.75); font-size:18px; line-height:1.6; margin-bottom:30px; }
  .cta-facts{ display:flex; gap:36px; }
  .cta-facts .n{ font-size:30px; font-weight:700; font-family:Georgia,serif; color:#fff; }
  .cta-facts .l{ font-size:13px; color:rgba(255,255,255,.55); margin-top:4px; }
  .form{ background:#fff; border-radius:16px; padding:36px; }
  .form .fr{ margin-bottom:16px; }
  .form label{ display:block; font-size:13px; color:var(--mut); margin-bottom:7px; }
  .form input, .form select, .form textarea{ width:100%; background:var(--bg2); border:1px solid var(--line); border-radius:8px; padding:13px 15px; color:var(--ink); font-size:15px; font-family:inherit; transition:border .3s; }
  .form input:focus, .form select:focus, .form textarea:focus{ outline:none; border-color:var(--accent); background:#fff; }
  .form .row{ display:grid; grid-template-columns:1fr 1fr; gap:14px; }
  .form .check{ display:flex; gap:10px; align-items:flex-start; margin:18px 0; }
  .form .check input{ width:auto; margin-top:3px; }
  .form .check label{ font-size:12px; color:var(--dim); margin:0; line-height:1.5; }
  .form button{ width:100%; padding:16px; font-size:16px; }

  footer{ background:var(--dark); padding:60px 0 34px; border-top:1px solid rgba(255,255,255,.08); }
  .footer .brand .n{ color:#fff; } .footer .brand .s{ color:rgba(255,255,255,.5); }
  .foot-grid{ display:grid; grid-template-columns:2fr 1fr 1fr; gap:40px; padding-bottom:36px; border-bottom:1px solid rgba(255,255,255,.08); }
  .foot-brand .fn{ font-size:19px; font-weight:600; margin:14px 0 8px; color:#fff; }
  .foot-brand p{ color:rgba(255,255,255,.5); font-size:14px; line-height:1.6; max-width:320px; }
  .foot-col h4{ font-size:12px; letter-spacing:2px; color:var(--accent2); text-transform:uppercase; margin-bottom:16px; }
  .foot-col a,.foot-col div{ display:block; color:rgba(255,255,255,.65); text-decoration:none; font-size:14px; margin-bottom:11px; }
  .foot-col a:hover{ color:#fff; }
  .foot-bot{ display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px; padding-top:24px; font-size:13px; color:rgba(255,255,255,.4); }

  @media(max-width:1000px){
    header,.wrap,.hero-in{ padding-left:22px; padding-right:22px; }
    nav a:not(.btn){ display:none; } .nphone{ display:none; }
    .hero h1{ font-size:46px; }
    .five-grid,.oa-grid,.corp-grid,.specs-grid,.serv-grid,.loc-grid,.cta-grid,.foot-grid{ grid-template-columns:1fr; }
    .sec-head h2,.cta h2{ font-size:32px; }
    .hero-facts{ gap:28px; }
  }

  /* === ДОБАВЛЕНО ВНЕ МАКЕТА === */
  .hp{ position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }
  .fstatus{ margin-top:12px; font-size:14px; min-height:1.2em; }
  .fstatus.ok{ color:#1fa89a; } .fstatus.err{ color:#c0392b; }
  .form.tried :invalid{ border-color:#c0392b; }
  .loc-map{ position:relative; }
  /* иконки вместо эмодзи: одинаковый вид на всех системах */
  .fcard .ic svg{ width:24px; height:24px; color:var(--accent); }
  .scard .si{ display:flex; align-items:center; justify-content:center;
    width:34px; height:34px; flex:0 0 auto; }
  .scard .si svg{ width:26px; height:26px; color:var(--accent2); }
  /* раздел с фотографиями — в стилистике остальных карточек макета */
  .gal{ padding:120px 0; background:var(--bg2); }
  .gal-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
  .gcard{ margin:0; position:relative; border-radius:12px; overflow:hidden;
    border:1px solid var(--line); background:#fff; transition:all .4s; }
  .gcard:hover{ box-shadow:0 18px 44px rgba(20,26,34,.12); transform:translateY(-5px);
    border-color:var(--accent2); }
  .gcard picture{ display:block; aspect-ratio:3/2; }
  .gcard img{ width:100%; height:100%; object-fit:cover; transition:transform .6s; }
  .gcard:hover img{ transform:scale(1.05); }
  .gcard figcaption{ position:absolute; left:0; right:0; bottom:0; padding:26px 18px 14px;
    color:#fff; font-size:14px; letter-spacing:.2px;
    background:linear-gradient(180deg, transparent, rgba(14,22,33,.82));
    text-shadow:0 1px 3px rgba(0,0,0,.5); }
  @media(max-width:1000px){ .gal-grid{ grid-template-columns:1fr; } .gal{ padding:70px 0; } }
  /* При прокрутке header.scrolled возвращал padding:14px 48px поверх
     мобильных 22px — на узком экране кнопка уезжала за край. */
  @media(max-width:1000px){
    header.scrolled{ padding-left:22px; padding-right:22px; }
    .brand .bt .n{ font-size:15px; }
    .brand .bt .s{ font-size:9px; letter-spacing:1.4px; }
    nav .btn{ padding:11px 16px; font-size:13px; }
  }
  /* На 1280 px «这里有什么» и номер телефона ломались на две строки:
     пунктам не хватало ширины, и они переносились внутри себя. Разрывать
     их нельзя — сжимаем промежутки и поля. Ниже 1000 px пункты и так
     спрятаны, поэтому полоса ограничена снизу. */
  nav a, .nphone{ white-space:nowrap; }
  @media(min-width:1001px) and (max-width:1400px){
    header, header.scrolled{ padding-left:28px; padding-right:28px; }
    nav{ gap:20px; font-size:13px; }
    .nphone{ font-size:14px; }
    nav .btn{ padding:11px 18px; font-size:13px; }
  }
  /* 1001–1150 px: одних промежутков не хватает — кнопка уезжает за правый
     край. Номер здесь прячем, как и ниже 1000 px: он остаётся в блоке
     заявки и в подвале. */
  @media(min-width:1001px) and (max-width:1150px){
    .nphone{ display:none; }
    nav{ gap:16px; }
  }
  /* === КОНЕЦ ДОБАВЛЕННОГО === */

.setznak::before{content:attr(data-znak)}.setzvod:hover .setname{color:#fff}

/* Восемь карточек по четыре в ряд: при пяти в ряд во второй строке
   оставалось пустое место на три карточки. */
.five-grid{ grid-template-columns:repeat(4,1fr); gap:20px; }
.five-grid .fcard{ padding:32px 26px; min-height:230px; }
.five-grid .fcard h3{ font-size:20px; }
@media(max-width:1100px){ .five-grid{ grid-template-columns:repeat(2,1fr); } }
@media(max-width:600px){ .five-grid{ grid-template-columns:1fr; }
  .five-grid .fcard{ min-height:0; padding:24px 20px; } }

/* Фирменный бордовый incentra.ru как акцент. База остаётся синей:
   посадочная под свою аудиторию имеет право выглядеть иначе, но
   человек, ушедший по ссылке «返回主站», должен узнать тот
   же комплекс, а не решить, что попал в чужую компанию.
   Вычитка marketer от 30.08.2026. */
:root{ --accent:#a51628; }
.btn:hover{ background:#7f1120; }
/* Подчёркивание пункта меню — тем же бордовым. */
nav a:not(.btn):not(.lang){ border-bottom:1px solid transparent; padding-bottom:2px; }
nav a:not(.btn):not(.lang):hover{ border-bottom-color:#a51628; }
/* На тёмном фоне бордовый нечитаем: ссылке в согласии — светлый тон. */
.cta .check a{ color:#f0a2ab; }

/* «通常 / здесь» двумя столбцами вместо трёх карточек: заголовок
   обещает противопоставление, а карточки были разной природы —
   две про проблему, одна про решение, и читатель не понимал, что
   перед ним. Текстовой колонке отдаём больше места, чем фотографии. */
@media(min-width:901px){ .oa-grid{ grid-template-columns:0.9fr 1.2fr; } }
.oa-cmp{ margin-top:30px; }
.oa-cmp .oa-hd, .oa-cmp .oa-r{ display:grid; grid-template-columns:1fr 1fr; gap:24px; }
.oa-cmp .oa-hd{ padding-bottom:10px; border-bottom:1px solid var(--line);
  font-size:12px; letter-spacing:2px; text-transform:uppercase; font-weight:600; }
.oa-cmp .oa-hd .h-was{ color:var(--mut); }
.oa-cmp .oa-hd .h-now{ color:var(--accent); }
.oa-cmp .oa-r{ padding:18px 0; border-bottom:1px solid var(--line); }
.oa-cmp .oa-r:last-child{ border-bottom:none; }
.oa-cmp .was{ font-size:14px; line-height:1.5; color:var(--mut); }
.oa-cmp .now{ font-size:14px; line-height:1.5; color:var(--ink); font-weight:500; }
@media(max-width:760px){
  .oa-cmp .oa-hd{ display:none; }
  .oa-cmp .oa-r{ grid-template-columns:1fr; gap:6px; }
  .oa-cmp .was::before{ content:'通常. '; font-weight:600; }
  .oa-cmp .now::before{ content:'这里. '; font-weight:600; color:var(--accent); }
}

/* Воздух между разделами. На основном сайте секции разделяет 240 px
   пустоты — 120 сверху плюс 120 снизу. Там это оправдано: разделов
   мало и они длинные. 这里 разделов девять и они короче, поэтому
   на широком экране между блоками оставался пустой экран (замечание
   владельца 04.09, скриншот 1920×1200). Первая правка до 160 px
   пустоту не убрала — владелец прислала тот же разрыв ещё раз,
   у неё окно ростом ~700 px по вёрстке. Ужимаем до 112 px и
   заодно поджимаем отступ под заголовком раздела: 56 px под ним
   складывались с отступом секции в ту же дыру.
   На телефоне исходные 120 px не переопределялись вовсе — половина
   экрана уходила в пустоту при прокрутке; ставим 40 px.
   Правка живёт только на китайской странице: index.html не трогаем. */
.five, .oneaddr, .corp, .specs, .gal, .loc, .cta{ padding:56px 0; }
.sec-head{ margin-bottom:38px; }
/* Строки контактов в подвале — каждая со своей строки: рядом
   стоящие <span> склеивались в «Отдел арендыМФК». */
.foot-col span{ display:block; }
/* Строка согласия во всплывающем окне: мелко, под кнопкой. */
.guide-consent{ margin:12px 0 0; font-size:12px; line-height:1.5;
  color:#8a95a1; }
.guide-consent a{ color:#8a95a1; }
/* Подсветка при наведении на телефоне залипала: касание оставляет
   :hover на карточке, и она стоит с красной рамкой и белым фоном,
   пока не тронешь другую. Владелец увидела это на своём экране
   05.09. Наведение — приём мыши; там, где её нет, выключаем. */
@media (hover: none) {
  .ccard:hover, .fcard:hover, .scard:hover{ border-color:var(--line);
    box-shadow:none; transform:none; background:var(--bg2); }
  .gcard:hover{ border-color:var(--line); box-shadow:none; transform:none; }
  .gcard:hover img{ transform:none; }
  .spec:hover{ background:var(--dark2); }
  .btn:hover{ background:var(--accent); transform:none; }
  .btn-ghost:hover{ border-color:var(--line); color:inherit;
    background:transparent; }
  .brand-home:hover .brand .n{ color:inherit; }
}
/* Форма на телефоне: два поля в ряд получались по 130 px, и
   подсказки обрезались до «Как к вам обраща». Ставим в столбик. */
@media(max-width:760px){
  .cta .row{ grid-template-columns:1fr; }
  /* Полоса с кнопкой прибита к низу экрана и закрывала галочку
     согласия и кнопку отправки. Оставляем ей место. */
  .cta{ padding-bottom:120px; }
}
/* Год ввода — деталь, а в заголовке 48-м кеглем он звучал как
   главное, что есть сказать о здании (разбор 05.09). */
.specs-note{ margin:14px 0 0; font-size:14px;
  color:rgba(255,255,255,.6); }
/* Девять кадров при трёх колонках — три ровных ряда. Восемь
   давали 3+3+2 и дыру справа, из-за неё переходили на четыре
   колонки; с добавлением ресепшна нужда отпала. */
/* Источник под цифрами продвижения: мелко и серым — это подпись
   к цифрам, а не ещё один довод. */
.mkt-src{ margin:-8px 0 22px; font-size:13px; color:var(--mut);
  opacity:.85; }
/* Надзаголовки карточек были бежево-золотыми по светло-серому —
   самая слабая типографика на странице. Сводим к одному приёму:
   тот же красный, кегль и разрядка, что у надзаголовков разделов.
   Бежевый со страницы уходит совсем — акцентов было четыре,
   хватает трёх (разбор 05.09). */
.cn{ font-family:inherit; font-size:12px; font-weight:600;
  letter-spacing:2px; text-transform:uppercase; color:var(--accent);
  margin-bottom:16px; }
.ccard .cn{ font-family:inherit; font-size:12px; font-weight:600;
  letter-spacing:2px; text-transform:uppercase; color:var(--accent);
  margin-bottom:16px; }
/* Вводная часть блока условий: она вне карточек, поэтому набор
   у неё как у подводки раздела, а не как у текста карточки. */
.corp-lead{ max-width:760px; margin:18px 0 0; font-size:17px;
  line-height:1.65; color:var(--mut); }
/* В столбик, а не в ряд: три пункта ложились 2+1, ряд обрывался
   и читался как сбой вёрстки (разбор 05.09). */
.corp-terms{ margin:20px 0 0; padding:0; list-style:none; }
.corp-terms li{ margin-bottom:8px; }
.corp-terms li{ position:relative; padding-left:20px; font-size:14px;
  line-height:1.5; color:var(--mut); }
.corp-terms li::before{ content:''; position:absolute; left:0; top:10px;
  width:12px; height:1px; background:var(--accent2); }
/* Заголовок раздела занимал 60% ширины, справа оставался воздух, и
   страница читалась узкой колонкой у левого края. */
/* Ограничение снято: заголовок упирался в 980 px при контейнере
   1280 и оставлял справа воздух — страница читалась узкой
   колонкой у левого края. */
.sec-head h2{ max-width:none; }
/* Карточки ряда: содержимое к верхнему краю. «Ваша команда» с
   описанием в две строки прижималась к низу и стояла ниже соседей. */
.fcard{ justify-content:flex-start; }
.five-grid, .corp-grid, .gal-grid{ align-items:stretch; }
/* Подписи на фотографиях: белым по светлому кадру не читались.
   Затемнение снизу глубже и выше. */
.gcard figcaption{ padding:40px 18px 14px;
  background:linear-gradient(180deg, transparent, rgba(14,22,33,.92)); }
/* Под кнопкой формы оставалось полтора сантиметра пустого поля. */
.cta .form{ padding-bottom:28px; }
/* Карточки в рядах выравниваем по высоте: совпадение длины
   текста — случайность, при следующей правке они разъедутся. */
.corp-grid{ align-items:stretch; }
.corp-grid > *{ height:100%; }
/* Карта была ниже колонки с адресом, и под текстом оставалось
   пустое поле (разбор 04.09). Тянем её во всю высоту колонки. */
.loc-grid{ align-items:stretch; }
.loc-map{ aspect-ratio:auto; min-height:420px; height:100%; }
/* 市场推广支持: слева снимок медиафасада, справа цифры
   и перечень. Светлый фон — блок стоит между «Средой» и тёмными
   параметрами, и третий тёмный подряд читался бы как один. */
.mkt{ padding:56px 0; background:var(--bg2); }
.mkt-lead{ max-width:720px; margin:16px 0 0; font-size:17px;
  line-height:1.65; color:var(--mut); }
.mkt-grid{ display:grid; grid-template-columns:0.9fr 1.2fr; gap:28px;
  align-items:start; }
.mkt-grid{ align-items:stretch; }
/* Снимок тянется во всю высоту колонки: перечень справа длиннее,
   и последняя строка свисала ниже фотографии (разбор 04.09). */
.mkt-photo{ height:100%; }
.mkt-photo picture{ display:block; height:100%; border-radius:12px;
  overflow:hidden; border:1px solid var(--line); }
.mkt-photo img{ width:100%; height:100%; object-fit:cover; }
.mkt-nums{ display:grid; grid-template-columns:1fr 1fr; gap:20px 26px;
  margin-bottom:26px; }
.mkt-num .n{ font-family:Georgia,serif; font-size:30px; font-weight:700;
  letter-spacing:-.5px; color:var(--ink); }
.mkt-num .l{ margin-top:4px; font-size:14px; line-height:1.5;
  color:var(--mut); }
.mkt-body h3{ font-size:19px; margin:0 0 14px; }
.mkt-body ul{ margin:0; padding:0; list-style:none; }
.mkt-body li{ position:relative; padding-left:22px; margin-bottom:10px;
  font-size:15px; line-height:1.55; }
.mkt-body li::before{ content:''; position:absolute; left:0; top:11px;
  width:12px; height:1px; background:var(--accent2); }
@media(max-width:900px){ .mkt-grid{ grid-template-columns:1fr; }
  .mkt-nums{ grid-template-columns:1fr; gap:16px; } }
/* Переключатель языков: две метки через тонкую черту.
   Текущий язык не выделен цветом ссылки — читается как
   состояние, а не как предложение перейти. */
.lang-sw{ display:inline-flex; align-items:center; gap:9px;
  font-size:14px; letter-spacing:.6px; }
.lang-sw a{ text-decoration:none; opacity:.7; }
.lang-sw a:hover{ opacity:1; }
.lang-sw a.on{ opacity:1; font-weight:600; cursor:default; }
.lang-sw a + a::before{ content:'|'; margin-right:9px;
  opacity:.35; font-weight:400; }
/* Вторая строка под логотипом в шапке: в одну линию с меню и
   кнопкой она не помещалась. Полное название осталось в подвале. */
header .brand .bt .s{ display:none; }
/* Липкая шапка перекрывала заголовок при переходе по пункту меню:
   якорь приводил к самому верху раздела, а верх был под шапкой. */
section[id]{ scroll-margin-top:96px; }
/* Контраст на тёмном. Серый --mut рассчитан на светлый фон; в
   блоке параметров и в подвале им набраны описание корпусов и
   контакты — то, ради чего страница и сделана. Осветляем. */
.specs .sec-head .korp{ color:rgba(255,255,255,.78); }
.foot-col span{ color:rgba(255,255,255,.78); font-size:14px;
  margin-bottom:11px; }
/* Оговорка к цифрам потока: это источник, а не преимущество. */
/* Снимок внутри карточки: те же поля, что у текста, и та же
   пропорция, что в галерее — иначе карточка едет по высоте. */
.ccard-pic{ display:block; margin:0 0 18px; border-radius:10px;
  overflow:hidden; aspect-ratio:3/2; }
.ccard-pic img{ width:100%; height:100%; object-fit:cover; }
.src-note{ margin:14px 0 0; font-size:13px; color:var(--mut);
  opacity:.85; }
/* Разделители под картой рисуем стилями: как текст они делали весь
   абзац одним текстовым местом, и ссылки внутри него затирались. */
.loc-links > * + *::before{ content:'·'; display:inline-block;
  margin:0 10px; color:var(--mut); text-decoration:none; }
/* Описание двух корпусов под заголовком параметров. */
.specs .sec-head .korp{ max-width:760px; margin:10px 0 0;
  font-size:16px; line-height:1.65; color:var(--mut); }
.specs .sec-head .korp:first-of-type{ margin-top:18px; }
.specs .specs-grid{ margin-top:38px; }
/* Крупные числа не помещались в колонку: «132 113 м²» и
   «10 部电梯» разваливались на две строки при любой ширине —
   полоса шириной 1280 px делится на четыре всегда одинаково.
   Уменьшаем кегль до размера, при котором строка целая. */
.specs .spec .n{ font-size:38px; }
@media(max-width:900px){ .specs .spec .n{ font-size:32px; } }
@media(max-width:760px){
  .five, .oneaddr, .corp, .specs, .gal, .loc, .cta{ padding:40px 0; }
  .sec-head{ margin-bottom:26px; }
}
@media(min-width:1001px){ .hero .sub{ max-width:450px; } }
@media(min-width:600px) and (max-width:1000px){
  .gal-grid{ grid-template-columns:repeat(2, minmax(0,1fr)); }
}
/* Узкие экраны: колонкам разрешено сжиматься. */
@media(max-width:1000px){
  .five-grid,.oa-grid,.corp-grid,.specs-grid,.serv-grid,.loc-grid,
  .cta-grid,.foot-grid,.mkt-grid{ grid-template-columns:minmax(0,1fr); }
}
@media(max-width:360px){
  header .btn{ padding:10px 13px; font-size:13px; }
}
@media(max-width:520px){
  h1, h2, h3, h4{ overflow-wrap:break-word; }
}
/* Первый экран: китайский набор держим в тёмной части снимка. */
html[lang='zh-Hans'] .hero h1{ font-size:64px; letter-spacing:0;
  line-height:1.15; max-width:6.2em; }
html[lang='zh-Hans'] .hero .sub{ max-width:420px; }
@media(min-width:1001px){
  html[lang='zh-Hans'] .hero h1{ min-height:171px; }
  html[lang='zh-Hans'] .hero .sub{ min-height:93px; }
}
html[lang='zh-Hans'] .hero .photo img{ object-position:25% center; }
html[lang='zh-Hans'] .eyebrow{ letter-spacing:1px; }
html[lang='zh-Hans'] .hf .n{ font-family:'Helvetica Neue',Arial,
  sans-serif; font-size:34px; letter-spacing:0; }
@media(max-width:1000px){
  html[lang='zh-Hans'] .hero h1{ font-size:40px; }
}
/* Первый экран: медленное приближение снимка. */
@keyframes heroZoom{ from{ transform:scale(1); }
  to{ transform:scale(1.09); } }
.hero .photo img{ transform-origin:62% 52%;
  animation:heroZoom 24s ease-out forwards; }
/* Кому движение мешает — системная настройка это говорит. */
@media(prefers-reduced-motion:reduce){
  .hero .photo img{ animation:none; } }
/* 交通 списком с маркерами. */
.loc-info .li-bul{ padding:9px 0; border-bottom:0; }
.loc-info .li-bul:first-of-type{ padding-top:22px; }
.loc-info .li-bul:last-of-type{ padding-bottom:22px; }
.loc-info .li-bul .k:empty{ display:none; }
.loc-info .li-bul .v{ position:relative; padding-left:22px; }
.loc-info .li-bul .v::before{ content:''; position:absolute; left:3px;
  top:11px; width:6px; height:6px; border-radius:50%;
  background:var(--accent2); }
/* Подвал. На узком экране — логотип, меню в два столбца, реквизиты
   столбиком. Широкий экран разбирается ниже, в @media. */
.foot-nav{ display:grid; grid-template-columns:1fr 1fr; gap:0 32px;
  align-content:start; }
.foot-nav a{ margin-bottom:0; padding:6px 0; }
footer{ padding:40px 0 26px; }
.foot-bot{ padding-top:16px; }
@media(max-width:1000px){ .foot-grid{ gap:26px; } }
@media(min-width:1001px){
  .foot-grid{ display:flex; align-items:center;
    justify-content:space-between; gap:40px; padding-bottom:24px; }
  .foot-nav{ display:flex; flex-wrap:wrap; justify-content:flex-end;
    gap:10px 26px; }
  .foot-nav a{ padding:0; }
  /* Реквизиты одной строкой, а не столбиком в три. */
  .foot-legal{ display:flex; flex-wrap:wrap; gap:2px 16px; }
  .foot-legal > div + div::before{ content:'·'; margin-right:16px;
    opacity:.55; }
}

/* Шрифты под иероглифы: без них часть знаков превращается в квадраты. */
body, .brand .n, h1, h2, h3, h4, .btn, .btn-ghost{ font-family:'PingFang SC','Hiragino Sans GB','Microsoft YaHei','Noto Sans SC','Source Han Sans SC',sans-serif; }
h1{ letter-spacing:0; line-height:1.15; }
h2, h3{ letter-spacing:0; }
/* Подпись под логотипом: правило сделано под кириллицу. */
.brand .bt .s{ font-size:13px; letter-spacing:.5px; text-transform:none; }
