/* Metaltest site styles — Bootstrap 5.3 overrides (single file) */
@font-face {
  font-family: "Open Sans";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/open-sans/open-sans-latin-400-normal.woff2") format("woff2");
}
@font-face {
  font-family: "Open Sans";
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/open-sans/open-sans-latin-400-italic.woff2") format("woff2");
}
@font-face {
  font-family: "Open Sans";
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("../fonts/open-sans/open-sans-latin-600-normal.woff2") format("woff2");
}
@font-face {
  font-family: "Open Sans";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../fonts/open-sans/open-sans-latin-700-normal.woff2") format("woff2");
}

:root {
  --mt-bronze: #cc9757;
  --mt-bronze-dark: #b8844a;
  --mt-accent: #0e9cd1;
  --mt-accent-dark: #0d8ab9;
  --mt-ink: #222222;
  --mt-muted: #4a4a4a;
  --mt-topbar: #2b2f3b;
  --mt-footer: #2b2f3b;
  --bs-body-font-family: "Open Sans", system-ui, sans-serif;
  --bs-body-font-weight: 400;
  --bs-body-color: var(--mt-ink);
  --bs-link-color: var(--mt-bronze);
  --bs-link-hover-color: var(--mt-accent);
  --bs-primary: var(--mt-bronze);
  --bs-primary-rgb: 204, 151, 87;
}

html { font-size: 100%; }
body {
  font-weight: 400;
  color: var(--mt-ink);
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}
p, li, td, th { font-size: 1rem; }
/* Contrast fix: muted text on light backgrounds only (not .small — that broke the dark top bar) */
.text-muted, .form-text { color: var(--mt-muted) !important; }

a { text-decoration: none; }
a:hover { text-decoration: underline; }

.top-bar {
  background: var(--mt-topbar);
  color: #f5f5f5;
}
.top-bar .top-bar-contacts,
.top-bar .top-bar-contacts li,
.top-bar .small {
  color: #f5f5f5 !important;
}
.top-bar a { color: #ffffff !important; }
.top-bar a:hover { color: var(--mt-bronze) !important; text-decoration: none; }
.top-bar .fa-solid, .top-bar .fa-regular { color: var(--mt-bronze); margin-right: 0.35rem; }

.site-logo { max-height: 3.5rem; width: auto; }
.navbar .nav-link {
  font-weight: 600;
  color: var(--mt-ink);
  padding: 0.65rem 0.85rem;
}
.navbar .nav-link:hover,
.navbar .nav-link.active { color: var(--mt-bronze); }
.dropdown-item:active,
.dropdown-item:focus { background: rgba(204, 151, 87, 0.12); color: var(--mt-ink); }
.nav-l3 .dropdown-item { color: var(--mt-muted); }

.btn-primary {
  --bs-btn-bg: var(--mt-bronze);
  --bs-btn-border-color: var(--mt-bronze);
  --bs-btn-hover-bg: var(--mt-accent);
  --bs-btn-hover-border-color: var(--mt-accent-dark);
  --bs-btn-active-bg: var(--mt-accent-dark);
  --bs-btn-active-border-color: var(--mt-accent-dark);
  font-weight: 600;
}

/* Hero / carousel */
.hero-carousel { opacity: 1 !important; } /* never hide behind .animate-in / GSAP */
.hero-carousel .carousel-item { transition: transform 0.8s ease-in-out; }
.hero {
  position: relative;
  min-height: min(70vh, 32rem);
  display: flex;
  align-items: center;
  color: #fff;
  background: #1a1d24 center/cover no-repeat;
}
.hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(105deg, rgba(26, 29, 36, 0.82) 0%, rgba(26, 29, 36, 0.45) 55%, rgba(26, 29, 36, 0.25) 100%);
}
.hero .container { position: relative; z-index: 1; }
.hero-title {
  font-size: clamp(1.5rem, 3.5vw, 2.5rem);
  font-weight: 700;
  max-width: 22ch;
  color: #fff;
}
.hero-lead { font-size: 1.125rem; max-width: 36rem; color: #f2f2f2; }
.hero-carousel .carousel-indicators [data-bs-target] {
  width: 0.65rem;
  height: 0.65rem;
  border-radius: 50%;
  background-color: rgba(255, 255, 255, 0.55);
}
.hero-carousel .carousel-indicators .active { background-color: var(--mt-bronze); }
.hero-carousel .carousel-control-prev,
.hero-carousel .carousel-control-next { width: 3.5rem; }

/* Homepage content below hero */
.home-section-title {
  font-weight: 700;
  margin-bottom: 1.25rem;
  color: var(--mt-ink);
}
.home-intro-body { overflow: auto; }
.home-intro-image {
  float: right;
  width: min(42%, 16.75rem);
  margin: 0 0 1rem 1.25rem;
}
.home-intro-lead { font-size: 1.15rem; margin-bottom: 1rem; }
@media (max-width: 575.98px) {
  .home-intro-image {
    float: none;
    width: 100%;
    margin: 0 0 1rem;
  }
}

.home-video-frame {
  max-width: 56rem;
  margin: 0 auto;
  box-shadow: 0 0.5rem 1.5rem rgba(0, 0, 0, 0.12);
}

.home-process { background: #f7f7f7; }
.home-process-tile {
  background: #fff;
  border: 1px solid #e5e5e5;
  height: 100%;
  overflow: hidden;
}
.home-process-tile img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  display: block;
}
.home-process-tile figcaption {
  padding: 0.65rem 0.75rem;
  font-weight: 600;
  font-size: 0.95rem;
  color: var(--mt-ink);
  text-align: center;
}

.home-panel {
  background: #fff;
  border: 1px solid #e8e8e8;
  padding: 1.25rem;
}
.home-panel-title {
  color: var(--mt-bronze);
  font-weight: 700;
  margin-bottom: 1rem;
  padding-bottom: 0.5rem;
  border-bottom: 2px solid var(--mt-bronze);
}
.home-check-list {
  list-style: none;
  padding-left: 0;
  margin-bottom: 0;
}
.home-check-list li {
  position: relative;
  padding-left: 1.4rem;
  margin-bottom: 0.35rem;
}
.home-check-list li::before {
  content: "✓";
  position: absolute;
  left: 0;
  color: var(--mt-bronze);
  font-weight: 700;
}
.home-assoc-list li { margin-bottom: 0.35rem; }
.page-home .accreditation-logo { max-width: 9.5rem; }

.accreditation-logo { max-width: 11rem; height: auto; }
.sidebar-title {
  color: #fff;
  background: var(--mt-bronze);
  padding: 0.65rem 0.85rem;
  margin: 0;
}
.services-sidebar { border: 1px solid #ddd; }
.services-list { padding: 0.5rem 0; }
.services-list a {
  display: block;
  padding: 0.35rem 0.85rem;
  color: var(--mt-ink);
  font-size: 0.95rem;
}
.services-list a:hover,
.services-list a.active {
  background: rgba(204, 151, 87, 0.12);
  color: var(--mt-bronze-dark);
  text-decoration: none;
}

.content-body h1, .content-body h2, .content-body .page-title {
  color: var(--mt-ink);
  font-weight: 700;
}
.content-body img { max-width: 100%; height: auto; }
.page-cta { margin-top: 1.5rem; margin-bottom: 1.25rem; }


/* Full-width article masthead (industry / service “big image”) */
.entry-image.full-image {
  margin: -1.5rem calc(50% - 50vw) 1.75rem;
  width: 100vw;
  max-width: 100vw;
}
.entry-image.full-image img {
  display: block;
  width: 100%;
  height: clamp(14rem, 42vh, 28rem);
  object-fit: cover;
}
.entry-header { margin-bottom: 1.25rem; }
.entry-header .page-title { margin-bottom: 0; }

/* Content image floated right (original blogfull-right-image) */
.blogfull-right-image {
  float: right;
  width: min(42%, 22rem);
  margin: 0 0 1.25rem 1.5rem;
}
.blogfull-right-image img {
  width: 100%;
  height: auto;
  display: block;
}
@media (max-width: 767.98px) {
  .blogfull-right-image {
    float: none;
    width: 100%;
    margin: 0 0 1.25rem;
  }
}

/* Approvals / specs panels */
.blogfull-panels {
  display: flex;
  flex-wrap: wrap;
  gap: 1.25rem;
  clear: both;
  padding-top: 1.5rem;
}
.blogfull-panel-left,
.blogfull-panel-right {
  flex: 1 1 16rem;
  width: auto;
  float: none;
}
.card-accent .card-header,
.panel-primary > .panel-heading {
  background: var(--mt-bronze);
  color: #fff;
  font-weight: 700;
  border: none;
}
.card-accent,
.panel.panel-primary {
  border: 1px solid #e0e0e0;
  border-radius: 0.25rem;
  overflow: hidden;
  height: 100%;
}
.card-accent .card-body,
.panel-primary .panel-body {
  min-height: 8rem;
  background: #fff;
}
.content-card {
  border: 1px solid #e5e5e5;
  border-radius: 0.25rem;
  overflow: hidden;
  height: 100%;
  transition: border-color 0.2s ease;
}
.content-card:hover { border-color: var(--mt-bronze); }
.content-card .card-body { padding: 1rem; }

.site-footer {
  background: #f5f5f5;
  border-top: 3px solid var(--mt-bronze);
  margin-top: auto;
}
.footer-heading { color: var(--mt-bronze); font-weight: 700; }
.footer-bar {
  background: var(--mt-footer);
  color: #ddd;
}

/* GSAP initial state — revealed in JS unless reduced motion */
.animate-in { opacity: 1; }
.js .animate-in { opacity: 0; }

.page-404 { text-align: center; padding: 3rem 0; }
