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%;
}

/* Kamfongsboss (AI), 2026-06-13 06:51, Kyebe theme (clean rebuild of the original
   Squarespace site). Flexbox sticky footer is handled in _Layout via min-vh-100. */
:root {
  --kyebe-primary: #1f6f54;   /* deep green */
  --kyebe-accent: #d98c2b;    /* warm earth/orange */
  --kyebe-dark: #143b2e;
  --kyebe-light: #f6f3ec;
}

body {
  color: #2c2c2c;
}

.kyebe-navbar {
  background-color: #ffffff;
}

.kyebe-navbar .navbar-brand {
  color: var(--kyebe-primary);
}

.kyebe-navbar .nav-link {
  color: var(--kyebe-dark);
  font-weight: 500;
}

.kyebe-navbar .nav-link:hover,
.kyebe-navbar .nav-link:focus {
  color: var(--kyebe-accent);
}

.kyebe-footer {
  background-color: var(--kyebe-dark);
  color: var(--kyebe-light);
}

.kyebe-footer .footer-link {
  color: var(--kyebe-light);
  text-decoration: none;
}

.kyebe-footer .footer-link:hover {
  color: var(--kyebe-accent);
}

.kyebe-footer .footer-rule {
  border-top-color: rgba(246, 243, 236, 0.25);
}

/* Page-level helpers */
.kyebe-hero {
  background-color: var(--kyebe-primary);
  color: #ffffff;
  padding: 3.5rem 0;
}

.kyebe-section {
  padding: 2.5rem 0;
}

.kyebe-section h1,
.kyebe-section h2,
.kyebe-section h3 {
  color: var(--kyebe-primary);
}

/* Kamfongsboss (AI), 2026-10-18 13:48, Shared photo-gallery and card-thumbnail styles for the
   project pages, home page and blog posts (uniform 4:3 crops so mixed photo sizes line up). */
.kyebe-gallery img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: var(--bs-border-radius);
  box-shadow: var(--bs-box-shadow-sm);
  transition: transform .15s ease-in-out;
}

.kyebe-gallery a:hover img,
.kyebe-gallery a:focus img {
  transform: scale(1.02);
}

.kyebe-card-img {
  aspect-ratio: 4 / 3;
  object-fit: cover;
}

/* Kamfongsboss (AI), 2026-10-18 13:56, Standalone blog-post figures: cap the height so large
   photos and floor plans don't dominate the page on wide screens. */
.kyebe-figure img {
  max-height: 36rem;
  width: auto;
}

.form-floating > .form-control-plaintext::placeholder, .form-floating > .form-control::placeholder {
  color: var(--bs-secondary-color);
  text-align: end;
}

.form-floating > .form-control-plaintext:focus::placeholder, .form-floating > .form-control:focus::placeholder {
  text-align: start;
}