/*
  Лавроза — основа и общие элементы: кнопки, фильтры, подписи, логотип.
  Источник: projects/loverosa/design. В модулях лежат копии: правьте источник и запускайте python3 design/sync.py.
  Подключать после tokens.css и до стилей модуля. Раскладку страниц здесь не описываем.
*/
*, *::before, *::after { box-sizing: border-box; }
[hidden] { display: none !important; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; background: var(--bg); color: var(--ink); font: 400 15px/1.6 var(--sans); -webkit-font-smoothing: antialiased; }
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; color: inherit; }
svg { width: 18px; height: 18px; flex: none; fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
:focus-visible { outline: 1.5px solid var(--graphite); outline-offset: 3px; }
::selection { background: var(--graphite); color: var(--accent); }
.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.muted { color: var(--muted); }
.eyebrow { margin: 0; font-size: 11px; font-weight: 600; letter-spacing: .18em; text-transform: uppercase; color: var(--muted); }
.eyebrow:empty { display: none; }
.eyebrow.light { color: rgba(255, 255, 255, .55); }

/*
  логотип: <span class="brand brand-name-line" role="img" aria-label="Соловей и Роза"></span>
  Файлы logo-*.svg и mark.svg лежат рядом с этим файлом. Логотип — маска, поэтому его цвет задаётся
  свойством color (по умолчанию цвет текста вокруг), размер — height, ширина считается сама.
  Какой вариант где — design/README.md, раздел «Логотип».
*/
.brand { display: block; flex: none; height: 24px; background-color: currentColor; -webkit-mask-position: center; mask-position: center; -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat; -webkit-mask-size: contain; mask-size: contain; }
.brand-line { aspect-ratio: 896.2 / 120.01; -webkit-mask-image: url("logo-line.svg"); mask-image: url("logo-line.svg"); }
.brand-stacked { aspect-ratio: 497.19 / 229.01; -webkit-mask-image: url("logo-stacked.svg"); mask-image: url("logo-stacked.svg"); }
.brand-name-line { aspect-ratio: 896.2 / 88.83; -webkit-mask-image: url("logo-name-line.svg"); mask-image: url("logo-name-line.svg"); }
.brand-name-stacked { aspect-ratio: 497.19 / 197.83; -webkit-mask-image: url("logo-name-stacked.svg"); mask-image: url("logo-name-stacked.svg"); }
.brand-mark { aspect-ratio: 70.64 / 72.89; -webkit-mask-image: url("mark.svg"); mask-image: url("mark.svg"); }

/* прежний логотип текстом — только там, где файл логотипа не подключён */
.logo-name { margin: 0; font: 500 27px/1 var(--serif); letter-spacing: .01em; color: var(--ink); white-space: nowrap; }
.logo-name em { font-weight: 400; color: var(--accent-deep); }
.logo-tag { font-size: 10px; font-weight: 600; letter-spacing: .24em; text-transform: uppercase; color: var(--muted); }

/* кнопки */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 50px; padding: 0 26px; border: 0; border-radius: 999px; font-size: 13px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; cursor: pointer; white-space: nowrap; transition: background .3s var(--ease), color .3s var(--ease), box-shadow .3s var(--ease), transform .2s var(--ease); }
.btn:active { transform: scale(.98); }
.btn-dark { background: var(--graphite); color: #fff; }
.btn-dark:hover { background: var(--ink); }
.btn-line { background: transparent; color: var(--graphite); box-shadow: inset 0 0 0 1px var(--graphite); }
.btn-line:hover { background: var(--graphite); color: #fff; }
.btn-light { background: #fff; color: var(--graphite); }
.btn-light:hover { background: var(--accent); }
.btn-ghost-light { background: transparent; color: #fff; box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .4); }
.btn-ghost-light:hover { background: rgba(255, 255, 255, .08); }
.btn-wide { width: 100%; }
.btn:disabled { opacity: .5; cursor: progress; }
.round { display: grid; place-items: center; width: 42px; height: 42px; border: 0; border-radius: 50%; background: transparent; color: var(--graphite); box-shadow: inset 0 0 0 1px var(--line); cursor: pointer; transition: background .25s, box-shadow .25s, color .25s; }
.round:hover { background: var(--graphite); color: #fff; box-shadow: inset 0 0 0 1px var(--graphite); }

/* фильтры-«таблетки»: выбранная — aria-pressed="true" */
.pill { flex: none; height: 38px; padding: 0 18px; border: 0; border-radius: 999px; background: transparent; box-shadow: inset 0 0 0 1px var(--line); color: var(--soft); font-size: 13px; font-weight: 500; cursor: pointer; white-space: nowrap; transition: all .25s var(--ease); }
.pill:hover { color: var(--graphite); box-shadow: inset 0 0 0 1px var(--graphite); }
.pill[aria-pressed="true"] { background: var(--graphite); color: #fff; box-shadow: none; }
.pill .count { margin-left: 6px; opacity: .6; }

/* подпись поля формы: <label class="field"><span>Имя</span><input></label> */
.field { display: grid; gap: 6px; }
.field > span { font-size: 11px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--muted); }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; }
}
