* {
  box-sizing: border-box;
}

html, body {
  margin: 0;
  padding: 0;
}

body {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  line-height: 1.6;
  color: var(--color-text, #1b2645);
  background: var(--color-bg, #f4efe6);
}

/* Light design (mockup crowdware/static/landinpage2.jpg): cream background,
   navy text, orange accents, rounded panels. */
:root {
  --color-navy: #1b2645;
  --color-orange-dark: #b2532b;
  --color-muted: #4a5168;
  --shadow-soft: 0 8px 28px rgba(27, 38, 69, .08);
  --bs-primary: #c9653a;
  --bs-primary-rgb: 201, 101, 58;
}

/* Re-point Bootstrap's own color variables at the theme, so every
   Bootstrap component and text utility (cards, badges, text-*-secondary,
   borders, links, ...) follows the theme without per-component overrides. */
:root {
  --bs-body-color: var(--color-text);
  --bs-body-bg: var(--color-bg);
  --bs-secondary-color: color-mix(in srgb, var(--color-text) 75%, var(--color-bg));
  --bs-tertiary-color: color-mix(in srgb, var(--color-text) 50%, var(--color-bg));
  --bs-secondary-bg: var(--color-surface);
  --bs-tertiary-bg: var(--color-surface);
  --bs-border-color: var(--color-border);
  --bs-border-color-translucent: var(--color-border);
  --bs-link-color: var(--color-link);
  --bs-link-hover-color: var(--color-primary);
  --bs-card-color: var(--color-text);
  --bs-card-bg: var(--color-surface);
  --bs-card-border-color: var(--color-border);
  --bs-card-cap-bg: var(--color-surface);
}

a {
  color: var(--color-link, #c9653a);
  text-decoration: none;
}

a:hover {
  text-decoration: underline;
}

main a {
  color: var(--color-primary);
}

main a:hover {
  color: var(--color-orange-dark);
}

/* Bootstrap buttons in the orange accent */
.btn-primary {
  --bs-btn-bg: var(--color-primary);
  --bs-btn-border-color: var(--color-primary);
  --bs-btn-hover-bg: var(--color-orange-dark);
  --bs-btn-hover-border-color: var(--color-orange-dark);
  --bs-btn-active-bg: var(--color-orange-dark);
  --bs-btn-active-border-color: var(--color-orange-dark);
  --bs-btn-disabled-bg: var(--color-primary);
  --bs-btn-disabled-border-color: var(--color-primary);
}

/* Pages written for the old dark theme use btn-outline-light for
   secondary buttons; on the light theme they become orange outlines. */
.btn-outline-primary,
.btn-outline-light {
  --bs-btn-color: var(--color-primary);
  --bs-btn-border-color: var(--color-primary);
  --bs-btn-hover-bg: var(--color-primary);
  --bs-btn-hover-border-color: var(--color-primary);
  --bs-btn-active-bg: var(--color-primary);
  --bs-btn-active-border-color: var(--color-primary);
}

main a.btn-primary,
main a.btn-primary:hover,
main a.btn-outline-light:hover,
main a.btn-outline-primary:hover {
  color: #fff;
}

.card {
  border-radius: 14px;
  box-shadow: var(--shadow-soft);
  border-color: transparent;
}

h1, h2, h3, h4, h5, h6 {
  line-height: 1.25;
  margin: 1.25rem 0 0.75rem;
  color: var(--color-text);
}

p, ul, ol {
  margin: 0.75rem 0;
}

img {
  max-width: 100%;
  height: auto;
}

/* .lead is font-weight 300, so <strong> would only reach 400 */
.lead strong,
.lead b {
  font-weight: 700;
}

/* Website snapshots under the site links on /forgecms */
.site-snaps img {
  display: block;
  width: 100%;
  margin-top: 0.5rem;
  border: 1px solid var(--color-border);
  border-radius: 6px;
}

/* Bootstrap navbar: floating rounded panel */
.navbar {
  background: transparent !important;
  border: 0;
  padding-top: 1rem;
}

.navbar > .container {
  background: var(--color-surface);
  border-radius: 18px;
  box-shadow: var(--shadow-soft);
  padding: .8rem 1.5rem;
}

.navbar-brand img {
  height: 52px;
  width: auto;
}

.navbar-brand {
  color: var(--color-text) !important;
}

.nav-link {
  color: var(--color-text) !important;
  font-weight: 500;
}

.nav-link:hover {
  color: var(--color-primary) !important;
}

@media (min-width: 1200px) {
  .navbar .navbar-nav {
    margin-left: auto;
    margin-right: 1rem !important;
    gap: .25rem;
  }
  .navbar .nav-link,
  .navbar .btn {
    white-space: nowrap;
  }
}

@media (min-width: 1400px) {
  .navbar .navbar-nav {
    gap: .5rem;
  }
  .navbar .nav-link {
    font-size: 1.05rem;
  }
}

@media (max-width: 1199px) {
  .navbar-brand img {
    height: 40px;
  }
  .navbar .navbar-collapse form {
    margin: .5rem 0 .25rem;
  }
}

/* The global ul margin would push the menu below the language buttons */
.navbar .navbar-nav {
  margin-top: 0;
}

.navbar-toggler {
  border-color: rgba(27, 38, 69, .25);
}

.dropdown-menu {
  --bs-dropdown-bg: var(--color-surface);
  --bs-dropdown-link-color: var(--color-text);
  --bs-dropdown-link-hover-bg: #efe7da;
  --bs-dropdown-link-hover-color: var(--color-primary);
  --bs-dropdown-link-active-bg: var(--color-primary);
  --bs-dropdown-border-color: var(--color-border);
}

.navbar .btn-outline-secondary {
  color: var(--color-text);
  border-color: #d9cdbb;
}

.navbar .btn-outline-secondary.active,
.navbar .btn-outline-secondary:hover {
  background: var(--color-primary);
  border-color: var(--color-primary);
  color: #fff;
}

/* Slider */
.slider-img {
  max-height: 480px;
  object-fit: cover;
}

/* Footer */
#footer {
  border: 0;
  color: var(--color-muted);
  text-align: center;
  font-size: .9rem;
  padding: 1rem 0 2rem;
}

#footer a {
  color: var(--color-text);
}

pre, code {
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  color: var(--color-text);   /* Bootstrap's pink code colour clashes with the theme */
  background: var(--color-surface);
  border-radius: 6px;
}

code { padding: 0.1rem 0.35rem; }
pre { padding: 0.75rem; overflow-x: auto; }
pre code { padding: 0; }
/* Markdown code blocks get an inline white background from the syntax highlighter */
pre[style] { background: var(--color-surface) !important; }

/* Responsive 16:9 YouTube embed (SML: YouTube { id / url }) */
.youtube-embed {
  position: relative;
  width: 100%;
  max-width: 100%;
  aspect-ratio: 16 / 9;
  margin: 1.25rem 0;
  overflow: hidden;
  border-radius: 8px;
  background: #000;
}

.youtube-embed iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}
