/* Public theme compatibility for Bootstrap 5.3.x.
   Kept separate so the modern administration UI remains untouched. */

:root {
  --public-brand: #336aea;
  --public-ink: #17263a;
  --public-muted: #68758a;
  --public-line: #e4eaf2;
  --public-surface: #ffffff;
  --public-radius: 18px;
  --public-shadow: 0 16px 40px rgba(25, 48, 83, .09);
}

html,
body { max-width: 100%; overflow-x: clip; }

.header .navbar-area .container,
.header .navbar-area .row,
.header .navbar-area [class*="col-"] { min-width: 0; }

.header .navbar { min-height: 82px; flex-wrap: nowrap; }
.header .navbar-brand { flex: 0 0 175px; width: 175px; height: 52px; }
.header .navbar-brand img { width: 175px; max-width: 100%; height: auto; }
.footer .logo img { width: 150px; height: auto; }
.header .navbar-collapse { min-width: 0; }
.header .navbar-nav { align-items: center; }
.header .button { flex: 0 0 auto; }
.header .button .navbar-area-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 50px !important;
  height: 50px;
  padding: 0;
  border-radius: 50%;
}

@media (min-width: 992px) {
  .header .navbar-collapse {
    position: static;
    display: flex !important;
    flex-basis: auto;
    align-items: center;
    width: auto;
    height: auto !important;
    overflow: visible !important;
    padding: 0;
    background: transparent;
    border-radius: 0;
    box-shadow: none;
  }
  .header .navbar-nav { flex-direction: row; margin-left: auto; }
  .header .navbar-toggler { display: none; }
}

@media (min-width: 992px) and (max-width: 1199.98px) {
  .header .navbar-brand { flex-basis: 145px; width: 145px; }
  .header .navbar-nav .nav-item { margin-left: 20px; }
  .header .button { margin-left: 22px; }
}

@media (max-width: 991.98px) {
  .header .navbar { min-height: 82px; padding: 14px 0; }
  .header .navbar-brand { flex-basis: 150px; width: 150px; }
  .header .navbar-toggler { flex: 0 0 32px; margin-left: auto; }
  .header .button { margin-left: 14px !important; }
  .header .navbar-collapse {
    position: absolute;
    top: calc(100% + 8px);
    left: 12px;
    right: 12px;
    width: auto;
    max-height: calc(100vh - 120px);
    overflow-x: hidden;
    overflow-y: auto;
    padding: 12px;
    background: #fff;
    border: 1px solid var(--public-line);
    border-radius: 14px;
    box-shadow: var(--public-shadow);
  }
  .header .navbar-nav { align-items: stretch; margin: 0; padding: 0; }
  .header .navbar-nav .nav-item { width: 100%; margin-left: 0; }
  .header .navbar-nav .nav-item:last-child { padding-bottom: 0; }
  .header .navbar-nav .nav-item > a {
    display: block;
    margin: 0;
    padding: 10px 12px;
    color: var(--public-ink);
    border-radius: 9px;
  }
  .header .navbar-nav .nav-item > a::before { bottom: 5px; }
  .header .navbar-nav li .sub-menu {
    left: 0;
    width: 100%;
    margin: 2px 0 6px;
    padding: 5px;
    border: 0;
    border-radius: 10px;
    background: #f5f8fc;
  }
}

@media (max-width: 430px) {
  .header .navbar-brand { flex-basis: 132px; width: 132px; }
  .header .button { margin-left: 9px !important; }
  .header .button .navbar-area-button { width: 44px !important; height: 44px; }
}

/* A consistent, lighter card system for public catalogue content. */
.services .single-head .row > [class*="col-"] { display: flex; }
.services .single-service {
  width: 100%;
  height: 100%;
  padding: 28px 24px;
  border: 1px solid var(--public-line);
  border-radius: var(--public-radius);
  box-shadow: 0 10px 28px rgba(25, 48, 83, .06);
}
.services .single-service::before { border-radius: inherit; }
.services .single-service:hover {
  transform: translateY(-3px);
  box-shadow: var(--public-shadow);
}
.services .single-service:hover::before { transform: scale(1); }
.services .single-service img {
  width: 100%;
  aspect-ratio: 16 / 8;
  object-fit: cover;
  border-radius: 12px !important;
}

.latest-news-area .single-news,
.sidebar .widget {
  overflow: hidden;
  height: 100%;
  background: var(--public-surface);
  border: 1px solid var(--public-line);
  border-radius: var(--public-radius);
  box-shadow: 0 10px 30px rgba(25, 48, 83, .07);
  transition: transform .18s ease, box-shadow .18s ease;
}

.latest-news-area .single-news:hover {
  transform: translateY(-3px);
  box-shadow: var(--public-shadow);
}

.latest-news-area .single-news .image { overflow: hidden; background: #edf2f8; }
.latest-news-area .single-news .image img { transition: transform .35s ease; }
.latest-news-area .single-news:hover .image img { transform: scale(1.025); }
.latest-news-area .single-news .content-body { padding: 22px; }
.latest-news-area .single-news .content-body p { color: var(--public-muted); line-height: 1.7; }

.site-card-slider .carousel-control-prev,
.site-card-slider .carousel-control-next { transition: opacity .15s ease, background-color .15s ease; }

/* Home portfolio carousel: one predictable crop for landscape and portrait photos. */
.screenshort .single-screen { height: 100%; padding: 2px; }
.screenshort .pi--image-container {
  display: block;
  width: 100%;
  padding-bottom: 0;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background: #e9eef5 !important;
  border: 1px solid var(--public-line);
  border-radius: 16px !important;
  box-shadow: 0 10px 28px rgba(25, 48, 83, .08);
}
.screenshort .pi--image-container img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  mix-blend-mode: normal;
  border-radius: 0;
  transform: scale(1.001);
  transition: transform .3s ease;
}
.screenshort .pi--image-container:hover img { transform: scale(1.035); box-shadow: none; }
.screenshort .site-card-slider { width: 100%; height: 100%; }
.screenshort .site-card-slider .carousel-control-prev,
.screenshort .site-card-slider .carousel-control-next {
  width: 32px;
  height: 32px;
  margin: 0 10px;
  opacity: 0;
  transition: opacity .16s ease, background-color .16s ease;
}
.screenshort .pi--image-container:hover .carousel-control-prev,
.screenshort .pi--image-container:hover .carousel-control-next { opacity: 1; }
.screenshort .site-card-slider .carousel-indicators { margin-bottom: 7px; }
.screenshort .site-card-slider .carousel-indicators [data-bs-target] { width: 6px; height: 6px; margin: 0 3px; }
.screenshort .pi--image-container .badge {
  top: 14px !important;
  left: 14px !important;
  z-index: 2;
  padding: 6px 9px;
  border-radius: 999px;
  background: rgba(18, 31, 48, .82) !important;
  backdrop-filter: blur(6px);
}

.typed-text {
  display: block;
  width: 100%;
  height: auto;
  min-height: 60px;
  overflow: visible;
  line-height: 1.25;
}

@media (max-width: 767.98px) {
  .section { padding-top: 54px; padding-bottom: 54px; }
  .breadcrumbs { padding-top: 112px; padding-bottom: 46px; }
  .latest-news-area .single-news .content-body { padding: 18px; }
  .typed h1 { font-size: 2rem; line-height: 1.25; }
  .typed-text { min-height: 72px; font-size: 1.7rem; line-height: 1.3; overflow-wrap: anywhere; }
  .typed p { font-size: .92rem; line-height: 1.65; }
}
