/* SITE_BUILD_V1 · NEVSKY_DS_V1 (#37 п.2, 26.09.2026 Клг) — оформление сайтов поверх дизайн-системы «Янтарь и Балтика».
   Подключается ПОСЛЕ /assets/nevsky.css (копия _сайты/бренд/система/nevsky.css, шрифт Golos Text — /assets/fonts/, без Google Fonts).
   Цвета, шрифт, радиусы, тени — ТОЛЬКО токены системы (var(--bg), var(--accent)…); своих цветов у сайтов нет.
   Акцент объекта — <body class="nv" data-object="hostel|hotel|parking"> (объекты.yaml → «акцент»). Телефон — первым. */

/* СОВМЕСТИМОСТЬ, не для сайтов: две строки ниже читают автономные потребители без nevsky.css — собрать_брендбук.py (контраст)
   и собрать_словарь_wifi.py (вход в Wi-Fi). Значения = общие токены tokens.json; расхождение ловит самотест собрать_сайт.py. */
:root{--фон:#FBF4EE;--поверхность:#FFFFFF;--текст:#2A1A0E;--приглушённый:#6E5A47;--акцент:#B34A00;--акцент-текст:#FFFFFF;--бренд:#DB5C00;--рамка:#F0E2D4;--ок:#127A47;--ошибка:#B3261E;--радиус:16px}
@media (prefers-color-scheme:dark){:root{--фон:#15100B;--поверхность:#211811;--текст:#F5E9DD;--приглушённый:#C4AD95;--акцент:#FF8A3D;--акцент-текст:#1A120B;--бренд:#FF8A3D;--рамка:#3A2B1E;--ок:#5CC48A;--ошибка:#FF8A80}}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--фон);color:var(--текст);font:16px/1.55 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Noto Sans",Arial,sans-serif}
a{color:var(--акцент)}

/* ── сайты: основа (.nv из nevsky.css задаёт фон, текст и шрифт) ── */
.nv{line-height:1.55}
.nv a{color:var(--accent-text);text-underline-offset:3px}
.обёртка{max-width:1080px;margin:0 auto;padding:0 var(--s-4)}
.шапка{background:var(--surface);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:5}
.шапка .обёртка{display:flex;flex-wrap:wrap;align-items:center;gap:8px 20px;padding-top:10px;padding-bottom:10px}
/* знак — точка nv-dot (ГАЙД: до выбора знака владельцем) */
.nv .лого{display:inline-flex;align-items:center;gap:10px;font-weight:var(--fw-place);text-decoration:none;color:var(--text);font-size:1.1rem;letter-spacing:.02em}
.лого::before{content:'';flex:none;width:10px;height:10px;border-radius:50%;background:var(--brand);box-shadow:0 0 0 4px color-mix(in srgb,var(--brand) 18%,transparent)}
.меню{display:flex;flex-wrap:wrap;gap:4px 14px;flex:1 1 auto}
.nv .меню a{text-decoration:none;color:var(--muted);font-weight:500}
.nv .меню a[aria-current]{color:var(--text);font-weight:700;box-shadow:inset 0 -2px 0 var(--accent)}
.справа{display:flex;gap:12px;align-items:center;font-size:.95rem}
.nv .тел{font-weight:700;text-decoration:none;white-space:nowrap;font-variant-numeric:tabular-nums}
.nv .языки a{text-decoration:none;color:var(--muted)}
.nv .языки a[aria-current]{color:var(--text);font-weight:700}
main{padding-top:20px;padding-bottom:40px}

/* ── типографика ── */
.nv h1{font-size:clamp(1.6rem,4.5vw,2.4rem);line-height:var(--lh-tight);font-weight:var(--fw-head);letter-spacing:-.01em;margin:.4em 0}
.nv h2{font-size:1.35rem;line-height:1.2;font-weight:var(--fw-head);margin:1.6em 0 .6em}
.nv h3,.nv .h3{font-size:1.05rem;line-height:1.25;font-weight:700;margin:0 0 .4em}
.лид{font-size:1.15rem;color:var(--muted);max-width:46em}
.герой{padding:12px 0 8px}
.мелко{font-size:.88rem;color:var(--muted)}
.шаги{padding-inline-start:1.3em}
.шаги li{margin:.3em 0}
.шаги li::marker{color:var(--accent-text);font-weight:700}

/* ── кнопки: .кнопка = nv-btn--primary (одна на экран), .кнопка.вторая = nv-btn--secondary ── */
.nv .кнопка{display:inline-flex;align-items:center;justify-content:center;min-height:var(--tap);padding:0 20px;border:0;border-radius:var(--r-btn);
  background:var(--accent);color:var(--accent-ink);font-weight:var(--fw-btn);line-height:1.2;text-decoration:none;margin:6px 8px 6px 0;transition:transform .12s ease}
.nv .кнопка:active{transform:scale(.97)}
.nv .кнопка.вторая{background:var(--surface-2);color:var(--text);border:1px solid var(--line);font-weight:650}

/* ── карточки: отделяет тень, не рамка (ГАЙД «НЕЛЬЗЯ») ── */
.сетка{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px}
.карточка,.цена{background:var(--surface);border-radius:var(--r-tile);padding:var(--s-4);box-shadow:var(--shadow)}
.цена{display:flex;flex-direction:column;gap:6px}
.цена-имя{color:var(--muted)}
.цена-сумма{font-size:1.5rem;font-weight:var(--fw-head);font-variant-numeric:tabular-nums}
.карточка .цена-сумма{font-size:1.2rem;margin:.4em 0 0}

/* ── форма заявки: карточка nv-card, поля nv-input, кнопка — основная ── */
.форма form{background:var(--surface);border-radius:var(--r-card);padding:var(--s-5) var(--s-4);box-shadow:var(--shadow);display:grid;gap:12px;max-width:560px}
.форма label{display:grid;gap:6px;font-size:.95rem;font-weight:600}
.форма input,.форма select{font:inherit;font-size:16px;font-weight:400;min-height:var(--tap);padding:10px 14px;border:1.5px solid var(--line-strong);border-radius:var(--r-field);
  background:var(--surface);color:var(--text);width:100%}
.форма input:focus,.форма select:focus{outline:3px solid color-mix(in srgb,var(--accent) 35%,transparent);outline-offset:0;border-color:var(--accent-text)}
.форма .два{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.форма .согласие{display:block;font-size:.88rem;font-weight:400}
.форма .согласие input{width:auto;min-height:0;margin-inline-end:6px;accent-color:var(--accent)}
.форма button{font:inherit;font-weight:var(--fw-head);font-size:16.5px;min-height:54px;background:var(--accent);color:var(--accent-ink);border:0;border-radius:var(--r-btn);padding:0 20px;cursor:pointer}
.форма button:active{transform:scale(.98)}
.форма button[disabled]{opacity:.55;cursor:wait}
.итог{margin:0;font-weight:600}
.итог.ок{color:var(--ok)}
.итог.ошибка{color:var(--danger)}

.подвал{border-top:1px solid var(--line);background:var(--surface);font-size:.9rem;color:var(--muted)}
.подвал .обёртка{padding-top:14px;padding-bottom:18px}
@media (max-width:520px){.форма .два{grid-template-columns:1fr}.справа{width:100%;justify-content:space-between}}
.ловушка{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;margin:-1px;padding:0;border:0}  /* без сдвига: -9999px ломал ширину страницы в rtl (ar) */
/* языки: письмо справа налево и системные шрифты (свои CJK/арабские шрифты не тащим — мегабайты), ЯЗЫКИ_МОДУЛЬ_V1 §4 */
:lang(zh) body,body:lang(zh){font-family:"PingFang SC","Microsoft YaHei","Noto Sans CJK SC","Noto Sans SC",sans-serif}
:lang(ar) body,body:lang(ar){font-family:"Geeza Pro","Noto Naskh Arabic","Segoe UI","Tahoma",sans-serif;line-height:1.7}
.тел,.цена-сумма,a[href^="tel:"]{unicode-bidi:isolate}
a[href^="tel:"]{direction:ltr;display:inline-block}  /* номер телефона всегда слева направо, и в ar */
picture img{display:block;width:100%;height:auto;border-radius:var(--r-card)}
.гид{max-width:46em}
.гид p{margin:.7em 0}
/* GUEST_PAGES_V1 (#34 п.3): кнопка «У меня есть бронь» в шапке и вопросы-ответы */
.nv .кабинет{font-weight:700;text-decoration:none;color:var(--accent-text);border:1.5px solid var(--accent-text);border-radius:var(--r-pill);padding:5px 14px;white-space:nowrap}
details{background:var(--surface);border-radius:var(--r-tile);box-shadow:var(--shadow);padding:12px 16px;margin:8px 0;max-width:46em}
summary{cursor:pointer;font-weight:700;min-height:28px}
summary::marker{color:var(--accent-text)}
details p{margin:.6em 0 0}
.итоги-брони{margin-top:16px}
.итоги-брони .кнопка{margin-inline-end:8px}
