/* Базовые стили: сброс, типографика, тело */
*, *::before, *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

body.l-body {
  width: 100%;
  min-width: 320px;
  font: 400 var(--font-size-base) / var(--line-height-base) var(--font-serif);
  color: var(--color-text);
  background-color: var(--color-bg);
  background-repeat: repeat;
}

::selection {
  color: var(--color-selection-text);
  background: var(--color-selection-bg);
}

a {
  color: var(--color-accent);
  text-decoration: underline;
  transition: opacity var(--transition);
}
a:hover { opacity: 0.8; }

input[type="text"],
input[type="email"],
input[type="tel"],
input[type="search"] {
  box-sizing: border-box;
  padding: var(--space-sm) var(--space-md);
  font: inherit;
  color: var(--color-text-muted);
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
  background: var(--color-bg);
  transition: border-color var(--transition);
}
input:focus {
  outline: none;
  border-color: var(--color-primary);
}

.l-notice, .l-alert {
  padding: var(--space-md);
  margin: var(--space-md);
  border-radius: var(--radius);
}
.l-notice { background: #e7f5e9; color: #2e7d32; }
.l-alert { background: #ffebee; color: #c62828; }

.l-wrapper {
  max-width: var(--width-content);
  margin: 0 auto;
  padding: 0 var(--content-padding-x, var(--space-lg));
  box-sizing: border-box;
}

.l-main {
  min-height: 50vh;
}
