html {
  font-size: 14px;
}

@media (min-width: 768px) {
  html {
    font-size: 16px;
  }
}

.btn:focus, .btn:active:focus, .btn-link.nav-link:focus, .form-control:focus, .form-check-input:focus {
  box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem #258cfb;
}

html {
  position: relative;
  min-height: 100%;
}

html, body { height: 100%; }
body { margin: 0; min-height: 100vh; display:flex; flex-direction:column; background: #f7f7f8; color:#111; }
/* Make footer stick to bottom without extra space */
main[role="main"] { flex: 1 0 auto; }
body > .container { flex: 1 0 auto; }
footer { margin-top: auto; }

/* Yandex Travel-inspired theme */
.yatravel-nav { background: #ffd633; border-bottom: 1px solid rgba(0,0,0,.08); }
.yatravel-brand { font-weight: 800; color: #000 !important; letter-spacing: .2px; }
.yatravel-link { color: #000 !important; font-weight: 600; }
.yatravel-link:hover { color: #111 !important; }
.yatravel-btn { background:#000; color:#fff !important; border-radius: 999px; padding: .5rem 1rem; border: none; }
.yatravel-btn:hover { opacity:.9; color:#fff !important; }
.y-card { background:#fff; border: none; box-shadow: 0 6px 24px rgba(0,0,0,0.06); border-radius: 16px; padding: 1.25rem; }
.y-form { max-width: 480px; margin: 2rem auto; }

/* Buttons & inputs override */
.btn-primary, .btn-secondary { background:#000; border-color:#000; }
.btn-primary:hover, .btn-secondary:hover { background:#111; border-color:#111; }
.form-control { border-radius: 12px; border:1px solid #e6e6e6; }
.form-control:focus { border-color:#ffd633; box-shadow: 0 0 0 .2rem rgba(255,214,51,.25); }

/* Tables */
.y-table { width:100%; background:#fff; border-collapse: separate; border-spacing:0; border-radius: 16px; overflow:hidden; box-shadow: 0 6px 24px rgba(0,0,0,0.06); }
.y-table thead { background:#fff2a6; }
.y-table th, .y-table td { padding: .9rem 1rem; vertical-align: middle; }
.y-table tbody tr { border-top: 1px solid #f0f0f0; }
.y-table tbody tr:hover { background:#fffced; }

/* Alerts */
.alert-success { background:#eaffc7; border-color:#dcf7b8; color:#234400; }

/* Misc */
.page-title { font-weight:800; letter-spacing:.2px; }

/* Footer */
.yatravel-footer { background:#fff; border-top:1px solid #eee; }
.y-footer { padding: 1.2rem 0; }
.y-footer-copy { color:#777; }
.y-footer-links { align-items:center; }
.y-footer-link { color:#000; text-decoration: none; font-weight:600; }
.y-footer-link:hover { text-decoration: underline; }
